Вы находитесь на странице: 1из 16

7.

Clculo de predicados (CP)

Es una extensin de la lgica proposicional, en que hay trminos definidos


como constantes o variables, y cuantificadores existenciales () o universales ()
que definen el alcance de las variables, y hay predicados que se aplican a los
trminos.

El clculo predicativo de primer orden (first order predicate calculus) es


un lenguaje formal con el que se pueden expresar una gran cantidad de
afirmaciones.

Un lenguaje, como por ejemplo el clculo predicativo, est definido por su


sintaxis. Las expresiones correctas del CP se llaman Frmulas Bien Formadas
(FBF, o en ingls WFF, well-formed formulas).

7.1. Sintaxis y semntica de frmulas atmicas

Los componentes elementales de ste lenguaje son smbolos de:


predicados, variables, funciones y constantes. Un smbolo predicativo se usa para
representar una relacin en un dominio, por medio de lo cual podemos crear
Frmulas Atmicas. Por ejemplo supongamos que queremos expresar el hecho
de que alguien escribi algo. Podemos utilizar el smbolo predicativo ESCRIBIR
para denotar la relacin entre una persona que escribi y el objeto escrito.
Podemos construir una simple frmula atmica usando ESCRIBIR y dos trminos
denotando al escritor y al objeto escrito. Para representar por ejemplo Voltaire
escribi Cndido, podemos usar la simple frmula atmica:

ESCRIBIR(VOLTAIRE, CANDIDO)

En esta frmula atmica, VOLTAIRE y CANDIDO son smbolos


constantes.

En general las frmulas atmicas se componen de smbolos, predicados y


trminos. Un smbolo constante es el tipo de trmino ms sencillo, y se usa para
representar objetos del dominio. Estos objetos pueden ser objetos materiales,
personas, conceptos, o cualquier cosa que queremos nombrar.

Los smbolos variables como x y tambin son trminos, y permiten ser


indefinido acerca de las referencias. Frmulas que usan estos smbolos, como
ESCRIBIR(x, y), sern revisados ms adelante en el contexto de la cuantificacin.

Tambin podemos componer trminos de smbolos de funciones.


Smbolos de funciones denotan funciones en el recorrido. Por ejemplo, el smbolo
de funcin padre puede ser usado para mostrar el mapeo entre un individuo y su
padre. Podemos utilizar la siguiente frmula atmica para expresar la oracin la
mam de Juan est casada con el pap de Juan:
CASADOS(padre(JUAN), madre(JUAN))

Se utilizan maysculas para indicar smbolos predicativos (Ejs: ESCRIBIR,


CASADOS) y constantes (CNDIDO, A1, B2). Se utilizan minsculas para
smbolos de funciones (por ejemplo: padre, madre)

Para representar una oracin del lenguaje corriente por una frmula
atmica, generalmente el predicado se identifica con el verbo de la fase, y los
trminos con el sujeto u objeto del verbo. Es comn tener varias alternativas de
representacin de oracin. Por Ejemplo, la oracin la casa es amarilla se puede
representar por un predicado de un trmino, como AMARILLO(CASA1), o de dos
trminos, como COLOR(CASA1, AMARILLO), o de tres trminos, como en
CARACTERISTICA(COLOR, CASA1, AMARILLO), etc. El diseador de una
representacin elige el alfabeto de predicados y trminos que usar, y define lo
que significa cada uno de ellos.

En control de procesos, a una funcin bien formada (fbf) se le puede dar


una interpretacin asignando una correspondencia entre los elementos del
lenguaje y las relaciones, trminos y funciones del dominio. Estas asignaciones
definen la semntica del leguaje del clculo predicativo. Una vez que se ha
definido una interpretacin para una frmula atmica, podemos establecer si
ella es verdadera o falsa.

Por ejemplo:

ESCRIBIR(VOLTAIRE, CNDIDO) es Verdadero


ESCRIBIR(VOLTAIRE, AJEDREZ_COMPUTACIONAL) es Falso

7.2. Conectivos

Las frmulas atmicas pueden combinarse para construir fbfs ms


complejas usando conectivos tales como , , y ~. Por ejemplo:

VIVIR(JUAN, CASA1) COLOR(CASA1, AMARILLO)

