• No se han encontrado resultados

Principio de Resolución

N/A
N/A
Protected

Academic year: 2021

Share "Principio de Resolución"

Copied!
13
0
0

Texto completo

(1)

Cap´ıtulo 4

Principio de Resoluci´on

Resumen Este cap´ıtulo introduce el mecanismo de inferencia utilizado por la ma-yor´ıa de los sistemas de programaci´on l´ogica. Si seguimos considerando Prolog des-de la perspectiva des-de los sistemas formales, hemos des-descrito ya su lenguaje y su teor´ıa de modelo; ahora describiremos su teor´ıa de prueba. El mecanismo en cuesti´on es un caso particular de la regla de inferencia llamadaprincipio de resoluci´on [8]. La idea es acotar el uso de este principio a programas definitivos, dando lugar a la resoluci´on-SLD [5]. Este principio constituye el fundamento de la sem´antica opera-cional de los programas definitivos. La resoluci´on-SLD se demostrar´a correcta con respecto a la teor´ıa del modelo descrita en la clase anterior.

4.1. Introducci´on

La programaci´on l´ogica concierne el uso de la l´ogica (restringida a cl´ausulas) para representar y resolver problemas. Este uso es ampliamente aceptado en Inteli-gencia Artificial (IA), donde la idea se resume como sigue: Un problema o sujeto de investigaci´on puede describirse mediante un conjunto de f´ormulas bien formadas (fbf), de preferencia en forma de cl´ausulas. Si tal descripci´on es lo suficientemente precisa, la soluci´on al problema o la respuesta a la pregunta planteada en la investi-gaci´on, es una consecuencia l´ogica del conjunto de fbf que describen el problema. Por lo tanto, encontrar que fbfφ son consecuencia l´ogica de un conjunto de fbf ∆,

es crucial para muchas ´areas de la IA, incluyendo la programaci´on l´ogica. De forma que nos gustar´ıa tener un procedimiento, algor´ıtmico, que nos permita establecer si

∆ |= φ es el caso, o no. Este es el tema del presente cap´ıtulo: un m´etodo decidible

conocido como principio de resoluci´on [8].

En el caso de la l´ogica proposicional, la implicaci´on l´ogica esdecidible, es decir, existe un algoritmo que puede resolver el problema (contestar si ´o no para cada caso particular∆ |= φ). Si n es el n´umero de ´atomos distintos que ocurren en estas fbf,

el n´umero de interpretaciones posibles es finito, de hecho es 2n. Un algoritmo para

(2)

computar∆ |= φ simplemente busca si φ es verdadero en todos los modelos de ∆.

¿Qu´e sucede en el contexto de la l´ogica de primer orden?

La intuici´on nos dice que el procedimiento de decisi´on de la l´ogica proposicional no es adecuado en primer orden, pues en este caso podemos tener una cantidad infinita de dominios e interpretaciones diferentes. Lo que es peor, el teorema de Church [2, 11], muestra que la l´ogica de primer orden es indecidible:

Teorema 4 (Church) El problema de si ∆ |= φ, cuando ∆ es un conjunto finito

arbitrario de fbf, yφ es una fbf arbitraria, es indecidible.

Observen que el problema es indecidible para conjuntos arbitarios de fbf y para una fbfφ arbitraria. No existe un algoritmo que en un n´umero finito de pasos, de la

respuesta correcta a la pregunta ¿Esφ una consecuencia l´ogica de ∆?

Existen, sin embargo, procedimientos conocidos comoprocedimientos de prue-ba que pueden ser de gran ayuda para computar este problema. La idea es que cuando es el caso que∆ |= φ, existen procedimientos que pueden verificarlo en

un n´umero finito de pasos. Por ello suele decirse que la l´ogia de primer orden es semi-decidible. Aunque parecer´ıa trivial, siendo que∆ |= φ, preguntar ¿∆ |= φ?, en

realidad tal trivilidad es aparente. Podemos hacer la pregunta al procedimiento sin que nosotros sepamos que ese es el caso, y obtendremos una respuesta en un n´ume-ro finito de pasos. Pen´ume-ro si es el caso que∆ !|= φ obtendremos la respuesta “no” (en

el mejor de los casos) o el procidimiento no terminar´a nunca. Esto es infortunado y, peor a´un, inevitable.

