• No se han encontrado resultados

Clase13(Logica de Programas).pdf

N/A
N/A
Protected

Academic year: 2020

Share "Clase13(Logica de Programas).pdf"

Copied!
10
0
0

Texto completo

(1)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Cláusulas de Horn

- Cláusulas que contienen como máximo un literal positivo

1) REGLAS

x1xn(P1 P2PnQ)  x1xn((P1P2Pn) Q)

 x1xn(P1P2PnQ)

2) HECHOS (o cláusulas unitarias)

x1… xnQ

3) CLAUSULAS OBJETIVO (o cláusulas goal)

x1xn(P1 P2Pn)  x1xn(P1P2Pn)

  x1… xn(P1P2Pn)

Cláusulas de programa

Cláusulas de programa

Lógica de Programas

Es un conjunto de cláusulas de programa.

Es satisfacible (tiene Modelos de Herbrand).

Sea P una Lógica de Programas y G una cláusula objetivo.

El problema básico en programación lógicaes determinar si

P G

Es decir, si M P entonces M G

(2)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Resolución para Cláusulas de Horn

Resolución Lineal

Resolución Unitaria

Input Resolución

Métodos CORRECTOS y COMPLETOS para cláusulas

de Horn Refinamientos

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Resolución Lineal

TEOREMA

Sea S un conjunto de cláusulas de Horn. Si S es insatisfacible entonces existe una refutación lineal de S.

Resolución lineal es completa para cláusulas de Horn Definición:

Sea S{C} un conjunto de cláusulas de Horn. Una deducción por resolución lineal de C a partir de S es una deducción por resolución en la cual, en cada paso, una de las cláusulas es la resolvente del paso previo, y la otra es una cláusula de S ó una cláusula obtenida en algún paso previo (salvo para la primera resolvente donde ambas cláusulas pertenecen a S).

(3)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Resolución Unitaria

Definición

Sea S{C} un conjunto de cláusulas de Horn. Una deducción por resolución unitaria de C a partir de S es una deducción por resolución de C a partir de S donde en cada paso de resolución interviene una cláusula unitaria.

Resolución unitaria es completa para cláusulas de Horn

(PERO Resolución unitaria NO es completa para cualquier conj. de cláusulas)

TEOREMA

Sea S un conjunto de cláusulas de Horn. Si S es insatisfacible entonces existe una refutación unitaria de S.

Input Resolución

P una Lógica de Programas; G una cláusula objetivo.

Input resolución es completa para cláusulas de Horn

(PERO Input resolución NO es completa para cualquier conj. de cláusulas)

Definición:

P una Lógica de Programas; G una cláusula objetivo. Una input refutación de P{G} es una refutación lineal de P{G} comenzando con G y donde todas las cláusulas de entrada son cláusulas de P.

(4)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Sustitución de Respuesta Correcta

Problema de la Prog. Lógica P G

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

My(H) G

G = x1… xn(P1 P2Pn)  x1… xn(P1P2Pn)

My(H) GMy(H) x1… xn(P1P2Pn)

Debe existir una sucesión finita a1, a2, ..., akU(P) tal que

My(H) (P1P2Pn) [a1, a2, ..., ak]

términos cerrados

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Sustitución de Respuesta Correcta

My(H) (P1P2Pn) [a1, a2, ..., ak]

Sustitución e = {x1/a1, x2/ a2, ..., xk/ak }

My(H) (P1P2Pn)e

En síntesis PGexiste una sustitución

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

PGe

Definición

P lógica de programas, G cláusula objetivo

e es una sustitución de respuesta correcta para Var(G) si

(5)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Sustitución de Respuesta Correcta

Ejemplo

P = {P(x, y)Q(x, y),P(x, z) Q(z, x)Q(x, y), P(b, a), P(a, b) }

G =Q(r, s) a, b constantes

PGexiste e tal que PGe

Una posible sustitución de respuesta correcta es e = { r/a, s/b }

ComoGe =(Q(a, b)) = Q(a, b)

entonces PrsQ(r, s)

Obtención de Respuestas por Resolución

Ejemplo