Las frmulas que se construyen conectando frmulas mediante 's se


llaman Conjunciones.

Toda conjuncin de fbfs tambin es una fbf. Algo similar ocurre con 's,
las cuales se denominan Disyunciones. El conectivo "" se usa para
representar afirmaciones tipo "si-entonces". Por ejemplo, la oracin "si el auto
es de Juan, entonces es verde" se puede representar como:

DUEO(JUAN, AUTO1) COLOR(AUTO1, VERDE)


ANTECEDENTE CONSECUENTE

Ntese que esta implicacin viola en ocasiones la nocin corriente de


implicancia ("de sentido comn"), ya que si el antecedente es falso, la
implicacin siempre es verdadera. Por ejemplo, es verdadera la afirmacin "si
la luna est hecha de nata, entonces los elefantes pueden volar".

El smbolo "~" indica la negacin de una frmula, cuyo resultado es una


fbf.

7.3. Cuantificadores

Los cuantificadores son elementos para definir el dominio de una funcin


y/o de una frmula atmica. Entre ellos, los ms importantes, y los que
veremos en este apunte, son llamado cuantificador universal, que indica
para todo, y llamado cuantificador existencial, que indica existe.

Si se coloca el cuantificador universal (x) delante de P(x), slo ser


verdadera para una interpretacin dada si el valor de P(x) es verdadero para
todos los valores de x posibles del dominio.

Si ponemos el cuantificador existencial ( x) delante de P(x), la frmula


ser verdadera para una interpretacin dada si hay al menos un elemento del
dominio al que se pueda asignar x, en que la frmula P(x) sea verdadera.

Por ejemplo, la frase "todos los elefantes son grises" puede


representarse como:

(x)[ELEFANTE(x) COLOR(x, GRIS)]

Aqu se est cuantificando la implicacin, y x es la variable cuantificada.


El alcance ("scope") del cuantificador es la secuencia de frmulas sobre la que
se aplica.

Otro ejemplo. "Hay alguien que escribi Ajedrez computacional", puede


ser representada como:

( x)ESCRIBIR(x, AJEDREZ_COMPUTACIONAL)

Cualquier expresin obtenida cuantificando una fbf sobre una variable,


tambin es una fbf. Si una variable en una fbf es cuantificada, se dice que es
una Variable Limitada (bound variable). Si no, se dice que es una variable libre
(free variable).

Las fbf que tienen todas las variables limitadas se denominan Oraciones
(o Frmula Bien Formada Cerrada).

Ntese que si hay cuantificadores en una fbf, no ser siempre posible


encontrar su valor de verdad. Por ejemplo, en (x)P(x), si el dominio es infinito,
no terminaramos nunca el proceso de probar que la fbf es verdadera en todos
los casos.
Esta versin de CP se llama de primer orden porque no permite
cuantificacin sobre smbolos predicativos o de funcin. As, frmulas como
(P)P(A) no son fbf en CP de primer orden.

7.4. Propiedades de FBF

Usando las frmulas sintcticas recin descritas informalmente,


podemos construir fbf arbitrariamente complejos, como por ejemplo:

