Introducción a ASP (Answer Set Programming

Anuncio
Introducción a ASP
(Answer Set Programming - programación con
conjuntos respuestos)
Inteligencia Artificial
David Pearce
13 de enero de 2009
ASP y programación declarativa
ASP es una forma de programación declarativa orientada a problemas
combinatoricas dificiles
sus campos de aplicación incluyen:
•
•
•
•
•
•
•
planificación
diagnostica
razonamiento sobre acciónes y causalidad
verificación de software
data management
sistemas multagentes
razonamiento para la Web semántica
1
ASP y programación declarativa
ASP es un lenguaje similar a programación lógica pero con otro método de
computación
apoya varios tipos de razonamiento:
•
•
•
•
•
razonamiento por defecto
razonamiento temporal
restricciónes
información incompleta
preferencias y prioridades
2
ASP y programación declarativa
ASP se base en la semántica de modelos estables de la programación lógica
en 1999 se desarrolló la paradigma de ASP como programación declarativa
ahora existen unas 15 sistemas implementadas y numerosas aplicaciones
ASP ya fue la tecnologı́a principal en dos importantes proyectos Europeos,
incluso en un IP. Los sistemas más importantes son
•
•
•
•
•
http://www.tcs.hut.fi/Software/smodels/
DLV http://www.dbai.tuwien.ac.at/proj/dlv/
GNT http://www.tcs.hut.fi/Software/gnt/
ASSAT http://assat.cs.ust.hk/
CMODELS http://www.cs.utexas.edu/users/tag/cmodels/
SMODELS
3
el método de ASP
describe un dominio o problema utilizando reglas lógicas
utilize restricciónes para eliminar soluciones (modelos)
el sistema computa los modelos estables (answer sets) que corresponden a
soluciones correctos del problema
4
3 tipos de notación
Para escribir y analizar programas ASP utilizamos tres diferentes notaciones
1. El lenguaje de la lógica clásica.
Simbolos p, q, r, . . . de proposiciones y conectivas de la lógica
proposicional: ¬, →, ∧, ∨, ↔.
Las constantes lógicas: >, ⊥.
Variables x, y, z, . . . y sı́mbolos de predicados P (x), Q(x, y), R(x, y, z), . . .
Sı́mbolos de constantes: a, b, c, . . .
2. Una notación lógica para escribir reglas. Conectivas: ‘not’, ‘, ’ y ‘←’,
predicados: p(X), q(X, Y )
3. Una sintáxis para programas en p.e. SMODELS. p, q, r, :-, not r(X,Y).
...
5
3 tipos de notación - ejemplo
La expresión “para cada x, si x tiene la propiedad P y no la propiedad Q,
entonces tiene la propiedad R”, se escribe como:
1. ∀x(P (x) ∧ ¬Q(x) → R(x))
6
3 tipos de notación - ejemplo
La expresión “para cada x, si x tiene la propiedad P y no la propiedad Q,
entonces tiene la propiedad R”, se escribe como:
1. ∀x(P (x) ∧ ¬Q(x) → R(x))
2. r(X) ← p(X), not q(X)
6
3 tipos de notación - ejemplo
La expresión “para cada x, si x tiene la propiedad P y no la propiedad Q,
entonces tiene la propiedad R”, se escribe como:
1. ∀x(P (x) ∧ ¬Q(x) → R(x))
2. r(X) ← p(X), not q(X)
3. r(X) :- p(X), not q(X).
6
la semántica de modelos estables
Sistemas de ASP computan modelos estables. Este semántica no coincide con la
lógica clásica. En particular su negación representa la “negación por defecto”, la
“negación por fallo”.
7
la semántica de modelos estables
Sistemas de ASP computan modelos estables. Este semántica no coincide con la
lógica clásica. En particular su negación representa la “negación por defecto”, la
“negación por fallo”.
Ejemplo.
La fórmula ¬p → q tiene un solo modelo estable, que corresponde a p falso y
q verdadero.
7
la semántica de modelos estables
Sistemas de ASP computan modelos estables. Este semántica no coincide con la
lógica clásica. En particular su negación representa la “negación por defecto”, la
“negación por fallo”.
Ejemplo.
La fórmula ¬p → q tiene un solo modelo estable, que corresponde a p falso y
q verdadero.
La fórmula ¬q → p que es equivalente en la lógica clásica, tiene el modelo
estable que corresponde a p verdadero y q falso.
7
la semántica de modelos estables
Una conjunción (F ∧ G) o el conjunto {F, G} puede tener un model estable que
no es model estable de F .
Ejemplo.
(¬p → q) ∧ p tiene un único model estable {p}, que no es model estable de
(¬p → q).
8
la semántica de modelos estables
Una conjunción (F ∧ G) o el conjunto {F, G} puede tener un model estable que
no es model estable de F .
Ejemplo.
(¬p → q) ∧ p tiene un único model estable {p}, que no es model estable de
(¬p → q).
Añadiendo el conjunt p, el valor de q cambia de verdadero a falso. Eso
significa que el concepto de inferencia es no-monótona.
8
la semántica de modelos estables
Ejemplos.
una regla Horn es una expresión de forma F → A donde A es un átomo y F
es una conjunción de átomos
9
la semántica de modelos estables
Ejemplos.
una regla Horn es una expresión de forma F → A donde A es un átomo y F
es una conjunción de átomos
una regla normal tiene la forma A1 ∧ . . . ∧ Am ∧ ¬Am+1 ∧ . . . ∧ ¬An → A
(Ai átomos)
9
la semántica de modelos estables
Ejemplos.
una regla Horn es una expresión de forma F → A donde A es un átomo y F
es una conjunción de átomos
una regla normal tiene la forma A1 ∧ . . . ∧ Am ∧ ¬Am+1 ∧ . . . ∧ ¬An → A
(Ai átomos)
una regla disyunctiva tiene la forma
A1 ∧ . . . ∧ Am ∧ ¬Am+1 ∧ . . . ∧ ¬An → B1 ∨ . . . ∨ Bk (Ai, Bj átomos)
9
choice formulas - fórmulas de elección
Una construcción muy útil en ASP es el concepto de choice formulas (fórmulas
de elección) que tienen muchos modelos estables. Para un conjunto finito de
átomos Z, el CF Z C está definido por
^
(A ∨ ¬A)
A∈Z
Si Z es un conjunto finito de átomos, entonces un conjunto X de átomos es
un modelo estable de Z C sii X ⊆ Z.
10
choice formulas - fórmulas de elección
Una construcción muy útil en ASP es el concepto de choice formulas (fórmulas
de elección) que tienen muchos modelos estables. Para un conjunto finito de
átomos Z, el CF Z C está definido por
^
(A ∨ ¬A)
A∈Z
Si Z es un conjunto finito de átomos, entonces un conjunto X de átomos es
un modelo estable de Z C sii X ⊆ Z.
por ejemplo {p, q}C es (p ∨ ¬p) ∧ (q ∨ ¬q)
10
choice formulas - fórmulas de elección
Una construcción muy útil en ASP es el concepto de choice formulas (fórmulas
de elección) que tienen muchos modelos estables. Para un conjunto finito de
átomos Z, el CF Z C está definido por
^
(A ∨ ¬A)
A∈Z
Si Z es un conjunto finito de átomos, entonces un conjunto X de átomos es
un modelo estable de Z C sii X ⊆ Z.
por ejemplo {p, q}C es (p ∨ ¬p) ∧ (q ∨ ¬q)
sus modelos estables son arbitrarios subconjuntos de {p, q}:
{}, {p}, {q}, {p, q, }.
10
restricciones - constraints
La técnica de ASP se base en la posibilidad de representar ciertas colecciones de
conjuntos como colecciones de modelos estables. Muchas veces se combina una
CF, que aproxima la coleccion de conjuntos, con fórmulas llamadas restricciones
(“constraints”) que eliminan modelos no correctos
fórmulas negadas eliminan modelos estables: un conjunto de átomos es un
modelo estable de F ∧ ¬G sii es un modelo estable de F que satisface ¬G.
11
restricciones - constraints
La técnica de ASP se base en la posibilidad de representar ciertas colecciones de
conjuntos como colecciones de modelos estables. Muchas veces se combina una
CF, que aproxima la coleccion de conjuntos, con fórmulas llamadas restricciones
(“constraints”) que eliminan modelos no correctos
fórmulas negadas eliminan modelos estables: un conjunto de átomos es un
modelo estable de F ∧ ¬G sii es un modelo estable de F que satisface ¬G.
en ASP una restricción es una fórmula negada
11
restricciones - constraints
La técnica de ASP se base en la posibilidad de representar ciertas colecciones de
conjuntos como colecciones de modelos estables. Muchas veces se combina una
CF, que aproxima la coleccion de conjuntos, con fórmulas llamadas restricciones
(“constraints”) que eliminan modelos no correctos
fórmulas negadas eliminan modelos estables: un conjunto de átomos es un
modelo estable de F ∧ ¬G sii es un modelo estable de F que satisface ¬G.
en ASP una restricción es una fórmula negada
restricciones también pueden ser representado como reglas con ‘cabezas’
vacias. Eg. la regla ← p, not q espresa en forma de restricción la formula
¬(p ∧ ¬q). Su efecto es eliminar modelos estables que satisfacen p y ¬q.
11
LPARSE
y
SMODELS
es un de los sistemas de ASP más utilizados. Su frontend LPARSE
sierve también como input lenguaje para los sistemas GNT, ASSAT y CMODELS.
SMODELS
Ejemplo el conjunto de fórmulas de Horn
(p ∧ (p → q) ∧ (q ∧ r) → s)
(1)
se representa en LPARSE como:
p.
p :- p.
s :- q, r.
para computar los modelos estables de (1) se guarda los tres lı́neas en un
fichero, eg. file1 y se llama LPARSE y SMODELS ası́:
12
% lparse file1 | smodels
La parte principal de la respuesta a este comando es el modelo estable:
Answer: 1
Stable Model: q,p
Se escribe la negación como ‘not’, entonces las fórmulas de antes pueden ser
escrito en un fichero, eg. file2. como:
q :- not p.
p :- not q.
con lı́nea de comando
% lparse file2 | smodels 0
(El número zero al final indica que queremos computar todos los modelos
estables; un integer positivo n significa compute los primeros n modelos.)
13
se produce el output
Answer: 1
Stable Model: q
Answer: 2
Stable Model: p
Para representar en LPARSE un choice formula {A1, . . . , An}C , quitamos el
etiqueta C. Una restricción ¬F se escribe como :- F. Ası́ la fórmula
{p, q, r}C ∧ ¬¬p ∧ ¬(q ∧ ¬r)
se representa en LPARSE como:
{p, q, r}.
:- not p.
:- q, not r.
14
equivalencia fuerte
Supone que dos fórmulas F y G se comportan tal que por cualquier H,
(F ∧ H) y (G ∧ H) tienen los mismos modelos estables.
15
equivalencia fuerte
Supone que dos fórmulas F y G se comportan tal que por cualquier H,
(F ∧ H) y (G ∧ H) tienen los mismos modelos estables.
Se dice que F y G son fuertemente equivalente.
15
equivalencia fuerte
Supone que dos fórmulas F y G se comportan tal que por cualquier H,
(F ∧ H) y (G ∧ H) tienen los mismos modelos estables.
Se dice que F y G son fuertemente equivalente.
Son siempre inter-sustituible sin afectar la semántica en cualquier contexto o
programa
15
equivalencia fuerte
Supone que dos fórmulas F y G se comportan tal que por cualquier H,
(F ∧ H) y (G ∧ H) tienen los mismos modelos estables.
Se dice que F y G son fuertemente equivalente.
Son siempre inter-sustituible sin afectar la semántica en cualquier contexto o
programa
Se puede comprobar la equivalencia fuerte utilizando como calculo una lógica
no-clásica (HT) de tres valores
15
equivalencia fuerte
Ejemplo. Las fórmulas (p ∨ ¬p) y (¬¬p → p) son equivalente en HT entonces
fuertemente equivalente. La primera (entonces ambos) fórmulas se puede
escribir en LPARSE como
{p}.
16
equivalencia fuerte
Ejemplo. Las fórmulas (p ∨ ¬p) y (¬¬p → p) son equivalente en HT entonces
fuertemente equivalente. La primera (entonces ambos) fórmulas se puede
escribir en LPARSE como
{p}.
También se puede representar la doble negación ¬¬A dentro de una regla como
{not A}0 (más detalles abajo). Ası́ se escribe (¬¬p → p) como
p :- { not p } 0.
16
Parte 2: técnicas de programación
17
expresiones de cardinalidad
En ASP es frequente utilizar fórmulas que expresan condiciones sobre la
cardinalidad de un conjunto. Si l es un integer no-negativo y F1, . . . , Fn son
fórmulas,
l ≤ {F1, . . . .Fn}
(2)
representa la disyunción:
_
^
I⊆{1,...,n},kIk=l
i∈I
Fi.
18
expresiones de cardinalidad
En ASP es frequente utilizar fórmulas que expresan condiciones sobre la
cardinalidad de un conjunto. Si l es un integer no-negativo y F1, . . . , Fn son
fórmulas,
l ≤ {F1, . . . .Fn}
(2)
representa la disyunción:
_
^
I⊆{1,...,n},kIk=l
i∈I
Fi.
Ejemplo
2 ≤ {F1, F2, F3}
(3)
representa
(F1 ∧ F2) ∨ (F1 ∧ F3) ∨ (F2 ∧ F3).
18
La expresión
{F1, . . . .Fn} ≤ u
(4)
para u no-negativo denota la fórmula
¬(u + 1 ≤ {F1, . . . .Fn}).
Mientras
l ≤ {F1, . . . .Fn} ≤ u
(5)
representa l ≤ {F1, . . . .Fn} ∧ {F1, . . . .Fn} ≤ u.
Un conjunto de átomos:
satisface (2) sii satisface al menos l de las fórmulas {F1, . . . .Fn}
satisface (4) sii satisface como máximo u de las fórmulas {F1, . . . .Fn}
satisface (5) sii satisface al menos l y como máximo u de las fórmulas
{F1, . . . .Fn}
19
acepta expresiones de forma (2), (4), (5), eliminando el simbolo ≤, si las
fórmulas {F1, . . . .Fn} son literales (átomos o sus negaciones).
LPARSE
Ejemplo Hemos visto que la implicación (¬¬p → p) se puede representar en
LPARSE somo
p : − {not p}0. Es porque
{¬p} ≤ 0 = ¬(1 ≤ {¬p}) = ¬¬p.
20
abreviaturas
Cuando A1, . . . , An son átomos por pares distintos escribe:
l ≤ {A1, . . . , An}C para {A1, . . . , An}C ∧ (l ≤ {A1, . . . , An}),
{A1, . . . , An}C ≤ u para {A1, . . . , An}C ∧ ({A1, . . . , An} ≤ u),
l ≤ {A1, . . . , An}C ≤ u para {A1, . . . , An}C ∧ (l ≤ {A1, . . . , An} ≤ u).
Si X es un conjunto de átomos, entonces:
1. X es un modelo estable de l ≤ {A1, . . . , An}C sii X ⊆ {A1, . . . , An} y
l ≤ kXk
2. X es un modelo estable de {A1, . . . , An}C ≤ u sii X ⊆ {A1, . . . , An} y
kXk ≤ u
3. X es un modelo estable de l ≤ {A1, . . . , An}C ≤ u sii X ⊆ {A1, . . . , An} y
l ≤ kXk ≤ u
21
Ejemplo Los modelos estables de
2 ≤ {p, q, r}C ≤ 2
son
{p, q}, {p, r}, {q, r}.
22
variables en
LPARSE
En general los programas ASP contienen variables. Un ejemplo en LPARSE:
p(1..4).
#domain p(I).
q(I) :- not q(I-1).
Supone que se guarda la tres lı́neas en un fichero var. La primera lı́nea es una
abreviatura por 4 reglas:
p(1). p(2). p(3). p(4).
Esa define un predicado auxiliario de “dominio”, p, que se usa en la segunda
lı́nea para declarar I como variable con dominio {1, . . . , 4}. La última lı́nea de
var es una representación esquemática de las 4 reglas:
q(1) :- not q(0). q(2) :- not q(1).
q(3) :- not q(2). q(4) :- not q(3).
23
Entonces LPARSE interpreta var como la conjunción de las fórmulas
p(i),
¬q(i − 1) → q(i)
(1 ≤ i ≤ 4)
Dado el comando
24
Entonces LPARSE interpreta var como la conjunción de las fórmulas
p(i),
¬q(i − 1) → q(i)
(1 ≤ i ≤ 4)
Dado el comando
% lpars var | smodels 0
responde con el único model estable
Stable Model: q(1) q(3) p(1) p(2) (p3) p(4)
Los átomos auxiliarios p(1). ...,p(4) pueden ser ocultado si se incluye la
declaración
hide p( ).
24
Método alternativo para especificar el grounding en LPARSE: incluye predicados
de dominio directamente en los cuerpos de las reglas. Escribe var ası́:
p(1..4).
q(I) :- p(I), not q(I-1).
25
Método alternativo para especificar el grounding en LPARSE: incluye predicados
de dominio directamente en los cuerpos de las reglas. Escribe var ası́:
p(1..4).
q(I) :- p(I), not q(I-1).
Estas lı́neas representan la conjunción de la fórmulas
p(i),
p(i) ∧ ¬q(i − 1) → q(i)
(1 ≤ i ≤ 4)
Las dos versiones de var son fuertemente equivalente. Otra abreviatura en
LPARSE: se puede escribir
p(1..4).
2 {q(I) : p(I) } 3. en lugar de
p(1). p(2). p(3). p(4).
2 {q(1), q(2), q(3), q(4)} 3.
25
un ejemplo: coloreando grafos
Un n-colorido (colouring) de un grafo G es una función f desde sus vertices a
{1, . . . , n} tal que f (x) 6= f (y) si x, y son vertices contiguos.
26
un ejemplo: coloreando grafos
Un n-colorido (colouring) de un grafo G es una función f desde sus vertices a
{1, . . . , n} tal que f (x) 6= f (y) si x, y son vertices contiguos.
Problema: utilize ASP para encontrar un n-colorido o demonstrar que ninguno
existe. Entonces: escribe un programa cuyos answer sets (modelos estables) son
en correspondencia 1-1 con los n-coloridos de G.
26
un ejemplo: coloreando grafos
Un n-colorido (colouring) de un grafo G es una función f desde sus vertices a
{1, . . . , n} tal que f (x) 6= f (y) si x, y son vertices contiguos.
Problema: utilize ASP para encontrar un n-colorido o demonstrar que ninguno
existe. Entonces: escribe un programa cuyos answer sets (modelos estables) son
en correspondencia 1-1 con los n-coloridos de G.
Solución Sea V los vertices de G y E el conjunto de los bordes. El programa
consiste en las reglas:
1 ≤ {colour(x, 1), . . . , colour(x, n)}C ≤ 1
← colour(x, i), colour(y, i)
(x ∈ V )
(6)
({x, y} ∈ E; 1 ≤ i ≤ n).
(7)
26
Podemos demonstrar que ese programa es correcto. El programa (6),(7) se
puede codificar en LPARSE como el siguiente fichero colour:
c(1..n). 1 { colour(X,I) : c(I) } 1 :- v(X).
:- colour(X,I), colour(Y,I), e(X,Y), c(I).
27
Podemos demonstrar que ese programa es correcto. El programa (6),(7) se
puede codificar en LPARSE como el siguiente fichero colour:
c(1..n). 1 { colour(X,I) : c(I) } 1 :- v(X).
:- colour(X,I), colour(Y,I), e(X,Y), c(I).
Se supone que los predicados de dominio, v y e caracterizando los vertices y los
bordes de G, estan definido en un fichero separado, eg graph. Por ejemplo, si G
es un cubo en 3 dimensiones, el ficher puede tener la forma:
v(0..7).
e(0,1). e(1,2). e(2,3). e(3,0).
e(4,5). e(5,6). e(6,7). e(7,4).
e(0,4). e(1,5). e(2,6). e(3,7).
La lı́nea de comando utilize la opción -c de LPARSE para especificar el valor del
constante n, y ordena LPARSE que concatena los ficheros graph y colour:
% lparse -c n=2 -d none graph colour | smodels
27
SMODELS
responde con un conjunto de átomos que representa un 2-colorido del
cubo:
Stable Model: colour(0,1) colour(1,2) colour(2,1) colour(3,2)
colour(4,2) colour(5,1), colour(6,2) colour(7,1)
28
ejemplo 2: cliques
Un clique en un grafo G es un conjunto de por pares contiguos vertices de G.
Problema Utilice ASP par encontrar un clique de cardinalidad ≥ n o
demonstrar que eso no existe. Escribe un programa cuoys answer sets estan en
correspondencia 1-1 con cliques de card. ≥ n.
29
ejemplo 2: cliques
Un clique en un grafo G es un conjunto de por pares contiguos vertices de G.
Problema Utilice ASP par encontrar un clique de cardinalidad ≥ n o
demonstrar que eso no existe. Escribe un programa cuoys answer sets estan en
correspondencia 1-1 con cliques de card. ≥ n.
Solución Como antes, sean V los vertices y E los bordes de G. El programa
consiste en las reglas
← in(x), in(y)
n ≤ {in(x) : x ∈ V }C ,
(8)
(x, y ∈ V ; x 6= y; {x, y} 6∈ E).
(9)
Se puede comprobar que un conjunto X de átomos es un modelo estable de (8)
+ (9) sii X es {in(x) : x ∈ C} para un clique C in G tal que kCk ≥ n.
29
Se escribe (8) + (9) en LPARSE ası́:
n {in(X) : v(X)}.
;- in(X), in(Y), v(X,Y), X!=Y, not e(X,Y), not e(Y,X).
Como antes, v y e son predicados de dominio para vertices y bordes de G. Las
condiciones not e(X,Y), not e(Y,X) expresan que X y Y no son contiguo.
30
ciclos de Hamilton
Un ciclo de Hamilton en un grafo orientado G es un camino cerrado que pasa
dentro cada vertice de G exactamente una vez.
El programa abajo utiliza los átomos in(x, y) para cada borde hx, yi de G para
expresar que hx, yi es elemento del camino.
La parte ‘generativa’ del programa consiste en las reglas de elección:
{in(x, y)}C
(hx, yi ∈ E)
(10)
donde E es el conjunto de bordes.
Restricciones eliminan los subconjuntos de E que no son de Hamilton;
← 2 ≤ {in(x, y) : y ∈ Ax}
(x ∈ V )
(11)
← 2 ≤ {in(x, y) : x ∈ By }
(y ∈ V )
(12)
donde Ax denota {y : hx, yi ∈ E} y By denota {x : hx, yi ∈ E}.
31
Las restricciones guarantizan que dos in-bordes ni empezan ni terminan en el
mismo vértice. Ası́ el conjunto de in-bordes es un camino o una unión de
caminos separados.
Última condicion: cada vértice de G es alcanzable por una secuencia de
in-bordes desde un vértice fijo, p.e. x0. Utilizamos átomos auxiliarios r(x) para
“x es alcanzable desde x0”, para cada x en G. Una definición recursiva de r es:
r(x) ← in(x0, x)
r(y) ← r(x), in(x, y)
(x ∈ V )
(13)
(hx, yi ∈ E)
(14)
En fin ponemos las restricciones de alcanzabilidad:
← not r(x)
(x ∈ V ).
(15)
32
Se demuestra que un conjunto X de átomos es la parte esencial de un modelo
estable de (10) - (15) si X tiene la forma {in(x, y) : hx, yi ∈ H} donde H es el
conjunto de bordes de un ciclo de Hamilton en G.
33
Se demuestra que un conjunto X de átomos es la parte esencial de un modelo
estable de (10) - (15) si X tiene la forma {in(x, y) : hx, yi ∈ H} donde H es el
conjunto de bordes de un ciclo de Hamilton en G.
La representación en LPARSE ponendo x0 = 0 es:
{in(X,Y)} :- e(X,Y).
:- 2 {in(X,Y) : e(X,Y)}, v(X).
:- 2 {in(X,Y) : e(X,Y)}, v(Y).
r(X) :- in(0,X), v(X).
r(Y) :- r(X), in(X,Y), e(X,Y).
:- not r(X), v(X).
hide r( ).
33
Descargar