Esta sesi´on introduce el procedimiento de prueba utilizado ampliamente en la programaci´on l´ogica: el principio de resoluci´on propuesto por J.A. Robinson [8]. Si bien este procedimiento est´a orientado a un lenguaje m´as expresivo que los progra-mas l´ogicos definitivos, nosotros nos concentraremos en una versi´on del principio que aplica a programas definidos y se conoce como resoluci´on-SLD [5] (resoluci´on lineal con funci´on de selecci´on para cl´ausulas definitivas).

4.2. ¿Qu´e es un procedimiento de prueba?

Hasta este momento, hemos abordado informalmente el concepto de procedi-miento de prueba como la manera de generar la prueba de que una fbfφ es

conse-cuencia l´ogica de un conjunto de fbf∆. Las fbf en ∆ se conocen como premisas y φ es la conclusi´on de la prueba.

La prueba suele consistir de un peque˜no n´umero de tansformaciones en los cua-les nuevas fbf son derivadas de las premisas y de fbf previamente derivadas. Derivar una fbf implica construirla a partir de las premisas y otras fbf derivadas, siguien-do alguna regla de inferencia. Toda regla de inferencia formaliza alguna forma natural de razonamiento. Por ejemplo, el modus ponens es usado comunmente en matem´aticas, su expresi´on es:

(3)

4.3 Pruebas y programas l´ogicos 45

φ, φ → ψ ψ

donde la l´ınea superior expresa las premisas y la l´ınea inferior la conclusi´on. Es posible ligar varias aplicaciones del modus ponens para construir una prueba. Por ejemplo, si tenemos el programa l´ogico∆ = {p(a),q(b) ← p(a),r(b) ← q(b)}

es posible derivar la fbf r(b) como sigue: 1. Derivar q(b) a partir de p(a) y q(b) ← p(a). 2. Derivar r(b) a partir de q(b) y r(b) ← q(b).

La sencuencia anterior es una prueba de que r(b) puede ser derivada de∆.

Es evidente que si usamos modus ponens, la conclusi´onψ es una consecuencia

l´ogica de las premisas: {φ,φ → ψ} |= ψ. A esta propiedad del modus ponens se le conoce como consistencia (soundness). En general un procedimiento de prueba es consistente si todas las fbf ψ que pueden ser derivadas de alg´un conjunto de fbfs ∆ usando el procedimiento, son consecuencias l´ogicas de∆. En otras palabras, un

pro-cedimiento de prueba es consistente si y s´olo si s´olo permite derivar consecuencias l´ogicas de las premisas.

Una segunda propiedad deseable de los procedimientos de prueba es su comple-tez. Un procedimiento de prueba escompleto si toda fbf que es una consecuencia l´ogica de las premisas∆, puede ser derivada usando el procedimiento en cuesti´on. El modus ponens por si mismo, no es completo. Por ejemplo, no existe secuencia

algu-na de aplicaciones del modus ponens que deriven la fbf p(a) de∆ = {p(a)∧ p(b)},

cuando es evidente que∆ |= p(a).

La regla ψφ es completa, pero no v´alida. !Nos permite extraer cualquier conclu-si´on, a partir de cualquier premisa! Esto ejemplifica que obtener completitud es sencillo, pero obetener completitud y correctez, no lo es.

4.3. Pruebas y programas l´ogicos

Recordemos que los enunciados en los programas l´ogicos tienen la estructura general de la implicaci´on l´ogica:

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

dondeα0, . . . ,αn son fbfs at´omicas y α0 puede estar ausente (para representar cl´ausulas meta). Consideren el siguiente programa definitivo ∆ que describe un

mundo donde los padres de un reci´en nacido est´an orgullosos, Juan es el padre de Marta y Marta es una reci´en nacida:

(4)

orgulloso(X) ← padre(X,Y),recien nacido(Y). padre(X,Y ) ← papa(X,Y).

padre(X,Y ) ← mama(X,Y). papa( juan,marta).

recien nacido(marta).

Observen que el programa describe ´unicamente conocimiento positivo, es decir, no especif´ıca qui´en no est´a orgulloso. Tampoco que significa para algui´en no ser padre.

Supongamos que deseamos contestar la pregunta ¿Qui´en est´a orgulloso? Esta pregunta concierne al mundo descrito por nuestro programa, esto es, concierne al modelo previsto para∆. La respuesta que esperamos es, por supuesto, juan. Ahora,