1. (x){(y )[( P( x, y ) Q( x, y )) R( x) ]}
2. ~ (q){(x[P(x) R(q)]}

Usamos los smbolos [, { y ( para delimitar o agrupar los


componentes de las fbfs, para "mejorar y simplificar su lectura" y eliminar
cualquier ambigedad.

Algunos ejemplos que no son fbf son:

1. f [ P(A) ]
2. A ~ ( ~)

Dada una interpretacin, los valores de verdad de una fbf (excepto las
reglas que contienen cuantificadores) pueden ser computadas con las reglas
antes descritas. Cuando los valores de verdad se obtienen de esta forma,
estamos usando un mtodo de tablas de verdad.

Por ejemplo, si X1 y X2 son 2 fbfs cualquiera, entonces los valores de


verdad de las expresiones compuestas generadas con estas fbfs, estn dados
por la tabla de verdad (truth table) descrita en la Tabla 7.1.

Si los valores de verdad de dos fbf son iguales (para todas las
interpretaciones) se dice que son Equivalentes.

Tabla 7.1. Tabla de verdad para funciones bien formadas.


X1 X2 X1 X2 X1 X2 X1 X2 ~X1
V V V V V F
F V V F V V
V F V F F F
F F F F V V

Usando la tabla de verdad mencionadas en la Tabla 7.1 podemos


establecer las siguientes equivalencias:
~ (~ x1) x1
x1 x 2 ~ x1 x 2
~ ( x1 x 2) ~ x1 ~ x 2
Leyes de De Morgan
~ ( x1 x 2) ~ x1 ~ x 2
x1 (x2 x3) (x1 x2) (x1 x3)
Leyes distributivas
x1 (x2 x3) (x1 x2) (x1 x3)
x1 x 2 x 2 x1
Leyes conmutativas
x1 x 2 x 2 x1
(x1 x2) x3 x1 (x2 x3)
Leyes asociativas
(x1 x2) x3 x1 (x2 x3)
x1 x 2 ~ x 2 ~ x1 Ley " contrapositiva"

En cuanto a cuantificadores podemos establecer las siguientes


equivalencias:

~ (x) P( x) (x ) [ ~ P ( x)]
~ (x ) P( x) (x ) [ ~ P ( x)]
(x) P( x) (y ) P( y )
(*)
(x ) P ( x ) (y ) P ( y )

Las propiedades (*) muestran que las variables son arbitrarias y pueden
ser reemplazadas por cualquier smbolo que no est ya en la expresin.

Otras propiedades relacionadas con cuantificadores:

(x)[P( x) Q ( x)] (x) P( x) (y )Q( y )


(x)[P ( x) Q ( x)] (x) P( x) (y )Q ( y )

7.5. Ejemplos

Veamos algunos ejemplos que muestran la versatilidad del Clculo


Predicativo (C.P.) como un lenguaje til para describir situaciones del lenguaje
corriente:

1) "Cada ciudad tiene un perrero que ha sido mordido por todos los perros de la
ciudad"

(x ){CIUDAD (x ) (y ){PERRERO ( x, y ) (z ){[PERRO (z ) VIVE _ EN (x, z )] MORDIDO ( y, z )}}}


2) "Para todo conjunto x existe un conjunto y, tal que la cardinalidad de y es
mayor que la cardinalidad de x".

(x ){CONJ (x ) (y )(u )(v)[CONJ ( y ) CARD ( x, u ) CARD ( y, v) MAY (v, u )]}


3) "Todos los bloques que estn sobre bloques que han sido movidos, o que
estn pegados a bloques que han sido movidos, tambin han sido movidos".

(x )(y){{BLOQ ( x) BLOQ ( y ) [SOBRE (x, y ) PEGAD ( x, y)] MOVIDO( y )} MOVIDO( x)}

7.6. Reglas de Inferencia

En C.P. existen reglas de inferencia que pueden aplicarse sobre ciertas


"frmulas bien formadas" (fbfs) y conjuntos de fbfs para producir nuevas fbfs.
Una regla de inferencia importante es el Modus Ponens (W1 W2). Otra regla
es la Especificacin Universal, que produce la fbf W(A) a partir de la fbf
(x)W(x), en que A es una constante cualquiera. P.ej. usando las dos reglas de
inferencia anteriores se obtiene la fbf W2(A), a partir de las fbfs (x)[ W1(x)
W2(x)] y W1(A).

Las reglas de inferencia producen fbfs a partir de otras dadas. En C.P.


estas fbfs se llaman Teoremas, y la secuencia de aplicacin de reglas de
inferencia en la derivacin constituyen las Pruebas del Teorema. Es decir,
algunas tareas de resolver problemas pueden visualizarse como la tarea de
encontrar la prueba para un teorema.

7.7. Unificacin

Para probar teoremas que incluyen frmulas cuantificadas, a menudo es


necesario "asimilar" (Eng.: match) ciertas sub-expresiones. Usando el ejemplo
anterior, para producir W2(A) a partir de las fbfs (x)[ W1(x) W2(x)] y
W1(A), es necesario encontrar la sustitucin "A por x" que identifica a W1(A)
con W1(x). Encontrar sustituciones de variables para igualar expresiones es un
proceso muy importante en Inteligencia Artificial (IA), que se llama Unificacin.
Para describir este proceso, veamos primero mecanismos de Sustitucin.

Los trminos de una expresin pueden ser smbolos de variables o


constantes, o bien ser expresiones funcionales (consistentes en smbolos de
funciones y trminos). As, una instancia de sustitucin de una expresin se
obtiene sustituyendo trminos para variables en esa expresin. Por ejemplo,
cuatro instancias de P[x, f(y),B] son:

1) P[z, f(w),B] "variante alfabtica" (simple sustitucin de


variables)
2) P[x, f(A),B]
3) P[g(z), f(A),B]
4) P[C, f(A),B] "instancia concreta" (Eng.: ground instance) (ninguno
de los trminos contiene variables).

