Académique Documents
Professionnel Documents
Culture Documents
Programaci on L ogica
Eduardo Bonelli
Departamento de Computaci on FCEyN UBA
27 de septiembre de 2005
Eduardo Bonelli
Programaci on L ogica
Introducci on Prolog
Paradigma l ogico
Un motor de inferencia trata de probar que el objetivo es consecuencia de los hechos y reglas Es declarativo: se especican hechos, reglas y objetivo sin indicar c omo se obtiene este u ltimo a partir de los primeros
Eduardo Bonelli
Programaci on L ogica
Introducci on Prolog
Prolog
Lenguaje de programaci on basado en este esquema que fue introducido a nes de 1971 (cf. The Birth of Prolog, A. Colmerauer y P. Roussel, www.lif-sud.univ-mrs.fr/colmer/) Los programas se escriben en un subconjunto de la l ogica de primer orden El mecanismo te orico en el que se basa es el m etodo de resoluci on Para motivar y comprender este mecanismo primero lo vamos a estudiar en el ambito de la l ogica proposicional
Eduardo Bonelli
Programaci on L ogica
Introducci on Prolog
Prolog
Ejemplo de programa PROLOG habla(ale,ruso). habla(juan,ingles). habla(maria,ruso). habla(maria,ingles). seComunicaCon(X,Y):-habla(X,L),habla(Y,L),X\=Y Ejemplo de goal seComunicaCon(X,ale)
Eduardo Bonelli
Programaci on L ogica
Introducci on Prolog
Nuestro enfoque
1 2 3 4 5
L ogica proposicional (Clase 1/3) M etodo de resoluci on para l ogica proposicional (Clase 1/3) L ogica de primer orden (Clase 2/3) M etodo de resoluci on para l ogica de primer orden (Clase 2/3) Cl ausulas de Horn y resoluci on SLD, programaci on l ogica (Clase 3/3)
Eduardo Bonelli
Programaci on L ogica
Ejemplos: A B , (A B ) (A A)
Eduardo Bonelli
Programaci on L ogica
Valuaciones
Denici on Una valuaci on es una funci on v : V {T, F} que asigna valores de verdad a las variables proposicionales Una valuaci on satisface una proposici on A si v |= A donde: v |= P sii v |= A sii v |= A B sii v |= A B sii v |= A B sii v |= A B sii v (P ) = T v |= A v |= A o v |= B v |= A y v |= B v |= A o v |= B (v |= A sii v |= B )
Eduardo Bonelli
Programaci on L ogica
Tautolog as y satisfactibilidad
Denici on Una proposici on A es una tautolog a si v |= A para toda valuaci on v . satisfactible si existe una valuaci on v tal que v |= A insatisfactible si no es satisfactible Un conjunto de proposiciones S es satisfactible si existe una valuaci on v tal que para todo A S , se tiene v |= A insatisfactible si no es satisfactible
Eduardo Bonelli
Programaci on L ogica
Ejemplos
Eduardo Bonelli
Programaci on L ogica
Tautolog as e insatisfactibilidad
Teorema Una proposici on A es una tautolog a sii A es insatisfactible . Si A es tautolog a, para toda valuaci on v , v |= A. Entonces, v |= A (ie. v no satisface A). . Si A es insatisfactible, para toda valuaci on v , v |= A. Luego v |= A. Notar Este resultado sugiere un m etodo indirecto para probar que una proposici on A es una tautolog a, a saber probar que A es insatisfactible
Eduardo Bonelli Programaci on L ogica
Un Literal es una variable proposicional P o su negaci on P Una proposici on A est a en FNC si es una conjunci on C1 . . . Cn donde cada Ci (llamado cl ausula) es una disyunci on Bi 1 . . . Bini y cada Bij es un literal Una FNC es una conjunci on de disyunciones de literales
Eduardo Bonelli
Programaci on L ogica
Eduardo Bonelli
Programaci on L ogica
son conmutativos (ie. (A B ) (B A)) son asociativos (ie. ((A B ) C ) (A (B C ))) son idempotentes (ie. (A A) A)
Cada cl ausula Ci es distinta Cada cl ausula puede verse como un conjunto de literales distintos
Consecuentemente para una FNC podemos usar la notaci on {C1 , . . . , Cn } donde cada Ci es un conjunto de literales {Bi 1 , . . . , Bini } Por ejemplo, la FNC (P Q ) (P Q ) se anota {{P , Q }, {P , Q }}
Eduardo Bonelli Programaci on L ogica
Resoluci on
Es un m etodo para decidir si una proposici on es v alida Introducido por Alan Robinson en 1965 Es simple de implementar Se extiende a l ogica de primer orden Es bastante popular en el ambito de demostraci on autom atica de teoremas
Eduardo Bonelli
Programaci on L ogica
Resoluci on
Tiene una u nica regla de inferencia: la regla de resoluci on La idea del m etodo: mostrar la validez de una proposici on estableciendo que la negaci on de la proposici on es insatisfactible. Por ello se dice que es un m etodo de refutaci on Requiere que las proposiciones est en en forma normal conjuntiva
Eduardo Bonelli
Programaci on L ogica
El m etodo de resoluci on se basa en el hecho de que la siguiente proposici on es una tautolog a (A P ) (B P ) (A P ) (B P ) (A B ) En efecto, el conjunto de cl ausulas {C1 , . . . , Cm , {A, P }, {B , P }} es l ogicamente equivalente a {C1 , . . . , Cm , {A, P }, {B , P }, {A, B }}
Eduardo Bonelli
Programaci on L ogica
Resoluci on
En consecuencia, el conjunto de cl ausulas {C1 , . . . , Cm , {A, P }, {B , P }} es insatisfactible sii {C1 , . . . , Cm , {A, P }, {B , P }, {A, B }} es insatisfactible La cl ausula {A, B } se llama resolvente de las cl ausulas {A, P } y {B , P } El resolvente de las cl ausulas {P } y {P } es la cl ausula vac a y se anota
Eduardo Bonelli
Programaci on L ogica
Resoluci on
Denici on Dado un literal L, el opuesto de L (escrito L) se dene como:
P si L = P P si L = P
Dadas dos cl ausulas C1 , C2 , una cl ausula C se dice resolvente un literal L, L C1 , L C2 , y de C1 y C2 sii, para alg C = (C1 {L}) (C2 {L}) Ejemplo Las cl ausulas {A, B } y {A, B } tienen dos resolventes: {A, A} y {B , B }. Las cl ausulas {P } y {P } tienen a la cl ausula vac a como resolvente
Eduardo Bonelli Programaci on L ogica
Regla de resoluci on
Regla de resoluci on {A1 , . . . , Am , Q } {B1 , . . . , Bn , Q } {A1 , . . . , Am , B1 , . . . , Bn } Ejemplo El resultado de aplicar la regla de resoluci on a {{P , Q }, {P , Q }, {P , Q }, {P , Q }} es {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }}
Eduardo Bonelli
Programaci on L ogica
El m etodo de resoluci on
Denici on El proceso de agregar el resolvente de dos cl ausulas que pertenecen a un conjunto S a S (ie. de aplicar la regla de resoluci on a S ) se llama un paso de resoluci on. NB: Pasos de resoluci on preservan insatisfactibilidad Sea S un conjunto de cl ausulas. Si C es la cl ausula resolvente de C1 , C2 S , entonces S es insatisfactible sii S {C } es insatisfactible. O, lo que es lo mismo, S es l ogicamente equivalente a S {C }. Denici on Un conjunto de cl ausulas S se llama una refutaci on si S contiene a la cl ausula vac a.
Eduardo Bonelli Programaci on L ogica
El m etodo de resoluci on
El m etodo de resoluci on trata de construir una secuencia de conjuntos de cl ausulas, obtenidas usando pasos de resoluci on hasta llegar a una refutaci on. En ese caso se sabe que el conjunto inicial de cl ausulas es insatisfactible dado que
1 2
cada paso de resoluci on preserva insatisfactibilidad el u ltimo conjunto de cl ausulas es insatisfactible dado que contiene la cl ausula vac a
Eduardo Bonelli
Programaci on L ogica
M etodo de resoluci on
Terminaci on de la regla de resoluci on La aplicaci on reiterada de la regla de resoluci on siempre termina (suponiendo que el resolvente que se agrega es nuevo) En efecto, notar que
1
El resolvente (ie. la cl ausula nueva que se agrega) se forma con los literales distintos que aparecen en el conjunto de cl ausulas de partida S Hay una cantidad nita de literales en el conjunto de cl ausulas de partida S
En el peor de los casos, la regla de resoluci on podr a generar una nueva cl ausula por cada combinaci on diferente de literales distintos de S
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Objetivo: mostrar que el conjunto de cl ausulas {{A, B , C }, {A, B , C }, {A, B }, {A}} es insatisfactible.
1 2 3 4
{{A, B , C }, {A, B , C }, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}, }
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Objetivo: mostrar que el conjunto de cl ausulas {{A, B , C }, {A, B , C }, {A, B }, {A}} es insatisfactible.
1 2 3 4
{{A, B , C }, {A, B , C }, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}, }
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Objetivo: mostrar que el conjunto de cl ausulas {{A, B , C }, {A, B , C }, {A, B }, {A}} es insatisfactible.
1 2 3 4
{{A, B , C }, {A, B , C }, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}, }
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Objetivo: mostrar que el conjunto de cl ausulas {{A, B , C }, {A, B , C }, {A, B }, {A}} es insatisfactible.
1 2 3 4
{{A, B , C }, {A, B , C }, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}} {{A, B , C }, {A, B , C }, {A, B }, {A}, {A, B }, {A}, }
Eduardo Bonelli
Programaci on L ogica
Ejemplo
Objetivo: mostrar que el conjunto de cl ausulas S = {{A, B , C }, {A}, {B }} es insatisfactible. No podemos aplicar ning un paso de resoluci on a S Por lo tanto, no puede llegarse a una refutaci on a partir S S debe ser satisfactible En efecto, tomar por ejemplo v (A) = v (B ) = T
Eduardo Bonelli
Programaci on L ogica
Correctitud y completitud
El siguiente resultado establece la correctitud y completitud del m etodo de resoluci on Teorema Dado un conjunto nito S de cl ausulas, S es insatisfactible sii tiene una refutaci on
Eduardo Bonelli
Programaci on L ogica
M etodo de resoluci on
Calculamos la forma normal conjuntiva de A Aplicamos el m etodo de resoluci on Si hallamos una refutaci on:
A es insatisfactible, Y, por lo tanto, A es una tautolog a
Eduardo Bonelli
Programaci on L ogica