recuerden que la l´ogica de primer orden no nos permite expresar enunciados inte-rrogativos, por lo que nuestra pregunta debe formalizarse como una cl´auslula meta (enunciado declarativo):

← orgulloso(Z).

que es una abreviatura de ∀Z¬orgulloso(Z) (una cl´ausula definitiva sin cabeza), que a su vez es equivalente de:

¬∃Z orgulloso(Z).

cuya lectura es “Nadie est´a orgulloso”, esto es, la respuesta negativa a la consulta original – ¿Qui´en est´a orgulloso? La meta ahora es probar que este enunciado es falso en todo modelo del programa∆ y en part´ıcular, es falso en el modelo previsto

para∆, puesto que esto es una forma de probar que ∆ |= ∃Z orgulloso(Z). En

ge-neral para todo conjunto de fbf cerradas∆ y una fbf cerrada γ, tenemos que ∆ |= γ

si∆ ∪{¬γ} es no satisfacible (no tiene modelo).

Por lo tanto, nuestro objetivo es encontrar una substituci´on θ tal que el

con-junto ∆ ∪ {¬orgulloso(Z)θ} sea no satisfacible, o de manera equivalente, ∆ |= ∃Z orgulloso(Z)θ.

El punto inicial de nuestro razonamiento es asumir la meta G0– Para cualquier Z, Z no est´a orgulloso. La inspecci´on del programa∆ revela que una regla describe

una condici´on para que algui´en est´e orgulloso:

orgulloso(X) ← padre(X,Y),recien nacido(Y).

lo cual es l´ogicamente equivalente a:

∀(¬orgulloso(X) ⇒ ¬(padre(X,Y ) ∧ recien nacido(Y )))

Al renombrar X por Z, eliminar el cuantificador universal y usar modus ponens con respecto a G0, obtenemos:

(5)

4.3 Pruebas y programas l´ogicos 47

¬(padre(Z,Y ) ∧ recien nacido(Y ))

o su equivalente:

← padre(Z,Y ),recien nacido(Y ).

al que indentificaremos como G1. Un paso en nuestro razonamiento resulta en

rem-plazar la meta G0por la meta G1que es verdadera en todo modelo∆ ∪{G0}. Ahora

solo queda probar que∆ ∪{G1} es no satisfacible. Observen que G1es equivalente a la fbf:

∀Z∀Y (¬padre(Z,Y ) ∨ ¬recien nacido(Y ))

Por lo tanto, puede probarse que la meta G1 es no satisfacible para∆, si en

todo modelo de∆ hay una persona que es padre de un reci´en nacido. Entonces,

verificamos primero si hay padres con estas condiciones. El programa contiene la cl´ausula:

padre(X,Y ) ← papa(X,Y).

que es equivalente a:

∀(¬padre(X,Y ) ⇒ ¬papa(X,Y ))

por lo que G1se reduce a:

← papa(Z,Y ),recien nacido(Y ).

que indentificaremos como G2. Se puede mostrar que no es posible satisfacer la

nueva meta G2con el programa∆, si en todo modelo de ∆ hay una persona que es

pap´a de un reci´en nacido. El programa declara que juan es padre de marta:

papa( juan,marta).

as´ı que s´olo resta probar que “marta no es una reci´en nacida” no se puede satisfacer junto con∆:

← recien nacido(marta).

pero el programa contiene el hecho:

recien nacido(marta).

equivalente a ¬recien nacido(marta) ⇒ f lo que conduce a una refutaci´on. Este razonamiento puede resumirse de la siguiente manera: para probar la exis-tencia de algo, suponer lo contrario y usar modus ponens y la regla de eliminaci´on del cuantificador universal, para encontrar un contra ejemplo al supuesto.

Observen que la meta definitiva fue convertida en un conjunto de ´atomos a ser probados. Para ello, se seleccion´o una fbf ´atomica de la meta p(s1, . . . ,sn) y una

(6)

cl´ausula de la forma p(t1, . . . ,tn) ← A1, . . .Anpara encontrar una instancia com´un de

