Está en la página 1de 5

Programa lgico = frmula en FOL

Lenguajes lgicos: clusulas de Horn

P = {c1, ..., ck}



donde:
c = A.
c = A :- A1, ..., An.

Lenguaje subyacente: FOL (first order logic)


Atomos:

p(t1,...,tn)

p smbolo de predicado y ti trmino (i = 1,...,n)


smbolo de variable (X, Y, ..)
t trmino
smbolo de constante (a, b, c,..)
f(s1,...,sm), con f smbolo de funcin
y sj trmino (j = 1,...,m)

Clusulas de programa:
hechos:
reglas:

(Bj tomo, j=1,...,m. Si m=0, la clusula vaca se denota por )


Nota:

f denota la clausura universal de la frmula f y


f denota la clausura existencial de la frmula f
FLP 2009/10 - Marisa Navarro

116

Ejemplo: Preguntas al programa HOSPITAL

Hechos:
1. padece(jon, gripe).
5. es-sntoma(fiebre, gripe).
2. padece(jon, hepatitis). 6. es-sntoma(cansancio, gripe).
3. padece(ana, gripe).
7. es-sntoma(estornudos, alergia).
4. padece(carlos, alergia).
8. suprime(paracetamol, fiebre).
9. suprime(antihistamnico, estornudos).
Reglas:
10. debe-tomar(Per, Far) :- padece(Per, Enf), alivia(Far, Enf).
11. alivia(Far, Enf) :- es-sntoma(Sin, Enf), suprime(Far, Sin).

FLP 2009/10 - Marisa Navarro

rep(c) = A
rep(c) = (A1 ... An A)

G = B1, ..., Bm.



rep(G) = (B1 ... Bm)
?G es considerar su negacin rep(G) = (B1 ... Bm)

115

Ejemplo: Programa Lgico HOSPITAL




Goals o preguntas al programa:

A.
(A tomo)
A :- A1, ..., An. (n>0, y A, A1, ..., An tomos)
FLP 2009/10 - Marisa Navarro

rep (P) = rep (c1) ... rep (ck)

117

Preguntas posibles:
?
?
?
?
?
?
?
?

padece(carlos, gripe).
padece(jon, Z).
alivia(paracetamol, gripe).
alivia(X, gripe).
debe-tomar(Y, antihistamnico).
alivia(X, Y).
suprime(X, fiebre), suprime(X, estornudos).
...........................

FLP 2009/10 - Marisa Navarro

118

Proceso de cmputo: SLD-resolucin

combina dos mecanismos: reemplazamiento y unificacin

SLD-derivacin de P {?G0}
es una secuencia maximal de la forma:
c0
(de P)
? G0
. . . 0

Regla de resolucin:
literal seleccionado (Func. Selec.)

?G ? B1, ..., Bi,..., Bm .


A :- A1, ..., An .
. . . = umg(Bi, A)

c (de P)

?G1 ? (B1, ..., A1, ..., An ,..., Bm).

(de P)

? Gi

ci

(de P)

? Gi+1
Cada ?Gi+1es un resolvente de ?Gi y ci (con umg i) y ci+1 no
tiene variables comunes con ?G0 , c0 ,...,ci
119

SLD-refutacin de P {?G}

FLP 2009/10 - Marisa Navarro

120

Ejemplo: SLD-refutacin en HOSPITAL

Una SLD-derivacin puede ser finita infinita. Si es finita


y su ltimo resolvente es ?Gn entonces
si Gn =

derivacin de xito
sino

derivacin de fallo

Una SLD-refutacin de un programa P y una pregunta ?G


es una SLD-derivacin de xito de P{?G}.

Si G tiene variables, la respuesta del sistema a dicha


refutacin es la sustitucin:

?G

? debe-tomar(ana,X).
(10) debe-tomar(P1, F1) :1 = {ana/P1, X/F1}
padece(P1, E1), alivia(F1, E1).
? padece(ana, E1), alivia(X, E1).
2 = {gripe/E1}

(3) padece(ana, gripe).

? alivia(X, gripe).

= (0 1.... n-1 ) | Var(G)

3 = {X/F2, gripe/E2}

