• No se han encontrado resultados

Tema 6: Programación Lógica: semántica declarativa. Lenguajes y Paradigmas de Programación

N/A
N/A
Protected

Academic year: 2021

Share "Tema 6: Programación Lógica: semántica declarativa. Lenguajes y Paradigmas de Programación"

Copied!
25
0
0

Texto completo

(1)

Tema 6: Programación Lógica:

semántica declarativa

(2)

Teoría de Modelos

Se basa en el concepto de INTERPRETACIÓN, que

consiste en:

elegir un dominio D (en el que tomarán valor las constantes

-y variables- de la fórmula)

fijar una aplicación que:

a cada constante del alfabeto de las fórmulas: le asigna un elemento de D

a cada símbolo de función n-ario: le asigna una función de Dn a D

a cada símbolo de predicado n-ario:

le asigna una función de Dn a {T, F} (cierto/falso)

Un MODELO de un conjunto de fórmulas:

es cualquier interpretación en las que las fórmulas

se evalúan a cierto

(3)

Teoría de Modelos

Una fórmula G es SATISFACIBLE (o CONSISTENTE) si y sólo si existe una interpretación I tal que G se evalúa a T en I (es decir, si I es modelo de G). Una fórmula G es INSATISFACIBLE (o INCONSISTENTE) si y sólo si no existe una interpretación I que sea modelo de G.

Una fórmula G es VALIDA (en símbolos, |= G) si y sólo si cada interpretación I de G es modelo de G.

Una fórmula G es CONSECUENCIA SEMANTICA (o CONSECUENCIA LOGICA) de un conjunto de fórmulas {G1,..., Gn}

(en símbolos, G1,...,Gn |= G)

si y sólo si cada interpretación I que es modelo de la conjunción (G1 ... Gn),, es también modelo de G

(4)

Respuestas Correctas

Sea

P

un conjunto de cláusulas de Horn definidas

Sea

G

A

1

,...,A

k

un objetivo

Sea

una

respuesta para

G en P.

Entonces,

es una respuesta correcta

para

P

{ G }

sii

(5)

Ejemplo

Consideremos el programa:

p(X,Y)

q(X).

q(f(a)).

con el objetivo:

p(Z1,Z2).

Entonces:

es respuesta correcta

={Z1/f(a)}

no es respuesta correcta

={Z1/a}

es respuesta correcta

={Z1/f(a),Z2/a}

es respuesta correcta

={Z1/f(a), Z2/f(f(a))}

no es respuesta correcta

={Z1/f(a), Z2/b}

% ni siquiera es

% una respuesta

(6)

* si el objetivo es:

p(Z,Z).

es respuesta correcta:

={Z/f(a)}

no es respuesta correcta

={Z/a}

* si el objetivo es:

q(f(a)).

es respuesta correcta:

={ }

no es respuesta correcta

={X/a}

% idem, ni siquiera es % una respuesta

* si el objetivo es:

q (a).

no existe respuesta correcta ya que

P

{

¬

q(a}} es satisfacible.

(7)

TEOREMA DE CORRECCION Y COMPLETITUD

DE LA RESOLUCION SLD

(i)

*

CORRECCION: TODA respuesta

COMPUTADA

para

P

{G} es una respuesta

CORRECTA

para P

{

G

}.

COMPLETITUD: PARA TODA respuesta

CORRECTA

para P

{G}, EXISTE una respuesta

COMPUTADA

para P

{G} que es MÁS GENERAL que

(en lo que respecta a las variables de G).

En símbolos:

[

Var(G)]

es decir:

.

=

(

)

[

Var(G)]

(8)

Atención,

la relación

no se cumple si se elimina la

restricción a las variables de G. Es decir, no se cumple

.

=

(

)

[[VarVar(G)](G)]

EJEMPLO:

P

{p(X). q(a)}

G

p(Y).

* respuesta computada:

=

{Y/X}

* respuesta correcta:

=

{Y/a}

%(también lo sería )

* existe una sustitución

=

{X/a}