p(s1, . . . ,sn) y p(t1, . . . ,tn), es decir, una substituci´onθ que hace que p(s1, . . . ,sn)θ y p(t1, . . . ,tn)θ sean id´enticos. Tal substituci´on se conoce como unificador. La nue-va meta se construye remplazando el ´atomo seleccionado en la meta original, por los ´atomos de la cl´ausula seleccionada, aplicandoθ a todos los ´atomos obtenidos de

esta manera.

El paso de computaci´on b´asico de nuestro ejemplo, puede verse como una regla de inferencia puesto que transforma f´ormulas l´ogicas. Lo llamaremosprincipio de resoluci´on SLD para programas definitivos. Como mencionamos, el procedimiento combina modus ponens, eliminaci´on del cuantificador universal y en el paso final un reductio ad absurdum.

Cada paso de razonamiento produce una substituci´on, si se prueba en k pasos que la meta definida en cuesti´on no puede satisfacerse, probamos que:

← (A1, . . .Am)θ1. . .θk

es una instancia que no puede satisfacerse. De manera equivalente, que:

∆ |= (A1∧ ··· ∧ Am)θ1. . .θk

Observen que generalmente, la computaci´on de estos pasos de razonamiento no es determinista: cualquier ´atomo de la meta puede ser seleccionado y pueden haber varias cl´ausulas del programa que unifiquen con el ´atomo seleccionado. Otra fuente de indeterminismo es la existencia de unificadores alternativos para dos ´atomos. Es-to sugiere que es posible construir muchas soluciones (algunas veces, una cantidad infinita de ellas).

Por otra parte, es posible tambi´en que el atomo seleccionado no unifique con ninguna cl´ausula en el programa. Esto indica que no es posible construir un contra ejemplo para la meta definida inicial. Finalmente, la computaci´on puede caer en un ciclo y de esta manera no producir soluci´on alguna.

4.4. Substituci´on

Una substituci´on remplaza variables por t´erminos, por ejemplo, podemos rem-plazar la variable X por el t´ermino f (a) en la cl´ausula p(X) ∨ q(X), y as´ı obtener la nueva cl´ausula p( f (a))∨q( f (a)). Si asumimos que las cl´ausulas est´an cuantificadas universalmente, decimos que est´a substituci´on hace a la cl´ausula original, “menos general”. Mientras que la cl´ausula original dice que V (p(X)) =t y que V(q(X)) = t para cualquier X en el dominio, la segunda cl´ausula dice que esto s´olo es cierto cuando cuando V (X) = f (a). Observen que la segunda cl´ausula es consecuencia l´ogia de la primera: p(X) ∨ q(X) |= p( f (a)) ∨ q( f (a))

Definici´on 26 (Substituci´on) Una substituci´on θ es un conjunto finito de la forma:

(7)

4.4 Substituci´on 49

donde las Xison variables, distintas entre si, y los tison t´erminos. Decimos que

tisubstituye a Xi. La forma Xi/tise conoce como ligadura de Xi. La substituci´onθ

se dice se dice de base (grounded) si cada t´ermino ties un t´ermino base (no incluye

variables)..

La substituci´on dada por el conjunto vac´ıo, se conoce como substituci´on de identidad o substituci´on vac´ıa y se denota por ε. La restricci´on de θ sobre un conjunto de variables Var es la substitucion {X/t ∈ θ | X ∈ Var}.

