Está en la página 1de 15

Lógica

Tema 4: Unificación y Resolución de predicados

Dpto. Matemáticas - ESII

Curso 2021/2022

Juan Ángel Aledo (JuanAngel.Aledo@uclm.es), Mere Macià (Hermenegilda.Macia@uclm.es)

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 1 / 30

Tema 4: Unificación y Resolución de predicados

1 Forma clausulada de la lógica de predicados

2 Sustitución y operación de sustitución

3 Unificación de predicados

4 Resolución.

5 Estrategias de Resolución. SLD-Resolución

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 2 / 30


Forma clausulada de la lógica de predicados

Contenidos

1 Forma clausulada de la lógica de predicados

2 Sustitución y operación de sustitución

3 Unificación de predicados

4 Resolución.

5 Estrategias de Resolución. SLD-Resolución

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 3 / 30

Forma clausulada de la lógica de predicados

Forma Clausulada

Recordemos que una cláusula en L1 es una expresión del tipo

L1 ∨ L2 ∨ · · · ∨ Ln

donde cada Li es una fórmula atómica sola o negada en la que todas las variables
están universalmente cuantificadas.
En otras palabras, una cláusula en L1 es una disyunción de predicados, positivos o
negados.

Una sentencia está expresada en forma clausulada si es una conjunción de cláusulas

(L11 ∨ L12 ∨ · · · ∨ L1n1 ) ∧ (L21 ∨ L22 ∨ · · · ∨ L2n2 ) ∧ · · ·

donde cada cláusula posee sus propias variables.

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 4 / 30


Forma clausulada de la lógica de predicados

Forma Clausulada. Teorema

Teorema:
Toda fórmula de la lógica de predicados se puede escribir en forma clausulada.

Prueba: Partimos de cualquier fórmula de L1 . Tenemos que dar los siguientes


pasos:
1) Eliminación de condicionales y bicondicionales:

P(x) =⇒ Q(y ) = P 0 (x) ∨ Q(y )


P(x) ⇐⇒ Q(y ) = (P 0 (x) ∨ Q(y )) ∧ (Q 0 (y ) ∨ P(x))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 5 / 30

Forma clausulada de la lógica de predicados

Forma Clausulada. Teorema

2) Eliminación las negaciones que no afecten a un sólo literal

(L1 ∧ L2 ∧ · · · ∧ Ln )0 = L01 ∨ L02 ∨ · · · ∨ L0n


(L1 ∨ L2 ∨ · · · ∨ Ln )0 = L01 ∧ L02 ∧ · · · ∧ L0n
L00 = L
(∀x ∈ X , P(x))0 = ∃x ∈ X / P 0 (x)
(∃x ∈ X / P(x))0 = ∀x ∈ X , P 0 (x)

3) Independización de las variables cuantificadas: Consiste en renombrar las


variables para que una misma variable no esté cuantificada más de una vez

(∀x, y , P(x, y )) ∧ (∃x, z / Q(x, z)) = (∀x, y , P(x, y )) ∧ (∃t, z / Q(t, z))
(∀x, y , P(x, y )) ∧ (∀x, z / Q(x, z)) = (∀x, y , P(x, y )) ∧ (∀t, z / Q(t, z))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 6 / 30


Forma clausulada de la lógica de predicados

Forma Clausulada. Teorema

4) Eliminación de los cuantificadores existenciales:


- Si la variable cuantificada existencialmente no está afectada por ningún
cuantificador universal, se sustituye por una constante llamada
constante de Skolem cuyo sı́mbolo no aparece ya en la sentencia, y se
elimina el cuantificador existencial
∃x / ∀y , P(x, y ) ∨ Q 0 (x, a) = ∀y , P(b, y ) ∨ Q 0 (b, a)

- Si la variable cuantificada existencialmente está afectada por algún


cuantificador universal, se sustituye por una función llamada función de
Skolem cuyo sı́mbolo no aparece ya en la expresión, y cuyos
argumentos son las variables cuantificadas universalmente que afectan
al existencial, y se elimina el cuantificador existencial
∀x, y , ∃z / P(f (x, y ), z)∨Q 0 (z) = ∀x, y , P(f (x, y ), g (x, y ))∨Q 0 (g (x, y ))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 7 / 30

Forma clausulada de la lógica de predicados

Forma Clausulada. Teorema

5) Eliminación de los cuantificadores universales: Prescindimos de los


cuantificadores universales, suponiendo a posteriori que las variables están
cuantificadas universalmente

