Planificaci ´on Autom ´atica
Grupo PLG
Universidad Carlos III de Madrid
IA. 2008-09
Indice
1
Introducci ´on
2
Planificaci ´on cl ´asica
T ´ecnicas iniciales
Espacio de estados
Planes de orden parcial
3
Planificaci ´on neocl ´asica
4
Heur´ıstica
Indice
1
Introducci ´on
2
Planificaci ´on cl ´asica
T ´ecnicas iniciales
Espacio de estados
Planes de orden parcial
3
Planificaci ´on neocl ´asica
4
Heur´ıstica
5
Planificaci ´on en el mundo real
Indice
1
Introducci ´on
2
Planificaci ´on cl ´asica
T ´ecnicas iniciales
Espacio de estados
Planes de orden parcial
3
Planificaci ´on neocl ´asica
4
Heur´ıstica
Indice
1
Introducci ´on
2
Planificaci ´on cl ´asica
T ´ecnicas iniciales
Espacio de estados
Planes de orden parcial
3
Planificaci ´on neocl ´asica
4
Heur´ıstica
5
Planificaci ´on en el mundo real
Indice
1
Introducci ´on
2
Planificaci ´on cl ´asica
T ´ecnicas iniciales
Espacio de estados
Planes de orden parcial
3
Planificaci ´on neocl ´asica
4
Heur´ıstica
Indice
1
Introducci ´on
2
Planificaci ´on cl ´asica
T ´ecnicas iniciales
Espacio de estados
Planes de orden parcial
3
Planificaci ´on neocl ´asica
4
Heur´ıstica
5
Planificaci ´on en el mundo real
Indice
1
Introducci ´on
2
Planificaci ´on cl ´asica
T ´ecnicas iniciales
Espacio de estados
Planes de orden parcial
3
Planificaci ´on neocl ´asica
4
Heur´ıstica
En los comienzos...
Las primeras aproximaciones a la planificaci ´on se hicieron
desde el c ´alculo de situaciones (situation calculus)
Usado en sistemas como
QA
3 [Green, 1969] o por
McCarthy-Hayes [McCarthy and Hayes, 1969]
Todav´ıa activo en comunidades de Representaci ´on del
conocimiento
Representaci ´on de los estados
utilizaban un predicado
holds(
fluent
,estado)
Fluent
(funci ´on): literal que se dec´ıa era cierto en el estado
ejemplo:
holds(encima(A,B),S0)
utilizaban
result(op,estado)
que devolv´ıa un nuevo
estado
ejemplo:
Representaci ´on de los operadores
holds(sujeto(
x
),result(quitar(
x
,
y
)
,
s
))
:-holds(encima(
x
,
y
)
,
s
)
,
holds(libre(
x
)
,
s
)
,
holds(brazo-libre,
s
)
holds(libre(
y
),result(quitar(
x
,
y
)
,
s
))
:-holds(encima(
x
,
y
)
,
s
)
,
holds(libre(
x
)
,
s
)
,
holds(brazo-libre,
s
)
∼holds
(
encima
(
x
,
y
)
,result(quitar
(
x
,
y
)
,
s
))
:-holds
(
encima
(
x
,
y
)
,
s
)
,
holds
(
libre
(
x
)
,
s
)
,
holds
(
brazo-libre,s
)
∼holds
(
libre
(
x
)
,result(quitar
(
x
,
y
)
,
s
))
:-holds
(
encima
(
x
,
y
)
,
s
)
,
holds
(
libre
(
x
)
,
s
)
,
holds
(
brazo-libre,s
)
∼holds
(
brazo-libre
(
x
)
,result(quitar
(
x
,
y
)
,
s
))
:-holds
(
encima
(
x
,
y
)
,
s
)
,
holds
(
libre
(
x
)
,
s
)
,
holds
(
brazo-libre,s
)
holds
(
en-mesa
(
z
)
,result(quitar
(
x
,
y
)
,
s
))
:-holds
(
en-mesa
(
z
)
,
s
)
Razonamiento
Utilizan
PROLOG
directamente
Problema del marco (frame problem): ¿qu ´e ocurre cuando
ejecutamos un operador?
An ´alisis de Medios-Fines.
GPS
Idea Intuitiva:
Para resolver un problema,
analizar qu ´e fines se desean conseguir (
metas
),
de qu ´e medios se dispone para conseguirlos
(
operadores
),
utilizar los medios para reducir, progresivamente, las
diferencias
entre el estado inicial y las metas.
GPS
(“General Problem Solver”) de
Newell, Simon
y sus
estudiantes fue el primer sistema en proponer esta
idea [Ernst and Newell, 1969]
El
objetivo
del proyecto era construir un solucionador
general que
simulara
la forma de razonamiento humana
Ten´ıa una fuerte componente psicol ´ogica
Ejemplo de reducci ´on de diferencias
GPS
GPS
Está(Pepe,TrabajoPepe)
Tiene(Pepe,LlavesCochePepe)
Está(CochePepe,GarageTrabajo)
Está(Pepe,GarageTrabajo)
Tiene(Pepe,LlavesCochePepe)
Está(CochePepe,GarageTrabajo)
Está(Pepe,GaragePepe)
Está(Pepe,CasaPepe)
Lee(Pepe,Quijote)
Funci ´on
GPS
Entradas:
Estado inicial (E), Metas (M) y Operadores (O)
Salidas:
[Plan o Fallo, Estado Alcanzado o Fallo]
Si
M
⊆
E
Entonces devuelve [
Verdadero
,
E
]
Si no,
diferencia
:=
elige-diferencia
(
E
,
M
);
R
:=
operadores-relevantes
(
diferencia
,
O
);
soluci ´on:=Falso
;
Mientras
(
R
6
=
φ
)
Y
(
soluci ´on=Falso
)
o
:=
elige-operador
(
diferencia
,
R
);
R
:=
R
− {
o
}
;
[
P
,
E
0]:=GPS(
E
,
precondiciones
(
o
),
O
);
Case
P
of
Verdadero
: [
P
1,
E
10]:=GPS(
ejecuta
(
o
,
E
0),
M
,
O
);
Si
P
16
=
Falso
Entonces
soluci ´on
:=[
o
+
P
1,
E
10]
Falso
: –
Si no: (
P
1,
E
10):=GPS(
ejecuta
(
o
,
E
0
),
M
,
O
);
Si
P
16
=
Falso
Entonces
soluci ´on
:=[
P
+
o
+
P
1,
E
10];
Si
soluci ´on=Falso
Entonces devuelve [
Falso,Falso
]
Si no, devuelve
soluci ´on
Ejemplo de funcionamiento
A
A B C C B
A D
C B A
D
S 2
DEJAR(A) x=A
Subproblema 1
Ejemplo de funcionamiento (cont.)
B A
C B D
A
C B D
A A
Subproblema 1
Subproblema 1.1
x=A, y=B
QUITAR(A,B)
Subproblema 1.2
S1
Ejemplo de funcionamiento (cont.)
C B
C B
A D
C A
B
A B C D
Subproblema 2.2
S4
Subproblema 2
Subproblema 2.1
Ejemplo de funcionamiento (cont.)
B D
C B
A D
C A
B
C B
D
Subproblema 2.1.2
S3
Subproblema 2.1
Subproblema 2.1.1
x=B, y=D
QUITAR(B,D)
Tabla de diferencias
Operadores
Diferencias
en-mesa(x)
encima(x,y)
libre(x)
sujeto(x)
brazo-libre
DEJAR(x)
•
•
•
LEVANTAR(x)
•
QUITAR(x,y)
•
•
Aprendizaje de la tabla de diferencias
Se inicializan todas las posiciones a (0,0)
Cada vez que se intenta reducir una diferencia
d
con un
operador
o
y funciona:
si
tabla[
o
,
d
]=(A,I)
→
tabla[
o
,
d
]:=(A+1,I+1)
y, adem ´as, para cada
o
0
6
=
o,
si
tabla[
o
0
,
d
]=(A’,I)
→
tabla[
o
0
,
d
]:=(A’,I+1)
Control en
GPS
Tipos de decisi ´on:
¿Qu ´e diferencia reducir?
¿Qu ´e operador utilizar para reducir la diferencia?
[
¿Qu ´e instanciaci ´on de operador utilizar?
]
Se hace retroceso cuando:
1
No hay operadores que puedan reducir la diferencia
2Ning ´un operador ha podido reducir la diferencia
3
Reducir una diferencia genera subproblemas m ´as dif´ıciles
4Aparece un bucle de meta
5
Se llega a una profundidad m ´axima
Tipos de conocimiento de control
Independiente del dominio (1, 2 y 4)
M ´as informaci ´on en
Referencias: [Allen
et al., 1990,
Borrajo
et al., 1993,
Newell
et al., 1972,
Rich and Knight, 1994]
STRIPS
Representaci ´on de operadores
Problema del marco
: ¿qu ´e ocurre con el contexto del
mundo cuando se ejecuta una acci ´on?
Soluci ´on
(hip ´otesis
STRIPS
): s ´olo cambian las cosas que
aparecen en las post-condiciones de cada operador [Fikes
and Nilsson, 1971]
B ´usqueda
:
Nodos: estado actual y pila de metas-operadores
Nodo ra´ız: estado inicial y conjunci ´on de metas
Heur´ıstica: seleccionar siempre alguno de los sucesores
de cada nodo
Idea:
Meter en la pila las metas por conseguir y los operadores
que consiguen dichas metas
Sacar de la pila las metas que sean ciertas en el estado
actual y los operadores que se ejecuten
Algoritmo de
STRIPS
Repetir hasta que pila=φORno se puedan expandir m ´as nodos
•Sila cima de la pila del nodo es una conjunci ´on de metas
Sila conjunci ´on es cierta en el estadoEntoncesse elimina de la pila Si no, generar como sucesores todas las posibles combinaciones de las metas
seleccionar una de ellas
•Sila cima de la pila del nodo es una meta
Sila meta es cierta en el estadoEntoncesse elimina de la pila Si no,Sihay bucle de metaEntoncesretroceder
Si no, generar un sucesor por cada instanciaci ´on de operador que a ˜nade dicha meta
Sihay sucesoresEntonceselegir uno Si no, retroceder
•Sila cima de la pila del nodo es un operador instanciado Siel operador instanciado se puede ejecutar
Representaci ´on de operadores
QUITAR(x
,
y)
precondiciones:
encima(
x,
y
),libre(
x
),brazo-libre
a ˜nadidos:
sujeto(
x
),libre(
y
)
borrados:
encima(
x,y
),brazo-libre,libre(
x
)
LEVANTAR(x)
precondiciones:
en-mesa(
x
),libre(
x
),brazo-libre
a ˜nadidos:
sujeto(
x
)
borrados:
en-mesa(
x
),brazo-libre,libre(
x
)
PONER(x
,
y)
precondiciones:
sujeto(
x
),libre(
y
)
a ˜nadidos:
encima(
x,
y
),libre(
x
),brazo-libre
borrados:
sujeto(
x
),libre(
y
)
DEJAR(x
)
precondiciones:
sujeto(
x
)
a ˜nadidos:
en-mesa(
x
),libre(
x
),brazo-libre
borrados:
sujeto(
x
)
Introducci ´on Planificaci ´on cl ´asica Planificaci ´on neocl ´asica Heur´ıstica Planificaci ´on en el mundo real
Espacio de estados
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) QUITAR(A,B) en-mesa(A) sujeto(A) DEJAR(A) E 0 E sujeto(A) DEJAR(A) en-mesa(A) 0 LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
LEVANTAR(A) en-mesa(A) DEJAR(A) sujeto(A) E 0 meta bucle de X brazo-libre en-mesa(A) libre(A) en-mesa(A) libre(A)brazo-libre brazo-libre X X X X X en-mesa(A) libre(A) ...
Introducci ´on Planificaci ´on cl ´asica Planificaci ´on neocl ´asica Heur´ıstica Planificaci ´on en el mundo real
Espacio de estados
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
en-mesa(A) DEJAR(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) en-mesa(A) LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
LEVANTAR(A) en-mesa(A) DEJAR(A) sujeto(A) E 0 meta bucle de brazo-libre en-mesa(A) libre(A) en-mesa(A) libre(A)brazo-libre brazo-libre X X X X X en-mesa(A) libre(A) ...
libre(A) brazo-libre encima(A,B) QUITAR(A,B) sujeto(A) DEJAR(A) en-mesa(A) E 0 E 1 sujeto(A) DEJAR(A) en-mesa(A) B A E1 E 2 en-mesa(A) B A E 2
Introducci ´on Planificaci ´on cl ´asica Planificaci ´on neocl ´asica Heur´ıstica Planificaci ´on en el mundo real
Espacio de estados
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
en-mesa(A) DEJAR(A) E 0 sujeto(A) DEJAR(A) en-mesa(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
LEVANTAR(A) en-mesa(A) DEJAR(A) sujeto(A) E 0 meta bucle de brazo-libre en-mesa(A) libre(A) en-mesa(A) libre(A)brazo-libre brazo-libre X X X en-mesa(A) libre(A) ...
Introducci ´on Planificaci ´on cl ´asica Planificaci ´on neocl ´asica Heur´ıstica Planificaci ´on en el mundo real
Espacio de estados
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
en-mesa(A) DEJAR(A) E 0 sujeto(A) DEJAR(A) en-mesa(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) QUITAR(A,B) en-mesa(A) sujeto(A) DEJAR(A) E 0 E sujeto(A) DEJAR(A) en-mesa(A) 0 LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
LEVANTAR(A) en-mesa(A) DEJAR(A) sujeto(A) E 0 meta bucle de en-mesa(A) libre(A)brazo-libre brazo-libre X X X en-mesa(A) libre(A) ...
libre(A) brazo-libre encima(A,B) QUITAR(A,B) sujeto(A) DEJAR(A) en-mesa(A) E 0 E 1 sujeto(A) DEJAR(A) en-mesa(A) B A E1 E 2 en-mesa(A) B A E 2
Introducci ´on Planificaci ´on cl ´asica Planificaci ´on neocl ´asica Heur´ıstica Planificaci ´on en el mundo real
Espacio de estados
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
en-mesa(A) DEJAR(A) E 0 sujeto(A) DEJAR(A) en-mesa(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) QUITAR(A,B) en-mesa(A) sujeto(A) DEJAR(A) E 0 E sujeto(A) DEJAR(A) en-mesa(A) 0 LEVANTAR(A) LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
Introducci ´on Planificaci ´on cl ´asica Planificaci ´on neocl ´asica Heur´ıstica Planificaci ´on en el mundo real
Espacio de estados
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
en-mesa(A) DEJAR(A) E 0 sujeto(A) DEJAR(A) en-mesa(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) QUITAR(A,B) en-mesa(A) sujeto(A) DEJAR(A) E 0 E sujeto(A) DEJAR(A) en-mesa(A) 0 LEVANTAR(A) LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
LEVANTAR(A) en-mesa(A) DEJAR(A) sujeto(A) E 0 meta bucle de X brazo-libre en-mesa(A) libre(A) en-mesa(A) libre(A)brazo-libre brazo-libre X X X X X en-mesa(A) libre(A) ...
libre(A) brazo-libre encima(A,B) QUITAR(A,B) sujeto(A) DEJAR(A) en-mesa(A) E 0 E 2 en-mesa(A) B A E 2
Introducci ´on Planificaci ´on cl ´asica Planificaci ´on neocl ´asica Heur´ıstica Planificaci ´on en el mundo real
Espacio de estados
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
en-mesa(A) DEJAR(A) E 0 sujeto(A) DEJAR(A) en-mesa(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) QUITAR(A,B) en-mesa(A) sujeto(A) DEJAR(A) E 0 E sujeto(A) DEJAR(A) en-mesa(A) 0 LEVANTAR(A) LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
LEVANTAR(A) en-mesa(A) DEJAR(A) sujeto(A) E 0 meta bucle de X brazo-libre en-mesa(A) libre(A) en-mesa(A) libre(A)brazo-libre brazo-libre X X X X X en-mesa(A) libre(A) ...
Ejemplo de
STRIPS
A
A B
Estado inicial (E )
0 Metas en-mesa(A) E 0
en-mesa(A) DEJAR(A) E 0 sujeto(A) DEJAR(A) en-mesa(A) E 0
E 0 en-mesa(A) sujeto(A) DEJAR(A) QUITAR(A,A) QUITAR(A,B) en-mesa(A) sujeto(A) DEJAR(A) E 0 E sujeto(A) DEJAR(A) en-mesa(A) 0 LEVANTAR(A) LEVANTAR(A) en-mesa(A) DEJAR(A)
sujeto(A) E 0
LEVANTAR(A) en-mesa(A) DEJAR(A) sujeto(A) E 0 meta bucle de X brazo-libre en-mesa(A) libre(A) en-mesa(A) libre(A)brazo-libre brazo-libre X X X X X en-mesa(A) libre(A) ...
libre(A) brazo-libre encima(A,B) QUITAR(A,B) sujeto(A) DEJAR(A) en-mesa(A) E 0 E 1 sujeto(A) DEJAR(A) en-mesa(A) B A E1 E 2 en-mesa(A) B A E 2
Problema: linealidad
STRIPS
asume independencia entre las metas, por lo que
las trata linealmente: hasta que no encuentra un plan para
obtener una meta, no pasa a las siguientes metas
No funciona cuando hay recursos limitados, por lo que es:
incompleta
: existe soluci ´on, pero no la encuentra
Problema del cohete chino
B
A A B
C
Marte Tierra
Estado inicial
Marte Metas
no ´optima
: no encuentra la soluci ´on ´optima
Anomal´ıa de Sussman
Estado inicial Metas A
C
B A
B
Planificaci ´on no lineal
Consideraci ´on de varias metas al mismo tiempo
Pensar con un
conjunto de metas
: no es necesario generar
completamente un plan de una meta para estudiar al
mismo tiempo el resto
... en−aeropuerto(Pepe,Barajas)
coger−taxi(Pepe,Casa−Pepe,Barajas)
en−aeropuerto(Maletas−Pepe,Barajas)
descargar−maletas(Maletas−Pepe,x,Barajas)
Expandir un grafo
en el que las metas (y los operadores)
son nodos y se pueden seleccionar las metas en cualquier
orden
en(Maletas−Pepe,Casa−Pepe) en(Pepe,Casa−Pepe)
coger−taxi(Pepe,Casa−Pepe,Barajas) descargar−maletas(Maletas−Pepe,x,Barajas)
en−aeropuerto(Maletas−Pepe,Barajas)
en−aeropuerto(Pepe,Barajas)
Estado inicial Metas
Planificaci ´on no lineal
Seg ´un espacio de problemas:
Estados (
STRIPS
,
PRODIGY
): nodos del ´arbol representan
estados
Planes (
NOAH
,
TWEAK
,
UCPOP
,
SNLP
,
O
-
PLAN
): nodos del
´arbol representan planes
Seg ´un plan generado:
Orden total: secuencia ´unica de operadores
Orden parcial: m ´ultiples secuencias posibles
Seg ´un toma de decisiones:
Compromiso casual: toman decisiones cont´ınuamente
M´ınimo compromiso: s ´olo toman decisiones cuando se ven
forzados
PRODIGY
An ´alisis medios-fines con b ´usqueda hacia atr ´as
(bidireccional) [Veloso
et al., 1995]
Las metas se tratan como un conjunto
Decisiones:
Meta: qu ´e meta escoger
Operador: qu ´e operador utilizar para obtener una meta
Instanciaci ´on de operador: qu ´e valores asignar a las
variables del operador
Ejecutar un operador o trabajar en alguna submeta
Se puede definir conocimiento de control expl´ıcito para
tomar las decisiones
´
Arbol de b ´usqueda gen ´erico de
PRODIGY
operador o trabajar en una submeta
1 g
1
1 b
1 g
4 3
2
1
o
meta meta
meta meta
meta Elige una
Elige un operador
Elige una instanciación
Decide si ejecutar un
ejecutar operador submeta
submeta ejecutar operador
operador
instanciación instanciación