tal que

=

(

)

[

Var(G)]=

({Y/X}{X/a}) [{Y}] = {Y/a,X/a} [{Y}] =

{Y/a}

(9)

Teoría de Modelos

De acuerdo a la Tesis de Church, la validez de una fórmula es

indecidible (no existe un procedimiento finito para decidir si

una fórmula es válida o no).

Sin embargo, si la fórmula realmente es válida, hay procedimientos de prueba que pueden verificarlo. Estos

procedimientos, en general, no terminan si la fórmula no es válida (son procedimientos de semidecisión)

Uno de estos algoritmos fué definido por Herbrand en 1930. La idea básica es fijar un dominio sintáctico de interpretación

especial, llamado Universo de Herbrand, que se puede construir mecánicamente y que tiene la propiedad de que las

interpretaciones sobre este dominio son suficientes para caracterizar la validez de la fórmula (si realmente lo es) y pueden ser generadas de forma mecánica también (es decir, automatizable).

(10)

Teoría de Modelos

El dominio: Universo de Herbrand

Dado un conjunto de fórmulas L, el Universo de Herbrand H

asociado a L es el conjunto de todos los términos bien formados sin variables que se pueden construir con los simbolos del alfabeto de L.

Si no hay constantes en este alfabeto, se añade una constante

artificial "a". EJEMPLO: L: {p(g(x),f(y)).} C = {a} V = {x,y} = {f/1,g/1} = {p/2}

(11)

Teoría de Modelos

Base de Herbrand

La Base de Herbrand B asociada a un conjunto de fórmulas L es el conjunto de todos los átomos básicos que se pueden

formar con los símbolos de predicado del alfabeto de L y los términos sin variables del universo de Herbrand de L.

EJEMPLO: L: {p(x) q(f(x))}

C = {a} V = {x}

= {f/1}

= {p/1,q/1}

(12)

Teoría de Modelos

Intepretación de Herbrand I

Una Interpretación de Herbrand I de un conjunto de fórmulas L es cualquier subconjunto de la base de Herbrand de L.

Todos los átomos que están en la interpretación I se evalúan a “verdad” y todos los átomos que no están en el conjunto, no son verdad.