Podemos representar las sustituciones por un conjunto de pares ordenados


s = {t1/v1, t2/v2, ...., tn/vn}, en que ti/vi quiere decir que el trmino ti se reemplaza
por la variable vi en toda la expresin. Una variable no puede ser reemplazada
por un trmino que incluya la misma variable.

Las sustituciones usadas anteriormente en P[x, f(y),B] son:

1) s1 = {z/x, w/y}
2) s2 = {A/y}
3) s3 = {g(z)/x, A/y}
4) s4 = {C/x, A/y}

Para denotar una instancia de sustitucin de una expresin E, usando una


sustitucin s, anotamos Es. De este modo en el primer caso de ejemplo
anterior tenemos lo siguiente:

1) P[z, f(w),B] = P[x, f(y),B]s1.

La composicin de dos sustituciones s1 y s2 se denota s1s2, que es la


sustitucin obtenida aplicando s2 a los trminos de s1 y agregando tambin los
pares de s2 que contengan variables que no aparecen en s1. Ejemplo:

{g(x,y)/z}{A/x, B/y, C/w, D/z} = {g(A, B)/z, A/x, B/y, C/w, D/z}.

Se puede mostrar que aplicar sucesivamente s1 y s2 a una expresin L


es lo mismo que aplicar s1s2 a L, es decir,

(Ls1)s2 = L(s1s2).

Tambin puede mostrarse que la composicin de sustituciones es


asociativa, es decir:

(s1s2)s3 = s1(s2s3).

En general, las sustituciones no son conmutativas.

Si una sustitucin s se aplica a todos los elementos de un conjunto {Ei}


de expresiones, el conjunto de instancias de sustitucin lo denotamos por {Ei}s.

Se dice que un conjunto de expresiones {Ei} es Unificable si existe una


sustitucin s tal que:
E1s = E2s = E3s = ....

En ese caso se dice que s es un unificador de {Ei} porque su aplicacin


reduce al conjunto a un slo elemento (singleton). Por ejemplo, s = {A/x, B/y}
unifica a: {P[x, f(y),B],P[x, f(B),B]} al obtener {P[A, f(B),B] }.
Si bien s = {A/x, B/y} es un unificador del conjunto { P[x, f(y),B], P[x,
f(B),B] }, en algn sentido no es el ms sencillo. El Unificador Ms General o
Ms Sencillo (UMG) (Eng.: most general unifier: mgu), g de {Ei}, es aquel que
tiene la propiedad tal que si s es un unificador cualquiera de {Ei} que obtiene
{Ei}s, entonces existe una sustitucin s' tal que {Ei}s = {Ei}gs'. Ms an, la
instancia comn producida por un UMG es nica excepto por variantes
alfabticas.

Ejemplos de instancias de aplicacin de UMG a conjuntos de literales que son


unificables:

CONJUNTOS DE LITERALES INSTANCIAS DE SUSTITUCIN POR


umg
{P(x), P(A)} P(A)
{P[f(x), y, g(y)], P[f(x), z, g(x)]} P[f(x), x, g(x)]
{P[f(x, g(A,y)), g(A,y)], P[f(x,z), z]} P[f(x, g(A,y)), g(A,y)]

Tpicamente la unificacin se utiliza para descubrir si un literal puede


asimilarse a otro. Este proceso se ha llamado a veces "pattern matching"
(reconocimiento de patrones). Juega un rol importante en sistemas de IA. El
proceso de unificacin es ms general que lo que se llama usualmente
reconocimiento de patrones, puesto que se permite que aparezcan variables en
ambas expresiones.

7.8. Validacin

Una fbf que es verdadera para todas las interpretaciones posibles se


