450 likes | 781 Vues
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.
E N D
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). Cuales 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, AB,AB,AB 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. xAB, x(AB), • 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 • xyA(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-ariop 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 siiI(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 • uD, A(u)=1 y viceversa. • Si F= x A(x), I(F)=1 sii • uD, 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(F1F2 … 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 (FnB) Df. Dos fórmulas A y B son semánticamente equivalentes (AB) sii AB y BA. 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. F1F2 … Fn Bes insatisfactible • Lo podemos demostrar de dos maneras: • Semánticamente (p.e. utilizando la tabla de verdad) • Formalmente: F1F2 … 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 xF “No existe ninguna persona mas importante que Mister$” “No es cierto que a todos les apetece la opera” xF xF “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 en CP1 Leyes de Morgan: xF xF xF xF 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 UR 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 losprofesores míosno 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 losprofesores míosno 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 losprimos son familiares. Todos los hermanos son familiares. Quien es familiar de Jose?!”