Está en la página 1de 12

L

ogica computacional
L
ogica proposicional: Resoluci
on
proposicional
Tere Alsinet

Escola Polit`ecnica Superior


Universitat de Lleida

Resolucion proposicional
Principio de Resoluci
on:
Dadas las cl
ausulas C1 = {L1 , . . . , Ln } y C2 = {L01 , . . . , L0m },

diremos que la clausula


R = (C1 {Li }) (C2 {L0j })
es una resolvente de C1 y C2 si Li C1 , L0j C2 y Ldi = L0j (el
literal Li es el dual del literal L0j )
Si C1 = {L} y C2 = {Ld }, obtenemos como resolvente la

clausula vaca la cual se representa como 


Notaci
on: El dual del literal p es el literal p y el dual del

literal p es el literal p

Resolucion proposicional
Ejemplo: La cl
ausula resolvente de C1 = {p, q, s} y

C2 = {p, q, t} es una nueva clausula


R = {q, s, t}
Intuici
on: {(p q s), (p q t)} |= (q s t)

Los modelos de (p q s) (p q t) son modelos de


(q s t)
(p q s) (p q t) se eval
ua a cierto u
nicamente
cuando (q s t) se eval
ua a cierto
Ejemplo: La cl
ausula resolvente de C1 = {p} y C2 = {p} es

, que expresa que (p p) es una contradiccion

Resolucion proposicional
La aplicacion del principio de resoluci
on a dos clausulas se
representa graficamente como sigue:
C1

C2

@
@
@
@

R
Ejemplos de resolventes:
C1
C1
C1
C1

= {P, Q, R}
= {Q}
= {P}
= {P, Q}

C2
C2
C2
C2

= {Q, R, S}
= {P, Q, R}
= {P}
= {Q}

R
R
R
R

= {P, R, S}
= {P, R}
=
= {P}

Prueba por resolucion


Sea S un conjunto de clausulas y C una clausula.
Una prueba por resoluci
on de C a partir de S es una secuencia
finita de clausulas C1 , C2 , . . . , Cn tales que
cada Ci , 1 i n, es una cl
ausula de S o es una resolvente

de dos clausulas Cj , Ck , 1 j, k < i, y


Cn = C

Refutaci
on:
Una prueba de  a partir de S es una refutaci
on de S.
Teorema de correcci
on y completitud:
Un conjunto de clausulas S es insatisfactible ssi existe una
refutacion de S
Un conjunto de clausulas S es insatisfactible ssi a partir de S
aplicando el principio de resoluci
on podemos obtener 

Obtencion de todas las resolventes


Para poder afirmar que un conjunto de cl
ausulas C es

insatisfactible o contradictorio aplicando el procedimiento de


prueba por refutaci
on basado en resoluci
on, debemos obtener
la clausula vaca  aplicando el principio de resolucion a las
clausulas de C
Necesitamos un procedimiento que nos garantice que hemos
generado todas las resolventes posibles
Sea C un conjunto de cl
ausulas.
Res(C) = C {R|R es una resolvente de dos clausulas de C}
Calculo:
Res 0 (C) = C
Res n+1 (C) = Res(Res n (C)) n 0
[
Res (C) =
Res n (C)
n0

Ejemplo: Calculo del conjunto de resolventes


Calcular Res (C), donde

C = {{P, Q, R}, {S}, {Q, S}, {P, S}}


Res 0 (C) = C
Res 1 (C) = Res 0 (C) {{P, R, S}, {Q, R, S}, {Q}, {P}}
Res 2 (C) = Res 1 (C) {{P, R}, {Q, R}, {R, S}}
Res 3 (C) = Res 2 (C) {R}
Como ya no podemos derivar m
as resolventes tenemos que

Res (C) = Res 3 (C) y como  6 Res (C) podemos afirmar


que C es satisfactible
Sabemos que el conjunto de cl
ausulas C es satisfactible, pero
no podemos afirmar que sea tautol
ogico
Para poder afirmar si el conjunto de cl
ausulas C es o no es
tautologico, debemos obtener un nuevo conjunto de
cl
ausulas que corresponde con la negaci
on de las clausulas en
C y derivar la clausula vaca  a partir del nuevo conjunto

Algoritmo: Prueba por refutacion basada en resolucion


Procediment resoluci
o
Entrada: C = {C1 , C2 , . . . , Cn }
begin
X := C
repeat
Y := X
X := Res(Y )
until ( X ) (X = Y )
if ( X ) then return (C insatisfactible)
else return (C satisfactible)
endif
end;

Ejemplo: Obtencion de una refutacion


Una refutaci
on de
C = {{P, Q, R}, {P}, {P, Q, R}, {P, Q}}
es:
C1
C2
C3
C4
C5
C6
C7

= {P, Q, R}
= {P, Q, R}
= {P, Q}
= {P, Q}
= {P}
= {P}
=

(cl ausula de C)
(cl ausula de C)
(resolvente de C1 , C2 )
(cl ausula de C)
(resolvente de C3 , C4 )
(cl ausula de C)
(resolvente de C5 , C6 )

C1 , C2 , C3 , C4 , C5 , C6 , C7 es una refutaci
on de C.

Ejemplo: Obtencion de una refutacion


Graficamente: C = {{P, Q, R}, {P}, {P, Q, R}, {P, Q}}
{P, Q, R}

{P, Q, R}






{P, Q}




{P}



{P, Q}







{P}

Exercicis

1. Trobar totes les possibles resolvents entre les cl`ausules de C.


C = {{P, Q}, {P, S}, {Q, R}, {S, R}, {P}}
2. Calcular Res (C), on
C = {{P}, {Q, S}, {P, Q}, {P, Q, R}}
3. Trobar una refutaci
o per resoluci
o de C.
C = {{P2 }, {P1 , P2 }, {P1 , P3 }, {P3 }}
C = {{P1 , P2 }, {P1 , P2 }, {P3 , P2 }, {P3 }}
C = {{P1 }, {P1 , P2 }, {P3 , P1 }, {P2 , P3 }}

Exercicis

1. Demostrar per refutaci


o basat en resoluci
o que lenunciat A es
una tautologia.
A = (P Q R) (P R) (Q R) P
2. Demostrar les seg
uents conseq
u`encies l`
ogiques emprant
refutacio basat en resoluci
o:

{P, P Q} |= P Q
{Q, P (Q R)} |= P R
{(P Q) R} |= (P R) (Q R)
{P (Q P)} |= P Q
{(P Q) (P R)} |= P (Q R)

También podría gustarte