denomina Vlida. Una fbf concreta y vlida generalmente se llama Tautologa.
As por ejemplo, usando una tabla de verdad se establece que la fbf P(A)
[P(A) v P(B)] tiene el valor de verdad V con cualquier interpretacin, por lo
tanto es vlida. Las tablas de verdad siempre pueden ser usadas para
determinar la validez de cualquier fbf que no contenga variables. Es un mtodo
exhaustivo: se prueba que tenga valor V para todos los valores posibles de las
frmulas atmicas que contenga la fbf.

Si una fbf contiene cuantificadores, entonces no siempre se puede


establecer si es vlida. Se ha mostrado que es imposible encontrar un mtodo
general para establecer la validez de una expresin cuantificada, y por esta
razn el C.P. se dice que es Indecidible (Eng.: undecidable). Sin
embargo, s pueden decidirse cierta clases de frmulas que contienen
cuantificadores; se habla de Subclases Decidibles.

Tambin se ha visto que si una fbf es vlida, entonces existe un


procedimiento para verificar la validez de esa fbf, en tanto que si se aplica el
mismo procedimiento a fbfs que no son vlidas se puede llegar a procesos
interminables. Luego, se dice que el C.P. es Semi-decidible.
Si una misma interpretacin hace que cada fbf en un conjunto de fbfs
tenga valor V, entonces decimos que esa interpretacin satisface al conjunto de
fbfs.
Una fbf X es una Consecuencia Lgica (Eng.: logically follows) de un
conjunto de fbfs S si todas las interpretaciones que satisfacen S tambin
satisfacen X.

Por ejemplo es fcil ver que la fbf (x)(y)[P(x) v Q(y)] es consecuencia


lgica del conjunto {(x)(y)[P(x) v Q(y)], (z)[R(z) v Q(A)]}. Tambin, la fbf
P(A) es consecuencia lgica de (x) P(x). Tambin ocurre que (x) Q(x) es
consecuencia lgica del conjunto {(x)[~P(x) v Q(x)], (x) P(x)}.

7.9. Resolucin

La Resolucin es una importante herramienta de inferencia que se


puede aplicar a una clase de fbfs llamadas Clusulas, que consistan en
frmulas atmicas, y negaciones de frmulas atmicas, asociadas por
(ORs) (Eng.: clause: wff consisting of a disjunction of literals).

Con el objetivo que explicar de mejor manera el procedimiento de


transformacin utilizaremos un ejemplo para poder desarrollar las etapas que
ella conlleva. Consideremos el siguiente ejemplo:

(x ){P(x ) {(y )[P(y ) P(f (x, y ))] ~ (y )[Q(x, y ) P(y )]}}.


El proceso de conversin consta de las etapas siguientes:

1) Eliminar (sustituir por ~ ):

(x ){~ P(x ) {(y )[~ P(y ) P(f (x, y ))] ~ (y )[~ Q(x, y ) P(y )]}}
2) Reducir el alcance de ~:

Que aplique a no ms de una frmula atmica (hacer uso en forma


reiterativa de las leyes de De Morgan y otras):

(x ){~ P(x ) {(y )[~ P(y ) P(f (x, y ))] (y ) ~ [~ Q(x, y ) P(y )]}}
(x ){~ P(x ) {(y )[~ P(y ) P(f (x, y ))] (y )[Q(x, y ) ~ P(y )]}}

3) Estandarizacin de Variables:

Dentro del alcance de cada cuantificador, la variable cuantificada es


arbitraria. Puede ser reemplazada por otra variable (no preexistente) dentro
del alcance del cuantificador, sin cambiar el valor de verdad de la fbf. Es
decir, se trata de renombrar las variables, para asegurar que cada
cuantificador tenga una variable exclusiva. As por ejemplo, podemos
reemplazar la variable asociada a en (x )[P(x ) (x )Q(x )] , por
(x )[P(x ) (y )Q(y )] .
Estandarizar las variables en el ejemplo significa:

(x ){~ P(x ) {(y )[~ P(y ) P(f (x, y ))] (w )[Q(x, w ) ~ P(w )]}}.
4) Eliminar (cuantificadores existenciales):

