0% encontró este documento útil (0 votos)
365 vistas

Resolución SDL y Prolog

Este documento resume la clase anterior sobre resolución SLD y Prolog. Explica que la resolución SLD es una variante de la resolución general que se aplica a conjuntos de cláusulas de Horn y goza de buenas propiedades de corrección y completitud. También presenta un ejemplo de derivación SLD para mostrar una refutación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
365 vistas

Resolución SDL y Prolog

Este documento resume la clase anterior sobre resolución SLD y Prolog. Explica que la resolución SLD es una variante de la resolución general que se aplica a conjuntos de cláusulas de Horn y goza de buenas propiedades de corrección y completitud. También presenta un ejemplo de derivación SLD para mostrar una refutación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 36

Repaso de la clase pasada

Cl
ausulas de Horn
Refutaciones como computaciones

Resolucion SLD y PROLOG


Eduardo Bonelli
Departamento de Computaci
on
FCEyN
UBA

24 de octubre, 2006

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

M
etodo de resoluci
on general

Metodo de resolucion general


Dado un conjunto de clausulas S, se aplica repetidamente la
regla de resoluci
on general
Cada aplicacion de la regla de resoluci
on da lugar a un paso
de resolucion general
El objetivo es obtener una refutaci
on (conjunto de clausulas
que contengan a la clausula vaca) a partir de S a traves de
pasos de resolucion (en cuyo caso decimos que S tiene una
refutacion por resoluci
on general)
Cada paso de resoluci
on general preserva insatisfactibilidad +
las refutaciones son trivialmente insatisfactibles = refutacion
por resolucion general de S implica que S es insatisfactible

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

M
etodo de resoluci
on general

Regla de resolucion (general)


Regla de resolucion (general)
{B1 , . . . , Bk , A1 , . . . , Am }

{D1 , . . . , Dl , C1 , . . . , Cn }

({A1 , . . . , Am , C1 , . . . , Cn })
donde es el MGU de {B1 , . . . , Bk , D1 , . . . , Dl }.
Asumimos que las clausulas {B1 , . . . , Bk , A1 , . . . , Am } y
{D1 , . . . , Dl , C1 , . . . , Cn } no tienen variables en com
un; en
caso contrario se renombran las variables
Observar que (B1 ) = . . . = (Bk ) = (D1 ) = . . . = (Dl )
La clausula ({A1 , . . . , Am , B1 , . . . , Bn }) se llama resolvente
(de {B1 , . . . , Bk , A1 , . . . , Am } y {D1 , . . . , Dl , C1 , . . . , Cn })
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

M
etodo de resoluci
on general

Resolucion SLD
Si bien el metodo de resoluci
on general es completo, hallar
refutaciones es un proceso muy caro en el caso general
Una manera de proceder es restringir el metodo de resolucion
(ej. resolucion lineal)
Mayor eficiencia en el proceso de producir refutaciones puede
lograrse si nos restringimos a subclases de f
ormulas
Una de estas clases es la de Clausulas de Horn
Una clausula de Horn es una disyunci
on de literales que tiene
a lo sumo un literal positivo
Para conjuntos de clausulas de Horn puede usarse una
variante de resoluci
on general, llamada resolucion SLD, que
goza de buenas propiedades
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Clausulas
Forma clausal
Conjuncion de sentencias prenexas de la forma x1 . . . xm C donde
1

C es una disyunci
on de literales y

los conjuntos {x1 , . . . , xm } de variables ligadas son disjuntos


para todo par distinto de clausulas.
Cada x1 . . . xm C se llama clausula
La forma clausal
x11 . . . x1m1 C1 . . . xk1 . . . xkmk Ck
se escribe {C10 , . . . , Ck0 } donde Ci0 resulta de reemplazar la
disyuncion de literales Ci por el conjunto de literales asociado
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Clausula de Horn
Clausula de Horn
Una clausula x1 . . . xm C tal que la disyunci
on de literales C tiene
a lo sumo un literal positivo
OBS: C puede tomar una de las formas:
{B, A1 , . . . , An }
{B}
{A1 , . . . , An } (llamada clausula goal o negativa)
Clausula de Definicion (Definite Clause)
Una clausula x1 . . . xm C tal que la disyunci
on de literales C tiene
exactamente un literal positivo
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Clausulas de Horn

Observacion
No toda formula de primer orden puede expresarse como una
clausula de Horn
Por ejemplo: x.P(x) Q(x)
Sin embargo, el conjunto de clausulas de Horn es
suficientemente expresivo para representar programas, en la
vision de resolucion como computaci
on (mas detalles por
venir)

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Notacion PROLOG

