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?
Soluci ´on: axiomas de marco (frame axioms) hay que
especificar los literales que cambiaban y no cambiaban
por la ejecuci ´on de los operadores
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)
IR(GarageTrabajo,GaragePepe)
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 Subproblema 2Ejemplo de funcionamiento (cont.)
B A C B D A C B D A ASubproblema 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 DSubproblema 2.2
S4
Subproblema 2
Subproblema 2.1
x=B, y=C
PONER(B,C)
Ejemplo de funcionamiento (cont.)
B D C B A D C A B C B DSubproblema 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
2
Ning ´un operador ha podido reducir la diferencia
3
Reducir una diferencia genera subproblemas m ´as dif´ıciles
4
Aparece 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=φ OR no se puedan expandir m ´as nodos • Si la cima de la pila del nodo es una conjunci ´on de metas
Sila conjunci ´on es cierta en el estado Entonces se elimina de la pila Si no, generar como sucesores todas las posibles combinaciones de las metas
seleccionar una de ellas • Si la cima de la pila del nodo es una meta
Sila meta es cierta en el estado Entonces se elimina de la pila Si no, Si hay bucle de meta Entonces retroceder
Si no, generar un sucesor por cada instanciaci ´on de operador que a ˜nade dicha meta
Sihay sucesores Entonces elegir uno Si no, retroceder
• Si la cima de la pila del nodo es un operador instanciado Siel operador instanciado se puede ejecutar
Entoncesejecutar operador, quitarlo de la pila y a ˜nadirlo al plan Si no, se introducen sus precondiciones en la pila
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) ...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 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) ...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) 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 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) ... E 1 sujeto(A) DEJAR(A) en-mesa(A) B A E1 E 2 en-mesa(A) B A E 2Introducci ´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) ...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
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 C
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 operador