Ejemplo 8 {Y/X,X/g(X,Y)} y {X/a,Y/ f (Z),Z/( f (a),X1/b} son substituciones. La restricci´on de la segunda substituci´on sobre {X,Z} es {X/a,Z/ f (a)}.

Definici´on 27 (Expresi´on) Una expresi´on es un t´ermino, una literal, o una

conjun-ci´on o disyunconjun-ci´on de literales. Una expresi´on simple es un t´ermino o una literal.

Observen que una cl´ausula es una expresi´on. Las substituciones pueden aplicarse a las expresiones, lo que significa que las variables en las expresiones ser´an rempla-zadas de acuerdo a la substituci´on.

Definici´on 28 Sea θ = {X1/t1, . . . ,Xn/tn} una substituci´on y α una expresi´on.

En-toncesαθ, la ocurrencia (instance) de α por θ, es la expresi´on obtenida al substi-tuir simult´aneamente Xipor tipara 1 ≤ i ≤ n. Si αθ es una expresi´on de base, se

dice que es una ocurrencia base y se dice queθ es una substituci´on de base para α. Si Σ = {α1, . . . ,αn} es un conjunto finito de expresiones, entonces Σθ denota

{α1θ,...,αnθ}.

Ejemplo 9 Sea α la expresi´on p(Y, f (X)) y sea θ la substituci´on {X/a,Y/g(g(X))}.

La ocurrencia deα por θ es αθ = p(g(g(X)), f (a). Observen que X e Y son si-mult´aneamente remplazados por sus respectivos t´erminos, lo que implica que X en g(g(X)) no es afectada por X/a.

Siα es una expresi´on cerrada que no es un t´ermino, por ejemplo, una literal, o

una conjunci´on o disyunci´on de literales, yθ es una substituci´on, lo siguiente se

cumple:

α |= αθ

por ejemplo: p(X) ∨ ¬q(Y) |= p(a) ∨ ¬q(Y) donde hemos usado la substituci´on

{X/a}.

Podemos aplicar una substituci´onθ y luego aplicar una substituci´on σ, a lo cual

se llama composici´on de las substitucionesθ y σ. Si ese es el caso, primero se

aplicaθ y luego σ. Las composiciones pueden verse como mapeos del conjunto de

variables en el lenguaje, al conjunto de t´erminos.

Definici´on 29 (Composici´on) Sean θ = {X1/s1, . . . ,Xm/sm} y σ = {Y1/t1, . . .Yn/tn}

dos substituciones. Consideren la secuencia:

(8)

Si se borran de esta sencuencia las ligaduras Xi/siσ cuando Xi= siσ y cualquier

ligadura Yj/tjdonde Yj∈ {X1, . . . ,Xm}. La substituci´on consistente en las ligaduras

de la secuencia resultante es llamada composici´on deθ y σ, se denota por θσ.

Ejemplo 10 Sea θ = {X/ f (Y),Z/U} y σ = {Y/b,U/Z}. Construimos la

secuen-cia de ligaduras X/( f (Y )σ),Z/(u)σ,Y/b,U/Z lo cual es X/ f (b),Z/Z,Y/b,U/Z. Al borrar la ligadura Z/Z obtenemos la secuencia X/ f (b),Y /b,U/Z =θσ.

Definici´on 30 (Ocurrencia) Sean θ y σ dos substituciones. Se dice que θ es una

ocurrencia deσ, si existe una substituci´on γ, tal que σγ = θ.

Ejemplo 11 La substituci´on θ = {X/ f (b),Y/a} es una ocurrencia de la

substitu-ci´onσ = {X/ f (X),Y/a}, puesto que σ{X/b} = θ.

Algunas propiedades sobre las substituciones incluyen:

Proposici´on 3 Sea α una expresi´on, y sea θ, σ y γ substituciones. Las siguientes

relaciones se cumplen: 1. θ = θε = εθ 2. (αθ)σ = α(θσ) 3. θσ)γ = θ(σγ)

4.5. Unificaci´on

Uno de los pasos principales en el ejemplo de la secci´on 4.3, consisti´o en ha-cer que dos fbf at´omicas se vuelvan sint´acticamente equivalentes. Este proceso se conoce comounificaci´on y posee una soluci´on algor´ıtmica.

Definici´on 31 (Unificador) Sean α y β t´erminos. Una substituci´on θ tal que α y

β sean id´enticos (αθ = βθ) es llamada unificador de α y β.

Ejemplo 12

uni f ica(conoce( juan,X),conoce( juan,maria)) = {X/maria} uni f ica(conoce( juan,X),conoce(Y,Z)) = {Y/ juan,X/Z}

= {Y/ juan,X/Z,W/pedro} = {Y/ juan,X/ juan,Z/ juan}

Definici´on 32 (Generalidad entre substituciones) Una substituci´on θ se dice m´as

general que una substituci´onσ, si y s´olo si existe una substituci´on γ tal que σ = θγ.

Definici´on 33 (MGU) Un unificador θ se dice el unificador m´as general (MGU)

de dos t´erminos, si y s´olo siθ es m´as general que cualquier otro unificador entre esos t´erminos.

(9)

4.5 Unificaci´on 51 Definici´on 34 (Forma resuelta) Un conjunto de ecuaciones {X1= t1, . . . ,Xn= tn}

est´a en forma resuelta, si y s´olo si X1, . . . ,Xnson variables distintas que no ocurren

en t1, . . . ,tn.

Existe una relaci´on cercana entre un conjunto de ecuaciones en forma resuelta y el unificador m´as general de ese conjunto: Sea {X1= t1, . . . ,Xn= tn} un conjunto de ecuaciones en forma resuelta. Entonces {X1/t1, . . . ,Xn/tn} es un MGU idempotente de la forma resuelta.

Definici´on 35 (Equivalencia en conjuntos de ecuaciones) Dos conjuntos de

ecua-ciones E1y E2se dicen equivalentes, si tienen el mismo conjunto de unificadores.

La definici´on puede usarse como sigue: para computar el MGU de dos t´erminos

α y β, primero intente transformar la ecuaci´on {α = β} en una forma resuelta

equivalente. Si esto falla, entonces mgu(α,β) = f allo. Sin embargo, si una forma

resuelta {X1= t1, . . . ,Xn= tn} existe, entonces mgu(α,β ) = {X1/t1, . . . ,Xn/tn}. Un algoritmo para encontrar la forma resuelta de un conjunto de ecuaciones es como sigue:

Algoritmo 1 Unifica(E)

1: function UNIFICA(E) !E es un conjunto de ecuaciones

2: repeat 3: (s = t) ← seleccionar(E) 4: if f (s1, . . . ,sn) = f (t1, . . . ,tn) (n ≥ 0) then 5: remplazar (s=t) por s1= t1, . . . ,sn= tn 6: else if f (s1, . . . ,sm) = g(t1, . . . ,tn) ( f /m != g/n) then 7: return(fallo) 8: else if X = X then 9: remover la X = X 10: else if t = X then 11: remplazar t = X por X = t 12: else if X = t then 13: if subtermino(X,t) then 14: return(fallo)

15: else remplazar todo X por t

16: end if

17: end if

18: until No hay accion posible para E 19: end function

Ejemplo 13 El conjunto { f (X,g(Y)) = f (g(Z),Z)} tiene una forma resuelta,

pues-to que:

⇒ {X = g(Z),g(Y ) = Z} ⇒ {X = g(Z),Z = g(Y )} ⇒ {X = g(g(Y )),Z = g(Y )}

(10)

Ejemplo 14 El conjunto { f (X,g(X),b) = f (a,g(Z),Z)} no tiene forma resuelta, puesto que: ⇒ {X = a,g(X) = g(Z),b = Z} ⇒ {X = a,g(a) = g(Z),b = Z} ⇒ {X = a,a = Z,b = Z} ⇒ {X = a,Z = a,b = Z} ⇒ {X = a,Z = a,b = a} ⇒ f allo

Ejemplo 15 El conjunto { f (X,g(X)) = f (Z,Z)} no tiene forma resuelta, puesto

que:

⇒ {X = Z,g(X) = Z} ⇒ {X = Z,g(Z) = Z} ⇒ {X = Z,Z = g(Z)}

⇒ f allo

Este algoritmo termina y regresa una forma resuelta equivalente al conjunto de ecuaciones de su entrada, o bien regresa fallo si la forma resuelta no existe. Sin embargo, el computar subtermino(X,t) (verificaci´on de ocurrencia) hace que el algoritmo sea altamente ineficiente. Los sistemas Prolog resuelven este proble-ma haci´endo caso omiso de la verificaci´on de ocurrencia. El standard ISO Prolog (1995) declara que el resultado de la unificaci´on es no decidible. Al eliminar la ve-rificaci´on de ocurrencia es posible que al intentar resolver X = f (X) obtengamos

X = f ( f (X))··· = f ( f ( f ...)). En la practica los sistemas Prolog no caen en este

ciclo, pero realizan la siguiente substituci´on {X/ f (∞)}. Si bien esto parece resolver el problema de eficiencia, generaliza el concepto de t´ermino, substituci´on y unifica-ci´on al caso del infinito, no considerado en la l´ogica de primer orden, introduci´endo a su vez inconsistencia.

4.6. Resoluci´on-SLD

El m´etodo de razonamiento descrito informalmente al inicio de esta sesi´on, puede resumirse con la siguiente regla de inferencia:

∀¬(α1∧ ··· ∧ αi−1∧ αi∧ αi+1∧ ··· ∧ αm) ∀(β0← β1∧ ··· ∧ βn)

∀¬(α1∧ ··· ∧ αi−1∧ β1∧ ··· ∧ βn∧ αi+1∧ ··· ∧ αm)θ o, de manera equivalente, usando la notaci´on de los programas definitivos:

(11)

4.6 Resoluci´on-SLD 53

← α1, . . . ,αi−1,αi,αi+1, . . . ,αm β0← β1, . . . ,βn

← (α1, . . . ,αi−1,β1, . . . ,βn, . . . ,αm)θ donde:

1. α1, . . . ,αmson fbf at´omicas.

2. β0← β1, . . . ,βnes una cl´ausula definitiva en el programa∆ (n ≥ 0). 3. MGU(αi,β0) =θ.

La regla tiene dos premisas: una meta y una cl´ausula definitivas. Observen que cada una por su cuenta est´an cuantificadas universalmente, por lo que el alcance de los cuantificadores es disjunto. Por otra parte, solo hay un cuantificador univer-sal para la conclusi´on. Por lo tanto, se requiere que el conjunto de variables en las premisas sea disjunto. Puesto que todas las variables en las premisas est´an cuan-tificadas, es siempre posible renombrar las variables de la cl´ausula definitiva para cumplir con esta condici´on.

La meta definida puede incluir muchas fbf at´omicas que unifican con la cabeza de alguna cl´ausula en el programa. En este caso, es deseable contar con un mecanismo determinista para seleccionar un ´atomo αi a unificar. Se asume una funci´on que selecciona una submeta de la meta definida (funci´on de selecci´on).

La regla de inferencia presentada es la ´unica necesaria para procesar programas definidos. Es una versi´on de la regla de inferencia conocida comoprincipio de re-soluci´on, introducido por J.A. Robinson en 1965. El principio de resoluci´on aplica a cl´ausulas. Puesto que las cl´ausulas definitivas son m´as restringidas que las cl´ausu-las, la forma de resoluci´on presentada se conoce como resoluci´on-SLD (resoluci´on lineal para cl´ausulas definitivas con funci´on de selecci´on).

El punto de partida de la aplicaci´on de esta regla de inferencia es una meta defi-nida G0:

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

De esta meta, una submetaαiser´a seleccionada, de preferencia por una funci´on de selecci´on. Una nueva meta G1se construye al seleccionar una cl´ausula del

pro-gramaβ0← β1, . . . ,βn(n ≥ 0) cuya cabeza β0unifica conαi, resultando enθ1. G1

tiene la forma:

← (α1, . . . ,αi−1,β1, . . . ,βn, . . . ,αm)θ1

Ahora es posible aplicar el principio de resoluci´on a G1para obtener G2, y as´ı

su-cesivamente. El proceso puede terminar o no. Hay dos situaciones donde no es po-sible obtener Gi+1a partir de Gi:

1. cuando la submeta seleccionada no puede ser resuelta (no es unificable con la cabeza de una cl´ausula del programa).

2. cuando Gi= ! (meta vac´ıa = f).

Definici´on 36 (Derivaci´on-SLD) Sea G0una meta definitiva,∆ un programa defi-nitivo y R una funci´on de selecci´on. Una derivaci´on SLD de G0(usando∆ y R) es una secuencia finita o infinita de metas:

(12)

G0! Gα0

1. . .Gn−1α! Gn−1 n

Para manejar de manera consistente el renombrado de variables, las variables en una cl´ausulaαiser´an renombradas poni´endoles sub´ındice i.

Cada derivaci´on SLD nos lleva a una secuencias de MGUsθ1, . . . ,θn. La com-posici´on

θ =

!

θ1θ2. . .θn si n > 0

ε si n = 0

de MGUs se conoce como lasubstituci´on computada de la derivaci´on.

Ejemplo 16 Consideren la meta definida ← orgulloso(Z) y el programa discutido

en la clase anterior.

G0=← orgulloso(Z).

α0= orgulloso(X0) ← padre(X0,Y0),recien nacido(Y0).

La unificaci´on de orgulloso(Z) y orgulloso(X0) nos da el MGUθ1= {X0/Z}. Asumamos que nuestra funci´on de selecci´on es tomar la submeta m´as a la izquierda. El primer paso de la derivaci´on nos conduce a:

G1=← padre(Z,Y0),recien nacido(Y0). α1= padre(X1,Y1) ← papa(X1,Y1).

En el segundo paso de la resoluci´on el MGUθ2= {X1/Z,Y1/Y0} es obtenido. La derivaci´on continua como sigue:

G2=← papa(Z,Y0),recien nacido(Y0). α2= papa( juan,marta).

G3=← recien nacido(marta). α3= recien nacido(marta).

G4= !

la substituci´on computada para esta derivaci´on es:

θ1θ2θ3θ4= {X0/Z}{X1/Z,Y1/Y0}{Z/ juan,Y0/marta}ε

= {X0/juan,X1/juan,Y1/marta,Z/ juan,Y0/marta}

Las derivaciones SLD que terminan en la meta vac´ıa (!) son de especial impor-tancia pues corresponden a refutaciones a la meta inicial (y proveen las respuestas a la meta).

(13)

4.6 Resoluci´on-SLD 55

G0! Gα0 1. . .Gn−1α! Gn−1 n

donde Gn= !, se llama refutaci´on SLD de G0.

Definici´on 38 (Derivaci´on fallida) Una derivaci´on de la meta definitiva G0 cuyo ´ultimo elemento no es la meta vac´ıa y no puede resolverse con ninguna cl´ausula del programa, es llamada derivaci´on fallida.

Definici´on 39 (Arbol-SLD) Sea ∆ un programa definitivo, G0una meta definitiva, y R una funci´on de selecci´on. El ´arbol-SLD de G0 (usando ∆ y R) es un ´arbol etiquetado, posiblemente infinito, que cumple las siguientes condiciones:

La ra´ız del ´arbol est´a etiquetada por G0.

Si el ´arbol contiene un nodo etiquetado como Giy existe una cl´ausula

renom-brada αi∈ ∆ tal que Gi+1es dervidada de Gi y αi via R, entonces el nodo

etiquetado como Gitiene un hijo etiquetado Gi+1El arco que conecta ambos

nodos est´a etiquetado comoαi. Por ejemplo:

← orgulloso(Z)

← padre(Z,Y0),recien nacido(Y0)

← mama(Z,Y0),recien nacido(Y0) ← papa(Z,Y0),recien nacido(Y0) ← recien nacido(marta)

!

4.6.1. Propiedades de la resoluci´on-SLD

Definici´on 40 (Consistencia) Sea ∆ un programa definitivo, R una funci´on de

se-lecci´on, yθ una substituci´on de respuesta computada a partir de ∆ y R para una meta ← α1, . . . ,αm. Entonces ∀((α1∧ ··· ∧ αm)θ) es una consecuencia l´ogica del programa∆.

Definici´on 41 (Compleci´on) Sea ∆ un programa definitivo, R una funci´on de

se-lecci´on y ← α1, . . . ,αmuna meta definitiva. Si∆ |= ∀((α1∧ ··· ∧ αm)σ), entonces

existe una refutaci´on de ← α1, . . . ,αm v´ıa R con una substituci´on de respuesta

Referencias

Documento similar

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

El Espíritu también liberó a los esclavos de los poderes del mal, lo que fue una prueba contundente de la superioridad del poder de Dios sobre las fuerzas del mal y reveló que

O Campus do Mar, proxecto liderado pola Universidade de Vigo e no cal tamén participan as da Coruña e Santiago, xunto co CSIC, o Instituto Español de Oceanografía e outras

De este modo se constituye un espacio ontológico y epistemológico a la vez, en el que cada elemento (cada principio) ocupa un lugar determinado en la totalidad, y desde ahí está

Al desarrollarse las partes más nobles del cerebro, adquirimos dominio sobre nosotros mismos y lloramos mucho menos que en la infancia; no obstante, es cierto que aun

Traje tres estacas por si acaso, ya que se que el peligro siempre me está acechando allá a donde vaya, pero agradecería que Ángel y sus amigos tengan esto limpio de vampiros y

Categoría C: normativa correspondiente a los sistemas de negociación electrónicos de instrumentos de renta fija (IRF) e intermediación financiera (IIF) de la

Reglamento (CE) nº 1069/2009 del parlamento Europeo y del Consejo de 21 de octubre de 2009 por el que se establecen las normas sanitarias apli- cables a los subproductos animales y