Considere la fbf: (y) [(x) P(x,y)]. Puede leerse como para todo y,
existe un valor x (posiblemente dependiente de y) tal que P(x, y ) . Ntese
que por estar el dentro del alcance de , existe la posibilidad que x
dependa del valor de y. Si hacemos explcita esa dependencia, podemos
establecer una funcin g(y) que mapea cada valor de y en un x existente
(). Una funcin as definida se denomina Funcin de Skolem. Aplicando
Skolem, reemplazamos el cuantificador existencial, y la expresin se
convierte en (y) P[g(y),y].A esto se le suele llamar eskolemizar.

Una regla general para eliminar cuantificadores existenciales de una fbf


es reemplazar cada ocurrencia de la variable asociada a por una funcin
Skolem, cuyos argumentos son todas aquellas variables cuantificadas en
forma universal () cuyo alcance incluya el alcance del que se quiera
eliminar. Debe cuidarse que se usen smbolos nuevos para las funciones
Skolem.

Por ejemplo, en el caso:

[(w )Q(w )] (x ){(y ){(z )[P(x, y, z )] (u )R (x, y, u, z )}}


, podemos eliminar (z) y llegar a:

[(w )Q(w )] (x ){(y )[P(x, y, g(x, y )) (u )R (x, y, u, g(x, y ))]}


Si no hay variables que tengan cuantificadores universales dentro del
alcance de , usamos una funcin Skolem sin argumentos (es decir,
una constante). As, (x )P(x ) queda como P(A), en que A se refiere a la
entidad que sabemos existe (usar smbolo de constante nuevo). Siguiendo
con el ejemplo que venamos elaborando, queda:

(x ){~ P(x ) {(y )[~ P(y ) P(f (x, y ))] [Q(x, g(x )) ~ P(g(x ))]}} ,
, en donde g(x) es una funcin de Skolem.

5) Trasladar los (cuantificadores universales):

Lo que se debe realizar es trasladar todos los cuantificadores


universales al comienzo de la fbf, permitiendo que tengan el alcance sobre
toda la fbf (a esta altura cada tiene su propia variable). Se dice que la fbf
est en forma Prenex (ingls). Es decir, una serie de cuantificadores
(prefijo, o prefix) seguido por una frmula sin cuantificadores (llamada
Matriz). En el ejemplo:

(x )(y ){~ P(x ) {[~ P(y ) P(f (x, y ))] [Q(x, g(x )) ~ P(g(x ))]}}
6) Poner la matriz de forma conjuntiva normal:

Se debe reducir la fbf a una serie de expresiones unidas por .


Ejemplos son:

i) [P(x ) Q(x )] [~ P(w ) ~ R (y)] Q(x, y)


ii) P (x ) Q (x , y )
iii) P (x ) Q (x , y )
iv) ~ R (y )

Para llegar a esta forma podemos utilizar las reglas distributivas, por
ejemplo. En el ejemplo:

(x )(y ){[~ P(x ) [~ P(y ) P(f (x, y ))]] [~ P(x ) [Q(x, g(x )) ~ P(g(x ))]]};
(x )(y ){[~ P(x ) ~ P(y ) P(f (x, y ))] [~ P(x ) Q(x, g(x ))] [~ P(x ) ~ P(g(x ))]}.
7) Eliminar :

Como todos los cuantificadores quedaron a la izquierda, el orden ya no


importa. Adems, en una fbf, las variables son finitas Se asume que todas
las variables de la matriz estn universalmente cuantificadas.

8) Eliminar :

Reemplazamos (x1 x2) por el conjunto de fbfs {x1, x2}. Como


resultado, obtenemos un conjunto de expresiones clusulas (frmulas
atmicas, negadas o no, asociadas por vs). En el ejemplo obtendramos el
siguiente conjunto de fbfs:

{ P ( x ) P ( y ) P [ f ( x, y ) ] , P ( x ) Q [ x, g ( x ) ] , P ( x ) P( g ( x))}

9) Cambiar nombres de variables:

Esta etapa se realiza para que no se repitan en las diferentes


expresiones (Eng. standardizing the variables apart).
De esta forma, reemplazando la variable x en cada una de las fbf del
conjunto obtenido anteriormente por x1, x2 y x3 respectivamente, en el
ejemplo que estamos desarrollando las fbfs quedan de la siguiente manera:

