You are on page 1of 92

LOGICA DE PREDICADOS

DRA. KARIN SUPO GAVANCHO

Representacin e inferencia en la lgica de predicados


Idea:
La lgica como sistema de representacin del conocimiento y
de obtencin de consecuencias (control)

Clculo de predicados de primer orden


Frmulas atmicas
Frmulas
Conectores

Frmulas atmicas
Trminos
autor(quijote, cervantes)
escritor(cervantes)

autor(quijote, Quin)

autor(quijote, mejor(novelista, espaa))

Predicado: Un predicado es un smbolo cuyo valor se encuentra en el


dominio lgico (verdadero o falso) y representa alguna cualidad
semntica, en un cierto contexto, acerca de las relaciones entre
objetos o entidades

Frmulas atmicas
Frmulas atmica :: Predicado | Predicado(Trminos)
Trminos :: Trmino | Trmino, Trminos
Trmino :: Variable | Constante | Functor
Functor :: NombreFunctor(Trminos)
Normas lxicas:
Las variables siempre empiezan por
mayscula las constantes por minscula
Functor:
Es un smbolo que posee valor en el
dominio de las variables y constantes, pero
que no es ni una variable ni una constante.

Variable:

Representa un trmino cuyo valor


no est determinado inicialmente
y su dominio de definicin debe
coincidir con el de los trminos
constantes
Constante:
Representa un trmino
con un valor semntico
determinado

LOGICA DE PREDICADOS

Conectores
Permiten construir frmulas complejas a partir de frmulas o expresiones
atmicas
Negacin :

(~)

Disyuncin : (OR)
Conjuncin : (AND)
Implicacin : ()
Equivalencia :

LOGICA DE PREDICADOS

Negacin: Genera una frmula que posee valores lgicos complementarios a los de
la frmula sobre la que se aplica. Estrictamente no es un conector, pues no conecta
dos frmulas sino que transforma una.
autor(hamlet, cervantes)
Disyuncin: Genera una frmula cuyo valor lgico es el OR de los valores de las
dos frmulas que conecta.
estado(bombilla, encendida) estado(bombilla, apagada)
Conjuncin: Genera una frmula cuyo valor lgico es el AND de los valores de las
dos frmulas que conecta.
color(coche, rojo) color(camisa, azul)

LOGICA DE PREDICADOS

Implicacin: Genera una frmula compuesta no-simtrica que es cierta


siempre, salvo cuando el antecedente es cierto y el consecuente falso.
p q es equivalente a p q
p

pq

0
0
1
1

0
1
0
1

1
1
0
1

p p q
1
1
0
0

1
1
0
1

est(cielo, azul) llover(hoy)


est(cielo, azul) llover(hoy)

LOGICA DE PREDICADOS

Equivalencia o doble implicacin: Genera una frmula que es cierta slo si las
dos componentes poseen idntico valor.
p q es equivalente a (p q) (q p)
p

0
0
1
1

0
1
0
1

pq
1
1
0
1

1
0
1
1

q p (p q) (q p)
1
0
0
1

llueve(hoy) est(cielo, nublado)

LOGICA DE PREDICADOS

Cuantificadores

Establecen el mbito de existencia de las


variables

Cuantificador Universal ():


Cuando acompaa a una variable X establece que la frmula es
siempre vlida para cada valor posible de la variable X. La variable X
se dice entonces cuantificada universalmente.
Todo cuerpo con masa cae
(X) ( [cuerpo(X) posee(masa, X)] cae(X) )

LOGICA DE PREDICADOS

Cuantificadores

Establecen el mbito de existencia de las


variables

Cuantificador Existencial ():


