Clase práctica Resolución - Departamento de Computación

Anuncio
Resolución General
Resolución lineal y SLD
Clase práctica
Resolución en lógica de primer orden
Paradigmas de Lenguajes de Programación
Departamento de Computación
Facultad de Ciencias Exactas y Naturales
Universidad de Buenos Aires
05/06/2014
Resolución General
Agenda
1
Resolución General
Repaso
Método de resolución
En lógica proposicional
En lógica de primer orden
Ejercicios
2
Resolución lineal y SLD
Resolución lineal
Motivación
Cláusulas de Horn
Resolución
Árbol de resolución
Preguntas generales
Ejemplo completo
Resolución lineal y SLD
Resolución General
Resolución lineal y SLD
Método de resolución
¿Qué es?
Procedimiento para determinar la insatisfactibilidad de una
fórmula.
Es útil como técnica de demostración por refutación (i.e.,
probar que A es válida mostrando que ¬A es insatisfactible).
Consiste en la aplicación sucesiva de una regla de inferencia a
un conjunto de cláusulas.
Resolución General
Resolución lineal y SLD
Método de resolución
Satisfactibilidad y validez
En general,
Una asignación asocia variables a valores del dominio.
Una fórmula A es válida sii toda asignación la hace verdadera.
Una fórmula A es satisfactible sii alguna asignación la hace
verdadera.
El siguiente hecho permite utilizar al método como técnica de
demostración:
A es válida sii ¬A es insatisfactible
Resolución General
Resolución lineal y SLD
Método de resolución
Cláusulas y FNC
El método trabaja con fórmulas en forma normal conjuntiva.
Conjunción de disyunciones de literales, siendo un literal una
fórmula atómica o su negación.
Una cláusula es cada una de estas disyunciones de literales.
Las representamos en notación conjuntista.
Ejemplo:
{¬menor(X , Y ), menor(c, Y )}
representa la cláusula
∀X , Y .(¬menor(X , Y ) ∨ menor(c, Y ))
Resolución General
Resolución lineal y SLD
Método de resolución
Cláusulas y FNC
De esta manera, notamos a una fórmula en FNC como un conjunto
de cláusulas. Éste se entiende como la conjunción de las mismas.
Por ejemplo, el conjunto que contiene a las cláusulas
{¬menor(X , Y ), menor(c, Y )}
{impar(Z ), mayor(Z , w )}
representa la fórmula
∀X , Y .(¬menor(X , Y )∨menor(c, Y ))∧∀Z .(impar(Z )∨mayor(Z , w ))
Resolución General
Resolución lineal y SLD
Método de resolución
Pasaje a FNC
Paso a paso
1
Eliminar implicación
2
Forma normal negada
3
Forma normal prenexa (opcional)
4
Forma normal de Skolem (dependencias = variables libres dentro del
alcance del ∃)
5
Forma normal conjuntiva
6
Distribución de cuantificadores y renombre de variables
Resolución General
Resolución lineal y SLD
En lógica proposicional
La regla de resolución en el marco proposicional
Ai = {A1 , . . . , Am , Q}
Aj = {B1 , . . . , Bn , ¬Q}
B = {A1 , . . . , Am , B1 , . . . , Bn }
A B se lo llama resolvente (de Ai y Aj )
La regla se apoya en el hecho de que la siguiente proposición
es una tautologı́a:
(A ∨ P) ∧ (B ∨ ¬P) ⇔ (A ∨ P) ∧ (B ∨ ¬P) ∧ (A ∨ B)
El conjunto de cláusulas {A1 , . . . , Ak } es lógicamente
equivalente a {A1 , . . . , Ak , B}
Resolución General
Resolución lineal y SLD
En lógica de primer orden
La regla de resolución en primer orden
Ai = {A1 , . . . , Am , P1 , . . . , Pk } Aj = {B1 , . . . , Bn , ¬Q1 , . . . , ¬Ql }
B = σ({A1 , . . . , Am , B1 , . . . , Bn })
σ es el MGU de {P1 , . . . , Pk , Q1 , . . . , Ql }
es decir, σ(P1 ) = . . . = σ(Pk ) = σ(Q1 ) = . . . = σ(Ql )
A B se lo llama resolvente (de Ai y Aj )
Cada paso de resolución preserva satisfactibilidad (Teorema
de Herbrand-Skolem-Gödel)
Resolución General
Resolución lineal y SLD
En lógica de primer orden
Resolución en lógica de primer orden
Repaso
Estrategia
Para demostrar que la fórmula F es universalmente válida
Demostramos que ¬F es insatisfactible.
Para demostrar que F se deduce de H1 , . . . Hn
Demostramos que H1 , . . . , Hn , ¬F es insatisfactible.
Esquema general
Expresar la o las fórmulas como cláusulas.
Aplicar sucesivamente un paso de resolución
(generando nuevas cláusulas)...
Hasta llegar a la cláusula vacı́a
o concluir que no es posible llegar a ella.
Importante: al aplicar resolución suelen presentarse varias opciones.
Conviene tener un plan.
Resolución General
Resolución lineal y SLD
En lógica de primer orden
Cosas importantes para recordar1
Al skolemizar, usar la misma constante o función si y sólo si la
variable que estamos eliminando es la misma (nunca para
otras, aun si tienen el mismo nombre).
Para encontrar las dependencias, ver qué variables están libres
dentro del alcance del ∃ (sin contar la que se está eliminando).
¡No olvidarse de negar lo que se quiere demostrar! Y recordar
que ¬((A1 ∧ ... ∧ An ) ⊃ B) = A1 ∧ ... ∧ An ∧ ¬B.
Antes de empezar a aplicar pasos de resolución, convencerse
de que lo que se quiere demostrar es verdadero, y trazar un
plan para demostrarlo (mentalmente o por escrito).
Recordar bien cómo funciona la unificación, y sustituir siempre
variables (ni funciones, ni constantes, ni predicados).
1
Seguir las indicaciones de esta lista previene los errores más frecuentes en
los parciales.
Resolución General
Resolución lineal y SLD
Ejercicios
Ejemplo
Recuperatorio 2◦ parcial 1◦ Cuat. 2012
Representar en forma clausal la siguiente información referida
a conjuntos, pertenencia (predicado Pert) e inclusión
(predicado Inc).
i ∀X ∀Y (Inc(X , Y ) ⇔ (∀Z Pert(Z , X ) ⊃ Pert(Z , Y )))
X está incluido en Y si y sólo si cada elemento de X es un
elemento de Y .
ii ∀X ¬Pert(X , ∅)
Ningún elemento pertenece al vacı́o.
Usar resolución para probar que el vacı́o está incluido en todo
conjunto.
Indicar justificando si la prueba realizada es SLD (volveremos
sobre esto más adelante).
Resolución General
Resolución lineal y SLD
Ejercicios
Ejemplo
Recuperatorio 2◦ parcial 1◦ Cuat. 2012
Cast.: X ⊆ Y si y sólo si cada elemento de X es un elemento de Y .
1◦ o.:
∀X ∀Y (Inc(X , Y ) ⇔ (∀Z Pert(Z , X ) ⊃ Pert(Z , Y )))
Claus.:
{¬Inc(X1 , Y1 ), ¬Pert(Z1 , X1 ), Pert(Z1 , Y1 )}
{Inc(X2 , Y2 ), Pert(f(X2 , Y2 ), X2 )}
{Inc(X3 , Y3 ), ¬Pert(f(X3 , Y3 ), Y3 )}
Cast.:
1◦ o.:
Claus.:
Ningún elemento pertenece al vacı́o.
∀X ¬Pert(X , ∅)
{¬Pert(X4 , ∅)}
Resolución General
Resolución lineal y SLD
Ejercicios
Ejemplo (cont.)
Recuperatorio 2◦ parcial 1◦ Cuat. 2012
A partir de ellas, se desea demostrar que:
Cast.: El vacı́o está incluido en todo conjunto.
1◦ o.: ∀X Inc(∅, X )
Neg.: ∃X ¬Inc(∅, X )
Claus.:
{¬Inc(∅, c)}
Resolución General
Resolución lineal y SLD
Ejercicios
Ejemplo
Recuperatorio 2◦ parcial 1◦ Cuat. 2012
Cast.: X ⊆ Y si y sólo si cada elemento de X es un elemento de Y .
1◦ o.:
∀X ∀Y (Inc(X , Y ) ⇔ (∀Z Pert(Z , X ) ⊃ Pert(Z , Y )))
Claus.:
{¬Inc(X1 , Y1 ), ¬Pert(Z1 , X1 ), Pert(Z1 , Y1 )}
{Inc(X2 , Y2 ), Pert(f(X2 , Y2 ), X2 )}
{Inc(X3 , Y3 ), ¬Pert(f(X3 , Y3 ), Y3 )}
Cast.:
1◦ o.:
Claus.:
Ningún elemento pertenece al vacı́o.
∀X ¬Pert(X , ∅)
{¬Pert(X4 , ∅)}
Resolución General
Resolución lineal y SLD
Ejercicios
Ejemplo (cont.)
Recuperatorio 2◦ parcial 1◦ Cuat. 2012
A partir de ellas, se desea demostrar que:
Cast.: El vacı́o está incluido en todo conjunto.
1◦ o.: ∀X Inc(∅, X )
Neg.: ∃X ¬Inc(∅, X )
Claus.:
{¬Inc(∅, c)}
Resolución General
Resolución lineal y SLD
Ejercicios
Ejemplo (resolviendo)
Recuperatorio 2◦ parcial 1◦ Cuat. 2012
{A1 , ..., Am , P1 , ..., Pk }
{B1 , ..., Bn , ¬Q1 , ..., ¬Ql }
σ({A1 , ..., Am , B1 , ..., Bn })
donde σ es el MGU de {P1 , ..., Pk , Q1 , ..., Ql }.
1
{¬Inc(X1 , Y1 ), ¬Pert(Z1 , X1 ), Pert(Z1 , Y1 )}
2
{Inc(X2 , Y2 ), Pert(f(X2 , Y2 ), X2 )}
3
{Inc(X3 , Y3 ), ¬Pert(f(X3 , Y3 ), Y3 )}
4
{¬Pert(X4 , ∅)}
5
{¬Inc(∅, c)}
6
(2 y 5)
7
(6 y 4)
{Pert(f(∅, c), ∅)} σ = {X2 ← ∅, Y2 ← c}
2 σ = {X4 ← f(∅, c)}
Resolución General
Resolución lineal y SLD
Ejercicios
Otro ejemplo
◦
Recuperatorio 2 parcial 2◦ Cuat. 2008
Dadas las siguientes definiciones de Descendiente y Abuelo a partir
de la relación Progenitor:
• Los hijos son descendientes:
∀X ∀Y (Progenitor(X , Y ) ⊃ Descendiente(Y, X ))
• La relación de descendencia es transitiva:
∀X ∀Y ∀Z (Descendiente(X, Y ) ∧ Descendiente(Y, Z ) ⊃ Descendiente(X, Z ))
• El abuelo es progenitor de alguien que es progenitor del nieto:
∀X ∀Y (Abuelo(X , Y ) ⊃ ∃Z (Progenitor(X , Z ) ∧ Progenitor(Z , Y )))
Demostrar usando resolución general que los nietos son
descendientes; es decir, que
∀X ∀Y (Abuelo(X , Y ) ⊃ Descendiente(Y, X ))
Ayuda: tratar de aplicar el método a ciegas puede traer problemas.
Conviene tener en mente lo que se quiere demostrar.
Resolución General
Resolución lineal y SLD
Ejercicios
Otro ejemplo
◦
Recuperatorio 2 parcial 2◦ Cuat. 2008
Cast.: Los hijos son descendientes.
1◦ o.:
∀X ∀Y (Progenitor(X , Y ) ⊃ Descendiente(Y, X ))
Claus.:
{¬Progenitor(X1 , Y1 ), Descendiente(Y1, X1 )}
Cast.:
1◦ o.:
Claus.:
La relación de descendencia es transitiva.
∀X ∀Y ∀Z (Descendiente(X, Y ) ∧ Descendiente(Y, Z ) ⊃ Descendiente(X, Z ))
{¬Descendiente(X2, Y2 ), ¬Descendiente(Y2, Z2 ), Descendiente(X2, Z2 )}
Cast.: El abuelo es progenitor de alguien que es progenitor del nieto.
1◦ o.:
∀X ∀Y (Abuelo(X , Y ) ⊃ ∃Z (Progenitor(X , Z ) ∧ Progenitor(Z , Y )))
Claus.:
{¬Abuelo(X3 , Y3 ), Progenitor(X3 , medio(X3 , Y3 ))}
{¬Abuelo(X4 , Y4 ), Progenitor(medio(X4 , Y4 ), Y4 )}
Resolución General
Resolución lineal y SLD
Ejercicios
Otro ejemplo (cont.)
Recuperatorio 2◦ parcial 2◦ Cuat. 2008
A partir de ellas, se desea demostrar que:
Cast.: Los nietos son descendientes
1◦ o.: ∀X ∀Y (Abuelo(X , Y ) ⊃ Descendiente(Y, X ))
Neg.: ∃X ∃Y (Abuelo(X , Y ) ∧ ¬Descendiente(Y, X ))
Claus.:
{Abuelo(a, b)}
{¬Descendiente(b, a)}
Resolución General
Resolución lineal y SLD
Ejercicios
Otro ejemplo
◦
Recuperatorio 2 parcial 2◦ Cuat. 2008
Cast.: Los hijos son descendientes.
1◦ o.:
∀X ∀Y (Progenitor(X , Y ) ⊃ Descendiente(Y, X ))
Claus.:
{¬Progenitor(X1 , Y1 ), Descendiente(Y1, X1 )}
Cast.:
1◦ o.:
Claus.:
La relación de descendencia es transitiva.
∀X ∀Y ∀Z (Descendiente(X, Y ) ∧ Descendiente(Y, Z ) ⊃ Descendiente(X, Z ))
{¬Descendiente(X2, Y2 ), ¬Descendiente(Y2, Z2 ), Descendiente(X2, Z2 )}
Cast.: El abuelo es progenitor de alguien que es progenitor del nieto.
1◦ o.:
∀X ∀Y (Abuelo(X , Y ) ⊃ ∃Z (Progenitor(X , Z ) ∧ Progenitor(Z , Y )))
Claus.:
{¬Abuelo(X3 , Y3 ), Progenitor(X3 , medio(X3 , Y3 ))}
{¬Abuelo(X4 , Y4 ), Progenitor(medio(X4 , Y4 ), Y4 )}
Resolución General
Resolución lineal y SLD
Ejercicios
Otro ejemplo (cont.)
Recuperatorio 2◦ parcial 2◦ Cuat. 2008
A partir de ellas, se desea demostrar que:
Cast.: Los nietos son descendientes
1◦ o.: ∀X ∀Y (Abuelo(X , Y ) ⊃ Descendiente(Y, X ))
Neg.: ∃X ∃Y (Abuelo(X , Y ) ∧ ¬Descendiente(Y, X ))
Claus.:
{Abuelo(a, b)}
{¬Descendiente(b, a)}
Resolución General
Resolución lineal y SLD
Ejercicios
Otro ejemplo (resolviendo)
Recuperatorio 2◦ parcial 2◦ Cuat. 2008
1
{¬Progenitor(X1 , Y1 ), Descendiente(Y1, X1 )}
2
{¬Descendiente(X2, Y2 ), ¬Descendiente(Y2, Z2 ), Descendiente(X2, Z2 )}
3
{¬Abuelo(X3 , Y3 ), Progenitor(X3 , medio(X3 , Y3 ))}
4
{¬Abuelo(X4 , Y4 ), Progenitor(medio(X4 , Y4 ), Y4 )}
5
{Abuelo(a, b)}
6
{¬Descendiente(b, a)}
Resolvámoslo en el pizarrón.
Resolución General
1
Resolución General
Repaso
Método de resolución
En lógica proposicional
En lógica de primer orden
Ejercicios
2
Resolución lineal y SLD
Resolución lineal
Motivación
Cláusulas de Horn
Resolución
Árbol de resolución
Preguntas generales
Ejemplo completo
Resolución lineal y SLD
Resolución General
Resolución lineal y SLD
Resolución lineal
Cómo mantenernos en lı́nea
Si un conjunto de cláusulas es insatisfactible, existe una secuencia de
pasos de resolución lineal que lo refuta (prueba su insatisfactibilidad). Es
decir, una secuencia de la forma:
B1
C0
B2
C1
σ1
B3
C2
σ2
C3
σ3
Bp−1
...
Bp
Cp−1
σp−1
Cp = 2
σp
donde C0 y cada Bi es un elemento de S o algún Cj con j < i.
Resolución General
Resolución lineal y SLD
Motivación
Resolución SLD (Selective Linear Definite)
La resolución es cara, pero hay cupones de descuento...
El método de resolución es completo, pero ineficiente.
El espacio de búsqueda - inicialmente cuadrático - crece en
cada paso.
Resolución lineal reduce el espacio de búsqueda.
Resolución SLD es lineal y (un poco) más eficiente,
preservando completitud...
¡pero no puede aplicarse a cualquier conjunto de cláusulas!
Resolución General
Resolución lineal y SLD
Cláusulas de Horn
Cláusulas de Horn
Cláusulas con a lo sumo un literal positivo
{P(x), P(y ), ¬Q(y , z)}
{Q(E , z)} X
→ cláusula de definición (hecho)
{P(x), ¬P(E )} X
→ cláusula de definición (regla)
{P(x), ¬P(E ), Q(x, y )}
{P(x), ¬P(E ), ¬Q(x, y )} X→ cláusula de definición (regla)
{¬P(x), ¬P(E ), ¬Q(x, y )} X
→ cláusula objetivo
No toda fórmula puede expresarse como una cláusula de Horn
∀x(P(x) ∨ Q(x))
Resolución General
Resolución lineal y SLD
Resolución
Resolución SLD
Un caso particular de la resolución general
Cláusulas de Horn con exactamente una cláusula objetivo
Resolvemos la cláusula objetivo con una cláusula de definición
Eso nos da otra cláusula objetivo
Repetimos el proceso con esta nueva cláusula
Hasta llegar a la cláusula vacı́a
Si se busca un resultado, computamos la sustitución respuesta
obj.
def.
}|
{
}|
{
z
z
{R, ¬B1 , . . . , ¬Bn }
{¬A1 , . . . , ¬Ak−1 , ¬Ak , ¬Ak+1 , . . . , ¬Am }
σ({¬A1 , . . . , ¬Ak−1 , ¬B1 , . . . , ¬Bn , ¬Ak+1 , . . . , ¬Am })
|
{z
}
nuevo obj.
donde σ es el MGU de {R, Ak }.
Resolución General
Resolución
Resolución SLD
Ejemplo (computando una solución)
“Los enemigos de mis enemigos son mis amigos.”
1
{amigo(A, B), ¬enemigo(A, C ), ¬enemigo(C , B)}
2
{enemigo(Reed, Dr. Doom)}
3
4
{enemigo(Dr. Doom, Ben)}
{enemigo(Dr. Doom, Johnny)}
5
{¬amigo(Reed, X )}
6
(1 y 5) {¬enemigo(Reed, C ), ¬enemigo(C , B)}
σ6 = {A ← Reed, X ← B}
7
(2 y 6) {¬enemigo(Dr. Doom, B)}
σ7 = {C ← Dr. Doom}
(3 y 7) 2 σ8 = {B ← Ben}
σ = σ8 ◦ σ7 ◦ σ6 =
{A ← Reed, X ← Ben, B ← Ben, C ← Dr. Doom}
8
Resolución lineal y SLD
Resolución General
Resolución lineal y SLD
Árbol de resolución
Árbol de resolución
¡Es una secuencia!
La resolución SLD es lineal: no hay vuelta atrás posible.
Si el objetivo puede resolverse con más de una regla, elegir la
correcta.
Si hay más de una, elegir cualquiera.
Si nos equivocamos, entonces lo que hicimos no es parte de la
resolución SLD.
Puede haber varias resoluciones SLD posibles.
Prolog intenta buscar todas (resolución SLD + backtracking).
Resolución General
Resolución lineal y SLD
Preguntas generales
Resolución SLD y Prolog
Preguntas generales
El mecanismo de búsqueda en la resolución SLD
¿está determinado?
¿El método es completo?
¿Prolog usa resolución SLD? ¿Su método es completo?
¿Está determinado?
¿Dónde está el problema (o la diferencia)?
Resolución General
Resolución lineal y SLD
Preguntas generales
Resolución SLD y Prolog
El ejemplo anterior en Prolog
“Los enemigos de mis enemigos son mis amigos.”
{amigo(A,B), ¬enemigo(A,C ), ¬enemigo(C,B)}
{enemigo(Reed, Dr. Doom)}
{enemigo(Dr. Doom, Ben)}
{enemigo(Dr. Doom, Johnny)}
amigo(A, B) :- enemigo(A, C), enemigo(C, B).
enemigo(reed, drdoom).
enemigo(drdoom, ben).
enemigo(drdoom, johnny).
{¬amigo(Reed, X )}
?- amigo(reed, X).
¿Cuál es la relación? ¿Cualquier ejemplo se puede traducir ası́?
¿Qué hay que tener en cuenta?
Resolución General
Resolución lineal y SLD
Preguntas generales
Volviendo al primer ejercicio que resolvimos...
1
{¬Inc(X1 , Y1 ), ¬Pert(Z1 , X1 ), Pert(Z1 , Y1 )}
2
{Inc(X2 , Y2 ), Pert(f(X2 , Y2 ), X2 )}
3
{Inc(X3 , Y3 ), ¬Pert(f(X3 , Y3 ), Y3 )}
4
{¬Pert(X4 , ∅)}
5
{¬Inc(∅, c)}
6
(2 y 5)
7
(6 y 4)
{Pert(f(∅, c), ∅)} σ = {X2 ← ∅, Y2 ← c}
2 σ = {X4 ← f(∅, c)}
¿Esto es SLD? ¿Por qué, o por qué no?
Resolución General
Resolución lineal y SLD
Ejemplo completo
Último
ejercicio
◦
◦
2 parcial 1 Cuat. 2011
En este ejercicio usaremos el método de resolución para demostrar una
propiedad de las relaciones binarias; a saber, que una relación no vacı́a no
puede ser a la vez irreflexiva, simétrica y transitiva.
Para esto tomaremos una relación R y se demostrará que, si R satisface
las tres propiedades mencionadas, entonces es vacı́a.
Dadas las siguientes definiciones:
1
R es irreflexiva: ∀X ¬R(X , X )
2
R es simétrica: ∀X ∀Y (R(X , Y ) ⊃ R(Y , X ))
3
R es transitiva: ∀X ∀Y ∀Z ((R(X , Y ) ∧ R(Y , Z )) ⊃ R(X , Z ))
4
R es vacı́a: ∀X ¬∃YR(X , Y )
Utilizando resolución, demostrar que sólo una relación vacı́a puede
cumplir a la vez las propiedades 1 a 3. Indicar si el método de
resolución utilizado es o no SLD (y justificar).
Resolución General
Resolución lineal y SLD
Ejemplo completo
Último
ejercicio
◦
◦
2 parcial 1 Cuat. 2011
Cast.: R es irreflexiva.
1◦ o.:
∀X ¬R(X , X )
Claus.:
{¬R(X1 , X1 )}
Cast.: R es simétrica
1◦ o.:
∀X ∀Y (R(X , Y ) ⊃ R(Y , X ))
Claus.:
{¬R(X2 , Y2 ), R(Y2 , X2 )}
Cast.:
1◦ o.:
Claus.:
R es transitiva.
∀X ∀Y ∀Z ((R(X , Y ) ∧ R(Y , Z )) ⊃ R(X , Z ))
{¬R(X3 , Y3 ), ¬R(Y3 , Z3 ), R(X3 , Z3 )}
Resolución General
Resolución lineal y SLD
Ejemplo completo
Último ejercicio (cont.)
2◦ parcial 1◦ Cuat. 2011
Se desea demostrar que:
Cast.: R es vacı́a:
1◦ o.: ∀X ¬∃YR(X , Y )
Neg.: ∃X ∃Y R(X , Y )
Claus.:
{R(a, b)}
Resolución General
Resolución lineal y SLD
Ejemplo completo
Último ejercicio (resolviendo)
2◦ parcial 1◦ Cuat. 2011
1
{¬R(X1 , X1 )}
2
{¬R(X2 , Y2 ), R(Y2 , X2 )}
3
{¬R(X3 , Y3 ), ¬R(Y3 , Z3 ), R(X3 , Z3 )}
4
{R(a, b)}
5
(4 y 2)
{R(b, a)} σ = {X2 ← a, Y2 ← b}
6
(5 y 3)
{¬R(X6 , b), R(X6 , a)} σ = {Y3 ← b, Z3 ← a} renombrando X3 a X6
7
(6 y 4)
8
(7 y 1)
{R(a, a)} σ = {X6 ← a}
2 σ = {X1 ← a}
¿Esta demostración por resolución es SLD? ¿Por qué, o por
qué no?
Resolución General
Resolución lineal y SLD
Ejemplo completo
Alternativa
SLD
◦
◦
2 parcial 1 Cuat. 2011
1
{¬R(X1 , X1 )}
2
{¬R(X2 , Y2 ), R(Y2 , X2 )}
3
{¬R(X3 , Y3 ), ¬R(Y3 , Z3 ), R(X3 , Z3 )}
4
{R(a, b)}
5
(1 y 3)
{¬R(X1 , Y3 ), ¬R(Y3 , X1 )} σ = {X3 ← X1 , Z3 ← X1 }
6
(5 y 4)
{¬R(b, a)} σ = {X1 ← a, Y3 ← b}
7
(6 y 2)
8
(7 y 4)
{¬R(a, b)} σ = {X2 ← a, Y2 ← b}
2σ=∅
¿Es la única posible?
Resolución General
Resolución lineal y SLD
Ejemplo completo
Otra alternativa SLD (más corta)
2◦ parcial 1◦ Cuat. 2011
1
{¬R(X1 , X1 )}
2
{¬R(X2 , Y2 ), R(Y2 , X2 )}
3
{¬R(X3 , Y3 ), ¬R(Y3 , Z3 ), R(X3 , Z3 )}
4
{R(a, b)}
5
(1 y 3)
{¬R(X1 , Y3 ), ¬R(Y3 , X1 )} σ = {X3 ← X1 , Z3 ← X1 }
6
(5 y 2)
{¬R(X2 , Y2 )} σ = {X1 ← X2 , Y3 ← Y2 }
7
(6 y 4)
2 σ = {X2 ← a, Y2 ← b}
Resolución General
Resolución lineal y SLD
Ejemplo completo
Fin 2
Descargar