26
Programación Lógica rafael ramirez [email protected] Ocata 320

Programación Lógica - dtic.upf.edurramirez/Logica/L06.pdf · 2 Logica proposicional Una literal (proposicional) es una variable proposicional o la negacion de una variable proposicional:

  • Upload
    vokiet

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Programación Lógica

rafael [email protected]

Ocata 320

2

Logica proposicionalUna literal (proposicional) es una variable proposicional o la negacion de una variable proposicional:

p, q , ¬r, …

Una cláusula (proposicional) es una disyuncion de literalesp ∨ q ∨ ¬r es una cláusula¬(r ∨ q) no es una cláusula

Una cláusula de Horn (proposicional) es una clausula (prop.) con a lo mas una literal positiva

(1) q(2) ¬p1 ∨ … ∨ ¬pn ∨ q(3) ¬p1 ∨ … ∨ ¬pn

Clausulas de Horn de (1) y (2) con una literal positiva se llamanclausulas de programa. Las (1) se llaman clausulas unitarias

3

Logica proposicionalUna cláusula de Horn (proposicional) es una clausula (prop.) con a lo mas una literal positiva

(1) q(2) ¬p1 ∨ … ∨ ¬pn ∨ q(3) ¬p1 ∨ … ∨ ¬pn

Las clausulas de Horn de tipo (2) pueden reescribirse (usandola ley de De Morgan) como

¬(p1 ∧ … ∧ pn) ∨ qQue a su vez se puede reescribir como

(p1 ∧ … ∧ pn) → q

Un programa logico (proposicional) es un conjunto de declausulas de programa

Nota que (3) se puede reescribir como ¬(p1 ∧ … ∧ pn)

4

ResolucionLa regla de resolucion: si tenemos 2 clausulas C1, C2 y una variable proposicional p

C1 ∨ p, C2 ∨ ¬p |res C1 ∨ C2

En general C1 y C2 pueden ser clausulas generales pero en programación logica estamos interesados en clausulas de Horn.

Supon que tenemos un programa logico P. Estamos interesados en

Q es consecuencia logica del programa?Si las clausulas del programa son tomadas como hipotesis, podemos concluir Q usando la regla de resolucion?P |res Q ?

5

Resolucion

P |res Q ?

Lo que se hace es introducir ¬Q como una hipotesis adicional y usarresolucion. Si llegamos a la clausula vacia □ entonces la respuesta a

P |res Q ? es si.

Esto se basa en el teorema:

si P, Q |res □ entonces P ∧ ¬Q es insatisfacible

6

Resolucion

7

Diferentes formas, la misma cosa(a) ¬p ∨ ¬q ∨ r (b) p ∧ q → r (c) r ← p ∧ q (d) r : - p, q.

p p p p.q q q q.

(a)=(b)=(c)=(d)

Si preguntamos si r es consecuencia logica de las tres clausulas (de Horn)

(a) (b) y (c) (d)1. ¬p ∨ ¬q ∨ r hip r r2. p hip | |3. q hip p∧q C1 p, q C1 4. ¬ r hip extra | |5. ¬p ∨ ¬q Res 1,4 q C2 q C26. ¬q Res 2,5 | |7. □ Res 3,6 □ C3 □ C3

8

Formulas, clausulas, Horn

Forma normal conjuntiva:(¬p ∨¬q ∨ r ) ∧ (¬p ∨ q ∨ ¬r)

TFFTTTTT

9

Resolucion

Es s consecuencia logica del programa?

s :- p, q, r.r :- t, w.q.p :- v, r.t.v.w :- v.

10

Resolucion

s :- p, q, r.r :- t, w.q.p :- v, r.t.v.w :- v.

11

Resolucion

12

Resolucion

13

Resolucion SLD

14

Resolucion SLD

15

Negacion

Si P es un programa logico y q es una pregunta y no podemosprobar P |res q entonces deducimos P |res ¬q

16

Logica de PredicadosUna cláusula de Horn es

(1) ∀x1,…∀xn (Q)

(2) ∀x1,…∀xn (¬R1∨…∨¬Rk ∨ Q)(3) ∀x1,…∀xn (¬R1∨…∨¬Rk)

O reescribiendo:

(1) Q(2) (R1 ∧ … ∧ Rn) → Q(3) ¬(R1 ∧ … ∧ Rn)

Ri y Q son (atomos) de la forma p(…)

17

Resolucion

18

Resolucion

Ejercicio: dado el siguiente programa:

Es m(a) consucuencia logica del programa?Construye el arbol de resolucion SLD.

19

Resolucion

Solucion: si es consecuencia logica

Este arbol se llama arbol de resolucion SLD

20

Resolucion

student_of(X,T):-follows(X,C),teaches(T,C).follows(paul,computer_science).follows(paul,expert_systems).follows(maria,ai_techniques).teaches(adrian,expert_systems).teaches(peter,ai_techniques).teaches(peter,computer_science).

?-student_of(S,peter)

21

Resolucion

student_of(X,T):-follows(X,C),teaches(T,C).follows(paul,computer_science).follows(paul,expert_systems).follows(maria,ai_techniques).teaches(adrian,expert_systems).teaches(peter,ai_techniques).teaches(peter,computer_science).

:-teaches(peter,ai_techniques)

:-teaches(peter,expert_systems)

:-teaches(peter,computer_science)

?-student_of(S,peter)

:-follows(S,C),teaches(peter,C):-follows(S,C),teaches(peter,C)

:-teaches(peter,expert_systems)

:-teaches(peter,computer_science) :-teaches(peter,ai_techniques)

?-student_of(S,peter)

[][]

22

Resolucion

brother_of(X,Y):-brother_of(Y,X).brother_of(paul,peter).

?-brother_of(peter,B)

23

Resolucion

brother_of(X,Y):-brother_of(Y,X).brother_of(paul,peter).

•••

:-brother_of(B,peter)

[]

?-brother_of(peter,B)

:-brother_of(peter,B)

:-brother_of(B,peter)

[]

24

En ResumenQue es:

La logica proposicionalLa logica de predicados

Que técnicas/métodos hay paraLa logica proposicionalLa logica de predicados

Que herramientas informáticas hay paraLa logica proposicionalLa logica de predicados

25

En Resumen (que es?)Que es la logica proposicional?

p, q, r, …¬, ∧, ∨, →Ej. (p ∧ ¬q) → rCada fórmula evalua a T (verdadero) o F (falso)

Que es la logica de predicados?Variables: x, y, z; constantes: a, b, c; funciónes: f, g, predicados: p, q, r; conectivos: prop. + ∀, ∃Ej. ∀x (H(x) → M(x))Cada fórmula evalua a T (verdadero) o F (falso)

26

En Resumen (métodos y herramientas)

Tablas de Tableaux Manipul. Deduccion Resolucion Prologverdad semánticos algebraica natural (SLD)

LProp si si si si si si(no en clase)

LPred no si si si si siaplica (no en clase) (no en clase)