Establece que como mnimo existe un valor de la variable cuantificada
que hace cierta la frmula. La variable se dice cuantificada
existencialmente.
Alguien descubri la penicilina
( X) ( descubri( X, penicilina )

LOGICA DE PREDICADOS

Reglas de precedencia entre operadores

,
,
,

menor precedencia

Forma Normal de una frmula


Una frmula se dice que est en forma normal si todos los
cuantificadores han sido desplazados al principio de la frmula.

Forma normal de una frmula


Una frmula se dice que est en forma normal si todos los cuantificadores han
sido desplazados al principio de la frmula.
Algunas equivalencias tiles para alcanzar una forma normal

[ ( X) p(X) ] (X) [ p(X) ]


[ (X) p(X) ] ( X) [ p(X) ]
( X) [ p(X) q(X) ] [ (X) p(X) ] [ (X) q(X) ]
( X) [ p(X) q(X) ] [ ( X) p(X) ] [ ( X) q(X) ]

Reglas de Inferencia

Especializacin Universal: siempre es posible deducir la verificacin de un


caso concreto a partir de un cuantificador universal.
(X) p(X) p(a)
Sustitucin: permite la sustitucin de cualquier proposicin en una frmula por
otra biequivalente.
Modus ponens: de una implicacin de la verificacin de la premisa se verifica la
conclusin.
Axioma: p q
Axioma: p
Teorema: q

Modus tollens: de una implicacin y de la no verificacin del consecuente, se


concluye la no verificacin de la premisa.
Axioma: p q
Axioma: q
Teorema: p

Introduccin: la fbf pq puede ser inferida de las fbf p y q.


Eliminacin: la fbf p puede ser inferida de la fbf pq.
Introduccin: la fbf p q puede ser inferida de la fbf p o de la fbf q.

Lgica de orden cero:


Los predicados carecen de trminos y el clculo de predicados se
reduce al clculo de proposiciones o proposicional.
Lgica de orden uno:
Los predicados poseen trminos que pueden ser constantes,
variables o functores.
Lgica de orden superior:
Los predicados lgicos pueden ser en s mismos variables.

Ejercicios. Expresar como fbf en lgica de predicados los siguientes


hechos

A. Marco era un hombre.


B. Marco era pompeyano (de Pompeya).
C. Todos los pompeyanos eran romanos.
D. Csar era un dirigente.
E. Todos los romanos o bien eran leales a Csar o bien le odiaban.
F. Todo el mundo es fiel a alguien.
G. La gente slo trata de asesinar a aquellos dirigentes a los que no son leales.
H. Marco intent asesinar a Csar.
I. Algn romano odia a Csar.

A. hombre(marco)
B. pompeyano(marco)
C. (X)(pompeyano(X) romano(X))
D. dirigente(csar)
E. (X)(romano(X) leal(X,csar) odia(X,csar))
F. (X)(hombre(X) (Y) leal(X,Y)
G. (X)(Y) (hombre(X) dirigente(Y)
intenta_asesinar(X,Y) leal(X,Y))
H. intenta_asesinar(marco, csar)
I. (X) (romano(X) odia(X, csar))

Lo que queremos hacer ...

Teorema + Axiomas (como frmulas bien formadas, fbf)


+
Teorema + Axiomas (como clusulas)
+
Mtodo de resolucin por refutacin
Unificacin

Demostracin automtica de teoremas

IMPORTANTE:
La demostracin automtica de teoremas lgicos es un procedimiento que
involucra una mera actividad sintctica, o de relacin entre smbolos,
ignorndose completamente el contenido semntico que resulta de la
interpretacin de las frmulas.

Transformacin a clusulas

Para ilustrar el proceso paso a paso emplearemos la siguiente frmula compleja


como ejemplo:

(X){p(X) {(Y)[p(Y) p(f(X,Y))] (Y)[q(X,Y) p(Y)]}}


1. Eliminar los smbolos de implicacin, sustituyendo p q por p q.
Tras este primer paso, nuestra frmula se transforma en:

(X){p(X) {(Y)[ p(Y) p(f(X,Y))] (Y)[ q(X,Y) p(Y)]}}

Transformacin a clusulas

2. Mover las negaciones hasta las frmulas atmicas, para ello se


emplean las leyes de Morgan y las transformaciones de cuantificadores
existenciales y universales.

(p q) p q
(p q) p q
[ ( X) p(X) ] (X) [ p(X) ]
[ (X) p(X) ] ( X) [ p(X) ]
Aplicndolo sobre el ejemplo:

(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)]}}

Transformacin a clusulas
3. Renombrar variables, en aquellos casos en los que varias variables se hayan
nombrado de igual forma. En nuestro caso esto ocurre con la variable Y que
renombramos como Z en su segunda ocurrencia.
As nuestro ejemplo se transforma en:

(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))] (Z)[q(X,Z) p(Z)]}}

Transformacin a clusulas
4. Eliminar los cuantificadores existenciales. Las variables cuantificadas
por este tipo de cuantificadores sern sustituidas por un tipo de funcin comodn
denominada funcin de Skolem (proceso de skolemizacin).
P.e. (Z) q(X,Z) se transforma en q(X, g(X))
en donde g(X) es la funcin de Skolem para este caso. Ntese que no slo se
eliminan los cuantificadores existenciales sino tambin las variables ligadas a los
mismos.
La funcin de Skolem introducida debe ser nueva en el universo de discurso, y
adems deber ser funcin de todas las variables cuantificadas universalmente
cuyos mbitos incluyan el mbito del cuantificador existencial que se pretende
eliminar.

Transformacin a clusulas
As nuestro ejemplo se transforma en:

(X){ p(X) {(Y)[ p(Y) p(f(X,Y))] (Z)[q(X,Z) p(Z)]}}


