37
Introducci´ on Programas completados Resoluci´on-SLDNF Programas L´ogicos Generales Metodolog´ ıa de Programaci´on I Negaci´ on Dr. Alejandro Guerra-Hern´ andez Departamento de Inteligencia Artificial Facultad de F´ ısica e Inteligencia Artificial [email protected] http://www.uv.mx/aguerra Maestr´ ıa en Inteligencia Artificial 2011

Metodolog a de Programaci on I Negaci on - uv.mx · (comp()) y usamos la regla NAF. ... IPor una simple transformaci on, obtenemos: en(X 1;X 2) X 1 = c;X 2 = b en(X 1;X 2) X 1 = b;X

Embed Size (px)

Citation preview

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Metodologıa de Programacion INegacion

Dr. Alejandro Guerra-Hernandez

Departamento de Inteligencia ArtificialFacultad de Fısica e Inteligencia Artificial

[email protected]://www.uv.mx/aguerra

Maestrıa en Inteligencia Artificial 2011

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Modelo mınimo de Herbrand y conocimiento positivo

I Los programas definitivos expresan exclusivamenteconocimiento positivo, explıcito en el modelo mınimo deHerbrand.

I Consideren el siguiente programa ∆ en el mundo de los cubos:

sobre(X ,Y ) ← en(X ,Y ).

sobre(X ,Y ) ← en(X ,Z ), sobre(Z ,Y ).

en(c , b).

en(b, a).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Construccion del modelo mınimo de Herbrand

I Se computa usando el operador de consecuencia logicainmediata T∆, hasta encontrar un punto fijo:

T∆ ↑ 0 = ∅T∆ ↑ 1 = {en(c , b), en(b, a)}T∆ ↑ 2 = {en(c , b), en(b, a), sobre(c , b), sobre(b, a)}T∆ ↑ 3 = {en(c , b), en(b, a), sobre(c , b), sobre(b, a), sobre(c , a)}T∆ ↑ 4 = T∆ ↑ 3

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Supuesto del mundo cerrado (CWA)

I Dado el modelo mınimo de Herbrand, tenemos que:

¬sobre(a, b) 6∈ {en(c , b), en(b, a), sobre(c , b), sobre(b, a), sobre(c , a)}

I El conocimiento negativo esta implıcito.

I Si no hay una salida de Xalapa a Mexico a las 10:30am segunel tablero de la terminal de autobuses, asumimos que no haysalida a esa hora, si todas las corridas estan ahı.

I Suposicion del mundo cerrado (CWA), una pseudo-reglade inferencia:

