Professional Documents
Culture Documents
Frmulas atmicas
Trminos
autor(quijote, cervantes)
escritor(cervantes)
autor(quijote, Quin)
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:
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
pq
0
0
1
1
0
1
0
1
1
1
0
1
p p q
1
1
0
0
1
1
0
1
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
LOGICA DE PREDICADOS
Cuantificadores
LOGICA DE PREDICADOS
Cuantificadores
LOGICA DE PREDICADOS
,
,
,
menor precedencia
Reglas de Inferencia
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))
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
Transformacin a clusulas
(p q) p q
(p q) p q
[ ( X) p(X) ] (X) [ p(X) ]
[ (X) p(X) ] ( X) [ p(X) ]
Aplicndolo sobre el ejemplo:
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:
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:
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.
Transformacin a clusulas
Partiendo de la ltima expresin,
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:
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:
Transformacin a clusulas
9. Renombrar las variables. para que no aparezca la misma variable en
dos clusulas.
Un ejemplo:
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
( 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)
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))
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
Unificacin y sustitucin
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 }
2 = { Y a }
3 = { X Z, Y U }
4 = { X c, Y a }
Unificacin y sustitucin
Unificacin y sustitucin
Unificacin y sustitucin
Algoritmo de Unificacin
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: b1 b2 b3 ... bm
Reglas: b a1 , a2 , ... , an
Hechos: b
Meta u Objetivo: a1 , a2 , ... , an
A partir de:
Se deduce:
a1
c a1 , a2 , ... , an
a1 , o2 , ... , om
a1
c a2 , ... , an
o2 , ... , om
A partir de:
Se deduce:
a1
c a1
a1 , o2 , ... , om
a1
c
o2 , ... , om
A partir de:
Se deduce:
a1
c a1 , a2 , ... , an
a1
a1
c a2 , ... , an
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?.
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, 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)
A partir de:
Se deduce:
a1
a1 , o2 , ... , om
a1
o2 , ... , om
A partir de:
Se deduce:
b a1 , a2 , ..., an
b , o2 , ... , om
b a1 , a2 , ..., an
a1 , a2 , ..., an , o2 , ... , om
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)
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)
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
2. Transformacin a clusulas
2. Transformacin a clusulas
2. Transformacin a clusulas
2. Transformacin a clusulas
2. Transformacin a clusulas
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)]
{P H, Q centella}
[caballo(H)]
[2caballo(H)] [1caballo(H)]
{W H}
[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}
[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)]
...
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)