El problema consiste en determinar caminos entre ciudades. Hay un camino entre dos ciudades si hay una ruta que las une. Además, 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 algún camino a la ciudad d?

2) Si existe, ¿desde qué ciudad/es?

Formalizamos el problema en lógica de predicados de primer orden:

Dominio: D = {a, b, c, d}

Predicados básicos:

ruta(x, y) = { (x, y) D2: hay ruta de x a y }

(6)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Obtención de Respuestas por Resolución

xy( ruta(x, y)camino(x, y) )

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) (negación de la conclusión)

xzt( 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)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Obtención de Respuestas por Resolución

Como se obtuvo, significa que la conclusión se deduce de las hipótesisexiste un camino a la ciudad 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)

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}

(7)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Obtención de Respuestas por Resolución

Se probó que existe un camino a la ciudad d, pero ¿desde qué ciudades?

Método:

Agregar en todas las cláusulas que provienen de la negación de la conclusión, 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)

Obtención de Respuestas por Resolución

Significado derespuesta(c)

Hay un camino a la ciudad d desde la ciudad c

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)

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)

(8)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Obtención de Respuestas por Resolución

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)

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) Otra solución:

16) 1)e3= ruta(c, d) camino(c, d) e3= {x/c, y/d}

17) Res(15, 16) = ruta(c, d) respuesta(b)

18) Res(9, 17) = respuesta(b)

Significado de respuesta(b)

Hay un camino a la ciudad d desde la ciudad b

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Obtención de Respuestas por Resolución

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(a, c)  camino(c, d) respuesta(a) e2= {u/a, t/c}

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

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) Otra solución:

16) 1)e3= ruta(c, d) camino(c, d) e3= {x/c, y/d}

17) Res(15, 16) = ruta(c, d) respuesta(a)

18) Res(9, 17) = respuesta(a)

Significado de respuesta(a)

(9)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Programación Lógica

Programación imperativaprograma es secuencia de instrucciones que una computadora ejecuta para resolver un problema

Programación Lógicaprograma especifica conocimiento

(declarativa) acerca del problema a resolver; se hace pregunta y se deja que el sistema deduzca la respuesta usando procesos basados en la lógica matemática

Ejemplo: Buscar un elemento x en una lista

x pertenece a [x | _ ]

x pertenece a [ _ | Resto ] si x pertenece a Resto

x pertenece a lista?

Programación Lógica

PROLOG: lenguaje de programación lógica muy usado

- Programa es un conjunto de cláusulas de programa.

- Pregunta se trata como una sentencia a ser demostrada; la sentencia se niega y el motor de Prolog intenta refutar la negación.

-si la refutación tiene éxito, la pregunta se responde positivamente

-si no, la pregunta se responde negativamente

(10)

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Programación Lógica

Cláusulas de Horn Sintaxis PROLOG

Regla

C1C2... CnC C :- C1, C2, ..., Cn. Hecho

C C.

Objetivo

(C1C2... Cn) ?- C1, C2, ..., Cn. CLAUSULAS

DE PROGRAMA

Lógica de Programas es un conjunto de cláusulas de programa

Es satisfacible (tiene Modelos de Herbrand).

Ciencias de la Computación II - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2019

Programación Lógica

ruta(a, b).

ruta(b, a).

ruta(a, d).

ruta(d, a).

ruta(b, c).

ruta(c, b).

ruta(c, d).

ruta(d, c).

camino(X, Y) :- ruta(X, Y).

camino(W, Z) :- ruta(W, T), camino(T, Z).

?- camino(U, d).

Ejemplo:

ruta(a, b) ruta(b, a) ruta(a, d) ruta(d, a) ruta(b, c) ruta(c, b) ruta(c, d) ruta(d, c)

xy( ruta(x, y)camino(x, y) )

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

Hechos

Reglas

Programa Prolog

+

Pregunta

u camino(u, d)

Referencias

Documento similar

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

(1886-1887) encajarían bien en una antología de textos históricos. Sólo que para él la literatura es la que debe influir en la historia y no a la inversa, pues la verdad litera- ria

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo

En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y