EJEMPLO: L: {(x)(p(f(x)) q(b))} H = {b, f(b),..., fn(b) B = {p(b), q(b),..., p(fn(b)), q(fn(b))} I1 = {p(b)} I2 = {p(fn(b))} I3 = {q(b), p(f(b)),..., p(fn(b))}

(13)

Teoría de Modelos

Modelo de Herbrand

M

Un

Modelo de Herbrand M

para un conjunto L de

fórmulas

es una interpretación de Herbrand de

L que

es modelo de todas las fórmulas del conjunto.

EJEMPLO:

(14)

Teoría de Modelos: cláusulas

Horn

PROPOSICION: Todo conjunto de cláusulas de Horn

definidas tiene al menos un modelo de Herbrand.

PROPOSICION: MODELO MINIMO DE HERBRAND y PROPIEDAD DE INTERSECCION DE MODELOS

Sea P un conjunto de cláusulas de Horn definidas y sea {Mi}iI el conjunto (no vacío) de los modelos de Herbrand de P. Entonces,

MP = iI Mi

es un modelo de Herbrand de P (conocido como el modelo mínimo).

(15)

Teoría de Modelos: cláusulas

Horn

NOTA: La propiedad de intersección de modelos sólo se

cumple para cláusulas de Horn definidas. Por ejemplo,

la cláusula S

p V q tiene tres modelos de Herbrand

M

1

= {p}

M

2

= {q}

M

3

= {p, q}

cuya intersección es el conjunto vacío, que no es

modelo de S.

(16)

Teoría del Punto Fijo

Retículo de Interpretaciones

Dado un conjunto de cláusulas de Horn definidas P, se define

2B

P = conjunto de todas las interpretaciones posibles de P =

{(subconjuntos de BP)}

Operador de Consecuencias Lógicas Inmediatas

Sea P un conjunto de cláusulas de Horn definidas. Definimos el

operador de consecuencias lógicas inmediatas TP como una aplicación

TP : 2B

P 2BP

definida como:

TP(I) = {A BP | A A1,..., An es una instancia básica de una cláusula de P y {A1,..., An} I}

(17)

Teoría del Punto Fijo

Se puede demostrar que 2B

P es un retículo completo

(conjunto parcialmente ordenado con supremo e ínfimo) bajo el

orden parcial (reflexivo, antisimétrico y transitivo) de la inclusión de conjuntos

Knaster y Tarski demostraron que toda función continua y monótona sobre un retículo completo tiene un menor punto fijo

TP es continua sobre su dominio 2B

(18)

Teoría del Punto Fijo

LEMA Sea P un conjunto de cláusulas Horn

definidas.

Entonces

M

P

lfp(T

P

)

(19)

Teoría del Punto Fijo

POTENCIAS ORDINALES DE T: Definimos la

siguiente sucesión de conjuntos de átomos:

T 0 =

T = T(T ( - 1)) T = < T

TEOREMA (Caracterización por punto fijo de MP)

MP lfp(T) = TP

Informalmente, dado P un conjunto de cláusulas Horn definidas. Para obtener el modelo mínimo:

se aplican las reglas a los hechos para generar nuevos hechos

(20)

Teoría del Punto Fijo

EJEMPLO:

P={p(a). p(b). r(X) p(X). t(X,Y) p(X), r(Y). s(c).} TP 0 = Ø TP 1 = TP (Ø) = {p(a), p(b), s(c)} TP 2 = TP (TP 1) = {r(a), r(b), p(a), p(b), s(c)} TP 3 = TP (TP 2)={t(a,a),t(a,b),t(b,a),t(b,b),r(a),r(b),p(a),p(b), s(c)} TP 4 = TP (TP 3) (pto. fijo!)

(21)

Teoría del Punto Fijo

EJERCICIO: Calcular el menor punto fijo de:

P={p(a).

p(f(X)) p(X).}

P={p(X).

(22)

Corrección y Completitud (ii)

TEOREMA DE CORRECCION Y COMPLETITUD DE LA

RESOLUCION SLD (ii)

Sea P un conjunto de cláusulas de Horn definidas. Entonces, se cumple que: MP = iI Mi = lfp(TP) = TP = {A BP | P |= A} (COMPLETITUD) = {A BP | P {A} *SLD ‘} (CORRECCIÓN)

(23)

Programación Lógica

SEMANTICA DECLARATIVA

TEORIA DE MODELOS

El significado MP de un programa lógico P es el conjunto de átomos

básicos tales que son consecuencia lógica del programa (i.e., el modelo mínimo de Herbrand MP de P):

MP = {A BP | P |= A}

PUNTO FIJO

El significado MP de un programa lógico P es el punto fijo de una transformación continua TP asociada a P, definida como:

TP : 2B

P 2BP

TP(I) = {A BP | A A1,...,An es una instancia básica de una

cláusula de P y {A1,..., An} I}

y para la que se cumple que

(24)

Programación Lógica

SEMANTICA OPERACIONAL

El significado operacional de un programa lógico P se define en términos de resolución SLD:

SS(P) = {A BP | P {A} *SLD ’}

= conjunto de éxitos básicos de P

EQUIVALENCIA ENTRE SEMANTICAS

SS(P) Semántica Operacional

MP Semántica Declarativa Teoría de Modelos

(25)

Interpretación Procedural

CLAUSULA DE PROGRAMA DEFINICION DE PROCEDIMIENTO

A A1, ..., An procedure A

call A1

. . .

call An

LITERAL DE UN OBJETIVO LLAMADA A SUBPROGRAMA C1,..., Ck call C1

. . .

call Ck

UN PASO DE RESOLUCION UN PASO DE EJECUCION UNIFICACION MECANISMO PARA

Paso Parámetros

Selección y Construcción de datos

Referencias

Documento similar