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 Resolucin Unitaria COMPLETOS para clusulas de Horn

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}
R

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


Problema de la Prog. Lgica P G 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) G 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 P G existe una sustitucin e: Var(G) U(P) tal que P Definicin P lgica de programas, G clusula objetivo e es una sustitucin de respuesta correcta para Var(G) si P Ge Ge

En sntesis

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 uvA(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} 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

Predicados bsicos:

Obtencin de Respuestas por Resolucin


xy( ruta(x, y) camino(x, y) ) xzt( ruta(x, t) camino(t, z) camino(x, z) ) ruta(a, b) ruta(b, c) ruta(b, a) ruta(c, b) ruta(a, c) ruta(c, d) ruta(c, a) ruta(d, c)

Respuesta a la primera pregunta: u camino(u, d) 1) ruta(x, y) camino(x, y) 2) ruta(w, t) camino(t, z) camino(w, z) 3) ruta(a, b) 4) ruta(b, a) 5) ruta(a, c) 6) ruta(c, a) 7) ruta(b, c) 8) ruta(c, b) 9) ruta(c, d) 10) ruta(d, c) 11) camino(u, d) (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) 2) ruta(w, t) camino(t, z) camino(w, z) 3) ruta(a, b) 4) ruta(b, a) 5) ruta(a, c) 6) ruta(c, a) 12) 1)e1 = ruta(u, d) camino(u, d) 13) Res(11, 12) = ruta(u, d) 14) 13)e2 = ruta(c, d) 15) Res(9, 14) = e2 = {u/c} e1 = {x/u, y/d} 7) ruta(b, c) 8) ruta(c, b) 9) ruta(c, d) 10) ruta(d, c) 11) camino(u, d)

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) 2) ruta(w, t) camino(t, z) camino(w, z) 3) ruta(a, b) 4) ruta(b, a) 5) ruta(a, c) 6) ruta(c, a) 7) ruta(b, c) 8) ruta(c, b) 9) ruta(c, d) 10) ruta(d, c) 11) camino(u, d) respuesta(u)

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) 2) ruta(w, t) camino(t, z) camino(w, z) 3) ruta(a, b) 4) ruta(b, a) 5) ruta(a, c) 6) ruta(c, a) 12) 1)e1 = ruta(u, d) camino(u, d) e1 = {x/u, y/d} 7) ruta(b, c) 8) ruta(c, b) 9) ruta(c, d) 10) ruta(d, c) 11) camino(u, d) respuesta(u)

13) Res(11, 12) = ruta(u, d) respuesta(u) 14) 13)e2 = ruta(c, d) respuesta(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

e2 = {u/c}

Obtencin de Respuestas por Resolucin


Otra solucin: 1) ruta(x, y) camino(x, y) 2) ruta(w, t) camino(t, z) camino(w, z) 3) ruta(a, b) 4) ruta(b, a) 5) ruta(a, c) 6) ruta(c, a) 12) 2)e1 = ruta(u, t) camino(t, d) camino(u, d) 14) 13)e2 = ruta(b, c) camino(c, d) respuesta(b) 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 e1 = {w/u, z/d} e2 = {u/b, t/c} 13) Res(11, 12) = ruta(u, t) camino(t, d) respuesta(u) 7) ruta(b, c) 8) ruta(c, b) 9) ruta(c, d) 10) ruta(d, c) 11) camino(u, d) respuesta(u)

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

También podría gustarte