(X){ p(X) {(Y)[ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}}
Si el cuantificador existencial no se encuentra en el mbito de ningn
cuantificador universal, se usar una funcin de Skolem sin argumentos. Como en
el siguiente ejemplo:
(Z) q(Z) se transforma en q(a)
Donde el smbolo constante a referencia a la entidad que sabemos existe.
Evidentemente a debe ser un smbolo que no haya sido empleado con
anterioridad.

Transformacin a clusulas
5. Desplazar los cuantificadores universales, de manera que queden al
comienzo de la frmula. Estre proceso puede ser realizado por cuanto no existen
ya variables distintas con el mismo nombre.

(X){ p(X) {(Y)[ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}}

(X) (Y){ p(X) { [ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}}


6. Convertir los operadores conjuntivos (AND) en los ms externos,
para lo que se emplean las leyes distributivas. A la forma resultante se le denomina
forma normal conjuntiva.
Este paso se ejecuta sobre el ejemplo en dos pasos:

Transformacin a clusulas
Partiendo de la ltima expresin,

(X)(Y){ p(X) { [ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}}


se aplica primero la ley distributiva:

(X)(Y){ { p(X) [ p(Y) p(f(X,Y))]}


{ p(X) [q(X, g(X)) p(g(X))]}}
Aplicando de nuevo la ley distributiva y la asociativa:

(X)(Y){ [ p(X) p(Y) p(f(X,Y))]


[ p(X) q(X, g(X)) ]
[ p(X) p(g(X))]}

Transformacin a clusulas
7. Eliminar los cuantificadores universales. Se trata de una
eliminacin convencional, no terica, pues se asume que toda variable que
aparezca est cuantificada universalmente. La funcin de Skolem adquiere
sentido, dado que al no aparecer otras variables que las universales, pueden
eliminarse sus cuantificadores por convenio. En nuestro ejemplo:

(X)(Y){ [ p(X) p(Y) p(f(X,Y))]


[ p(X) q(X, g(X)) ]
[ p(X) p(g(X))]}
[ p(X) p(Y) p(f(X,Y))]
[ p(X) q(X, g(X)) ]
[ p(X) p(g(X))]

Transformacin a clusulas
8. Eliminar los conectores conjuntivos (AND).
Dado que la frmula se corresponde con una conjuncin de subfrmulas,
stas debern verificarse por separado para que se verifique la frmula
principal.
Esto produce, en nuestro caso, el siguiente conjunto de frmulas:

[ p(X) p(Y) p(f(X,Y))]


[ p(X) q(X, g(X)) ]
[ p(X) p(g(X))]
p(X) p(Y) p(f(X,Y))
p(X) q(X, g(X))
p(X) p(g(X))

Transformacin a clusulas
9. Renombrar las variables. para que no aparezca la misma variable en
dos clusulas.

p(X) p(Y) p(f(X,Y))


p(X) q(X, g(X))
p(X) p(g(X))
p(X) p(Y) p(f(X,Y))
p(U) q(U, g(U))
p(W) p(g(W))
------ * * * -----Mediante este proceso se termina en una representacin en forma de
clusulas. As de una una nica frmula pueden resultar varias clusulas que
son ms modulares y de estructura ms simple.

Proceso de paso a clusulas

1. Eliminar los smbolos de implicacin


2. Mover las negaciones hasta las frmulas atmicas
3. Renombrar variables
4. Eliminar los cuantificadores existenciales.
5. Desplazar los cuantificadores universales
6. Convertir los operadores AND en los ms externos
7. Eliminar los cuantificadores universales.
8. Eliminar los conectores conjuntivos (AND).
9. Renombrar las variables.

Un ejemplo:

Acerca de los bloques conocemos tres cosas:


A. Que un bloque est encima de algo que no es una pirmide.
B. Que no existe ningn objeto que est debajo de un bloque y, a la vez,
encima del mismo.
C. Que no hay nada que no sea un bloque y que tambin sea lo mismo que el
bloque.

(X) { bloque(X) [(Y) (encima(X,Y) piramide(Y))


(Y) (encima(X,Y) encima(Y,X))
(Y) ( bloque(Y) igual(X,Y))]}

Un ejemplo
0. La frmula inicial

(X) { bloque(X) [
(Y) (encima(X,Y) piramide(Y))
(Y) (encima(X,Y) encima(Y,X))
(Y) ( bloque(Y) igual(X,Y))]}
1. Eliminar las implicaciones

(X) { bloque(X) [
(Y) (encima(X,Y) piramide(Y))
(Y) (encima(X,Y) encima(Y,X))
(Y) (bloque(Y) igual(X,Y))]}
2. Mover las negaciones hasta las frmulas atmicas

(X) { bloque(X) [ (Y) (encima(X,Y) piramide(Y))


(Y) ( encima(X,Y) encima(Y,X))
(Y) (bloque(Y) igual(X,Y))]}

Un ejemplo del mundo de los bloques


3. Renombrar las variables

(X) { bloque(X) [ (Y) (encima(X,Y) piramide(Y))


(Z) ( encima(X,Z) encima(Z,X))
(W) (bloque(W) igual(X,W))]}
4. Eliminar los cuantificadores existenciales

(X) { bloque(X) [ (encima(X,g(X)) piramide(g(X)))


(Z) ( encima(X,Z) encima(Z,X))
(W) (bloque(W) igual(X,W))]}
5. Desplazar los cuantificadores universales

(X)(Z)(W){ bloque(X) [ (encima(X,g(X)) piramide(g(X)))


( encima(X,Z) encima(Z,X))
(bloque(W) igual(X,W))]}

Un ejemplo del mundo de los bloques

6. Convertir los operadores AND en los ms externos

(X)(Z)(W){ bloque(X) [ (encima(X,g(X)) piramide(g(X)))


( encima(X,Z) encima(Z,X))
(bloque(W) igual(X,W))]}
paso 1.

(X)(Z)(W){( bloque(X) (encima(X,g(X)) piramide(g(X))))


( bloque(X) encima(X,Z) encima(Z,X))
( bloque(X) bloque(W) igual(X,W))]}
paso 2.

(X)(Z)(W){( bloque(X) encima(X,g(X)))


( bloque(X) piramide(g(X)))
( bloque(X) encima(X,Z) encima(Z,X))
( bloque(X) bloque(W) igual(X,W))]}

Un ejemplo del mundo de los bloques

7. Eliminar los cuantificadores universales

( bloque(X) encima(X,g(X)))
( bloque(X) piramide(g(X)))
( bloque(X) encima(X,Z) encima(Z,X))
( bloque(X) bloque(W) igual(X,W))
8. Eliminar los conectores AND

bloque(X) encima(X,g(X))
bloque(X) piramide(g(X))
bloque(X) encima(X,Z) encima(Z,X)
bloque(X) bloque(W) igual(X,W)

Un ejemplo del mundo de los bloques

9. Renombrar las variables

bloque(X) encima(X,g(X))
bloque(Y) piramide(g(Y))
bloque(U) encima(U,Z) encima(Z,U)
bloque(V) bloque(W) igual(V,W)
Ntese que la funcin de Skolem tiene la semntica de identificar el
apoyo de X. Si la renombramos a soporte(X) y representamos las
clusulas como implicaciones obtenemos:
bloque(X) encima(X, soporte(X))
bloque(Y) piramide(soporte(Y))
bloque(U) encima(U,Z) encima(Z,U)
bloque(V) bloque(W) igual(V,W)

Un ejemplo

A. hombre(marco)
B. pompeyano(marco)
C. (X)(pompeyano(X) romano(X))
D. dirigente(csar)
E. (X)(romano(X) leal(X,csar) odia(X,csar))
F. (X)(hombre(X) (Y) leal(X,Y)
G. (X)(Y) (hombre(X) dirigente(Y)
intenta_asesinar(X,Y) leal(X,Y))
H. intenta_asesinar(marco, csar)
I. (X) (romano(X) odia(X, csar))

Lo que queremos hacer ...

Teorema + Axiomas (como frmulas bien formadas, fbf)


+
Teorema + Axiomas (como clusulas)
+
Mtodo de resolucin por refutacin
Unificacin

Demostracin automtica de teoremas

Unificacin y sustitucin

Ejemplos:
Definir las sustituciones necesarias para unificar el predicado
p(X, f(Y), b)
con cada uno de los siguientes predicados:
P1: p(g(Z), f(a), b)
P2: p(X, f(a), b)
P3: p(Z, f(U), b)
P4: p(c, f(a), b)

Unificacin y sustitucin

El proceso de unificacin determina las condiciones y posibilidades


de sustitucin de un predicado por otro. Por ejemplo, en el caso de los
siguientes axiomas:
p(X) q(X)
p(a)
la demostracin de q(a) es consecuencia de la regla de especializacin
Universal aplicada a:
p(X) q(X)
para producir
p(a) q(a)
Tambin puede interpretarse como que se ha procedido a realizar la
sustitucin de p(X) por p(a), previa unificacin de X con a.
El proceso de sustitucin de trminos, denominado Unificacin, para
lograr que dos expresiones sean idnticas es fundamental en el
proceso de demostracin de teoremas en la lgica de predicados de
primer orden.

Unificacin y sustitucin

Un proceso de unificacin puede ser representado mediante un


operador constituido por un conjunto de pares de trminos
ordenados por:
= { v1 t1, v2 t2, ..., vn tn}
donde el par vi ti, indica que la variable vi es sustituida por el
trmino ti.
As el predicado p se transforma mediante la sustitucin indicada por
en p(... , vk, ...) = p(... , tk, ...).
NOTA: Tambin es muy habitual la notacin equivalente
= { v1/ t1, v2/ t2, ..., vn/ tn}

Unificacin y sustitucin

Ejemplos:
Definir las sustituciones necesarias para unificar el predicado
p(X, f(Y), b)
con cada uno de los siguientes predicados:
P1: p(g(Z), f(a), b)

1 = { X g(Z), Y a }

P2: p(X, f(a), b)

2 = { Y a }

P3: p(Z, f(U), b)

3 = { X Z, Y U }

P4: p(c, f(a), b)

4 = { X c, Y a }

Unificacin y sustitucin

El proceso de unificacin implica la sustitucin de una variable por


otro trmino que puede ser variable, constante o functor. En este
ltimo caso, el functor no puede contener la variable sustituida.
Es evidente que no siempre es posible unificar dos realizaciones de
un mismo predicado. Por ejemplo q(a, f(X), X) y q(c, f(d), b)
no son unificables.
La composicin de dos sustituciones 1 y 2, se denota por 1 2 y es la
sustitucin que resulta de aplicar la sustitucin 2 a los trminos de 1
y de aadir a continuacin los pares de sustituciones de 2 sobre las
variables no contenidas entre las variables de 1.
{ Z f(X,Y), U X } { X a, Y b, W c, Z d }
{ Z f(a,b), U a, X a, Y b, W c }

Unificacin y sustitucin

Se puede demostrar que :


A. [L1]2 = L [12]
B. (12) 3 = 1 (23), Asociatividad
C. 12 21 no es conmutativa
Diremos que dos predicados, E1 y E2, son unificables, y lo
representaremos por {E1, E2}, si existe una sustitucin tal que se
verifica:
E1 = E2
A la sustitucin la denominaremos Unificador de E1 y E2.
Ejemplo: Dados p(X, f(Y), b) y p(X, f(b), b) y la sustitucin
= { X a, Y b }, decimos que es un unificador de estos dos
predicados porque los convierte en p(a, f(b), b).

Unificacin y sustitucin

Aunque = { X a, Y b } es un unificador de estos dos predicados


no es el ms simple de los unificadores posibles (se le podra
denominar alternativamente ms general) para este conjunto, que
este caso sera = { Y b }.
As si es el unificador ms simple de { Ei } se verifica que si es un
unificador de { Ei } entonces existe una sustitucin s tal que:
{ Ei } s = { E i }
Un algoritmo recursivo nos permite descubrir si dos predicados son
unificables o no, y, en su caso, hallar el unificador ms simple.

Algoritmo de Unificacin

Etapas del algoritmo.


1. Comprobaremos si los smbolos de los predicados son los mismos. En
caso negativo los predicados no son unificables.
2. Si los predicados son iguales, han de tener la misma aridad (n de
argumentos). En caso negativo los predicados no son unificables.
3. Comprobaremos los argumentos por pares correspondientes, aplicando
el algoritmo recursivamente (es necesario si los argumentos contienen
functores), abortando el proceso desde el momento en que un par de
argumentos no sea unificable.

Algoritmo de Unificacin

Unifica(e1, e2) {
1. Si e1 o e2 son ambos variables o constantes, entonces
1.a Si e1 y e2 son idnticos, entonces devolver { }.
1.b Si e1 es una variable, entonces
1.b.1 Si e1 aparece dentro de e2 entonces devolver {FALLO}
en otro caso, devolver { e1 e2 }.
1.c Si e2 es una variable, entonces
1.c.1 Si e2 aparece dentro de e1 entonces devolver {FALLO}
en otro caso, devolver { e2 e1 }.
1.d Devolver {FALLO}
2. Si los smbolos de los predicados e1 y e2 son diferentes o tienen diferente
aridad entonces devolver {FALLO}.
3. Hacer SUBS = NIL (al final del proceso SUBS contendr las sustituciones
necesarias para unificar e1 y e2).
(contina ...)

Algoritmo de Unificacin

Unifica(e1, e2) {
...
4. Para cada uno de los argumentos de e1 (indexados por i)
4.a Invocar Unifica con los i-simos argumentos de e1 y e2, poniendo el
resultado en s.
4.b Si s es igual a FALLO, entonces devolver {FALLO}.
4.c Si s es diferente de { }, entonces
4.c.1 Aplicar la sustitucin s sobre el resto de argumentos de e1 y e2
4.c.2 Aadir s a las sustituciones ya contenidas en SUBS.
5. Devolver SUBS.
}

Algoritmo de Unificacin

Ejercicios: Trocear la operacin del algoritmo de unificacin para cada uno de los
siguientes pares de predicados.
A.
B.
C.
D.
E.
F.
G.
H.

f(marcos), f(csar)
f(X), f(g(Y))
f(marcos, g(X,Y)), f(X, g(csar, marcos))
p(X, X), p( g(X), g(X))
p(X, X), p( Y, g(X))
p(X, f(x)), p(Y, Y)
p(Y, Y, b), p(Z, X, Z)
p(f(X,X), a), p(f(Y, f(Y,a)), a)

Sistemas de Deduccin
Un conjunto de procedimientos de demostracin de teoremas que
utilizan esquemas diferentes al de refutacin.
Procedimientos directos: porque emplean el conjunto de axiomas y el
teorema sin negar
Como estrategia de control: exploracin de alternativas.
Sistemas de deduccin Hacia-Delante
Sistemas de deduccin Hacia-Atrs

Sistemas de Deduccin
S.D. Hacia-Delante:
Se parte de los axiomas y se trata de llegar al teorema por aplicacin
de reglas de inferencia.
Evidentemente, sto slo ser posible si el teorema es una
consecuencia lgica de los axiomas.

S.D. Hacia-Atrs:
Se parte del teorema y, por aplicacin de reglas de inferencia, se
intenta llegar a unos hechos completamente ciertos.

Hechos, Reglas y Objetivos

Los elementos que intervienen en la deduccin son:


Reglas: Son aquellos axiomas que contienen una implicacin, con
antecedentes y consecuentes
Hechos: Se denominan as a los axiomas que no contienen una implicacin.
Son elementos sin condiciones.

Meta u Objetivo: Designa al teorema a demostrar.

Hechos, Reglas y Objetivos


Nomenclatura de Kowalsky:
Reglas: b1 b2 b3 ... bm a1 a2 ... an

Hechos: b1 b2 b3 ... bm

Meta u Objetivo: a1 a2 ... an


donde ai y bj representan predicados lgicos

Hechos, Reglas y Objetivos

Se puede simplificar esta nomenclatura si se admite la sustitucin de


operadores por comas que el antecedente representarn conjunciones y el
consecuente disyunciones. Si nos restrigimos, adems, a considerar slo
clusulas de Horn:

Reglas: b a1 , a2 , ... , an
Hechos: b
Meta u Objetivo: a1 , a2 , ... , an

Deduccin progresiva o Hacia-Delante


Se parte de los hechos como elementos bsicos de transformacin.
Intuitivamente, el procedimiento puede resumirse de la siguiente forma,
suponiendo que a1 es un predicado unificable con algn antecedente o
subobjetivo:

A partir de:

Se deduce:

a1
c a1 , a2 , ... , an
a1 , o2 , ... , om
a1
c a2 , ... , an
o2 , ... , om

Deduccin progresiva o Hacia-Delante

Cuando se trata de una regla con un nico antecedente, el resultado es la


generacin de un nuevo hecho

A partir de:

Se deduce:

a1
c a1
a1 , o2 , ... , om
a1
c
o2 , ... , om

Deduccin progresiva o Hacia-Delante

El objetivo es llegar al objetivo vaco, es decir:

A partir de:

Se deduce:

a1
c a1 , a2 , ... , an
a1

a1
c a2 , ... , an

Deduccin progresiva o Hacia-Delante

El procedimiento consiste, en esencia, en generar nuevos hechos por


reduccin de los antecedentes de las reglas, y en reducir el objetivo, por
aplicacin de los hechos originales o los generados, hasta alcanzar el
objetivo vaco, lo que equivale a haber satisfecho todos los subojetivos.

Deduccin progresiva o Hacia-Delante

1. Formular el problema en trminos de hechos, reglas y objetivos como


clusulas de Horn, y aadirlos a una base de datos inicialmente vaca.
2. Hasta que el objetivo est vaco o no existan sustituciones aplicables.
2.1 Partiendo de algn hecho disponible, encontrar una regla con un
antecedente, o un subobjetivo, que pueda ser sustituido, previa
unificacin, con el hecho en cuestin
a1
c a1 , a2 , ... , an
a1 , o2 , ... , om
2.2 Aadir a la base de datos, la siguiente regla o subobjetivo, donde
es la unificacin ms general de la sustitucin:
(c a2 , ... , an)
( o2 , ... , om )
3. Si el objetivo est vaco, entonces el objetivo es cierto y las posibles
respuestas vienen dadas por la secuencia de unificaciones. En otro caso,
el objetivo no se puede verificar.

Ejemplo:
Antonio y Miguel son dos amigos miembros de un club alpino. Cada
miembro de este club que no es esquiador es escalador.
A los escaladores les disgusta la lluvia y, por otra parte, a los que les disgusta
la nieve no son esquiadores.
Ambos amigos tienen gustos diferentes, de tal forma que a Miguel le
disgusta los que a Antonio le gusta, y le gusta lo que a Antonio le disgusta.
A Antonio le gustan la nieve y la lluvia.
Existe algn miembro del club que sea escalador?. Quin?.

Antonio y Miguel son dos amigos


miembros de un club alpino.
Cada miembro de este club que
no es esquiador es escalador.
A los escaladores les disgusta la
lluvia y,por otra parte,
a los que les disgusta la nieve no
son esquiadores.
Ambos amigos tienen gustos
diferentes, de tal forma que a
Miguel le disgusta los que a
Antonio le gusta,
y le gusta lo que a Antonio le
disgusta.

escalador(X) no_esquiador(X)
disgusta(Y, lluvia) escalador(Y)
no_esquiador(Z) disgusta(Z, nieve)

disgusta(miguel, C) gusta(antonio, C)
gusta(miguel, A) disgusta(antonio, A)

A Antonio le gustan la nieve y la


lluvia.

gusta(antonio, lluvia)
gusta(antonio, nieve)

Existe algn miembro del club


que sea escalador?. Quin?.

escalador(Quien)

Partiendo de los dos nicos hechos iniciales, el proceso de deduccin podra ser
el siguiente:

gusta(antonio, lluvia)
{ C lluvia }
disgusta(miguel, lluvia)

escalador(X) no_esquiador(X)
disgusta(Y, lluvia) escalador(Y)
no_esquiador(Z) disgusta(Z, nieve)
disgusta(miguel, C) gusta(antonio, C)
gusta(miguel, A) disgusta(antonio, A)
gusta(antonio, lluvia)
gusta(antonio, nieve)
escalador(Quien)

Partiendo de los dos nicos hechos iniciales, el proceso de deduccin podra ser
el siguiente:

gusta(antonio, nieve)
{ C nieve}
disgusta(miguel, nieve)
{ Z miguel}
no_esquiador(miguel)
{ X miguel}
escalador(miguel)
{ Quien miguel}

escalador(X) no_esquiador(X)
disgusta(Y, lluvia) escalador(Y)
no_esquiador(Z) disgusta(Z, nieve)
disgusta(miguel, C) gusta(antonio, C)
gusta(miguel, A) disgusta(antonio, A)

Conclusin: al menos un
escalador, miguel

gusta(antonio, lluvia)
gusta(antonio, nieve)

escalador(Quien)
escalador(Quien)

Deduccin regresiva o Hacia-Atrs


Intuitivamente el procedimiento consiste en deducir el objetivo por aplicacin
sobre el mismo de las reglas y hechos.
Si existe algn subobjetivo a1 que pueda ser sustituido por un hecho, entonces
el mismo est satisfecho:

A partir de:

Se deduce:

a1
a1 , o2 , ... , om

a1
o2 , ... , om

Deduccin regresiva o Hacia-Atrs

En caso contrario, y cuando el subobjetivo b puede ser sustituido por el


consecuente de una regla, entonces el objetivo se modifica sustituyendo el
subobjetivo por los antecedentes de la regla:

A partir de:

Se deduce:

b a1 , a2 , ..., an
b , o2 , ... , om

b a1 , a2 , ..., an
a1 , a2 , ..., an , o2 , ... , om

Deduccin regresiva o Hacia-Atrs


En este ltimo caso, el nuevo objetivo es ms complejo al poseer ms
subobjetivos, pero se supone que cada uno de ellos es de menor
complejidad, esto es, ms cercanos a un hecho.

El resultado final se alcanza cuando se reduce al vaco el objetivo, lo que


indicar que se han satisfecho todos los subobjetivos.

Deduccin regresiva o Hacia-Atrs

1. Formular el problema en trminos de hechos, reglas y objetivos como


clusulas de Horn, y aadirlos a una base de datos inicialmente vaca.
2. Hasta que el objetivo est vaco o no existan sustituciones aplicables.
2.1 Partiendo del objetivo, encontrar algn hecho o consecuente de
regla que pueda que pueda ser sustituido, previa unificacin, con
algn subobjetivo
p
p a1 , a2 , ... , an
p , o2 , ... , om
2.2 Aadir a la base de datos, el siguiente objetivo, donde es la
unificacin ms general de la sustitucin:
( o2 , ... , om )
( a1 , a2 , ... , an , o2 , ... , om )
3. Si el objetivo est vaco, entonces el objetivo es cierto y las posibles
respuestas vienen dadas por la secuencia de unificaciones. En otro caso,
el objetivo no se puede verificar.

Antonio y Miguel son dos amigos


miembros de un club alpino.
Cada miembro de este club que
no es esquiador es escalador.
A los escaladores les disgusta la
lluvia y,por otra parte,
a los que les disgusta la nieve no
son esquiadores.
Ambos amigos tienen gustos
diferentes, de tal forma que a
Miguel le disgusta los que a
Antonio le gusta,
y le gusta lo que a Antonio le
disgusta.

escalador(X) no_esquiador(X)
disgusta(Y, lluvia) escalador(Y)
no_esquiador(Z) disgusta(Z, nieve)

disgusta(miguel, C) gusta(antonio, C)
gusta(miguel, A) disgusta(antonio, A)

A Antonio le gustan la nieve y la


lluvia.

gusta(antonio, lluvia)
gusta(antonio, nieve)

Existe algn miembro del club


que sea escalador?. Quin?.

escalador(Quien)

Partiendo del teorema:

escalador(Quien)
{ X Quien}
no_esquiador(Quien)
{ Z Quien}
disgusta(Quien, nieve)
{ Quien miguel,
C nieve }
gusta(antonio, nieve)

escalador(X) no_esquiador(X)
disgusta(Y, lluvia) escalador(Y)
no_esquiador(Z) disgusta(Z, nieve)
disgusta(miguel, C) gusta(antonio, C)
gusta(miguel, A) disgusta(antonio, A)

{}

Conclusin: al menos un
escalador, miguel

gusta(antonio, lluvia)
gusta(antonio,
gusta(antonio, nieve)
nieve)

escalador(Quien)

En el proceso de exploracin pueden producirse diversas situaciones anmalas


como las siguientes

Bucles: Cuando la resolucin de un objetivo conduce a que el mismo objetivo o


alguno de sus sucesores se vuelva a plantear de nuevo como objetivo.
Desbordamientos: Cuando la resolucin de un objetivo conduzca a un objetivo,
que ni pueda ser reducido, ni presente condicin de parada, es decir, que
siempre existen reglas aplicables.
Duplicacin de objetivos: Cuando se suscita la resolucin de un objetivo ya
resuelto con anterioridad.

Ejemplo de bucle debido a un problema mal definido.

rel(a, D)
rel(a, b)
rel(a, c)
alt(a, d)
rel(A, B) alt(A, B)
alt(X, Y) rel (a, Y)
rel(a, D)

{D c}

{D b}
rel(a, b)

{A a
B D}

rel(a, c)

alt(a, D)

{D b}
alt(a, d)

{X a, Y D}
rel(a, D)

[rel(a, D)]
[1rel(a, D)] [2rel(a, D)] [3rel(a, D)]
{D b}
[1rel(a, b)] [2rel(a, D)] [3rel(a, D)]
[ ] [2rel(a, D)] [3rel(a, D)]
[2rel(a, D)] [3rel(a, D)]
{D c}
[2rel(a, c)] [3rel(a, D)]
[ ] [3rel(a, D)]
[3rel(a, D)]
{A a, B D}
[alt(a, D)]
[1alt(a, D)] [2alt(a, D)]

rel(a, b)
2
rel(a, c)
1
alt(a, d)
3
rel(A, B) alt(A, B)
2
alt(X, Y) rel (a, Y)
rel(a, D)
1

[1alt(a, D)] [2alt(a, D)]


{D d}
[1alt(a, d)] [2alt(a, D)]
[ ] [2alt(a, D)]
{X a, Y D }
[rel(a, D)]

Jack es dueo de un perro


Quien es dueo de un perro es un amante de los animales
Ningn amante de los animales mata a un animal
O Jack o Curiosidad mat al gato, cuyo nombre era Tuna
Mat Curiosidad al gato?

A. Jack es dueo de un perro


B. Quien es dueo de un perro es un amante de los animales
C. Ningn amante de los animales mata a un animal
D. O Jack o Curiosidad mat al gato, cuyo nombre era Tuna
E. Mat Curiosidad al gato?
1. Expresin como predicados de primer orden
A. (X) perro(X) dueo(jack, X)
B. (X) {(Y) perro(Y) dueo(X, Y)} naturalista(X)
C. (X) (Y) naturalista(X) animal(Y) mata(X,Y)
D1. mata(jack, tuna) mata(curiosidad, tuna)
D2. gato(tuna)
E. mata(curiosidad, tuna)

Es necesario aadir que los gatos son animales


F. (X) gato(X) animal(X)

2. Transformacin a clusulas

Negacin del teorema:


E. mata(curiosidad, tuna)
2.1 Eliminacin de la implicaciones
B. (X) {(Y) perro(Y) dueo(X, Y)} naturalista(X)
C. (X) (Y) naturalista(X) animal(Y) mata(X,Y)
F. (X) gato(X) animal(X)
B. (X) {(Y) perro(Y) dueo(X, Y)} naturalista(X)
C. (X) (Y) { naturalista(X) animal(Y)} mata(X,Y)
F. (X) gato(X) animal(X)

2. Transformacin a clusulas

2.2 Mover las negaciones hasta las frmulas atmicas


B. (X) {(Y) perro(Y) dueo(X, Y)} naturalista(X)
C. (X) (Y) { naturalista(X) animal(Y)} mata(X,Y)
B. (X) {(Y) perro(Y) dueo(X, Y)} naturalista(X)
C. (X) (Y) naturalista(X) animal(Y) mata(X,Y)

2. Transformacin a clusulas

2.3 Renombrar variables


A. (X) perro(X) dueo(jack, X)
B. (Y) {(Z) perro(Z) dueo(Y, Z)} naturalista(Y)
C. (U) (W) naturalista(U) animal(W) mata(U,W)
F. (C) gato(C) animal(C)

2.4 Eliminar los cuantificadores existenciales


A. (X) perro(X) dueo(jack, X)
A. perro(a) dueo(jack, a)
donde a es una funcin de Skolem constante

2. Transformacin a clusulas

2.5 Desplazar los cuantificadores universales hasta el comienzo de las frmulas


B. (Y) {(Z) perro(Z) dueo(Y, Z)} naturalista(Y)
B. (Y) (Z) perro(Z) dueo(Y, Z) naturalista(Y)
2.6 Convertir los operadores AND en los ms externos
2.7 Eliminar los cuantificadores universales
2.8 Eliminar los conectores AND

2. Transformacin a clusulas

Conjunto de clusulas resultante


A.1 perro(a)
A.2 dueo(jack,a)
B. perro(Z) dueo(Y, Z) naturalista(Y)
C. naturalista(U) animal(W) mata(U,W)
D1. mata(jack, tuna) mata(curiosidad, tuna)
D2. gato(tuna)
E. mata(curiosidad, tuna)
F. gato(C) animal(C)

Expresar como clusulas de Horn:


A) caballos, vacas y cerdos son mamferos
B) el hijo de un caballo es un caballo
C) centella es un caballo
D) centella es el padre de chispas
E) hijo y padre son relaciones inversas
F) todo mamfero tiene un padre
y, mediante deduccin hacia atrs, contestar a la pregunta:
Cuntos caballos conocemos?