obtenida por la composicin de los umg i de cada paso,


referente a las variables de G.
FLP 2009/10 - Marisa Navarro

c1
. . . 1

. . . i

?G1 se llama resolvente de ?G y c (sobre el literal Bi), con


= unificador ms general de Bi y la cabeza A de c.
FLP 2009/10 - Marisa Navarro

? G1

121

(11) alivia(F2, E2) :es-sntoma(S2, E2), suprime(F2, S2).

? es-sntoma(S2, gripe), suprime(X, S2).


FLP 2009/10 - Marisa Navarro

122

? es-sntoma(S2, gripe), suprime(X, S2).


(5) es-sntoma(fiebre, gripe).
4 = {fiebre/S2}

Semntica operacional de los lenguajes lgicos


- Dados P (programa lgico) y {?G } (pregunta input) se trata de
ver si existe una SLD-refutacin de P{?G}
- La semntica operacional viene determinada por

Regla de cmputo: regla de SLD-resolucin

Estrategia de resolucin:

Funcin de seleccin que determina sobre qu


tomo de G se va a resolver

Eleccin de la clusula input (de P) cuya


cabeza unifique con el tomo seleccionado de G
- En Prolog:
Funcin de seleccin: primer tomo (a la izquierda) de G y
Eleccin de la clusula input: en el orden introducido en P.

? suprime(X, fiebre).
(8) suprime(paracetamol, fiebre).
5 = {paracetamol/X}
?
Respuesta del sistema:
= (1 2 3 4 5 ) | Var(G) = {ana/P1, paracetamol/F1,
gripe/E1, paracetamol/F2, gripe/E2, fiebre/S2, paracetamol/X} | {X} =
{paracetamol/X}
FLP 2009/10 - Marisa Navarro

123

Semntica operacional: Conjunto de xitos

FLP 2009/10 - Marisa Navarro

Dado un programa lgico P, se definen:

Modelos de un programa lgico P


Para definir qu es un modelo de un programa lgico se
necesitan dos conceptos: H-interpretacin y satisfaccin (|=)

Universo de Herbrand de P
UP ={trminos (de base) formados con los smbolos de
constante y smbolos de funcin que aparecen en P}

Una H-interpretacin I para P es cualquier subconjunto de BP

Conjunto de xitos de P
O(P) = {A / ABP , P{?A} |SLD }

I satisface P ( I es modelo de P), denotado I |= P, si se tiene


que
I |= c, para toda instancia de base c de cada clusula c de P,
donde la definicin de I |= c (con c sin variables) es:
I |= A .
sii AI
I |= A :- A1, ..., An . sii (si AiI, i=1,...,n entonces AI)

La semntica operacional de P determina el conjunto de xitos


de P, que es independiente de la funcin de seleccin elegida.

Nota: c es una instancia de base de c si c se obtiene al sustituir


(consistentemente) las variables de c por elementos de UP

Base de Herbrand de P
BP ={p(t1,...,tn) / p es un smbolo de predicado de P y
t1,...,tnUP}

124

FLP 2009/10 - Marisa Navarro

125

FLP 2009/10 - Marisa Navarro

126

Ejemplo: Modelos del programa HOSPITAL

Semntica declarativa (o denotacional)

UHOSPITAL = { jon, ana, carlos, gripe, hepatitis, alergia, fiebre,


cansancio, estornudos, paracetamol, antihistamnico}
BHOSPITAL = { padece(t, t), es-sntoma(t, t), suprime(t, t),
alivia(t, t), debe-tomar(t, t) / t, t UHOSPITAL }
Las H-interpretaciones J y K son modelos del programa pero I no:
I = {(1),...,(9)} { alivia(paracetamol,gripe),
debe-tomar(jon,paracetamol) } | HOSPITAL
J = I { alivia(antihistamnico,alergia),
debe-tomar(ana, paracetamol),
debe-tomar(carlos, antihistamnico) } |= HOSPITAL
K = J { debe-tomar(carlos, paracetamol) } |= HOSPITAL
FLP 2009/10 - Marisa Navarro

127

Dado P, el operador de consecuencias inmediatas de P