Dado que

B A1 . . . An
(A1 . . . An ) B
(A1 . . . An ) B

se usa la notacion
B : A1 , . . . , An para {B, A1 , . . . , An }
B. para B

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Derivacion SLD

Derivacion SLD
Sea S un conjunto de clausulas de Horn (con nombre de variables
disjuntos) que consiste en
un conjunto D de clausulas de definici
on
un goal G
Una derivacion SLD para S es una secuencia
< N0 , N1 , . . . , Np >
de clausulas negativas que satisfacen las siguientes dos condiciones.

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Derivacion SLD

N0 = G , donde G es el goal

para todo Ni en la secuencia, 0 < i < p, si Ni es


: A1 , . . . , Ak1 , Ak , Ak+1 , . . . , An
entonces hay alguna clausula de definici
on Ci de la forma
A : B1 , . . . , Bm en D tal que Ak y A son unificables con
MGU , y si
m > 0, entonces
Ni+1 =: (A1 , . . . , Ak1 , B1 , . . . , Bm , Ak+1 , . . . , An )
m = 0, entonces
Ni+1 =: (A1 , . . . , Ak1 , Ak+1 , . . . , An )

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Refutacion SLD
Refutacion SLD: derivaci
on SLD < N0 , . . . , Np > tal que Np = 
C1 TTTT N0 = G
TTTT
T
C2 TTTT
N1
TTTT
T
C3 TTTT
N2
TTTT
T

2
3

N3

...
Cp1 SS
SSSS
S
Cp SSS
Np1
SSSS

Np = 
Eduardo Bonelli

p1
p

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Refutacion SLD
En cada paso, las clausulas
: A1 , . . . , Ak1 , Ak , Ak+1 , . . . , An y A : B1 , . . . , Bm son
resueltas
Los atomos Ak y A son unificados con MGU i
El literal Ak se llama atomo seleccionado de Ni
Las clausulas N0 , C1 , . . . , Cp se llaman clausulas de entrada
La sustitucion
p . . . 1
se llama sustituci
on respuesta (se usa en PROLOG para
extraer la salida del programa)

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Ejemplo

Consideremos las siguientes clausulas de definici


on
C1 = add(U, 0, U).
C2 = add(X , succ(Y ), succ(Z )) : add(X , Y , Z ).
y la clausula goal B siguiente:
: add(succ(0), V , succ(succ(0))).
Deseamos mostrar que el conjunto de estas clausulas (i.e.
{C1 , C2 , B}) es insatisfactible
Contamos con la siguiente refutaci
on SLD

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Ejemplo

Cl
ausula goal
Cl
ausula de entrada
: add(succ(0), V , succ(succ(0))) C2
: add(succ(0), Y , succ(0))
C1

donde
1 = {succ(0)/X , succ(0)/Z , succ(Y )/V }
2 = {succ(0)/U, 0/Y }
La sustitucion resultado es

Sust.
1
2

{succ(0)/X , succ(0)/Z , succ(0)/V , succ(0)/U, 0/Y }

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Correctitud y completitud

Correctitud
Si un conjunto de clausulas de Horn tiene una refutacion SLD,
entonces es insatisfactible
Completitud
Sea L un lenguaje de primer orden sin igualdad. Dado un conjunto
finito S de clausulas de Horn, si S es insatisfactible, existe una
refutacion SLD cuya primera clausula es alguna clausula negativa
: B1 , . . . , Bn en S

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Arboles
SLD
Tal como se desprende de su definici
on, hay dos decisiones
que determinan el espacio de b
usqueda en el que se halla una
refutacion SLD
1

Estrategia de selecci
on del atomo seleccionado Ak
Dado Ni =: A1 , . . . , An , da lo mismo seleccionar cualquier

atomo Ai para construir la refutaci


on?
Puedo elegir siempre el de m
as a la izquierda o el de m
as a la
derecha?

Estrategia de selecci
on de la clausula de definicion a usar para
construir el resolvente (junto con Ak )

Cada estrategia de selecci


on del atomo seleccionado
determina un arbol SLD
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Ejemplo

Cl
ausulas de Def.
p(X,Z) :- q(X,Y), p(Y,Z).
p(X,X).
q(a,b).

Goal
p(X,b)

Primero armamos el arbol SLD asumiendo que la estrategia


de seleccion de atomos es la que selecciona el de mas a la
izquierda
Luego hacemos lo mismo con la estrategia que selecciona el
de mas a la derecha

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Ejemplo - atomo de mas la izquierda