∀x, y , P(b, x) ∨ Q 0 (x, a) = P(b, x) ∨ Q 0 (x, a)

6) Aplicación de la propiedad distributiva

(L1 ∧ L2 ) ∨ L3 = (L1 ∨ L3 ) ∧ (L2 ∨ L3 ).

7) Redenominación de las variables para que cada cláusula tenga las suyas
propias

(P(x, y ) ∨ Q 0 (x, a)) ∧ (P 0 (x, y ) ∨ R(a)) = (P(x, y ) ∨ Q 0 (x, a)) ∧ (P 0 (z, t) ∨ R(a))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 8 / 30


Forma clausulada de la lógica de predicados

Ejemplo Forma Clausulada


Para la siguiente expresión de L1 , donde P, Q y R son predicados, x, y , z variables y a
una constante y f una función, se pide dar su forma clausulada:

[∀x ∈ X , ∃y ∈ X / P(x, y ) =⇒ Q 0 (y ) ∧ R(f (a))] ∧ [∀x, z ∈ X , R(x) ∧ Q 0 (z)]0

1) Eliminación de condicionales

[∀x ∈ X , ∃y ∈ X / P 0 (x, y )∨(Q 0 (y )∧R(f (a)))]∧[∀x, z ∈ X , R(x)∧Q 0 (z)]0

2) Eliminación de negaciones

[∀x ∈ X , ∃y ∈ X / P 0 (x, y )∨(Q 0 (y )∧R(f (a)))]∧[∃x, z ∈ X , / R 0 (x)∨Q(z)]

3) Independización variables cuantificadas

[∀x ∈ X , ∃y ∈ X / P 0 (x, y )∨(Q 0 (y )∧R(f (a)))]∧[∃t, z ∈ X , / R 0 (t)∨Q(z)]

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 9 / 30

Forma clausulada de la lógica de predicados

Ejemplo Forma Clausulada


4) Eliminación de los cuantificadores existenciales:

[∀x ∈ X , P 0 (x, g (x)) ∨ (Q 0 (g (x)) ∧ R(f (a)))] ∧ [R 0 (b) ∨ Q(c)]

5) Eliminación de los cuantificadores universales:

[P 0 (x, g (x)) ∨ (Q 0 (g (x)) ∧ R(f (a)))] ∧ [R 0 (b) ∨ Q(c)]

6) Distributiva de ∨ respecto a ∧

[P 0 (x, g (x)) ∨ Q 0 (g (x))] ∧ [P 0 (x, g (x)) ∨ R(f (a))] ∧ [R 0 (b) ∨ Q(c)]

7)Redenominación de variables:

[P 0 (x, g (x)) ∨ Q 0 (g (x))] ∧ [P 0 (t, g (t)) ∨ R(f (a))] ∧ [R 0 (b) ∨ Q(c)]

Ası́ pues, la expresión dada se expresa como conjunción de tres cláusulas C1 ∧ C2 ∧ C3 con

C1 = P 0 (x, g (x)) ∨ Q 0 (g (x)), C2 = P 0 (t, g (t)) ∨ R(f (a)), C3 = R 0 (b) ∨ Q(c)

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 10 / 30


Sustitución y operación de sustitución

Contenidos

1 Forma clausulada de la lógica de predicados

2 Sustitución y operación de sustitución

3 Unificación de predicados

4 Resolución.

5 Estrategias de Resolución. SLD-Resolución

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 11 / 30

Sustitución y operación de sustitución

Sustitución

Dadas variables x1 , x2 , . . . , xn (distintas) y términos t1 , t2 , . . . , tn en los que no


aparecen las variables xi , llamaremos sustitución a un conjunto de parejas

s = {t1 | x1 , t2 | x2 , . . . , tn | xn }

Ejemplos: Discutir si son o no sustituciones:


s1 = {a | x, b | f (y )} NO: f (y ) no es variable
s2 = {a | x, f (y ) | x} NO: x es una variable que aparece dos veces
s3 = {f (y ) | x, a | y } NO: en el término f (y ) aparece la variable y
s4 = {f (a) | x, g (b, z) | y } X
s5 = {f (a) | x, f (a) | y } X

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 12 / 30


Sustitución y operación de sustitución

Operación de Sustitución

Sea L una fórmula atómica que contiene las variables x1 , x2 , . . . , xn (no necesaria-
mente todas, quizás ninguna) y s = {t1 | x1 , t2 | x2 , . . . , tn | xn } una sustitución.

La operación de sustitución de s en L consiste en poner ti en lugar de xi para todos