A) mamfero(X) vaca(X)
mamfero(Y) cerdo(Y)
mamfero(Z) caballo(Z)
B) caballo(centella)
C) caballo(W) caballo(U), hijo(W, U)
D) padre(centella, chispas)
E) padre(S, R) hijo(R, S)
hijo(P, Q) padre(Q, P)
F) padre(L, M) mamfero(M)

mamfero(X) vaca(X)
2
mamfero(Y) cerdo(Y)
3
mamfero(Z) caballo(Z)
B) 1caballo(centella)
C) 2caballo(W) caballo(U), hijo(W, U)
D) 1padre(centella, chispas)
E) 2padre(S, R) hijo(R, S)
hijo(P, Q) padre(Q, P)
F) 3padre(L, M) mamfero(M)
El objetivo: caballo(M)
A)

[caballo(H)]
{H centella}

[1caballo(H)] [2caballo(H)]
[caballo(centella)] [2caballo(H)]

{W H}

[ ] [2caballo(H)]
[caballo(U), hijo(H,U)]

[1caballo(U), hijo(H,U)] [2caballo(U), hijo(H,U)] {U centella}


[caballo(centella), hijo(H, centella)] [ 2caballo(U), hijo(H,U)]
[hijo(H, centella)] [2caballo(U), hijo(H,U)]