∆ 6` α¬α

(CWA)

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Consideraciones sobre el CWA

I En el caso de los sistemas correctos y completos, la condicionα 6∈ M∆ es equivalente a ∆ 6|= α.

I La condicion de CWA puede ser remplazada por α 6∈ M∆.

I Se sigue entonces, por completitud, que ∆ 6|= α y usando laCWA inferimos que ¬α.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Ejemplo sobre ∆

I Usando CWA se puede inferir (no derivable) que ¬sobre(b, c):

← sobre(b, c)

← en(b, c) ← en(b,Z0), sobre(Z0, c)

← sobre(a, c)

← en(a, c) ← en(a,Z2), sobre(Z2, c)

I Por completitud ∆ 6|= sobre(b, c) . . .

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Problemas

I La no-derivabilidad para los programas definitivos es nodecidible en el caso general. No se puede determinar si lapseudo-regla CWA aplica o no.

I Se puede proponer una version mas debil de la CWA:Asumimos que ¬α es consecuencia de ∆ ssi existe unarbol-SLD fallido finito para ← α:

← α tiene un arbol-SLD finito fallido

¬α(NAF )

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Problemas: la NAF no resuelve ciertos casos

Ejemplo

I Si extendemos ∆ con la siguiente clausula evidentementeverdadera sobre(X ,Y )← sobre(X ,Y ).

I El arbol-SLD de la meta ← sobre(b, c) sigue sin contenerrefutaciones, pero ahora ¡es infinito!

I Por lo tanto no podemos concluir que ¬sobre(b, c) usandoNAF, pero si usando CWA.

I Peor aun: ¬sobre(b, c) no es una consecuencia logicadel programa ∆.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Soluciones

I Considerar al programa ∆ como una abreviatura de unprograma mas grande, del cual se siguen las literalesnegativas. Esto es posible si consideramos la complecion de ∆(comp(∆)) y usamos la regla NAF .

I Otra solucion posible es redefinir el concepto de consecuencialogica, de forma que solo algunos modelos de ∆ seanconsiderados (el mınimo de Herbrand).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Complecion de un programa

I La idea se debe a K. L. Clark [2]: Un programa definitivo ∆,en realidad quiere expresar algo mas que su conjunto declausulas definitivas:

sobre(X ,Y ) ← en(X ,Y ).

sobre(X ,Y ) ← en(X ,Z ), sobre(Z ,Y ).

I lo cual equivale a:

sobre(X ,Y )← en(X ,Y ) ∨ (en(X ,Z ), sobre(Z ,Y ))

I ¿Que sucede si remplazamos ← por ↔?

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Si y solo si

I La formula

sobre(X ,Y )↔ en(X ,Y ) ∨ (en(X ,Z ), sobre(Z ,Y ))

I expresa que X esta sobre Y si y solo si una de las condicioneses verdadera. Esto es, si ninguna de las condiciones se cumple,¡se sigue que X no esta sobre Y !

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Problemas con los hechos

I Esta tecnica solo se puede aplicar a clausulas que tienencabezas identicas.

I Consideren los siguientes hechos: en(c , b). en(b, a).

I Por una simple transformacion, obtenemos:

en(X1,X2) ← X1 = c ,X2 = b

en(X1,X2) ← X1 = b,X2 = a

I Equivalente a:

en(X1,X2) ↔ (X1 = c ,X2 = b) ∨(X1 = b,X2 = a)

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Programa completado (primera transformacion)

I Sea ∆ un programa logico definitivo. Su complecion comp(∆)es el conjunto de formulas obtenido a partir de trestransformaciones:

1. Para cada sımbolo de predicado φ remplazar la clausula α dela forma φ(t1, . . . , tm)← α1, . . . , αn (n ≥ 0), por:

φ(X1, . . . ,Xm)← ∃Y1, . . . ,Yi (X1 = t1, . . . ,Xm = tm, α1, . . . , αn)

donde las Yi son todas variables que ocurren en αi

0 ≤ i ≤ n y las Xi son variables unicas que noocurren en αi .

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Programa completado (segunda transformacion)

2. Para cada sımbolo de predicado φ remplazar todas las fbf:

φ(X1, . . . ,Xm)← β1 . . .

φ(X1, . . . ,Xm)← βj

por la formula:

∀X1, . . . ,Xm(φ(X1, . . . ,Xm)↔ β1∨, . . . ,∨βj si j > 0

∀X1, . . . ,Xm(¬φ(X1, . . . ,Xm)) si j = 0

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Programa completado (tercera transformacion)

3. Y se define igualdad (equivalencia, congruencia y unificacion):

∀(X = X )

∀(X = Y ⇒ Y = X )

∀(X = Y ∧ Y = Z ⇒ X = Z)

∀(X1 = Y1 ∧ · · · ∧ Xn = Yn ⇒ f (X1, . . . ,Xn) = f (Y1, . . . ,Yn))

∀(X1 = Y1 ∧ · · · ∧ Xn = Yn ⇒ (φ(X1, . . . ,Xn)⇒ φ(Y1, . . . ,Yn))

∀(f (X1, . . . ,Xn) = f (Y1, . . . ,Yn)⇒ X1 = Y1 ∧ · · · ∧ Xn = Yn)

∀(¬f (X1, . . . ,Xm) = g(Y1, . . . ,Yn))(Si f /m 6= g/n)

∀(¬X = t)(Si X es un subtermino propio de t)

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Ejemplo sobre comp(∆)

I El primer paso produce:

sobre(X1,X2) ← ∃X ,Y (X1 = X ,X2 = Y , en(X ,Y ))

sobre(X1,X2) ← ∃X ,Y ,Z (X1 = X ,X2 = Y , en(Z ,Y ), sobre(Z ,Y ))

en(X1,X2) ← (X1 = c ,X2 = b)

en(X1,X2) ← (X1 = b,X2 = a)

I dos pasos mas adelante obtenemos:

∀X1,X2(sobre(X1,X2 ↔ ∃X ,Y (. . . ) ∨ ∃X ,Y ,Z (. . . ))

∀X1,X2(en(X1,X2) ↔ (X1 = c ,X2 = b)

∨(X1 = b,X1 = a))

I y definimos igualdad como identidad y unificacion.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Propiedades NAF

Consistencia Sea ∆ un programa definitivo y ← α una metadefinitiva. Si ← α tiene un arbol-SLD finito fallido,entonces comp(∆) |= ∀(¬α).

Completitud Sea ∆ un programa definitivo. Si comp(∆) |= ∀(¬α)entonces existe un arbol finito fallido para la metadefinitiva ← α.

I Pero la completitud no aplica a Prolog :( Solo a arbolesSLD justos.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Arboles-SLD justos

I Las derivaciones-SLD justas (fair) o bien son finitas ogarantizan que cada atomo en la derivacion (o caso de este),es seleccionado eventualmente por las reglas de computacion.

I Un arbol-SLD es justo si todas sus derivaciones son justas.

I Implementacion: selecciona la submeta mas a la izq. y agreganuevas submetas al final de esta (busqueda en amplitud).

I Sin embargo, pocos sistemas implementan tal estrategiapor razones de eficiencia.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Metas generales

I Al combinar la resolucion-SLD con la NAF es posiblegeneralizar el concepto de meta para que incluyan literalespositivas y negativas.

I Una meta general tiene la forma:

← α1, . . . , αn (n ≥ 0)

donde cada αi es una literal positiva o negada.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Resolucion-SLDNF

I Sea ∆ un programa definitivo, G0 una meta general y R unafuncion de seleccion. Una derivacion SLDNF de G0 usando R,es una secuencia finita o infinita de metas generales:

G0α0 G1 . . .Gn−1

αn−1 Gn

donde Giαi Gi+1 puede ser:

1. la literal R-seleccionada en Gi es positiva y Gi+1 se deriva porresolucion SLD;

2. la literal R-seleccionada en Gi es negativa (¬α) yla meta ← α tiene un arbol SLD fallido y finito yGi+1 se obtiene a partir de Gi eliminando ¬α (encuyo caso αi , corresponde al marcador especial FF ).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Derivaciones finitamente fallidas y plantadas

I Por lo tanto, ademas de la refutacion y de la derivacioninfinita, existen dos clases de derivaciones SLDNF completasdada una funcion de seleccion:

1. Una derivacion se dice (finitamente) fallida si (1) la literalseleccionada es positiva y no unifica con ninguna cabeza de lasclausulas del programa, o (2) la literal seleccionada es negativay tiene un fallo finito.

2. Una derivacion se dice plantada (stuck) si la submetaseleccionada es de la forma ¬α y ← α tiene un falloinfinito.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Ejemplo

I Considere el siguiente programa: en(c, b), en(b, a).I La meta ← en(X ,Y ),¬en(Z ,X ) tiene una refutacion-SLDNF:

G = ← en(X ,Y ),¬en(Z ,X ).

G0 = ← en(X ,Y ).

α0 = en(c , b).

θ0 = {X/c ,Y /b}

G1 = ¬en(Z ,X )θ0 = ← en(Z , c)

α1 = FF

θ1 = ε

G2 = �

θ = θ0θ1 = {X/c ,Y /b}

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Consistencia de la resolucion-SLDNF

I Como es de esperarse, la resolucion-SLDNF es consistente,despues de todo, la resolucion-SLD y la NAF son consistentes.

I Sea ∆ un programa definitivo y ← α1, . . . , αn una metageneral. Si ← α1, . . . , αn tiene una refutacion-SLDNF con unasubstitucion computada θ, comp(∆) |= ∀(α1θ, . . . , αnθ).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Incompletitud de la resolucion-SLDNF

I Sin embargo, la resolucion-SLDNF no es completa aunquepudieramos haber esparado lo contrario.

I ← ¬en(X ,Y ) corresponde a la consulta ¿Hay algunos bloquesX e Y , tal que X no esta en Y ? El bloque a no esta encimade ningun bloque, etc. Pero la derivacion SLDNF de← ¬en(X ,Y ) falla porque la meta ← en(X ,Y ) tiene exito.

I La meta general ← en(X ,Y ) no debe leerse como unaconsulta cuantificada existencialmente, sino como una pruebauniversal: ¿Para todo bloque X e Y, No esta X en Y?

I Las funciones de seleccion que arrojan solo literalesnegativas de base se conocen como seguras.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Clausulas y programas generales

I Una clausula general es una fbf de la forma A0 ← α1, . . . , αn

donde A0 es una fbf atomica y α1, . . . , αn son literales(n ≥ 0).

I Un programa logico general es un conjunto finito de clausulasgenerales.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Ejemplo

base(X ) ← en(Y ,X ), en la mesa(X ).

en la mesa(X ) ← ¬no en la mesa(X ).

no en la mesa(X ) ← en(X ,Y ).

en(c , b).

en(b, a).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Programa Logico Estratificado

I Un programa general ∆ se dice estratificado si y solo si existeal menos una particion ∆1 ∪ · · · ∪∆n de ∆ tal que :

1. Si p(. . . )← q(. . . ), · · · ∈ ∆i entonces ∆q ⊆ ∆1 ∪ · · · ∪∆i ;2. Si p(. . . )← ¬q(. . . ), · · · ∈ ∆i entonces ∆q ⊆ ∆1 ∪ · · · ∪∆i−1.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Ejemplo

I El siguiente programa esta estratificado:

∆2 :

base(X ) ← en(Y ,X ), en la mesa(X ).

en la mesa(X ) ← ¬no en la mesa(X ).

∆1 :

no en la mesa(X ) ← en(X ,Y ).

en(c , b).

en(b, a).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Bosque-SLDNF (1)

I Sea ∆ un programa general, G0 una meta general, y R unafuncion de seleccion. El bosque SLDNF de G0 (usando ∆ yR) es el bosque mas pequeno, tal que:

1. G0 es la raız del arbol.2. Si G es un nodo en el bosque cuya literal seleccionada es

positiva, entonces para cada clausula α tal que G ′ puede serderivada de G y α (con MGU θ), G tiene un hijo etiquetadoG ′. Si no existe tal clausula, entonces G tiene un hijoetiquetado FF (falla finita);

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Bosque-SLDNF (2)

3. Si G es un nodo del bosque cuya literal seleccionada es de laforma ← ¬α (G es de la forma← α1, . . . , Li−1, αi , Li+1, . . . , αn), entonces:

I El bosque contiene un arbol cuyo nodo raız es ← α.I Si el arbol con raız ← α tiene una hoja etiqutada como � con

la substitucion computada vacıa ε, entonces G tiene un solohijo etiquetado FF ;

I Si el arbol con raız ← α es finito y tiene todas sus hojasetiquetadas FF, entonces G tiene un solo hijo etiquetado(con susbstitucion asociada vacıa ε) como← α1, · · · Li−1, Li+1, . . . , αn.

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Ejemplo programa estratificado

I Consideren el siguiente programa general estratificado ∆:

base(X ) ← en(Y ,X ), en la mesa(X ).

en la mesa(X ) ← ¬no en la mesa(X ).

no en la mesa(X ) ← en(X ,Y ).

encima(X ,Y ) ← en(X ,Y ).

encima(X ,Y ) ← en(X ,Z ), encima(Z ,Y ).

en(c , b).

en(b, a).

I Y la meta ← base(X )

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Ejemplo bosque-SLDNF

I El bosque-SLDNF para la meta ← base(X ) es:

base(X ).

← en(Y0,X ), en la mesa(X ).

← en la mesa(b).

← ¬no en la mesa(b).

FF

← en la mesa(a).

← ¬en la mesa(a).

← no en la mesa(b).

← en(b,Y0).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Bosque-SLDNF cont...

I Y:

← no en la mesa(a).

← en(a,Y0).

FF

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Otro ejemplo

I Consideren el siguiente programa:

termina(X ) ← ¬ciclo(X ).

ciclo(X ) ← ciclo(X ).

I El bosque incluye una derivacion plantada para termina(X ) yuna derivacion infinita para ciclo(X ).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Bosque-SLNDF

I El bosque-SLDNF, una derivacion plantada y la otra infinta:

← termina(X ).

← ¬ciclo(X ).

← ciclo(X ).

← ciclo(X ).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Propiedades de la resolucion-SLDNF

Correctez Sea ∆ un programa general y ← α1, . . . , αn unameta general. Entonces:

I Si ← α1, . . . , αn tiene una substitucion derespuesta computada θ, entoncescomp(∆) |= ∀(α1θ ∧ · · · ∧ αnθ).

I Si ← α1, . . . , αn tiene un arbol-SLDNF finitoque falla, entoncescomp(∆) |= ∀(¬(α1 ∧ · · · ∧ αn)).

Introduccion Programas completados Resolucion-SLDNF Programas Logicos Generales

Bibliografıa

U. Nilsson and J. Maluszynski.Logic, Programming and Prolog.John Wiley & Sons Ltd, 2nd edition, 2000.

K. L. Clark,Logic and Databases, ch. Negation as failure, pp. 293–332.New York, USA: Plenum Press, 1978.