: p(X , b)
FF
q
q
FF 2
1 qqq
FF
q
q
FF
xqqq
#
 ({b/X})
: q(X , Y ), p(Y , b)
3


: p(b, b)
MMM
ll
MMM2
1 llll
l
MMM
lll
l
M&
l
vl
 ({a/X})
: q(b, U), p(U, b) falla

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Cl
ausulas de Horn
Derivaci
on SLD
Ejemplo

Arboles
SLD

Ejemplo - atomo de mas la derecha


: p(X , b)

DD
DD 2
DD
DD
!

ss
1 ss
s
s
s
s
y ss

: q(X , Y ), p(Y , b)

-:q(X,Y),q(Y,U),
p(U,b)

-:q(X,Y),q(Y,U),
q(U,V),p(V,b)






1

: q(X , b)

II
II 2
II
II
II
I$

ww
1 ww
w
w
w
{w
w

JJ
JJ2
JJ
JJ
JJ
J$
Eduardo Bonelli

 ({b/X})

II
II
II2
II
II
I$

rrr
1 rr
r
r
yrrr

: q(X , Y ), q(Y , b)  ({a/X})


3

: q(X , a) falla
Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Motivacion

En esta parte de la clase exploramos de que manera una


refutacion SLD puede verse como una computacion
Asimismo, vamos a enfatizar el rol de la sustitucion respuesta
como resultado de calculo

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Motivacion
Volviendo al ejemplo que consista en las clausulas
C1 = add(U, 0, U).
C2 = add(X , succ(Y ), succ(Z )) : add(X , Y , Z ).
B =: add(succ(0), V , succ(succ(0)))
Observar que
U.C1 X .Y .Z .C2 V .B es insatisf
sii
(U.C1 X .Y .Z .C2 V .B) es valida
sii
(U.C1 X .Y .Z .C2 ) V .B es valida
sii
(U.C1 X .Y .Z .C2 ) V .B es valida
sii
(U.C1 X .Y .Z .C2 ) V .add(succ(0), V , succ(succ(0))) es valida
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Motivacion
La sentencia
U.C1 X .Y .Z .C2 define intuitivamente a la suma
V .add(succ(0), V , succ(succ(0))) pregunta por un V tal que
succ(0) + V = succ(succ(0))

Por lo que la sentencia


(U.C1 X .Y .Z .C2 ) V .add(succ(0), V , succ(succ(0)))
puede interpretarse como una solicitud por calcular V , la
diferencia de succ(succ(0)) y succ(0), dada la definicion de la
suma especificada por {C1 , C2 }
El conjunto de clausulas {C1 , C2 } puede verse como un
programa logico
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Programa logico

Un programa logico es un par (P, G ) donde


P es un conjunto de clausulas de Horn de definicion y
G es un goal : B1 , . . . , Bn (clausula negativa)
Las clausulas en P de la forma
B. se llaman hechos
B : A1 , . . . , Ak se llaman reglas

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Notar que
P x1 . . . . xn .G
P (x1 . . . . .xn .B1 . . . Bn )
(P (x1 . . . . .xn .B1 . . . Bn ))
P (x1 . . . . .xn .B1 . . . Bn ))

es
es
es
es

insatisf. sii
insatisf. sii
insatisf. sii
valida

Desde el punto de vista de programaci


on se buscan instancias
para x1 , . . . , xn tal que
si sustumos estas variables por sus instancias obteniendo
B10 , . . . , Bn0
la conjunci
on B10 . . . Bn0 es consecuencia logica del
programa P

OBS: Si las instancias tienen variables lo que es consecuencia


logica de P es la clausura existencial de B10 . . . Bn0
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Notar que
P x1 . . . . xn .G
P (x1 . . . . .xn .B1 . . . Bn )
(P (x1 . . . . .xn .B1 . . . Bn ))
P (x1 . . . . .xn .B1 . . . Bn ))

es
es
es
es

insatisf. sii
insatisf. sii
insatisf. sii
valida

Usaremos resoluci
on SLD para hallar una refutacion de
P x1 . . . . xn .G
La sustitucion respuesta proveera las instancias deseadas
para las variables x1 , . . . , xn

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Ejemplo I
padres(fred, sally).
padres(tina, sally).
padres(sally, john).
padres(sally, diane).
padres(sam, bill).
hermanos(A, B) :- padres(P, A), padres(P, B), A \== B.

Si el goal es hermanos(john,X) entonces la refutacion SLD