{P H, Q centella}

[padre(centella, H)] [2caballo(U), hijo(H,U)]


[1padre(centella, H)] [2padre(centella, H)]
[3padre(centella, H)] [2caballo(U), hijo(H,U)]
{H chispas}
[padre(centella, chispas)] [2padre(centella, H)]
[3padre(centella, H)] [2caballo(U), hijo(H,U)]

[ ] [2padre(centella, H)] [3padre(centella, H)] [2caballo(U), hijo(H,U)]


{S centella, R H}
[hijo(H, centella)] [3padre(centella, H)] [2caballo(U), hijo(H,U)]
{P H, Q centella}
[padre(centella, H)] [3padre(centella, H)] [2caballo(U), hijo(H,U)]
[1padre(centella, H)] [2padre(centella, H)]
[3padre(centella, H)]
[3padre(centella, H)] [2caballo(U), hijo(H,U)]
...

A partir de aqu slo obtendremos una nica respuesta H= chispas

Cul sera ahora el resultado si cambisemos el orden de las


definiciones del predicado caballo?
A) 1mamfero(X) vaca(X)
2
mamfero(Y) cerdo(Y)
3
mamfero(Z) caballo(Z)
C) 2caballo(W) caballo(U), hijo(W, U)
B) 1caballo(centella)
D) 1padre(centella, chispas)
E) 2padre(S, R) hijo(R, S)
hijo(P, Q) padre(Q, P)
F) 3padre(L, M) mamfero(M)
El objetivo: caballo(M)

