Está en la página 1de 8

Clusulas de Horn

- Clusulas que contienen como mximo un literal positivo


1) REGLAS Clusulas de programa
x1 xn (
P1 P2 Pn Q) x1 xn (P1 P2 Pn Q)

2) HECHOS (o clusulas unitarias)


x1 xn Q

Clusulas de programa

3) CLAUSULAS OBJETIVO (o clusulas goal)


x1 xn (
P1 P2 Pn) x1 xn (P1 P2 Pn)
x1 xn (P1 P2 Pn)
Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Lgica de Programas
 Es un conjunto de clusulas de programa.
 Es satisfacible (tiene Modelos de Herbrand).

Sea P una Lgica de Programas y G una clusula objetivo.


El problema bsico en programacin lgica es determinar si
P
Es decir, si M

P entonces M

G
G

G s y slo s P {G} es insatisfacible s y slo s P {G}

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Resolucin para Clusulas de Horn


Refinamientos

 Resolucin Lineal
Mtodos CORRECTOS y
 Input Resolucin

COMPLETOS para clusulas


de Horn

 Resolucin Unitaria

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Resolucin Lineal
Definicin:
Sea S {C} un conjunto de clusulas de Horn. Una deduccin
por resolucin lineal de C a partir de S es una deduccin por
resolucin en la cual, en cada paso, una de las clusulas es la
resolvente del paso previo, y la otra es una clusula de S una
clusula obtenida en algn paso previo (salvo para la primera
resolvente donde ambas clusulas pertenecen a S).
TEOREMA
Sea S un conjunto de clusulas de Horn. Si S es insatisfacible
entonces existe una refutacin lineal de S.

Resolucin lineal es completo para clusulas de Horn


Resolucin lineal es completo para cualquier conjunto de clusulas
Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Input Resolucin
P una Lgica de Programas; G una clusula objetivo.
P

G s y slo s P {G}

Definicin:
P una Lgica de Programas; G una clusula objetivo.
Una input refutacin de P {G} es una refutacin lineal de P
{G} comenzando con G y donde todas las clusulas de entrada
son clusulas de P.

Input resolucin es completo para clusulas de Horn


(PERO Input resolucin NO es completo para cualquier conj. de clusulas)
Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Resolucin Unitaria
Definicin
Sea S {C} un conjunto de clusulas de Horn. Una deduccin
por resolucin unitaria de C a partir de S es una deduccin por
resolucin de C a partir de S donde en cada paso de resolucin
interviene una clusula unitaria.
TEOREMA
Sea S un conjunto de clusulas de Horn. Si S es insatisfacible
entonces existe una refutacin unitaria de S.

Resolucin unitaria es completa para clusulas de Horn


(PERO Resolucin unitaria NO es completa para cualquier conj. de clusulas)

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Sustitucin de Respuesta Correcta


P

 Problema de la Prog. Lgica

 P es satisfacible y tiene al menos un My(H) tal que Y B(P)

My(H)

G = x1 xn (
P1 P2 Pn) x1 xn (P1 P2 Pn)
 My(H)

My(H)

x1 xn (P1 P2 Pn)

 Debe existir una sucesin finita a1, a2, ..., ak U(P) tal que
My(H)

(P1 P2 Pn) [a1, a2, ..., ak]


trminos cerrados

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Sustitucin de Respuesta Correcta


 My(H)

(P1 P2 Pn) [a1, a2, ..., ak]

 Sustitucin e = {x1/a1, x2/ a2, ..., xk/ak }


 My(H)

(P1 P2 Pn)e

 En sntesis

G existe una sustitucin


e: Var(G) U(P) tal que
P

Ge

Definicin
P lgica de programas, G clusula objetivo
e es una sustitucin de respuesta correcta para Var(G) si
P

Ge

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Sustitucin de Respuesta Correcta


Ejemplo
P = { E(x, y) E(y, z) A(z, x), E(f(t), t) }
G = A(u, v)

G existe e tal que P

Ge

Una sustitucin de respuesta correcta es e = { u/f(f(t)), v/t }


Como Ge = (
A(f(f(t)), t)) = A(f(f(t)), t)
entonces P

u
vA(u, v)

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Obtencin de Respuestas por Resolucin


Ejemplo
El problema consiste en determinar caminos entre ciudades. Hay un
camino entre dos ciudades si hay una ruta que las une. Adems, hay un
camino entre una ciudad x y una ciudad z, si hay una ruta que une a x con
otra ciudad t, seguida de un camino de t a z.
Dadas cuatro ciudades a, b, c y d, se sabe que hay ruta entre: a y b; a y c;
b y c; c y d.
Se pide contestar:
1)Existe algn camino a la ciudad d?
2) Si existe, desde qu ciudad/es?
Formalizamos el problema en lgica de predicados de primer orden:
 Dominio:

D = {a, b, c, d}

 Predicados bsicos:
ruta(x, y) = { (x, y) D2: hay ruta de x a y }
camino(x, y) = { (x, y) D2: hay camino de x a y }
Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Obtencin de Respuestas por Resolucin


x
y( ruta(x, y) camino(x, y) )
x
z
t( ruta(x, t) camino(t, z) camino(x, z) )
ruta(a, b)

ruta(b, a)

ruta(a, c)

ruta(c, a)

ruta(b, c)

ruta(c, b)

ruta(c, d)

ruta(d, c)

Respuesta a la primera pregunta: u camino(u, d)


1) ruta(x, y) camino(x, y)

7) ruta(b, c)

2) ruta(w, t) camino(t, z) camino(w, z)

8) ruta(c, b)

3) ruta(a, b)

9) ruta(c, d)

4) ruta(b, a)

10) ruta(d, c)

5) ruta(a, c)

11) camino(u, d)

6) ruta(c, a)

(negacin de la conclusin)

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Obtencin de Respuestas por Resolucin


1) ruta(x, y) camino(x, y)

7) ruta(b, c)

2) ruta(w, t) camino(t, z) camino(w, z)

8) ruta(c, b)

3) ruta(a, b)

9) ruta(c, d)

4) ruta(b, a)

10) ruta(d, c)

5) ruta(a, c)

11) camino(u, d)

6) ruta(c, a)
12) 1)e1 = ruta(u, d) camino(u, d)

e1 = {x/u, y/d}

13) Res(11, 12) = ruta(u, d)


14) 13)e2 = ruta(c, d)

e2 = {u/c}

15) Res(9, 14) =

Como se obtuvo , significa que la conclusin se deduce de las


hiptesis existe un camino a la ciudad d
Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Obtencin de Respuestas por Resolucin


Se prob que existe un camino a la ciudad d, pero desde qu
ciudades?
Mtodo:
Agregar en todas las clusulas que provienen de la negacin de la
conclusin, un predicado respuesta con tantos argumentos como
variables haya que instanciar para proporcionar las respuestas.
1) ruta(x, y) camino(x, y)

7) ruta(b, c)

2) ruta(w, t) camino(t, z) camino(w, z)

8) ruta(c, b)

3) ruta(a, b)

9) ruta(c, d)

4) ruta(b, a)

10) ruta(d, c)

5) ruta(a, c)

11) camino(u, d) respuesta(u)

6) ruta(c, a)

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Obtencin de Respuestas por Resolucin


1) ruta(x, y) camino(x, y)

7) ruta(b, c)

2) ruta(w, t) camino(t, z) camino(w, z)

8) ruta(c, b)

3) ruta(a, b)

9) ruta(c, d)

4) ruta(b, a)

10) ruta(d, c)

5) ruta(a, c)

11) camino(u, d) respuesta(u)

6) ruta(c, a)
12) 1)e1 = ruta(u, d) camino(u, d)

e1 = {x/u, y/d}

13) Res(11, 12) = ruta(u, d) respuesta(u)


14) 13)e2 = ruta(c, d) respuesta(c)

e2 = {u/c}

15) Res(9, 14) = respuesta(c)


Significado de respuesta(c)
Hay un camino a la ciudad d desde la ciudad c
Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

Obtencin de Respuestas por Resolucin


Otra solucin:
1) ruta(x, y) camino(x, y)

7) ruta(b, c)

2) ruta(w, t) camino(t, z) camino(w, z)

8) ruta(c, b)

3) ruta(a, b)

9) ruta(c, d)

4) ruta(b, a)

10) ruta(d, c)

5) ruta(a, c)

11) camino(u, d) respuesta(u)

6) ruta(c, a)
12) 2)e1 = ruta(u, t) camino(t, d) camino(u, d)

e1 = {w/u, z/d}

13) Res(11, 12) = ruta(u, t) camino(t, d) respuesta(u)


14) 13)e2 = ruta(b, c) camino(c, d) respuesta(b)

e2 = {u/b, t/c}

15) Res(7, 14) = camino(c, d) respuesta(b)


16) 1)e3 = ruta(c, d) camino(c, d)
17) Res(15, 16) = ruta(c, d) respuesta(b)
18) Res(9, 17) = respuesta(b)

e3 = {x/c, y/d}
Significado de respuesta(b)
Hay un camino a la ciudad d
desde la ciudad b

Ciencias de la Computacin II - Filminas de Clase Mg. Virginia Mauco Facultad Cs. Exactas UNCPBA - 2009

También podría gustarte