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)).
Top Related