[caballo(H)]
[2caballo(H)] [1caballo(H)]

{W H}

[caballo(U), hijo(H, U)][1caballo(centella)]


[2caballo(U), hijo(H, U)] [1caballo(U), hijo(H, U)][1caballo(H)]
{W U}
[caballo(F), hijo(U, F), hijo(H, U)] [1caballo(U), hijo(H, U)][1caballo(H)]
[2caballo(F), hijo(U, F), hijo(H, U)]
[1caballo(F), hijo(U, F), hijo(H, U)]
[1caballo(U), hijo(H, U)][1caballo(H)]
...
Y finalmente la pila se desbordara

Supongamos ahora que intercambiamos el orden de las premisas de


la regla C. Qu pasara?
A) 1mamfero(X) vaca(X)
2
mamfero(Y) cerdo(Y)
3
mamfero(Z) caballo(Z)
B) 1caballo(centella)
C) 2caballo(W) hijo(W, U), caballo(U).
D) 1padre(centella, chispas)
E) 2padre(S, R) hijo(R, S)
hijo(P, Q) padre(Q, P)
F) 3padre(L, M) mamfero(M)
El objetivo: caballo(M)

[caballo(H)]
{H centella}

[1caballo(H)] [2caballo(H)]
[caballo(centella)] [2caballo(H)]