TP : {H-interpretaciones para P}{H-interpretaciones para P}
definido:
TP(I) = {A / A :- A1, ..., An. es inst. base de alguna c de P (n0)
y AiI, i=1,...,n }

siendo las potencias de TP:


TP0(I) = I
TPn+1(I) = TP(TPn(I))
TPw(I) = {TPn(I) / n<w}

MP= TPw(
)

con w=cardinal de los naturales

FLP 2009/10 - Marisa Navarro

El menor modelo de P, denotado MP, es la H-interpretacin


que verifica:
MP |= P
Para cualquier otra I tal que I |= P, se tiene que MP I

La semntica declarativa de P se define como MP :


el modelo que satisface lo que afirma P y nada ms

Existencia del menor modelo de P


Dado P, existe siempre un menor modelo de P. Dem:
BP |= P
Si I |= P y J |= P entonces IJ |= P
Por tanto, MP= {I / I |= P} es el menor modelo de P
FLP 2009/10 - Marisa Navarro

128

Ejemplo: Construccin de MP para P=HOSPITAL

Construccin del menor modelo de P

servir para construir MP gracias al teorema:

129

I0= TP0() =
I1= TP1() = TP(I0) = {inst.base de los hechos de P} =
{(1),(2),(3),(4),(5),(6),(7),(8),(9)}
I2= TP2() = TP(I1) = I1 {alivia(paracetamol,gripe),
alivia(antihistamnico,alergia)}
3
I3= TP () = TP(I2) = I2 {debe-tomar(jon,paracetamol),
debe-tomar(ana, paracetamol),
debe-tomar(carlos, antihistamnico)}
TP4() = TP(I3) = I3 I3 es el menor punto fijo de TP
Por lo tanto, el menor modelo del programa HOSPITAL es
MHOSPITAL= I3 = TP3() = TP4() = ...= TPw()
FLP 2009/10 - Marisa Navarro

130

Equivalencia entre semntica declarativa y operacional


Teorema 1: Para todo programa P O(P) MP
El menor modelo de P coincide con el conjunto de xitos de P
es decir, {A / ABP , P{?A} |SLD } MP
Teorema 2 (Completitud de la SLD-resolucin):
Para todo programa P y todo goal G,
rep(P){ rep(G)}es inconsistente P{?G}|SLD

Sustitucin de respuesta correcta


es una sustitucin de respuesta correcta para un programa P y
un goal G, si es una sustitucin de base para G (G no tiene
variables) y MP |= G
FLP 2009/10 - Marisa Navarro

131

Ejemplo 2
Sea P = {quiere(Z,jon)., estudiante(ana)., estudiante(gorka).}
y sea G = quiere(X,Y)
= {ana/X, jon/Y} es una sust. resp. correcta para P y G
porque G = quiere(ana,jon) se satisface en MP ya que
MP={quiere(jon,jon), quiere(gorka,jon), quiere(ana, jon),
estudiante(ana), estudiante(gorka)}
Sin embargo, no se puede obtener directamente como
respuesta del sistema para P{?G }. Pero s es un caso
particular de la respuesta del sistema obtenida:
? quiere(X,Y)

quiere(Z,jon).
= {Z/X, jon/Y}

FLP 2009/10 - Marisa Navarro

Relacin entre sust. resp. del sistema y sust. resp. correcta


Teorema3 (Generalizacin del Teorema de Completitud):
Para todo programa P y todo goal G, se verifica que
para cada sust. resp. correcta existe una sust. resp. del
sistema tal que G es ms general que G
Este teorema nos dice que cualquier respuesta correcta se puede
obtener como un caso particular de alguna respuesta del sistema.

[Nota: una frmula es inconsistente cuando no tiene modelos]

133

Ejemplo 1
Sea P = HOSPITAL y G = alivia(F,E)
= {paracetamol/F, gripe/E} es una sust. resp. correcta y
tambin es una sust. resp. del sistema para P y G, porque:
MP |= alivia(paracetamol, gripe)
P{?alivia(F,E)} |SLD con respuesta
(*ejercicio)
FLP 2009/10 - Marisa Navarro

132

También podría gustarte