~ P(x1) ~ P(y ) P[f (x1, y )]


~ P (x 2 ) Q[x 2, g(x 2 )]
~ P(x3) ~ P[g(x3)]

Si se utiliza resolucin como regla de inferencia en un sistema para


demostrar teoremas, el conjunto de fbf que queremos usar para probarlo se
convierte primero a expresiones de este tipo.

7.10. Resolucin de clusulas concretas (Eng.: ground clauses)

Recordemos que una clusula concreta es aquella que no tiene


variables en el literal.

En la Tabla 7.2 se muestran la resolucin de distintas clusulas


parentales.

Tabal 7.2. Clusulas parentales y sus respectivas resoluciones.


Clusula Parental Resolucin Comentario
1) P y ~P Q Q Modus Ponens.
(es decir, P Q )
2) P Q y ~P Q Q La clusula Q Q
colapsa a Q. Esta
resolucin se llama fusin
(merge).
3) P Q y ~P ~Q Q ~Q y P ~P Aqu hay dos resoluciones
posibles, ambas
tautologas.
4) ~P y P NIL (conj. vaco, ) La clusula vaca es
seal de una
contradiccin.
5) ~P Q (es decir P Q ) ~P R (es decir P R ) Encadenamiento.
y
~Q R (es decir Q R )

Para usar estas simples reglas cuando las clusulas contienen variables
hay que trabajar con las sustituciones adecuadas.

7.11. Ejemplo: Puzzle del club alpino

Veamos un ejemplo de unificacin y resolucin, el llamado Puzzle del


Club Alpino (de N. J. Nilsson, Problem-Solving Methods in AI", McGraw-Hill,
1971), citado por Bonissone.
El Puzzle del Club Alpino tiene el siguiente enunciado:

Antonio, Miguel y Juan pertenecen al Club Alpino. Todos los miembros del
Club Alpino son esquiadores, escaladores o ambos. A ningn escalador le
gusta la lluvia, y a todos los esquiadores les gusta la nieve. A Miguel le
disgusta todo aquello que le gusta a Antonio, y le gusta todo lo que a Antonio le
disgusta. A Antonio le gusta la lluvia y la nieve. Existe algn miembro del Club
Alpino que sea escalador pero no esquiador? Quin?"

La primera etapa para resolver el problema es definir un conjunto de


predicados y constantes para reformular el puzzle. Las constantes son Antonio,
Miguel, Juan, nieve, lluvia. Los predicados se definen as:

G(x,w): A x le gusta w
A(x) : x pertenece al Club Alpino
Q(x) : x es un esquiador
C(x) : x es un escalador

El puzzle se reformula de la manera que se especifica en la Tabla 7.3.

Tabla 7.3. Reformulacin del problema del Puzzle del Club Alpino utilizando
clusulas entre los predicados.

F1 : A(Antonio) A(Miguel) A(Juan) : Antonio, Miguel y Juan pertenecen al


Club Alpino.
F2 : x[A (x ) (Q(x ) C(x ))] : Todos los miembros del Club son
esquiadores o escaladores o ambos.
F3 : x[C(x ) ~ G (x, lluvia )] : A ningn escalador le gusta la lluvia.
F4 : x[Q(x ) G (x , nieve )] : A todos los esquiadores les gusta la
nieve.
F5 : x[G (Antonio, x ) ~ G (Miguel, x )] : A Miguel le disgusta todo lo que le gusta
a Antonio
F6 : x[~ G (Antonio, x ) G (Miguel, x )] : A Miguel le gusta todo lo que le disgusta
a Antonio
F7 : G(Antonio, nieve) G(Antonio, A Antonio le gusta la lluvia y la nieve
:
lluvia)
Q : w [A (w ) C(w ) ~ Q(w )] : Pregunta: Existe algn miembro del
Club Alpino que sea escalador pero no
esquiador?

Apliquemos los pasos de resolucin:

1) Eliminar :

Al eliminar la relacin obtenemos las relaciones que se muestran en la


Tabla 7.4.

Tabla 7.4. Relaciones obtenidas al eliminar la relacin .


