Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación
UTN
FRRe
Contenidos
Introducción
⚫ Problema
⚫ Sistemas de Producción
⚫ Búsqueda
Programación con Lógica Proposicional
⚫ Sintaxis
⚫ Consecuencia lógica
⚫ Resolución
⚫ Refutación y Deducción
⚫ Árbol de Resolución
⚫ Negación
⚫ Resolución SLD
Programación con Lógica de Predicados
⚫ Sintaxis
⚫ Cláusulas
⚫ Unificación
⚫ Resolución
ProLog
⚫ Ejemplos
Lógica Proposicional vs
Lógica de Predicados
Ejemplo:
Lassie es un mamífero = q
Lógica Proposicional vs
Lógica de Predicados
⚫ Ejemplo:
• Mamifero (lassie)
Lógica de Predicados
Las cualidades, relaciones o atributos, se denominan
predicados.
⚫ Ejemplo:
• hermanos (bart, lisa) V
• hermanos (bart, milhouse) F
Ejemplo
estrella (sol)
orbita (mercurio, sol)
orbita (venus, sol)
orbita (tierra, sol)
orbita (luna, tierra)
orbita (phobos, marte)
https://swish.swi-prolog.org/
Sintaxis
En el Cálculo de Predicados se usan varios tipos de símbolos:
Un vocabulario V de variables
⚫ Se utilizarán letras MAYÚSCULAS: X, Y, Z.
Un Predicado es:
⚫ Un símbolo predicativo seguido de una sucesión de términos (aridad).
Cláusulas de Horn
Sustitución
Resulta:
p (juan, Z) p (Z, pedro) a (juan, pedro)
Unificador
Dadas dos expresiones del lenguaje definido (por ejemplo dos
predicados) E1 y E2. Se llama unificador, a una sustitución tal que
cumple que:
E1 = E2
E1 1 3 = E2 2
Algoritmo de unificación de
Robinson: Elementos I
Primer par de discordancia:
⚫ En el símbolo funcional
⚫ En el número de argumentos
⚫ En alguno de sus argumentos
⚫ Ej:
• p (a, f (b, c), g (X))
• p (a, f (X, Y), g (h(Z))
• p (f (a, b), c)
• p (g (X, Y))
• p (g (a, b, c), X)
• p (f (X, a), Z)
Algoritmo de unificación de
Robinson: Elementos II
⚫ Ej:
• X aparece en p(a,f(b,X))
• X aparece en q(X, g (X, Y))
• X no aparece en p(a, Z, g(a, b))
Algoritmo de unificación de
Robinson I
⚫ Sean E y F dos términos que queremos unificar.
⚫ Sea θ0 = { }
⚫ Sea E0 = E θ0
⚫ Sea F0 = F θ0
⚫ Sea k = 0
Iteración 1 Iteración 2
Paso 1: E0 <> F0 Paso 1: E1 <> F1
Paso 2: D0 = {a, X} Paso 2: D1 = {a, G(Y)}
Paso 3: ir al paso 4 Paso 3: Átomo y Símbolo
Paso 4: Ir al paso 5 Funcional.
Paso 5: θ1 = {X := a}
E1 = E0 θ1 = p (a, F (a, b), Y) No unifican.
F1 = F0 θ1 = p (a, F (G (Y), Z), T)
Regla de Resolución
Supongamos que t1, … , tn y s1, … , sn son términos tales que ti y si son
unificables con un MGU (Most General Unifier) para 1 i n y C1 y C2
con cláusulas.
Definición:
C1 C2
Ejemplo 1
Quien es el tío de
1. padre (jorge, diego) Diego?
2. hermano (ricardo, jorge)
3. tio (X, Y) :- padre (Z, Y), hermano (X, Z)
7. ={W:=ricardo}
Ejemplo 2
1. s(X) q(Y) r(X, Y)
Dado el siguiente
programa. 2. q(X) p(X)
(en notación Prolog)
3. p(b)
4. r(a, b)
1. s(X) :- q(Y), r(X, Y)
2. q(X) :- p(X) 5. s(a) Hipótesis agregada
3. p(b)
4. r(a, b) 6. q(Y) r(a, Y) Res por 1 y 5, ={X:=a}
9. Res por 4 y 8.
Resolución SLD
Selection Rule - Linear Resolution – Definite Clauses
r(a, b)
l(c) r(a, b), n(b) r(a, b), n(a)
n(a)
n(b) n(a)
Consulta: m(a)