los pares ti | xi de s para los que xi aparece en L.

Representamos por Ls el resultado de realizar la operación de sustitución de s en L

Ejemplo: Consideremos L = P 0 (x, y , f (z, a)) y s = {g (a) | x, b | t, u | z}, donde


x, y , z, t, u son variables, a, b constantes, y f , g funciones. Entonces

Ls = P 0 (g (a), y , f (u, a))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 13 / 30

Sustitución y operación de sustitución

Operación de Sustitución

Si ninguna de las variables xi de s aparece en L, entonces Ls = L.


Si Ls no contiene variables se denomina caso terminal.
Si Ls supone tan sólo un cambio en el nombre de las variables de L, se
denomina variante alfabética de L.
Por definición consideraremos
(L1 ∨ L2 )s = L1 s ∨ L2 s, (L1 ∧ L2 )s = L1 s ∧ L2 s

Observación: Algunos autores consideran la siguiente situación, más restrictiva,


para que sea posible la operación de sustitución de s en L: si xi aparece en L, el
término ti no puede contener ningún sı́mbolo de constante o función que aparezca
en L. Nosotros no consideraremos esta restricción.

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 14 / 30


Sustitución y operación de sustitución

Operación de Sustitución

Ejemplos: En cada caso, realiza la operación de sustitución de s en L:


s = {b | z}
L = P(x, f (a, y )) Ls = L
s = {g (b) | x, c | y }
L = P(x, f (a, y )) Ls = P(g (b), f (a, c))
s = {z | x, t | y }
L = P(x, f (a, y )) Ls = P(z, f (a, t))
s = {x | y }
L = P 0 (x, f (a, y )) Ls = P 0 (x, f (a, x))
s = {b | x, f (a, b) | z}
L = P 0 (x, f (a, y )) Ls = P 0 (b, f (a, y ))
s = {b | x, g (b) | y }
L = P 0 (x, f (a, y )) Ls = P 0 (b, f (a, g (b)))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 15 / 30

Unificación de predicados

Contenidos

1 Forma clausulada de la lógica de predicados

2 Sustitución y operación de sustitución

3 Unificación de predicados

4 Resolución.

5 Estrategias de Resolución. SLD-Resolución

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 16 / 30


Unificación de predicados

Unificación de Predicados
Diremos que dos literales L1 y L2 son unificables si existe una sustitución s verifi-
cando que L1 s = L2 s

Observaciones:
Decimos que el unificador es mı́nimo si deja libre el mayor número de
variables posibles. Por ejemplo, dados L1 = P(x) y L2 = P(y ), tanto
s1 = {x | y }, s2 = {y | x} como s3 = {a | x, a | y } son unificadores:
s1 y s2 son mı́nimos y s3 no lo es.
La definición anterior se generaliza fácilmente a una cantidad finita de
literales L1 , L2 , . . . , Ln .
Para que dos o más literales sean unificables es condición necesaria que
todos tengan el mismo predicado y el mismo signo.

Ejemplo: Los predicados L1 = P(x, a, f (z)) y L2 = P(a, y , t) son unificables medi-


ante la sustitución s = {a | x, a | y , f (z) | t}, pues
L1 s = P(a, a, f (z)) = L2 s
Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 17 / 30

Unificación de predicados

Unificación de Predicados. Ejemplos

Discutir si los siguientes predicados son unificables:


(i) L1 = P(x, a), L2 = Q(b, y ) NO: P 6= Q

(ii) L1 = P(x, a), L2 = P 0 (b, y ) NO: P y P 0 tienen diferente signo

(iii) L1 = P 0 (x, a), L2 = P 0 (b, y ) X s = {b|x, a|y }, L1 s = P 0 (b, a) = L2 s

(iv) L1 = P(x, a), L2 = P(y , b) NO, a 6= b

(v) L1 = P 0 (f (x), a), L2 = P 0 (f (b), y ) X s = {b|x, a|y }, L1 s = P 0 (f (b), a) = L2 s

(vi) L1 = P 0 (f (x), a), L2 = P 0 (g (b), y ) NO, f 6= g

(vii) L1 = P(f (x), x), L2 = P(f (b), a) NO, necesitarı́amos b|x y a|x

(viii) L1 = P(a, x, f (a, y )), L2 = P(a, b, f (a, z)), L3 = P(u, b, v ) X