F2 : x[~ A(x ) (Q(x ) C(x ))]
F3 : x[~ C(x ) ~ G (x, lluvia )]
F4 : x[~ Q(x ) G (x , nieve )]
F5 : x[~ G (Antonio, x ) ~ G (Miguel, x )]
F6 : x[G (Antonio, x ) G (Miguel, x )]

2) Reducir alcance de ~: No hay cambios.

3) Estandarizacin de variables: No hay cambios.

4) Eliminar : Tampoco se aplica, por el momento no consideramos Q.

5) Trasladar al comienzo: (en forma prenex): No hay cambios.

6) Convertir la matriz a su forma conjuntiva normal (una conjuncin finita de


disyunciones de predicados, con y sin negaciones): No hay cambios.
7) Eliminar .

8) Eliminar .

Dadas todas las etapas mencionadas el conjunto de fbfs queda de la


siguiente forma mostrada en la Tabla 7.5.

Tabla 7.5. Relaciones obtenidas al eliminar la relacin .


C1 : A(A)
C2
C3
:
:
A(M)
A(J)
} de F1

C '4 : ~A(x) Q(x) de F2


C(x)
C5' : ~C(x) de F3
~G(x,lluvia)
C '6 : ~Q(x) G(x,nieve) de F4
C '7 : ~G(A,x) ~G(M,x) de F5
C '
8
: G(A,x) G(M,x) de F6
C9' : G(A,lluvia)
C10 : G(A,nieve) } de F7

9) Como ltima etapa, se cambian las variables, para que no se repitan en las
expresiones. As, las frmulas se han transformado a su forma normal.

7.12. rbol de refutacin

El rbol de refutacin es una manera de resolver problemas planteados en


formulacin de fbfs, una vez que se esta se ha reducido a un conjunto de
clusulas.
Este tipo de mecanismo de resolucin de problemas es adecuado para
probar la consistencia de un grupo de condicionantes, por ejemplo en tareas de
verificacin de programas.

Por otra parte, la resolucin no es adecuada para tareas interactivas, como


por ejemplo aplicaciones de diagnstico, en que el sistema trata de identificar el
trozo de evidencia faltante que sea ms relevante para completar el anlisis.

En general, en este tipo de resoluciones de problemas no se sigue


ninguna estrategia para guiar la bsqueda de unificadores y resoluciones. Si
faltase un eslabn en el rbol de refutacin, sera difcil (para un sistema de
razonamiento basado en resolucin) identificar la informacin que falta para
tratar de obtenerla de alguna forma.

Por otro lado, no existe una manera clara de encontrar la solucin. Mejor
dicho, instintivamente se debe relacionar las fbfs obtenidas para poder tratar de
encontrar una solucin.

Para poder dejar claro el mecanismo que se debe realizar, a continuacin


se muestra el anlisis del rbol de refutacin del ejemplo del Puzzle del Club
Alpino.

Antes que todo, antes de aplicar el principio de relacin, negamos la


pregunta Q y la agregamos como clusula al conjunto de clusulas
normalizadas:

~ Q = w [~ A(w ) ~ C(w ) Q(w )] .

As generamos el rbol de Refutacin (Eng.: refutation tree) la cual


demuestra la existencia de una solucin, partiendo de la negacin de la
'
pregunta Q, agregando esta negacin ( C11 ) al conjunto de clusulas original, y
demostrando que el conjunto de clusulas, aumentado ( C1 a C11 ) no puede ser
satisfecho, es decir, aplicando unificacin y resolucin, se llega a un conjunto
vaco.
Figura 7.1. rbol de Refutacin para demostrar la solucin del problema del Puzzle del Club
Alpino.

Observando la Figura 7.1 se prueba que la solucin existe, en la cual se


desarrolla el rbol de refutacin mencionado anteriormente. Para obtener la
solucin, se crea una tautologa tomando la pregunta original Q y su negacin
en disyuncin, es decir C11 = Q ~ Q . Esta tautologa se agrega al conjunto de
clusulas C1 a C10 . Siguiendo los mismos pasos del rbol de refutacin,
producira el rbol de refutacin modificado, que dar la respuesta a la
pregunta Q. La Figura 7.2 muestra el rbol de refutacin desarrollado para
obtener la solucin.

Figura 7.2. rbol de refutacin desarrollado para obtener la solucin del problema del Puzzle
del Club Alpino

Вам также может понравиться