LPredicados.ppt

Download Report

Transcript LPredicados.ppt

Lógica de predicados
• Hasta ahora: Lógica Proposicional.
Si tienes un jaguar, conduces rápido.
Tienes un jaguar. Es cierto que conduces rápido?
p:-q.
q.
-----?-p.
q.
p:-q.
r:-p.
-----?-r.
Pero…
• Todos los alumnos de Lógica tienen un jaguar.
Prolog: tiene(X,jaguar):-alumno(X,lógica).
CP0: alumno_lógica->tiene_jaguar.
Necesitamos:
- predicados y funciones,
- variables y constantes.
Pero…
CP0: alumno_lógica->tiene_jaguar.
CP1: alumno(X,lógica)->tiene(X,jaguar).
Cual es la diferencia entre:
• Todos los alumnos de Lógica tienen un jaguar.
• Existe un alumno de Lógica que tiene un jaguar.
• Necesitamos:
– cuantificadores:
• X(alumno(X,lógica)->tiene(X,jaguar)).
• X(alumno(X,lógica)->tiene(X,jaguar)).
Lógica de predicados (CP1)
• CP1 es una extensión de CP0 incluyendo las
funciones, predicados, constantes, variables y
cuantificadores.
– Necesitamos redefinir sus componentes:
• Lenguaje
• Semántica
• Sistema formal
Lenguaje de CP1
• El alfabeto  del lenguaje CP1 contiene:
– Un conjunto de símbolos constantes {a1,a2,a3,…}
– Un conjunto de variables: {x1,x2,x3,…}
– Un conjunto de símbolos de funciones: {f1m1,f2m2,…}
– Un conjunto de predicados: {p1n1,p2n2,…}
– Un conjunto de conectivas lógicas {,,,}
– Los cuantificadores {,}
– Los símbolos de puntuación: {, , ( , ) }
La aritad de las funciones y predicados determinan el
número de argumentos: f2 => f(a1,a2)
Lenguaje CP1
• Los elementos del lenguaje son:
– Los términos
• Una constante
• Una variable
• El resultado de aplicar una función a tantos
argumentos cuanto es su aritad
Ejemplo: +2(* 2(x,x)1)
• Las fórmulas – son los elementos del lenguaje que
se pueden evaluar
Que es una fórmula en CP1
• Una fórmula atómica – un predicado aplicado a
tantos términos cuanto es su aritad
Df: Una fórmula es:
– Cada fórmula atómica es una fórmula
– Si A y B son fórmulas,
A, AB,AB,AB son fórmulas.
– Si x es una variable y A es una fórmula, xA y xA son
fórmulas.
– No hay otra forma de componer fórmulas.
Nota: Fijémonos, podemos cuantificar solo
variables!
• Es un cálculo proposicional de I orden.
Cuantificación de las variables
Df: El campo del cuantificador es la fórmula atómica
o cuantificada o en paréntesis que sigue
inmediatamente la variable cuantificada.
xAB, x(AB),
• Df. Una variable es ligada si sigue un
cuantificador o pertenece al campo de un
cuantificador
xA(x)B(x), x(A(x)B(x)),
Df. Una variable es libre si no es ligada.
Ejemplo: xp(x,y)
Cuantificación de las variables
• xyA(x,y)  B(x,y),
• x(A(x,y)  yB(x,y)),
• Son fórmulas de CP1?!:
– x (x p(x)),
– pq
– p x y (p(x) p(y))
Clasificación de las fórmulas
Df. Fórmulas base: no contienen variables
Df. Fórmulas cerradas (enunciados): todas las
variables están ligadas
Df. Fórmulas abiertas: alguna variable esta libre
• Nota: Para poder evaluar, necesitamos trabajar con
fórmulas cerradas (enunciados).
Df. Matriz de una fórmula es la fórmula que sigue el
cuantificador y la variable
Ejemplo: x y (p(x) p(y))
Ejercicio
• “No existe en la humanidad ninguna
persona mas importante que Mister Dólar.”
Ejercicio
Traduzcamos los siguientes ejemplos:
• “No existe en la humanidad ninguna persona
mas importante que Mister Dólar.”
  x(persona(x) mas_importante(x,Mister$))