s1 = {a|u, b|x, c|y , c|z, f (a, c)|v }, L1 s1 = L2 s = L3 s1 = P(a, b, f (a, c)) (no es mı́nimo)
s2 = {a|u, b|x, z|y , f (a, z)|v }, L1 s2 = L2 s2 = L3 s 0 = P(a, b, f (a, z)) (sı́ es mı́nimo)

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 18 / 30


Resolución.

Contenidos

1 Forma clausulada de la lógica de predicados

2 Sustitución y operación de sustitución

3 Unificación de predicados

4 Resolución.

5 Estrategias de Resolución. SLD-Resolución

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 19 / 30

Resolución.

Resolución en L0 (Recordatorio)

A partir de las cláusulas de L0

C1 = p ∨ q, C2 = p 0 ∨ r

obtenemos la resolvente
R =q∨r
A partir de las cláusulas de L0

C1 = p ∨ q1 ∨ · · · ∨ qm , C2 = p 0 ∨ r1 ∨ · · · ∨ rn ,

obtenemos la resolvente

R = q1 ∨ · · · ∨ qm ∨ r1 ∨ · · · ∨ rn

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 20 / 30


Resolución.

Resolución en L1

Sean
C1 = L1 ∨ L2 ∨ · · · ∨ Lm , C2 = M1 ∨ M2 ∨ · · · ∨ Mn
cláusulas (con variables independientes) de una expresión en forma clausulada.
Supongamos que los literales L1 , L2 , . . . , Lj , M10 , M20 , . . . , Mk0 son unificables me-
diante un unificador mı́nimo s, es decir,

L1 s = L2 s = · · · = Lj s = M10 s = M20 s = · · · = Mk0 s

En este caso se dice que las generatrices C1 y C2 se resuelven en el correspondiente


predicado y obtenemos como resolvente

R = (Lj+1 ∨ · · · ∨ Lm )s ∨ (Mk+1 ∨ · · · ∨ Mn )s

Ası́, R es consecuencia lógica de C1 ∧ C2 .

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 21 / 30

Resolución.

Resolución. Ejemplo
Ejemplo: Hallar todas las resolventes posibles a partir de las cláusulas

C1 = L1 ∨ L2 = P(a, x, f (b)) ∨ Q 0 (x)


C2 = M1 ∨ M2 ∨ M3 = P 0 (a, y , f (b)) ∨ P 0 (a, u, f (z)) ∨ Q(z)

1 L1 y M10 son unificables mediante s1 = {y |x}, pues L1 s1 = P(a, y , f (b)) = M10 s1

C1 ∧ C2 ⇒ R1 = (L2 ∨ M2 ∨ M3 )s1 = Q 0 (y ) ∨ P 0 (a, u, f (z)) ∨ Q(z)

2 L1 y M20 son unificables mediante s2 = {u|x, b|z}, pues L1 s2 = P(a, u, f (b)) = M20 s2

C1 ∧ C2 ⇒ R2 = (L2 ∨ M1 ∨ M3 )s2 = Q 0 (u) ∨ P 0 (a, y , f (b)) ∨ Q(b)

3 L1 , M10 y M20 son unificables mediante s3 = {x|y , x|u, b|z}, pues

L1 s3 = M10 s3 = M20 s3 = P(a, x, f (b))


C1 ∧ C2 ⇒ R3 = (L2 ∨ M3 )s3 = Q 0 (x) ∨ Q(b)

4 L2 y M30 son unificables mediante s4 = {z|x}, pues L2 s4 = Q(z) = M30 s4

C1 ∧ C2 ⇒ R4 = (L1 ∨ M1 ∨ M2 )s4 = P(a, z, f (b)) ∨ P 0 (a, y , f (b)) ∨ P 0 (a, u, f (z))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 22 / 30


Estrategias de Resolución. SLD-Resolución

Contenidos

1 Forma clausulada de la lógica de predicados

2 Sustitución y operación de sustitución

3 Unificación de predicados

4 Resolución.

5 Estrategias de Resolución. SLD-Resolución

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 23 / 30

Estrategias de Resolución. SLD-Resolución

SLD-Resolución

En lo que queda de tema adoptaremos la notación de programas definidos. A partir


de un programa definido P, queremos ver si se deduce una proposición del tipo

A = ∃x1 , x2 , . . . , xs , / A1 ∧ A2 ∧ · · · ∧ An

La negación de A es el objetivo

∀x1 , x2 , . . . , xs , A01 ∨ A02 ∨ · · · ∨ A0n = ←− A1 , A2 , . . . , An =: G .

La SLD-resolución procede por refutación hasta obtener la cláusula vacı́a  del