para P X .hermanos(john, X ) arrojara la sustitucion
respuesta = {diane/X }
OBS: Puede que la sustituci
on respuesta asigne valores a
variables intermedias (no exhibidas en ) que sugieron en el
proceso de b
usqueda de una refutaci
on
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Ejemplo II
Terminos de primer orden para representar estructuras de datos
mas(A,B) (suma)
menos(A,B) (resta)
por(A,B) (producto)
eval(mas(A,B),CV):-eval(A,AV),eval(B,BV),CV is AV+BV.
eval(menos(A,B),CV):-eval(A,AV),eval(B,BV),CV is AV-BV.
eval(por(A,B),CV):-eval(A,AV),eval(B,BV),CV is AV*BV.
eval(Num,Num):-number(Num).

Dado el goal eval(menos(mas(2,3),1),X) la sustitucion


resultado sera {4/X }
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Busqueda de refutaciones SLD en PROLOG


PROLOG usa la estrategia de selecci
on del atomo de mas a la
izquierda en un goal
Asimismo, recorre el arbol SLD en profundidad (depth-first
search)
La ventaja del recorrido en profundidad es que puede ser
implementado de manera muy eficiente
Se usa una pila para representar los atomos del goal
Se hace un push del resolvente del atomo del tope de la pila
con la clausula de definici
on
Se hace un pop cuando el atomo del tope de la pila no unifica
con ninguna clausula de definici
on mas (luego, el atomo que
queda en el tope se unifica con la siguiente clausula de
definici
on)
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Mas sobre PROLOG

Dos temas de PROLOG que no hemos desarrollado y que nos


limitaremos a mencionar brevemente:
1

Cut

Deduccion de informaci
on negativa

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Cut (!)

Es una anotacion que permite podar el arbol SLD


Es de caracter extra-l
ogico (i.e. no se corresponde con un
predicado estandar de la l
ogica)
Se encuentra presente por cuestiones de eficiencia
Debe usarse con cuidado dado que puede podarse una rama
de exito
Nos limitaremos a presentar un ejemplo

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Cut (!)
Programa ejemplo
p(a).
p(X) :- q(X), r(X).
p(X) :- u(X).
q(X) :- s(X).
r(a).
r(b).
s(a).
s(b).
s(c).
u(d).

Eduardo Bonelli

?- p(X),!.
X=a ;
no
?- r(X),!,s(Y).
X=a Y=a ;
X=a Y=b ;
X=a Y=c ;
no
?- r(X), s(Y), !.
X=a Y=a ;
no
Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Deduccion de informacion negativa


No puede deducirse que cierta informaci
on negativa B (B atomo
ground) es consecuencia l
ogica de un programa P usando
resolucion
P (x1 . . . . .xn .B)
(P (x1 . . . . .xn .B)
P (x1 . . . . .xn .B)
P x1 . . . . xn .B

es
es
es
es

valida sii
insatisf. sii
insatisf. sii
insatisf.

Puede probarse que P x1 . . . . xn .B siempre es satisfactible


Por lo tanto, nunca se hallara una refutaci
on de
P x1 . . . . xn .B

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Deduccion de informacion negativa

Hay dos maneras de encarar el problema:


1
2

CWA (Closed Word Assumption)


Negaci
on por falla (Negation as failure)

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

CWA

Se asume que todos los hechos y reglas validos ya han sido


incluidos como parte del programa, por lo que cualquier cosa
que no se deduce del mismo es falsa
Regla de CWA
B atomo ground B no es consecuencia l
ogica de P
B
El problema es c
omo determinar que B no es consecuencia
logica de un programa (puede haber arboles SLD con ramas
infinitas)

Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Negation as failure
Es una version restringida de la regla de CWA
Se dice que un arbol SLD falla finitamente si es finito y no
tiene ramas de exito
Dado un programa P el conjunto de falla finita de P es
{B | B atomo ground y existe un arbol SLD que falla
finitamente con : B como raz}
Negation as failure
B atomo ground B en conjunto de falla finita de P
B
Es menos poderoso que CWA pero efectivo (ie. computable)
Eduardo Bonelli

Resoluci
on SLD y PROLOG

Repaso de la clase pasada


Cl
ausulas de Horn
Refutaciones como computaciones

Motivaci
on
Programa L
ogico
Ejemplos en PROLOG
M
as sobre PROLOG

Ejemplo

Negation as failure nos permite deducir student(mary) a partir


del programa
student(joe).
student(bill).
student(jim).
teacher(mary).

Eduardo Bonelli

Resoluci
on SLD y PROLOG

También podría gustarte