x(persona(x)   mas_importante(x,Mister$))
x( persona(x)   mas_importante(x,Mister$))
 x((persona(x) mas_importante(x,Mister$)))
Ejercicio
Traduzcamos los siguientes ejemplos:
• “Todas las cosas no negras no son cuervos.”
Ejercicio
Traduzcamos los siguientes ejemplos:
• “Todas las cosas no negras no son cuervos.”
x(negro(x)  cuervo(x))
 x( negro(x) cuervo(x))
x(negro(x)  cuervo(x))
Ejercicio
Traduzcamos los siguientes ejemplos:
• “Ningún pájaro blanco llegara al Polo Sur”.
Ejercicio
Traduzcamos los siguientes ejemplos:
• “Ningún pájaro blanco llegara al Polo Sur”.
Ejercicio
Traduzcamos los siguientes ejemplos:
• “Ningún pájaro blanco llegara al Polo Sur”.
 x (pájaro(x)  blanco(x) llegara (x,PoloSur)), o
x (pájaro(x)  blanco(x)  llegara(x,PoloSur))
x ( pájaro(x)   blanco(x)  llegara(x,PoloSur))
Ejercicio
Traduzcamos los siguientes ejemplos:
• “Entre cada par de vecinos, uno molesta.”
Ejercicio
Traduzcamos los siguientes ejemplos:
• “Entre cada par de vecinos, uno molesta.”
x y(vecinos(x,y)  molesta(x)  molesta(y))
x y( vecinos(x,y)  molesta(x)  molesta(y))
Semántica de CP1
Df. Interpretación A=(D,I) de un lenguaje CP1 consiste en:
– Un conjunto D no vació que denotaremos dominio o
universo de la interpretación
– Una aplicación I tal que:
• A cada constante a le hace corresponder un elemento I(a) de D
• A cada función n-aria f le hacer corresponder una aplicación f:
Dn -> D.
• A cada predicado n-ario p le asigna una relación (subconjunto)
de Dn p.e. padre -> {(x,y)D | x es padre de y}
Semántica de CP1
• Dada una interpretación A, una fórmula cerrada
será falsa o cierta. Una fórmula abierta puede ser
falsa o cierta, dependiendo de la cuantificación de
las variables.
• Para tratar las variables libres, necesitamos una
valoración es decir una aplicación que a cada
variable libre le asigna un valor.
• Ejemplo: G=p(a,f(b,c)), la interpretación A=(D,I)
donde D representa el conjunto de números
naturales y la aplicación I es I(a)=2, I(b)=4,
I(c)=6, I(f)=+, I(p)={(m,n) |m>n }
Ejemplo: F= x p(x,f(x)) q(g(a,z)), I(a)=2,
I(f)=suc, I(g)=+, I(p)={(m,n)|m<n}, I(q)={m
natural|m es primo},
• Tenemos z – variable libre. Calcular el valor de la
fórmula si utilizamos la valoración (z)=3.
• Y si (z)=2?!
Df. Si tenemos una interpretación A=(D,I) y una
valoración  de las variables libres, la semántica
de un termino es:
– Si t es una constante, será I(t).
– Si t es una variable libre, será (t).
– Si t es de la forma f(t1,t2,…tn), será
I(f)(I(t1),I(t2),…I(tn)).
Df. La semántica de una fórmula F por (A, ) es:
– Si F=p(t1,t2,…tn),
• I(F)=1 sii I(p)(I(t1),I(t2),…I(tn)) es cierta y 0 en caso contrario.
– Si F= A, donde A es una fórmula,
• I(F)=1 sii I(A)=0 y viceversa.
– Si F= A B, donde A y B son fórmulas,
• I(F)=1 sii I(A)=1 y I(B)=1 y viceversa.
– Si F= A  B, donde A y B son fórmulas,
• I(F)=1 sii I(A)=1 o I(B)=1, y viceversa.
– Si F= A  B, donde A y B son fórmulas,
• I(F)=0 sii I(A)=1 y I(B)=0, y viceversa.
– Si F= x A(x), I(F)=1 sii
• uD, A(u)=1 y viceversa.
– Si F= x A(x), I(F)=1 sii
• uD, A(u)=1 y viceversa
Modelos en CP1
• Df. Un modelo de una fórmula F es una
interpretación A de la fórmula que la hace cierta.
Decimos que F se satisface para la interpretación
A.
A F
• Una fórmula es insatisfactible, si no tiene
modelos.
• Una fórmula es satisfactible, si tiene modelos.
• Una fórmula es valida, si se satisface para cada
interpretación.
•  F
Modelos en CP1
• Dado un conjunto de fórmulas Г={F1,F2,…Fn},
decimos que A es un modelo de Г sii es un modelo
de todas las fórmulas.
Df. A es un modelo de Г={F1,F2,…Fn} si A(F1F2
… Fn)=1
• Un conjunto de fórmulas es satisfactible, si tiene
por lo menos un modelo.
• Sino, es un conjunto contradictorio o
insatisfactible.
Df. Dado un conjunto de fórmulas Г={F1,F2,…Fn},
decimos que una fórmula es consecuencia lógica
de Г, (o Г implica semánticamente B) sii cualquier
modelo de Г es modelo de B.
Propiedades:
Prop. Una fórmula F es valida sii F es
insatisfactible.
Prop. Г B sii Г B es insatisfactible.
Prop. F1,F2,…Fn B sii F1,F2,… Fn-1 (FnB)
Df. Dos fórmulas A y B son semánticamente
equivalentes (AB) sii AB y BA.
Prop. Si CB es una fórmula que contiene B como
subfórmula y B D, entonces CB CD.
Sistemas formales en CP1
• Nuestro objetivo es demostrar
– Г ={F1,F2,…Fn} B
• Para este objetivo utilizamos el teorema:
Г B sii Г B es insatisfactible
e.d. F1F2 … Fn B es insatisfactible
• Lo podemos demostrar de dos maneras:
– Semánticamente (p.e. utilizando la tabla de verdad)
– Formalmente: F1F2 … Fn B |-Ǡ
• siempre y cuando tenemos un sistema formal que sea sólido y
completo por refutación
Ejemplo
Para demostrar:
x gusta_nieve(x)->gusta_montanya(x)
gusta_nieve(joan)
-----------------y gusta_montanya(y)
Hemos de demostrar que es absurdo:
gusta_nieve(joan) x gusta_nieve(x)-> gusta_montanya(x)  y
gusta_montanya(y)
Pero como podemos demostrarlo?!
Podemos utilizar la algebra de Boole?!
Podemos utilizar el sistema formal basado en la resolucion?!
Equivalencias y leyes en CP1
Leyes de Morgan:
“No existe ningún pájaro que llegue al horizonte”
“Todos los pájaros no llegan al horizonte”
xF xF
“No existe ninguna persona mas importante que Mister$”
“No es cierto que a todos les apetece la opera”
xF xF
“A todos les gusta el sol y hace buen tiempo” es eqivalente a
“Para todos podemos decir que: les gusta el sol y hace buen tiempo”
Si la variable x no figura en la fórmula G podemos decir:
xF(x)  G x(F(x)  G)
xF(x)  G  x(F(x)  G)
xF(x)  G x(F(x)  G)
xF(x)  G  x(F(x)  G)
Resumen de las equivalencias y
Leyes de Morgan:leyes en CP1
xF xF
xF xF
Si la variable x no figura en la fórmula G podemos decir:
xF(x)  G x(F(x)  G)
xF(x)  G  x(F(x)  G)
xF(x)  G x(F(x)  G)
xF(x)  G  x(F(x)  G)
xF(x)  xG(x) x(F(x)  G(x))
xF(x)  xG(x) x(F(x)  G(x))
x yG(x,y) y xG(x,y)
x yG(x,y) y xG(x,y)
Equivalencias y Leyes
Es equivalente decir:
“A todos los gusta ir a cine y a todos les gusta la coca-cola”
“ A todos les gusta: ir al cine y la coca-cola”
xF(x)  xG(x) x(F(x)  G(x))
“Aqui hay gente con pelo rizado o hay gente con ojos azules.”
xF(x)  xG(x) x(F(x)  G(x))
“A todas las personas todos los días les gusta ir al mar.”
“Es cierto que todos los días a todas las personas les gusta ir al mar?!”
x yG(x,y) y xG(x,y)
“Existen plantas y existen animales que comen plantas.”
“Es cierto que existen animales y plantas tales que los animales comen
estas plantas?!”
x yG(x,y) y xG(x,y)
Equivalencias y Leyes
Pero!
xF(x)  xG(x) x(F(x)  G(x))
Cada día como pizza o cada día como bocadillo. Es cierto que
cada día como pizza o bocadillo?!
Todas las fichas son blancas o negras. Es cierto que todas las
fichas son blancas o todas las fichas son negras?!
xF(x)  xG(x) x(F(x)  G(x))
xF(x)  xG(x)
x(F(x)  G(x))
• Existen colores que les gustan a la gente y además son
fuertes. Es cierto que existen colores que les gustan a la
gente y que existen colores que son fuertes?!
• Existen días buenos y malos. Es cierto que existen días que
son buenos y malos?!
xF(x)  xG(x)  x(F(x)  G(x))
Equivalencias y Leyes
 x  yG(x,y)
