Juan Lorca Control Semana 8
Juan Lorca Control Semana 8
Juan Lorca Control Semana 8
Instituto IACC
08 de enero 2021
Antecedentes:
1) De la siguiente línea de código:
a) Identifique las secciones.
b) Identifique los hechos.
c) Mencione las reglas y la unificación en el caso de que exista.
Desarrollo:
Debemos inferir que PROLOG es un lenguaje declarativo e interpretado, donde se
representan los conocimientos sobre un determinado dominio y sus relaciones. En base a
ello, se deducen las respuestas a las cuestiones planteadas, obteniendo con ello una
inferencia.
El dominio lo constituye un conjunto de objetos.
VENTAJA:
No hay que preocuparse de detalles de cómo resolver algo
DESVENTAJA:
La resolución no siempre es eficiente.
Desde un punto de vista lógico, un programa Prolog está constituido por un conjunto de
cláusulas de Horn. Una cláusula de Horn tiene la forma general:
p(t1,t2,….,tn) :- p1(….),p2(….),…,pm(….) con m >= 0
simbolo_de_predicado (arg1,arg2,...,argn).
Tanto para los símbolos de predicado como para los argumentos, Prolog utiliza constantes
atómicas.
CLÁUSULAS:
Un programa en Prolog está constituido por una secuencia de cláusulas. Estas cláusulas
deben representar todo el conocimiento necesario para resolver el problema.
Se pueden diferenciar tres tipos de Cláusulas:
Una cláusula en Prolog es una unidad de información en un programa Prolog que termina
con una parada completa (" .").
TÉRMINOS
Los términos pueden ser constantes o variables, y suponemos definido un dominio no
vacío en el cual toman valores (Universo del Discurso). En la práctica se toma como
dominio el Universo de Herbrand. Para saber cuántos individuos del universo cumplen una
determinada propiedad o relación, cuantificamos los términos.
Las constantes se utilizan para dar nombre a objetos concretos del dominio, dicho de otra
manera, representan individuos conocidos de nuestro Universo. Además, como ya hemos
dicho, las constantes atómicas de Prolog también se utilizan para representar propiedades
y relaciones entre los objetos del dominio. Hay dos clases de constantes:
HECHOS
Cada cláusula es un hecho o una regla. Después de que un programa de Prolog es cargado
(o consultado) en un intérprete de Prolog, los usuarios pueden enviar metas o consultas, y
el intérprete de Prolog dará resultados (respuestas) de acuerdo con los hechos y las
reglas.
Hechos:
Un hecho debe comenzar con un predicado (que es un átomo) y terminar con un tope
completo. El predicado puede ir seguido de uno o más argumentos que están entre
paréntesis. Los argumentos pueden ser átomos (en este caso, estos átomos se tratan
como constantes), números, variables o listas. Los argumentos están separados por
comas.
Si consideramos que los argumentos en un hecho son objetos, entonces el predicado del
hecho describe una propiedad de los objetos.
La presencia de un hecho indica una afirmación que es verdadera. La ausencia de un
hecho indica una afirmación que no es cierta. Vea el siguiente ejemplo:
REGLAS:
Una regla puede verse como una extensión de un hecho con condiciones adicionales que
también deben cumplirse para que sea cierta. Está formado por dos partes. La primera
parte es similar a un hecho (un predicado con argumentos). La segunda parte consta de
otras cláusulas (hechos o reglas que están separadas por comas) que deben ser
verdaderas para que la regla misma sea verdadera. Estas dos partes están separadas por
“: - ". Puede interpretar este operador como " si " en inglés.
Regla 6
Regla 1 Regla 2 Regla 3 Regla 4 Regla 5
Si K y L
Si A y B Si D, E y F Si H y I Si C y G Si G y J
Entonces
Entonces C Entonces G Entonces J Entonces K Entonces L
M
Para hacer el diagrama asigne los valores A = Verdadero, G = Falso, K = Falso, L = Falso,
determine el Valor de H, mediante la estrategia de encadenamiento de reglas orientado a
un objetivo.
Asignación de Valores:
A = AVerdadero
G = GFalso
K = K Falso
L = L Falso
Determine el valor de H H
Simbología
A B C D E F G H I J
K L M
PASO 1:
Estructura del Diagrama:
B
K
M
E G
F
L
I
PASO 2:
El Objetivo es H
B
K
M
E G
F
L
J
Para este caso se involucra la regla 3, por lo tanto se señala a como nuevo
objetivo.
PASO 3:
El Objetivo es J
B
K
M
E G
F
L
Ahora pasa J nuevo objetivo, dónde H pasa a ser un objetivo previo, se marca J y se busca
una regla que involucre a J.
La regla que involucra a J es la regla 5 dónde dice, Si G y J entonces L, como se desconoce
el valor de G, no se puede concluir
PASO 4
Se señala como nuevo objetivo G.
B
K
M
E G
F
L
Se señala a G como el nuevo objetivo, H y J pasan a ser objetivos de G y se busca una regla
que involucre a G, para esto se encuentra la regla 2 que dice:
Si D, E y F entonces G.
Al observar la simbología dada para este ejercicio G = Falso, por ende el valor de H es
Falso y finaliza.
3) Diseñe un algoritmo que permita hallar los abuelos de Luis, basándose en los
siguientes hechos.
Julio es el padre de Jaider
José es el padre de Adriana
Jaider es el padre de pedro
Adriana es la hermana de pedro
Pedro es hermano de Luis
RESPUESTA:
Dominios
persona= string
Predicados
Padre (persona, persona).
Clases
Padre ("Julio", "Jaider"). %Julio es padre de Jaider
Padre ("José", "Adriana"). %José es padre de Adriana
Padre ("Jaider", "Pedro"). %Jaider es padre de Pedro
Hermanos ("Adriana", "Pedro"). %Adriana es Hermana de Pedro
Hermanos ("Pedro", "Luis"). %Pedro es Hermano de Luis
ADRIANA
JAIDER (Hija de José)
Madre de
(Hijo de Julio) Pedro
Adriana y
Luis
HERMANOS
PEDRO
Luis
Por lo (Hijo
tantodelos abuelos
Jaider y de Luis son Julio y José y conforman dos familia, dónde Pedro,
(Hermano
Adriana y Luisdetienen
hermano consanguineidad por parte materna.
Adriana)
de Pedro)
Bibliografía:
IACC (2018). Lógica de programación. Lógica Matemática y Digital. Semana 8.