conjunto de cláusulas P + {G }.
En tal caso tenemos P + {G } ⇒ , resultando la contradicción P ∧ G = O.
Equivalentemente P ⇒ G 0 y A es consecuencia lógica del programa P.

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 24 / 30


Estrategias de Resolución. SLD-Resolución

SLD-Resolución

Observar que cada cláusula de P tiene un único literal positivo, mientras que el
objetivo G es una cláusula de literales negativos.
El proceso que se sigue para deducir la cláusula vacı́a de P + {G } es el siguiente:
Buscamos un literal del objetivo unificable con la cabeza de alguna cláusula
del programa, en cuyo caso aplicamos resolución a esas dos cláusulas para
obtener otra con todos los literales negados, que es por tanto otro objetivo.
Repetimos el punto anterior para el nuevo objetivo hasta deducir la cláusula
vacı́a, si es posible. En caso contrario, A no se deduce de P.
Si A se deduce de P, los unificadores mı́nimos aportan los valores de las
variables x1 , x2 , . . . , xs para los que se satisface.

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 25 / 30

Estrategias de Resolución. SLD-Resolución

SLD-Resolución. Ejemplo

Discutir si la proposición A = ∃x / p(x) se puede deducir del programa definido



 p(z) ←− p(y ), r (z)
P= r (a) ←−
p(f (b)) ←−

Comenzamos negando A para obtener un objetivo

G := A0 = ∀x, p 0 (x) = ←− p(x)

Añadimos ahora G al programa P

p 0 (x)

 G =←− p(x)
p(z) ∨ p 0 (y ) ∨ r 0 (z)

C1 = p(z) ←− p(y ), r (z)

P +G =

 C2 = r (a) ←− r (a)
C3 = p(f (b)) ←− p(f (b))

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 26 / 30


Estrategias de Resolución. SLD-Resolución

SLD-Resolución
Ejemplo

p 0 (x)

 G =←− p(x)
p(z) ∨ p 0 (y ) ∨ r 0 (z)

C1 = p(z) ←− p(y ), r (z)

P +G =

 C2 = r (a) ←− r (a)
C3 = p(f (b)) ←− p(f (b))

s1 = {z|x} : G ∧ C1 ⇒ G1 = p 0 (y ) ∨ r 0 (z)

p 0 (y ) ∨ r 0 (z)

 G1 =←− p(y ), r (z)
C2 = r (a) ←− r (a)
C3 = p(f (b)) ←− p(f (b))

s2 = {a|z} : G1 ∧ C2 ⇒ G2 = p 0 (y )

p 0 (y )

G2 =←− p(y )
C3 = p(f (b)) ←− p(f (b))

{f (b)|y } : G2 ∧ C3 ⇒ G3 = 

Por tanto A es consecuencia lógica del programa P para el valor x = a


Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 27 / 30

Estrategias de Resolución. SLD-Resolución

SLD-Resolución
Ejemplo

Discutir si la proposición A = ∃x / p(x) se puede deducir del programa definido



 p(z) ←− p(y ), r (z)
P= r (a) ←−
p(f (b)) ←−

p 0 (x)

 G =←− p(x)
p(z) ∨ p 0 (y ) ∨ r 0 (z)

C1 = p(z) ←− p(y ), r (z)

P +G =

 C2 = r (a) ←− r (a)
C3 = p(f (b)) ←− p(f (b))

También puede obtenerse directamente que

{f (b)|x} : G ∧ C3 ⇒ 

de donde se sigue que A es consecuencia lógica del programa P para el valor x = f (b).

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 28 / 30


Estrategias de Resolución. SLD-Resolución

Corrección y Completitud

La SLD-resolución es correcta, es decir, todas las fórmulas derivadas


de P + {G } por SLD-resolución son consecuencias lógicas de dicho
conjunto de fórmulas.

La SLD-resolución es completa, porque toda consecuencia lógica de


P + {G } se puede obtener por este proceso de demostración
automática.

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 29 / 30

Estrategias de Resolución. SLD-Resolución

Bibliografı́a Tema 4

J. Aranda, J.L. Fernández y F. Morilla.


Lógica Matemática.
Ed. Sanz y Torres, 1993

G. Fernández y F. Sáez Vacas.


Fundamentos de Informática
Ed. Alianza, 1987

J.W. Lloyd.
Foundations of Logic Programming.
Ed. Springer-Verlag, 1987

Dpto. Matemáticas - ESII Tema 4: Unificación y Resolución de predicados Curso 2021/2022 30 / 30

También podría gustarte