y  xG(x,y)
• Existe un coche que a todos les gusta. Es cierto
que para todos existe un coche que les gusta?!
• Para cada numero y existe un numero x que es
sucesor de y. Existe un numero x tal que para cada
numero y, x es sucesor de y?!
 x  yG(x,y) y  xG(x,y)
Ejercicios
Ejercicio 1: Escribir la fórmula equivalente a:
(x p(x,y)  x q(x))  w p(f(a,w))
sacando los cuantificadores adelante.
Ejercicio 2: Escribir la fórmula equivalente a:
x y p(x,f(y))  y (q(x,y)  r(x))
sacando los cuantificadores adelante.
Formas Normales para CP1
Df. Una fórmula es en Forma Normal Prenexa (FNP) si
tiene la forma:
Q1x1Q2x2…QnxnF
donde Qi{,} y F no contiene cuantificadores.
Teorema: Toda fórmula en CP1 es semánticamente
equivalente a una fórmula escrita en FNP.
Ejercicio: x  a(x)xb(x)
Paso 1: Eliminar los condicionales
Paso 2: Aplicar las reglas de transformación para que las
negaciones esten aplicadas solo a fórmulas atómicas.
Paso 3: Eliminar dobles negaciones
Paso 4: Trasladar los cuantificadores a la izquierda renombrando
las variables repetidas.
Es la expresión obtenida única?!
Ejercicio: Escribir en FNP:
x y (z(p(x,y) p(y,z))  u q(x,y,u))
Df. Una fórmula esta escrita en Forma Normal de Skolem
(FNS) si esta escrita en FNP con todas las variables
cuantificadas universalmente.
Algoritmo de skolemización:
Paso 1: Renombrar las variables repetidas y pasar la fórmula
en FNP.
Paso 2: Cuantificar las variables libres como existenciales.
Paso 3: Eliminar las variables existenciales de la siguiente
forma:
Si tenemos x1 x2… xn sin ningún cuantificador
universal, sustituimos las variables existenciales con
constantes.
Si tenemos x …z t, sustituimos t con una función que
depende de todas las variables universales antes de t (t->
f(x,…z))
• Ejercicio: Skolemizar la fórmula: x yp(x,y)  y x
p(x,y)
Teorema: Una fórmula es satisfactible sii su FNS es
satisfactible.
Df. Una fórmula está en Forma Normal Conjuntiva (FNC) si
está escrita en FNS y su matriz es una conjunción de
disyunciones de predicados o predicados negados.
Ejemplo: x y ( p(x,f(x)) (p(x,g(y))  q(1)))
Df. Si una fórmula en FNC se representa como un conjunto
de conjuntos de literales, decimos que está en forma
clausal.
Ejemplo: {{p(x,f(x))},{p(x,g(y)),q(1)}}
Ejercicios: Escribir en forma clausal:
a)  x(p(x,z)  y q(x,f(y)))  y p(g(x,y),z)
b) x p(x) (x (q(x) r(x))  x y s(x,y)
Cálculo por resolución en CP1
• Recordemos:
– (+) el calculo por resolución tiene una única
regla: la regla por resolución
{p}{p,q,  r} => {q,  r}
– (-) necesita que las fórmulas estén en forma
clausal.
– (-) es sólida y completa por refutación.
• Si F|-•
, F es insatisfactible.
• Si F es insatisfactible, F|-•
Cálculo por resolución en CP1
Df. Dadas dos cláusulas C1 y C2 en CP1, decimos
que R es resolvente de C1 y C2 si:
• existen las sustituciones s1 y s2: C1s1 y C2s2 no
contienen variables en común.
• existen un conjunto de literales L y L’:
L  C1 y L’C2 son unificables es decir L1s1=L’s2
• El resolvente es la unión del resto de literales
aplicadas las sustituciones:
R={C1\ L1}U{C2\L’}s1s2
Ejercicio: Encontrar el resolvente:
FNC: x z u((p(f(x))  q(z) p(z))  (p(u) r(g(u),a))
Forma clausal: {{p(f(x)),q(z),p(z)},{p(u),r(g(u),a)}}
Teorema: Si F es una fórmula de CP1 en forma clausal y R es el
resolvente de cláusulas de F, se cumple:
F F U R
Las propiedades de solidez y completitud de CP1 son los idénticos a
las del CP0.
Teorema: Una fórmula de CP1 en forma clausal es insatisfactible sii
aplicando la regla de resolución se llega a la cláusula vacía:
F es insatisfactible sii F -•
Propiedad: Las estrategias son las mismas como en el caso de CP0.
Lo único que cambia es la forma de obtener el resolvente.
Ejercicio
Formalizar y demostrar en CP1 el siguiente problema:
“Ningún chico rubio quiere cantar.
No hay ningún chico alto que no quiere cantar.
Todos mis profesores son rubios.
Por lo tanto todos los profesores míos no son altos.”
• Paso 1: Formalizamos el problema
• Paso 2: Escribimos la formalización como una fórmula
insatisfactible
• Paso 3: La pasamos a forma clausal (FNP, FNS, FNC)
• Paso 4: Aplicamos la regla de resolución usando la
estrategia SLD.
Ejercicio
Formalizar y demostrar en CP1 el siguiente problema:
“Ningún chico rubio quiere cantar.
No hay ningún chico alto que no quiere cantar.
Todos mis profesores son rubios.
Por lo tanto todos los profesores míos no son altos.”
Formalizacion:
x(r(x)  c(x))
x(a(x)  c(x))
x(p(x)  r(x))
------------- x(p(x)   a(x))
Ejercicio
Formalizar y demostrar en CP1 el siguiente
problema:
“Pere es primo de Jose. Antonio es
hermano de Jose. Todos los primos son
familiares. Todos los hermanos son
familiares. Quien es familiar de Jose?!”