Vous êtes sur la page 1sur 34

Paradigma l ogico L ogica proposicional Resoluci on

Programaci on L ogica
Eduardo Bonelli
Departamento de Computaci on FCEyN UBA

27 de septiembre de 2005

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Prolog

Paradigma l ogico

Se basa en el uso de la l ogica como un lenguaje de programaci on Se especican


ciertos hechos y reglas de inferencia un objetivo (goal) a probar

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

Paradigma l ogico L ogica proposicional Resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

Sintaxis de la l ogica proposicional


Dado un conjunto V de variables proposicionales, podemos denir inductivamente al conjunto de f ormulas proposicionales (o proposiciones) (Prop) de la siguiente manera:
1 2

Una variable proposicional P0 , P1 , . . . es una proposici on Si A, B son proposiciones, entonces:


A es una proposici on A B es una proposici on A B es una proposici on A B es una proposici on A B es una proposici on

Ejemplos: A B , (A B ) (A A)

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

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

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

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

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

Ejemplos

Tautolog as AA A A (A B ) (B A) Proposiciones insatisfactibles (A B ) (A B ) A (A B ) A B

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

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

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

Forma normal conjuntiva (FNC)

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

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

Forma normal conjuntiva


Ejemplos (P Q ) (P Q ) est a en FNC (P Q ) (P Q ) no est a en FNC (P Q ) P no est a en FNC Teorema Para toda proposici on A puede hallarse una proposici on A en FNC que es l ogicamente equivalente a A. Nota A es l ogicamente equivalente a B sii A B es una tautolog a

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Sintaxis Valuaciones, Satisfactibilidad, Tautolog as Forma normal conjuntiva

Notaci on conjuntista para FNC


Dado que tanto como
1 2 3

son conmutativos (ie. (A B ) (B A)) son asociativos (ie. ((A B ) C ) (A (B C ))) son idempotentes (ie. (A A) A)

Podemos asumir que


1 2

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

Principio fundamental del m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

Ejemplo

Objetivo: mostrar que el conjunto de cl ausulas {{P , Q }, {P , Q }, {P , Q }, {P , Q }} es insatisfactible.


1 2 3 4 5

{{P , Q }, {P , Q }, {P , Q }, {P , Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }, }

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

Ejemplo

Objetivo: mostrar que el conjunto de cl ausulas {{P , Q }, {P , Q }, {P , Q }, {P , Q }} es insatisfactible.


1 2 3 4 5

{{P , Q }, {P , Q }, {P , Q }, {P , Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }, }

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

Ejemplo

Objetivo: mostrar que el conjunto de cl ausulas {{P , Q }, {P , Q }, {P , Q }, {P , Q }} es insatisfactible.


1 2 3 4 5

{{P , Q }, {P , Q }, {P , Q }, {P , Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }, }

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

Ejemplo

Objetivo: mostrar que el conjunto de cl ausulas {{P , Q }, {P , Q }, {P , Q }, {P , Q }} es insatisfactible.


1 2 3 4 5

{{P , Q }, {P , Q }, {P , Q }, {P , Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }, }

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

Ejemplo

Objetivo: mostrar que el conjunto de cl ausulas {{P , Q }, {P , Q }, {P , Q }, {P , Q }} es insatisfactible.


1 2 3 4 5

{{P , Q }, {P , Q }, {P , Q }, {P , Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }} {{P , Q }, {P , Q }, {P , Q }, {P , Q }, {P }, {Q }, {P }, }

Eduardo Bonelli

Programaci on L ogica

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

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

Paradigma l ogico L ogica proposicional Resoluci on

Introducci on Resolventes El m etodo de resoluci on

M etodo de resoluci on

Recapitulando Para probar que A es una tautolog a hacemos lo siguiente:


1 2 3

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

Si no hallamos ninguna refutaci on:


A es satisfactible, Y, por lo tanto, A no es una tautolog a

Eduardo Bonelli

Programaci on L ogica

Vous aimerez peut-être aussi