{W H}

[ ] [2caballo(H)]
[hijo(H,U), caballo(U)]

{P U, Q H}

[padre(U, H), caballo(U)]


[1padre(U, H), caballo(U)] [2padre(U, H), caballo(U)]
[3padre(U, H), caballo(U)]
{U centella, H chipas}
[1padre(centella, chispas), caballo(centella)] [ 2padre(U, H), caballo(U)]
[3padre(U, H), caballo(U)]
[caballo(centella)] [2padre(U, H), caballo(U)] [3padre(U, H), caballo(U)]
[1caballo(centella)] [2caballo(centella)]
[2padre(U, H), caballo(U)] [3padre(U, H), caballo(U)]

[1caballo(centella)] [2caballo(centella)]
[2padre(U, H), caballo(U)] [3padre(U, H), caballo(U)]
[ ] [2caballo(centella)]
[2padre(U, H), caballo(U)] [3padre(U, H), caballo(U)]
{W centella}
[hijo(centella, F), caballo(F)]
[2padre(U, H), caballo(U)] [3padre(U, H), caballo(U)]
...

Repetiramos la misma demostracin anterior, con otros


argumentos, y finalmente la pila se desbordara

Realizar la traza de la pila de


demostracin del teorema indicado

p(a, b)
p(a, X) r(X)
r(c)
r(d)
p(Y, Z) q(Y, Z)
q(a, e)
q(U, V) s(W), p(W, V)
s(a)
s(f)
p(a, R)

Problema. La funcin cons(X,Y) denota la lista formada insertando


X en la cabeza de la lista Y. As podemos representar la lista vaca
por nil; la lista (2) por cons(2, nil); la lista (1,2) por cons(1, cons(2,
nil)); y as sucesivamente. La formula last(lista, ultimo) devuelve
en ultimo el ltimo elemento de la lista lista. Supongamos los
siguientes axiomas:
( U) [last(cons(U, nil), U)]
( X, Y, Z) [last(Y, Z) last(cons(X, Y), Z)]
Probar por resolucin por refutacin el siguiente teorema:
( V) [last(cons(2, cons(1, nil)), V)]
Emplear el mtodo de obtencin de respuestas para encontrar el
valor de V, el ltimo elemento de la lista (1,2).

You might also like