PLANIFICACION INDEPENDIENTE DEL DOMINIO¶ EN ENTORNOS ...€¦ · un operador) mediante un...
Transcript of PLANIFICACION INDEPENDIENTE DEL DOMINIO¶ EN ENTORNOS ...€¦ · un operador) mediante un...
PLANIFICACION INDEPENDIENTE DEL DOMINIO
EN ENTORNOS DINAMICOS DE TIEMPO
RESTRINGIDO
Presentada por: Oscar Sapena Vercher
Dirigida por: Dra. Dna. Eva Onaindıa de la Rivaherrera
PARA LA OBTENCION DEL GRADO DEDOCTOR EN INFORMATICA
POR LAUNIVERSIDAD POLITECNICA DE VALENCIA
Valencia, EspanaJULIO 2005
ii
Fecha: Julio 2005
Autor: Oscar Sapena Vercher
Director: Dra. Dna. Eva Onaindıa de la Rivaherrera
Tıtulo: Planificacion Independiente del Dominio
en Entornos Dinamicos de Tiempo Restringido
Departamento: Sistemas Informaticos y Computacion
Universidad: Universidad Politecnica de Valencia
Grado: Doctor Mes: Julio Ano: 2005
Firma del Autor
iii
iv
Me encanta que los planes salgan bien.
Annibal Smith
v
vi
Tabla de contenidos
Tabla de contenidos VII
Indice de tablas X
Indice de figuras XII
Resumen XVII
Abstract XIX
Resum XXI
1. Introduccion 1
1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Breve resena historica . . . . . . . . . . . . . . . . . . 2
1.1.2. Perspectiva actual . . . . . . . . . . . . . . . . . . . . 3
1.2. Motivacion y objetivos . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Aportaciones de la tesis . . . . . . . . . . . . . . . . . . . . . 7
1.4. Organizacion del trabajo . . . . . . . . . . . . . . . . . . . . . 8
2. La planificacion en I.A. 11
2.1. Definicion del problema . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Lenguajes de especificacion . . . . . . . . . . . . . . . . . . . . 13
2.2.1. STRIPS . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2. ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3. PDDL . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.4. Extensiones de PDDL . . . . . . . . . . . . . . . . . . 18
2.3. Aproximaciones a la planificacion independiente del dominio . 19
2.3.1. Planificacion de orden parcial POCL . . . . . . . . . . 20
2.3.2. Planificacion basada en grafos . . . . . . . . . . . . . . 23
2.3.3. Planificacion heurıstica . . . . . . . . . . . . . . . . . . 25
vii
2.3.4. Transformacion del problema de planificacion . . . . . 28
2.3.5. Tecnicas de descomposicion . . . . . . . . . . . . . . . 32
2.3.6. Tecnicas hıbridas de planificacion . . . . . . . . . . . . 33
2.4. Aproximaciones a la planificacion dependiente del dominio . . 34
2.4.1. Reglas de control . . . . . . . . . . . . . . . . . . . . . 35
2.4.2. Redes de tareas jerarquicas . . . . . . . . . . . . . . . . 36
2.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3. Planificacion practica 41
3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2. Percepcion del entorno . . . . . . . . . . . . . . . . . . . . . . 46
3.2.1. Monitorizacion de la ejecucion . . . . . . . . . . . . . . 47
3.2.2. Acciones de sensorizacion . . . . . . . . . . . . . . . . 49
3.3. Tecnicas de planificacion practica . . . . . . . . . . . . . . . . 53
3.3.1. Planificacion conforme . . . . . . . . . . . . . . . . . . 54
3.3.2. Planificacion contingente . . . . . . . . . . . . . . . . . 56
3.3.3. Planificacion reactiva . . . . . . . . . . . . . . . . . . . 60
3.3.4. Sistemas de planificacion y ejecucion . . . . . . . . . . 63
3.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4. Arquitectura del sistema 71
4.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2. Descripcion del sistema . . . . . . . . . . . . . . . . . . . . . . 74
4.2.1. Agentes de planificacion . . . . . . . . . . . . . . . . . 75
4.2.2. Agentes externos . . . . . . . . . . . . . . . . . . . . . 78
4.2.3. Simulacion del entorno . . . . . . . . . . . . . . . . . . 78
4.3. Lenguaje de modelizacion . . . . . . . . . . . . . . . . . . . . 82
4.3.1. Incertidumbre sobre el estado inicial . . . . . . . . . . 83
4.3.2. Acciones de sensorizacion . . . . . . . . . . . . . . . . 85
4.3.3. Acciones no deterministas . . . . . . . . . . . . . . . . 86
4.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5. Planificacion heurıstica en tiempo real 91
5.1. Motivacion del algoritmo propuesto . . . . . . . . . . . . . . . 92
5.2. Notacion y terminologıa . . . . . . . . . . . . . . . . . . . . . 95
5.2.1. Extensiones numericas . . . . . . . . . . . . . . . . . . 95
5.2.2. Estados . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.3. Acciones . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2.4. Sensorizacion . . . . . . . . . . . . . . . . . . . . . . . 100
5.2.5. Planes . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
viii
5.3. Esquema general del algoritmo de planificacion . . . . . . . . . 105
5.4. Etapa de preproceso . . . . . . . . . . . . . . . . . . . . . . . 110
5.5. Grafo relajado de planificacion . . . . . . . . . . . . . . . . . . 113
5.5.1. Incertidumbre sobre el estado actual . . . . . . . . . . 115
5.5.2. Manejo de funciones numericas . . . . . . . . . . . . . 116
5.5.3. Manejo de acciones de sensorizacion . . . . . . . . . . . 120
5.5.4. Coste computacional de las extensiones propuestas . . 123
5.6. Calculo de planes mono-objetivo . . . . . . . . . . . . . . . . . 125
5.6.1. Calculo de un plan inicial mono-objetivo . . . . . . . . 126
5.6.2. Fase de refinamiento . . . . . . . . . . . . . . . . . . . 132
5.6.3. Coste computacional del calculo de los planes mono-
objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.7. Ordenacion de planes . . . . . . . . . . . . . . . . . . . . . . . 141
5.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6. Evaluacion y experimentacion 149
6.1. Variables numericas y criterios de optimizacion . . . . . . . . . 150
6.2. Incertidumbre y acciones de sensorizacion . . . . . . . . . . . . 153
6.3. Comportamiento anytime . . . . . . . . . . . . . . . . . . . . 157
6.4. Planificacion on-line . . . . . . . . . . . . . . . . . . . . . . . 168
6.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
7. Conclusiones y trabajo futuro 183
7.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.2. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.2.1. Aproximacion propuesta . . . . . . . . . . . . . . . . . 185
7.2.2. Contribuciones de la tesis . . . . . . . . . . . . . . . . 187
7.3. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . 189
A. Descripcion de dominios de planificacion clasicos 193
A.1. El mundo de bloques . . . . . . . . . . . . . . . . . . . . . . . 193
A.2. Logistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
A.3. Depots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
A.4. DriverLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.5. MailDelivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
ix
Indice de tablas
5.1. Tiempo de computo de la etapa de preproceso. El numero de
literales y acciones instanciadas ofrecen una medida de la com-
plejidad del problema. . . . . . . . . . . . . . . . . . . . . . . 114
5.2. Numero de grafos relajados y tiempo medio empleado en su
construccion para distintos problemas de planificacion. La ulti-
ma columna muestra el porcentaje del tiempo total de planifi-
cacion que supone la generacion de estos grafos. . . . . . . . . 124
5.3. Numero total de planes iniciales y etapas de refinamiento cal-
culadas para diversos problemas clasicos de planificacion. . . . 141
5.4. Numero total de etapas de busqueda y de nodos expandidos
para varios problemas numericos de planificacion. . . . . . . . 142
6.1. Comparacion entre la extension numerica propuesta y la aproxi-
macion tradicional (siguiendo el formato propuesto/tradicional).
La calidad depende de la metrica del problema (un valor mayor
representa un plan mas costoso) y el tiempo se mide en segundos.151
6.2. Resultados para los cuatro casos definidos en el primer escenario.154
6.3. Resultados para los cuatro casos definidos en el segundo escenario.156
6.4. Soluciones encontradas en 20 segundos para problemas del Mun-
do de Bloques. La talla del problema representa el numero de
bloques en el problema. . . . . . . . . . . . . . . . . . . . . . . 160
6.5. Soluciones encontradas en 20 segundos para problemas del do-
minio Depots. . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.6. Soluciones encontradas en 20 segundos para problemas del do-
minio Satellite. . . . . . . . . . . . . . . . . . . . . . . . . . . 163
6.7. Soluciones encontradas en 20 segundos para problemas del do-
minio ZenoTravel. . . . . . . . . . . . . . . . . . . . . . . . . . 164
x
6.8. Soluciones encontradas en 60 segundos para problemas de la
version numerica del dominio Depots. . . . . . . . . . . . . . . 165
6.9. Soluciones encontradas en 60 segundos para problemas de la
version numerica del dominio ZenoTravel. . . . . . . . . . . . . 167
xi
Indice de figuras
2.1. Esquema general de un problema de planificacion . . . . . . . 12
2.2. Solucion al problema de la anomalıa de Sussman (version de
un operador) mediante un algoritmo POP. Las lıneas continuas
representan enlaces causales, mientras que las discontinuas son
ordenaciones introducidas para resolver amenazas. . . . . . . . 22
2.3. Grafo de planificacion para un problema del mundo de bloques
(version de un operador). Inicialmente, el bloque B esta sobre
el A, y el objetivo es obtener la torre inversa. . . . . . . . . . . 24
2.4. Modelizacion logica de un problema del mundo de bloques (ver-
sion de un operador). El plan se obtiene mediante la instancia-
cion de los dos predicados move. . . . . . . . . . . . . . . . . . 29
3.1. Planificacion clasica vs. planificacion practica: principales sim-
plificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2. Shakey: el primer sistema de planificacion y ejecucion . . . . . 46
3.3. Problema de navegacion de un robot en el que existe incerti-
dumbre sobre la existencia de varios obstaculos. . . . . . . . . 55
3.4. Arquitectura ERE para el calculo y la ejecucion de planes re-
activos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5. Esquema de planificacion off-line. El planificador se invoca una
vez y genera un plan que ejecutara el reactor. . . . . . . . . . 63
3.6. Esquema de planificacion y ejecucion alternadas. . . . . . . . . 66
3.7. Modelos de planificacion y ejecucion concurrente: a) El plani-
ficador recibe informacion del entorno pero trabaja aislado. b)
El planificador incorpora continuamente informacion del entorno. 67
4.1. Robot movil (modelo Pioneer 2) empleado en el sistema. . . . 71
xii
4.2. El entorno actua como un recurso compartido sobre el que varios
agentes pueden actuar simultaneamente. . . . . . . . . . . . . 75
4.3. Arquitectura de un agente de planificacion. . . . . . . . . . . . 77
4.4. Arquitectura de VirtualRobot Simulator. . . . . . . . . . . . . 80
4.5. Simulacion del problema de reparto de correo en una planta de
despachos mediante VirtualRobot Simulator. . . . . . . . . . . 81
4.6. Posibles estados iniciales derivados de una especificacion inicial
incompleta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1. Esquema funcional del algoritmo de planificacion. . . . . . . . 93
5.2. Diagrama de secuencia del funcionamiento on-line de los agentes
de planificacion. . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.3. Ejemplo de transicion entre estados producida por la ejecucion
de una accion y en ausencia de eventos inesperados. Puede ob-
servarse tambien que la accion a es aplicable en S. . . . . . . . 101
5.4. Ejemplo de transicion entre estados producida por la ejecucion
de una accion de sensorizacion en ausencia de eventos inesperados.103
5.5. Esquema general del algoritmo de planificacion. El ejecutor in-
teracciona con el planificador para solicitarle acciones y para
notificarle la informacion adquirida del entorno. . . . . . . . . 107
5.6. Expansion tradicional del RPG. . . . . . . . . . . . . . . . . . 115
5.7. Algoritmo de expansion del RPG considerando la incertidumbre
en los valores logicos de las proposiciones. . . . . . . . . . . . 116
5.8. Expansion del RPG considerando la metrica del problema. . . 119
5.9. Algoritmo para la insercion en el RPG de los efectos de las
acciones de sensorizacion. . . . . . . . . . . . . . . . . . . . . 122
5.10. Calculo incremental de un plan Pi independiente para cada ob-
jetivo del problema. . . . . . . . . . . . . . . . . . . . . . . . . 125
5.11. Funcion para comprobar si p es una proposicion necesaria para
un plan P = {a0, . . . , an} y un conjunto de objetivos G. . . . . 126
5.12. Proceso de calculo de un plan inicial para un objetivo proposi-
cional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.13. Tomando como primera accion las acciones ejecutables en el es-
tado actual (ai1, . . . , a1n) se escoge el plan resultante que mejor
calidad ofrece. . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
xiii
5.14. Representacion grafica de las acciones de Pi y de los estados so-
bre los que se aplican, de forma que result(aj, Sj, ∅) = Sj+1, ∀aj ∈Pi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.15. Primer paso en la resolucion de una precondicion proposicional
no satisfecha pfail: se genera un plan Pi,j para alcanzar pfail
desde cada estado Sj, 0 ≤ j ≤ fail. . . . . . . . . . . . . . . . 135
5.16. Segundo paso en la resolucion de una precondicion proposicional
no satisfecha pfail: se genera un plan Pi,j,k desde cada estado S ′jhasta un estado Sk, j≤k≤fail de Pi. . . . . . . . . . . . . . . . . 135
5.17. Los planes Pi,1,k no se generan puesto que el plan Pi,1 comienza
por la accion a1. . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.18. Los planes Pi,0,0, Pi,0,1 y Pi,1,1 no se generan puesto que a1 eli-
mina el literal pfail. . . . . . . . . . . . . . . . . . . . . . . . . 137
5.19. Division en bloques de los planes mono-objetivo calculados para
el problema de la anomalıa de Sussman. . . . . . . . . . . . . 145
6.1. Estado inicial del primer escenario propuesto. . . . . . . . . . 153
6.2. Estado inicial del mundo para el segundo escenario. . . . . . . 155
6.3. Planes calculados para un problema del dominio Rovers, incre-
mentando progresivamente el tiempo maximo para el calculo de
cada accion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
6.4. Planes calculados para un problema del dominio ZenoTravel, in-
crementando progresivamente el tiempo maximo para el calculo
de cada accion. . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.5. Calidad y tiempo promedio de las soluciones obtenidas en 10
segundos para problemas del dominio Mundo de Bloques. . . . 161
6.6. Calidad y tiempo promedio de las soluciones obtenidas en 10
segundos para problemas del dominio Depots. . . . . . . . . . 162
6.7. Calidad y tiempo promedio de las soluciones obtenidas en 10
segundos para problemas del dominio Satellite. . . . . . . . . . 163
6.8. Calidad y tiempo promedio de las soluciones obtenidas en 10
segundos para problemas del dominio ZenoTravel. . . . . . . . 165
6.9. Calidad y tiempo promedio de las soluciones obtenidas en 10
segundos para problemas de la version numerica del dominio
Depots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
xiv
6.10. Calidad y tiempo promedio de las soluciones obtenidas en 10
segundos para problemas de la version numerica del dominio
ZenoTravel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.11. Primer problema de navegacion: el robot debe moverse de la
celda inicial (S) hasta la celda objetivo (G). . . . . . . . . . . 169
6.12. El robot se encuentra un obstaculo en la celda (26,11). . . . . 170
6.13. El robot se encuentra un obstaculo en la celda (30,14). . . . . 171
6.14. El robot alcanza la celda objetivo. . . . . . . . . . . . . . . . . 171
6.15. Tiempo de computo de cada accion para el primer problema de
navegacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
6.16. Segundo problema de navegacion: el objetivo se modifica antes
de que el robot alcance la celda objetivo (G). . . . . . . . . . . 173
6.17. Nueva ruta para alcanzar el objetivo y nuevo cambio de objetivo.174
6.18. El robot alcanza la celda objetivo. . . . . . . . . . . . . . . . . 174
6.19. Tiempo de computo de cada accion para el segundo problema
de navegacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
6.20. Estado inicial de los problemas del dominio de manipulacion. . 176
6.21. Estado objetivo del primer problema del dominio de manipulacion.176
6.22. Primer evento inesperado: el objeto p7 cae sobre la mesa table4. 177
6.23. Segundo evento inesperado: en lugar de ensamblar p5 a la dere-
cha de p3 se ensambla a la derecha de p2. . . . . . . . . . . . . 177
6.24. Tiempo de computo de cada accion para el primer problema de
manipulacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6.25. Estado inicial y objetivo del segundo problema de manipulacion. 179
6.26. Primer cambio en el objetivo del segundo problema de manipu-
lacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.27. Segundo cambio en el objetivo del segundo problema de mani-
pulacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.28. Tiempo de computo de cada accion para el segundo problema
de manipulacion. . . . . . . . . . . . . . . . . . . . . . . . . . 180
A.1. Problema del mundo de bloques: la anomalıa de Sussman . . . 195
A.2. Estado inicial del problema logistics-4-0 del dominio Logistics. 198
A.3. Estado inicial del problema depotprob1818 del dominio Depots. 200
A.4. Estado inicial del problema DLOG-2-2-2 del dominio DriverLog. 204
xv
A.5. Estado inicial del problema ejemplo del dominio MailDelivery. 208
xvi
Resumen
La investigacion en planificacion independiente del dominio se ha centrado
durante mucho tiempo en el desarrollo de tecnicas de busqueda eficientes,
orientadas generalmente a encontrar una secuencia optima (o proxima a la
optima) de acciones que conduzca al sistema desde el estado actual hasta el
estado objetivo. El problema de la planificacion independiente del dominio, sin
embargo, es un problema muy complejo. Por ello, aunque los planificadores mas
recientes, sobretodo aquellos basados en la planificacion heurıstica, son muy
rapidos, necesitan todavıa varios minutos para resolver muchos problemas de
tamano medio/grande. Existen, sin embargo, numerosas aplicaciones reales,
como el control de robots moviles o los agentes de inteligencia artificial en
juegos de ordenador y simulaciones, en las que un tiempo de computo excesivo
no es admisible.
Un tiempo de respuesta acotable no es el unico requerimiento en este tipo
de aplicaciones. Es frecuente, por ejemplo, que el planificador no pueda acce-
der a toda la informacion del entorno. Algo todavıa mas probable es que el
mundo cambie constantemente, ya que el planificador no es el unico agente
capaz de actuar sobre el mundo y modificarlo. Estas son, entre otras, las ca-
racterısticas que hacen que los planificadores clasicos no sean la mejor opcion
para la resolucion de este tipo de problemas.
Las nuevas tecnicas de planificacion capaces de afrontar las dificultades
de este tipo de dominios (o, al menos, algunas de ellas) se enmarcan dentro
de la planificacion practica. En este trabajo de tesis, que se enmarca dentro
de esta vertiente practica de la planificacion, se propone una aproximacion
basada en la integracion de los procesos de planificacion y ejecucion. De esta
forma, el planificador puede incorporar en sus planes la informacion adquirida
del entorno durante la ejecucion.
xvii
xviii
El algoritmo de planificacion propuesto se basa en varias tecnicas de plani-
ficacion clasicas bien conocidas, como es el calculo de heurısticas y la descom-
posicion de objetivos, pero combinadas de una forma novedosa. Este algoritmo
proporciona una serie de caracterısticas muy utiles para la planificacion en mu-
chos entornos reales: en primer lugar, ofrece un comportamiento muy similar
al de los algoritmos anytime, proporcionando una primera respuesta en un pe-
riodo de tiempo limitado, y refinandola mientras haya tiempo disponible. Este
comportamiento le permite reaccionar rapidamente ante eventos inesperados y
modificaciones en los objetivos durante la ejecucion. Permite tambien resolver
problemas con informacion incompleta mediante el uso de acciones de senso-
rizacion, y soporta el uso de variables numericas y la definicion de funciones
de optimizacion.
Abstract
The research in independent-domain planning has focused on the deve-
lopment of efficient search techniques. They are mainly focused on finding an
optimal sequence (sub-optimal) of actions to guide the system from the current
state to the goal state. However, the independent-domain planning problem is
a very complex problem. Moreover, even the more recent planners work very
fast (overall, those based on heuristic planning), they already need several mi-
nutes to solve medium/large-scale problems. Furthermore, there exist many
real problems, such as mobile robot control or artificial intelligence agents in
computer games and simulations that do not allow excessive running time.
A limited response time is not the unique requirement in this type of sys-
tems. For instance, it is usual that no information is available by the planner.
Continuous changes in the environment are even more probably, due to the
planner is not the only one able to act and change the environment. These are,
among others, the main characteristics that do not make appropriate classic
planner for solving these types of problems.
The new planning techniques aimed at facing up the problems in this type
of domains (or, at least, some of them) are classified as practical planning.
This work has been developed under this frame, and it proposes an approach
based on the integration of the planning and execution processes. This way,
the planner can include in its plans information acquired from the environment
during the execution.
The proposed planning algorithm relies on some well-known classical plan-
ning techniques, as the computation of heuristics and the goal decomposition,
but combined in a novel way. This algorithm provides many useful features
for planning in many real environments: first, its behaviour is quite similar
to the anytime algorithms, computing a first solution in a limited time and
xix
xx
improving that solution while there is available time. This behaviour allows
fast reactions when unexpected events occur and the goals are changed during
the execution. The proposed algorithm can handle problems with incomplete
information by using sensing actions, and it also manages numeric variables
and optimization functions.
Resum
La investigacio en planificacio independent del domini hi ha centrat du-
rant molt de temps en el desenvolupament de tecniques de recerca eficients,
orientades generalment a trobar una sequencia optima (o proxima a l’optima)
d’accions que conduısca al sistema des de l’estat actual fins a l’estat objec-
tiu. El problema de la planificacio independent del domini, no obstant, es un
problema molt complex. Per aixo, encara que els planificadors mes recents, so-
bretot aquells basats en la planificacio heurıstica, son molt rapids, necessiten
encara alguns minuts per a resoldre molts problemes de tamany mitja/gran.
Existixen, no obstant, nombroses aplicacions reals, com el control de robots
mobils o els agents d’intel·ligencia artificial en jocs d’ordinador i simulacions,
en les que un temps de comput excessiu no es admissible.
Un temps de resposta acotable no es l’unic requeriment en aquest tipus
d’aplicacions. Es frequent, per exemple, que el planificador no puga accedir a
tota la informacio de l’entorn. Una cosa encara mes probable es que el mon
canvie constantment, ja que el planificador no es l’unic agent capac d’actuar
sobre el mon i modificar-lo. Estes son, entre altres, les caracterıstiques que fan
que els planificadors classics no siguen la millor opcio per a la resolucio d’este
tipus de problemes.
Les noves tecniques de planificacio capacos d’afrontar les dificultats d’este
tipus de dominis (o, almenys, algunes de elles) s’emmarquen dins de la pla-
nificacio practica. En este treball de tesi, que s’emmarca dins d’esta vessant
practica de la planificacio, es proposa una aproximacio basada en la inte-
gracio dels processos de planificacio i execucio. D’esta forma, el planificador
pot incorporar en els seus plans la informacio adquirida de l’entorn durant
l’execucio.
xxi
xxii
L’algoritme de planificacio proposat es basa en diverses tecniques de pla-
nificacio classiques ben conegudes, com es el calcul de heurıstiques i la des-
composicio d’objectius, pero combinades de una forma nova. Este algoritme
proporciona una serie de caracterıstiques molt utils per a la planificacio en
molts entorns reals: en primer lloc, oferix un comportament molt semblant al
dels algoritmes anytime, proporcionant una primera resposta en un perıode de
temps limitat, i refinant-la mentres hi haja temps disponible. Este compor-
tament li permet reaccionar rapidament davant d’esdeveniments inesperats i
modificacions en els objectius durant l’execucio. Permet tambe resoldre pro-
blemes amb informacio incompleta per mitja de l’us d’accions de sensoritzacio,
i suporta l’us de variables numeriques i la definicio de funcions d’optimacio.
Capıtulo 1
Introduccion
Este trabajo de tesis se enmarca en el area de planificacion en Inteligencia
Artificial. Informalmente, un problema de planificacion consiste en encontrar
una secuencia de acciones que permita, partiendo del estado actual del entorno,
alcanzar un determinado estado objetivo.
La resolucion de un problema de planificacion puede verse, basicamente,
como un problema de busqueda en un espacio de estados o de planes (parcial-
mente resueltos). Por tanto, el objetivo de un planificador consiste en explorar
este estado de la forma mas eficiente posible, o bien en reducir este espacio al
maximo de manera que la busqueda sea menos costosa. En cualquier caso, es
necesario recurrir a tecnicas sofisticadas para resolver el problema.
En la seccion 1.1 se realiza un breve recorrido por las distintas tecnicas que
han surgido desde el comienzo de esta disciplina. En la seccion 1.2 se exponen
los objetivos que nos han llevado a realizar este trabajo de tesis. El apartado
1.3 muestra las principales aportaciones de este trabajo. Finalmente, en la
seccion 1.4 se resumen los distintos capıtulos que componen esta tesis.
1.1. Antecedentes
La Inteligencia Artificial puede definirse como ”el arte de crear maqui-
nas con capacidad de realizar funciones que realizadas por personas requieren
inteligencia”[Rich y Knight 1991]. Segun [Bellman 1978], la Inteligencia Ar-
tificial es ”la automatizacion de actividades que vinculamos con procesos de
pensamiento humano, actividades como la toma de decisiones, resolucion de
1
2 1.1. Antecedentes
problemas, aprendizaje, ...”.
La historia de esta disciplina comienza formalmente en 1956, cuando se
acuno el termino Inteligencia Artificial (I.A.), aunque ya se investigaba en este
area desde hacıa varios anos. En los inicios de esta disciplina, los cientıficos
perseguıan un objetivo muy ambicioso: construir una maquina inteligente. Sin
embargo, la I.A. ha resultado ser algo mucho mas complejo de lo que muchos
imaginaron en un principio. A medida que la investigacion fue avanzando,
se observo que el razonamiento generico solo se podıa alcanzar mediante la
comprension de ejemplos mas especıficos de razonamiento humano. Por ello,
la I.A. se dividio en diversos campos, cada uno de ellos dedicado a distintas
areas del razonamiento aplicado a la resolucion de problemas concretos. Uno
de esos campos es la planificacion.
1.1.1. Breve resena historica
Las raıces de la planificacion en I.A. se encuentran en la resolucion de
problemas mediante la busqueda en un espacio de estados y otras tecnicas
similares (GPS [Newell y Simon 1963], QA3 [Green 1969], etc.), y en las nece-
sidades de la robotica. De hecho, se considera que la planificacion como campo
especıfico surgio hace tres decadas con el primer sistema de planificacion im-
portante: STRIPS (STanford Research Institute Problem Solver [Fikes y Nils-
son 1971]). Este planificador se diseno para controlar a Shakey, un robot que
deambulaba por las instalaciones del SRI. STRIPS realizo contribuciones muy
importantes, como la definicion de un lenguaje de especificacion de problemas
de planificacion que ha servido como base para otros lenguajes considerados
ahora como estandar.
A partir de STRIPS se produjo un importante auge dentro del area, del
que surgieron numerosos planificadores como NOAH [Sacerdoti 1975], SNLP
[McAllester y Rosenblitt 1991], O-Plan [Currie y Tate 1991], UCPOP [Pen-
berthy y Weld 1992], etc. En toda esta labor investigadora se pueden observar
dos tendencias claras:
• Por un lado, los planificadores orientados a aplicaciones (tambien de-
nominados dependientes del dominio) obtienen resultados excelentes en
dominios especıficos. Sin embargo, las tecnicas desarrolladas en estos
sistemas no son reutilizables en otros contextos.
1. Introduccion 3
• Por otro lado, las aproximaciones no orientadas a aplicaciones (tambien
denominadas independientes del dominio) resuelven un conjunto limi-
tado de problemas, pero las tecnicas que se desarrollan son totalmente
generales y reutilizables.
Las grandes diferencias entre el rendimiento de los planificadores de ambas
tendencias provoca una tension que contribuye a dirigir la investigacion en
planificacion independiente del dominio hacia la solucion de problemas mas
complejos. A principios de loa anos 90, la mayorıa de planificadores se basan
en el modelo de planificacion de orden parcial (que define los planes sin ne-
cesidad de establecer un orden entre todas sus acciones), y ninguno de ellos
puede generar planes de mas de 30 acciones [Long y Fox 2002]. Esta situacion,
sin embargo, cambio radicalmente con la aparicion en 1995 del planificador
Graphplan [Blum y Furst 1997], que seguıa una nueva aproximacion basada en
grafos. El exito de Graphplan revitalizo la investigacion en el area de la pla-
nificacion independiente del dominio, lo que propicio el desarrollo de nuevos
sistemas basados en tecnicas diferentes de las empleadas tradicionalmente:
• En [Kautz y Selman 1996] se demostro que un algoritmo de satisfac-
tibilidad era capaz de mejorar el rendimiento de Graphplan y de otros
algoritmos especialmente disenados para trabajar con problemas de pla-
nificacion.
• En [Bonet y Geffner 2001a] se mostro que la utilizacion de tecnicas de
busqueda heurıstica en los algoritmos de planificacion permitıa obtener
resultados muy interesantes.
En los ultimos anos, el rendimiento de las tecnicas independientes del do-
minio ha experimentado mejoras significativas. Los nuevos planificadores de-
sarrollados, como FF [Hoffman y Nebel 2001], LPG [Gerevini y Serina 2000]
o SGPlan [Chen et al. 2004], permiten resolver problemas mas complejos, lo
que se traduce en importantes avances en el area.
1.1.2. Perspectiva actual
Durante muchos anos, los esfuerzos de investigacion en el area de planifica-
cion se centro en la busqueda de soluciones optimas. Debido a la intratabilidad
4 1.1. Antecedentes
del problema de planificacion, los algoritmos desarrollados solo eran capaces de
resolver problemas muy sencillos. Para facilitar esta labor, se impusieron una
serie de restricciones que pocas veces se satisfacen en aplicaciones reales como,
por ejemplo, que el mundo es estatico, determinista y totalmente observable
[Veloso et al. 1998]. El mundo se considera estatico si no cambia mientras el
planificador esta calculando el plan y, durante la ejecucion del plan, solo cam-
bia de acuerdo con el resultado de las acciones del plan. Determinista implica
que las acciones tienen un resultado bien definido y conocido por el planifica-
dor. Finalmente, totalmente observable indica que el planificador conoce todos
los hechos relevantes del entorno.
Durante los ultimos diez anos, un numero cada vez mayor de investigadores
se ha dado cuenta de que estas asunciones no son validas para muchos de los
problemas reales de planificacion. Consecuentemente, comenzaron a aparecer
nuevas tecnicas para relajar algunas de ellas. La planificacion condicional [Peot
y Smith 1992] [Collins y Pryor 1995], por ejemplo, elimina la necesidad de que
el planificador tenga un conocimiento completo del mundo, mientras que la
planificacion probabilıstica [Goldman y Boddy 1994b] [Kushmerick et al. 1995]
permite trabajar con acciones no deterministas.
Menos numerosos son los trabajos orientados a suprimir la asuncion de que
el mundo es estatico. Una aproximacion consiste en utilizar tecnicas para la
planificacion con incertidumbre, tratando anticipadamente los posibles eventos
exogenos que pueden ocurrir en el mundo [Blythe 1998]. Esta aproximacion, sin
embargo, puede resultar extremadamente costosa cuando el numero de eventos
posibles es elevado. Otra aproximacion es la planificacion reactiva [Firby 1994].
Esta aproximacion es, generalmente, dependiente del dominio, y consiste en
calcular el comportamiento del planificador ante las posibles situaciones en las
que puede verse envuelto.
Probablemente, una de las aproximaciones independientes del dominio mas
eficientes para la planificacion en entornos dinamicos es la integracion del pro-
ceso de planificacion y ejecucion [Ambros-Ingerson y Steel 1988]. El planifi-
cador genera progresivamente un plan al mismo tiempo que se ejecutan las
partes del plan que ya han sido calculadas. De esta forma, el planificador pue-
de incorporar informacion que solo esta disponible en tiempo de ejecucion, y
puede reaccionar ante cualquier situacion inesperada (sin necesidad de haberla
1. Introduccion 5
previsto anticipadamente).
Esta aproximacion, sin embargo, requiere unos tiempos de respuesta ra-
zonables para evitar saltos en la ejecucion. Muchos sistemas reales, ademas,
necesitan que las acciones se lleven a cabo dentro de un plazo de tiempo limi-
tado. En estos sistemas, que reciben el nombre de sistemas de tiempo real, el
tiempo que se tarda en obtener la respuesta es tan importante o mas que la
respuesta en sı misma. Una consecuencia importante de los algoritmos de pla-
nificacion en tiempo real es, por lo tanto, que no garantizan que se encuentre
la solucion optima.
La tendencia de desarrollar planificadores muy eficientes que ofrezcan so-
luciones suboptimas es bien patente en la actualidad. La mayorıa de planifica-
dores actuales, como Metric-FF [Hoffman 2003] o SGPlan [Chen et al. 2004],
estan disenados con este objetivo. Una solucion mas flexible la ofrecen los pla-
nificadores basados en el paradigma anytime [Zilberstein y Russell 1996]: el
planificador dispone en todo momento de una solucion cuya calidad va mejo-
rando mientras haya tiempo disponible. Este comportamiento es complejo de
obtener, por lo que apenas existen planificadores independientes del dominio
basados en esta tecnica.
1.2. Motivacion y objetivos
El objetivo principal de esta tesis es el diseno y la implementacion de
un algoritmo de planificacion que permita afrontar eficientemente muchos de
los problemas potenciales que pueden surgir en aplicaciones reales. Estos pro-
blemas son, principalmente, la falta de informacion completa y fiable sobre el
entorno, la aparicion de situaciones inesperadas y de cambios en los objetivos,
y la existencia de restricciones en los tiempos de respuesta del planificador.
Pese a la existencia de diversas aproximaciones que permiten resolver estos
problemas por separado, son muy pocos los sistemas de planificacion que pue-
den resolverlos de forma conjunta. Estos sistemas necesitan, sin embargo, la
ayuda del usuario, bien para que le facilite cierta informacion especıfica sobre
el problema, o bien para que le ayude en la toma de decisiones. Un segundo
objetivo del algoritmo de planificacion que queremos desarrollar es que tenga
6 1.2. Motivacion y objetivos
un funcionamiento autonomo e independiente del dominio. Estas caracterısti-
cas son de gran utilidad cuando el sistema que se controla es autonomo y capaz
de realizar tareas muy diversa ındole. Este es el caso, por ejemplo, del empleo
de tecnicas de planificacion para controlar robots moviles.
Otra caracterıstica importante de muchas aplicaciones practicas de plani-
ficacion es la necesidad de trabajar con recursos. Estos recursos se modelan
generalmente mediante variables y funciones numericas. De esta forma se pue-
de expresar el nivel de baterıa de un robot, la capacidad de un contenedor, la
distancia entre dos puntos, etc. El tercer objetivo de este trabajo consiste en
adaptar el algoritmo de planificacion para manejar las extensiones numericas
de PDDL 2.1. Estas extensiones, ademas, permiten definir diversos criterios
numericos de optimizacion. El planificador, por lo tanto, puede tratar de opti-
mizar una funcion que se adapte mejor a los requerimientos del problema, en
lugar de emplear siempre una misma funcion definida a priori (la mayorıa de
planificadores clasicos tratan de minimizar la longitud o la duracion final del
plan).
La integracion del planificador en un entorno real (incluso en un entorno
simulado) requiere necesariamente un modulo encargado de la ejecucion y mo-
nitorizacion de los planes. El cuarto objetivo consiste en el desarrollo de una
arquitectura que permita integrar el algoritmo de planificacion y el modulo de
ejecucion. Ademas, esta arquitectura debe proporcionar una interfaz sencilla
para una rapida adaptacion del sistema de planificacion a diferentes dominios
de aplicacion. Pese que el algoritmo de planificacion es independiente del do-
minio, es necesario realizar un esfuerzo considerable para enlazar el modulo de
ejecucion con el sistema a controlar.
El quinto objetivo de este trabajo es analizar y evaluar el comporta-
miento del sistema desarrollado. Por una parte, demostrar que el algoritmo de
planificacion es competitivo respecto a otros planificadores independientes del
dominio actuales. Por otra parte, obtener resultados empıricos que muestren
las ventajas de nuestro sistema en situaciones adversas: aparicion de eventos
inesperados, cambios en los objetivos, restricciones de tiempo, falta de infor-
macion sobre el entorno, etc.
Finalmente, el trabajo de esta tesis tambien ha venido motivado por las
necesidades surgidas en diversos proyectos de investigacion, realizados en el
1. Introduccion 7
grupo de investigacion al que pertenece el autor (y en los que el mismo ha
participado). La investigacion desarrollada en esta tesis esta enmarcada, entre
otros, en los siguientes proyectos:
• Sistema adaptativo multiagente de planificacion dependiente del contexto,
MCyT TIC2002-04146-C05-04 (Diciembre 2002 - Diciembre 2005).
• Planificacion y replanificacion de actividades de un robot movil en tiempo
real, Vicerrectorado de Investigacion y Desarrollo Tecnologico, proyecto
interdisciplinar No. 20020681 (Septiembre 2002 - Agosto 2004).
• Diseno y aplicacion de modelos de integracion y tecnicas avanzadas de
planificacion y scheduling, CTIDIB/2002/112 (Enero 2002 - Diciembre
2003).
• Sistema inteligente para la planificacion y asignacion de recursos en un
entorno multiagente, MCyT DPI2001-2094-C03-03 (Enero 2002 - Junio
2004).
1.3. Aportaciones de la tesis
Las principales aportaciones de este trabajo de tesis son las siguientes:
1. Revision del estado del arte en el area de planificacion, prestando espe-
cial atencion a las tecnicas independientes del dominio y a las nuevas
aproximaciones que se han desarrollado para superar algunas de las sim-
plificaciones clasicas de la planificacion.
2. Definicion de una arquitectura que permite integrar los procesos de plani-
ficacion y ejecucion. Esta arquitectura no solo facilita la portabilidad del
planificador a aplicaciones reales, sino que permite la simulacion de dis-
tintos entornos para poder evaluar su comportamiento de forma sencilla.
En concreto, se ha utilizado la herramienta VirtualRobot Simulator para
simular de forma grafica la ejecucion de planes en diversos problemas de
robots moviles.
8 1.4. Organizacion del trabajo
3. Diseno de varias extensiones generales del grafo relajado de planificacion.
Este grafo se emplea en la mayorıa de planificadores heurısticos actuales
y permite la obtencion de informacion heurıstica a partir de una formu-
lacion relajada del problema de planificacion original. Las extensiones
propuestas incorporan nuevas caracterısticas como el coste de las accio-
nes respecto a la funcion de optimizacion del problema, la incertidumbre
sobre algunas proposiciones y el manejo de acciones de sensorizacion.
Estas extensiones proporcionan informacion adicional que el planifica-
dor puede utilizar para mejorar la calidad de los planes generados.
4. Desarrollo de una tecnica de planificacion basada en la descomposicion
de objetivos. Esta tecnica permite centrar la atencion del planificador en
el calculo de las siguientes acciones a ejecutar en lugar de elaborar un
plan completo que frecuentemente se vera invalidado por el dinamismo
del entorno. De esta forma, el planificador es capaz de obtener una res-
puesta (accion a ejecutar) en un intervalo acotado de tiempo y de refinar
dicha respuesta mientras haya tiempo disponible. Ambas caracterısticas,
propias de los algoritmos anytime, resultan de gran importancia en apli-
caciones reales en las que el tiempo de respuesta es un factor relevante.
5. Evaluacion del sistema de planificacion desarrollado. La orientacion practi-
ca de este planificador hace que esta evaluacion tenga un enfoque distinto
a la de los planificadores clasicos: el estudio se centra el comportamien-
to dinamico del planificador, es decir, en la resolucion de los distintos
problemas que pueden surgir durante la ejecucion de un plan. Para ello,
se evaluara la ejecucion de acciones de sensorizacion, la calidad de las
respuestas en funcion del tiempo de computo disponible, y el tiempo de
reaccion ante eventos inesperados y cambios en los objetivos.
1.4. Organizacion del trabajo
Este trabajo se organiza como sigue:
• Capıtulo 1. Introduccion
En este capıtulo se realiza un breve resumen historico de la disciplina de
planificacion en I.A. Se concreta tambien la motivacion y los objetivos de
1. Introduccion 9
este trabajo de tesis, junto con sus principales aportaciones. Por ultimo,
se incluye el presente apartado en el que se muestra la organizacion de
esta memoria.
• Capıtulo 2. La planificacion en I.A.
Este capıtulo presenta la definicion del problema de planificacion, sus
clasificaciones y distintos lenguajes utilizados para la especificacion de
problemas. Asimismo, se resumen las principales tendencias existentes
dentro de la planificacion clasica, centrandose tanto en la vertiente inde-
pendiente del dominio como en la dependiente del dominio.
• Capıtulo 3. Planificacion practica
En este capıtulo se describe el concepto de planificacion practica. Se
describe tambien uno de los mecanismos basicos de muchas de las apro-
ximaciones practicas de planificacion: la percepcion del entorno a traves
de la monitorizacion de la ejecucion y de las acciones de sensorizacion.
Por ultimo, se hace un estudio de las principales tecnicas actuales dentro
de la planificacion practica.
• Capıtulo 4. Arquitectura del sistema
Este capıtulo se centra en la arquitectura del sistema de planificacion
y ejecucion desarrollado, y en los distintos elementos que lo conforman.
Se describe tambien la forma de evaluar el comportamiento del sistema
en un entorno simulado mediante la herramienta VirtualRobot Simula-
tor. Por ultimo, se describe el lenguaje de especificacion de problemas
empleado, ası como las extensiones que se han introducido para sopor-
tar caracterısticas importantes como la incertidumbre o las acciones de
sensorizacion.
• Capıtulo 5. Planificacion heurıstica en tiempo real
Este capıtulo describe el algoritmo de planificacion propuesto. Tras una
exposicion de la notacion y la terminologıa utilizada, se comentan cada
una de las etapas de las que consta el algoritmo.
• Capıtulo 6. Evaluacion y experimentacion
10 1.4. Organizacion del trabajo
En este capıtulo se analiza el comportamiento del planificador desarro-
llado de acuerdo con las principales caracterısticas que ofrece: el manejo
de variables numericas y acciones de sensorizacion, el comportamiento
anytime, que pone de relieve la calidad de los planes obtenidos respecto al
tiempo de computo disponible, y el tiempo de reaccion ante situaciones
inesperadas y modificaciones en los objetivos.
• Capıtulo 7. Conclusiones y trabajo futuro
En este capıtulo se exponen las aportaciones mas relevantes de este tra-
bajo de tesis, y se indican algunas de las futuras lıneas de investigacion
por las que puede continuarse este trabajo.
• Apendice A. Descripcion de dominios de planificacion clasicos
Durante este trabajo de tesis se hace referencia a diversos dominios clasi-
cos de planificacion. Estos dominios ayudan a ilustrar diversas carac-
terısticas, tanto del sistema de planificacion propuesto como de otras
aproximaciones existentes. En este apendice se proporciona una breve
descripcion, ası como su especificacion en PDDL, de estos dominios.
Capıtulo 2
La planificacion en I.A.
En este capıtulo se aborda el concepto de planificacion en I.A. desde el
punto de vista mas tradicional. La primera seccion de este capıtulo se cen-
tra en proporcionar una definicion del problema de planificacion y comenta
los principales lenguajes de especificacion de problemas. El resto de secciones
abordan las diferentes tecnicas que han surgido para resolver este tipo de pro-
blemas dentro del paradigma clasico de la planificacion. Para completar este
resumen sobre el estado del arte, el siguiente capıtulo describe la problemati-
ca y las aproximaciones mas importantes para la aplicacion de tecnicas de
planificacion en problemas mas realistas.
2.1. Definicion del problema
Un problema de planificacion es un problema de busqueda que requiere
encontrar una secuencia eficiente de acciones que conducen a un sistema desde
un estado inicial hasta un estado objetivo. Desde el punto de vista de agentes
inteligentes, el campo de la planificacion busca construir algoritmos de control
que permitan a un agente sintetizar una secuencia de acciones que le lleve a
alcanzar sus objetivos [Weld 1999].
Mas formalmente, un problema de planificacion se puede definir median-
te una tupla 〈L,O, I, G〉, donde cada uno de estos elementos representa lo
siguiente (ver figura 2.1):
11
12 2.1. Definicion del problema
L = Conjunto de formulas atomicas, denominadas hechos o literales. Repre-
senta el conjunto de hechos que son relevantes en el problema.
O = Conjunto de acciones definidas en el dominio del problema.
I = Conjunto inicial de hechos que forman la situacion inicial del problema
G = Conjunto final de hechos que deben formar parte de la situacion final
del problema.
Figura 2.1: Esquema general de un problema de planificacion
El problema de planificacion independiente del dominio es un problema
muy complejo, generalmente PSPACE-completo [Bylander 1994]. Por ello no
es factible emplear tecnicas clasicas de solucion de problemas o de demostra-
cion de teoremas. Las investigaciones en el campo de la planificacion en I.A.
surgieron para proporcionar tecnicas, basadas en el razonamiento inteligente
sobre las acciones y sus consecuencias, capaces de afrontar estos problemas.
Este campo ha sido objeto de numerosos trabajos de investigacion desde los
anos 60, no solo por el desafıo que supone un problema tan complejo, sino por
la gran variedad de problemas reales a los que se puede aplicar. Entre estas
aplicaciones destacan:
• Robots moviles: este area supuso la motivacion inicial de la planifica-
cion [Fikes y Nilsson 1971] y sigue todavıa en desarrollo.
• Entornos simulados: diseno de agentes para juegos o programas de
entrenamiento [Nareyek 2004].
• Entornos de red: con el reciente auge de las redes, las tecnicas pla-
nificacion han comenzado a utilizarse para realizar consultas y servicios
2. La planificacion en I.A. 13
Web [Knoblock 2003]. Otra aplicacion importante es la organizacion de
tareas en redes computacionales [Gil et al. 2004].
• Manejo de crisis: existen numerosas aplicaciones destinadas al manejo
de situaciones desastrosas, como vertidos de petroleo, incendios foresta-
les, evacuaciones urbanas, etc. [Gervasio et al. 1998].
• Aplicaciones militares: la planificacion ha tomado parte en el diseno
de importantes campanas militares y en la toma de decisiones logısticas
y estrategicas [Chun 1999].
• Industria aeroespacial: las tecnicas de planificacion no solo se aplican
a la programacion de misiones espaciales, sino que tambien se emplean
para controlar aeronaves y vehıculos autonomos en el espacio [Jonsson
et al. 2000].
2.2. Lenguajes de especificacion
Para lograr una planificacion eficiente, es tan importante contar con buenos
lenguajes de modelizacion como con buenos algoritmos. El lenguaje STRIPS
[Fikes y Nilsson 1971] ha condicionado la gran mayorıa de trabajos sobre pla-
nificacion desde comienzos de los anos 70, debido a su efectiva solucion del
problema marco [McCarthy y Hayes 1969] y a su soporte para las estrategias
de divide-y-venceras [Geffner 2000]. En esta seccion se describe brevemente
este lenguaje, ası como sus dos extensiones mas importantes: ADL [Pednault
1989] y PDDL [McDermott 2000].
2.2.1. STRIPS
El lenguaje STRIPS (STanford Research Institute Problem Solver [Fikes
y Nilsson 1971]) surgio a principios de 1970 como un sistema de planifica-
cion para el proyecto del robot Shakey. STRIPS propone como metodo de
representacion un modelo compacto y sencillo para especificar dominios de
planificacion. Un estado S se representa como un subconjunto (S ⊆ L), indi-
cando que el literal l ∈ L es cierto si l ∈ S, y falso en caso contrario. El estado
I especifica que hechos son verdaderos y cuales son falsos en la situacion inicial
14 2.2. Lenguajes de especificacion
del problema; es decir, l ∈ L es inicialmente cierto si l ∈ I, y falso en caso
contrario. El conjunto de objetivos G se representa como una conjuncion de
hechos, que debe cumplirse en un estado objetivo. Un estado S ⊆ L es un
estado objetivo si S satisface G, es decir, si G ⊆ S.
Un operador o ∈ O se define en STRIPS como una tupla 〈Nombre, Pre,
Eff〉. Nombre es el nombre del operador y se representa mediante una ex-
presion sintactica de la forma o(X1, X2, . . . , Xn), donde cada Xi es un sımbolo
variable que recibe el nombre de parametro del operador. Pre y Eff son res-
pectivamente las precondiciones y los efectos del operador, y se representan
mediante:
• Una formula atomica (nombre predicado arg1 . . . argn), donde el predica-
do describe el tipo de hecho y los argumentos son sımbolos variables que
se corresponden con los parametros del operador. Una formula atomica
tambien puede aparecer negada si aparece en los efectos del operador.
• Una conjuncion de formulas atomicas.
Una accion a se obtiene tras la sustitucion de todos los parametros de un
operador por valores concretos. Una accion a, por lo tanto, es una instancia
concreta de un operador. Pre(a) es un conjunto de hechos que representa las
precondiciones de la accion. Los efectos de la accion Eff(a) son los hechos que
anade y elimina la accion. Los efectos positivos se representan como Add(a),
y los efectos negativos como Del(a). El resultado, por tanto, de aplicar una
secuencia de acciones sobre un estado se puede formalizar como se muestra a
continuacion:
result(S, {}) = S
result(S, {a}) =
{(S −Del(a)) ∪Add(a) , si Pre(a) ⊆ S
S , en caso contrarioresult(S, {a1, a2, . . . , an}) = result(result(S, {a1}), {a2, . . . an})
(2.2.1)
Por comodidad, cualquier accion puede aplicarse en un estado, pero solo
tiene efecto si se satisfacen sus precondiciones. Si sus precondiciones se satis-
facen, los efectos positivos de la accion se anaden al estado, mientras que los
efectos negativos se eliminan.
2. La planificacion en I.A. 15
Un plan P se define como una secuencia aplicable de conjuntos de acciones
{A0, A1, . . . , An}, e indica el orden en el que las acciones de dichos conjuntos se
ejecutaran. Si un conjunto de acciones Ai contiene mas de una accion, dichas
acciones se pueden ejecutar en paralelo. Por lo tanto, si |Ai| = 1,∀i = 1 . . . n
se dice que el plan P es secuencial, y paralelo en caso contrario. Un plan P
es una solucion para un problema de planificacion si result(I, P ) es un estado
objetivo, es decir, si G ⊆ result(I, P ).
Ejemplo. Un ejemplo sencillo para ilustrar la notacion STRIPS es la
anomalıa de Sussman. Este problema pertenece al dominio del mundo de blo-
ques, y esta descrito en el apendice A. La representacion de este problema es
la siguiente:
L = {(on A B), (on A C), (on B A), (on B C), (on C A), (on C B), (ontable
A), (ontable B), (ontable C), (clear A), (clear B), (clear C), (handempty),
(holding A), (holding B), (holding C)}O = {pick-up(?x), put-down(?x), stack(?x,?y), unstack(?x,?y)}I = {(on C A), (ontable A), (ontable B), (clear B), (clear C), (handempty)}G = {(on A B), (on B C)}Las variables que actuan como parametros de los operadores se representan
habitualmente precedidas de un signo de interrogacion. Como se comento an-
teriormente, las acciones se calculan mediante la sustitucion de los parametros
por valores constantes. En este ejemplo, las acciones resultantes son las si-
guientes:
A = {pick-up(A), pick-up(B), pick-up(C), put-down(A), put-down(B), put-
down(C), stack(A,B), stack(A,C), stack(B,A), stack(B,C), stack(C,A),
stack(C,B), unstack(A,B), unstack(A,C), unstack(B,A), unstack(B,C),
unstack(C,A), unstack(C,B)}.
2.2.2. ADL
Aunque el lenguaje STRIPS resulta muy restringido para la mayorıa de
dominios complejos, admite un elevado grado de ampliacion. Una de las prin-
cipales ampliaciones que se ha llevado a cabo es el lenguaje ADL (Action
16 2.2. Lenguajes de especificacion
Description Language [Pednault 1989]). ADL es mas expresivo que STRIPS y
se basa en un modelo algebraico para caracterizar los estados del mundo. Las
principales extensiones que anade son las siguientes:
• Tipos: ADL permite asignar tipos a los objetos del problema y a los
parametros de los operadores. Esta caracterıstica facilita la comprension
de los problemas y reduce el numero de predicados (tipos de hechos)
necesarios.
• Precondiciones y objetivos negados: ADL permite incluir formulas
atomicas negadas en las precondiciones de un operador. De igual forma,
es posible especificar literales negados en los objetivos para representar
aquellos hechos que no desean en un estado objetivo.
• Precondiciones disyuntivas: ADL permite que una precondicion pue-
da ser una disyuncion de formulas atomicas.
• Precondiciones cuantificadas: las precondiciones pueden incluir formu-
las cuantificadas, tanto existencial (exists) como universalmente (forall).
(forall (?v1 ?v2 . . .) [formula])
(exists (?v1 ?v2 . . .) [formula])
• Comparaciones: ADL introduce un nuevo tipo de formula atomica en
las precondiciones (= arg1 arg2), que se satisface cuando sus dos argu-
mentos son iguales. Este predicado de igualdad (denominado Equality)
permite comparar sımbolos variables dentro de un operador.
• Efectos condicionales: en un dominio ADL, los operadores pueden
contener efectos condicionales (when condicion [formula]). Los efectos
condicionales solo tienen efecto si la condicion especificada se satisface
en el estado sobre el que se aplica la accion. Los efectos condicionales
suelen situarse dentro de formulas cuantificadas.
Estas ampliaciones permiten reducir el numero de acciones instanciadas,
puesto que con cada accion es posible expresar un mayor numero de situacio-
nes. Es posible aprovechar esta ventaja para mejorar la eficiencia de muchos
sistemas de planificacion [Koehler et al. 1997].
2. La planificacion en I.A. 17
2.2.3. PDDL
ADL ha sido una de las ampliaciones de STRIPS mas utilizadas por los
planificadores, pero no es la unica. Por ejemplo, FStrips (Functional STRIPS
[Geffner 2000]) es un lenguaje de primer orden, sin cuantificacion, que trabaja
con constantes, funciones y sımbolos relacionales - pero no sımbolos varia-
bles - e incrementa la expresividad del lenguaje. No obstante, la extension de
mayor exito ha sido sin duda PDDL (Planning Domain Definition Language
[Ghallab et al. 1998]). PDDL se desarrollo para la competicion internacional
de planificacion del ano 1998 [McDermott 2000] con el objetivo de proporcio-
nar una notacion comun para modelar problemas de planificacion y evaluar el
rendimiento de los planificadores. Desde su creacion, PDDL ha supuesto un
punto de referencia como lenguaje de modelado para la inmensa mayorıa de
los planificadores.
Aparte de STRIPS y ADL, PDDL ha recibido influencias de muchos otros
formalismos: SIPE-2 [Wilkins 1988], Prodigy 4.0 [Blythe et al. 1992], UCMP
[Erol et al. 1994], Unpop [McDermott 1996] y UCPOP [Barrett et al. 1995]. El
objetivo de PDDL es expresar la fısica de un dominio, es decir, que predicados
hay, que acciones se pueden realizar y cuales son sus efectos, sin proporcionar
ningun conocimiento adicional sobre el mismo. PDDL ofrece una gran variedad
de caracterısticas, entre las que destacan:
• Modelo de acciones basado en STRIPS.
• Efectos condicionales y cuantificacion universal, tal como se propone en
ADL.
• Especificacion de acciones jerarquicas. Las acciones se descomponen en
subacciones y subobjetivos que permiten abordar problemas mas com-
plejos.
• Definicion de axiomas del dominio. Los axiomas son formulas logicas que
establecen relaciones entre los hechos que se satisfacen en un estado (al
contrario que las acciones, que definen relaciones entre sucesivos estados).
• Especificacion de restricciones de seguridad. Estas restricciones permiten
definir un conjunto de objetivos que deben cumplirse durante todo del
proceso de planificacion.
18 2.2. Lenguajes de especificacion
Dado el gran numero de caracterısticas que PDDL puede expresar, practi-
camente ningun planificador existente es capaz de manejarlas todas. PDDL
agrupa estas caracterısticas en un conjunto de requerimientos. De esta forma,
los planificadores pueden comprobar rapidamente si son capaces de manejar
un determinado dominio.
2.2.4. Extensiones de PDDL
Una de las principales aportaciones de la competicion de planificacion de
2002 fue una nueva version del lenguaje PDDL: PDDL v2.1 [Fox y Derek
2003]. Las caracterısticas mas importantes que incorpora son la posibilidad de
definir acciones con duracion y de describir los efectos que el tiempo tiene sobre
las acciones. Ademas, modifica el tratamiento de las expresiones numericas y
permite especificar, como parte del propio problema, una funcion objetivo
(denominada metrica) que establece los criterios de optimizacion del plan.
PDDL v2.1 se organiza en los siguientes cuatro niveles:
• Nivel 1: comprende los niveles proposicional y ADL de la version ante-
rior de PDDL.
• Nivel 2: establece una sintaxis definitiva para manejar expresiones numeri-
cas. Las expresiones numericas se construyen mediante operadores aritmeti-
cos y funciones numericas. Estas funciones asocian valores numericos a
tuplas de objetos del problema. Las condiciones numericas en las ac-
ciones son siempre comparaciones entre pares de expresiones numericas,
mientras que los efectos permiten modificar los valores de las funciones
numericas.
• Nivel 3: introduce el uso de acciones durativas discretas. De esta forma,
es posible indicar en que instantes durante y despues de la ejecucion de
una accion ocurren sus efectos.
• Nivel 4: permite que las acciones durativas tengan efectos continuos.
Para modelar estos efectos, se introduce el sımbolo #t que representa
el continuo transcurso del tiempo durante la ejecucion de una accion
durativa.
2. La planificacion en I.A. 19
Mas recientemente, una nueva extension denominada PDDL+ [Fox y Derek
2002] anade un quinto nivel. Este nivel permite modelar eficientemente la
aparicion de eventos durante la ejecucion de un plan. PDDL+ tambien soporta
la modelizacion de procesos, que son actividades que, mientras duran, causan
cambios continuos en los valores de las expresiones numericas.
2.3. Aproximaciones a la planificacion inde-
pendiente del dominio
Una vez introducidos los lenguajes de planificacion existentes, en esta sec-
cion se comentan las principales tecnicas de planificacion independiente del
dominio. La planificacion independiente del dominio se centra en los princi-
pios fundamentales de la planificacion como una actividad, concentrandose
principalmente en tecnicas de busqueda y en la representacion y tratamiento
de problemas de planificacion. Por el contrario, la planificacion dependiente
del dominio se centra en la aplicacion de la planificacion a dominios concre-
tos, codificando informacion especıfica en modelos complejos del dominio. La
principal ventaja que ofrecen las tecnicas independientes del dominio es que
son tecnicas generales y reutilizables.
Las tecnicas de planificacion se pueden clasificar basicamente segun los
siguientes conceptos:
• Representacion de los nodos: estados o planes. Un planificador ba-
sado en estados es aquel que busca a traves de un espacio de posibles
situaciones. Por el contrario, un planificador basado en planes realiza la
busqueda en un arbol donde cada nodo representa un plan.
• Tipo de encadenamiento: progresivo o regresivo. Un planificador pro-
gresivo es el que trata de alcanzar los objetivos partiendo del estado ini-
cial del problema. En un planificador regresivo la busqueda se realiza en
sentido contrario. La principal ventaja del encadenamiento regresivo es
que el factor de ramificacion suele ser menor pues la busqueda va guiada
por el objetivo.
• Representacion de los planes: orden total u orden parcial. Un plani-
ficador de orden total es aquel que almacena una solucion parcial como
20 2.3. Aproximaciones a la planificacion independiente del dominio
una secuencia totalmente ordenada de acciones. Por el contrario, si el
planificador no siempre establece un orden total entre dos acciones cua-
lesquiera de un plan, se denomina planificador de orden parcial. En este
ultimo caso, un plan se especifica mediante un conjunto de restricciones
de ordenacion entre pares de acciones de la forma a1 ≺ a2, indicando que
la accion a1 se debe ejecutar antes que a2 (aunque no necesariamente de
forma inmediata).
La principal diferencia entre planificacion de orden parcial y de orden
total se encuentra en la eficiencia del proceso de planificacion. Aunque
podrıa considerarse que la ejecucion de un plan parcialmente ordenado
es mas flexible, numerosos autores afirman que dicha flexibilidad puede
lograrse tambien mediante un planificador de orden total mas una etapa
de postproceso [Minton et al. 1994]. Esta etapa, que elimina los ordenes
innecesarios en un plan totalmente ordenado, tiene un coste polinomial,
insignificante comparado con el tiempo de busqueda para la generacion
del plan [Argente et al. 2003].
Los planificadores de orden total se asocian comunmente con la aproxima-
cion basada en estados, como STRIPS [Fikes y Nilsson 1971], HSP [Bonet
y Geffner 2001c] o FF [Hoffman y Nebel 2001]. Existen, sin embargo, varios
conocidos planificadores de orden total basados en planes, como el planifica-
dor regresivo de Waldinger [Waldinger 1981], Interplan [Tate 1974] o Warplan
[Warren 1974]. Tradicionalmente, la aproximacion mas empleada en la plani-
ficacion de orden parcial ha sido la basada en planes, como es el caso de los
planificadores UCPOP [Penberthy y Weld 1992] y VHPOP [Younes y Sim-
mons 2003]. En los ultimos anos, sin embargo, han aparecido nuevas tecnicas
de planificacion que se benefician de una representacion basada en estados.
Buenos ejemplos de estas nuevas tecnicas son los planificadores Graphplan
[Blum y Furst 1997] y SATPLAN [Kautz y Selman 1992].
2.3.1. Planificacion de orden parcial POCL
A principios de los anos 90, mucha de la investigacion en planificacion
independiente del dominio se centro en los planificadores de orden parcial
POCL (Partial Order Causal Link). Los dos planificadores POCL dominantes
2. La planificacion en I.A. 21
fueron SNLP [McAllester y Rosenblitt 1991] y UCPOP [Penberthy y Weld
1992], y una gran cantidad de la investigacion se dirigio a la ampliacion de
ambos planificadores.
Las tecnicas POCL se basan en una busqueda regresiva sobre un espacio
de planes. El planificador navega a traves de este espacio de planes, seleccio-
nando en cada caso el mejor plan (segun un conjunto de criterios) a expandir.
El proceso finaliza cuando se encuentra un plan en el que todos los subobje-
tivos han sido resueltos y no existen conflictos entre las acciones del mismo.
Formalmente, cada nodo de la busqueda es un plan que se define como una
tupla 〈A,O, L〉, donde [Weld 1994]:
• A es el conjunto de acciones del plan {a0, a1, . . . , an}. Cada accion se
corresponde con un operador, excepto para la accion inicial y final. La
accion inicial (a0) no tiene precondiciones y sus efectos coinciden con el
estado inicial del problema. La accion final an tiene como precondiciones
los objetivos del problema, y carece de efectos.
• O es un conjunto de restricciones de orden sobre las acciones del plan,
de la forma ai ≺ aj. La accion inicial esta siempre ordenada antes que el
resto de acciones (a0 ≺ ai,∀ai ∈ A− {a0}), mientras que la accion final
siempre se ordena detras (ai ≺ an,∀ai ∈ A− {an}).
• L es un conjunto de enlaces causales. Un enlace causal (ail−→ aj) de-
termina que la accion ai resuelve la precondicion l de la accion aj. Los
enlaces causales se utilizan para recordar el proposito de cada accion en
el plan.
El proceso de planificacion comienza con un primer plan que contiene unica-
mente las acciones inicial y final. En cada iteracion se escoge una accion aj que
tenga precondiciones no resueltas. Una de dichas precondiciones (l ∈ Pre(aj))
se escoge como el siguiente subobjetivo a resolver. Para conseguir dicho sub-
objetivo es necesario incluir una nueva accion ai (o una accion ya existente en
el plan) que produzca l (l ∈ Add(ai)). De esta forma aparece un enlace causal
entre ambas acciones: ail−→ aj. Si debido a este proceso de planificacion apa-
rece una accion ak, ordenada entre las acciones ai y aj (ai ≺ ak ≺ aj), y dicha
accion elimina l (l ∈ Del(ak)), aparece una amenaza [Peot y Smith 1993]. Esta
amenaza puede ser resuelta anadiendo una restriccion de orden:
22 2.3. Aproximaciones a la planificacion independiente del dominio
• Por promocion: ordenamos la accion conflictiva detras de la segunda
accion del enlace causal (aj ≺ ak).
• Por democion: ordenamos la accion conflictiva antes de la primera
accion del enlace causal (ak ≺ ai).
No es posible, sin embargo, realizar una promocion o democion si ello
supone la violacion de los ordenes ya existentes. Cuando esto ocurre, el plan
en cuestion es descartado. La figura 2.2 muestra el problema de la anomalıa
de Sussman resuelto mediante este algoritmo.
Figura 2.2: Solucion al problema de la anomalıa de Sussman (version de unoperador) mediante un algoritmo POP. Las lıneas continuas representan enla-ces causales, mientras que las discontinuas son ordenaciones introducidas pararesolver amenazas.
A pesar del auge inicial de las tecnicas POCL, la investigacion de orden
parcial se abandono parcialmente ya que estos planificadores solo eran capaces
de resolver problemas que requerıan como maximo una docena de acciones
[Smith et al. 2000]. Sin embargo, actualmente se estan aplicando nuevas tecni-
cas, como heurısticas para estimar distancias hasta el objetivo y analisis de
alcanzabilidad, para mejorar dramaticamente la eficiencia de los algoritmos
POCL. Los nuevos planificadores que aplican estas mejoras, como RePOP
[Nguyen y Kambhampati 2001] o VHPOP [Younes y Simmons 2003], demues-
tran que la planificacion POCL es tan competitiva como las aproximaciones
2. La planificacion en I.A. 23
basadas en estados. Las tecnicas POCL tambien se pueden adaptar facilmente
para permitir el manejo de informacion temporal y recursos. Esta extension se
ha llevado a cabo, por ejemplo, en los planificadores parcPLAN [El-Kholy y
Richards 1996], ZENO [Penberthy y Weld 1994] y IxTeT [Ghallab y Laruelle
1994].
2.3.2. Planificacion basada en grafos
Una de las tendencias que marco la decadencia de la planificacion de or-
den parcial fue la utilizacion de algoritmos para grafos. Graphplan [Blum y
Furst 1997] fue el principal exponente pues, ademas de presentar un enfoque
totalmente distinto, supero ampliamente el rendimiento de los planificadores
existentes. Aunque el rendimiento de Graphplan ya ha sido superado por nue-
vas aproximaciones, algunas de sus contribuciones siguen siendo importantes
actualmente.
El proceso de planificacion de Graphplan alterna dos fases diferenciadas:
• Fase de expansion: extiende un grafo de planificacion en el tiempo
hasta lograr las condiciones necesarias (no suficientes) para que el plan
exista.
• Extraccion de la solucion: realiza una busqueda regresiva sobre dicho
grafo. Si no se encuentra la solucion, se realiza otro proceso de expansion,
y ası sucesivamente.
Un grafo de planificacion es un grafo dirigido formado por dos tipos de
nodos distribuidos en varios niveles. Los niveles proposicionales (niveles pares)
contienen nodos proposicionales, que guardan informacion sobre los hechos
que se van alcanzando. Lo niveles de accion (niveles impares) contienen ac-
ciones, cuyas precondiciones estan presentes en el nivel anterior. El nivel cero
esta formado por aquellos hechos que son ciertos en el estado inicial del plan.
Las aristas representan las relaciones de precondicion y efecto - tanto positivo
(add) como negativo (del) - entre proposiciones y acciones.
En el grafo, todas las acciones estan representadas en paralelo. Sin em-
bargo, no necesariamente se pueden realizar todas ellas al mismo tiempo. Dos
acciones o dos proposiciones que no pueden ocurrir al mismo tiempo se dice
24 2.3. Aproximaciones a la planificacion independiente del dominio
que son mutuamente excluyentes (mutex ). Las reglas para identificar accio-
nes y proposiciones mutuamente excluyentes son las siguientes [Blum y Furst
1997]:
• Dos acciones son mutex en un punto de tiempo si:
– Efectos inconsistentes: el efecto de una accion es la negacion del
efecto de otra accion.
– Interferencia: una accion elimina una precondicion de otra accion.
– Competencia de requerimientos: las acciones tienen precondiciones
que son mutex en el nivel anterior.
• Dos proposiciones p y q son mutex en un punto de tiempo si cada accion
que consigue p es mutex de cada accion que consigue q, es decir, si todas
las formas de obtener p son mutex de todas las formas de conseguir q en
el punto de tiempo anterior.
Graphplan extiende el grafo hasta llegar a un nivel proposicional (t) en el
que se encuentran todos los objetivos, y ninguno de ellos es mutex con otro
objetivo. Esta es la condicion necesaria para que exista un plan, y a partir
de la cual Graphplan pasa a la fase de extraccion de solucion. La figura 2.3
muestra un ejemplo de grafo de planificacion para un sencillo problema del
mundo de bloques.
Figura 2.3: Grafo de planificacion para un problema del mundo de bloques(version de un operador). Inicialmente, el bloque B esta sobre el A, y el objetivoes obtener la torre inversa.
2. La planificacion en I.A. 25
El proceso de extraccion de solucion utiliza el grafo de planificacion para
guiar la busqueda del plan. Se utiliza una estrategia de encadenamiento re-
gresivo, nivel por nivel, para hacer el mejor uso posible de las restricciones de
exclusion mutua. El proceso se puede resumir del siguiente modo:
1. Dado un conjunto de objetivos en el instante t, se trata de encontrar un
conjunto de acciones en el instante t− 1 que los consigan. Las precondi-
ciones de dichas acciones forman entonces un conjunto de subobjetivos
en el instante t − 1. Si los nuevos subobjetivos se pueden conseguir en
t− 1 pasos, entonces los objetivos originales se pueden lograr en t pasos.
2. Si el conjunto de objetivos en el instante t − 1 no se puede conseguir,
Graphplan intenta encontrar una combinacion diferente de acciones. El
proceso continua hasta que se obtiene un plan valido. En caso contrario
queda demostrado que el conjunto original de objetivos no es resoluble en
el instante t y, por lo tanto, se sigue expandiendo el grafo de planificacion.
El exito de Graphplan propicio la aparicion de nuevos sistemas basados
en esta aproximacion. El planificador STAN [Long y Fox 1999], por ejem-
plo, mejora la eficiencia de Graphplan introduciendo nuevas tecnicas como la
explotacion de la simetrıa [Fox y Long 1999] o el analisis automatico de domi-
nios [Fox y Long 1998]. Otros planificadores introducen nuevas caracterısticas,
como el soporte para las extensiones ADL (IPP [Koehler et al. 1997]), el ma-
nejo de incertidumbre y de acciones de sensorizacion (SGP [Weld et al. 1998]),
y la planificacion temporal (TGP [Smith y Weld 1999] y TPSys [Garrido y
Onaindıa 2003]).
2.3.3. Planificacion heurıstica
Las importantes contribuciones de Graphplan han permitido un importante
avance en el campo de la planificacion durante los ultimos anos. Ha propicia-
do, por ejemplo, la aparicion de nuevas tecnicas heurısticas que han mejorado
significativamente el rendimiento de los planificadores [Long y Fox 2002]. La
planificacion heurıstica se basa en la utilizacion de funciones de estimacion pa-
ra explorar el espacio de busqueda de una forma mas inteligente. Las funciones
de estimacion (heurısticas) se pueden clasificar en admisibles (A∗) o no admi-
sibles [Nilsson 1994]. Las heurısticas admisibles permiten alcanzar soluciones
26 2.3. Aproximaciones a la planificacion independiente del dominio
optimas, mientras que las no admisibles no ofrecen garantıas de optimalidad,
aunque disminuyen notablemente el tiempo de computo [Haslum y Geffner
2000]. Tradicionalmente, las funciones heurısticas empleadas eran dependien-
tes del dominio [Penberthy y Weld 1992]. Sin embargo, con la aparicion de la
planificacion basada en grafos, han surgido diversas heurısticas independientes
del dominio, suficientemente informadas para guiar el proceso de planificacion
de forma eficiente.
El principio general para generar funciones heurısticas es formular una ver-
sion simplificada (o relajada) del problema. Resolver el problema relajado es,
en general, mas sencillo que la resolucion del problema original. La solucion
del problema relajado se emplea como heurıstica para estimar la distancia has-
ta el objetivo. Entre las relajaciones mas frecuentes dentro de la planificacion
heurıstica destacan:
• Ignorar los efectos negativos de las acciones. Mediante esta tecnica
se define un problema de planificacion relajado en el que se ignoran los
efectos negativos (efectos delete) de las acciones. El valor de la heurısti-
ca para un estado se obtiene estimando el coste de llegar desde dicho
estado hasta una solucion en el problema de planificacion relajado. Esta
idea fue originalmente propuesta en [McDermott 1996] y [Bonet et al.
1997], y actualmente es una de las tecnicas mas extendidas dentro de
la planificacion heurıstica. Entre los planificadores que aprovechan esta
relajacion se encuentran Unpop [McDermott 1999], las diversas versio-
nes de HSP [Bonet y Geffner 2001c], GRT [Refanidis y Vlahavas 1999],
MIPS [Edelkamp y Helmert 2001], STAN4 [Fox y Derek 2001], RePOP
[Nguyen y Kambhampati 2001], Sapa [Do y Kambhampati 2001b] y FF
[Hoffmann 2000].
Sin embargo, la resolucion optima del problema relajado sigue siendo un
problema intratable [Bylander 1994]. Por ello, hay principalmente dos
metodos para afrontar este problema:
– Resolver el problema relajado de forma suboptima. Esta es la opcion
empleada, por ejemplo, en el calculo de la heurıstica de FF.
– Considerar que los hechos son independientes, es decir, que no exis-
ten interacciones entre los objetivos y que, por lo tanto, se puede
2. La planificacion en I.A. 27
calcular un plan independiente para cada uno de ellos. Este el el caso
de las heurısticas hadd de Unpop y HSP [Bonet y Geffner 2001c].
Las heurısticas ası calculadas son, por consiguiente, no admisibles, aun-
que muy informativas. Ademas, su calculo puede realizarse muy rapida-
mente en cada estado de la busqueda.
• Aproximar conjuntos de hechos mediante subconjuntos. Esta re-
lajacion asume que el coste de alcanzar un conjunto de literales se puede
estimar calculando el coste de alcanzar solo un subconjunto de tamano
m. Este subconjunto de literales debe ser, sin embargo, el subconjunto
mas costoso de alcanzar de todos los posibles. Estas heurısticas se re-
presentan como hm, donde m indica el tamano de los subconjuntos a
considerar [Haslum y Geffner 2000].
Cuando m vale uno (h1), evaluar el coste de un conjunto de objetivos des-
de un estado solo tendrıa en cuenta el coste de alcanzar el objetivo mas
costoso. Esta heurıstica coincide con hmax, presentada en el planificador
HSP2 [Bonet y Geffner 2001b], y, aunque admisible, no es demasiado in-
formativa. Para subconjuntos de tamano dos (h2), la heurıstica es similar
a la que implıcitamente se encuentra en Graphplan. Graphplan se puede
considerar como un planificador heurıstico puesto que evalua el coste de
un conjunto de objetivos mediante el ındice del primer nivel que contiene
dichos objetivos, y estos no son mutex dos a dos. Las heurısticas hm son
admisibles y de coste polinomial. Para valores de m ≥ 2, la heurıstica
suele ser bastante informativa, aunque bastante mas costosa de calcular.
• Ignorar determinados hechos. Esta tecnica elimina determinados he-
chos del problema (de la situacion inicial, de los objetivos y de las accio-
nes). De esta forma, el espacio de estados resultante es mas manejable.
Esta idea esta fuertemente relacionada con la busqueda mediante bases
de datos de patrones (pattern databases [Culberson y Schaeffer 1998]).
Las bases de datos de patrones (PDB) permiten generar heurısticas de-
finidas mediante distancias entre abstracciones de estados [Hernadvogyi
y Holte 2000].
La construccion de una base de datos de patrones se realiza en una eta-
pa de preproceso. De esta forma, si la base de datos se almacena en
28 2.3. Aproximaciones a la planificacion independiente del dominio
una estructura optimizada (como una tabla hash), es posible calcular
las heurısticas durante el proceso de planificacion en tiempo lineal [Edel-
kamp 2001]. Las heurısticas PDB son admisibles y, en general, estan
mejor informadas que las heurısticas hm, para valores pequenos de m.
La calidad de las funciones heurısticas PDB dependen, sin embargo, de
la abstraccion que se realice, es decir, de los hechos que se van a ignorar.
Las heurısticas obtenidas mediante la relajacion del problema original se
emplean para evaluar los nodos del proceso de busqueda de la solucion, ge-
neralmente en funciones del tipo f(n) = g(n) + h(n), donde g(n) representa
el coste de alcanzar el nodo n y h(n) es una estimacion de la distancia de
dicho nodo hasta los objetivos. Esta funcion de evaluacion se emplea en es-
trategias tradicionales de busqueda, como la expansion primero el mejor (best
first search, BFS [Pearl 1984]) - caso del planificador HSP2 -, o en estrategias
mas novedosas basadas en busqueda local, como la estrategia hill-climbing del
planificador FF [Hoffmann 2000].
2.3.4. Transformacion del problema de planificacion
Otra de las tendencias actuales es la transformacion del problema de pla-
nificacion en otro tipo de problema, resoluble con otras tecnicas dentro del
campo de la IA [Long et al. 2002]. En esta seccion se describen brevemente las
principales tecnicas de transformacion:
• Aproximacion SAT : el problema de planificacion se traduce a un pro-
blema de satisfactibilidad, y se resuelve mediante algoritmos SAT.
• Aproximacion CSP : el problema de planificacion se transforma en
un problema de satisfaccion de restricciones, y se resuelve mediante un
resolutor CSP.
• Model-checking : el problema de planificacion se convierte en una formu-
la logica para la cual se busca un modelo. Este enfoque es una variacion
de la aproximacion SAT, pero utiliza unas tecnicas suficientemente dife-
renciadas como para considerarla una nueva lınea de investigacion.
2. La planificacion en I.A. 29
Aproximacion SAT
Esta aproximacion aparecio en 1992 [Kautz y Selman 1992], inspirada por
las importantes mejoras introducidas en los algoritmos de satisfactibilidad. Los
planificadores SAT transforman un problema de planificacion en una formula
logica. El primer paso en esta transformacion consiste en codificar el proble-
ma (estado inicial, objetivos, restricciones del dominio y acciones) como un
conjunto de axiomas o predicados. Cada uno de estos predicados se indexa
mediante un numero entero que representa un instante de tiempo:
• Los predicados que forman los estados se indexan con el instante en el
que se satisfacen.
• Los predicados que representan acciones se indexan con el instante en
el que la accion comienza. Las acciones tienen un instante de tiempo de
duracion, aunque varias acciones pueden realizarse al mismo tiempo.
La indexacion en instantes de tiempo hace necesario conocer la longitud del
plan. Puesto que el numero de acciones que formaran el plan no es conocido
inicialmente, se realiza una estimacion. La longitud estimada se va incremen-
tando progresivamente hasta que se encuentra una solucion. Una solucion es
cualquier asignacion de valores de verdad a las variables de la formula que
representa el problema, de forma que esta se satisfaga. La traduccion de una
solucion a un plan del tipo STRIPS es un proceso muy sencillo. La figura 2.4
muestra un ejemplo de formulacion logica de un problema sencillo del mundo
de bloques.
Figura 2.4: Modelizacion logica de un problema del mundo de bloques (ver-sion de un operador). El plan se obtiene mediante la instanciacion de los dospredicados move.
30 2.3. Aproximaciones a la planificacion independiente del dominio
Los metodos para resolver problemas SAT pueden clasificarse en los que
realizan una busqueda sistematica y los basados en busqueda local. Los pri-
meros son algoritmos completos, como es el caso de DPLL (Davis Putnam
Logemann Loveland [Davis et al. 1962]), satz [Li y Anbulagan 1997] y relsat
[Bayardo y Schrag 1997]. Los segundos obtienen importantes mejoras en la
eficiencia, a costa de perder la completitud. Este es el caso de los algoritmos
GSAT y Walksat [Selman et al. 1994].
Satplan [Kautz y Selman 1998] fue el primer planificador que empleo la
aproximacion SAT, y empleaba un resolutor de proposito general basado en
Walksat. Su descendiente, Blackbox [Kautz y Selman 1999], combino la apro-
ximacion SAT con Graphplan, logrando mejorar notablemente la eficiencia.
Blackbox, ademas, es un sistema muy flexible que permite escoger el algoritmo
de resolucion, e incluso emplear varios para resolver un mismo problema. Otro
de los planificadores dentro de la aproximacion SAT es LPSAT [Wolfman y
Weld 1999]. LPSAT combina un resolutor SAT (una variacion de relsat) con
un resolutor de restricciones lineales, lo que le permite manejar disyunciones
logicas y expresiones numericas.
Aproximacion CSP
Un CSP, o problema de satisfaccion de restricciones [Bartak 1999], consiste
en un conjunto de variables, un conjunto de valores para cada variable (do-
minios de las variables), y un conjunto finito de restricciones que limitan los
valores que las variables pueden tomar simultaneamente. Una solucion a un
CSP es una asignacion completa de valores a las variables que satisface todas
las restricciones.
La aproximacion basada en CSPs tiene muchas similitudes con la apro-
ximacion SAT, aunque presenta ciertas ventajas: la representacion mediante
CSPs de un problema de planificacion es mas compacta, por lo que evita la ex-
plosion de memoria que frecuentemente ocurre en muchos planificadores SAT.
Ademas, los modelos CSP son facilmente extensibles, pues permiten anadir
nuevas variables y restricciones al problema, y posibilitan el modelado de va-
riables numericas, recursos y restricciones de precedencia. Sin embargo, al igual
que ocurre con SAT, un CSP representa un problema estatico, mientras que
un problema de planificacion es dinamico: el numero de acciones necesarias no
2. La planificacion en I.A. 31
se conoce de antemano. Por ello, es necesario estimar la longitud del plan, e
incrementarla si no se encuentra la solucion.
Esta aproximacion fue explorada mediante el planificador CPlan [van Beek
y Chen 1999], que empleaba el algoritmo GAC-CBJ para resolver el CSP re-
sultante de la conversion del problema de planificacion. Esta conversion, sin
embargo, se realizaba de forma manual. El planificador GP-CSP [Do y Kamb-
hampati 2001a], no obstante, demuestra que esta conversion puede realizarse
automaticamente mediante un grafo de planificacion similar al de Graphplan.
Los resultados experimentales obtenidos con esta tecnica muestran que el ren-
dimiento de GP-CSP es superior al de Graphplan y Blackbox. Mas reciente-
mente, el planificador CSP-PLAN [Lopez y Bacchus 2003] propone una re-
presentacion mas rica y robusta que los grafos de planificacion, permitiendole
trabajar con dominios mas complejos y de una forma mucho mas eficiente.
Model-checking
En un problema de model-checking [Clarke et al. 2000], los dominios de
planificacion se formalizan mediante modelos semanticos, en los que las pro-
piedades de dichos dominios se representan mediante formulas temporales. Los
modelos semanticos definen los posibles estados del problema, las posibles ac-
ciones y las transiciones entre estados causadas por la ejecucion de las acciones.
El proceso de planificacion mediante esta tecnica consiste en verificar si dichas
formulas se satisfacen en el modelo semantico. Esta comprobacion se realiza
mediante la exploracion del espacio de estados del modelo [Giunchiglia y Tra-
verso 1999]. Aparte de la importante base teorica que tiene esta aproximacion,
la planificacion mediante model-checking permite resolver eficientemente pro-
blemas de gran tamano, incluso en problemas con un caracter mas practico
(dominios no deterministas, reactivos, etc.)
La planificacion basada en model-checking tiene que manejar frecuentemen-
te problemas con grandes espacios de estados. La gran mayorıa de planificado-
res en esta aproximacion emplean arboles de decision binarios (BDDs [Bryant
1985]) para representar los modelos. Entre las ventajas de los BDDs destacan
la representacion compacta, en forma canonica, de las formulas y la eficiencia
en las operaciones logicas sobre conjuntos de estados. Un claro ejemplo es el
planificador BDDPlan [Holldobler y Storr 2000]. Este planificador es correcto y
32 2.3. Aproximaciones a la planificacion independiente del dominio
completo, y se basa en la representacion de estados mediante BDDs. BDDPlan,
ademas, aporta algunas mejoras importantes como la busqueda bidireccional,
la particion de la relacion de transicion, la identificacion de variables numericas
constantes, y la reduccion de la frontera de busqueda.
PropPlan [Fourman 2000] es otro planificador que utiliza BDDS para repre-
sentar eficientemente grandes conjuntos de estados. Esto le permite implemen-
tar una busqueda exhaustiva en anchura. Al igual que Graphplan, PropPlan
realiza una busqueda hacia adelante para calcular el conjunto de estados al-
canzables, agrupados por niveles, hasta llegar a los objetivos. La exploracion
del espacio de estados alcanzables se realiza mediante una busqueda regresiva.
El planificador MIPS [Edelkamp y Helmert 2001] tambien dispone de una
etapa de preproceso, en la que realiza un analisis de alcanzabilidad. La eficien-
cia de MIPS radica en la incorporacion de dos motores de busqueda: el primero
usa una busqueda hill-climbing, muy similar a la del planificador FF [Hoffman
y Nebel 2001]. La segunda hace uso de tecnicas BDD, combinando la busqueda
heurıstica con representaciones simbolicas. Aunque MIPS comenzo manejando
unicamente problemas de tipo STRIPS, actualmente es capaz de trabajar con
precondiciones negadas, efectos condicionales, acciones durativas y expresiones
numericas [Edelkamp 2003].
2.3.5. Tecnicas de descomposicion
Estas tecnicas consisten en descomponer un problema en varios subpro-
blemas, generalmente mas sencillos de resolver. Luego, las soluciones de los
subproblemas se combinan para formar una solucion al problema original. En-
tre las principales tecnicas de descomposicion destacan:
• La planificacion jerarquica. Esta tecnica, que se describe en el apar-
tado 2.4.2, descompone el problema en distintos niveles de abstraccion.
La planificacion jerarquica requiere, en general, informacion adicional
sobre el dominio para establecer la jerarquıa de abstracciones.
• Ordenacion de objetivos/subobjetivos. Esta tecnica realiza una or-
denacion de los objetivos (o subobjetivos) del problema, permitiendo
ası establecer varios estados objetivo intermedios [Koehler y Hoffmann
2000]. Esta tecnica ha sido utilizada en varios planificadores clasicos,
2. La planificacion en I.A. 33
como IPP [Koehler et al. 1997], GRT [Refanidis y Vlahavas 2001], STe-
LLa v2.0 [Sebastia et al. 2002] y, en cierto modo, en PartPlan [Amir y
Engelhardt 2003].
• Descomposicion de objetivos. Esta tecnica consiste en dividir el con-
junto de objetivos del problema en subconjuntos mas pequenos, que son
analizados por separado. A pesar de ser la primera tecnica de descompo-
sicion que se utilizo, no ha proporcionado en general buenos resultados:
el numero de interacciones entre los objetivos tiene que ser muy pequeno
para que la combinacion de los planes obtenidos para cada subconjun-
to de objetivos sea eficiente [Yang 1997]. Sin embargo, recientemente el
planificador SGPlan [Chen et al. 2004] ha demostrado que, usada en
combinacion con otras tecnicas, la descomposicion de objetivos permite
obtener resultados muy competitivos. SGPlan, de hecho, fue uno de los
planificadores galardonados en la competicion de planificacion del 2004
[IPC 2004]. Su funcionamiento se basa en calcular varios planes para ca-
da objetivo del problema, resolviendo las amenazas que aparecen entre
ellos.
2.3.6. Tecnicas hıbridas de planificacion
En los apartados anteriores se han comentado las principales tecnicas para
abordar problemas de planificacion independientes del dominio. Sin embargo,
los resultados experimentales demuestran que no hay una unica estrategia
apropiada para resolver todos los problemas de planificacion [Long y Fox 2002].
Por esta razon, existe un creciente interes en la combinacion de estrategias
para la resolucion de distintos tipos de problemas. Sin embargo, aunque estas
soluciones hıbridas proporcionan generalmente buenos resultados, determinar
automaticamente la estrategia a utilizar es todavıa un problema complejo.
Entre los planificadores hıbridos mas interesantes destacan BlackBox [Kautz
y Selman 1999], Mips [Edelkamp y Helmert 2001], AltAlt [Nguyen et al. 2002] y
LPG [Gerevini et al. 2003]. Como se comento anteriormente, BlackBox com-
bina SAT con planificacion basada en grafos, mientras que MIPS combina
model-checking con planificacion heurıstica.
AltAlt es un planificador basado en una combinacion de Graphplan y de
34 2.4. Aproximaciones a la planificacion dependiente del dominio
busqueda heurıstica en el espacio de estados. AltAlt se ha implementado sobre
dos sistemas de planificacion actuales: STAN [Long y Fox 1999], un planifi-
cador del estilo de Graphplan, y HSP-r [Bonet y Geffner 2001c], la variante
regresiva de HSP. AltAlt usa el grafo de planificacion de Graphplan como es-
tructura para calcular las heurısticas que guiaran la busqueda.
LPG es un planificador basado en busqueda local y grafos de planificacion.
Su estrategia de busqueda se inspira en Walksat, un procedimiento eficiente
para resolver problemas de satisfactibilidad. El espacio de busqueda de LPG
consiste en planes parciales (subgrafos del grafo de planificacion). En cada paso
de la busqueda, LPG aplica ciertas modificaciones para transformar un plan
parcial en otro. La evaluacion de estos planes se lleva a cabo mediante una
funcion de evaluacion parametrizada que hace uso de diversas heurısticas. Este
sistema puede producir planes de buena calidad segun los criterios especificados
en la definicion del problema. Esto se consigue mediante un proceso anytime
[Boddy 1991] que produce una secuencia de planes, en el que cada plan es de
mejor calidad que el anterior. LPG tambien integra un algoritmo de busqueda
primero el mejor, similar al empleado por FF. Aparte de los buenos resultados
ofrecidos por LPG, tambien destaca su versatilidad, ya que permite manejar los
tres primeros niveles de PDDL 2.1, ası como acciones con costes y duraciones
asociadas.
2.4. Aproximaciones a la planificacion depen-
diente del dominio
La planificacion dependiente del dominio esta relacionada con la aplicacion
de la planificacion en ciertos dominios especıficos. Para desarrollar sistemas de
planificacion que funcionen muy eficientemente en un determinado dominio se
utiliza un conocimiento de dicho dominio muy amplio, codificado en complejos
modelos del dominio. La planificacion dependiente del dominio se centra, por
lo tanto, en la adquisicion y representacion del conocimiento, ası como en la
explotacion de conocimiento de control especializado para la construccion de
planes y el razonamiento acerca de procesos de planificacion.
Al igual que la planificacion independiente del dominio, la planificacion
dependiente del dominio ha avanzado significativamente en los ultimos anos.
2. La planificacion en I.A. 35
Las dos tendencias para representar y explotar el conocimiento del dominio
son, principalmente, el uso de reglas de control y las redes de tareas jerarquicas
(hierarchical task networks, HTN [Sacerdoti 1974]). Las siguientes secciones
detallan brevemente el funcionamiento de estas dos aproximaciones.
2.4.1. Reglas de control
Las reglas de control representan consejos que permiten al planificador
decidir que acciones se deben realizar en un determinado estado para alcanzar
unos determinados objetivos. Estos consejos se representan generalmente como
reglas si-entonces del tipo 〈estado,objetivo〉 −→ accion. Por ejemplo, una regla
para el dominio del mundo de bloques puede ser la siguiente:
(if (and (current-goal (holding ?x))
(true-in-state (on ?x ?y))))
(then select operator UNSTACK)
Esta regla indica que es conveniente desapilar un bloque si el objetivo es
que dicho bloque este sujeto. Aunque este ejemplo es sencillo, las reglas pueden
llegar a ser muy complejas. Por tanto, uno de los principales inconvenientes
de esta aproximacion es que la definicion de las reglas de control requiere un
conocimiento experto tanto sobre el dominio como sobre la forma en la que el
planificador utilizara esta informacion. No obstante, las ventajas son tambien
importantes: los planificadores basados en reglas de control son mucho mas
rapidos y resuelven problemas de mayor tamano que los independientes del
dominio. La calidad de los planes tambien suele ser bastante buena aunque,
en general, no garantizan la obtencion del plan optimo.
TALPlanner [Kvarnstrom y Magnusson 2003] y TLPlan [Bacchus y Ady
2001] son actualmente uno de los planificadores mas destacados dentro de esta
aproximacion. TALPlanner esta basado originalmente en las ideas de TLPlan,
por lo que comparten ciertas caracterısticas basicas:
• Usan encadenamiento hacia adelante.
• Utilizan conocimiento del dominio en forma de formulas logicas tempo-
rales para podar las partes irrelevantes del espacio de busqueda.
36 2.4. Aproximaciones a la planificacion dependiente del dominio
Ademas, ambos planificadores son capaces de trabajar con acciones durati-
vas y expresiones numericas. La principal diferencia entre ambos planificadores,
no obstante, radica en la logica temporal que emplean.
Una aproximacion diferente es emplear reglas de control para transformar
progresivamente un plan suboptimo en uno de mejor calidad. Esta aproxima-
cion, denominada Planning by Rewriting (PbR) [Ambite y Knoblock 2001],
produce de forma eficiente planes de alta calidad, aunque requiere un mayor
esfuerzo por parte del usuario que otras aproximaciones.
Las reglas de control que emplean estos planificadores son especificadas
por el usuario para cada dominio, lo que resulta una labor complicada. Otra
opcion es la generacion automatica de las reglas de control mediante metodos
de aprendizaje. Minton, por ejemplo, muestra una tecnica para deducir reglas
de control mediante la aplicacion de aprendizaje basado en explicaciones du-
rante la resolucion de los problemas [Minton 1988]. Otra tecnica es realizar un
analisis estatico de los operadores [Etzioni 1993] e inferir invariantes a partir
del dominio [Gerevini y Schubert 1998] [Fox y Long 1998] [Rintanen 1999b].
Existen sistemas, como Prodigy [Veloso et al. 1995], que integran el proceso
de planificacion con diferentes mecanismos de aprendizaje. Este aprendizaje se
realiza en los puntos de decision del planificador, adquiriendo conocimiento de
control que se utiliza posteriormente para guiar la busqueda. Las reglas PbR
tambien pueden aprenderse automaticamente de forma analoga a las reglas de
control. Ademas, en [Ambite et al. 2000] se presenta una tecnica para aprender
reglas PbR mediante la comparacion del plan inicial y plan optimo en varios
problemas ejemplo.
2.4.2. Redes de tareas jerarquicas
La planificacion jerarquica (HTN ) explota un conjunto ordenado de abs-
tracciones para controlar la busqueda. Esta aproximacion ha demostrado ser
muy efectiva para reducir la complejidad de los problemas de planificacion.
Bajo ciertas asunciones, es posible reducir un espacio de busqueda exponen-
cial a un tamano lineal [Knoblock 1991]. En la literatura pueden encontrarse
fundamentalmente dos mecanismos de abstraccion: abstraccion basada en ac-
ciones y basada en estados. El primer mecanismo combina grupos de acciones
para formar tareas mas complejas, tambien denominadas macro-operadores.
2. La planificacion en I.A. 37
El segundo explota varias representaciones del problema a distintos niveles de
detalle.
A pesar de que los planificadores HTN emplean generalmente un motor
de planificacion independiente del dominio, la definicion de las distintas abs-
tracciones para cada dominio se suele realizar manualmente. La flexibilidad
y eficiencia de esta aproximacion, sin embargo, han dado lugar a numerosos
sistemas de planificacion como O-Plan [Currie y Tate 1991], las distintas ver-
siones de SHOP [Nau et al. 2003] y SIPE [Wilkins 1999], HyHTN [McCluskey
et al. 2003] y UCMP [Erol et al. 1994]. O-Plan es un sistema abierto y flexible
orientado a la generacion y ejecucion de planes. Este sistema combina diversas
tecnicas como heurısticas en el control de la busqueda, restricciones temporales
y recursos. El lenguaje que utiliza (Task Formalism, TF ) es suficientemente
expresivo como para definir las jerarquıas existentes entre las tareas de un
dominio.
SHOP es otro planificador jerarquico cuya principal caracterıstica es que
planifica las tareas en el mismo orden en el que se ejecutaran. Esta tecnica
evita las complejas interacciones entre los objetivos que sufren otros planifica-
dores HTN. Ademas, le permite conocer el estado completo en cada paso de la
planificacion, por lo que puede manejar representaciones muy expresivas de los
dominios, incluyendo expresiones numericas complejas, interaccion con agen-
tes externos y acceso a fuentes de informacion externas. Entre los sucesores de
SHOP se encuentran JSHOP, una implementacion en Java para la planifica-
cion de operaciones navales de evacuacion, A-SHOP, integrado en el sistema
multiagente IMPACT, y SHOP2, una generalizacion de SHOP que obtuvo un
resultado sobresaliente en la Competicion Internacional de Planificacion del
ano 2002 [IPC 2002].
El sistema SIPE, y su sucesor SIPE-2, integra los procesos de planificacion
y ejecucion. Aunque ambos sistemas pueden clasificarse dentro de la categorıa
de planificadores HTN, debido a sus caracterısticas mas practicas se estudiaran
con mas detalle en el siguiente capıtulo. HyHTN, por el contrario, es un planifi-
cador mas clasico. Implementado en Prolog, su aportacion mas relevante reside
en la combinacion de estrategias HTN con una busqueda progresiva orienta-
da hacia los objetivos. Ademas, incorpora la herramienta GIPO-II para la
generacion y validacion de los modelos jerarquicos de los dominios.
38 2.5. Conclusiones
El planificador UMCP es otro ejemplo de planificador jerarquico. Este pla-
nificador, implementado en Lisp, es correcto y completo. El proceso de busque-
da se visualiza en una interfaz grafica, que permite al usuario interaccionar con
el planificador.
Al igual que ocurre con las reglas de control, el aprendizaje de las jerarquıas
de abstraccion para un dominio o un problema en particular tambien puede
realizarse automaticamente [Anderson y Farley 1988] [Christensen 1991]. El
sistema ALPINE [Knoblock 1994], por ejemplo, genera abstracciones para
una version jerarquica del planificador Prodigy. Los resultados experimentales
de este sistema demuestran que los planes generados son mas cortos que pla-
nificando sin emplear abstracciones y, ademas, reduce el proceso de busqueda.
2.5. Conclusiones
En este capıtulo hemos hecho un resumen sobre el problema de la planifica-
cion en Inteligencia Artificial. En su vertiente mas tradicional, un problema de
planificacion consiste en la seleccion de un conjunto de acciones que permitan
alcanzar un grupo de objetivos a partir de una situacion inicial determinada.
La investigacion en este campo no solo se ha centrado en el desarrollo de
tecnicas eficientes para generar planes, sino que tambien ha estudiado diver-
sos formalismos para poder describir los problemas a manejar. El lenguaje
STRIPS representa un primer paso importante para modelar problemas de
planificacion. Este lenguaje describe el estado actual y los objetivos como una
conjuncion de hechos. Las acciones se definen en el dominio como la unica
forma de modificar un estado: si las condiciones para aplicar una accion se
cumplen en dicho estado, los efectos de dicha accion (insercion y eliminacion
de hechos) provocan la transicion a un nuevo estado. Uno de los principales
problemas de STRIPS es la falta de expresividad para modelar problemas
complejos. Por este motivo han aparecido diversas extensiones, como ADL y
las distintas versiones de PDDL, que mejoran sustancialmente la expresividad.
Estas extensiones permiten expresar, por ejemplo, condiciones mas complejas,
restricciones numericas y acciones durativas.
Desde la aparicion de STRIPS, se han desarrollado una gran variedad de
estrategias de busqueda sobre distintos espacios de busqueda. Durante los anos
2. La planificacion en I.A. 39
70 y 80, el esfuerzo se centro en problemas tipo puzzle, como el mundo de blo-
ques o las torres de Hanoi, que presentaban fuertes interacciones entre objeti-
vos y acciones. El objetivo era encontrar el plan optimo y, aunque se realizo un
progreso considerable en las tecnicas de busqueda, ningun planificador fue ca-
paz de resolver problemas con una mınima aplicacion practica. La aparicion
de Graphplan a principios de los 90, genero un gran interes pues constituıa
una aproximacion totalmente nueva. Graphplan realiza un analisis de alcanza-
bilidad del espacio de estados del problema. La representacion compacta de la
informacion obtenida permitio superar ampliamente el rendimiento del resto
de aproximaciones de la epoca.
Tras el exito de Graphplan, el interes en la resolucion de problemas de
planificacion resurgio. Aparecieron entonces nuevas aproximaciones, como la
planificacion heurıstica o las tecnicas de transformacion del problema de pla-
nificacion, que pronto superaron el rendimiento de Graphplan. Estos nuevos
avances tambien permitieron la reaparicion de antiguas tecnicas, como la plani-
ficacion de orden parcial, que practicamente se habıan olvidado por cuestiones
de eficiencia. Actualmente, una de las ultimas tendencias es la combinacion de
distintas tecnicas para sacar partido de las ventajas que ofrece cada una de
ellas.
Paralelamente al avance de los sistemas de planificacion totalmente auto-
matizados, la planificacion dependiente del dominio tambien ha progresado
en los ultimos anos. En esta aproximacion, el usuario codifica a mano cierto
conocimiento sobre un dominio o problema en particular. El planificador es
capaz de explotar dicha informacion, generalmente en forma de reglas de con-
trol o jerarquıas de abstracciones, para obtener un rendimiento muy superior
al de los planificadores independientes del dominio. La principal desventaja es
el coste de codificar manualmente este conocimiento adicional, aunque existen
diversas tecnicas que permiten analizar el dominio de forma automatica.
Capıtulo 3
Planificacion practica
En el capıtulo anterior presentamos los conceptos y las principales tecnicas
de lo que comunmente se denomina como planificacion clasica. La planificacion
clasica se centra principalmente en el desarrollo de algoritmos para la resolu-
cion eficiente de problemas de planificacion, sin considerar como van a ponerse
en practica los planes obtenidos. La mayorıa de los avances que actualmente
se estan produciendo en el campo de la planificacion tratan de resolver los
problemas que surgen al tener en cuenta la ejecucion de los planes en entornos
reales [Weld 1999]. Esta nueva vertiente de investigacion se denomina planifi-
cacion practica [Wilkins 1988], aunque tambien se conoce como planificacion
neo-clasica [Ghallab et al. 2004] o, simplemente, como planificacion no clasi-
ca. En este capıtulo se hara un repaso por los conceptos y las tecnicas mas
importantes dentro de la planificacion practica.
3.1. Introduccion
Todo sistema de planificacion que deba trabajar en entornos reales debe
enfrentarse a la inherente complejidad del mundo real. Los primeros plani-
ficadores que surgieron no eran capaces de superar dicha dificultad y, por lo
tanto, fue necesario establecer una serie de asunciones o simplificaciones. Estas
simplificaciones, introducidas para definir problemas tratables en las investi-
gaciones iniciales, en general no se cumplen en situaciones reales [Pollack y
Horty 1999]. Como muestra la figura 3.1, las simplificaciones se realizan so-
bre los cuatro elementos clave de un sistema de planificacion: el entorno, las
41
42 3.1. Introduccion
acciones, las percepciones y los objetivos.
Figura 3.1: Planificacion clasica vs. planificacion practica: principales simpli-ficaciones
• Asunciones sobre el entorno. Una de las simplificaciones menos rea-
listas es suponer que el planificador tiene un conocimiento exacto y com-
pleto sobre el estado del mundo. Esta cualidad se denomina omniscien-
cia, y equivale a calificar al mundo como completamente observable.
Lo contrario, y lo mas comun en entornos reales, es que el mundo sea
parcialmente observable. En estos casos, el planificador desconoce deter-
minada informacion sobre el mundo, generalmente aquella que queda
fuera del alcance de los sensores de los que dispone. La principal con-
secuencia de la presencia de informacion incompleta es que deja se ser
valida la asuncion del mundo cerrado - los hechos que no se encuentran
en el modelo que el planificador tiene sobre el mundo son falsos -, uno
de los principales supuestos de los planificadores clasicos tradicionales
[Golden et al. 1994].
La segunda simplificacion importante es considerar el mundo como estati-
co. Un mundo es estatico cuando los unicos cambios que se producen en el
3. Planificacion practica 43
entorno se deben a las acciones ejecutadas por el agente de planificacion
[Veloso et al. 1998]. En mundos dinamicos, por el contrario, existe una
gran variedad de agentes externos (personas, fenomenos meteorologicos,
etc.) que pueden actuar sobre el entorno [Nareyek y Sandholm 2003].
Estos cambios en el estado del mundo, que generalmente se producen sin
conocimiento del planificador, hacen necesario la inclusion de mecanis-
mos de monitorizacion de la ejecucion. Estos mecanismos se comentan
brevemente en la seccion 3.2.
• Asunciones sobre las acciones. Sobre las acciones, la planificacion
clasica tambien hace dos importantes asunciones. La primera de ellas es
suponer que las acciones son deterministas, es decir, que el efecto que
produce una accion es siempre conocido y predecible. De esta forma, la
funcion de transicion entre estados es determinista y solo depende del
estado anterior y de la accion ejecutada. Es mas realista, sin embargo,
considerar que existe cierta incertidumbre sobre el efecto que produce
una accion: como ocurre con frecuencia en la realidad, las acciones no
siempre tienen exito. En estos casos, el resultado de ejecutar una accion
no determinista sobre un estado no conduce siempre al mismo estado.
Una posicion intermedia es considerar que la probabilidad de alcanzar un
determinado estado al ejecutar una accion es conocida. Estas acciones se
denominan probabilısticas o estocasticas, y se especifican asociando una
determinada probabilidad a cada uno de sus posibles efectos. Eviden-
temente, las acciones no deterministas y/o probabilısticas requieren la
monitorizacion de la ejecucion para determinar el efecto que han tenido
en la realidad [Blythe 1994].
La segunda simplificacion consiste en considerar que las acciones son
instantaneas. Ignorar la duracion de las acciones representa un problema
en situaciones donde algunos recursos solo estan disponibles en deter-
minados momentos o donde alcanzar los objetivos solo es util en cier-
tos intervalos de tiempo [Coddington et al. 2001]. Ademas, el manejo
explıcito de acciones durativas [Fox y Derek 2003] permite precisar en
que momento durante la ejecucion de una accion son necesarias las pre-
condiciones y cuando aparecen los efectos. Los planificadores capaces de
44 3.1. Introduccion
manejar tiempos reciben el nombre de planificadores temporales. A pe-
sar del importante aumento en la expresividad, estos planificadores se
suelen considerar como clasicos ya que usualmente no tienen en cuenta
la ejecucion de los planes. De hecho, la principal consecuencia de que las
acciones tengan duracion es que estas dejan de ser atomicas y, por lo
tanto, puede ser interrumpidas. Sin embargo, son pocos los sistemas que
manejan acciones durativas no deterministas.
• Asunciones sobre la percepcion. La percepcion del entorno es un
aspecto ignorado en la planificacion clasica puesto que se asume que
toda la informacion necesaria se conoce de antemano. Tanto en entor-
nos dinamicos como con informacion incompleta, la percepcion puede
ser a menudo la unica forma de alcanzar los objetivos. Los mecanismos
de los que dispone un agente de planificacion para adquirir informacion
sensorial son la monitorizacion y las acciones de sensorizacion (ver el
apartado 3.2 en este mismo capıtulo). Desafortunadamente, al igual que
los efectores que emplea el agente para actuar sobre el mundo, los sen-
sores tampoco son perfectos [Bacchus et al. 1999]. Se denomina, por lo
tanto, percepcion imperfecta cuando los sensores disponibles son ruidosos
y existe incertidumbre acerca de la informacion obtenida.
• Asunciones sobre los objetivos. Los problemas clasicos de planifi-
cacion se definen, entre otras cosas, por un conjunto de objetivos que
es necesario alcanzar. No se contempla que ocurre si alguno de dichos
objetivos no se puede conseguir: ¿es util tratar de alcanzar el resto de
objetivos?. En muchos problemas reales es preferible satisfacer parcial-
mente los objetivos antes que indicar que no hay solucion y dar por
concluido el proceso. Se dice que los objetivos son categoricos cuando to-
dos los objetivos deben satisfacerse necesariamente en el estado final y,
por lo tanto, el logro aislado de objetivos no aporta ningun valor [Pollack
y Horty 1999].
Una ultima simplificacion es asumir que los objetivos son estaticos, es de-
cir, que se mantienen invariables durante todo el proceso de planificacion
y ejecucion. Aunque en bastantes ocasiones es ası, en muchos problemas
reales los objetivos van cambiando con el tiempo: los objetivos que ya se
3. Planificacion practica 45
han conseguido se eliminan, al tiempo que se le encargan nuevas tareas
al planificador [Haigh y Veloso 1996]. Los conceptos de satisfacibilidad
parcial y de objetivos dinamicos estan estrechamente unidos, ya que la
adicion incremental de objetivos implica que dichos objetivos tienen valor
por sı mismos.
Aunque estas asunciones son poco realistas en entornos dinamicos o con
incertidumbre, la planificacion clasica sigue jugando un papel muy impor-
tante. Por una parte, todas las aproximaciones practicas tienen su base en
tecnicas clasicas de planificacion. Ademas, existen muchos problemas reales
de planificacion (generalmente problemas de optimizacion) que no violan es-
tas simplificaciones: planificacion del recorrido de un taladro, programacion de
procesos industriales, diseno de campanas militares, control de crisis, asistentes
de actividades turısticas, etc.
Por otra parte, unas pequenas modificaciones pueden permitir utilizar pla-
nificadores clasicos para superar algunas de estas simplificaciones [Boutilier
2000]. Muchas veces es suficiente con emplear metodos de monitorizacion de
la ejecucion y replanificacion. De hecho, el primer trabajo importante que
integro un sistema de planificacion en un entorno real seguıa el paradigma
clasico. Este fue el proyecto del robot Shakey [Fikes y Nilsson 1971], de SRI
International. El robot Shakey disponıa de una camara de video, un medidor
de distancia por triangulacion y de sensores de contacto, y era capaz de mo-
verse por distintas habitaciones y mover objetos rıgidos (ver figura 3.2). Su
estructura de control se basaba en la de GPS (General Problem Solver [Ernst
y Newell 1969]) y en el sistema de demostracion de teoremas QA3 [Green
1969]. Pese a que el proyecto no produjo unos resultados practicos esperanza-
dores, dejo importantes legados dentro del area de la planificacion (el sistema
STRIPS, planificacion jerarquica, etc.)
Tras el proyecto Shakey, se han realizado importantes progresos con el fin
superar los obstaculos que supone la ejecucion de los planes en entornos reales.
En este capıtulo se describen las principales tecnicas que se han desarrollado
para superar las simplificaciones clasicas. Sin embargo, es necesario introdu-
cir primero una serie de conceptos nuevos relacionados con la percepcion del
entorno, que aparecen al tener en cuenta la ejecucion de los planes.
46 3.2. Percepcion del entorno
Figura 3.2: Shakey: el primer sistema de planificacion y ejecucion
3.2. Percepcion del entorno
La percepcion consiste en la adquisicion e interpretacion de informacion
relevante del entorno mediante el uso de sensores. En los sistemas de pla-
nificacion clasica, la percepcion no es necesaria puesto que se asume que el
planificador dispone de toda la informacion necesaria de antemano y que los
planes transcurren siempre como esta previsto. Obviamente, cuando se gene-
ran planes con el objetivo de ejecutarlos en entornos reales, estas asunciones
son poco realistas. La percepcion, en estos casos, es el principal mecanismo
para garantizar el exito de la ejecucion de los planes.
Las dos tecnicas fundamentales para la percepcion del entorno son la mo-
nitorizacion y las acciones de sensorizacion. La monitorizacion trata de descu-
brir discrepancias entre el estado real del entorno y las creencias del planifica-
dor. Las acciones de sensorizacion, por el contrario, se emplean para suplir la
falta de informacion mediante la adquisicion del conocimiento necesario para
el proceso de planificacion. Estas dos tecnicas se describen mas detalladamente
en las siguientes secciones.
3. Planificacion practica 47
3.2.1. Monitorizacion de la ejecucion
La monitorizacion de la ejecucion es el proceso de encontrar diferencias
significativas entre el estado real del entorno y las creencias que el planificador
tiene del mismo [De Giacomo et al. 1998]. Existen numerosas razones por las
que es conveniente integrar un proceso de monitorizacion en un sistema de
planificacion:
• Deteccion de fallos internos. Un mecanismo de monitorizacion puede
detectar comportamientos erroneos en la ejecucion ocasionados tanto por
fallos hardware como por errores software.
• Deteccion de contingencias. Ciertos eventos inesperados pueden in-
validar la ejecucion de un plan. La monitorizacion permite detectar tanto
cambios inesperados en el entorno como acciones cuyos efectos no han
sido los previstos.
• Deteccion de oportunidades. Durante la ejecucion de un plan pueden
aparecer situaciones ventajosas. Estas situaciones no invalidan necesaria-
mente la ejecucion del plan, aunque el planificador puede sacar provecho
de ellas para mejorar notablemente la calidad del plan.
• Seguimiento del estado. Algunos sistemas de planificacion, sobreto-
do aquellos con un comportamiento mas reactivo (ver apartado 3.3.3),
necesitan hacer un seguimiento continuo de la evolucion del entorno.
La implementacion de un modulo de monitorizacion en un sistema real re-
porta muchas ventajas, pero se enfrenta a dos grandes dificultades. La primera
de ellas se debe a los errores que generan los sensores y a las interpretacio-
nes incorrectas de la informacion percibida. Esta percepcion imperfecta del
entorno causa que el planificador tenga una impresion erronea del estado en
el que se encuentra y, por lo tanto, genere planes de baja calidad o incluso
planes invalidos. Las diversas soluciones propuestas a este problema se basan
principalmente en la determinacion estadıstica del estado mas probable. El sis-
tema Livingston [Williams y Nayak 1996], por ejemplo, hace un seguimiento de
los comandos enviados al sistema fısico, y compara el estado previsto con las
observaciones obtenidas por los sensores fısicos. En caso de detectar diferen-
cias significativas, Livingstone realiza un diagnostico del problema mediante
48 3.2. Percepcion del entorno
la busqueda de la combinacion mas probable de los elementos del estado que
son consistentes con las observaciones.
Un sistema similar es MACKSI [Washington 2000], particularmente di-
senado para monitorizar vehıculos autonomos. Este sistema utiliza dos impor-
tantes tecnicas para estimar el estado mas probable: la diagnosis basada en
modelos cualitativos y los filtros Kalman. Ambas tecnicas se combinan para
superar las deficiencias que presentan por separado: las tecnicas basadas en
modelos cualitativos se basan en transiciones que llevan al sistema de un esta-
do a otro, mientras que la informacion percibida suele ser un flujo continuo de
valores que varıan rapidamente. Por otra parte, los filtros Kalman permiten
el estudio de multiples hipotesis, pero carecen de metodos para seleccionar
automaticamente los estados a estudiar.
Otro ejemplo es el sistema de monitorizacion de navegacion para el ro-
bot Xavier [Fernandez et al. 2004]. Este sistema trata los errores de posi-
cionamiento mediante una discretizacion continua de los estados basada en
POMDP (Procesos de Decision de Markov Parcialmente Observables) y filtros
de partıculas (un caso especial de filtros bayesianos). Existen tambien trabajos
que combinan diversos tipos de filtros para mejorar la eficiencia del sistema
de monitorizacion. En [Verma et al. 2003], por ejemplo, se combinan filtros
de partıculas y filtros Kalman para la monitorizacion de fallos en vehıculos
espaciales.
La segunda dificultad que debe afrontar un sistema de monitorizacion es
el coste asociado a la sensorizacion. La monitorizacion consume generalmente
tiempo y recursos, por lo que es importante estudiar que factores monitorizar y
cuando hacerlo. Generalmente, un sistema mınimo de monitorizacion verifica,
al menos, las precondiciones de las acciones del plan. Si no es posible moni-
torizar todas las precondiciones, se puede seleccionar solo un subconjunto de
ellas, de forma que se obtenga un equilibrio optimo entre el coste y la utili-
dad de la informacion adquirida. El modelo propuesto en [Boutilier 2000], por
ejemplo, formula este problema mediante POMDP. Para establecer los crite-
rios de decision, es necesario incluir en el modelo cierta informacion, como la
probabilidad de que una precondicion falle, o el coste de intentar realizar una
accion cuando sus precondiciones no se cumplen.
3. Planificacion practica 49
Cuando la monitorizacion no supone un coste excesivo, es posible moni-
torizar otros elementos del entorno que le permitan al planificador descubrir
situaciones ventajosas para mejorar el plan. La tecnica RBM (rationale-based
monitoring [McCarthy y Pollack 2000]) define, por ejemplo, cuatro tipos de
elementos cuya monitorizacion puede influir en el proceso de planificacion:
• Subobjetivos. Se corresponden con precondiciones de las acciones.
• Condiciones de utilizacion. A diferencia de los subobjetivos, las con-
diciones de utilizacion representan condiciones que el planificador no
puede o no debe modificar.
• Condiciones cuantificadas. Representan precondiciones cuantificadas
universalmente, cuya extension es conveniente monitorizar durante la
ejecucion.
• Preferencias. Representan preferencias del usuario sobre la informa-
cion. Estas preferencias pueden especificarse directamente mediante re-
glas de control.
Por todas estas dificultades, la integracion de un modulo de monitorizacion
en un sistema de planificacion es todavıa una lınea abierta de investigacion.
Las eficiencia de las aproximaciones propuestas depende en gran medida del
sistema fısico sobre el que implemente, dificultando el desarrollo de soluciones
independientes del dominio.
3.2.2. Acciones de sensorizacion
Las acciones de sensorizacion permiten la planificacion en situaciones en
las que algunos hechos son inciertos o no se dispone de informacion completa
sobre el entorno (observabilidad parcial). Estas acciones se incluyen en el plan
para adquirir informacion sobre el entorno durante la ejecucion. Es frecuente,
por lo tanto, que los sistemas de planificacion que trabajan con acciones de
sensorizacion generen planes contingentes: dependiendo del resultado de la
ejecucion de una accion de sensorizacion se ejecutara una secuencia de acciones
u otra. En el apartado 3.3.2 se describe mas detalladamente esta aproximacion.
50 3.2. Percepcion del entorno
La planificacion con acciones de sensorizacion requiere una serie de exten-
siones a la representacion clasica de las acciones y de los planes [Draper et al.
1994]:
• Es necesario representar que el planificador tiene informacion incompleta
sobre el estado del mundo.
• Es necesario diferenciar las acciones que realizan cambios en el entorno
de las acciones que modifican la informacion de estado que el planificador
tiene sobre el mundo.
• Es necesario poder representar planes cuyas acciones dependan de la
informacion obtenida durante la ejecucion.
Uno de los primeros planificadores que incorporo acciones de sensorizacion
para producir planes condicionales fue CNLP [Peot y Smith 1992]. Este sis-
tema permite representar informacion incierta mediante la palabra reservada
unknown. Las acciones de sensorizacion se emplean para comprobar si un de-
terminado hecho es cierto o falso. Supongamos, por ejemplo, que una persona
desea coger un avion, pero desconoce en que puerta de embarque se encuen-
tra. Cuando dicha persona esta frente a la pantalla de informacion de salidas,
puede comprobar si el avion se encuentra en una determinada puerta o no. La
sintaxis de CNLP para describir dicha accion es la siguiente:
(observe (observar-pantalla ?persona ?avion ?puerta)
pre: unknown(en-puerta ?acion ?puerta)
(frente-pantalla ?persona)
+ α1: (en-puerta ?avion ?puerta)
+ α2: ¬(en-puerta ?avion ?puerta)
Los efectos de las acciones de sensorizacion en CNLP (α1 y α2) son mu-
tuamente excluyentes y abarcan todos los posibles resultados de la accion. Es,
por lo tanto, un modelo de sensorizacion perfecta, pues no permite expresar
efectos inciertos en las acciones.
En el mismo ano se propuso tambien el formalismo UWL [Etzioni et al.
1992]. UWL es una extension del lenguaje STRIPS que permite trabajar con
informacion incompleta. UWL define el concepto de variables de ejecucion
3. Planificacion practica 51
(run-time variables) para almacenar la informacion percibida del entorno. Es-
tas variables tienen inicialmente un valor desconocido hasta que su valor se
establece mediante una accion de sensorizacion. Las variables de ejecucion
pueden tomar cualquier valor dentro de su dominio, por lo que se reduce el
numero de acciones necesarias para averiguar la informacion deseada. Siguien-
do el ejemplo anterior, para averiguar que puerta utilizar para embarcar en el
avion solo harıa falta una accion de sensorizacion. Con CNLP, sin embargo, es
necesario comprobar cada una de las puertas hasta encontrar la correcta. La
sintaxis en UWL para la accion de sensorizacion del ejemplo es la siguiente:
name: (observar-pantalla ?persona ?avion !puerta)
preconds: (satisfy (frente-pantalla ?persona).T)
postconds: (observe (en-puerta ?avion !puerta).T)
Las variables de ejecucion se representan precedidas del signo de admira-
cion. La letra T que aparece tras los literales indica que deseamos el valor de
verdad True para dichos literales.
Al igual que STRIPS, el lenguaje UWL tambien se ha extendido para au-
mentar su expresividad. El lenguaje SADL [Golden y Weld 1996], por ejemplo,
combina UWL con elementos de ADL (como efectos condicionales y cuantifi-
cacion universal, descritos el apartado 2.2.2). SADL se ha empleado en el pla-
nificador XII [Golden et al. 1994]. Este planificador permite alcanzar objetivos
universalmente cuantificados y evita la ejecucion de acciones de sensorizacion
redundantes.
Tras la aparicion de Graphplan, la eficiencia de los planificadores contingen-
tes mejoro notablemente. El planificador SGP (Sensory Graphplan) [Weld et
al. 1998], por ejemplo, era capaz de resolver rapidamente problemas de tamano
reducido, algo de lo que los anteriores planificadores como CNLP y Cassandra
[Pryor y Collins 1996] no eran capaces. El modelo de sensorizacion de SGP
se denomina SSM. Ademas de los tradicionales efectos causales, las acciones
en SSM pueden tener cero o mas efectos observacionales. Estos efectos se es-
pecifican mediante la sintaxis (sense exp), donde exp es una expresion logica
arbitraria formada por proposiciones.
Pese a la existencia de muchas otras alternativas para representar acciones
de sensorizacion, como AK [Son y Baral 2001] o el propuesto en [Amir 2002],
no existe un estandar ampliamente aceptado. Se ha definido, sin embargo, una
52 3.2. Percepcion del entorno
extension para el lenguaje estandar PDDL 2.1. Esta extension se denomina
NPDDL [Bertoli et al. 2003], y permite especificar las siguientes caracterısticas:
• Incertidumbre en el estado inicial. Los hechos y las variables numeri-
cas inicialmente inciertas se describen, como en otras aproximaciones,
mediante la clausula unknown. No obstante, para las variables numeri-
cas tambien es posible proporcionar una lista valores posibles, entre los
cuales se encontrara el valor real. Para ello se emplea la palabra reservada
oneof.
• Acciones no determinısticas. El no determinismo en las acciones se
modela mediante efectos inciertos, por lo que la aplicacion de una accion
sobre un mismo estado puede conducir a distintos estados. Los efectos
inciertos, al igual que la incertidumbre en el estado inicial, se expresan
mediante las clausulas unknown y oneof.
• Sensorizacion. NPPDL permite expresar la sensorizacion del entorno
de dos formas distintas. Una de ellas consiste en marcar una proposicion
o variable numerica como observable. De esta forma se indica que dicha
proposicion o variable se observa continuamente y de forma automatica.
La segunda opcion es definir una accion de sensorizacion, mediante la
palabra reservada observation. Estas acciones permiten modelar sensores
imperfectos, y se representan mediante formulas logicas parametrizadas.
En el ejemplo propuesto de encontrar la puerta de embarque de un avion,
se podrıa definir una accion que comprobara si la puerta correspondiente
es la puerta A. Si la persona se encuentra frente a la pantalla, dicha
accion devolvera verdadero o falso, dependiendo de si la puerta A es la
correcta o no. Si la persona no esta frente a la pantalla, el valor devuelto
sera indefinido. La sintaxis para dicha accion es la siguiente:
(:observation comprobar-avion-en-puertaA - :boolean
(and
(imply (comprobar-avion-en-puertaA)
(or (not (persona-frente-pantalla))
(avion-en-puertaA)))
(imply (not (comprobar-avion-en-puertaA))
3. Planificacion practica 53
(or (not (persona-frente-pantalla))
(not (avion-en-puertaA))))))
Este lenguaje ha sido implementado en el planificador MBP (Model Based
Planner, [Bertoli et al. 2001b]). Ademas de las mejoras en la expresividad,
el rendimiento promedio de MBP ha sido superior al de otros planificadores
contingentes actuales, como QBFPLAN [Rintanen 1999a] o GPT [Bonet y
Geffner 2001a].
3.3. Tecnicas de planificacion practica
Desde principios de los anos 70 han ido surgiendo diferentes tecnicas pa-
ra facilitar la planificacion en entornos reales (dinamicos, no deterministas,
parcialmente observables, etc.) Entre estas tecnicas destacan las siguientes:
• Planificacion conforme (conformant planning). Esta tecnica permite
generar planes en entornos parcialmente observables, donde las condicio-
nes iniciales no son totalmente conocidas.
• Planificacion contingente. Esta tecnica genera planes en los que algu-
nas ramas se ejecutan condicionalmente, dependiendo de la informacion
adquirida durante la ejecucion.
• Planificacion reactiva. La planificacion reactiva hace referencia a aque-
llos sistemas que tienen una funcion capaz de recomendar una accion a
realizar segun el estado actual.
• Sistemas de planificacion y ejecucion. Esta tecnica alterna (o sola-
pa) las etapas de planificacion y ejecucion. El planificador, por lo tanto,
puede utilizar informacion que solo esta disponible en tiempo de ejecu-
cion.
Estas tecnicas tienen generalmente su base teorica en las aproximaciones
clasicas de planificacion. De hecho, son muchos los planificadores clasicos que
se han adaptado, mediante alguna de las citadas tecnicas, para aumentar su
funcionalidad practica.
54 3.3. Tecnicas de planificacion practica
No existe, sin embargo, una tecnica de planificacion practica que sobresalga
sobre el resto. La seleccion de la tecnica mas apropiada depende fundamen-
talmente de las caracterısticas propias del entono. En los siguientes apartados
se describen mas detalladamente estas tecnicas y sus principales entornos de
aplicacion.
3.3.1. Planificacion conforme
La planificacion conforme (conformant planning) consiste en la generacion
de planes en situaciones con incertidumbre en el estado inicial y en los efectos
de las acciones, y sin la posibilidad de monitorizar la ejecucion del plan. Los
planes generados deberan tener exito independientemente del estado en el que
se encuentre el mundo inicialmente (dentro de un conjunto de estados posi-
bles). Esta tecnica es, por lo tanto, muy apropiada en entornos en los que la
sensorizacion es imposible o tiene un coste muy alto. Cuando la sensorizacion
es posible, sin embargo, la planificacion conforme presenta una gran desven-
taja: no siempre existe un plan conforme para resolver un problema, aunque
existan planes validos. Ademas, los planes conformes son habitualmente mas
largos y costosos que los obtenidos con tecnicas basadas en la observacion.
La figura 3.3 muestra un problema de navegacion de un robot que ilustra el
funcionamiento de esta tecnica. En la situacion inicial, el planificador conoce
la existencia de tres obstaculos pero existe la posibilidad de que hayan otros
tres obstaculos adicionales. Este problema tambien muestra la definicion de
varios estados finales, ya que el objetivo consiste en que el robot alcance una
de las casillas de la ultima fila. Puesto que los planificadores conformes son
capaces de razonar sobre disyunciones, la mayorıa de ellos tambien soporta la
definicion de diferentes estados objetivo.
El numero de estados iniciales posibles en el ejemplo es ocho, es decir, el
numero total de combinaciones de los tres posibles hechos inciertos. En gene-
ral, el numero de estados iniciales es 2i, donde i representa el numero de hechos
inciertos en el estado inicial. Esta explosion combinatoria aumenta significa-
tivamente la complejidad del proceso de planificacion. Existen principalmente
dos metodos para afrontar este problema:
• Realizar la busqueda del plan en todos los mundos simultaneamente.
Esta es la opcion que siguen la mayorıa de planificadores conformes.
3. Planificacion practica 55
Figura 3.3: Problema de navegacion de un robot en el que existe incertidumbresobre la existencia de varios obstaculos.
• Generar el plan en un mundo y extenderlo al resto. La principal dificultad
que presenta esta aproximacion es la forma de limitar el numero de planes
posibles, pero invalidos, que genera el planificador.
Los primeros planificadores capaces de generar planes conformes fueron
en realidad planificadores probabilısticos (descritos en la seccion 3.3.2). Entre
estos planificadores destacaron BURIDAN [Kushmerick et al. 1995], su exten-
sion C-BURIDAN [Draper et al. 1994] - que anadıa el soporte para acciones
de sensorizacion -, y UDTPOP [Peot 1998]. Uno de los primeros planificadores
conformes no probabilısticos fue CGP (Conformant Graphplan, [Smith y Weld
1998]). CGP es un planificador basado en Graphplan, y se basa en la idea de
generar un grafo distinto para cada mundo posible. La eficiencia, muy baja en
los anteriores planificadores, se mejora notablemente mediante el estudio de
interacciones problematicas y el calculo de relaciones de exclusion mutua en-
tre los diferentes mundos. CGP sigue el primer metodo que hemos comentado,
buscando los objetivos en todos los mundos posibles al mismo tiempo.
Siguiendo tambien el primer metodo, tambien se han desarrollado planifi-
cadores conformes basados en BDDs (arboles de decision binarios). El planifi-
cador CMBP [Cimatti y Roveri 2000], por ejemplo, codifica todos los posibles
estados iniciales del mundo en un BDD. La aplicacion de una accion sobre
56 3.3. Tecnicas de planificacion practica
el BDD inicial genera un nuevo BDD que representa el resultado de dicha
accion para cada posible estado inicial. HSCP [Bertoli et al. 2001a], suce-
sor de CMBP, combina la representacion compacta mediante BDDs con una
busqueda heurıstica regresiva. La busqueda heurıstica mejora la eficiencia a
costa de perder la admisibilidad (CMBP realiza una busqueda en anchura).
Un ultimo miembro de esta familia de planificadores es KACMBP [Bertoli
y Cimatti 2002]. Este planificador tambien realiza una busqueda heurıstica,
aunque con encadenamiento hacia adelante. La busqueda se apoya, ademas,
en un sofisticado analisis de alcanzabilidad. Otro importante planificador con-
forme heurıstico es GPT (General Planning Tool, [Bonet y Geffner 2001a]).
GPT es, no obstante, un planificador optimo, pues emplea una busqueda A∗.
La heurıstica admisible se calcula como una estimacion del coste maximo de
alcanzar los objetivos desde cualquiera de los posibles estados del mundo.
Aunque en menor medida, tambien se han desarrollado planificadores con-
formes basados en el segundo metodo que hemos comentado: generar el plan
en un mundo y extenderlo al resto. C-Plan [Castellini et al. 2001], por ejem-
plo, genera planes que alcanzan los objetivos desde, al menos, un estado inicial
posible, siguiendo una aproximacion SAT. La validez de dicho plan como plan
conforme se contrasta con el resto de estados posibles. A diferencia de esta
tecnica de prueba y error, el planificador fragPlan [Kurien et al. 2002] trata de
crear un plan conforme valido mediante el ensamblaje de fragmentos de plan
que alcanzan los objetivos en cada mundo posible.
En la actualidad, algunos autores estan intentando extender diversos pla-
nificadores clasicos para soportar la planificacion conforme. Ejemplos de esta
practica son los planificadores Conformant-FF [Brafman y Hoffmann 2004]
y CAltAlt [Bryce y Kambhampati 2004]. Ambos planificadores heredan la
eficiencia de sus predecesores clasicos (FF y AltAlt respectivamente) y, por
termino medio, mejoran las prestaciones del resto de planificadores conformes
actuales.
3.3.2. Planificacion contingente
La planificacion contingente consiste en la generacion de planes en los que
algunas ramas se ejecutan condicionalmente, dependiendo de la informacion
obtenida del entorno en tiempo de ejecucion. Los planes contingentes, por lo
3. Planificacion practica 57
tanto, estan preparados para la aparicion de un reducido numero de posibles
problemas previstos de antemano.
Para la generacion de estos planes, sin embargo, existen dos grandes apro-
ximaciones: la planificacion condicional y la probabilıstica. La planificacion
condicional asume que el planificador no conoce la probabilidad de los distin-
tos resultados que puede producir una accion. Emplea, por lo tanto, acciones
de sensorizacion para descubrir los efectos inesperados de las acciones, ası como
informacion necesaria que inicialmente desconoce. La planificacion probabilısti-
ca, por el contrario, no observa el entorno explıcitamente, pues asume que
conoce la probabilidad de que una accion tenga un determinado resultado.
Estas dos aproximaciones se describen a continuacion con mas detalle.
Planificacion condicional
La planificacion condicional se basa en la introduccion en el plan de acciones
de sensorizacion como mecanismo para adquirir la informacion no disponible
durante el proceso de planificacion, y para hacer frente a un numero limitado
de posibles resultados erroneos de las acciones. Los planes condicionales no se
representan como una secuencia de acciones, sino como programas complejos
con sentencias condicionales y bucles. La secuencia final de acciones ejecutadas
depende del resultado de las acciones de sensorizacion realizadas durante la
ejecucion.
El primer planificador condicional fue Warplan-C [Warren 1976]. Warplan-
C extiende STRIPS para representar acciones condicionales. Estas acciones
tienen dos resultados posibles: P o ¬P . En la primera etapa de planificacion,
Warplan-C genera un plan secuencial, suponiendo que las acciones condicio-
nales solo tienen el resultado P . En las siguientes etapas se va completando el
plan condicional, generando las correspondientes ramas para las alternativas
no consideradas.
Una variante de Warplan-C es el planificador SENSp [Etzioni et al. 1992].
El lenguaje que emplea es el UWL, descrito en la seccion 3.2.2. Al igual que
su predecesor, SENSp estudia sucesivamente las diferentes alternativas. En
SENSp, sin embargo, las alternativas se crean al asignar los diferentes valo-
res posibles a variables de ejecucion. Otro ejemplo es el planificador CNLP
[Peot y Smith 1992], que hereda de Warplan-C la forma de definir acciones
58 3.3. Tecnicas de planificacion practica
condicionales (en la seccion 3.2.2 se comenta su sintaxis con mas detalle). La
aproximacion, no obstante, es distinta, pues CNLP se basa en planificacion de
orden parcial.
Actualmente no existen apenas soluciones basadas en la planificacion condi-
cional. Entre los sistemas mas recientes destacan el planificador lineal regresivo
Plinth [Goldman y Boddy 1994a] y el planificador de orden parcial Cassan-
dra [Pryor y Collins 1996]. El principal problema de la planificacion es que
la complejidad de los planes se incrementa exponencialmente en funcion del
numero de acciones condicionales introducidas. La compleja estructura de los
planes condicionales y la imposibilidad de manejar sensores imperfectos son
otros factores negativos de esta aproximacion.
Planificacion probabilıstica
La planificacion probabilıstica establece distribuciones de probabilidad pa-
ra modelar la incertidumbre en los dominios. Conociendo estas distribuciones
no es necesario intercalar en el plan acciones de sensorizacion aunque, eso sı,
es necesario monitorizar la ejecucion para descubrir los resultados reales de las
acciones. Los planes se representan generalmente mediante cadenas de Markov,
en las que las transiciones entre estados se etiquetan mediante su probabili-
dad asociada. No es posible, sin embargo, tener en cuenta todas las posibles
contingencias, sino solo las mas probables. La correctitud de un plan, por lo
tanto, se define en funcion de su probabilidad de exito.
La incertidumbre en un dominio puede aparecer principalmente de tres
formas [Blythe 1994]:
• Efectos no deterministas en las acciones, que se expresan mediante dis-
tribuciones de probabilidad.
• Incertidumbre acerca de las condiciones iniciales del problema.
• Incertidumbre sobre estados futuros debido a la ocurrencia de eventos
externos.
Para expresar estas nuevas caracterısticas es necesario, por lo tanto, de-
finir nuevos formalismos o nuevas extensiones para lenguajes existentes. Son
pocos los lenguajes proposicionales propuestos para modelar la incertidumbre
3. Planificacion practica 59
en los dominios. Recientemente, sin embargo, se ha presentado una exten-
sion al lenguaje PDDL que probablemente se convierta en un estandar para
la planificacion probabilıstica: el lenguaje PPDDL [Younes 2003]. Aparte de
las numerosas caracterısticas que soporta la version de PDDL 2.1, PPDDL
permite especificar probabilidades en las condiciones iniciales y en los efectos
de las acciones, y la definicion de recompensas. La version 1.0 de PPDDL se
empleo en la primera competicion de planificacion probabilıstica [Littman y
Younes 2004]. El grado de expresividad que se puede obtener es muy elevado,
como lo demuestra el siguiente ejemplo de definicion de un operador:
(:action drive-truck
:parameters (?t - truck ?src - city ?dst - city)
:precondition (and (truck-at-city ?t ?src)
(can-drive ?src ?dst)
)
:effect (and (not (truck-at-city ?t ?src))
(probabilistic
0.2 (forall (?wrongdst1 - city)
(when (wrong-drive1 ?src ?wrongdst1)
(forall (?wrongdst2 - city)
(when (wrong-drive2 ?src ?wrongdst2)
(forall (?wrongdst3 - city)
(when (wrong-drive3 ?src ?wrongdst3)
(probabilistic
1/3 (truck-at-city ?t ?wrongdst1)
1/3 (truck-at-city ?t ?wrongdst2)
1/3 (truck-at-city ?t ?wrongdst3)
)
))))))
0.8 (truck-at-city ?t ?dst)
)
)
)
Este operador pertenece al dominio Boxworld, version probabilıstica del
dominio clasico Logistics, empleado en la citada competicion. Este operador
60 3.3. Tecnicas de planificacion practica
muestra que al conducir un camion entre dos ciudades, la probabilidad de
alcanzar el destino correcto es del 80%. En el otro 20% de los casos, el camion
alcanzara un destino erroneo, seleccionado de forma equiprobable de entre tres
ciudades existentes.
A diferencia de la planificacion condicional, la planificacion probabilıstica
es un area de investigacion muy activa en la actualidad. Son numerosos, sin
embargo, los planificadores probabilısticos que permiten generar planes condi-
cionales (C-Buridan, Plinth, Weaver [Blythe 1998], etc.). La competicion de
planificacion probabilıstica tambien ha permitido conocer muchas de las ten-
dencias actuales. Los sistemas basados en procesos de decision de Markov si-
guen predominando. La resolucion de los MDPs se realiza tanto con tecnicas de
programacion dinamica como con algoritmos de busqueda heurıstica. Basados
en programacion dinamica destacan los planificadores FCPlanner [Holldobler
y Skvortsova 2004] o el descrito en [Teichteil-Konigsbuch y Fabiani 2004], que
emplean tecnicas como la abstraccion de estados para mejorar la eficiencia. Por
el contrario, los planificadores mGPT [Bonet y Geffner 2004] y el presentado
en [Feng et al. 2004] emplean diversas heurısticas para dirigir la busqueda.
Aparte de los procesos de decision de Markov, hay otras tecnicas aplica-
bles a la planificacion probabilıstica que ofrecen un buen rendimiento. Existen,
por ejemplo, planificadores como MAXPLAN [Majercik y Littman 1998] que
utilizan versiones probabilısticas de algoritmos SAT. Tambien es posible en-
contrar planificadores de orden parcial como Probapop [Onder et al. 2004],
version probabilıstica de VHPOP que, ademas, puede emplearse como plani-
ficador conforme. Diversas tecnicas dependientes del dominio tambien se han
trasladado con exito a la planificacion probabilıstica. Por ejemplo, NMRDPP
[Gretton et al. 2003] usa reglas de control especıficas del dominio, mientras que
el planificador descrito en [Fern et al. 2003] mejora iterativamente la polıtica
de control mediante metodos de aprendizaje y simulacion.
3.3.3. Planificacion reactiva
La planificacion reactiva hace referencia a aquellos sistemas que tienen una
funcion (implementado como una tabla o como un conjunto de reglas) capaz
de recomendar una accion a realizar dependiendo del estado actual. La dis-
ponibilidad de una funcion que describa el comportamiento del sistema ante
3. Planificacion practica 61
cualquier situacion simplifica el problema de trabajar en dominios dinamicos
y/o inaccesibles. Ademas, permite generar respuestas casi inmediatas en situa-
ciones de emergencia o, simplemente, cuando el tiempo disponible para actuar
sobre el entorno es reducido.
Una de las primeras aproximaciones reactivas que surgio fue la planifica-
cion universal [Schoppers 1987]. Un plan universal se define como una funcion
arbitraria cuyo dominio es el conjunto de posibles situaciones y cuyo codomi-
nio es el conjunto de las acciones posibles. Estos planes se suelen representar
como arboles de decision binarios (BDDs), y pueden sintetizarse automati-
camente mediante planificadores clasicos. Sin embargo, el elevado numero de
posibles situaciones hace su uso impracticable incluso en problemas pequenos
[Ginsberg 1989].
Existen diferentes propuestas para afrontar este problema. La arquitectu-
ra ERE (Entropy Reduction Engine [Drummond et al. 1991]), por ejemplo,
descompone jerarquicamente el sistema en tres componentes independientes.
Cada uno de estos componentes (ver figura 3.4) estudia el problema desde un
nivel distinto de abstraccion:
Figura 3.4: Arquitectura ERE para el calculo y la ejecucion de planes reactivos.
• El reactor. Dispone de un conjunto de reglas de control de la forma
〈estado〉 & 〈objetivo〉 −→ 〈accion〉. La labor del reactor es la de selec-
cionar una regla aplicable y ejecutar la accion correspondiente.
• El proyector. Produce planes y compila las reglas de control para las
situaciones mas probables. Este proceso tiene en cuenta tanto los cambios
controlables del entorno como los producidos por agentes externos.
62 3.3. Tecnicas de planificacion practica
• El reductor. Descompone el problema en subproblemas mas pequenos.
La proyeccion se realiza entonces de forma local, lo que evita la inefi-
ciencia que supone considerar el problema de forma global.
Como se puede observar, ERE es una arquitectura hıbrida que integra una
parte deliberativa con una parte reactiva. Las arquitecturas hıbridas son, en
general, la solucion mas habitual para superar los problemas de la planificacion
reactiva. De esta forma, el sistema es capaz de reaccionar rapidamente ante
las posibles situaciones, a la vez que emplea metodos de razonamiento para
mejorar la probabilidad de exito del plan. Una opcion interesante es disponer
de un algoritmo anytime, capaz de mejorar monotonicamente la probabilidad
de satisfaccion de los objetivos en funcion del tiempo empleado. Esta clase
general de algoritmos de planificacion reciben el nombre de algoritmos RFS
(Reaction-First Search [Drummond et al. 1993]).
Existen diversos ejemplos de sistemas reactivos basados en arquitecturas
hıbridas. XFRM [McDermott 1992], por ejemplo, es un sistema que dispone de
una librerıa de planes que le permite resolver los problemas. La planificacion
se convierte entonces en un proceso de mejora de los planes y de anticipacion y
prevision de fallos. Con un planteamiento similar, es posible encontrar sistemas
mas recientes, como APPEAL [Belker et al. 2004] o RAX-PS [Jonsson et al.
2000], destinados al control de robots autonomos. El sistema RAP (Reactive
Action Packages [Firby 1994]) hace un uso diferente de la librerıa de planes.
RAP hace uso de jerarquıas de control para la reutilizacion de planes. Aunque
los objetivos de alto nivel son diferentes entre problemas diferentes, muchas
de las tareas de bajo nivel comparten los mismos subobjetivos.
La planificacion reactiva, por lo tanto, generalmente se integra como parte
de la arquitectura de un sistema de ejecucion/monitorizacion mas complejo.
La relacion entre este tipo de sistemas y los sistemas basados en agentes ha
permitido a diversos autores combinar ambas areas. MACTA [Aylett et al.
1998], por ejemplo, es una arquitectura multiagente que emplea tecnicas de
planificacion deliberativa para coordinar varios agentes reactivos. La colabo-
racion entre estos agentes permite la consecucion de tareas mas complejas.
Otro ejemplo es el sistema PRS (Procedural Reasoning System [Myers 1996]),
que combina la planificacion reactiva y deliberativa dentro de una arquitectura
BDI (Belief, Desires, Intentions [Rao y Georgeff 1991]).
3. Planificacion practica 63
3.3.4. Sistemas de planificacion y ejecucion
En las aproximaciones que hemos visto hasta ahora (a excepcion de los sis-
temas reactivos hıbridos), los planes se generan antes de comenzar su ejecucion
(ver figura 3.5 [Washington 1995]). Los planificadores que siguen este esque-
ma reciben el nombre de planificadores off-line, y el principal inconveniente
que presentan es la necesidad de conocer todas las posibles contingencias de
antemano para elaborar una respuesta apropiada para cada una de ellas. Los
sistemas de planificacion y ejecucion, tambien denominados sistemas on-line,
alternan (o solapan) las etapas de planificacion y ejecucion para abordar efi-
cientemente este problema. De esta forma, los sistemas de planificacion on-line
pueden adaptar el plan durante la ejecucion a las posibles situaciones inespe-
radas que puedan surgir. Ademas, pueden utilizar la informacion adquirida
durante la ejecucion para mejorar los planes iniciales.
Figura 3.5: Esquema de planificacion off-line. El planificador se invoca una vezy genera un plan que ejecutara el reactor.
Los sistemas de planificacion on-line pueden clasificarse en tres categorıas:
• Planificacion y ejecucion alternada. Las etapas de planificacion y
ejecucion se suceden de forma alternada.
• Planificacion y ejecucion concurrente. Las etapas de planificacion
se realizan en paralelo con la ejecucion.
• Planificacion en tiempo real. Son sistemas con tiempo restringido
para actuar sobre el entorno. Estos sistemas pueden pertenecer a cual-
quiera de las dos categorıas anteriores.
Estas categorıas se describen con mas detalle en esta seccion. Es conve-
niente, sin embargo, comentar previamente una de las tecnicas mas empleadas
64 3.3. Tecnicas de planificacion practica
para adaptar los planes a las nuevas situaciones: la replanificacion. Esta tecni-
ca, que se describe en el siguiente apartado, puede encontrarse integrada en
muchos sistemas de planificacion on-line.
Replanificacion
En lugar de calcular un plan completamente nuevo, la replanificacion trata
de modificar el plan inicial cuando este deja de ser valido. De esta forma se evi-
ta la repeticion del esfuerzo de planificacion, ya que, normalmente, el problema
original es muy similar al nuevo problema que se plantea. Modificar un plan,
sin embargo, no es una tarea sencilla. Se puede demostrar que, en el peor de los
casos, la replanificacion es un proceso tan costoso como la planificacion desde
cero [Nebel y Koehler 1995]. En muchas ocasiones, no obstante, la replanifi-
cacion permite obtener importantes ahorros de tiempo y, consecuentemente,
una respuesta mas rapida ante situaciones inesperadas.
Son numerosos los sistemas que integran un modulo de replanificacion. La
gran mayorıa de replanificadores, sin embargo, pueden clasificarse dentro de
una de las siguientes aproximaciones:
• Reparacion del plan original. Esta tecnica trata de reparar el plan
original mediante la introduccion de cambios en las partes conflictivas
del mismo. El sistema SPA [Hanks y Weld 1995], por ejemplo, integra
un replanificador POCL que anade y elimina acciones, cambia el orden
de las acciones en el plan y modifica la asignacion de valores de algunas
variables. El replanificador integrado en SIPE-2 [Wilkins 1990], por el
contrario, elimina subplanes para reemplazarlos por otros mejores. El sis-
tema GORDIUS [Simmons 1988] emplea tecnicas de razonamiento para
detectar conflictos en las dependencias causales y repararlos mediante
estrategias independientes del dominio.
Mas recientemente, el replanificador LS-ADJUST-PLAN [Gerevini y Se-
rina 2000] emplea un algoritmo mas complejo basado en dos tecnicas de
busqueda local. La primera de ellas revisa las porciones del plan que
presentan inconsistencias. Estas porciones se delimitan mediante venta-
nas temporales, que definen un subproblema que se resuelve mediante
algoritmos de busqueda sistematica. La ventana puede expandirse hasta
3. Planificacion practica 65
contener, en el pero caso, todo el plan. La segunda tecnica realiza una
busqueda en ciertos subgrafos del grafo de planificacion, el cual se genera
a partir del nuevo problema y del plan original.
Otro ejemplo es el replanificador integrado en SimPlanner v1.0 [Onain-
dia et al. 2001] [Sapena y Onaindia 2002b]. Este replanificador emplea
tecnicas heurısticas para descubrir que parte del plan original puede reu-
tilizarse. Es necesario, entonces, calcular un plan desde el estado actual
hasta el estado necesario para ejecutar la parte aprovechable del plan
original. Este problema es, usualmente, menos costoso que el calculo de
un nuevo plan completo.
• Reutilizacion de calculos. Esta tecnica consiste en la reutilizacion
de los calculos realizados durante el proceso inicial de planificacion. El
sistema SHERPA [Koenig et al. 2002] permite aplicar esta tecnica en una
gran variedad de planificadores heurısticos, asegurando que la calidad de
los planes obtenidos es tan buena como la que se obtendrıa planificando
desde cero. El ahorro temporal, sin embargo, es muy importante, llegando
hasta un 85 % en algunos casos.
• Librerıas de planes. Los sistemas basados en esta tecnica almace-
nan un conjunto de planes junto con explicaciones sobre su utilidad, los
problemas que evitan, los objetivos que satisfacen, etc. Cuando el plan
original falla, se evalua el problema y se decide si algun plan de la li-
brerıa puede ayudar a resolverlo. Muchos de estos sistemas son capaces
de generar automaticamente esta librerıa de planes mediante tecnicas de
aprendizaje y entrenamientos.
Existen numerosos sistemas que integran modulos de replanificacion ba-
sados en librerıas de planes. Destacan, por ejemplo, los sistemas CHEF
[Hammond 1986], PRIAR [Kambhampati y Hendler 1992], MRL [Koeh-
ler 1993], NoLimit [Veloso 1994], DERSNLP+EBL [Ihrig y Kambham-
pati 1997] y CBPOP [Britanikand y Marefat 2004].
Planificacion y ejecucion alternada
Los sistemas de planificacion y ejecucion alternada son sistemas en los que
las etapas de planificacion y ejecucion se suceden de forma alternada [Koenig
66 3.3. Tecnicas de planificacion practica
2002] (ver figura 3.6). Estos sistemas integran generalmente mecanismos de
monitorizacion de la ejecucion y soporte para acciones de sensorizacion. De
esta forma, en cada etapa de planificacion se puede tener en cuenta la infor-
macion percibida del entorno con anterioridad. El principal inconveniente de
esta aproximacion es, sin embargo, que las etapas de planificacion deben ser
breves para evitar saltos en la ejecucion. Cuanto mas pequeno es el tiempo
dedicado en cada etapa de planificacion, mejor es la reactividad del sistema
y la sensacion de fluidez de la ejecucion. Por esta razon, muchos sistemas de
planificacion y ejecucion alternada hacen uso de mecanismos de replanificacion
para reducir el tiempo de planificacion en caso de la aparicion de algun evento
inesperado.
Figura 3.6: Esquema de planificacion y ejecucion alternadas.
Los primeros sistemas de planificacion y ejecucion alternada estaban ba-
sados en tecnicas de planificacion de orden parcial (POCL). Al contrario que
los planificadores condicionales, estos sistemas esperaban hasta recibir la in-
formacion necesaria del entorno para proseguir con la construccion del plan,
ahorrando de esta forma mucho esfuerzo de planificacion. Entre estos sistemas
destacan IPEM [Ambros-Ingerson y Steel 1988] y sus sucesores SAGE [Kno-
block 1995], XII [Golden et al. 1994] y PUCCINI [Golden 1998], basados en
el planificador UCPOP. La reactividad de estos sistemas es bastante reducida,
puesto que solo ejecutan los pasos del plan cuando ya no es posible planifi-
car mas. El caso del sistema SIPE-2 [Wilkins 1990] es todavıa mas extremo,
pues genera un plan completo y solo detiene la ejecucion para reparar el plan
cuando ocurre un evento que lo invalida.
El problema de decidir cuando parar de planificar y comenzar la ejecucion
no es sencillo [Goodwin 1994]. Cuanto mas tiempo se dedica a la planificacion,
3. Planificacion practica 67
mayores son las probabilidades de exito de alcanzar los objetivos, pero la re-
actividad disminuye. No existe una solucion optima pues el comportamiento
deseado depende del problema a resolver. Sistemas mas recientes como Occam
[Kwok y Weld 1996] - optimizado para la adquisicion de informacion en Inter-
net -, ROGUE [Haigh y Veloso 1996] - arquitectura que integra el planificador
PRODIGY 4.0 en un entorno de robots moviles -, CFOR [Zhang y Gratch
1999] y HITaP [Paolucci et al. 2000] - sistemas de planificacion en entornos
multiagente -, presentan un comportamiento mas reactivo que los anteriormen-
te mencionados. El planificador SimPlanner v2.0 [Sapena y Onaindia 2002c]
[Sapena y Onaindia 2002a] disminuye al maximo la duracion de las etapas de
planificacion, ejecutando las acciones nada mas estan disponibles. Se consigue
ası una mayor reactividad, aunque la calidad de los planes resulta, a veces,
inferior que con otras aproximaciones.
Planificacion y ejecucion concurrente
Los sistemas que siguen esta aproximacion solapan los procesos de pla-
nificacion y ejecucion. La figura 3.7 muestra los dos modelos fundamentales
[Washington 1995] que se utilizan en los sistemas de planificacion y ejecucion
concurrente. Estos sistemas ofrecen diversas ventajas frente a los sistemas de
planificacion y ejecucion alternada, como una mayor reactividad y un menor
tiempo total de planificacion/ejecucion, pero su implementacion es mucho mas
costosa.
Figura 3.7: Modelos de planificacion y ejecucion concurrente: a) El planifi-cador recibe informacion del entorno pero trabaja aislado. b) El planificadorincorpora continuamente informacion del entorno.
68 3.3. Tecnicas de planificacion practica
La complejidad de estos sistemas es probablemente la causa de que, aun
existiendo diversas propuestas [Washington 1995], sean muy pocos los siste-
mas deliberativos basados en esta aproximacion que se han desarrollado. Los
sistemas de planificacion y ejecucion concurrente se encuentran habitualmente
formando parte de arquitecturas semi-reactivas, como las basadas en algorit-
mos RFS (descritos en la seccion 3.3.3). En estas arquitecturas, la planificacion
se emplea como apoyo de un sistema reactivo capaz de actuar por sı mismo
[Matellan y Borrajo 1998].
Planificacion en tiempo real
Los sistemas de planificacion en tiempo real hacen referencia a sistemas que
tienen restricciones de tiempo para actuar sobre el entorno. Probablemente, la
mejor forma de limitar el tiempo de planificacion es recurrir al uso de algorit-
mos de planificacion anytime [Briggs y Cook 1999]. Estos algoritmos pueden
proporcionar una respuesta en cualquier momento, y la calidad de la respuesta
mejora monotonicamente en funcion del tiempo empleado. Pese a las evidentes
ventajas de estos algoritmos, los sistemas de planificacion anytime tienen que
afrontar la dificultad de trabajar con planes incompletos [Hawes 2001]:
• Cuando el planificador no dispone de tiempo para calcular un plan com-
pleto, debe trabajar con planes parciales. Asegurar que la calidad de los
planes parciales va mejorando con el tiempo es un problema complejo que
generalmente se resuelve de forma aproximada mediante estimaciones.
• Probablemente la mayor dificultad reside en asegurar que el plan parcial
calculado puede extenderse hasta una solucion. Si no es posible asegurar
esto, el sistema puede alcanzar una situacion desde la que no es posible
alcanzar los objetivos (dead-end).
• Dependiendo de la aproximacion empleada, la ejecucion de un plan par-
cial puede suponer un problema complejo. Algunos sistemas hacen uso
de planes precompilados o de reglas de control para manejar las partes
incompletas del plan.
Dejando a un lado las aproximaciones reactivas hıbridas (que se comenta-
ron en la seccion 3.3.3), es posible encontrar varios planificadores capaces de
3. Planificacion practica 69
manejar restricciones temporales. Basados en procesos de decision de Markov
(MDPs), destacan los planificadores probabilısticos Plexus [Dean et al. 1995]
y PASCALE-2 [Thiebaux et al. 1995]. Plexus valida y repara periodicamen-
te el plan en ejecucion, y permite tanto alternar como solapar las etapas de
planificacion y ejecucion. PASCALE-2 se basa en el modelo de planificacion y
ejecucion concurrente, y permite dejar inacabados los planes para terminarlos
y mejorarlos mas tarde.
Mas recientemente se han desarrollado dos planificadores basados en el mo-
delo de planificacion y ejecucion alternada: A-UCMP [Hawes 2001] e IXTET -
EXEC [Lemai y Ingrand 2004]. A-UCMP es un planificador anytime jerarqui-
co, disenado para su incorporacion en juegos de ordenador. IXTET -EXEC es
un planificador temporal esta basado en tecnicas de planificacion de orden par-
cial (POCL) y de satisfaccion de restricciones (CSPs). Este planificador recibe
informacion sobre el exito o fracaso de la ejecucion de cada accion, ası como
una descripcion parcial del estado del sistema. En caso de fallo o de un cambio
en los objetivos, un modulo de replanificacion se encarga de adaptar el plan.
3.4. Conclusiones
Cuando se considera la aplicacion de tecnicas de planificacion en entor-
nos reales, es imprescindible tener en cuenta los aspectos relacionados con la
ejecucion de los planes. La planificacion clasica ignora estos aspectos, reali-
zando diversas simplificaciones poco realistas, como que el entorno es estatico,
determinista y completamente observable. Para intentar superar estas sim-
plificaciones, se han desarrollado numerosos trabajos de investigacion que se
engloban generalmente bajo el nombre de planificacion practica.
Las investigaciones sobre los aspectos practicos de la planificacion se han
llevado a cabo en dos vertientes muy relacionadas: la mejora de la expresi-
vidad de los lenguajes de especificacion y el desarrollo de nuevas tecnicas de
planificacion. Respecto a las mejoras en la expresividad, los nuevos lenguajes
propuestos, como SADL o PPDDL, permiten modelar la incertidumbre en los
dominios, acciones de sensorizacion, y otras caracterısticas de gran utilidad en
entornos reales.
70 3.4. Conclusiones
Son numerosas tambien las tecnicas que, desde los anos 70, han ido surgien-
do para superar las asunciones clasicas. Estas tecnicas, sin embargo, pueden
dividirse en dos grandes grupos: off-line y on-line. Las tecnicas de planificacion
off-line calculan un plan completo antes de ejecutarlo. Por este motivo, es ne-
cesario conocer de alguna forma las posibles contingencias que pueden ocurrir
durante la ejecucion. Entre estas tecnicas destacan la planificacion conforme,
que permite manejar cierto grado de incertidumbre en el estado inicial, la
planificacion contingente, que genera planes en los que algunas ramas se eje-
cutan condicionalmente segun la informacion percibida durante la ejecucion,
y la planificacion reactiva, que calcula la reaccion del sistema ante las posibles
situaciones.
La planificacion on-line, por el contrario, permite que el proceso de pla-
nificacion se alterne (o se solape) con la ejecucion. De esta forma es posible
utilizar la informacion recibida del entorno para mejorar y reparar los planes
en ejecucion. El numero de contingencias que se pueden manejar ası es mucho
mayor que en la planificacion off-line y, al no tener que prever anticipadamente
dichas contingencias, el esfuerzo de planificacion es mucho menor.
Los planificadores on-line, por su naturaleza, forman parte de la arqui-
tectura de sistemas de ejecucion y monitorizacion mas complejos. Algunos de
estos sistemas son sistemas reactivos hıbridos, en los que el planificador se
emplea para mejorar la probabilidad de exito de un modulo reactivo, capaz
de actuar por sı solo. Otros sistemas son totalmente deliberativos. Para me-
jorar la reactividad, estos sistemas recurren generalmente a mecanismos de
replanificacion y/o al uso de algoritmos anytime. Los planificadores on-line
anytime son, probablemente, una de las soluciones mas completas dentro de la
planificacion practica pues, ademas de abordar las principales simplificaciones
clasicas, ofrecen un alto grado de reactividad y la posibilidad de trabajar con
plazos de tiempo limitados.
Capıtulo 4
Arquitectura del sistema
Este capıtulo se centra en la arquitectura del sistema de planificacion Sim-
Planner v3.0 [Sapena et al. 2004] [Sapena y Onaindia 2004]. Este sistema, al
igual que otros sistemas on-line existentes, integra un componente de plani-
ficacion dentro de una arquitectura que permite llevar a cabo (o simular) la
ejecucion y monitorizacion de los planes. Mientras que en los siguientes capıtu-
los de esta tesis se describe el algoritmo de planificacion, en este capıtulo se
ofrece una vision general del sistema, definiendo los modulos que lo componen
y como se comunican entre ellos.
4.1. Introduccion
El proyecto inicial de SimPlanner surgio de la necesidad de integrar un pla-
nificador en un sistema multiagente [Soler et al. 2000]. La aplicacion practica
de este sistema consistıa en el control de varios robots moviles (ver Figura 4.1)
que debıan ser capaces de desplazarse por una planta de despachos, realizando
tareas tales como el reparto del correo.
Figura 4.1: Robot movil (modelo Pioneer 2) empleado en el sistema.
71
72 4.1. Introduccion
La idea inicial fue desarrollar un agente basado en un planificador clasico,
al estilo de FF, STAN o 4SP (un planificador de orden parcial desarrollado en
nuestro grupo de investigacion [Onaindia et al. 2000]). Los primeros tenıan la
ventaja de ser planificadores muy competitivos y robustos, ya que habıan sido
ampliamente probados en gran variedad de dominios. El ultimo, sin embargo,
podıa ser facilmente adaptable pues se disponıa del codigo y de las especifi-
caciones de diseno. Independientemente de la opcion escogida, la inclusion de
un planificador clasico en un entorno dinamico provocaba ciertos problemas
adicionales:
• El robot no era capaz de conocer el estado de toda la planta de despachos.
Aunque disponıa de un mapa de la planta, sus sensores solo le permitıan
conocer determinadas circunstancias, como el hecho de que una puerta
estuviera cerrada, solo cuando estaba suficientemente proximo.
• La comprobacion de la veracidad de un hecho mediante sensorizacion no
indicaba que dicho hecho fuera a mantenerse permanentemente. La exis-
tencia de agentes externos que alteraban el entorno (como, por ejemplo,
el personal del departamento, el viento, etc.) hacıan que la informacion
que mantenıa el robot en su base de hechos no fuera cierta durante mucho
tiempo.
• Los efectos de las acciones no ocurrıan siempre como estaba previsto. Una
accion realizada por el robot para abrir una puerta podıa no tener exito
si, por ejemplo, la puerta estaba cerrada con llave o atascada. El robot
no podıa seguir ejecutando el plan original, sino que debıa modificarlo
para, o bien volver a intentar abrir la puerta, o bien buscar una ruta
alternativa.
• Existıa tambien la posibilidad de que un objetivo particular fuera tempo-
ralmente inalcanzable. Por ejemplo, uno de los objetivos del robot podıa
ser la entrega de una carta en un despacho y que dicho despacho estu-
viera cerrado. Un planificador clasico no intentarıa entonces resolver el
resto de objetivos, sino que no devolverıa ningun plan.
• Los objetivos en el problema que estabamos abordando eran bastante
dinamicos. Un robot podıa llegar a un despacho para entregar o recoger
4. Arquitectura del sistema 73
una carta y recibir la orden de realizar un nuevo encargo.
Ante cada una de estas contingencias era necesario volver a calcular un plan
completamente nuevo desde el inicio, lo que producıa grandes sobrecargas en
el sistema. El primer trabajo consistio, pues, en agilizar esta labor mediante
el diseno de un modulo de replanificacion. Este modulo se integro en una
herramienta de simulacion de ejecucion de planes denominada SimPlanner v1.0
[Sapena et al. 2001]. Dada una especificacion de un dominio y de un problema,
esta herramienta es capaz de generar un plan mediante un planificador clasico.
El usuario puede hacer entonces una simulacion de la ejecucion del plan y, en
cualquier momento, puede introducir cambios en el estado, simulando ası la
ocurrencia de eventos inesperados en el entorno. Es el usuario, por lo tanto,
el que gestiona la monitorizacion del plan, decidiendo que hechos son los que
capta el agente de planificacion y en que momento. Cuando se detecta un
evento inesperado, el modulo de replanificacion se encarga de adaptar el plan
a la nueva situacion.
A pesar de los buenos resultados obtenidos, la herramienta de replanifica-
cion no representa una forma natural de abordar los problemas en entornos
dinamicos. El empleo de un planificador clasico hace que ciertos problemas
no se puedan manejar con sencillez: no es posible generar planes cuando se
desconoce cierta informacion o cuando algun objetivo no es alcanzable tem-
poralmente. Tampoco permite modificar de forma dinamica los objetivos del
problema de una forma sencilla.
Para resolver estos problemas se opto por implementar un planificador on-
line, que pudiera trabajar de una forma mas natural en entornos dinamicos.
La idea principal era desarrollar un planificador incremental, que decidiera la
siguiente accion a ejecutar en lugar de calcular un plan completo. De esta forma
el sistema serıa capaz de reaccionar rapidamente ante situaciones inesperadas y
de adaptarse a los nuevos requerimientos que pudieran surgir. Este planificador
on-line se integro en SimPlanner v2.0, una segunda version de la herramienta
de simulacion [Sapena y Onaindia 2002c].
Aunque SimPlanner v2.0 mejora notablemente la reactividad respecto a
la primera version, carece, sin embargo, de muchas caracterısticas necesarias
para trabajar en entornos reales. La tercera version de SimPlanner [Sapena y
Onaindia 2003], objeto de esta tesis, parte de las ideas de la version anterior
74 4.2. Descripcion del sistema
e incorpora importantes mejoras que facilitan su integracion en aplicaciones
reales. Entre estas mejoras destacan:
• Mejoras en el algoritmo de planificacion para obtener planes de mayor
calidad. La implementacion del algoritmo sigue una aproximacion any-
time que permite, ademas, trabajar en situaciones en las que el tiempo
de respuesta es limitado.
• Incluye soporte para funciones numericas, acciones de sensorizacion e
incertidumbre.
• Integracion del planificador en una arquitectura que permite la concu-
rrencia entre los procesos de planificacion y ejecucion (en las versiones
anteriores, las etapas de planificacion y ejecucion se suceden de forma
alternada).
Los siguientes apartados de este capıtulo se destinan a describir con mayor
detalle esta arquitectura.
4.2. Descripcion del sistema
A diferencia de los sistemas de planificacion clasicos, los sistemas de plani-
ficacion on-line tienen que tener en cuenta el concepto de entorno. El entorno
describe el estado del mundo, el cual puede ser observado y modificado me-
diante las acciones ejecutadas por un conjunto de agentes (ver figura 4.2). El
concepto de agente no se usa aquı dentro del marco de Agentes en Inteligen-
cia Artificial [Wooldridge 2000], sino que se emplea para hacer referencia a
cualquier fenomeno capaz de alterar el entorno.
En el problema del reparto de correo en una planta de despachos, los agen-
tes serıan, por ejemplo, los robots encargados de repartir el correo, las personas
que trabajan en los despachos, fenomenos naturales (como el viento, capaz de
cerrar la puerta de un despacho), etc. Los robots moviles, sin embargo, se
diferencian del resto de agentes por el hecho de ser agentes software que, me-
diante tecnicas de planificacion, son capaces de calcular planes y ejecutarlos
para alcanzar sus objetivos. Siguiendo este criterio, clasificamos a los agentes
en dos grupos: agentes de planificacion y agentes externos.
4. Arquitectura del sistema 75
Figura 4.2: El entorno actua como un recurso compartido sobre el que variosagentes pueden actuar simultaneamente.
La arquitectura software de los agentes de planificacion se describe con
detalle en el siguiente apartado. A continuacion, se comenta tambien la funcion
de los agentes externos y su influencia sobre los agentes de planificacion. Esta
vision esquematica de SimPlanner v3.0 se completa con la descripcion de la
herramienta empleada para simular una gran diversidad de entornos diferentes:
VirtualRobot [Sapena et al. 2004].
4.2.1. Agentes de planificacion
La arquitectura propuesta en SimPlanner v3.0 es similar a otras propues-
tas existentes, como TCA (Task Control Architecture, [Simmons 1994]), 3T
(Three-tiered architecture, [Bonasso et al. 1997]) o CLARAty [Volpe et al.
2001]. Todas estas arquitecturas siguen, de hecho, los mismos principios de
diseno:
• Modularidad. La division del sistema en componentes con una funcio-
nalidad bien definida reduce la complejidad del sistema.
• Concurrencia. Diversos procesos, como la monitorizacion del entorno,
la ejecucion y la planificacion, se llevan a cabo de forma concurrente.
• Jerarquıa. La reactividad del sistema se ve favorecida por una arqui-
tectura organizada en niveles, en la que los niveles mas altos poseen
un comportamiento mas complejo y representan la informacion con un
mayor grado de abstraccion.
76 4.2. Descripcion del sistema
En todas las propuestas arriba mencionadas, los niveles mas bajos de la
arquitectura proporcionan un conjunto de comportamientos predefinidos que
permiten al sistema actuar con rapidez ante determinadas situaciones. En Sim-
Planner v3.0, sin embargo, no existen dichos niveles puramente reactivos. Los
agentes de planificacion en SimPlanner v3.0 son completamente deliberativos,
pues todas las decisiones que toman parten de los planes generados por el pla-
nificador. La reactividad, entonces, se logra limitando el tiempo de computo
ante las situaciones que lo requieran. La calidad de la respuesta puede, conse-
cuentemente, no ser tan buena como en otros sistemas reactivos pero, de esta
forma, se evita la costosa tarea de calcular un conjunto de reglas de compor-
tamiento para cada posible situacion (o, al menos, para las situaciones mas
probables).
La estructura general de un agente de planificacion se muestra en la figura
4.3. Inicialmente, un agente de planificacion dispone de un cierto conocimiento,
generalmente incompleto e impreciso, sobre el estado del mundo (modelo del
entorno). Este conocimiento se expresa mediante hechos y variables numericas,
con un nivel de abstraccion que permita al planificador manejar el problema
eficientemente. El planificador, de acuerdo con este conocimiento, trata de ave-
riguar cuales son las mejores acciones a ejecutar para alcanzar los objetivos.
Estas acciones tambien tienen cierto grado de abstraccion, por lo que su eje-
cucion no puede realizarse directamente sobre el sistema hardware (o software,
si se trata de una simulacion) a manejar. El modulo encargado de traducir
estas acciones de alto nivel en primitivas comprensibles por el sistema es el
ejecutor. El ejecutor es, por consiguiente, un modulo dependiente del sistema
a manejar, pues debe definir una serie de algoritmos especıficos que le permita
llevar a cabo las siguientes tareas:
• Ejecucion de las acciones de alto nivel. Cuando el ejecutor reci-
be del planificador una accion de alto nivel para ejecutar (como, por
ejemplo, mover un robot de un punto a otro), traduce dicha accion en
un conjunto de acciones comprensibles por el sistema (como establecer
la velocidad de giro de las ruedas). Esta labor es, a menudo, compleja,
necesitando la implementacion de algoritmos especıficos de navegacion,
rodeo de obstaculos, control de colisiones, etc.
• Recuperacion frente a fallos. Las acciones de planificacion no pueden
4. Arquitectura del sistema 77
Figura 4.3: Arquitectura de un agente de planificacion.
considerarse atomicas, puesto que se descomponen en un conjunto de
acciones de bajo nivel. El ejecutor, por lo tanto, debe disponer de un
mecanismo que le permita alcanzar un estado valido cuando una accion
falla en mitad de su ejecucion. Un estado valido es aquel que puede
representarse correctamente mediante el modelo abstracto del problema
con el que trabaja el planificador.
• Sensorizacion y monitorizacion del entorno. El ejecutor debe ser
capaz de recibir informacion de bajo nivel sobre el entorno a traves de
los sensores disponibles. Debe poder ejecutar las acciones de sensoriza-
cion enviadas por el planificador, ası como monitorizar automaticamente
aquellos hechos que, de acuerdo con el problema, sean relevantes. El eje-
cutor tambien debe convertir la informacion de bajo nivel obtenida en
hechos de alto nivel comprensibles por el planificador. Estos hechos se
contrastan con las creencias del planificador en busca de discrepancias.
En caso de discrepancias, el ejecutor actualiza las creencias y notifica el
cambio al planificador.
• Restricciones temporales. En muchos problemas reales existen limi-
taciones sobre el tiempo que el sistema puede emplear deliberando antes
de actuar. El ejecutor conoce estas restricciones y se encarga de soli-
citar una accion al planificador cuando el tiempo disponible expira. El
planificador, por lo tanto, debe tener en todo momento una respues-
ta preparada para ser capaz de proporcionarla inmediatamente una vez
recibe la peticion.
78 4.2. Descripcion del sistema
Para que el ejecutor pueda desempenar estas tareas, el modulo de planifica-
cion debe poder trabajar con informacion incompleta (o incorrecta), programar
acciones de sensorizacion y calcular una respuesta dentro de un intervalo de
tiempo limitado. El algoritmo de planificacion utilizado se describe con detalle
en los dos siguientes capıtulos.
4.2.2. Agentes externos
Para diferenciar a los agentes de planificacion del resto de agentes capaces
de actuar sobre el entorno empleamos la nomenclatura de agentes externos.
Un agente externo es, por lo tanto, todo aquel fenomeno capaz de actuar
sobre el entorno (personas, animales, fenomenos naturales, etc.) sobre el que el
planificador no posee ningun control. Esta falta de control y la gran diversidad
de los agentes externos hace que un estudio de estos agentes resulte de poca
utilidad. Sin embargo, los cambios que producen los agentes externos en el
entorno son una de las principales causas de los eventos inesperados que detecta
un agente de planificacion durante la ejecucion de un plan. Otras causas de la
aparicion de eventos inesperados son los fallos en la ejecucion de las acciones
del plan y la posesion de informacion incorrecta sobre el entorno.
4.2.3. Simulacion del entorno
En muchas ocasiones es conveniente probar el comportamiento del planifi-
cador antes de integrarlo en un sistema real. De esta forma es posible descubrir
anticipadamente los posibles problemas que puedan surgir, evitando gran par-
te de la compleja tarea de depurar el sistema en su entorno de aplicacion
real. Como herramienta de simulacion grafica hemos escogido la herramien-
ta VirtualRobot [Mellado 2003] [Mellado et al. 2003]. La versatilidad de esta
herramienta permite la simulacion de numerosos problemas de planificacion
y dispone de una sencilla interfaz que facilita su integracion con aplicaciones
externas.
El simulador VirtualRobot
VirtualRobot (VR) es un conjunto de programas disenados para la simula-
cion de aplicaciones roboticas. Entre estos programas destacan el VirtualRobot
4. Arquitectura del sistema 79
Modeller (VRM ), para crear y editar modelos geometricos y cinematicos, y
el VirtualRobot Translator (VRT ), que permite importar y exportar modelos
almacenados en otros formatos, como AutoCADr DXF, VRML y 3DStudio
Maxr. VirtualRobot Simulator (VRS ), sin embargo, es la plataforma principal
para las simulaciones. Como muestra la figura 4.4, esta aplicacion se divide en
cuatro partes diferenciadas:
• El nucleo de VRS. El nucleo de este programa se encarga de gestionar
las acciones solicitadas por el usuario o por aplicaciones externas. Para
realizar esta labor, el nucleo incluye una interfaz grafica para controlar la
visualizacion de la simulacion, una estructura jerarquica de clases para
almacenar la informacion de los objetos presentes en la simulacion, y un
conjunto de threads para procesar las ordenes recibidas.
• Componentes externos. VRS dispone de un conjunto de componentes
para modelar los distintos aspectos de la simulacion, como la cinematica
de los robots, el funcionamiento de los sensores o el calculo de distancias
hasta los obstaculos. El usuario puede reemplazar estos componentes por
los suyos propios para adaptar la simulacion a sus requerimientos.
• VREAL. Esta librerıa externa permite la interaccion de las aplicaciones
externas (clientes) con VRS. VREAL define un conjunto de funciones
y estructuras de datos que permite a las aplicaciones externas enviar
ordenes y recuperar informacion sobre la simulacion.
• Aplicaciones externas. Estas aplicaciones conforman la interfaz de
usuario real para una aplicacion especıfica.
VRS puede emplearse para simular cualquier tipo de robot, como brazos
robot, cintas transportadoras, plataformas giratorias, sistemas de sensores,
robots moviles, etc. Todos estos robots pueden acoplarse entre sı para formar
robots mucho mas complejos.
Simulaciones mediante VirtualRobot Simulator
Para realizar una simulacion mediante VRS es necesario, en primer lugar,
inicializar el entorno. La inicializacion consiste en la carga en memoria del VRS
80 4.2. Descripcion del sistema
Figura 4.4: Arquitectura de VirtualRobot Simulator.
- en caso de que dicha aplicacion no este abierta -, y en la creacion de todos
los objetos que forman parte del modelo del entorno. Para no desarrollar una
nueva aplicacion, es el propio agente de planificacion (SimPlanner v3.0 ) el que
realiza esta tarea. Ademas de recibir los ficheros que describen el dominio y el
problema a resolver, SimPlanner v3.0 puede recibir tambien un fichero con la
descripcion del entorno. Este fichero contiene la siguiente informacion:
• Informacion estatica del entorno. Esta informacion describe geometri-
camente todos aquellos objetos que permanecen inalterables durante to-
da la simulacion. Siguiendo el ejemplo del reparto de correo en una planta
de despachos, la informacion estatica corresponderıa con la descripcion
de las paredes que delimitan los despachos (posicion, dimensiones, color
y textura). Algunos elementos del mobiliario, como las mesas o los arma-
rios, podrıan considerarse estaticos si se descarta la posibilidad de que
puedan ser trasladados.
• Informacion dinamica del entorno. VRS define dos tipos diferentes
de objetos dinamicos: las partes moviles y los robots. Las partes moviles
son todos aquellos objetos que pueden ser trasladados, girados o de-
formados de alguna forma, pero que no pueden hacerlo por sı mismos.
Partes moviles son, por ejemplo, las cartas a entregar o las puertas de los
despachos. Los robots, por el contrario, son objetos con capacidad para
4. Arquitectura del sistema 81
moverse autonomamente. Los robots, ademas de un modelo geometrica,
necesitan una descripcion de su cinematica (numero de ejes, tipo de los
ejes, parametros, etc.). En una simulacion, diversos elementos como per-
sonas o automatismos (ascensores, puertas automaticas, etc.) tambien se
modelan como robots.
Una vez se han creado todos los elementos que forman el entorno, los dis-
tintos agentes que tomaran parte en la simulacion se conectan con el VRS, tal
como muestra la figura 4.5. Cada agente se encarga de simular el comporta-
miento de uno o mas robots. Los agentes externos son, generalmente, progra-
mas muy sencillos que requieren, a menudo, de la intervencion del usuario. Un
agente externo puede, por ejemplo, encargarse de simular el comportamiento
de un ascensor, desplazandolo entre los pisos en respuesta a las pulsaciones
de los botones. El usuario puede intervenir para simular situaciones especiales
como, por ejemplo, la averıa o el mal funcionamiento del ascensor.
Figura 4.5: Simulacion del problema de reparto de correo en una planta dedespachos mediante VirtualRobot Simulator.
Los agentes de planificacion, por el contrario, son sistemas mas complejos.
Funcionan de forma autonoma, ya que el usuario solo interviene para estable-
cer las condiciones iniciales del problema. Ocasionalmente, el usuario tambien
puede introducir modificaciones en los objetivos de un agente de planificacion
durante la simulacion. Ademas de los problemas que supone deducir y ejecutar
planes partiendo de informacion incompleta y sujeta a continuos cambios, los
82 4.3. Lenguaje de modelizacion
agentes de planificacion deben estar preparados para trabajar en tiempo real.
Para que un agente de planificacion pueda trabajar en tiempo real, debe ser
capaz de resolver las siguientes dificultades:
• Restricciones de tiempo. Para que la ejecucion de un plan sea fluida
deben establecerse plazos en los tiempos de respuesta del planificador.
En algunos dominios, estos lımites de tiempo son aun mas estrictos, pues
una accion tardıa puede carecer de utilidad o, incluso, ser perjudicial para
el sistema.
• Ejecuciones infinitas. La posibilidad de anadir y modificar los obje-
tivos de un agente de planificacion hace que la ejecucion pueda llegar
a ser potencialmente infinita. Esta posibilidad contrasta con los princi-
pios de la planificacion clasica, donde la labor del planificador termina
una vez se ha generado un plan para alcanzar los objetivos. La realidad
es, sin embargo, muy diferente, y son muchas las aplicaciones practicas
en las que los sistemas se mantienen en continuo funcionamiento. Una
simulacion, por lo tanto, no termina hasta que el usuario no lo decide.
• Tiempos de espera. Como consecuencia del punto anterior, un agen-
te de planificacion tiene a menudo que esperar. Una espera se produce
cuando el agente ya ha alcanzado todos sus objetivos (y espera nuevos ob-
jetivos), o cuando los objetivos restantes son (al menos temporalmente)
inalcanzables. En SimPlanner v3.0, este problema se resuelve median-
te la definicion de la accion ficticia NOP (no operacion), con la que el
planificador le indica al ejecutor que no es conveniente realizar ninguna
accion. Una situacion de espera finaliza cuando el usuario le proporciona
al agente nuevos objetivos alcanzables, cuando sucede un evento ines-
perado que permite alcanzar un objetivo antes inaccesible, o cuando el
usuario da por concluida la ejecucion.
4.3. Lenguaje de modelizacion
Al igual que la mayorıa de planificadores clasicos, los agentes de planifica-
cion necesitan una descripcion del dominio y del problema, almacenada gene-
ralmente en dos ficheros de texto. El fichero del dominio muestra las primitivas
4. Arquitectura del sistema 83
necesarias - tipos, constantes, hechos y funciones - para poder representar los
estados del mundo, ası como una descripcion de las posibles acciones que pue-
den realizarse. El fichero del problema, por el contrario, define una instancia
particular de problema, proporcionando una descripcion del estado actual del
mundo y de los objetivos a conseguir.
La seleccion del lenguaje de modelizacion es, por lo tanto, una decision
importante, pues la expresividad del lenguaje limitara la variedad de domi-
nios que el planificador podra manejar. Como lenguaje de modelizacion para
SimPlanner v3.0 hemos optado por el lenguaje PDDL (comentado en el apar-
tado 2.2.3) ya que, ademas de su aceptable expresividad, es actualmente un
estandar para la descripcion de dominios de planificacion. PDDL, no obstan-
te, no dispone de los mecanismos necesarios para representar las acciones de
sensorizacion ni la incertidumbre sobre el estado del mundo, aunque algunos
trabajos recientes presentan varias propuestas para soportar estas caracterısti-
cas (ver apartado 3.2.2). Estas propuestas, sin embargo, suponen importantes
modificaciones sobre la sintaxis original del PDDL y, aunque expresivas, au-
mentan notablemente la complejidad del modelo. Por este motivos, hemos
definido nuestras propias extensiones para representar la incertidumbre y las
acciones de sensorizacion. Estas extensiones, descritas a continuacion, intentan
mantener la sintaxis original de PDDL para evitar costosos cambios tanto en
el analizador sintactico como en el algoritmo de planificacion.
4.3.1. Incertidumbre sobre el estado inicial
PDDL describe las condiciones iniciales del problema mediante un conjunto
conjuntivo de literales y funciones numericas, pero no permite expresar el
desconocimiento del agente sobre determinados hechos del estado inicial. Por
lo tanto, para expresar este conocimiento parcial sobre las condiciones iniciales,
hemos definido una logica trivaluada sobre el conjunto de literales que definen
un estado:
• Si el agente de planificacion conoce el valor de verdad de un literal, dicho
literal debe aparecer explıcitamente en la especificacion del estado. Si
dicho literal no se satisface en el estado, debe aparecer precedido de la
clausula not.
84 4.3. Lenguaje de modelizacion
• Si el agente de planificacion desconoce un determinado hecho, este no
debe aparecer en la especificacion del estado. Esta solucion contrasta
con otras muchas representaciones propuestas, en las que los literales
desconocidos se marcan con un clausula unknown (o similar). Nuestra
representacion, sin embargo, es mas compacta, evitando la tediosa labor
de enumerar todos los hechos desconocidos en un estado.
Ejemplo. El siguiente ejemplo muestra la descripcion de un estado parcial-
mente especificado para un problema de planificacion del dominio del mundo
de bloques (descrito en el apendice A). En este ejemplo el agente de planifi-
cacion sabe que los bloques A y C se encuentran sobre la mesa. Desconoce, sin
embargo, la posicion del bloque B, aunque sabe que no esta situado encima del
C. El estado real del entorno se corresponderıa, por consiguiente, con uno de
los tres posibles estados representados en la figura 4.6. En general, el numero
de posibles estados crece de forma exponencial en funcion de la cantidad de
informacion que se desconoce [Bonet y Geffner 2000].
(:objects A B C - block)
(:init
(ontable A)
(ontable C)
(not (on B C))
)
Figura 4.6: Posibles estados iniciales derivados de una especificacion inicialincompleta.
La logica aquı presentada no permite, sin embargo, representar incerti-
dumbre sobre los valores de las variables numericas. En muchas ocasiones, las
variables numericas representan recursos internos del sistema controlado por
4. Arquitectura del sistema 85
el agente de planificacion (como la baterıa de un robot), por lo que sus valores
son sencillos de obtener. No obstante, tambien es posible que el agente desco-
nozca los valores de algunas variables, como la distancia entre dos puntos o
algun tipo de medida sobre un recurso externo.
La version actual del agente de planificacion (SimPlanner v3.0 ) no permi-
te trabajar con este tipo de incertidumbre y necesita, como mınimo, un valor
estimado de dichas variables. Es necesario, sin embargo, comprobar periodi-
camente la validez de estas aproximaciones (si, por ejemplo, el consumo de
baterıa del robot ha sido superior al esperado en la ejecucion de una accion,
el robot puede quedarse sin baterıa antes de poder iniciar una recarga). El
ejecutor del agente de planificacion es, por lo tanto, responsable de la monito-
rizacion de los valores de las variables, y de avisar al planificador si encuentra
alguna discrepancia. Esta previsto, sin embargo, que esta limitacion para tra-
bajar con incertidumbre sobre las variables numericas se supere en las futuras
versiones del agente de planificacion.
4.3.2. Acciones de sensorizacion
El lenguaje PDDL no permite tampoco representar acciones de sensoriza-
cion. La sintaxis que hemos escogido para definir este tipo de acciones consiste
simplemente en marcarlas con el identificador sensing. De esta forma, la sin-
taxis original del PDDL apenas sufre modificaciones. La semantica de una
accion de sensorizacion ası definida es la siguiente:
• Los efectos proposicionales de una accion de sensorizacion representan
la informacion que se quiere verificar.
• Es posible incluir efectos numericos para representar, por ejemplo, el cos-
te de ejecutar una accion de sensorizacion. Sin embargo, en esta version
del agente de planificacion, las acciones de sensorizacion no pueden em-
plearse para verificar los valores numericos de las variables. La razon de
esta limitacion, tal como se comento en el apartado anterior, es que el
agente de planificacion no esta preparado para trabajar con incertidum-
bre sobre los valores de las variables numericas.
• La sensorizacion imperfecta, debido a la falta de fiabilidad en la lectura
de los sensores, no puede expresarse en PDDL: las lecturas incorrectas de
86 4.3. Lenguaje de modelizacion
los sensores son difıciles de predecir y de modelar. Los errores de sensori-
zacion proporcionan informacion incorrecta al planificador, lo que puede
ocasionar fallos en la ejecucion de posteriores acciones. Estos problemas
se descubren, por lo tanto, a traves del mecanismo de monitorizacion de
las acciones.
La principal diferencia entre una accion normal y una accion de sensoriza-
cion en un sistema on-line es que la primera consigue sus efectos proposiciona-
les si sus precondiciones se cumplen: Pre −→ Eff (en caso, claro esta, de que
su ejecucion tenga exito). Por el contrario, una accion de sensorizacion, o bien
consigue sus efectos proposicionales, o bien confirma que estos no se cumplen:
Pre −→ Eff ∨¬ Eff. El planificador, por lo tanto, siempre preferira una ac-
cion normal para conseguir un determinado hecho, ya que la probabilidad de
lograrlo es mucho mayor. El planificador empleara acciones de sensorizacion
unicamente cuando la falta de informacion le impida conseguir sus objetivos
mediante acciones normales.
Ejemplo. En este ejemplo se muestra la especificacion de una accion de
sensorizacion. Mediante esta accion, un robot comprueba si una persona p
se encuentra en el punto loc. Esta accion necesita que el robot se encuentre
tambien en el punto loc, y consume una unidad de baterıa.
(:sensing action CHECK-PERSON
:parameters
(?robot - robot
?p - person
?loc - location)
:precondition
(at ?robot ?loc)
:effect
(and (at ?p ?loc)
(decrease (battery ?robot) 1)))
4.3.3. Acciones no deterministas
Las acciones no deterministas son aquellas acciones que, aplicadas sobre
un mismo estado, pueden producir diferentes resultados. Algunas tecnicas de
4. Arquitectura del sistema 87
planificacion representan las acciones no deterministas de una forma explıcita.
En la planificacion probabilıstica, por ejemplo, se describen todos los posibles
efectos de las acciones no deterministas. Estos efectos se etiquetan, ademas,
con la probabilidad de ocurran, de forma que la suma de estas probabilidades
sea uno.
Hay, sin embargo, varios motivos por los que hemos decidido no utilizar
una representacion explıcita de las acciones no deterministas:
• En muchos entornos reales, todas las acciones pueden considerarse no
deterministas, pues la ejecucion de cualquiera de ellas puede producir un
resultado no deseado. Los efectos inesperados, ademas, pueden ser extre-
madamente numerosos o incluso imprevisibles, por lo que su enumeracion
no es a menudo factible.
• La representacion explıcita de los efectos no deterministas de las ac-
ciones es util cuando se realiza una planificacion contingente, es decir,
cuando se preparan uno o mas planes alternativos en prevision de los
posibles resultados que pueda tener la accion. Sin embargo, la planifica-
cion contingente requiere un gran esfuerzo computacional, generalmente
demasiado elevado para permitir la planificacion en tiempo real.
Los agentes de planificacion de SimPlanner v3.0, por consiguiente, no tra-
tan explıcitamente el no determinismo. Todas las acciones (excepto las de
sensorizacion) se consideran como acciones deterministas, por lo que la pla-
nificacion trabaja unicamente con los efectos esperados de las acciones. El no
determinismo se maneja durante la ejecucion: el ejecutor se encarga de verifi-
car el resultado real de cada accion mediante el mecanismo de monitorizacion
de acciones. En caso de detectar un resultado inesperado, el planificador se
encarga de reparar el plan para adaptarlo a la nueva situacion.
4.4. Conclusiones
El proyecto de SimPlanner surgio inicialmente de la necesidad de inte-
grar un sistema de planificacion en un entorno practico real, con el objetivo
permitir a un conjunto de robots moviles razonar sobre sus acciones. Estos ro-
bots debıan realizar una serie de tareas en una planta de despachos como, por
88 4.4. Conclusiones
ejemplo, el reparto de correo. Los problemas derivados de la ejecucion de los
planes un entorno como este, muy dinamico y parcialmente observable, hacen
desaconsejable la utilizacion de planificadores clasicos.
Las sucesivas versiones de SimPlanner hacen uso de tecnicas de planifica-
cion practica, como la replanificacion o la planificacion on-line, para superar
cada vez un mayor numero de problemas. La ultima version, SimPlanner v3.0,
sigue una aproximacion de planificacion y ejecucion concurrente (descrita en el
apartado 3.3.4) y, por lo tanto, el planificador se encuentra integrado dentro de
la arquitectura de un sistema de ejecucion y monitorizacion mas complejo. En
SimPlanner v3.0, este sistema consta de tres elementos principales: los agentes
de planificacion - aplicaciones software capaces de calcular y ejecutar planes
-, los agentes externos - el resto de agentes, de diversa naturaleza, capaces de
actuar sobre el entorno -, y el entorno.
La estructura de un agente de planificacion se divide en dos niveles. El
nivel mas alto esta formado por el planificador que, empleando un cierto nivel
de abstraccion, razona sobre las acciones que el agente debe realizar para
alcanzar sus objetivos. Este nivel de abstraccion permite que el planificador
sea un modulo independiente del dominio. En el nivel inferior se encuentra el
ejecutor. Este modulo se encarga la ejecucion y monitorizacion de las acciones
recibidas del planificador. La labor del ejecutor es dependiente del dominio en
el que trabaja y, por lo tanto, debe disenarse un ejecutor distinto para cada
nuevo dominio.
La arquitectura de los agentes de planificacion ofrece un buen soporte pa-
ra el manejo de muchas de las caracterısticas necesarias para la planificacion
en entornos reales. Pero es necesario, tambien, que el lenguaje empleado para
describir el dominio y el problema sea lo suficientemente expresivo. Hoy en
dıa, PDDL es un estandar dentro de los lenguajes de especificacion para pro-
blemas de planificacion, y ofrece un buen nivel de expresividad. Este hecho nos
motivo para escoger este lenguaje como lenguaje de especificacion para Sim-
Planner v3.0. No obstante, ciertas caracterısticas, como la incertidumbre en
las condiciones iniciales del problema o las acciones de sensorizacion, no estan
todavıa soportadas en PDDL, por lo que ha sido necesario definir nuestras
propias extensiones al lenguaje para poder modelarlas.
4. Arquitectura del sistema 89
Una arquitectura apropiada es importante en cualquier sistema de planifi-
cacion on-line para conseguir un funcionamiento correcto y eficiente, y minimi-
zar el esfuerzo necesario para aplicar el mismo sistema en diferentes dominios.
El elemento mas complejo de la arquitectura de SimPlanner v3.0 - presentada
en este capıtulo - es, sin lugar a dudas, el planificador. Todo el razonamiento
sobre las acciones a realizar se lleva a cabo mediante una serie de algoritmos
de planificacion, que funcionan independientemente del dominio de aplicacion.
La descripcion de este planificador es, por lo tanto, el objetivo de los siguientes
capıtulos.
Capıtulo 5
Planificacion heurıstica en
tiempo real
Este capıtulo ofrece una descripcion del algoritmo de planificacion integra-
do en los agentes de planificacion de SimPlanner v3.0. Este algoritmo trabaja
en paralelo con la ejecucion del plan, adquiriendo ası informacion del entorno
que le permita resolver las situaciones inesperadas que puedan aparecer du-
rante la ejecucion. Estos continuos cambios (tanto en las creencias sobre el
entorno como en los objetivos) a los que esta sometido el planificador, hacen
que la planificacion sea un proceso relativamente complejo. En primer lugar,
realizar una busqueda para encontrar un plan completo supone, en muchas
ocasiones, un gasto excesivo de tiempo, pues cualquier cambio en el entorno
o en los objetivos puede invalidar dicho plan. El algoritmo de planificacion
trata, por lo tanto, de calcular unicamente la siguiente accion a ejecutar. De
esta forma se reduce el esfuerzo de planificacion y se evita tener que tomar
decisiones sobre acciones lejanas en el tiempo.
En segundo lugar, el tiempo de deliberacion del planificador puede estar
limitado por el sistema controlado que, en ocasiones, debe actuar sobre el
entorno dentro de un corto espacio de tiempo. Este es el caso de diversas
aplicaciones, como la inteligencia artificial en los juegos de ordenador y simu-
ladores, aunque tambien se puede limitar artificialmente el tiempo de respuesta
de un sistema para que la ejecucion se lleve a cabo de una forma fluida. Para
lograr este objetivo, el algoritmo de planificacion se ha disenado siguiendo los
principios de los algoritmos anytime. Ası, el planificador dispone en cualquier
91
92 5.1. Motivacion del algoritmo propuesto
momento de una respuesta (accion a ejecutar), que se va refinando mientras
quede tiempo disponible.
Por ultimo, tambien es necesario que el planificador pueda tomar decisiones
a partir de una descripcion incompleta del entorno. Para ello debe centrarse en
lograr aquellos objetivos que, segun la informacion disponible, son alcanzables,
y en programar acciones de sensorizacion para obtener la informacion necesaria
para lograr el resto de objetivos.
La estructura de este capıtulo es la siguiente: en primer lugar se describe
la motivacion del algoritmo propuesto. A continuacion se establece la nota-
cion basica que se utilizara. Seguidamente se proporciona un esquema general
del algoritmo de planificacion y una descripcion detallada de las cuatro eta-
pas principales que lo componen. Finalmente, se presentan las conclusiones
extraıdas sobre el algoritmo de planificacion.
5.1. Motivacion del algoritmo propuesto
La idea basica de diseno del algoritmo propuesto es obtener un planifica-
dor independiente del dominio, capaz de generar planes incrementalmente y
de forma totalmente deliberativa en dominios reactivos y con restricciones de
tiempo real. Para ello hemos recurrido a un esquema funcional propio de la
planificacion reactiva, aunque sin necesidad de disponer de informacion pre-
compilada especıfica del dominio: partiendo de un estado el algoritmo trata de
averiguar, dentro de un intervalo de tiempo limitado, que accion puede ser la
mas adecuada para alcanzar los objetivos (ver figura 5.1).
Este esquema es muy flexible en entornos dinamicos pues permite aprove-
char el tiempo de ejecucion para tomar mejores decisiones sobre la siguiente
accion del plan. El plazo en el tiempo de respuesta puede establecerse tambien
para limitar el tiempo de reaccion tras un evento inesperado (es decir, cuando
el estado del mundo difiere del estado esperado). Este modo de operacion on-
line puede observarse en el diagrama de la figura 5.2, en la que los plazos de
tiempo vienen establecidos por las peticiones de accion que solicita el ejecutor.
Para lograr este comportamiento es necesario que el algoritmo de planifi-
cacion tenga las siguientes caracterısticas:
• Debe poder tomar una primera decision muy rapida sobre la siguiente
5. Planificacion heurıstica en tiempo real 93
Figura 5.1: Esquema funcional del algoritmo de planificacion.
accion para permitir reacciones casi reflejo en las situaciones que lo re-
quieran y para reducir al maximo el tiempo que el ejecutor permanece
en espera. En estas primeras decisiones se prima, consecuentemente, la
rapidez frente a la optimalidad.
Para conseguir este objetivo, se ha utilizado la descomposicion de ob-
jetivos, tecnica comentada en el apartado 2.3.5. La descomposicion de
objetivos permite reducir la complejidad del problema original al no con-
siderar (inicialmente) las interacciones entre los objetivos del problema.
Tambien se ha recurrido a tecnicas comunes en la planificacion heurıstica
(ver apartado 2.3.3) ya que permiten guiar la busqueda de una forma mas
eficiente. Como resultado, el algoritmo propuesto es capaz de tomar una
primera decision en tiempo polinomico (en problemas sin precondiciones
numericas).
• El algoritmo de planificacion debe poder seleccionar mejores acciones
conforme aumenta el tiempo de computo. Una accion se considera una
mejor decision que otra cuando permite alcanzar los objetivos con un
coste menor (considerando que el resto de acciones del plan son optimas).
Para lograr este objetivo, el algoritmo de planificacion dispone de un
mecanismo de refinamiento iterativo que permite seleccionar la siguiente
accion de una manera cada vez mas informada.
94 5.1. Motivacion del algoritmo propuesto
Figura 5.2: Diagrama de secuencia del funcionamiento on-line de los agentesde planificacion.
Debido a la componente heurıstica del algoritmo, sin embargo, las de-
cisiones mas informadas no siempre son mejores que las tomadas mas
rapidamente. Aunque en las decisiones individuales (siguiente accion)
no podamos asegurar un incremento en la calidad, sı podemos hacerlo
con el plan final. El algoritmo es, en general, lo suficientemente rapido
para generar diferentes planes completos y seleccionar el de mejor cali-
dad. El capıtulo 6 muestra un estudio de la mejora obtenida en la calidad
de los planes conforme aumenta el tiempo de computo empleado.
Estas dos caracterısticas, representativas de la planificacion anytime, junto
con el soporte para trabajar con un cierto grado de incertidumbre y funciones
numericas, hacen de SimPlanner v3.0 un planificador apropiado para entornos
dinamicos con fuertes restricciones temporales. El resto de este capıtulo ofrece
una vision mas detallada y algorıtmica del proceso de planificacion.
5. Planificacion heurıstica en tiempo real 95
5.2. Notacion y terminologıa
Antes de comenzar con la descripcion del algoritmo de planificacion, es
necesario resumir la notacion que utilizaremos para su formalizacion. Para
representar expresiones simples emplearemos letras minusculas del alfabeto,
mientras que para representar conjuntos utilizaremos letras mayusculas.
Definicion 5.2.1. Un problema numerico de planificacion se define como una
tupla 〈F , L, A, I, G, m〉, donde:
• F es un conjunto de variables numericas.
• L es un conjunto de literales (o hechos).
• A es un conjunto de acciones posibles.
• I es el estado inicial del problema.
• G es el conjunto de objetivos del problema.
• m es el criterio de optimizacion (metrica del problema).
5.2.1. Extensiones numericas
Las extensiones numericas de PDDL 2.1 implican que, ademas de los lite-
rales L, se tiene tambien un conjunto de variables numericas F . Para poder
manejar estas variables es necesario definir, en primer lugar, ciertos conceptos.
Definicion 5.2.2. Una expresion numerica es una funcion aritmetica sobre
F y el conjunto de los numeros racionales, empleando los operadores de suma
(+), resta (-), multiplicacion (*) y division (/).
Definicion 5.2.3. Una restriccion numerica es una terna 〈exp, comp, exp′〉,donde exp y exp′ son expresiones numericas, y comp ∈ {<,≤, =,≥, >} es un
operador de comparacion.
Definicion 5.2.4. Un efecto numerico es una terna 〈fi, ass, exp〉, donde fi
∈ F es una variable numerica, ass ∈ {:=, +=, -=, *=, /= } es un operador
de asignacion, y exp es una expresion numerica.
96 5.2. Notacion y terminologıa
5.2.2. Estados
Un estado es una representacion abstracta del mundo en un determinado
momento. Un estado puede modelarse como una asignacion de valores a los
literales y variables numericas. La siguiente definicion muestra formalmente
este concepto.
Definicion 5.2.5. Un estado se define como una asignacion de valores, tanto
al conjunto de literales (L) como al conjunto de variables numericas (F ). Em-
pleando una logica trivaluada, un literal puede ser verdadero (V), falso (F)
o desconocido (D) en un estado. Los valores de las variables numericas son
numeros racionales.
S = 〈SL, SF 〉/SL = {(li, vi)} : li ∈ L, vi ∈ {V,F ,D}SF = {(fj , wj)} : fj ∈ F, wj ∈ Q
(5.2.1)
Por comodidad, vamos a definir dos funciones que devuelvan el valor de
los literales y de las variables numericas en un estado: lvalue : L × {S} −→{V ,F ,D} y fvalue : F × {S} −→ Q respectivamente. Estas funciones se
definen de la siguiente forma:
lvalue(li, S) = vi ←→ (li, vi) ∈ SL, S = 〈SL, SF 〉fvalue(fj , S) = wj ←→ (fj , wj) ∈ SF, S = 〈SL, SF 〉 (5.2.2)
Supongamos, por ejemplo, que tenemos un estado S = {(l1,V), (l2,F)}.En el estado S, por lo tanto, se satisface el literal l1, pero no el l2. Puede
considerarse tambien que la expresion ¬l2 es cierta en el estado S. Durante la
formalizacion del algoritmo de planificacion se trabajara frecuentemente con
literales y literales negados indistintamente. Para facilitar esta labor introdu-
ciremos el concepto de proposicion logica.
Definicion 5.2.6. Una proposicion logica, p, es un literal (p = l ∈ L) o
un literal negado (p = ¬l/l ∈ L). Al conjunto de proposiciones logicas lo
denominaremos PL.
5. Planificacion heurıstica en tiempo real 97
Diremos, por lo tanto, que una proposicion logica p ∈ PL se satisface en
un estado S, satisfy(p, S), si:
satisfy(p, S) = V −→{
lvalue(l, S) = V , si p = l ∈ L
lvalue(l, S) = F , si p = ¬l/l ∈ L(5.2.3)
De forma similar, diremos que una proposicion logica p ∈ PL no se satisface
en un estado S cuando:
satisfy(p, S) = F −→{
lvalue(l, S) = F , si p = l ∈ L
lvalue(l, S) = V , si p = ¬l/l ∈ L(5.2.4)
Del mismo modo que el valor de un determinado literal puede ser desco-
nocido en un estado, tambien puede ser desconocida la satisfaccion de una
proposicion p ∈ PL en un estado S:
satisfy(p, S) = D −→{
lvalue(l, S) = D , si p = l ∈ L
lvalue(l, S) = D , si p = ¬l/l ∈ L(5.2.5)
Por ultimo, definiremos tambien otras funciones que nos permitan trabajar
facilmente con expresiones numericas:
• El valor de una expresion numerica exp en un estado S, evalue(exp, S),
se calcula sustituyendo las variables numericas en la expresion por sus
respectivos valores en dicho estado.
• Tambien es posible comprobar si una restriccion numerica, r = 〈exp,
comp, exp′〉, se satisface en un estado S. Esta funcion, que denotare-
mos como rvalue(r, S), devuelve el valor de verdadero si se satisface la
comparacion comp entre los valores de ambas expresiones en S.
• Finalmente, la funcion nresult(n, S), donde n = 〈fi, ass, exp〉 es un
efecto numerico, devuelve el nuevo valor de la variable fi. Este valor se
calcula como el valor de fi en el estado S modificado con el valor de la
expresion (evalue(exp, S)), utilizando el operador de asignacion ass.
98 5.2. Notacion y terminologıa
5.2.3. Acciones
Las acciones se definen mediante un conjunto de precondiciones, que deben
satisfacerse antes de su ejecucion, y un conjunto de efectos, que describen
las consecuencias que la ejecucion de la accion tendra sobre el mundo. Las
precondiciones y los efectos de una accion pueden ser tanto proposicionales
como numericos.
Definicion 5.2.7. Una accion se define como una tupla 〈Lprec, Fprec, Leff ,
Feff〉, donde:
• Lprec es un conjunto de proposiciones logicas que representa las precon-
diciones proposicionales de la accion. Denominaremos Lprec+ y Lprec−al subconjunto de literales y literales negados de Lprec respectivamente.
• Fprec es un conjunto de restricciones numericas que representa las pre-
condiciones numericas de la accion.
• Leff es un conjunto de proposiciones logicas que representa los efectos
proposicionales de la accion. Denominaremos Leff+ y Leff− al subcon-
junto de literales y literales negados de Leff respectivamente.
• Feff es el conjunto de los efectos numericos de la accion.
Para referirnos a cada una de estas componentes emplearemos la nota-
cion de funcion, indicando entre parentesis la accion a la que pertenecen. Por
ejemplo, para referirnos a las precondiciones proposicionales de una accion a,
usaremos la notacion Lprec(a).
Hay dos conceptos importantes referentes a las acciones que conviene for-
malizar. El primero de ellos es la aplicabilidad (o ejecutabilidad) de una accion
en un determinado estado. El segundo hace referencia a los cambios que la
ejecucion de una accion produce en el estado sobre el que se aplica. Ambos
conceptos se definen a continuacion.
Definicion 5.2.8. Una accion a es aplicable (o ejecutable) en un estado S si
se satisfacen sus precondiciones:
exec(a, S) = V ←→ satisfy(pi, S) = V, ∀pi ∈ Lprec(a) ∧rvalue(r, S) = V, ∀r ∈ Fprec(a)
(5.2.6)
5. Planificacion heurıstica en tiempo real 99
Por el contrario, una accion a no es aplicable en un estado S cuando alguna
de sus precondiciones no se satisface:
exec(a, S) = F ←→ ∃pi ∈ Lprec(a)/satisfy(pi, S) = F ∨∃r ∈ Fprec(a)/rvalue(r, S) = F (5.2.7)
Por ultimo, es posible que, debido a la falta de informacion disponible, no
se pueda decidir si una accion a es aplicable en un estado S o no. Puesto que,
como se indico en el apartado 4.3.1, asumimos que no hay incertidumbre en
los valores de las variables numericas, este ultimo caso solo aparecera cuando
alguna de las precondiciones proposicionales de a sea desconocida:
exec(a, S) = D ←→ ∃pi ∈ Lprec(a)/satisfy(pi, S) = D (5.2.8)
El segundo concepto que vamos a formalizar describe el resultado de una
accion cuando se aplica sobre un estado. La ejecucion de una accion sobre un
estado provoca una transicion a otro estado. En las aproximaciones clasicas de
planificacion, esta funcion de transicion es determinista, tal como se muestra
en la ecuacion 2.2.1. Sin embargo, en la mayorıa de aplicaciones practicas hay
dos factores que provocan que esta funcion sea no determinista:
• La ejecucion de una accion puede fracasar y, por consiguiente, no pro-
ducir los efectos esperados.
• La existencia de agentes externos, capaces de alterar el entorno, pueden
crear diferencias entre el estado real del mundo y la representacion in-
terna del planificador. El planificador solo intenta ejecutar acciones que,
de acuerdo con sus creencias, son aplicables en el estado actual. Por lo
tanto, la ejecucion de una accion puede fallar si sus precondiciones no se
satisfacen realmente en el mundo.
Estos factores no controlables los denominaremos con el sımbolo δ. De
esta forma y, estableciendo δ como un parametro de la funcion de transicion,
podemos expresar esta funcion de una forma determinista.
Definicion 5.2.9. El resultado de aplicar una accion a sobre un estado S =
〈SL, SF 〉 es un nuevo estado S ′ que se calcula de la siguiente manera:
100 5.2. Notacion y terminologıa
• Si a es aplicable en S y no hay factores externos que puedan impedir
la correcta ejecucion de a, entonces S ′ es igual que S excepto que los
valores de los efectos proposicionales de a se sustituyen por verdadero, si
son efectos positivos, o por falso, si son negativos. Las variables numericas
tambien cambian su valor de acuerdo a los efectos numericos de a.
result(a, S, δ) = 〈SL′, SF ′〉 /
SL′ = {(li, vi) ∈ SL / li 6∈ Leff+(a) ∧ li 6∈ Leff−(a)} ⋃
{(lj ,F)/lj ∈ Leff−(a)} ⋃ {(lk,V)/lk ∈ Leff+(a)}SF ′ = SF − {(fl, vl)}
⋃ {(fl, nresult(nl, S))}, nl = 〈fl, assl, expl〉 ∈ Feff(a), si exec(a, S) = V ∧ δ = ∅
(5.2.9)
• Si la accion a no es aplicable en S, o bien hay factores externos que
puedan influir en la ejecucion de a, el estado resultante es indefinido.
result(a, S, δ) = indefinido, si exec(a, S) 6= V ∨ δ 6= ∅ (5.2.10)
Ejemplo. La figura 5.3 muestra la transicion del estado S al S ′ que se
produce al aplicar una accion a, ejecutable en S, en ausencia de situaciones
inesperadas (δ = ∅).
5.2.4. Sensorizacion
Las acciones de sensorizacion - que denominaremos con la letra α para
diferenciarlas del resto - son similares a las acciones normales, en el sentido de
que se componen tambien de precondiciones y efectos, tanto numericos como
proposicionales. Respecto a las precondiciones de una accion de sensorizacion,
estas son equivalentes a las precondiciones de las acciones normales. Una accion
de sensorizacion, por lo tanto, es ejecutable en un estado bajo las mismas
circunstancias que una accion normal (ver definicion 5.2.8).
Los efectos de una accion de sensorizacion, sin embargo, son diferentes de
los de una accion normal. Los efectos proposicionales de una accion de sen-
sorizacion, Leff , son un conjunto de literales (no de proposiciones logicas).
5. Planificacion heurıstica en tiempo real 101
Figura 5.3: Ejemplo de transicion entre estados producida por la ejecucion deuna accion y en ausencia de eventos inesperados. Puede observarse tambienque la accion a es aplicable en S.
Semanticamente, estos literales representan los hechos cuyo valor de verdad
sera obtenido a traves de la sensorizacion del entorno. Por el contrario, los
efectos numericos de una accion de sensorizacion son, al igual que en las ac-
ciones normales, un conjunto de efectos numericos.
El desconocimiento de los valores de verdad de los efectos proposicionales
de una accion de sensorizacion hace que, incluso en ausencia de eventos inespe-
rados o fallos, el resultado de la ejecucion de dicha accion sea no determinıstico.
El resultado esta en funcion del estado real del mundo, el cual solo es conocido
en dominios en los que el mundo es completamente observable (dominios, por
consiguiente, en los que las acciones de sensorizacion son totalmente inutiles).
Hay que tener en cuenta, tambien, que en la ejecucion de acciones de sensori-
zacion, aparece un nuevo factor que puede afectar al resultado de la ejecucion:
la falta de fiabilidad de los sensores. La sensorizacion imperfecta es otro factor
no controlable que incluiremos en δ.
Definicion 5.2.10. El resultado de aplicar una accion de sensorizacion α
sobre un estado S = 〈SL, SF 〉 es un nuevo estado S ′. Este nuevo estado
depende del estado real del mundo, Sreal, tal como se describe a continuacion:
• Si α es aplicable en S y no hay factores externos que impidan la correcta
ejecucion de α, entonces S ′ es igual que S excepto que los valores de
los efectos proposicionales de α se sustituyen por verdadero o por fal-
so, dependiendo de su valor de verdad real en el mundo. Las variables
102 5.2. Notacion y terminologıa
numericas tambien cambian su valor de acuerdo a los efectos numericos
de α.
result(α, S, δ) = 〈SL′, SF ′〉/SL′ = {(li, vi) ∈ SL/li 6∈ Leff(α)} ⋃
{(lj ,F)/lj ∈ Leff(α) ∧ lvalue(lj , Sreal) = F} ⋃
{(lk,V)/lk ∈ Leff(α) ∧ lvalue(lk, Sreal) = V}SF ′ = SF − {(fl, vl)}
⋃ {(fl, nresult(nl, S))}, nl = 〈fl, assl, expl〉 ∈ Feff(α), si exec(α, S) = V ∧ δ = ∅
(5.2.11)
• Al igual que ocurrıa con las acciones normales, si α no es ejecutable en
S, o bien hay factores externos que puedan influir en su ejecucion, el
estado resultante es indefinido (ver ecuacion 5.2.10).
Ejemplo. La figura 5.4 muestra la transicion producida por una accion de
sensorizacion que permite comprobar el valor de un literal, l4, en el estado real
del mundo (Sreal). En ausencia de situaciones inesperadas, δ = ∅, el estado
resultante dependera del valor real de l4.
5.2.5. Planes
Antes de definir el concepto de plan dentro de este marco de planificacion
practica, es necesario describir en que consisten los objetivos del problema.
Los objetivos G = {gi / gi ∈ PL} son un conjunto de proposiciones logi-
cas. Actualmente, algunos planificadores como Metric-FF o LPG son capaces
tambien de manejar objetivos numericos. Esta caracterıstica, sin embargo, no
se va a tratar en este trabajo y se deja como una futura ampliacion de la
funcionalidad del planificador.
La meta del planificador es alcanzar un estado del mundo en el que todos
los objetivos se satisfagan. En entornos dinamicos y parcialmente observables,
sin embargo, no es posible tener la certeza de que todos los objetivos se han
alcanzado. Un agente malicioso, por ejemplo, podrıa ir deshaciendo todos los
objetivos que el agente de planificacion va alcanzando. Ante la imposibilidad,
5. Planificacion heurıstica en tiempo real 103
Figura 5.4: Ejemplo de transicion entre estados producida por la ejecucion deuna accion de sensorizacion en ausencia de eventos inesperados.
en muchas ocasiones, de verificar el cumplimiento de todos los objetivos si-
multaneamente, consideraremos que el agente de planificacion ha alcanzado
sus objetivos cuando sus creencias sobre el mundo ası lo indiquen.
Definicion 5.2.11. Un estado S es un estado objetivo si todos los objetivos
del problema, G, se satisfacen en S:
goalstate(S, G) = V ←→ satisfy(gi, S) = V, ∀gi ∈ G (5.2.12)
Definicion 5.2.12. Un plan es una secuencia de acciones P = {a0, a1, . . . , an}que, aplicada sobre el estado inicial del problema I esta orientada a la con-
secucion de los objetivos G. Por comodidad, emplearemos tambien la funcion
result para calcular el estado resultante de ejecutar una secuencia de acciones
P :
result(P, S, {δ0, δ1, . . . , δn}) = S′ ←→ result(a0, I, δ0) = S1, result(a1, S1, δ1) =S2, . . . , result(an, Sn, δn) = S′
(5.2.13)
Definicion 5.2.13. Un plan P tiene exito (valid plan(P, I, G, {δi})) cuando,
ejecutado sobre un estado inicial I, alcanza un estado objetivo:
104 5.2. Notacion y terminologıa
valid plan(P, I, G, {δi}) = V ←→ result(P, I, {δi}) = S′ ∧ goalstate(S′, G) = V(5.2.14)
Aunque hemos considerado unicamente planes secuenciales, el ejecutor pue-
de solicitar al planificador varias acciones y, si es posible, ejecutarlas en pa-
ralelo. La paralelizacion de planes es un proceso con un coste computacional
muy bajo y que permite obtener planes paralelos de gran calidad [Valero et al.
2004]. Generar planes secuenciales es, generalmente, mas eficiente, por lo que
existen varios planificadores, como SAPA [Do y Kambhampati 2003] o LPG
[Gerevini et al. 2003], que recurren a tecnicas de paralelizacion.
La secuencia {δ0, δ1, . . . , δn} define la sucesion de situaciones imprevistas
que han ocurrido durante la ejecucion del plan. Esta secuencia hace que la
ejecucion de un mismo plan para resolver un mismo problema no siempre
obtenga el mismo resultado. Este hecho destaca la importancia de disponer
de un mecanismo de monitorizacion de la ejecucion, ası como la desventaja
de realizar un gran esfuerzo para generar un plan completo que, en muchas
ocasiones, no tendra exito.
Por ultimo, es importante definir tambien el concepto de metrica del pro-
blema.
Definicion 5.2.14. La metrica del problema m es una expresion numerica
que el planificador debe tratar de optimizar (maximizar o minimizar). Por
simplicidad consideraremos siempre que la metrica debe minimizarse. Esto no
supone una perdida de generalidad, pues es posible transformar el criterio de
optimizacion multiplicando por -1 la expresion.
La metrica permite evaluar la bondad de un plan y decidir cual es la mejor
opcion entre varios planes posibles. Un plan P1 es de mejor calidad que un
plan P2 si:
1. La ejecucion de P1 y P2 conducen a los estados S1 y S2 respectivamente,
y S1 y S2 son estados objetivo.
2. El valor de la metrica en S1 es menor que en S2: evalue(m, S1) <
evalue(m, S2).
5. Planificacion heurıstica en tiempo real 105
Evidentemente, la aparicion de imprevistos durante la ejecucion de un plan
hace imposible asegurar que el estado final que se alcance sera el optimo de
acuerdo a la metrica. La metrica, no obstante, puede emplearse para seleccio-
nar entre diversas soluciones parciales aquella que tenga mayores posibilidades
de conducir a un plan final de mejor calidad.
Operaciones sobre planes
El planificador necesita realizar ciertas operaciones sobre los planes durante
su construccion y reparacion. Estas operaciones se emplearan en la formaliza-
cion del algoritmo de planificacion. Sea un plan P = {a0, a1, . . . , an}:
• first(P ) devuelve la primera accion de P , es decir, a0.
• removefirst(P ) devuelve el plan resultante de eliminar la primera accion
de P , es decir, {a1, . . . , an}.
• Emplearemos el operador de concatenacion ⊗ para unir varias secuencias
de acciones. El resultado de P ⊗ {an+1} serıa, por lo tanto, la secuencia
{a0, . . . , an, an+1}.
5.3. Esquema general del algoritmo de plani-
ficacion
El algoritmo de planificacion se basa en la idea de descomponer el pro-
blema de planificacion original PP = 〈F , L, A, I, G, m〉 en n subproblemas
independientes PPi = 〈F , L, A, I, gi, m〉, i = 1 . . . n, donde n es el numero de
objetivos del problema (n = |G|). Se genera, por lo tanto, un plan Pi distin-
to para cada uno de los subproblemas. Finalmente, se estudian los conflictos
existentes entre dichos planes para decidir cual es la primera accion que debe
ejecutarse a continuacion (anext).
El planificador envıa anext al ejecutor cuando este se lo solicita. El planifi-
cador actualiza entonces su representacion interna del mundo. Puesto que el
estado varıa continuamente durante la ejecucion de un plan, introduciremos el
termino S0 (estado actual) para hacer referencia al modelo que el planificador
106 5.3. Esquema general del algoritmo de planificacion
tiene del mundo en el instante actual. En el comienzo del proceso de planifi-
cacion, el estado actual coincide con el estado inicial del problema (S0 = I).
El nuevo estado actual se calcula como result(anext, S0, ∅). La modificacion
del estado actual, por lo tanto, se lleva a cabo considerando que la ejecucion de
anext tendra los efectos esperados, es decir, asumiendo que δ = ∅. Este modelo
de operacion se denomina planificacion basada en asunciones (assumption-
based planning [Koenig et al. 2003]): las acciones se consideran deterministas
para simplificar el problema de planificacion, y se replanifica cuando el efecto
real de las acciones no coincide con el esperado.
Cuando se trata de una accion de sensorizacion se asume tambien que los
efectos proposicionales de la accion se cumplen en el mundo (lvalue(li, Sreal) =
V ,∀li ∈ Leff(αnext)). Si alguna de estas asunciones resulta ser falsa, el meca-
nismo de monitorizacion del ejecutor debera notificarle este hecho al planifi-
cador, el cual se encargara de calcular nuevos planes para el nuevo estado.
Todo este proceso se repite continuamente, hasta que el usuario decide
detener la ejecucion del agente de planificacion. Cuando el agente ha alcanzado
todos los objetivos, el planificador devuelve una accion especial: NOP (no
operacion). NOP es una accion sin precondiciones ni efectos que le permite
al agente esperar cierto tiempo sin realizar ninguna accion. El planificador
volvera a calcular nuevos planes solo cuando el usuario le introduzca nuevos
objetivos, o en el caso de que el ejecutor descubra que alguno de los objetivos
previamente alcanzados ya no se satisface.
El esquema del algoritmo de planificacion puede verse en la figura 5.5. El
algoritmo consta de cuatro etapas principales:
1. Etapa de preproceso. En esta etapa, la informacion sobre el proble-
ma y el dominio se procesa y se organiza para agilizar los calculos en
las etapas posteriores. El preproceso consiste principalmente en realizar
una instanciacion de los operadores y de los predicados proporciona-
dos en la especificacion del dominio. El resultado de la instanciacion
es el conjunto de todas las acciones y literales posibles. El trabajo con
acciones completamente instanciadas es, en general, mas eficiente que
trabajar directamente con operadores. Por esta razon, la mayorıa de los
planificadores actuales [Younes y Simmons 2002] incluyen una etapa de
preproceso similar a la aquı comentada.
5. Planificacion heurıstica en tiempo real 107
Figura 5.5: Esquema general del algoritmo de planificacion. El ejecutor in-teracciona con el planificador para solicitarle acciones y para notificarle lainformacion adquirida del entorno.
En la figura 5.5 se puede observar que la etapa de preproceso puede rea-
lizarse mas de una vez durante el proceso de planificacion. Esto ocurre
cuando el sistema de monitorizacion detecta una situacion inesperada en
el entorno que afecta al conjunto de acciones posibles. Considerando, por
ejemplo, el problema del reparto de correo mediante un robot movil, el
ejecutor podrıa descubrir la presencia de una nueva carta en un despa-
cho. El proceso de instanciacion deberıa entonces repetirse para generar
nuevas acciones para coger, transportar y entregar dicha carta.
2. Grafo relajado de planificacion. El grafo relajado proporciona la
informacion heurıstica necesaria para la construccion de los planes. El
problema de planificacion se relaja, ignorando los efectos negativos y las
precondiciones numericas de las acciones. Partiendo del estado actual
S0, el grafo relajado de planificacion (RPG) expande por orden de coste
todas las posibles acciones hasta alcanzar los objetivos. De esta forma se
obtiene una aproximacion del coste de alcanzar un determinado literal,
ası como el conjunto de acciones que permiten alcanzar dicho literal con
el menor coste estimado.
108 5.3. Esquema general del algoritmo de planificacion
Cada vez que cambia el estado actual, el planificador debe recalcular el
RPG. Un cambio de estado puede aparecer en dos casos:
• Cuando el planificador envıa la accion calculada anext al ejecutor.
El estado se actualiza con los efectos esperados de anext.
• Cuando el mecanismo de monitorizacion detecta un evento inespe-
rado.
El calculo de los costes estimados se realiza sobre un estado de partida
determinado, por lo que cualquier cambio en dicho estado disminuye la
calidad de las estimaciones. La alternativa para no tener que calcular un
nuevo RPG en cada estado es emplear tecnicas de planificacion regresiva,
es decir, planificar a partir de los objetivos. Esta alternativa, que ya se
probo con la version regresiva del planificador HSP2 [Bonet y Geffner
2001c], presenta, sin embargo, dos inconvenientes:
• Un planificador de tiempo real no dispone muchas veces del tiem-
po necesario para calcular un plan completo. Debe centrarse, por
lo tanto, en tomar las decisiones mas inminentes, es decir, en las
siguientes acciones a ejecutar. Esta forma de trabajar entra en con-
flicto con la planificacion regresiva, pues esta ultima comienza a
razonar a partir de los objetivos.
• La planificacion regresiva no produce necesariamente mejores re-
sultados. De hecho, el planificador regresivo HSPr obtenıa incluso
peores resultados que su homologo progresivo. Los autores indican
en [Bonet y Geffner 2001c] que esto se debe en gran parte a que la
informacion adicional que se obtiene al recalcular el RPG resulta
beneficiosa.
Debido a estos inconvenientes hemos optado por realizar una implemen-
tacion progresiva, en la que se calcula un RPG cada vez que se produce
un cambio de estado.
3. Calculo de planes mono-objetivo. El desarrollo de un planificador
anytime, apto para trabajar con restricciones en los tiempos de respuesta,
requiere la capacidad de trabajar con planes parciales (o incompletos).
5. Planificacion heurıstica en tiempo real 109
En la literatura se puede observar que esta capacidad se consigue de dos
formas distintas:
• Planificacion de orden parcial. Los algoritmos POCL, descritos
en el apartado 2.3.1 permiten una construccion incremental de los
planes mediante la instanciacion progresiva de los parametros de las
acciones y los metodos de resolucion de amenazas. El planificador
IXTET -EXEC [Lemai y Ingrand 2004], por ejemplo, deja inalte-
rada la parte del plan que se ha ejecutado ya mientras repara el
resto plan. Los planificadores basados en MDPs, como PASCALE-2
[Thiebaux et al. 1995], proceden de una forma similar para respetar
las restricciones temporales.
• Tecnicas de descomposicion. Estas tecnicas consisten en des-
componer un problema en varios subproblemas, generalmente mas
sencillos de resolver. Luego, las soluciones de los subproblemas se
combinan para formar una solucion al problema original. Entre
las tecnicas de descomposicion existentes destacan la planificacion
jerarquica, la ordenacion de objetivos y la descomposicion de obje-
tivos, descritas en el apartado 2.3.5.
Generalmente la planificacion de orden parcial es menos eficiente que la
de orden total, por lo que hemos decidido emplear esta ultima aproxima-
cion. Tampoco hemos optado por realizar una planificacion jerarquica,
con la intencion de proporcionar un funcionamiento lo mas independien-
te del dominio posible. Las tecnicas de descomposicion y ordenacion de
objetivos resultan muy apropiadas para el tipo de planificacion que de-
seamos realizar y, ademas, pueden utilizarse conjuntamente. La tecnica
de ordenacion de objetivos, sin embargo, no se ha implementado todavıa,
aunque queda como una futura ampliacion para mejorar la eficiencia del
planificador.
Utilizando la tecnica de descomposicion de objetivos, el algoritmo de
planificacion calcula un plan Pi por separado para cada uno de los obje-
tivos del problema gi ∈ G. El calculo de cada plan Pi se realiza de forma
incremental, partiendo de un plan inicial posiblemente incompleto. Es-
tos planes se van refinando concurrentemente mientras el planificador
110 5.4. Etapa de preproceso
disponga de tiempo.
4. Ordenacion de planes. El principal inconveniente de la tecnica de
descomposicion de objetivos es el elevado coste de la combinacion de los
planes obtenidos para formar un plan final correcto.
Nuestro algoritmo evita este problema, ya que no trata de combinar
los distintos planes Pi generados. Cuando el ejecutor solicita una accion
al planificador, el planificador detiene el refinamiento de los planes Pi.
Comienza entonces un proceso de ordenacion que decide que plan es
el que debe comenzar a ejecutarse en primer lugar. Esta ordenacion se
realiza mediante un estudio de los conflictos y las interacciones que hay
entre los distintos planes Pi.
La siguiente accion a ejecutar anext corresponde con la primera accion
del plan que se ha ordenado en primer lugar. La accion anext se envıa
entonces al ejecutor y el planificador actualiza su base de hechos con los
resultados esperados de dicha accion. Los planes Pi que comienzan con
la accion anext se reutilizan para la siguiente iteracion. Para ello, solo es
necesario eliminar la primera accion de dichos planes puesto que ya se
esta ejecutando. Por el contrario, los planes que no comienzan con anext
se descartan. Aunque cabe la posibilidad de que dichos planes puedan
ser reparados facilmente, es conveniente volver a calcularlos desde cero.
De esta forma se aprovecha la informacion actualizada que proporciona
el nuevo grafo relajado de planificacion.
En los siguientes apartados de este capıtulo se ofrece una vision detallada
de estas cuatro etapas que componen algoritmo de planificacion. Se analiza
tambien la complejidad de cada una de estas etapas para estudiar el impacto
que producen en el proceso completo de planificacion. Los resultados empıricos
que se presentan en estos apartados se han obtenido empleando un Pentium
4 a 2 Ghz., con 256 Mbytes de memoria.
5.4. Etapa de preproceso
La informacion sobre el problema y el dominio se le proporciona al pla-
nificador en forma de ficheros PDDL. Este lenguaje, ası como las extensiones
5. Planificacion heurıstica en tiempo real 111
propias introducidas, se comentan en los apartados 2.2.3 y 4.3. El dominio
describe, mediante operadores y predicados, las operaciones que pueden rea-
lizarse en el mundo. Esta informacion, sin embargo, no esta instanciada, es
decir, que se emplean variables para representar de una forma compacta todas
las operaciones posibles. Actualmente hay muy pocos planificadores capaces
de trabajar directamente sobre los operadores. Trabajar sobre operadores es
generalmente mas complejo, aunque resulta apropiado para las aproximacio-
nes de planificacion de menor compromiso (least commitment planning), en
las que la instanciacion de variables se retrasa tanto como sea posible [Younes
y Simmons 2002].
La etapa de preproceso, por lo tanto, esta presente en la mayorıa de los
planificadores actuales. En nuestro algoritmo, esta etapa se divide en tres
importantes tareas:
1. Instanciacion de las acciones y literales. Mediante la sustitucion
de los parametros de los operadores por valores concretos se generan
todas las acciones posibles. Del mismo modo, los literales se obtienen
de instanciar los parametros de los predicados. El algoritmo trabajara a
partir de ahora solo con acciones y literales, lo que resulta mas eficiente.
Normalmente, la fase de instanciacion se realiza una sola vez en todo el
proceso de planificacion. Sin embargo, en entornos dinamicos, es posible
la aparicion de nuevos objetos o, lo que es lo mismo, que sea posible
asignar nuevos valores a los parametros de los operadores. Como conse-
cuencia, la instanciacion debe volverse a realizar para obtener las nuevas
acciones posibles. El ejecutor se encarga de avisar al planificador cuando
el sistema de monitorizacion detecta una situacion como la descrita.
2. Analisis de alcanzabilidad. En el proceso de instanciacion se gene-
ran muchas acciones que no son alcanzables, es decir, que ningun plan
puede conducir a un estado en el que se satisfagan sus precondiciones.
Esta comprobacion tiene un coste exponencial, por lo que relajamos el
problema ignorando las precondiciones numericas y negadas de las accio-
nes. El analisis de alcanzabilidad elimina una gran cantidad de acciones,
acelerando considerablemente el proceso de construccion del plan.
112 5.4. Etapa de preproceso
Este analisis tiene, sin embargo, un inconveniente: alguna de las accio-
nes eliminadas puede convertirse en una accion alcanzable si el entorno
evoluciona de una forma inesperada. Si el mecanismo de monitorizacion
detecta esta situacion, el analisis de alcanzabilidad tendra que volver a
repetirse.
3. Acceso optimizado a las estructuras de datos. Toda la informa-
cion del dominio y del problema (literales, acciones, objetivos, el estado
inicial, etc.) se almacenan en diversas estructuras de datos. Partiendo de
dichas estructuras es posible obtener, con un cierto coste, nueva informa-
cion, como cuales son las acciones que producen un literal o que acciones
modifican una determinada variable numerica. Esta informacion se utili-
za con mucha frecuencia durante el resto de etapas de planificacion, por
lo que es conveniente tenerla almacenada para un acceso mas rapido. Las
nuevas estructuras de datos, generadas en esta fase, permiten recuperar
esta informacion con un coste computacional constante.
En nuestra implementacion particular de esta etapa del algoritmo, hemos
unificado las fases de instanciacion y de analisis de alcanzabilidad. De esta
forma, solo instanciamos las acciones que son alcanzables, reduciendo la com-
plejidad del proceso. Inicialmente, se comparan los literales de la situacion
inicial con las precondiciones de los operadores. Cuando un literal casa con
una precondicion, en los parametros del operador se almacenan los valores
correspondientes. Al final de este proceso obtenemos una lista de operadores
semi-instanciados, en los que cada parametro del operador tiene un conjunto
de valores posibles. Probando todas las posibles combinaciones de asignacion
de valores a los parametros obtenemos un conjunto de acciones, aunque solo
algunas seran alcanzables. Los efectos de las acciones alcanzables se anaden a
la lista de literales. Este proceso finaliza cuando, a partir de los nuevos literales,
no es posible instanciar ninguna nueva accion.
El coste computacional de la obtencion de los operadores semi-instanciados
es, en el peor de los casos, del orden de |O| × |Lprec+| × |L|, donde |O| es el
numero de operadores, |Lprec+| es el numero medio de precondiciones por
operador, y |L| es el numero de literales instanciados. Por otra parte, la ins-
tanciacion de las acciones a partir de los operadores semi-instanciados tiene
un coste del orden de |Os| × vpnp × |Lprec+|, donde:
5. Planificacion heurıstica en tiempo real 113
• |Os| es el numero de operadores semi-instanciados. Este valor suele ser
bastante menor que el numero total de acciones finalmente instanciadas.
• vp representa el numero medio de valores asignados a cada parametro.
Este numero depende del problema, pero suele ser bastante pequeno
(generalmente, entre 1 y 4).
• np es el numero medio de parametros de un operador. Este valor es, tam-
bien, muy reducido. Un operador no suele tener mas de cinco parametros.
Finalmente, el coste de la fase de optimizacion del acceso a las estructuras
de datos es polinomico, del orden de |L|×|A|, pues es suficiente con un recorrido
(anidado) de los literales y de las acciones instanciadas.
Aunque de coste teoricamente exponencial en el peor de los casos, la etapa
de preproceso no supone un esfuerzo computacional significativo. De hecho,
tal como demuestran los resultados experimentales presentados en la tabla
5.1, este algoritmo es capaz de instanciar varios miles de acciones en solo unos
milisegundos. Esta tabla muestra el tiempo empleado en el preproceso para
cuatro dominios de planificacion: Depots, DriverLog, Rovers y Satellite. Estos
dominios, presentados en la competicion del 2002 [IPC 2002], se comentan en
el apendice A.
5.5. Grafo relajado de planificacion
Como ya se comento en el apartado 2.3.3, el principio general para calcular
heurısticas es generar una version simplificada del problema. Y, probablemen-
te, una de las relajaciones que mejores resultados produce es ignorar los efectos
negativos de las acciones (Leff−). Diversos planificadores actuales, como Sa-
pa [Do y Kambhampati 2003] y Metric-FF [Hoffman 2003], han utilizado esta
tecnica como base para el calculo de sus funciones heurısticas.
Para resolver este problema relajado se construye un grafo mediante una
expansion similar a la que realiza el planificador Graphplan. Este grafo, tam-
bien llamado grafo relajado de planificacion (RPG), se genera en tiempo poli-
nomial [Hoffman y Nebel 2001] y proporciona informacion util para el proceso
de planificacion.
114 5.5. Grafo relajado de planificacion
Tabla 5.1: Tiempo de computo de la etapa de preproceso. El numero de literalesy acciones instanciadas ofrecen una medida de la complejidad del problema.
Dominio Problema |L| |A| Tiempo (ms.)
1 44 72 15 228 792 10
Depots 10 192 816 1015 629 3990 4020 734 5894 60
1 46 88 15 75 168 10
DriverLog 10 173 516 515 488 2592 2020 1588 15696 160
1 70 63 15 111 144 1
Rovers 10 244 382 515 371 751 2020 1249 3976 160
1 62 53 15 209 506 10
Satellite 10 514 1795 2015 1040 5651 4020 1150 4466 30
El algoritmo tradicional para la construccion de un RPG genera niveles de
literales y niveles de acciones de forma alternada. El primer nivel, L0, es un
nivel de literales que contiene todos los literales que son ciertos en el estado
actual S0. Los niveles de acciones, At, contienen todas las acciones que son
aplicables en el nivel anterior Lt. El siguiente nivel de literales, Lt+1, se extiende
mediante la inclusion de los efectos positivos de dichas acciones. La expansion
del RPG termina cuando se alcanza un nivel de literales que contiene todos
los objetivos del problema, o cuando ya no es posible aplicar ninguna nueva
accion. La figura 5.6 muestra este proceso.
La expansion tradicional del RPG presenta, sin embargo, varios incon-
venientes, pues no tiene en cuenta caracterısticas importantes del problema,
5. Planificacion heurıstica en tiempo real 115
t = 0; L0 = S0 // Inicializacion
while ∃gi ∈ G/gi 6∈ Lt do // Nueva expansion
At = {a ∈ A/Lprec+(a) ∈ Lt} // Nivel de accion
Lt+1 = Lt⋃
Leff+(a), ∀a ∈ At // Nivel de literales
if Lt+1 = Lt then fail endift = t + 1
endwhile
Figura 5.6: Expansion tradicional del RPG.
como la incertidumbre, los objetivos numericos, la funcion de optimizacion
(metrica) y las acciones de sensorizacion. Los siguientes apartados describen
las extensiones que se han desarrollado para incluir estas caracterısticas en el
grafo relajado.
5.5.1. Incertidumbre sobre el estado actual
En la expansion tradicional del RPG, los niveles de literales unicamente
contienen literales positivos. Esto se debe a que, de acuerdo con una asun-
cion de STRIPS, si un literal no se incluye explıcitamente en la descripcion de
un estado, entonces dicho literal es falso en dicho estado. Sin embargo, esta
asuncion no es posible en nuestro modelo, ya que empleamos una logica triva-
luada para representar problemas con informacion incompleta. Por lo tanto,
hemos optado por un establecer un criterio diferente: denominaremos niveles
proposicionales a los niveles de literales, ya que estos contendran proposiciones
logicas en lugar de literales. De esta forma, el primer nivel proposicional, L0,
contendra todas las proposiciones logicas que se satisfacen en el estado actual.
Los niveles de acciones, At, contienen, de este modo, aquellas acciones cuyas
precondiciones proposicionales, tanto positivas como negativas, se encuentran
en el nivel proposicional anterior Lt. El siguiente nivel proposicional Lt+1 ex-
tiende Lt con los efectos, positivos y negativos, de las acciones en At. Este
algoritmo se describe en la figura 5.7.
De esta forma, un nivel proposicional puede contener dos proposiciones
que representen un mismo literal, pero uno en forma positiva y el otro en
forma negativa. Esta situacion es posible puesto que los niveles proposicionales
116 5.5. Grafo relajado de planificacion
t = 0 // Inicializacion
Lt = {pi ∈ PL/satisfy(pi, S0) = V}while ∃gi ∈ G/gi 6∈ Lt do // Nueva expansion
At = {a ∈ A/Lprec(a) ∈ Lt} // Nivel de accion
Lt+1 = Lt⋃
Leff(a), ∀a ∈ At // Nivel proposicional
if Lt+1 = Lt then fail endift = t + 1
endwhile
Figura 5.7: Algoritmo de expansion del RPG considerando la incertidumbreen los valores logicos de las proposiciones.
del grafo no representan estados validos, sino conjuntos de proposiciones que
pueden alcanzarse con un cierto coste (en este caso, el coste se mide en numero
de pasos de tiempo). Ası, si en t pasos de tiempo podemos conseguir que una
puerta, doorA, este tanto abierta como cerrada, Lt contendra entonces las
proposiciones open doorA y ¬ open doorA.
5.5.2. Manejo de funciones numericas
Cuando se trabaja con problemas de planificacion numericos es necesario
considerar tambien como se van a relajar la parte numerica del problema, es
decir, las precondiciones y los efectos numericos de las acciones, y el criterio
de optimizacion. Respecto a las precondiciones y efectos numericos, hemos se-
guido la misma aproximacion que el planificador Sapa [Do y Kambhampati
2003], es decir, ignorarlos en el problema simplificado. Metric-FF [Hoffman
2003], por el contrario, sigue una aproximacion diferente, ignorando unica-
mente los efectos numericos decrecientes de las acciones. Esta aproximacion
proporciona una mayor cantidad de informacion, pero requiere que las varia-
bles numericas cumplan ciertas propiedades (en el problema de planificacion,
debe ser preferible que las variables numericas tengan valores altos).
Ignorar las precondiciones y los efectos numericos de las acciones nos permi-
te trabajar de una forma mas sencilla con el problema de planificacion relajado.
Por lo demas, esta decision no tiene mayor trascendencia, pues el algoritmo
que se presenta en este apartado es totalmente compatible con otras aproxima-
ciones y, por lo tanto, podrıa utilizarse en otros planificadores heurısticos. Del
5. Planificacion heurıstica en tiempo real 117
mismo modo, tambien es posible incorporar en nuestro algoritmo de expansion
la extension que Metric-FF propone para considerar los efectos numericos de
las acciones.
Por otra parte, falta por considerar la funcion de optimizacion o metrica del
problema. Tradicionalmente, los niveles del RPG proporcionan informacion
sobre el numero de pasos de tiempo (time steps) necesarios para alcanzar
una determinada proposicion o para alcanzar un estado en el que una accion
pueda ser ejecutada. Sin embargo, muchos planificadores actuales permiten
especificar un criterio de optimizacion (o metrica del problema) diferente. De
esta forma se permite al usuario seleccionar un criterio de optimizacion mas
acorde con el problema a resolver, como, por ejemplo, minimizar el consumo
de combustible o la distancia recorrida en un problema de transporte. Esta
caracterıstica resulta muy interesante en un gran numero de problemas, por
lo que hemos optado por modificar el algoritmo de expansion del RPG para
asociar los diferentes niveles del grafo con costes estimados de acuerdo con la
metrica del problema.
La idea basica para tener en cuenta el criterio de optimizacion en la etapa
del RPG es incluir en el grafo cierta informacion sobre el coste de las acciones
respecto a la metrica del problema. Sin embargo, considerar todos los posibles
estados diferentes que pueden alcanzarse debido a modificaciones en los valores
de las variables numericas es impracticable. Por lo tanto, nuestra propuesta
consiste en calcular una estimacion del coste de las acciones en el estado actual
(S0). Esta simplificacion es totalmente aceptable en problemas en los que los
costes y el consumo de recursos no es muy dependiente del estado en el que
se aplican las acciones. La mayorıa de los problemas de planificacion cumplen
este requerimiento. Por ejemplo, el consumo de combustible de un avion de-
pende fuertemente de informacion estatica, como la longitud del recorrido. La
informacion dependiente del estado, como el numero de pasajeros en un vuelo
determinado, solo tiene un pequeno efecto en el coste.
La principal diferencia de nuestra propuesta respecto al RPG tradicional
es que los niveles del grafo no representan el numero de acciones aplicadas,
sino costes relativos a la metrica del problema (m). Por ello, para calcular los
niveles del grafo debemos estimar el coste de ejecutar una accion a:
118 5.5. Grafo relajado de planificacion
cost(a) = evalue(m, result(a, S0, ∅))− evalue(m,S0) + ε
if cost(a) < ε then cost(a) = ε endif(5.5.1)
El coste de una accion a se calcula como el incremento en el valor de la
metrica causado por la ejecucion de a en S0. Es necesario puntualizar, sin
embargo, que los efectos numericos de a se aplican sobre el estado actual,
independientemente de si la accion es ejecutable o no en dicho estado. La
constante ε incluido en el coste representa que todas las acciones, incluso
aquellas cuya ejecucion no afecta al valor de la metrica, tienen un coste. El
valor de ε es un numero muy pequeno para evitar que influya significativamente
sobre el coste estimado de las acciones. De esta forma, si no hay una metrica
definida en el problema, nuestro RPG es equivalente al mostrado en la figura
5.7.
Finalmente, se comprueba que el coste de la accion sea positivo. Ignoramos,
por lo tanto, el coste de las acciones que decrementan el valor de la metrica,
ya que, de otro modo, se producirıa una expansion desordenada del grafo. Se
considera, entonces, que estas acciones tienen el coste mınimo (ε). La expansion
del grafo se realiza ası en un orden incremental de coste, en el que cada nivel
Ai contiene acciones que, de una forma estimada, cuestan mas de alcanzar que
las de los niveles anteriores (Aj, j < i).
Tras estas consideraciones, el algoritmo de expansion del RPG puede for-
malizarse como muestra la figura 5.8. El primer paso de este algoritmo consiste
en inicializar los costes estimados de las proposiciones logicas: las proposiciones
que se satisfacen en S0 tienen coste cero. Al resto de proposiciones se les asocia
inicialmente un coste infinito. El coste de una proposicion logica p, cost(p), se
actualiza cuando se inserta en el grafo alguna accion a que produce (o elimina)
p. El nuevo coste de p se calcula como el mınimo entre:
• El coste actual de la proposicion, cost(p).
• El coste de alcazar p mediante la ejecucion de a. Es posible que obtener
p mediante la ejecucion de a sea una opcion menos costosa que la que
tenıamos hasta el momento. Este nuevo coste se calcula como la suma
de:
5. Planificacion heurıstica en tiempo real 119
– El coste estimado de alcanzar desde S0 un estado en el que las
precondiciones proposicionales de a se satisfagan. Este coste, deno-
minado cost reach(a), se obtiene como la suma de los costes de las
precondiciones de a.
– El coste de ejecutar a, cost(a) (ver la ecuacion 5.5.1).
1. // Inicializacion de los costes
2. cost(p) ={
0 , if satisfy(p, S0) = V∞ , otherwise
, ∀p ∈ PL
3. // Primer nivel proposicional
4. t = 0; Lt = {p ∈ PL/cost(p) = 0}5. New Prop = ∅6. // Expansion del RPG hasta alcanzar todos los objetivos
7. while ∃g ∈ G/g 6∈ Lt do8. // Nivel de acciones
9. At = {a ∈ A/Lprec(a) ∈ Lt)10. cost reach(a) =
∑p∈Lprec(a) cost(p), ∀a ∈ At
11. // Coste de los efectos de las acciones de At
12. for all pi ∈ Leff(a), a ∈ At do13. new cost = mın(cost reach(ai) + cost(ai)),∀ai ∈ At/pi ∈ Leff(ai)14. cost(pi) = mın(cost(pi), new cost)15. endfor16. // Nuevas proposiciones alcanzadas
17. New Prop = New Prop ∪ Leff(a) − Lt, ∀a ∈ At
18. if New Prop = ∅ then fail endif19. // Siguiente nivel proposicional
20. next t = min(cost(p)),∀p ∈ New Prop21. Lnext t = Lt ∪ {p ∈ New Prop / cost(p) = next t}22. New Prop = New Prop− Lnext t
23. t = next t24. endwhile
Figura 5.8: Expansion del RPG considerando la metrica del problema.
La expansion del grafo comienza con la generacion del primer nivel pro-
posicional L0, que contiene todas las proposiciones de coste cero, es decir, las
que se satisfacen en S0. La expansion, que termina cuando se alcanza un nivel
proposicional que contiene todos los objetivos, se lleva a cabo de forma similar
120 5.5. Grafo relajado de planificacion
al algoritmo tradicional, es decir, generando niveles de acciones y de proposi-
ciones de forma alternada. Los niveles de acciones At se calculan de la misma
forma que en la figura 5.7, insertando aquellas acciones cuyas precondiciones
se satisfacen en el nivel proposicional previo Lt.
Los niveles proposicionales, Lt, estan indexados mediante el coste sus pro-
posiciones, por lo que todas las proposiciones pertenecientes a un mismo nivel
tienen un coste t o menor. Tras generar un nivel de acciones At es necesario,
por lo tanto, calcular cual sera el coste, next t, del siguiente nivel proposicio-
nal. Para ello se mantiene una lista New Prop con las proposiciones que ya
han sido alcanzadas (y que son, por lo tanto, efecto de alguna accion del grafo),
pero que todavıa no se han insertado en el grafo. Para lograr una expansion del
RPG ordenada por coste, next t se calcula como el menor de los costes de las
proposiciones en New Prop. El nuevo nivel proposicional, Lnext t, extiende el
nivel anterior con las proposiciones de la lista New Prop que tienen un coste
next t.
Las proposiciones insertadas en el RPG se extraen de la lista New Prop.
Si New Prop queda vacıa, el nuevo nivel generado sera igual que el anterior,
Lnext t = Lt, lo que supone que no habra ningun progreso en la expansion. Esta
situacion ocurrira cuando el planificador no disponga de suficiente informacion
para lograr los objetivos del problema o, simplemente, cuando algun objetivo
sea inalcanzable desde el estado actual.
El algoritmo de expansion presentado en este apartado puede utilizarse
para mejorar la calidad de los planes obtenidos, puesto que la informacion
heurıstica proporcionada esta enfocada a optimizar la metrica del problema.
En el Capıtulo 6 se realiza un estudio empırico comparando los resultados
obtenidos dependiendo del tipo de grafo relajado utilizado, lo que permite
observar las ventajas del RPG propuesto frente al tradicional.
5.5.3. Manejo de acciones de sensorizacion
En este apartado mostramos las modificaciones que es necesario realizar en
el proceso de expansion del RPG cuando el problema de planificacion define
acciones de sensorizacion. Para describir estos cambios, y al igual que hicimos
en la seccion 5.2, utilizaremos la nomenclatura a y α para referirnos a acciones
normales y a acciones de sensorizacion respectivamente.
5. Planificacion heurıstica en tiempo real 121
El primer paso para calcular un RPG que contemple las acciones de sen-
sorizacion es realizar una primera expansion mediante el algoritmo presentado
en el apartado anterior (ver figura 5.8). Como podemos observar, este algo-
ritmo solo incluye acciones normales en los niveles de acciones, por lo que es
necesario modificar el calculo de estos niveles. Las acciones de sensorizacion
son aplicables bajo las mismas condiciones que las acciones normales, tal y
como se indico en el apartado 5.2.4. Los niveles de acciones At se calculan, por
lo tanto, como se muestra a continuacion:
At = {a ∈ A/Lprec(a) ∈ Lt} ∪ {α ∈ A/Lprec(α) ∈ Lt} (5.5.2)
Ninguna otra modificacion es necesaria en esta primera expansion del RPG
ya que los efectos de las acciones de sensorizacion no se insertan en el grafo y,
consecuentemente, el coste de estas proposiciones tampoco se calcula. De este
modo, el RPG obtenido solo incluira aquellas proposiciones que sean alcan-
zables mediante la ejecucion de acciones normales, es decir, sin recurrir a la
sensorizacion.
Si en la primera expansion se han alcanzado todos los objetivos proposi-
cionales del problema, entonces no es necesario adquirir nueva informacion a
traves de acciones de sensorizacion. En caso contrario, es necesario incluir los
posibles efectos de las acciones de sensorizacion en el grafo. Como comenta-
mos en el apartado 5.2.4, los efectos de una accion de sensorizacion son un
conjunto de literales cuyo valor de verdad se desconoce. Por lo tanto, si l ∈ L
es un efecto de una accion de sensorizacion α, en el grafo habra que incluir
tanto l como la proposicion ¬l. El objetivo de esta segunda expansion es el
de obtener, en un orden incremental de coste, toda la informacion necesaria
para satisfacer los objetivos. Si algun objetivo del problema continua siendo
inalcanzable tras esta segunda expansion, el problema no tendra solucion.
El algoritmo para insertar los efectos de las acciones de sensorizacion, o
lo que hemos denominado como segunda expansion del RPG, se muestra en
la figura 5.9. En primer lugar se calcula una lista, Lsens, con las acciones de
sensorizacion que se han insertado en el RPG. Sin embargo, en Lsens solo
incluiremos aquellas acciones que produzcan nuevas proposiciones, es decir,
proposiciones que no se hayan insertado todavıa en el grafo y que, por lo tanto,
122 5.5. Grafo relajado de planificacion
tengan un coste infinito. Los efectos de las acciones de sensorizacion se van
anadiendo por orden de coste por lo que, en cada iteracion, se seleccionara de
Lsens la accion de sensorizacion, α, cuyos efectos tengan el menor coste.
1. // Expansion del RPG hasta alcanzar los objetivos
2. while ∃g ∈ G/cost(g) = ∞ do3. // Calculo de la lista de acciones de sensorizacion
4. Lsens = {α ∈ At /∃li ∈ Leff(α) ∧ (cost(li) = ∞∨ cost(¬li) = ∞)}5. if Lsens = ∅ then fail endif6. // Accion de sensorizacion de menor coste
7. α = arg mın(cost reach(αi) + cost(αi)), ∀αi ∈ Lsens
8. // Calculo de los nuevos efectos que produce α
9. New Eff = {li ∈ Leff(α) / cost(li) = ∞}∪{¬lj / lj ∈ Leff(α) ∧ cost(¬lj) = ∞}
10. // Insercion de los efectos de α en el RPG
11. t = cost reach(α) + cost(α)12. cost(p) = t, ∀p ∈ New Eff13. Lk = Lk ∪ New Eff, k ≥ t14. // Re-expansion del RPG (lıneas 5-24 de la figura 5.8)15. call expansion-RPG16. endwhile
Figura 5.9: Algoritmo para la insercion en el RPG de los efectos de las accionesde sensorizacion.
Todos los nuevos efectos que puede producir α, tanto positivos como nega-
tivos, se insertan en el nivel del RPG correspondiente, Lt (donde t es el coste
de los efectos de α), tal y como se hacıa en el algoritmo de la figura 5.8. La
unica diferencia consiste en que Lt no es ahora necesariamente el ultimo nivel
del grafo, por lo que deberemos incluir los efectos de α tambien en los niveles
de mayor coste. Finalmente, el RPG vuelve a expandirse, a partir del nivel
Lt, para insertar en el grafo todas las acciones y proposiciones que ahora sı es
posible alcanzar gracias a la informacion que α ha proporcionado. Por ejemplo,
si consideramos que α es una accion que le permite a un robot comprobar si
la puerta de un despacho esta abierta o no, ahora seremos capaces de incluir
en el grafo nuevas acciones para entrar en dicho despacho y para navegar por
su interior.
Todo este proceso termina cuando se alcanzan los objetivos del problema
o cuando ya no queda ninguna accion de sensorizacion capaz de obtener nueva
5. Planificacion heurıstica en tiempo real 123
informacion, es decir, cuando la lista Lsens queda vacıa. En este ultimo caso los
objetivos seran inalcanzables. En el capıtulo 6 se realiza un estudio empırico,
mediante la ejecucion del planificador en diversos entornos simulados, para
evaluar los planes obtenidos en presencia de informacion incompleta. Esta
evaluacion permite apreciar el buen comportamiento que se obtiene siguiendo
esta aproximacion.
5.5.4. Coste computacional de las extensiones propues-
tas
El algoritmo de expansion tradicional del RPG tiene un coste polinomial
respecto al numero de proposiciones y acciones del problema, tal y como se
demuestra en [Hoffman y Nebel 2001]. La nueva extension que hemos introdu-
cido para el calculo de costes en funcion de la metrica del problema supone un
incremento en el coste computacional, debido principalmente a dos factores:
• Puesto que las proposiciones deben insertarse en el grafo por orden de
coste, es conveniente mantener ordenada la lista de nuevas proposiciones,
New Prop. Esta ordenacion, innecesaria en el RPG tradicional, tiene
un coste computacional lineal en funcion del numero de proposiciones
almacenadas para su insercion en el grafo.
• El calculo de los costes asociados a las acciones tambien supone un pe-
queno incremento en el tiempo de computo. El coste de una accion,
cost(a), implica la evaluacion numerica de la funcion de optimizacion,
tal como se muestra en la ecuacion 5.5.1. En muchos dominios, sin em-
bargo, este calculo puede realizarse una unica vez en todo el proceso de
planificacion. Esto ocurre cuando los costes de las acciones no dependen
del estado actual del mundo, sino de informacion estatica, es decir, de
variables numericas cuyo valor no varıa durante la ejecucion.
Por otro lado, tambien es necesario calcular el coste para poder ejecutar
una determinada accion, cost reach(a). Este coste se calcula como la su-
ma de los costes de las precondiciones de dicha accion. Este calculo tiene,
por lo tanto, un coste lineal en funcion del numero de precondiciones de
la accion.
124 5.5. Grafo relajado de planificacion
Aunque mas costoso que el RPG tradicional, el RPG propuesto sigue te-
niendo un coste polinomico, pues hemos visto que los calculos adicionales que
se realizan son de coste lineal. Aun ası, y al igual que otros planificadores
como FF, el tiempo empleado en la generacion de los RPGs supone un alto
porcentaje del tiempo total de planificacion (ver figura 5.2).
Tabla 5.2: Numero de grafos relajados y tiempo medio empleado en su cons-truccion para distintos problemas de planificacion. La ultima columna muestrael porcentaje del tiempo total de planificacion que supone la generacion de es-tos grafos.
Dominio Problema # RPGs Promedio (ms.) % del total
1 101 0,001 10%5 7721 0,111 22%
Depots 10 1296 0,062 55%15 24736 1,066 68%20 27801 1,905 78%
1 8 0,001 10%5 268 0,037 33%
DriverLog 10 1137 0,062 5 %15 1773 0,209 64%20 20573 2,374 69%
1 90 0,001 10%5 252 0,040 25%
Rovers 10 349 0,086 36%15 1316 0,190 61%20 4389 1,242 75%
1 45 0,001 10%5 204 0,049 40%
Satellite 10 2083 0,360 73%15 1285 0,833 77%20 9178 0,852 90%
Pese a que la construccion de un RPG no suele consumir mas que unos
pocos milisegundos, son muchos los grafos que se generan durante el proceso
de planificacion. Como se comenta en el siguiente apartado, el refinamiento de
los planes obtenidos requiere la construccion de una gran cantidad de RPGs
5. Planificacion heurıstica en tiempo real 125
adicionales. Cuanto mayor es el problema a resolver, mas costosa es la cons-
truccion de los RPGs, y mayor es el numero de grafos que es necesario construir
(debido al mayor numero de etapas de refinamiento necesarias). Este hecho se
puede constatar facilmente observando la figura 5.2, que muestra, para diver-
sos problemas, el numero total de RPGs que se generan, y el tiempo medio
empleado para su construccion.
5.6. Calculo de planes mono-objetivo
El objetivo de esta etapa es la construccion de un plan Pi independiente
para cada objetivo del problema (gi ∈ G). La construccion de estos planes
se realiza de forma incremental para permitir la interrupcion de este proce-
so en cualquier instante. Se calcula, por lo tanto, un plan incompleto ini-
cial que se ira refinando progresivamente (ver figura 5.10). Esta caracterıstica
es la que le permite al planificador conseguir un comportamiento anytime.
El refinamiento de un plan Pi termina cuando se alcanza un plan valido,
valid plan(Pi, S0, {gi}, ∅), - suponiendo, por lo tanto, que no apareceran si-
tuaciones inesperadas -, o cuando el ejecutor interrumpe al planificador, bien
para solicitarle una accion, o bien para notificarle una situacion inesperada.
Figura 5.10: Calculo incremental de un plan Pi independiente para cada obje-tivo del problema.
126 5.6. Calculo de planes mono-objetivo
En el apartado 5.6.1 se describe el algoritmo para la generacion de los planes
iniciales incompletos. En el apartado 5.6.2 se describe la fase de refinamiento,
en la que se intenta reparar estos planes para conseguir planes validos. Es
necesario, sin embargo, introducir previamente una serie de conceptos que se
utilizaran en estos apartados.
Definicion 5.6.1. Dos acciones a1 y a2 son inversas, inverse(a1, a2), si una
elimina los efectos proposicionales positivos de la otra y viceversa:
inverse(a1, a2) = V ←→ Leff+(a1) ⊆ Leff−(a2) ∧ Leff+(a2) ⊆ Leff−(a1)(5.6.1)
Definicion 5.6.2. Una proposicion logica p es necesaria para una secuencia de
acciones P y un conjunto de objetivos proposicionales G si p debe satisfacerse
en cualquier estado inicial Si para el que el plan P sea valido:
necessay(p, P,G) ←→ satisfy(p, Si) = V, ∀Si/valid plan(P, Si, G, ∅) (5.6.2)
Comprobar si una proposicion p es necesaria se puede calcular mediante la
funcion detallada en la figura 5.11.
function necessay(p, P, G) return boolean isS = G; i = |P |while i ≥ 1 do
i = i− 1S = S − Leff(ai)
⋃Lprec(ai)
end whilereturn satisfy(p, S) = V
end function
Figura 5.11: Funcion para comprobar si p es una proposicion necesaria paraun plan P = {a0, . . . , an} y un conjunto de objetivos G.
5.6.1. Calculo de un plan inicial mono-objetivo
El proposito del calculo de los planes iniciales esta estrechamente relaciona-
do con los principios de los algoritmos de planificacion anytime: el planificador
5. Planificacion heurıstica en tiempo real 127
debe poder proporcionar una respuesta en cualquier instante, y la calidad de
dicha respuesta mejora cuanto mayor es el tiempo de computo disponible. Por
ello, los planes iniciales tienen las siguientes caracterısticas:
• El calculo de un plan inicial Pi es un proceso muy rapido. Ademas, la pri-
mera accion de dicho plan es directamente ejecutable en el estado actual
(exec(first(Pi), S0) = V), por lo que podrıa ser una posible respuesta
del planificador. De hecho, la siguiente accion a ejecutar se correspon-
dera con la primera accion de uno (o mas) de los planes Pi.
• Los planes iniciales son, en muchas ocasiones, planes incompletos. Sirven,
por lo tanto, como punto de partida para posteriores refinamientos, que
se realizaran mientras haya tiempo disponible.
El algoritmo descrito en la figura 5.12 muestra el proceso de construccion
de un plan inicial Pi para alcanzar un objetivo proposicional (positivo o negati-
vo) gi. Se parte inicialmente de un plan vacıo y de un conjunto de subobjetivos
proposicionales, SG, que contiene unicamente el objetivo que se pretende al-
canzar (gi). Evidentemente, no es necesario construir ningun plan cuando gi
ya se satisface en el estado actual, es decir, si satisfy(gi, S0) = V .
Pi = ∅SG =
{ {gi} , if satisfy(gi, S0) 6= V∅ , otherwise
while SG 6= ∅ dop = arg max(cost(pj)), ∀pj ∈ SGa = arg mın(action evaluation(aj , p, Pi, {gi})),∀aj/p ∈ Leff(aj)SG = {pj/pj ∈ Lprec(a) ∧ satisfy(pj , S0) 6= V}Pi = {a} ⊗ Pi
endwhile
Figura 5.12: Proceso de calculo de un plan inicial para un objetivo proposicio-nal.
Tras la inicializacion, el primer paso consiste en escoger una proposicion p
del conjunto de subobjetivos SG. La proposicion que se selecciona es la que,
de acuerdo con el RPG calculado, tiene un mayor coste asociado. Recordando
el algoritmo de expansion del RPG (ver figura 5.8), se puede comprobar que el
128 5.6. Calculo de planes mono-objetivo
coste de una proposicion se calcula como la suma de los costes de las acciones
necesarias para alcanzar dicha proposicion en el problema relajado. De este
modo, seleccionando en cada iteracion el subobjetivo de mayor coste se obtiene,
en general, un plan inicial mas completo y, por lo tanto, susceptible de un
menor numero de fases de refinamiento.
Una vez hemos seleccionado el siguiente subobjetivo a resolver, p, escoge-
mos una accion a que nos permita alcanzar p, es decir, que p se encuentre
entre sus efectos. Esta accion se insertara al principio del plan Pi. Entre todo
el conjunto de acciones que producen p, seleccionamos aquella que minimice
la funcion de evaluacion action evaluation. Esta funcion utiliza un conjunto
de criterios para evaluar la bondad de emplear una determinada accion para
conseguir la proposicion p en el plan Pi. Cada uno de estos criterios esta ponde-
rado mediante una constante que representa la importancia que dicho criterio
tiene dentro de la funcion de evaluacion:
action evaluation(aj , p, Pi, {gi}) =∑
k
Ctek ∗ criterionk(aj , p, Pi, {gi}) (5.6.3)
Los criterios que se aplican, de mayor a menor relevancia, son los siguientes:
1. Inversa de la primera accion de Pi. Como muestra la figura 5.12, la
accion seleccionada pasara a ser la primera accion de Pi. Con este criterio
se pretende, por lo tanto, evitar que en Pi aparezcan dos acciones inversas
consecutivas. Formalmente:
criterion1(aj , p, Pi, {gi}) =
{1 , if inverse(aj , first(Pi)) = V0 , otherwise
(5.6.4)
La constante asociada a este criterio es Cte1 = ∞, puesto que es nece-
sario evitar este tipo de situaciones.
2. Coste de aj. Con este criterio se tiene en cuenta tanto el coste que
supone alcanzar un estado en el que aj sea ejecutable (cost reach(aj)),
como el coste de ejecucion de aj (cost(aj)). Ambos son costes estimados
extraıdos del RPG (ver figura 5.8). Puesto que la unidad de medida de
5. Planificacion heurıstica en tiempo real 129
estos costes depende de la metrica del problema, es necesario normalizar
esta funcion para que sus valores esten entre 0 y 1. Para ello se divide el
coste obtenido entre el maximo coste de las acciones que producen p:
max cost = max(cost reach(ak) + cost(ak)), ∀ak/p ∈ Leff(ak)criterion2(aj , p, Pi, {gi}) = (cost reach(aj) + cost(aj))/max cost
(5.6.5)
La constante asociada a este criterio es Cte2 = 5. Este valor se ha es-
tablecido mediante experimentacion, observando que valores dan lugar
planes de mayor calidad. Los valores de las constantes para los siguien-
tes criterios tambien se han obtenido mediante el estudio de numerosas
pruebas experimentales.
3. Proposiciones necesarias que aj elimina. Una proposicion necesaria
se corresponde con una precondicion no satisfecha de alguna accion de
Pi (o con gi, el objetivo del plan). Insertar al principio de Pi una ac-
cion que elimine una proposicion necesaria implica que posteriormente
sera necesario reparar Pi para reponer la proposicion eliminada. En este
criterio se penaliza, por lo tanto, el numero de proposiciones necesarias
que elimina aj (ver ecuacion 5.6.6). La constante asociada a este criterio
es Cte3 = 2.
criterion3(aj , p, Pi, {gi}) = |{pk/¬pk ∈ Leff(aj) ∧ necessay(pk, Pi, {gi})}|(5.6.6)
4. Precondiciones de aj no satisfechas. El numero de precondiciones no
satisfechas de una accion (ver ecuacion 5.6.7) es tambien una medida de
lo que costara alcanzar dicha accion. La constante asociada a este criterio
es Cte4 = 1, menor que en los criterios anteriores ya que la informacion
que proporciona es menos significativa.
criterion4(aj , p, Pi, {gi}) = |{pk ∈ Lprec(aj) / satisfy(pk, S0) 6= V}| (5.6.7)
130 5.6. Calculo de planes mono-objetivo
5. Relacion con la primera accion de Pi. En algunos problemas es po-
sible que la accion que tiene un menor coste y que provoca un menor
numero de conflictos no sea la mas apropiada. Este hecho es especial-
mente frecuente en aquellos dominios, como el mundo de bloques, donde
hay un recurso, handempty, del que hacen uso un elevado numero o de
acciones. Por ejemplo, cuando la proposicion que se desea alcanzar es
p = handempty, es posible utilizar cualquier accion put-down o stack.
En estos casos, y como muestra la ecuacion 5.6.8, favoreceremos aquellas
acciones que, aparte de p, produzcan algun otro efecto que la primera
accion de Pi requiera. La constante asociada a este criterio es Cte5 = 1.
criterion5(aj , p, Pi, {gi}) =
1 , if @pk ∈ Leff(aj) / pk 6= p ∧pk ∈ Lprec(first(Pi))
0 , otherwise
(5.6.8)
La accion a seleccionada se inserta al principio del plan Pi. De esta forma,
Pi se va construyendo regresivamente. El conjunto de subobjetivos SG se sus-
tituye entonces por el conjunto de precondiciones proposicionales de a, excepto
por aquellas que ya se satisfacen en el estado actual S0. En el momento en que
SG queda vacıo, termina la construccion del plan inicial.
El coste de generar de esta manera un plan Pi es muy reducido, concre-
tamente polinomico en funcion del numero de acciones de Pi por el numero
medio de acciones que generan una determinada proposicion. Sin embargo,
este algoritmo presenta dos problemas:
• En ciertas ocasiones, el algoritmo de la figura 5.12 puede entrar en un
bucle infinito. Esto ocurre cuando en el plan Pi aparece una misma accion
mas de una vez. Este problema, no obstante, puede solucionarse de forma
muy sencilla: en lugar de evaluar todas las posibles acciones que generan
la proposicion p, se tienen en cuenta unicamente aquellas acciones que
producen p con el mınimo coste, es decir:
a = arg mın(action evaluation(aj , p, Pi, {gi})),∀aj/p ∈ Leff(aj) ∧ cost reach(aj) < cost(p)
(5.6.9)
5. Planificacion heurıstica en tiempo real 131
Este metodo es el que emplea tambien el planificador FF a la hora de
generar la solucion al problema relajado. Sin embargo, los planes obteni-
dos de esta forma son generalmente de peor calidad que evaluando todas
las posibles acciones, por lo que recurriremos a esta solucion unicamente
cuando se detecte un bucle durante la generacion de un plan Pi.
• Con el algoritmo de la figura 5.12 nos aseguramos que las precondicio-
nes proposicionales de la primera accion de Pi se satisfacen en S0. Esta
primera accion puede, sin embargo, no ser ejecutable en el estado actual
debido a que sus precondiciones numericas pueden no cumplirse en S0.
El segundo problema expuesto no tiene una solucion tan sencilla como el
primero. La solucion mas natural consiste en tratar de forma similar las pre-
condiciones proposicionales y numericas, pero para ello es necesario incluir
informacion sobre los valores de las variables numericas en el RPG, tal y como
se propone, por ejemplo, en [Hoffman 2003]. Aunque probablemente sea esta
la solucion que se implemente en posteriores versiones de SimPlanner, actual-
mente se resuelve este problema estudiando los planes que resultan al forzar
que la primera accion de dichos planes sea ejecutable en S0 (ver figura 5.13).
Figura 5.13: Tomando como primera accion las acciones ejecutables en el es-tado actual (ai1, . . . , a1n) se escoge el plan resultante que mejor calidad ofrece.
Este metodo es factible debido a que, en general, el numero de acciones
ejecutables en un determinado estado no es muy elevado. Supongamos, por
ejemplo, que ai1 es una accion ejecutable en S0 (exec(ai1, S0) = V). Deno-
minamos S ′0 al estado resultante de aplicar ai1 en el estado actual, es decir,
S ′0 = result(ai1, S0, ∅). El plan (incompleto) que debemos calcular ahora, Pi1,
132 5.6. Calculo de planes mono-objetivo
comienza en el estado S ′0. Para ello se emplea el mismo algoritmo que hemos
descrito para calcular los planes iniciales (ver figura 5.12). El principal incon-
veniente de este metodo es que el estado inicial para cada plan Pij es distinto.
Es necesario, por lo tanto, calcular un nuevo RPG para cada estado inicial,
circunstancia que ralentiza el proceso de calculo de los planes iniciales.
De todos los planes Pij calculados se selecciona uno de ellos. Puesto que,
generalmente, son planes incompletos, es complejo deducir cual de ellos resul-
tara en un plan de mayor calidad. Como criterio aproximado escogemos aquel
que presenta un menor numero de precondiciones no resueltas, es decir:
Pi = aij ⊗ Pij/
j = arg mınnk=1(|{p/necessary(p, aik ⊗ Pik, {gi}) ∧ satisfy(p, S0) 6= V}|)
(5.6.10)
En caso de que sean varios los planes que presentan el menor numero de
conflictos, se selecciona el plan de menor coste. El coste de estos planes se
calcula sumando el coste de las acciones que los componen, de acuerdo con la
ecuacion 5.5.1.
5.6.2. Fase de refinamiento
Una vez se han obtenido los planes iniciales Pi para cada objetivo, comienza
la fase de refinamiento. Estos planes se mejoran iterativamente mientras el
ejecutor no requiera una accion del planificador y no se detecte una situacion
inesperada. Puesto que el refinamiento se aplica de igual forma a todos los
planes mono-objetivo, describiremos el funcionamiento de este proceso para
un unico plan Pi.
El algoritmo de refinamiento se compone de dos etapas: la validacion del
plan Pi y la seleccion de un conflicto, y la resolucion de dicho conflicto. Este
algoritmo se repite tantas veces como sea necesario hasta que el plan sea valido
(aunque, como indicamos en el parrafo anterior, el ejecutor puede interrumpir
este proceso).
5. Planificacion heurıstica en tiempo real 133
Validacion y seleccion de un conflicto
El objetivo de esta etapa es verificar la validez de la secuencia de acciones
Pi = {a0, a1, . . . , an} o, lo que es lo mismo, comprobar si Pi es aplicable en el
estado actual y si alcanza su objetivo (valid plan(Pi, S0, {gi}, ∅)). Desafortu-
nadamente, en muchas ocasiones Pi no es un plan valido. Esto ocurre cuando
alguna precondicion de alguna accion de Pi no se satisface, o bien cuando no
se alcanza el objetivo gi. Para emplear una misma nomenclatura en ambos
casos, supondremos que Pi contiene una accion ficticia, an+1, sin efectos y con
la proposicion gi como unica precondicion.
Si Pi resulta no ser valido, se selecciona entonces una de las precondiciones
no satisfechas del plan. Dicha precondicion tratara de resolverse en la siguiente
etapa. Las precondiciones no satisfechas que se reparan en primer lugar son
las pertenecientes a las primeras acciones, dando preferencia por lo tanto a la
parte del plan que se ejecutara en primer lugar. Si denominamos Sj al estado
sobre el cual se aplica cada una de las acciones aj del plan Pi (ver figura 5.14),
entonces la primera accion no ejecutable, afail, sera la que cumpla:
afail = aj ∈ Pi / exec(aj , Sj) 6= V ∧ @k < j : exec(ak, Sk) 6= V (5.6.11)
Figura 5.14: Representacion grafica de las acciones de Pi y de los estados sobrelos que se aplican, de forma que result(aj, Sj, ∅) = Sj+1, ∀aj ∈ Pi.
El ultimo paso en la etapa de validacion consiste en escoger una precondi-
cion no satisfecha de afail, precondicion que se resolvera en la siguiente etapa.
En este punto, existen sin embargo dos posibles casos que es necesario dife-
renciar:
a) afail tiene precondiciones proposicionales no satisfechas. Se intenta re-
solver en primer lugar las precondiciones proposicionales de una accion,
ya que la resolucion es mas rapida y sencilla que cuando se trata de una
precondicion numerica.
134 5.6. Calculo de planes mono-objetivo
De todas las precondiciones proposicionales de afail se intenta resolver
aquella con el mayor coste (de acuerdo con el RPG). A esta proposicion
la denominaremos pfail (ver ecuacion 5.6.12). En general, resolver en
primer lugar las precondiciones mas costosas suele conllevar un menor
numero de etapas de refinamiento.
pfail = arg max(cost(pj)), ∀pj ∈ Lprec(afail) ∧ satisfy(pfail, Sfail) 6= V(5.6.12)
b) afail tiene unicamente precondiciones numericas no satisfechas. La re-
solucion de una precondicion numerica es compleja, pues no es sencillo
descubrir que acciones permiten alcanzar un estado en el que dicha con-
dicion se cumpla.
La forma de resolver el conflicto es diferente dependiendo del caso en el
que nos encontremos. Los siguientes apartados muestran como se realiza la
reparacion del plan en ambos casos.
Reparacion de una precondicion proposicional no satisfecha
En esta etapa se intenta resolver la precondicion proposicional pfail de la
accion afail. Con este fin, se calcula un plan desde todos los estados previos a
afail que permita alcanzar pfail (ver figura 5.15). A estos planes los hemos de-
nominado Pi,j, j ≤ fail, donde i hace referencia al plan que estamos reparando
y j indica el estado de partida.
Los planes Pi,j se calculan del mismo modo que los planes iniciales mono-
objetivo (ver figura 5.12), solo que el estado de partida no es S0 sino Sj, y
que el objetivo a alcanzar no es gi sino pfail. Los planes Pi,j son, por lo tanto,
planes incompletos muchas veces. El objetivo de estos planes, sin embargo, es
proporcionar una estimacion del coste de alcanzar pfail a partir de cada uno
de los estados de Pi anteriores al conflicto.
El resultado de aplicar un plan Pi,j sobre el estado Sj conduce a un nuevo
estado S ′j en el que pfail se satisface: satisfy(pfail, S′j) = V . Puesto que el
plan Pi,j puede no ser un plan ejecutable, el estado S ′j se obtiene considerando
5. Planificacion heurıstica en tiempo real 135
Figura 5.15: Primer paso en la resolucion de una precondicion proposicionalno satisfecha pfail: se genera un plan Pi,j para alcanzar pfail desde cada estadoSj, 0 ≤ j ≤ fail.
unicamente los efectos de las acciones de Pi,j, independientemente de si sus
precondiciones se cumplen o no.
Una vez hemos alcanzado pfail, el objetivo consiste en proporcionarle dicha
precondicion a afail. Esto se consigue generando desde cada estado S ′j un nuevo
plan que permita alcanzar el estado Sfail sin eliminar pfail. Tambien se puede
conseguir generando un nuevo plan desde S ′j hasta un estado Sk situado entre
Sj y Sfail, ya que la secuencia de acciones desde Sk hasta Sfail ya esta calculada.
A estos nuevos planes los hemos denominado Pi,j,k, donde Pi es el plan que
estamos reparando, S ′j es el estado de partida y Sk, j≤k≤fail es el estado objetivo
(ver figura 5.16).
Figura 5.16: Segundo paso en la resolucion de una precondicion proposicionalno satisfecha pfail: se genera un plan Pi,j,k desde cada estado S ′j hasta un estadoSk, j≤k≤fail de Pi.
Los nuevos planes Pi,j,k se calculan de la misma forma que los planes ini-
ciales, es decir, siguiendo el algoritmo descrito en la figura 5.12. Para generar
136 5.6. Calculo de planes mono-objetivo
un plan Pi,j,k, sin embargo, hay que tener en cuenta varias consideraciones:
• El estado de partida no es S0 sino S ′j. Es necesario, por lo tanto, calcular
un nuevo RPG partiendo del estado S ′j para poder evaluar el coste de
las acciones y proposiciones durante la generacion del plan Pi,j,k.
• El conjunto de objetivos, SG, contiene inicialmente las proposiciones ne-
cesarias para poder ejecutar la secuencia de acciones {ak, . . . , afail, . . . , an}(ver ecuacion 5.6.13).
SG = {p ∈ PL/necessary(p, {ak, . . . , an}, {gi})} (5.6.13)
• En la evaluacion de las acciones, se establece un nuevo criterio que pe-
naliza al maximo las acciones que eliminan pfail.
Como se puede ver en la figura 5.16, los planes Pi,j y Pi,j,k calculados
proporcionan diversas alternativas para reparar la precondicion pfail de afail.
Estas alternativas pueden observarse siguiendo las flechas (planes) entre los
estados. Formalmente, las alternativas, alt, se calculan como se muestra en la
ecuacion 5.6.14.
alt(j, k) = {a0, . . . , aj−1} ⊗ Pi,j ⊗ Pi,j,k ⊗ {ak, . . . , an}, j = 0 . . . fail, k = j . . . fail
(5.6.14)
El numero de alternativas puede ser bastante elevado en el peor de los
casos, concretamente (fail ∗ (fail + 1)/2). Sin embargo, muchas de estas al-
ternativas no se generan en la practica. Esta poda se realiza en las siguientes
circunstancias:
• Si un plan Pi,j comienza por la accion aj, entonces no se genera ningun
plan desde el estado S ′j (ver figura 5.17). Esto se debe a que la secuencia
de acciones {a0, . . . , aj−1} ⊗ Pi,j es entonces equivalente a la secuencia
{a0, . . . , aj} ⊗ Pi,j+1, por lo que las alternativas resultantes seran las
mismas.
5. Planificacion heurıstica en tiempo real 137
Figura 5.17: Los planes Pi,1,k no se generan puesto que el plan Pi,1 comienzapor la accion a1.
• Si alguna accion am elimina pfail, entonces los planes Pi,j,k, k≤m, no se
generan (ver figura 5.18). El motivo es que la precondicion pfail de la
accion afail seguirıa sin satisfacerse puesto que am la eliminarıa.
Figura 5.18: Los planes Pi,0,0, Pi,0,1 y Pi,1,1 no se generan puesto que a1 eliminael literal pfail.
De entre todas las alternativas calculadas, se selecciona una para resolver
el conflicto. Esta seleccion se realiza estudiando el numero de precondiciones
no satisfechas presentes en cada una de las alternativas. A igual numero de
precondiciones no satisfechas, se escoge la alternativa de menor coste, es decir,
aquella en la que la suma de los costes de las acciones sea menor.
El plan Pi se sustituye por la alternativa alt(j, k) seleccionada. De esta
forma, los conflictos proposicionales se van resolviendo iterativamente hasta
que se alcanza un plan Pi valido.
138 5.6. Calculo de planes mono-objetivo
Reparacion de una precondicion numerica
Reparar una precondicion numerica es mucho mas complejo que reparar
una precondicion proposicional. Esto se debe a que es suficiente con observar
los efectos de una accion para comprobar si esta produce o no una determinada
proposicion. Por el contrario, para que una precondicion numerica se satisfaga
puede hacer falta calcular toda una secuencia de acciones que modifique los
valores de las variables para que la restriccion numerica se cumpla.
La dificultad de reparar una precondicion numerica hace necesaria la inclu-
sion de una etapa de busqueda, cosa que habıamos evitado hasta el momento
para poder proporcionar una respuesta en el menor tiempo posible. Aprove-
charemos esta busqueda no solo para resolver las precondiciones numericas de
afail, sino para encontrar un plan Pi valido, es decir, completamente ejecutable
y que alcance el objetivo gi. Mientras se realiza esta busqueda, disponemos del
plan Pi actual que, junto con el resto de planes mono-objetivo, se utilizaran
para seleccionar la siguiente accion (ver la seccion a ejecutar 5.7) en caso de
que el ejecutor la requiera de inmediato.
La busqueda para buscar un plan Pi valido es una busqueda en el espacio de
estados del tipo primero el mejor (best-first search [Russell y Norving 1995]).
El nodo raız se corresponde con el estado actual, S0. Los sucesores (o hijos)
de un nodo n se calculan como los estados resultantes de aplicar las acciones
ejecutables sobre n (ver ecuacion 5.6.15).
succ(n) = {n′ / ∃a ∈ A : exec(a, n) = V ∧ result(a, n, ∅) = n′} (5.6.15)
Para seleccionar que nodo se va a expandir en primer lugar se han esta-
blecido cuatro niveles de prioridad. Suponiendo que n es el nodo resultante de
ejecutar una accion a, entonces:
• La expansion de n es prioritaria si a es una accion del plan Pi que estamos
reparando (a ∈ Pi). El plan Pi, pese a no ejecutable, es habitualmente
una buena aproximacion de lo que sera el plan final valido.
• La expansion de n tiene una prioridad media-alta si a es una accion que
modifica adecuadamente el valor las variables numericas involucradas en
5. Planificacion heurıstica en tiempo real 139
las precondiciones que no se satisfacen. Por ejemplo, si la precondicion
que no se satisface es (fuel > 10) y a incrementa el valor de la va-
riable fuel, entonces n tendra prioridad media-alta. Averiguar si una
accion modifica una variable adecuadamente es sencillo para compara-
ciones del tipo >, ≥, < y ≤, pero no para comparaciones de igualdad
(=) o desigualdad ( 6=). En estos dos ultimos casos, asignaremos priori-
dad media-alta n si a modifica de alguna forma el valor de las variables
involucradas.
• La expansion de n tiene una prioridad media-baja si a pertenece a un
operador que aparece en Pi. Las acciones del plan Pi proporcionan infor-
macion acerca del tipo de acciones (operadores) necesarias para alcanzar
el objetivo.
• En el resto de casos, n tiene prioridad baja.
Debido al reducido numero de niveles de prioridad, durante la busqueda
aparecen muchos nodos con el mismo nivel de prioridad. En tal caso se selec-
ciona el nodo n que minimice el coste de la metrica (evalue(m,n)). El valor
de la metrica en un nodo n menos el valor de la metrica en el estado actual
es el coste de alcanzar n desde S0. Equivale, por lo tanto, a la funcion g(n)
en la funcion de evaluacion (f(n) = g(n) + h(n)) de un tıpico algoritmo de
busqueda informado [Russell y Norving 1995].
La funcion h(n) se define como una estimacion del coste de alcanzar los
objetivos desde el nodo n. Puesto que no disponemos de una estimacion del
coste de alcanzar gi, hemos empleado los niveles de prioridades para suplir esta
carencia. El algoritmo de busqueda que hemos presentado funciona bastante
bien debido a que los planes mono-objetivo no suelen ser planes muy largos. Sin
embargo, una funcion h(n) ayudarıa a encontrar la solucion mas rapidamente.
Como ya comentamos en la seccion 5.6.1, el planificador Metric-FF [Hoffman
2003] anade informacion en el RPG sobre los valores de las variables numericas,
lo que le permite estimar la distancia hasta el objetivo teniendo en cuenta las
precondiciones numericas de las acciones. Esta funcion de estimacion heurıstica
se incorporara en la busqueda en futuras versiones del planificador.
Una vez se alcance un nodo en el que cumpla el objetivo gi, el proceso de
busqueda terminara y el plan Pi original se sustituira por el plan encontrado.
140 5.6. Calculo de planes mono-objetivo
Este plan ya es valido, pues todas las acciones que lo componen son ejecutables
y, por lo tanto, ya no seran necesarias mas etapas de refinamiento.
5.6.3. Coste computacional del calculo de los planes
mono-objetivo
El coste de generar un plan inicial Pi es polinomico pues, para cada accion
de Pi solo es necesario evaluar las acciones que producen un subobjetivo, y el
coste de esta evaluacion es lineal en funcion del numero de precondiciones y
efectos de la accion. En la practica, el tiempo empleado en calcular un plan
inicial Pi es bastante inferior a un milisegundo.
Por otra parte, es necesario considerar el coste de las etapas de refina-
miento. En caso de que no hayan precondiciones numericas, el coste de una
etapa de refinamiento es tambien polinomico pues, en el peor de los casos, se
generan (fail ∗ (fail + 1)/2) planes iniciales y (2 ∗ fail + 1) grafos relajados.
La complejidad de evaluar el coste de reparacion de un plan Pi consiste en
acotar el numero de etapas de refinamiento necesarias. El numero de etapas
necesarias depende del numero de conflictos presentes en el plan inicial y de
los nuevos conflictos que aparecen al tratar de solucionar los primeros, por lo
que depende enteramente del tipo de problema a resolver.
La tabla 5.3 muestra el numero de planes iniciales que se generan y el
numero de etapas de refinamiento realizadas para distintos problemas clasicos
de planificacion (descritos en el Apendice A). Como se puede observar, por
cada plan inicial no suelen generarse mas de cuatro etapas de refinamiento por
termino medio, lo cual no supone un coste excesivo. Tambien se puede compro-
bar que el numero de planes iniciales generados es directamente proporcional
al numero de objetivos del problema y a la longitud del plan final.
Por otra parte, cuando existen precondiciones numericas, las etapas de
refinamiento efectuan una busqueda cuyo coste es exponencial en el peor de
los casos. Afortunadamente, y tal como muestra la figure 5.4, el numero de
etapas de busqueda necesarias (lo que equivale al numero de precondiciones
numericas que no se satisfacen en los planes Pi) no es muy alto. Ademas,
el numero de nodos expandidos es, en general, muy reducido. Esto se debe
principalmente a que los planes Pi que se tratan de reparar son muy similares
a los obtenidos tras la busqueda. Los planes obtenidos, ademas, suelen ser
5. Planificacion heurıstica en tiempo real 141
Tabla 5.3: Numero total de planes iniciales y etapas de refinamiento calculadaspara diversos problemas clasicos de planificacion.
Longitud #planes #etapasDominio Problema #objetivos del plan iniciales refinamiento
1 2 12 15 285 10 56 583 1421
Depots 10 4 27 85 25615 15 124 1873 609420 14 114 1591 5429
1 4 7 25 255 8 22 166 215
DriverLog 10 8 39 341 44715 10 44 375 59820 33 162 5548 7528
1 3 12 30 415 7 24 154 199
Rovers 10 11 35 369 43415 10 46 431 66820 20 89 1714 2399
1 3 9 18 245 8 16 123 135
Satellite 10 12 35 391 59115 24 51 1232 138620 41 103 4093 5438
planes relativamente cortos.
5.7. Ordenacion de planes
Llegados a este punto, tenemos un plan Pi, que puede no ser totalmente
ejecutable, para cada objetivo gi del problema. El planificador debe ahora
decidir que accion es la debe ejecutarse en primer lugar. Dicha accion, anext,
se corresponde con la accion inicial de uno de los planes Pi (recordemos que
la primera accion de un plan Pi es ejecutable en el estado actual S0).
Cuando varios planes Pi comienzan con diferentes acciones, entonces es
142 5.7. Ordenacion de planes
Tabla 5.4: Numero total de etapas de busqueda y de nodos expandidos paravarios problemas numericos de planificacion.
#etapas de #nodosDominio Problema busqueda expandidos
1 0 05 11 4316
Numeric Depots 10 1 18215 46 2295420 0 0
1 0 05 7 516
Numeric ZenoTravel 10 155 1827915 176 5661520 743 369648
necesario estudiar que plan debe comenzar a ejecutarse en primer lugar. De
esta forma, anext sera la primera accion del plan Pi que deba comenzar a
ejecutarse con mayor urgencia. Para conseguir esto, se establecen relaciones
de orden entre los planes, Pi −→ Pj, indicando que la primera accion de Pi
debe ejecutarse antes que la primera accion de Pj. Estos ordenes se establecen
de acuerdo a una serie de criterios. Supongamos que tenemos dos planes mono-
objetivo, Pi = {ai0, ai1, . . . , ain} y Pj = {aj0, aj1, . . . , ajm}, con ai0 6= aj0. Los
criterios que se aplican (ordenados por el orden en el que se aplican) son los
siguientes:
1. Comprobacion de inversas. El planificador almacena las acciones que
ya ha calculado hasta el momento. De esta forma puede detectar si al-
gunos planes Pi deshacen parte de lo conseguido hasta el momento, es
decir, si la primera accion de Pi es inversa de la ultima calculada. Si la
ultima accion consiste, por ejemplo, en conducir un vehıculo de un pun-
to A a un punto B, un plan Pi cuya primera accion sea conducir a dicho
vehıculo de B a A sera ordenado en ultimo lugar.
En muchas ocasiones no es suficiente con considerar unicamente las in-
versas de la ultima accion calculada. En un problema donde es necesario
5. Planificacion heurıstica en tiempo real 143
conducir varios camiones, por ejemplo, podrıamos tener el siguiente plan:
drive truck1 A B −→ drive truck2 A B. Ambas acciones son inde-
pendientes pues trabajan con vehıculos distintos y podrıan ejecutarse en
paralelo. Un plan Pi que comenzara conduciendo cualquiera de dichos ca-
miones de B a A estarıa deshaciendo lo que ya habıamos conseguido. Por
este motivo, en el calculo de inversas se consideraran todas las acciones
ya calculadas cuyos efectos no sean necesarios para otras acciones.
2. Secuencias de acciones compartidas. De acuerdo con este criterio,
Pi se ordenara antes que Pj (Pi −→ Pj) si las primeras acciones de Pi
pueden ejecutarse antes que el plan Pj sin ocasionar conflictos, es decir,
si ∃k ∈ 0..n / valid plan({ai0, . . . , aik, aj0, . . . , ajm}, S0, {gj}, ∅).
3. Conflictos no flexibles. Un conflicto no flexible entre Pi y Pj ocurre
cuando ambos planes tienen una accion que necesita y elimina una misma
proposicion p [Sebastia et al. 2001]. Dos acciones que necesitan y eliminan
p no pueden ordenarse entre ellas si no se incluye una accion auxiliar que
reponga p. Si dicha accion se encuentra, por ejemplo, en Pi, entonces Pi
posiblemente pueda ordenarse antes que Pj (aunque no necesariamente).
El primer paso consiste en descubrir las proposiciones que pueden oca-
sionar un conflicto no flexible. A estas proposiciones las denominaremos
proposiciones NF. Una proposicion p es NF si se cumplen las siguientes
condiciones:
• Tanto en Pi como en Pj hay una accion que necesita y elimina p, es
decir, (∃ak ∈ Pi/p ∈ Lprec(ak) ∧ ¬p ∈ Leff(ak)) ∧ (∃aq ∈ Pj/p ∈Lprec(aq) ∧ ¬p ∈ Leff(aq)).
• En uno de dichos planes (y solo en uno) hay una accion que repone
p. Supongamos que dicho plan es Pi. Entonces ∃ar ∈ Pi, r > k /p ∈Leff(ar).
• La proposicion p no debe volver a eliminarse durante el resto del
plan, es decir, @ad ∈ Pi, d > r / ¬p ∈ Leff(ad).
Poniendo el ejemplo de la anomalıa de Sussman, descrito en la figura
A.1, los planes calculados para los objetivos g1 = on A B y g2 = on B C
son los siguientes:
144 5.7. Ordenacion de planes
P1: unstack C A −→ put-down C −→ pick-up A −→ stack A B
P2: pick-up B −→ stack B C
En este ejemplo hay dos proposiciones NF : clear B y clear C. La pro-
posicion clear B, por ejemplo, se necesita y se elimina en la ultima
accion de P1 y en la primera de P2, pero solo se repone en P2 (con la
accion stack B C). Lo mismo ocurre con clear C, aunque en este caso
se repone en P1.
El siguiente paso consiste en descubrir de que forma pueden ordenar-
se ambos planes de acuerdo las proposiciones NF calculadas. Para ello
dividimos los planes Pi y Pj en bloques (o secuencias de acciones), con-
siderando que:
• Los bloques comienzan cuando se encuentra una accion que necesita
y elimina una proposicion NF y terminan cuando una accion pos-
terior lo repone (si ninguna accion lo repone, entonces no se forma
un bloque).
• Dos bloques que se solapan se unen formando un solo bloque.
• Las secuencias de acciones que no pertenecen a ningun bloque se
agrupan dentro de un nuevo bloque.
La figura 5.19 muestra la division en bloques para los planes P1 y P2.
Las proposiciones situadas sobre los bloques son las proposiciones NF
necesarias para ejecutar dicho bloque (precondiciones del bloque), mien-
tras que las situadas debajo muestran los efectos proposicionales NF que
tiene la ejecucion del bloque (efectos del bloque).
El ultimo paso consiste en ordenar los bloques de forma que se satisfagan
todas las precondiciones de los mismos. Observando la figura 5.19, se pue-
de comprobar que el unico orden posible es Bloque21 −→ Bloque11 −→Bloque22. Por lo tanto, el plan que debe comenzar a ejecutarse en primer
lugar es P2 (P2 −→ P1) ya que el bloque ordenado en primer lugar le
pertenece.
4. Intercambios de primera accion. Si la primera accion de Pi puede
sustituirse por la primera accion de Pj sin causar conflictos (pero no a
5. Planificacion heurıstica en tiempo real 145
Figura 5.19: Division en bloques de los planes mono-objetivo calculados parael problema de la anomalıa de Sussman.
la inversa), entonces Pi se ordena antes que Pj. Formalmente, Pi −→ Pj
si valid plan({ai0, aj1, . . . , ajm}, S0, {gj}, ∅) ∧ ¬valid plan({aj0, ai1, . . . ,
ain}, S0, {gi}, ∅).Este criterio se puede observar mediante un ejemplo del mundo de bloques
(dominio descrito en el Apendice A). Supongamos que tenemos los dos
planes siguientes:
P1: put-down A −→ pick-up B −→ stack B C
P2: stack A B −→ pick-up C −→ stack C A
En el plan P2 se puede sustituir stack A B por put-down A sin ocasionar
conflictos, pero no al reves. Ordenamos entonces P1 delante de P2 puesto
que ejecutar put-down A sirve para los propositos de ambos planes.
5. Conflictos flexibles. Los conflictos flexibles aparecen entre dos acciones
cuando una de ellas requiere una proposicion p y no la elimina, mientras
que la otra requiere y elimina p. La primera accion puede, por lo tanto,
ordenarse antes que la segunda, pero no al reves.
Un claro ejemplo puede encontrarse en los dominios de tipo Logistics
(descrito en el Apendice A). En estos problemas se deben realizar di-
versas operaciones de carga y descarga antes de trasladar el correspon-
diente vehıculo a otro lugar. Supongamos, por ejemplo, que la primera
accion de un plan P1 consiste en cargar el objeto obj1 en el camion
tru1 en la posicion pos1 (load-truck obj1 tru1 pos1), y que la pri-
mera accion de un plan P2 consiste en desplazar dicho vehıculo de pos1
a pos2 (drive-truck pos1 pos2 cit1). La proposicion que provoca
146 5.7. Ordenacion de planes
aquı el conflicto flexible es at tru1 pos1, pues es necesaria para car-
gar el camion y para su desplazamiento, y deja de ser cierta una vez
el camion se ha trasladado a otra posicion. En este caso, por lo tanto,
ordenarıamos P1 antes que P2.
Para detectar los conflictos flexibles entre dos planes Pi y Pj no solo
se deben considerar las primeras acciones de dichos planes (ai0 y aj0).
Los conflictos flexibles entre una accion aik de Pi y una accion aj0 de
Pj se estudian si la secuencia de acciones {ai0, . . . , aik, aj0} es ejecutable
sobre el estado actual. De esta forma se pueden considerar situaciones
como, por ejemplo, en las que la carga del camion no es la primera accion
del plan, sino que puede ir precedida de otras acciones probablemente
necesarias para la carga.
6. Ordenes transitivos. Supongamos que, mediante los criterios anterio-
res, hemos obtenido los siguientes ordenes: Pi −→ Pj y Pj −→ Pk. En
este caso podemos insertar el orden Pi −→ Pk aplicando la propiedad
transitiva. Estos nuevos ordenes pueden utilizarse para poder ordenar
diversos planes que, hasta el momento, no habıan podido ordenarse.
Supongamos, por ejemplo que tenemos el orden Pi −→ Pj, pero tambien
tenemos un plan Pk que no ha podido ser ordenado con los criterios
anteriores. Hay tres posibles casos en este momento:
• Si Pi y Pk comienzan con la misma accion, entonces no es necesario
establecer ordenes adicionales.
• En caso contrario, es posible que Pj y Pk comiencen por la misma
accion. Aquı, sin embargo, nos interesarıa encontrar el orden Pj −→Pk para poder ordenar indirectamente Pi −→ Pk. Puesto que Pi
y Pk comienzan con la misma accion, eliminamos la secuencia de
acciones inicial comun y aplicamos los criterios entre ambos planes
para tratar de establecer un orden entre ellos.
• Si Pi, Pj y Pk comienzan con diferentes acciones, entonces serıa ne-
cesario aplicar nuevos criterios para poder establecer ordenes adicio-
nales. Actualmente estos ordenes se generan aleatoriamente, aunque
en un futuro se espera desarrollar nuevos criterios que permitan to-
mar decisiones de una forma mas informada.
5. Planificacion heurıstica en tiempo real 147
El proceso de ordenacion de los planes finaliza cuando todos los planes
ordenados en primer lugar comienzan por la misma accion, es decir, cuando
@Pi, Pj / first(Pi) 6= first(Pj) ∧ (@Pk : Pk −→ Pi) ∧ (@Pq : Pq −→ Pj). El
planificador envıa entonces esta accion, anext, al ejecutor y actualiza su modelo
del entorno con los efectos esperados de anext. De esta forma el planificador
puede comenzar a calcular la siguiente accion a ejecutar.
5.8. Conclusiones
En este capıtulo se ha hecho una descripcion detallada del algoritmo de pla-
nificacion empleado en el sistema SimPlanner v3.0. Esta descripcion comienza,
en primer lugar, con una introduccion sobre la notacion y la terminologıa uti-
lizada. Como se puede observar, la notacion es mucho mas extensa y compleja
que la presentada en el apartado 2.1, donde se describe en que consiste un
problema clasico de planificacion. Este incremento en la complejidad se debe
principalmente a tres caracterısticas de caracter practico, a las que el planifi-
cador tiene que dar soporte:
• Variables numericas. La presencia de variables numericas aumenta la
funcionalidad del planificador, ya que permite modelar el uso de recursos
en problemas de planificacion. La representacion de estos problemas,
no obstante, se complica notablemente, pues las acciones ahora tienen
tambien precondiciones y efectos numericos, y en los estados es necesario
almacenar los valores de las variables numericas.
• Incertidumbre en los estados. Representar la incertidumbre en un
estado es posible mediante el uso de una logica trivaluada. Una propo-
sicion, de esta forma, puede ser verdadera, falsa, o desconocida en un
estado. Respecto a la complejidad, esta representacion repercute princi-
palmente en una definicion de la funcion de transicion entre estados mas
compleja, dependiente de informacion desconocida como es el estado real
del mundo.
• Acciones de sensorizacion. Pese a tener una funcion de transicion
diferente del resto de acciones, las acciones de sensorizacion se incorporan
en el algoritmo de planificacion sin cambios importantes. Esto se debe a
148 5.8. Conclusiones
que es el ejecutor el que se encarga de comprobar los efectos reales que
tienen las acciones de sensorizacion ejecutadas.
El algoritmo de planificacion se basa en tecnicas clasicas de planificacion,
como la descomposicion de objetivos y el calculo de heurısticas basadas en la
formulacion de un problema relajado. Estas tecnicas se combinan, sin embargo,
de una forma novedosa que permite un calculo incremental y en tiempo real
de los planes. En el Capıtulo 6 se muestra un estudio empırico donde se ponen
de relieve las ventajas de emplear este algoritmo en diversos problemas de
planificacion.
Capıtulo 6
Evaluacion y experimentacion
En este capıtulo se presenta un estudio empırico del planificador SimPlan-
ner v3.0, cuyo algoritmo de funcionamiento se describe en el Capıtulo 5. Este
estudio se centra en dos aspectos fundamentales: el soporte para las nuevas
caracterısticas incorporadas en esta version y las distintas formas de utiliza-
cion del planificador. Los resultados que se muestran en este capıtulo se han
obtenido utilizando una computadora Pentium IV a 2 Ghz. con 512 Mb. de
memoria y sistema operativo Linux.
Las nuevas caracterısticas introducidas en la version 3 de SimPlanner son,
principalmente, el manejo de variables numericas y criterios de optimizacion,
y el uso de acciones de sensorizacion. En lo referente a la parte numerica del
problema, la principal aportacion se centra en los cambios introducidos en
el calculo del grafo relajado de planificacion (RPG). La evaluacion se reali-
zara, por lo tanto, comparando la nueva expansion del RPG con la expansion
tradicional para mostrar las ventajas que ofrece.
Las acciones de sensorizacion se emplean como mecanismo para la reso-
lucion de problemas con informacion incompleta. Trabajar con acciones de
sensorizacion complica la evaluacion de los algoritmos de planificacion puesto
que el resultado real de una accion de sensorizacion no se conoce hasta su
ejecucion. Para esta evaluacion, por lo tanto, hemos sometido a nuestro plani-
ficador a un conjunto de ejecuciones simuladas para verificar que es capaz de
alcanzar los objetivos con exito.
Por otra parte, es conveniente estudiar los distintos esquemas de utilizacion
de SimPlanner v3.0. En primer lugar, SimPlanner puede utilizarse como un
149
150 6.1. Variables numericas y criterios de optimizacion
planificador off-line clasico. Sin embargo, un estudio basado en este esquema
se aleja del proposito para el que ha sido disenado el planificador, es decir, pa-
ra trabajar en entornos dinamicos con restricciones en el tiempo de respuesta.
El esquema anytime es mas apropiado para este tipo de problemas. Siguiendo
este esquema el planificador es capaz de disponer de una respuesta en cual-
quier momento y de mejorarla de acuerdo con el tiempo disponible. Para la
evaluacion de este comportamiento, SimPlanner se ha comparado con LPG
1.2 [Gerevini et al. 2003]. LPG es actualmente uno de los planificadores mas
rapidos y tiene un funcionamiento similar al de un planificador anytime.
Un esquema mas apropiado incluso es el de planificacion on-line, en el que
el proceso de planificacion se realiza de forma concurrente (o alternada) con el
de ejecucion. Este esquema presenta numerosas ventajas como, por ejemplo,
que el tiempo total de planificacion y ejecucion es menor que en las aproxima-
ciones off-line, que el planificador puede utilizar informacion solo disponible
durante la ejecucion y que el planificador puede reaccionar rapidamente an-
te situaciones inesperadas. Este esquema se evaluara estudiando el tiempo de
respuesta del planificador en diferentes dominios y problemas.
La estructura de este capıtulo sigue el mismo orden que esta introduccion.
La seccion 6.1 estudia las extensiones para el manejo de variables numericas
y la seccion 6.2 evalua el comportamiento del planificador ante problemas con
informacion incompleta. Las secciones 6.3 y 6.4 estudian el funcionamiento del
SimPlanner como planificador anytime y on-line respectivamente. Finalmente,
la seccion 6.5 resume las conclusiones obtenidas.
6.1. Variables numericas y criterios de optimi-
zacion
La expansion del RPG propuesta para considerar los criterios de optimi-
zacion se compara en esta seccion con la expansion tradicional, en la que los
niveles del grafo no representan costes respecto a la metrica del problema sino
pasos de tiempo (time steps). Ambas tecnicas se han implementado en Sim-
Planner v3 para evitar que otras caracterısticas del planificador afecten a los
resultados de la comparativa.
Los dominios utilizados en esta comparativa son tres dominios introducidos
6. Evaluacion y experimentacion 151
en la tercera competicion de planificacion [IPC 2002]: Depots, DriverLog y Ze-
noTravel en su version numerica. La descripcion de estos dominios se muestra
en el Anexo A. Los resultados de esta comparativa se presentan en la tabla
6.1. Esta tabla muestra la calidad de los planes obtenidos, de acuerdo con la
metrica del problema, utilizando tanto la extension del RPG propuesta como
el metodo tradicional. La tabla 6.1 tambien muestra el tiempo de computo
empleado para ambos metodos.
Tabla 6.1: Comparacion entre la extension numerica propuesta y la aproxi-macion tradicional (siguiendo el formato propuesto/tradicional). La calidaddepende de la metrica del problema (un valor mayor representa un plan mascostoso) y el tiempo se mide en segundos.
DriverLog ZenoTravel DepotsP. Calidad Tiempo Calidad Tiempo Calidad Tiempo
1 777/777 0.01/0.01 13564/13564 0.01/0.01 32/42 0.01/0.012 999/1625 0.08/0.13 6786/6786 0.01/0.01 43/53 0.04/0,033 1406/1406 0.03/0.03 6758/6758 0.01/0.01 29/29 0.22/0.154 1119/986 0.05/0.05 27000/27000 0.01/0.01 64/50 0.54/0.445 1056/1270 0.05/0.05 3978/3978 0.02/0.02 80/259 0.92/2.546 2095/2466 0.03/0.02 25097/25097 0.03/0.03 313/313 205/1957 1876/1476 0.07/0.04 11198/11198 0.02/0.02 37/57 0.1/0.18 3418/3472 0.17/0.09 29677/55480 0.04/0.04 43/43 0.43/0.439 4091/9144 1.43/1.53 13275/12644 0.14/0.06 231/409 88.5/79.910 241/3211 0.07/0.26 177368/175218 0.36/0.2 27/27 0.27/0.2711 753/738 0.18/0.07 25505/65093 0.15/0.05 229/196 8.35/1312 6713/5346 5.86/0.7 52206/38547 0.2/0.08 299/389 34.1/27.513 2886/3556 0.83/0.76 112468/95657 0.55/0.22 27/27 1.93/214 11153/- 2.22/- 430417/183591 3.51/0.27 43/43 2.4/2.4215 3561/3464 2.79/0.59 59835/205701 1.92/1.65 237/214 28.2/34.416 16829/39771 110.6/24 64119/87530 4.14/1.48 31/32 0.29/0.2717 20655/93031 60/27.7 190845/384645 36.9/12.3 29/31 0.53/0.5318 70917/82266 283/91.3 67610/71944 20.42/7.26 108/127 37.4/36.719 -/- -/- 235378/257104 44.46/15.2 48/48 4.65/4.720 11555/27884 462/70.7 111671/355711 26.9/20.2 217/- 28.46/-
1.87 mejor 4.26 peor 1.25 mejor 2.36 peor 1.2 mejor 1.03 peor
Los resultados muestran que la extension propuesta mejora la calidad de
los planes en la mayorıa de los problemas y permite resolver un mayor numero
152 6.1. Variables numericas y criterios de optimizacion
de problemas que con el metodo tradicional. Por termino medio, los planes
obtenidos son 1.87, 1.25 y 1.23 veces de mejor calidad en los dominios Dri-
verLog, ZenoTravel and Depots respectivamente. Sin embargo, y debido a la
naturaleza heurıstica de SimPlanner v3, hay algunos problemas en los que el
metodo tradicional obtiene mejores planes.
Respecto a los tiempos de computo, la tabla 6.1 muestra que la extension
propuesta requiere mas tiempo que la tradicional. Esto se debe principalmente
a dos factores:
• El numero de niveles del RPG es entre 10 y 70 veces superior en nuestra
propuesta, aunque el numero de acciones y proposiciones por nivel es
considerablemente menor. El tamano del grafo resultante es, por consi-
guiente, bastante similar en ambos metodos. Nuestra propuesta requiere,
sin embargo, mantener la lista de proposiciones a insertar en el grafo or-
denada por coste. El pequeno numero de proposiciones insertadas por
nivel ocasiona que la lista de proposiciones que quedan por insertar crez-
ca hasta tamanos considerables.
• El numero de acciones insertadas en el RPG es a menudo mayor que en
el metodo tradicional. Esto ocurre por la expansion de un gran numero
de acciones no relevantes de bajo coste en primer lugar.
Un ejemplo sencillo puede observarse en el dominio DriverLog, en el que,
debido a su bajo coste, suelen insertarse muchas acciones de caminar
(walk) innecesarias. Esta es la principal razon de los mayores tiempos
de computo obtenidos en la mayorıa de los problemas.
Estos dos factores incrementan levemente el tiempo consumido en la crea-
cion de los RPGs. Sin embargo, el elevado numero de RPGs que se construyen
para resolver un problema hacen que este incremento sea mucho mas notable
cuando se observa el tiempo de computo total. En los dominios analizados
en la tabla 6.1, el numero de RPGs generados supera por ejemplo los 105 en
algunos problemas.
6. Evaluacion y experimentacion 153
6.2. Incertidumbre y acciones de sensorizacion
Como se comento al principio de este capıtulo, la evaluacion de un algorit-
mo de planificacion capaz de trabajar con informacion incompleta y acciones
de sensorizacion es una tarea compleja: es necesario considerar la ejecucion
de los planes ya que el resultado de una accion de sensorizacion depende del
estado real del mundo. Por ello, hemos sometido a SimPlanner v3.0 a dos esce-
narios simulados en un dominio de reparto de correo mediante robots moviles.
Este dominio se describe en el apartado A.5.
Tal y como se comento en la seccion 4.2, las simulaciones se llevan a cabo
siguiendo una arquitectura cliente-servidor: el planificador calcula una serie
de acciones que envıa al ejecutor, y el ejecutor le responde informandole de
los efectos reales de dichas acciones. Esta solucion es bastante flexible pa-
ra trabajar con incertidumbre y se ha empleado, por ejemplo, en la primera
competicion de planificacion probabilıstica [Littman y Younes 2004].
En el primer escenario (ver figura 6.1) un robot tiene que entregar dos car-
tas l1 and l2 a las personas p1 y p2 respectivamente. La planta de despachos
consta unicamente de cuatro despachos y un pasillo con dos puntos de referen-
cia. En este escenario hemos definido cuatro casos diferentes, de acuerdo con
la cantidad inicial de informacion que dispone el planificador:
Figura 6.1: Estado inicial del primer escenario propuesto.
154 6.2. Incertidumbre y acciones de sensorizacion
a) El planificador lo conoce todo sobre el mundo.
b) El planificador desconoce el estado de las puertas de los despachos B y
D.
c) El planificador no conoce el estado de las puertas de los despachos B, C
y D, ni la localizacion de p1. Sin embargo, sabe que p1 no se encuentra
en el despacho A.
d) El planificador no conoce el estado de las puertas de los despachos B, C
y D, ni la localizacion de p1 ni de l2. Sin embargo, sabe que ni p1 ni l2
estan en el despacho A.
Los resultados para estos cuatro casos se muestra en la tabla 6.2. La pri-
mera columna representa el caso que se esta considerando. Para cada caso,
las columnas restantes muestran el coste del plan obtenido (de acuerdo con la
metrica del problema), la longitud del plan, el numero de acciones de senso-
rizacion ejecutadas y el tiempo total empleado respectivamente. El tiempo se
mide en segundos y no tiene en cuenta el tiempo empleado en la ejecucion de
las acciones ni el empleado en la comunicacion cliente-servidor.
Tabla 6.2: Resultados para los cuatro casos definidos en el primer escenario.
Caso Coste Longitud #acciones sensorizacion Tiempo (s.)
a 9 13 0 0.01b 9 15 2 0.02c 9 19 6 0.05d 11 28 13 0.07
Los resultados de la table 6.2 muestran que la informacion adicional que
proporcionan los RPGs es util para alcanzar los objetivos a pesar de la in-
certidumbre en el estado inicial. De hecho, los planes obtenidos para los tres
primeros casos son optimos.
La complejidad del problema crece significativamente de acuerdo con la
cantidad de proposiciones desconocidas. En el ultimo caso, por ejemplo, hay
cinco sitios donde la persona p1 puede encontrarse: los despachos B, C y D,
6. Evaluacion y experimentacion 155
y los puntos de referencia E y F. Esto implica que, en el peor de los casos, el
planificador tendra que ejecutar cinco acciones de sensorizacion para encontrar
la posicion de p1, ası como las acciones necesarias para desplazar el robot y
abrir puertas.
El segundo escenario es mas complejo que el anterior (ver figura 6.2). La
planta de despachos esta compuesta por ocho despachos y un pasillo con ocho
puntos de referencia. Hay cuatro cartas l1, l2, l3 y l4 que deben ser entre-
gadas a las personas p1, p2, p3 y p4 respectivamente. Para este escenario, los
cuatro casos propuestos son los siguientes:
Figura 6.2: Estado inicial del mundo para el segundo escenario.
a) El planificador lo conoce todo sobre el mundo.
b) El estado de las puertas de los despachos D, E y F se desconoce.
c) El estado de todas las puertas, excepto la del despacho A, es desconocido.
La posicion de p2 tampoco se conoce inicialmente.
d) El estado de todas las puertas, excepto la del despacho A, es desconocido.
La posicion de p1 tampoco se conoce inicialmente.
156 6.2. Incertidumbre y acciones de sensorizacion
La tabla 6.3 muestra los resultados obtenidos para este segundo escenario.
El segundo caso es bastante similar al primero, en el que el planificador tiene un
conocimiento completo del entorno. En el segundo caso, la unica informacion
que es necesario adquirir es el estado de las puertas de los despachos D y F.
Anadiendo las dos acciones de sensorizacion correspondientes al plan obtenido
en el primer caso es suficiente para alcanzar los objetivos.
Tabla 6.3: Resultados para los cuatro casos definidos en el segundo escenario.
Caso Coste Longitud #acciones sensorizacion Tiempo (s.)
a 35 33 0 0.01b 35 35 2 0.02c 48 49 13 0.05d 63 62 20 0.07
El numero de posibilidades es mucho mayor en los dos ultimos casos. Esto se
debe al hecho de que una persona puede encontrarse en dieciseis sitios distintos.
En el caso c), la persona p2 se encuentra con relativa facilidad pues el robot
debe desplazarse al despacho H para recoger la carta l3. Sin embargo, en el
ultimo caso, la persona p1 no se encuentra hasta que el robot ha visitado todos
los despachos y puntos del pasillo. Como puede observarse, el plan generado
es bastante mas costoso e incluye mas acciones que en los casos anteriores.
Esta situacion es, sin embargo, inevitable considerando la informacion inicial
disponible.
Una solucion posible para este problema consiste en asociar informacion
probabilıstica a las proposiciones, de acuerdo con la probabilidad real de que
dichas proposiciones sean ciertas en el mundo. De esta forma se podrıa indicar,
por ejemplo, que la posicion mas probable de p1 sea su propio despacho (des-
pacho B). El planificador podrıan entonces buscar a una persona empezando
por los sitios mas probables en los que pudiera encontrarse. La inclusion de in-
formacion probabilıstica, sin embargo, no se ha implementado en SimPlanner
v3.0, y queda como una ampliacion futura para mejorar el comportamiento
del planificador frente a la incertidumbre.
6. Evaluacion y experimentacion 157
6.3. Comportamiento anytime
La planificacion anytime permite afrontar problemas en los que se requiere
una respuesta en un tiempo limitado. Este esquema es, por lo tanto, se ha
utilizado en la mayorıa de los planificadores de tiempo real existentes (ver el
apartado 3.3.4).
En nuestro planificador, el comportamiento anytime se ha obtenido incre-
mentando artificialmente el tiempo disponible para calcular cada una de las
acciones del plan. En particular, hemos utilizado plazos de 5, 10, 15, 20, 50, 100,
200, 500 y 1000 milisegundos por accion (el doble para problemas numericos).
De esta forma, estableciendo un plazo de 5 ms. por accion se obtiene un plan
muy rapidamente, aunque sin una calidad excesivamente buena generalmente.
Aumentando el plazo, el planificador dispone de tiempo suficiente para llevar
a cabo un mayor numero de etapas de refinamiento. Ası, la calidad del plan
final obtenido es mayor en la mayorıa de los casos (aunque no necesariamente,
debido a la naturaleza heurıstica del SimPlanner). Cuando se encuentra un
plan de mejor calidad que el obtenido hasta el momento, el planificador lo
devuelve como una nueva solucion.
Este modo de operacion puede observarse en las figuras 6.3 y 6.4 en las que
se muestran los planes obtenidos, para un mismo problema, con tres plazos
maximos distintos en el calculo de cada una de las acciones: 10, 50 y 100 mili-
segundos. Aunque mostramos unicamente dos problemas, el comportamiento
es similar en otros problemas y dominios. Este comportamiento puede resu-
mirse mediante las siguientes caracterısticas:
• Las primeras acciones de plan son generalmente mas costosas de calcular.
Esto se debe a que el numero de objetivos a resolver es mas alto (a medida
que se van insertando acciones en el plan se van alcanzando algunos de
los objetivos) y a que la distancia hasta el estado objetivo es mayor.
• El calculo de la siguiente accion se interrumpe a veces si el plazo maxi-
mo de tiempo permitido vence antes. Estas interrupciones, que suelen
ocurrir durante el calculo de las primeras acciones del plan, provocan ge-
neralmente la toma de decisiones de peor calidad, por lo que se obtienen
planes mas costosos.
158 6.3. Comportamiento anytime
Figura 6.3: Planes calculados para un problema del dominio Rovers, incremen-tando progresivamente el tiempo maximo para el calculo de cada accion.
Siguiendo este esquema, SimPlanner es capaz de devolver una primera solu-
cion en un tiempo muy reducido (el coste de la primera solucion es polinomico
si no se trabaja con precondiciones numericas). Ademas, permite mejorar la
calidad de la solucion mientras haya tiempo disponible. El punto negativo de
esta aproximacion reside en que hay un lımite en la calidad del plan final que
puede obtenerse. A partir de un plazo determinado por accion, el planificador
ya ha generado todas las etapas de refinamiento necesarias. Por ello, aunque
aumentemos el plazo a mas de un segundo por accion, la calidad del plan no
mejora.
Una solucion sencilla a este problema consiste en incluir en el algoritmo de
planificacion un proceso de busqueda que comience cuando se completen las
etapas de refinamiento de los planes mono-objetivo. De esta forma, se podrıa
buscar una solucion mejor (hasta la optima) siempre que el hubiera suficien-
te tiempo disponible. Esta solucion, sin embargo, no se ha implementado ya
que no es el objetivo principal del planificador. SimPlanner esta orientado a
trabajar en entornos dinamicos en los que se requiere reacciones rapidas.
6. Evaluacion y experimentacion 159
Figura 6.4: Planes calculados para un problema del dominio ZenoTravel, incre-mentando progresivamente el tiempo maximo para el calculo de cada accion.
Tal y como comentamos en la introduccion de este capıtulo, el planificador
seleccionado para las comparaciones ha sido LPG 1.2. LPG no permite acotar
el tiempo necesario para obtener una primera solucion, pero generalmente es
capaz de calcularla en un corto espacio de tiempo y mejorarla progresivamente.
Para la ejecucion de LPG hemos utilizado la semilla con valor 0 y, por cuestion
de espacio, hemos limitado el numero de soluciones a un maximo de 8.
Las tablas 6.4, 6.5, 6.6 y 6.7 muestran las sucesivas soluciones que nuestro
planificador y LPG han generado en los dominios del Mundo de Bloques, Sa-
tellite, Depots y ZenoTravel respectivamente. Estos dominios, descritos en el
Apendice A, han sido seleccionados ya que comparten muchas caracterısticas
de aplicaciones reales de robots moviles: calculo de rutas y manejo y trans-
porte de objetos. En estas tablas, el coste representa el numero de acciones
del plan, mientras que el tiempo expresa en segundos el tiempo total emplea-
do para obtener cada una de las soluciones. Las celdas en las que aparece un
guion (−) indican que el correspondiente planificador no ha encontrado un
plan valido dentro del plazo maximo establecido, que en estas pruebas ha sido
160 6.3. Comportamiento anytime
de 20 segundos.
Como puede observarse en la tabla 6.4, SimPlanner ofrece un comporta-
miento excelente en el mundo de bloques. Este comportamiento tambien puede
verse, de forma grafica, en la figura 6.5. En esta grafica se muestra la calidad
media, en numero de acciones, y el tiempo medio, en segundos, que obtienen
LPG y SimPlanner en un tiempo de computo maximo de 10 segundos. La me-
dia se ha calculado entre la primera y la mejor solucion obtenida. La limitacion
de 10 segundos se ha establecido para estudiar el comportamiento de ambos
planificadores en circunstancias en las que es necesaria respuesta rapida.
Tabla 6.4: Soluciones encontradas en 20 segundos para problemas del Mundo deBloques. La talla del problema representa el numero de bloques en el problema.
Coste Tiempo (seg.)P. SimPlanner LPG 1.2 SimPlanner LPG 1.2
10 64, 34 100, 36, 34 0.03, 0.06 0.28, 0.5, 2.311 128, 32 200, 40, 38, 36, 0.05, 0.12 0.7, 1.15, 1.9, 4.1,
34, 32 5.4, 6.512 56, 42, 38 154, 48, 44, 42, 40 0.03, 0.1, 0.2 0.6, 1, 1.2, 2.9, 413 72, 48, 42 174, 52, 44, 42 0.04, 0.12, 0.2 3.1, 3.4, 4.7, 10.414 86, 44 130, 64, 48, 46, 44, 0.06, 0.18 0.8, 2.4, 2.6, 3.4, 3.5,
42, 40, 38 5.4, 15.3, 19.815 100, 52, 48 172, 50, 46 0.08, 0.2, 0.3 6.2, 13.4, 13.616 188, 80, 58, 54 192, 112, 60, 58 0.2, 0.5, 0.7, 1.3 14.2, 16.1, 17.3, 17.817 236, 68, 54 352, 62 0.25, 0.5, 0.7 15.6, 2018 310, 70, 62 - 0.35, 0.6, 1.7 -19 128, 94, 86, - 0.18, 0.6, 1.3, -
68, 64 2.6, 4.420 106, 78, 66 - 0.16, 0.5, 2.7 -
En el dominio Mundo de Bloques, SimPlanner es capaz de calcular un
plan de mejor calidad y en menor tiempo que LPG. De hecho, a partir de 15
bloques, LPG no es capaz de proporcionar una respuesta en menos de 10 se-
gundos, mientras que SimPlanner consigue hacerlo en decimas de segundo. La
dificultad de este dominio consiste, principalmente, en el alto grado de inter-
accion existente entre los objetivos del problema. Planificadores actuales como
Metric-FF [Hoffman 2003] y SGPlan [Chen et al. 2004], muy competitivos en
6. Evaluacion y experimentacion 161
Figura 6.5: Calidad y tiempo promedio de las soluciones obtenidas en 10 se-gundos para problemas del dominio Mundo de Bloques.
una gran variedad de dominios, tampoco ofrecen buenos resultados en este
dominio.
El alto grado de interaccion entre los objetivos es, sin embargo, la causa
de que SimPlanner se comporte tan bien en este dominio: los planes mono-
objetivo pueden ser facilmente ordenados debido principalmente al gran nume-
ro de conflictos no flexibles que aparecen entre ellos. La correcta ordenacion
de los planes permite seleccionar buenas acciones, obteniendo como resultado
planes de alta calidad.
La tabla 6.5 y, graficamente, la figura 6.6 muestran los resultados para
el dominio Depots. Respecto a la calidad, puede observarse que los planes
generados por SimPlanner son, por termino medio, algo mas largos que los
que obtiene LPG. La principal dificultad de SimPlanner en este dominio reside
en la construccion de los planes mono-objetivo: el transporte de las cajas en
camiones supone un coste mas alto que la manipulacion de cajas dentro de los
almacenes, por lo que intenta evitar dichos traslados aun siendo, a veces, la
mejor opcion.
Por el contrario, SimPlanner es capaz de obtener soluciones a problemas
del dominio Depots mucho mas rapidamente que LPG. Mientras que SimPlan-
ner obtiene las primeras soluciones en unas pocas fracciones de segundo, LPG
emplea en algunos problemas (ver los problemas 6 y 12) mas de 10 segundos
en generar el primer resultado. La figura 6.6 tambien muestra que el compor-
tamiento de SimPlanner es mas estable y escala mejor en problemas de mayor
162 6.3. Comportamiento anytime
talla.
Tabla 6.5: Soluciones encontradas en 20 segundos para problemas del dominioDepots.
Coste Tiempo (seg.)P. SimPlanner LPG 1.2 SimPlanner LPG 1.2
10 42, 27 27, 26, 25, 24 0.06, 0.2 0.1, 2.6, 3.1, 3.311 50 63, 60, 57, 56, 0.14 0.7, 4.4, 5.7, 6.4,
55, 53 7.6, 8.412 107, 70, 63, 61 - 0.7, 3, 10.6, 18.9 -13 27, 25 28, 26, 25 0.03, 0.14 0.11, 0.21, 0.414 36, 35 37, 34, 31 0.39, 4.17 0.94, 2, 5.615 169, 116, 100 114, 89 1.3, 4.8, 20 6.4, 8.116 33, 27 32, 30, 26 0.06, 0.26 0.18, 0.5, 0.917 33, 27 28, 26, 25, 24, 23 0.16, 0.5 0.4, 0.7, 1.1, 4.3, 1818 75, 65 80, 70, 69 0.7, 12 4.4, 6, 6.819 87, 40 43, 40, 39, 38, 37 0.26, 0.8 0.4, 1.2, 3.7, 10, 1720 111, 95, 80 102, 93, 91 1.3, 3.1, 12.9 6.6, 8.9, 9.7
Figura 6.6: Calidad y tiempo promedio de las soluciones obtenidas en 10 se-
gundos para problemas del dominio Depots.
La tabla 6.6 y la figura 6.7 muestran los resultados de SimPlanner y LPG
en el dominio Satellite. Por termino medio, la calidad de ambos planificadores
es similar: LPG consigue encontrar planes mas cortos para muchos de los pro-
blemas, pero SimPlanner es capaz de obtener mejores soluciones en el mismo
6. Evaluacion y experimentacion 163
tiempo. En este dominio, las primeras soluciones que genera SimPlanner son
bastante buenas por lo que, aun concediendole mas tiempo de computo, no
consigue mejorarlas significativamente.
Tabla 6.6: Soluciones encontradas en 20 segundos para problemas del dominioSatellite.
Coste Tiempo (seg.)P. SimPlanner LPG 1.2 SimPlanner LPG 1.2
10 32, 31 32, 31, 29 0.07, 0.5 0.09, 0.2, 4.511 35, 34 35, 34, 33, 31 0.09, 0.3 0.1, 0.16, 1.1, 1.712 43 51, 45, 43 0.15 0.21, 0.33, 0.513 58 67, 65, 59, 58, 57 0.3 0.4, 1, 2.1, 2.3, 2.514 45, 44 45, 43, 42, 41, 40 0.17, 0.8 0.23, 0.6, 0.8, 7.2, 12.515 51, 50 74, 71, 64, 57, 51, 0.27, 1.2 0.34, 0.5, 0.6, 1.1, 1.3,
50 1416 52, 49 54, 53, 51, 50 0.34, 1.2 0.33, 0.6, 1.3, 6.417 47, 46 55, 54, 53, 49, 47, 0.34, 1 0.43, 0.5, 0.9, 1.4, 5.3,
46, 43 5.9, 17.318 36 43, 41, 35, 33, 32 0.12 0.2, 0.3, 0.4, 9.9, 10.519 71, 65, 63 76, 73, 72, 69, 68, 0.34, 1.3, 2.3 0.32, 0.5, 1.1, 1.4, 1.6,
67, 64, 63 8.3, 8.6, 14.820 89 108, 105, 102, 101, 0.58 0.42, 0.7, 1, 2,
99, 94, 92, 88 3.4, 3.8, 13.9, 16.5
Figura 6.7: Calidad y tiempo promedio de las soluciones obtenidas en 10 se-
gundos para problemas del dominio Satellite.
164 6.3. Comportamiento anytime
En el dominio ZenoTravel (ver tabla 6.7 y figura 6.8) la calidad de los
planes obtenidos es similar a la de LPG. Respecto al tiempo de calculo, Sim-
Planner se comporta significativamente mejor que LPG : LPG no es capaz de
calcular una primera solucion en menos de 20 segundos para los cuatro ultimos
problemas, mientras que SimPlanner lo consigue en un maximo de 6 segun-
dos. Se debe recordar tambien que, en esos 6 segundos, SimPlanner calcula
incrementalmente mas de 100 acciones, por lo que la ejecucion puede comen-
zar nada mas se ha obtenido la primera accion. Desde este punto de vista, la
diferencia de velocidad entre ambos planificadores se acentua notablemente.
Tabla 6.7: Soluciones encontradas en 20 segundos para problemas del dominioZenoTravel.
Coste Tiempo (seg.)P. SimPlanner LPG 1.2 SimPlanner LPG 1.2
10 36 44, 40, 33, 29, 27 0.08 0.25, 0.4, 0.7, 0.8, 1.311 20 22, 20, 16, 15 0.03 0.12, 0.24, 0.35, 2.812 31 24, 23 0.04 0.17, 23.213 36 47, 40, 37, 34, 0.24 0.25, 0.4, 1.2, 3.114 43, 40 53, 50, 46, 41 0.7, 1.9 4.8, 5.8, 7, 17.615 76, 53, 51 57, 53, 49 0.5, 2, 8 5.9, 9.5, 18.616 80, 63, 61 73 0.9, 6.1, 13.4 17.417 135, 129, 113 - 2.2, 4.8, 15.2 -18 111, 87 - 1.8, 11.4 -19 166 - 3.9 -20 144, 140 - 6.2, 13.7 -
Al igual que hemos hecho hasta ahora, tambien se ha evaluado el compor-
tamiento anytime en dominios numericos. Las tablas 6.8 y 6.9 muestran los
resultados obtenidos en las versiones numericas de los dominios Depots y Ze-
noTravel respectivamente. Estos dominios tambien se describen en el Apendice
A. Para los problemas numericos, el plazo maximo de tiempo de computo para
el calculo de las distintas soluciones se ha elevado hasta 60 segundos, debido a
la mayor complejidad de estos problemas. En estos problemas, ademas, el coste
no representa el numero de acciones del plan sino la cantidad de combustible
consumido.
6. Evaluacion y experimentacion 165
Figura 6.8: Calidad y tiempo promedio de las soluciones obtenidas en 10 se-gundos para problemas del dominio ZenoTravel.
Tabla 6.8: Soluciones encontradas en 60 segundos para problemas de la version
numerica del dominio Depots.
Coste Tiempo (seg.)P. SimPlanner LPG 1.2 SimPlanner LPG 1.2
10 66 48, 47 0.1 0.1, 0.211 160, 140, 120 159, 154, 134, 133, 0.7, 4.5, 7.9 4.1, 7.1, 9.1, 11.4,
123, 103 21.4, 28.512 227, 125 288 2.7, 5.3 9.113 56 107, 77, 68, 57 0.08 0.16, 0.2, 0.3, 0.914 89, 78 99, 80, 78, 68, 58 0.3, 1.5 1.9, 2.2, 3, 3.6, 5015 256, 134 204, 155, 144, 122 2.9, 13.2 28.6, 35.7, 38, 4016 57 79, 78, 68, 59, 0.2 0.3, 0.7, 0.8, 1,
58, 57 1.1, 6.417 46 49, 48, 38, 37 0.3 0.5, 1.4, 1.6, 55.518 409, 113, 99, 86 167, 137, 131, 122, 3.1, 7.9, 12.6, 29 5.2, 8.7, 34.6, 43,
112 44.319 98 218, 201, 181, 180, 0.5 0.9, 1.4, 1.7, 2,
150, 115, 100, 90 2.4, 5.1, 5.6, 3220 226, 213 254, 180, 154, 151, 6.2, 29 26.7, 34, 37, 42.5,
150 44
166 6.3. Comportamiento anytime
Figura 6.9: Calidad y tiempo promedio de las soluciones obtenidas en 10 se-
gundos para problemas de la version numerica del dominio Depots.
En la version numerica del dominio Depots (ver tabla 6.8 y figura 6.9), la
calidad de las soluciones es comparable entre ambos planificadores: aunque los
planes que genera LPG tienen, en general, mejor calidad, disponiendo del mis-
mo tiempo, SimPlanner obtiene mejores soluciones. LPG, ademas, emplea mas
de 20 segundos en varios problemas antes de devolver una primera solucion.
En los problemas de la version numerica del dominio ZenoTravel (ver tabla
6.9 y figura 6.10), SimPlanner sigue la tonica que hemos observado hasta
ahora: aunque no es capaz en muchas ocasiones de optimizar tanto como LPG,
SimPlanner consigue mejores resultados en un menor periodo de tiempo. Las
instancias mas grandes de este dominio son particularmente complejas: los
planes obtenidos tienen en ocasiones mas de 100 acciones por lo que, aun
tardando solo unas pocas decimas de segundo en calcular cada una de las
acciones, SimPlanner emplea mas de 20 segundos en generar el plan completo.
LPG tambien encuentra dificultades al resolver estos problemas. De hecho, no
consigue resolver el ultimo problema en menos de un minuto.
De acuerdo con todas las pruebas realizadas, se puede concluir que, en
general, SimPlanner es capaz de calcular un primer plan mas rapidamente que
LPG. Es importante tambien tener en cuenta que, con nuestro planificador,
no es necesario esperar hasta que el plan completo se haya calculado antes de
comenzar la ejecucion del mismo. Debido al calculo incremental de los planes,
el ejecutor puede comenzar a ejecutar el plan nada mas se ha calculado la
primera accion. Respecto a la calidad de los planes obtenidos, LPG consigue
6. Evaluacion y experimentacion 167
un mayor nivel de refinamiento pero, empleando el mismo tiempo de computo,
las soluciones que obtiene SimPlanner suelen ser de mejor calidad.
Tabla 6.9: Soluciones encontradas en 60 segundos para problemas de la versionnumerica del dominio ZenoTravel.
Coste x 1000 Tiempo (seg.)P. SimPlanner LPG 1.2 SimPlanner LPG 1.2
10 112.7 95, 78.7, 72.7, 65.5, 0.13 0.08, 0.2, 0.3, 0.5,59, 48.6, 45.6 0.7, 1.1, 1.3
11 24.6 33.6, 29.4, 19.6, 18.6, 0.04 0.07, 0.2, 0.4, 1.1,16, 13.3 2.3, 9.5
12 43.6 77, 74.6, 67.2, 55.6, 0.13 0.08, 0.2, 0.4, 0.6,48.8, 32.1, 29.4 1, 1.7, 5
13 44 92.5, 89, 75.9, 68.6, 0.2 0.1, 0.4, 0.7, 1.3,57.3, 46.5, 42.1, 40.7 2, 3.9, 7.3, 9.2
14 270, 233 308, 299, 260, 237, 0.6, 3.9 1.3, 4.1, 7.8, 11.3,194, 179, 172, 161 14.6, 20, 25.4, 31
15 47 69, 63, 49, 48, 47.9 1.2 2.1, 11, 21, 35, 4916 100, 44.4 105.7, 85.8, 78.5, 58, 2.5, 4.5 4, 9.4, 15.4, 22.5,
56.3, 52, 46.7 31.3, 38.6, 46.817 222, 139 239, 192 7.4, 13.6 11.8, 35.118 138, 129, 58 129, 121, 115 10, 34, 47 20, 34, 5519 273, 128 285 28.8, 51.7 32.720 363, 87 - 24.4, 48.6 -
Figura 6.10: Calidad y tiempo promedio de las soluciones obtenidas en 10
segundos para problemas de la version numerica del dominio ZenoTravel.
168 6.4. Planificacion on-line
6.4. Planificacion on-line
En este apartado vamos a estudiar el comportamiento de SimPlanner en
entornos dinamicos. Para ello tendremos en cuenta los eventos inesperados
que pueden ocurrir durante la ejecucion del plan y que obligan a reaccionar
rapidamente al planificador para alcanzar los objetivos con exito. Tambien
se estudiara el caso en el que los objetivos del problema cambian durante la
ejecucion del plan.
Para la realizacion de esta evaluacion hemos disenado dos dominios que
se centran en dos caracterısticas basicas de las aplicaciones de robots moviles:
calculo de rutas y manipulacion de objetos. El primer dominio es muy similar
al que se presenta en [Koenig y Likhachev 2002], aunque descrito en PDDL. Un
robot situado en una determinada posicion debe desplazarse hasta un punto
determinado. El mapa del terreno se representa en forma de una matriz por la
que el robot puede moverse en ocho direcciones distintas: horizontal, vertical
y diagonalmente. La principal dificultad en este dominio, al que hemos deno-
minado reside en que el mapa del terreno no es completamente conocido, por
lo que pueden aparecer obstaculos durante la navegacion.
El segundo dominio se centra en la utilizacion de un brazo robot para la
manipulacion de objetos, de forma similar, por lo tanto, al dominio del Mundo
de Bloques. Este ultimo dominio es, sin embargo, relativamente sencillo para
muchos planificadores actuales, por lo que lo hemos extendido con las siguientes
caracterısticas:
• En lugar de trabajar con una mesa de tamano infinito se dispone de un
conjunto de mesas en las que solo es posible formar una unica pila de
objetos.
• El objetivo no consiste en formar varias pilas de objetos en un orden
especıfico. Las mesas se utilizan unicamente como un almacen de objetos.
El objetivo consiste en ensamblar los objetos en un espacio bidimensional
alrededor de una pieza central.
• En el objetivo no se especifica la posicion absoluta de cada uno de los
objetos, sino con que otros objetos deben estar unidos. No hay, por lo
tanto, un unico estado objetivo, ya que es posible que hayan distintas
formaciones de los objetos que satisfagan los objetivos.
6. Evaluacion y experimentacion 169
Con estas modificaciones, este dominio supone un reto importante para
muchos planificadores independientes del dominio actuales. De hecho, planifi-
cadores como LPG v1.2 y SGPlan emplean 2 y 5 minutos respectivamente en
obtener una solucion (sin considerar, por su caracter off-line, eventos inespe-
rados ni cambios en los objetivos), y Metric-FF requiere mas de una hora de
proceso.
Navegacion con robots moviles
Para las pruebas en el dominio de navegacion hemos disenado dos mapas de
50x50 celdas. Los obstaculos se representan con celdas de color negro, mientras
que el espacio libre se muestra con celdas de color blanco.
Figura 6.11: Primer problema de navegacion: el robot debe moverse de la celdainicial (S) hasta la celda objetivo (G).
En el primero de ellos (ver figura 6.11) se estudia el comportamiento de
SimPlanner cuando se encuentra con nuevos obstaculos durante la navegacion
hacia el objetivo. La figura 6.12 muestra el camino que sigue el robot hasta
encontrarse con el primer obstaculo. La figura 6.13 muestra el nuevo camino
que toma el robot, comenzando desde la celda en la que se quedo, hasta topar
170 6.4. Planificacion on-line
con un segundo obstaculo. Finalmente, la figura 6.14 muestra la nueva ruta
que utiliza para alcanzar la celda objetivo.
Figura 6.12: El robot se encuentra un obstaculo en la celda (26,11).
6. Evaluacion y experimentacion 171
Figura 6.13: El robot se encuentra un obstaculo en la celda (30,14).
Figura 6.14: El robot alcanza la celda objetivo.
172 6.4. Planificacion on-line
La primera caracterıstica que puede observarse es que el planificador siem-
pre calcula una ruta optima para alcanzar el objetivo. SimPlanner es optimo
en este dominio porque no existe interaccion entre los objetivos y el grafo re-
lajado de planificacion (RPG) es una heurıstica admisible para este problema:
el numero de niveles del RPG representa la distancia exacta hasta el objetivo.
Respecto al tiempo de computo, el comportamiento es similar al descrito
en el apartado anterior: en general, las primeras acciones son las mas costosas
ya que la distancia al objetivo es mayor. Esta caracterıstica se acentua al
maximo en este dominio puesto que solo existe un objetivo en el problema:
una vez se ha refinado el unico plan mono-objetivo, lo que ocurre durante
las primeras acciones del plan, el calculo de las siguientes acciones tiene un
coste insignificante (de hecho, ya no es necesario calcular nuevos RPGs que
es, en este dominio, la etapa de planificacion que mayor porcentaje de tiempo
consume.)
Evidentemente, esto ocurre ası cuando todo transcurre como esta previsto.
Como se puede observar en la figura 6.15, cuando aparece un obstaculo en la
ruta, el planificador tiene que descartar el plan que actualmente esta siguiendo
y calcular uno nuevo. El coste de tratar los eventos inesperados es, por lo tanto,
equivalente al coste de calcular las primeras acciones del plan.
Figura 6.15: Tiempo de computo de cada accion para el primer problema denavegacion.
En la figura 6.15 puede comprobarse tambien que, aun tratandose de una
6. Evaluacion y experimentacion 173
matriz relativamente grande, el coste computacional es muy reducido. El plani-
ficador emplea alrededor de 50 milisegundos para calcular las primeras acciones
y para reaccionar ante eventos inesperados, y menos de 2 milisegundos para
el calculo del resto de las acciones del plan.
En el segundo problema de este dominio de navegacion, se evalua el com-
portamiento del planificador ante la modificacion de los objetivos. La figura
6.16 muestra la ruta que sigue el planificador para alcanzar la celda objetivo.
Tres celdas antes de alcanzar el objetivo, se modifica la posicion de la celda
objetivo: la figura 6.17 muestra la nueva situacion del objetivo y la nueva ruta
que calcula el planificador. De nuevo, antes de alcanzar el objetivo, este vuelve
a cambiar de posicion, esta vez a una celda mas cercana a la posicion actual del
robot. La figura 6.18 muestra la nueva ruta que sigue el robot para alcanzar,
finalmente, el objetivo.
Figura 6.16: Segundo problema de navegacion: el objetivo se modifica antes de
que el robot alcance la celda objetivo (G).
174 6.4. Planificacion on-line
Figura 6.17: Nueva ruta para alcanzar el objetivo y nuevo cambio de objetivo.
Figura 6.18: El robot alcanza la celda objetivo.
6. Evaluacion y experimentacion 175
Figura 6.19: Tiempo de computo de cada accion para el segundo problema de
navegacion.
Tal como hemos indicado anteriormente, el planificador obtiene de nuevo
las rutas optimas para alcanzar los objetivos. El coste computacional de cada
una de las acciones del plan puede observarse en la figura 6.19. En esta grafica,
muy similar a la del problema anterior, se puede observar que un cambio en
los objetivos produce el mismo efecto que un evento inesperado: el tiempo de
computo en ambos casos es muy similar al del calculo de las primeras acciones
del plan. Esto se debe a que, un cambio en el objetivo, invalida el plan actual
y obliga al calculo de un nuevo plan.
Manipulacion de objetos
En los problemas del dominio de manipulacion de objetos se han definido
10 objetos (p1, . . ., p10) distribuidos sobre 5 mesas (table1, . . ., table5), tal
como muestra la figura 6.20. El objetivo consistira en ensamblar dichos objetos
alrededor de un objeto central fijo, C, situado en una plataforma separada. Un
objeto puede ensamblarse a la izquierda, a la derecha, arriba o abajo del objeto
central o de otro objeto que ya haya sido ensamblado.
Al igual que hicimos con el dominio de navegacion, vamos a proponer un
primer problema en el que se pueda observar la capacidad de reaccion de Sim-
Planner ante la aparicion de situaciones inesperadas, y un segundo problema
176 6.4. Planificacion on-line
para mostrar su funcionamiento ante modificaciones en los objetivos. Las fi-
guras 6.20 y 6.21 muestran el estado inicial y el estado objetivo del primer
problema respectivamente.
Figura 6.20: Estado inicial de los problemas del dominio de manipulacion.
El primer evento inesperado sucede cuando el brazo robot ya ha ensamblado
los objetos p1, p3 y p8, y esta sosteniendo p7 para colocarlo en su posicion final
(ver figura 6.22). En dicho momento detecta que el objeto p7 se ha soltado
y ha caıdo sobre la mesa table4. El segundo evento inesperado ocurre al
ensamblar el objeto p5 a la derecha de p3. Un error provoca que p5 se ensamble
a la derecha de p2. El brazo robot, ademas de ensamblar objetos, tambien es
capaz de desensamblarlos, por lo que puede corregir esta situacion.
Figura 6.21: Estado objetivo del primer problema del dominio de manipulacion.
6. Evaluacion y experimentacion 177
Figura 6.22: Primer evento inesperado: el objeto p7 cae sobre la mesa table4.
Figura 6.23: Segundo evento inesperado: en lugar de ensamblar p5 a la derecha
de p3 se ensambla a la derecha de p2.
En primer lugar, y debido a la complejidad de este problema, hemos limi-
tado el tiempo de computo de cada accion del plan a un maximo de 1 segundo.
En la figura 6.24 puede observarse que esta limitacion afecta a practicamente
la primera mitad de las acciones del plan. A pesar de que las soluciones que ob-
tiene SimPlanner en este dominio son generalmente suboptimas, la restriccion
en el tiempo de computo tambien ocasiona la inclusion en el plan de algunas
acciones innecesarias.
178 6.4. Planificacion on-line
Figura 6.24: Tiempo de computo de cada accion para el primer problema de
manipulacion.
A diferencia del anterior dominio, los eventos inesperados solo ocasionan
leves incrementos en el tiempo de computo. Este hecho se debe a que en los
problemas de navegacion solo hay un objetivo, por lo que la aparicion de un
evento inesperado invalida todo el plan en ejecucion. Los problemas de mani-
pulacion, sin embargo, constan de distintos objetivos, cada uno de los cuales
se consigue de una forma diferente. En la mayorıa de ocasiones, cada vez que
el planificador calcula una accion se invalidan todos los planes mono-objetivo
menos uno, ya que solo uno de ellos comienza con dicha accion. Cuando su-
cede un evento inesperado, todos los planes mono-objetivo se invalidan: la
diferencia, por lo tanto, entre el calculo de una accion y la respuesta ante una
situacion inesperada es mınima.
El segundo problema parte tambien del estado inicial representado en la
figura 6.20. En este problema se muestra el comportamiento del planificador
ante cambios en los objetivos. Las figuras 6.25, 6.26 y 6.27 muestran los distin-
tos cambios en los objetivos que suceden durante la ejecucion del plan: en la
parte izquierda de cada figura se muestra el estado de la plataforma de ensam-
blado cuando ocurre el cambio de objetivo, mientras que en la parte derecha
se representa el nuevo estado objetivo que se pretende alcanzar.
6. Evaluacion y experimentacion 179
Figura 6.25: Estado inicial y objetivo del segundo problema de manipulacion.
Figura 6.26: Primer cambio en el objetivo del segundo problema de manipu-
lacion.
Figura 6.27: Segundo cambio en el objetivo del segundo problema de manipu-
lacion.
La figura 6.28 muestra el tiempo de computo utilizado en el calculo de
cada accion del plan y senala los instantes en los que se producen los cambios
180 6.5. Conclusiones
de objetivo. Como era de esperar, un cambio en los objetivos tiene un efecto
similar a la aparicion de un evento inesperado, es decir, un ligero incremen-
to en el tiempo de computo. Este incremento no depende de lo drastico que
sea el cambio introducido, tal como sucede en muchas herramientas de repla-
nificacion. En el caso de un evento inesperado, el incremento computacional
depende de la distancia del nuevo estado al objetivo, mientras que en el caso
de un cambio de objetivos, el incremento depende de la distancia del estado
actual al nuevo estado objetivo.
Figura 6.28: Tiempo de computo de cada accion para el segundo problema de
manipulacion.
6.5. Conclusiones
En este capıtulo se han evaluado cuatro de los aspectos mas novedosos de
SimPlanner v3.0 : las extensiones numericas anadidas al grafo relajado de pla-
nificacion, el manejo de acciones de sensorizacion, el comportamiento anytime
del planificador y, desde el punto de vista on-line, la reaccion ante eventos ines-
perados y cambios en los objetivos. Las conclusiones extraıdas de las pruebas
realizadas se resumen en los siguientes puntos:
• La generacion del grafo relajado en funcion de una estimacion del coste
de las acciones ocasiona importantes mejoras en la calidad, llegando a
6. Evaluacion y experimentacion 181
duplicar la calidad de algunos planes respecto a la aproximacion tradi-
cional en varios dominios numericos. Esta mejora tiene, sin embargo, un
coste computacional adicional: en algunos dominios el coste del proceso
de planificacion es cuatro veces superior. La decision para seleccionar un
algoritmo u otro depende, por lo tanto, de la aplicacion que se le vaya a
dar.
• Las acciones de sensorizacion se incluyen en el algoritmo de planificacion
sin un incremento computacional significativo. La aproximacion que se
emplea es la de utilizar las acciones de sensorizacion para obtener in-
formacion del entorno unicamente cuando la informacion disponible no
permita alcanzar los objetivos. En los ejemplos que se muestran se puede
apreciar el buen comportamiento que se obtiene con esta aproximacion.
Sin embargo, en problemas en los que hay mucha informacion desconoci-
da, el numero de acciones de sensorizacion ejecutadas puede llegar a ser
muy alto, por lo que podrıa ser interesante entender el algoritmo para
trabajar con informacion probabilıstica.
• El comportamiento anytime de SimPlanner se obtiene incrementando
progresivamente el tiempo disponible para calcular cada accion del plan.
En general, un mayor tiempo de computo permite tomar mejores de-
cisiones, lo que conduce a generar planes menos costosos. Las pruebas
realizadas permiten comparar las soluciones de SimPlanner con las de
LPG. Puede observarse que SimPlanner es capaz de obtener soluciones
de la misma calidad que LPG en un tiempo considerablemente menor.
LPG, sin embargo, alcanza mejores soluciones si dispone del tiempo su-
ficiente.
• El comportamiento on-line se ha evaluado sometiendo al planificador a
diversas situaciones inesperadas y cambios en los objetivos en dos domi-
nios caracterısticos de aplicaciones de robots moviles: calculo de rutas y
manipulacion de objetos. Puede comprobarse que el coste de la repara-
cion del plan no supone un coste adicional elevado, ya que es comparable
al calculo de las primeras acciones del plan. De hecho, si el numero de
objetivos del problema es alto, es difıcil distinguir este incremento de
coste.
182 6.5. Conclusiones
Estos resultados reflejan que el planificador desarrollado cumple los obje-
tivos de diseno planteados y que, por lo tanto, puede ser util en problemas
dinamicos de planificacion y con informacion incompleta, en los que se requie-
ren reacciones rapidas y soluciones de una calidad aceptable.
Capıtulo 7
Conclusiones y trabajo futuro
En este capıtulo se presentan las conclusiones generales de este trabajo de
tesis. El contenido de este capıtulo se organiza como sigue. En el primer apar-
tado se describen las caracterısticas y la necesidad de la utilizacion de tecnicas
de planificacion practica para afrontar eficientemente muchos problemas reales
de planificacion. En el segundo apartado se describe la aproximacion propues-
ta y se enumeran las aportaciones y los resultados mas relevantes. En el tercer
y ultimo apartado se proporcionan varias lıneas de trabajos futuros derivadas
directamente de este trabajo de tesis.
7.1. Introduccion
La investigacion en planificacion clasica independiente del dominio se ha
centrado en el desarrollo de tecnicas de busqueda eficientes, orientadas general-
mente a encontrar una secuencia optima (o proxima a la optima) de acciones
que conduzca al sistema desde el estado actual hasta el estado objetivo. El
problema de la planificacion independiente del dominio, sin embargo, es un
problema muy complejo. Por ello, aunque los planificadores mas recientes,
sobretodo aquellos basados en la planificacion heurıstica, son muy rapidos,
necesitan todavıa varios minutos para resolver muchos problemas de tamano
medio/grande.
Existe una gran variedad de dominios en los que un periodo de tiempo
de varios minutos, e incluso de varias horas, no resulta ningun inconvenien-
te. Estos dominios son, generalmente, problemas de optimizacion como, por
183
184 7.2. Conclusiones
ejemplo, la generacion de planes para situaciones de crisis, campanas militares,
toma de decisiones logısticas, etc., en los que los planes se almacenan para su
posterior ejecucion.
Existen otro tipo de aplicaciones, como el control de robots moviles o los
agentes de inteligencia artificial en juegos de ordenador y simulaciones, en las
que un tiempo de computo excesivo no es admisible. Un tiempo de respuesta
acotable no es el unico requerimiento en este tipo de aplicaciones. Es frecuente,
por ejemplo, que el planificador no pueda acceder a toda la informacion del
entorno. Un robot movil, por ejemplo, desconoce muchos de los hechos del
mundo que estan fuera del alcance de sus sensores. Algo todavıa mas probable
es que el mundo cambie constantemente, ya que el robot movil no es el unico
agente capaz de actuar sobre el mundo y modificarlo. Estas son, entre otras,
las caracterısticas que hacen que los planificadores clasicos no sean la mejor
opcion para la resolucion de este tipo de problemas.
Las nuevas tecnicas de planificacion capaces de afrontar las dificultades de
este tipo de dominios (o, al menos, algunas de ellas) se enmarcan dentro de la
planificacion practica. Esta tesis se enmarca dentro de esta vertiente practica
de la planificacion. En las siguientes secciones se presentan las conclusiones y
las aportaciones mas destacadas de este trabajo de tesis, ası como las lıneas
de trabajo futuro que pueden desarrollarse a partir de este trabajo.
7.2. Conclusiones
El trabajo realizado en esta tesis se inicio con el objetivo de integrar un
proceso de planificacion de alto nivel dentro de una aplicacion de control de
robots moviles. Este trabajo se ha centrado en el desarrollo de un algoritmo de
planificacion independiente del dominio capaz de manejar muchos de los reque-
rimientos de este tipo de aplicaciones, como plazos en el tiempo de respuesta
o la presencia informacion incompleta, requerimientos que no son faciles de
satisfacer mediante los planificadores clasicos actuales.
7. Conclusiones y trabajo futuro 185
7.2.1. Aproximacion propuesta
La solucion propuesta parte de una arquitectura basada en el modelo de
planificacion y ejecucion integrada. En esta arquitectura se define uno (o va-
rios) agentes de planificacion, capaces de elaborar y ejecutar planes autonoma-
mente sobre un mismo entorno. Cada agente de planificacion tiene su propio
objetivo definido por lo que, a diferencia de otras arquitecturas, la colabora-
cion entre los distintos agentes para alcanzar un objetivo comun no es uno
de los propositos que se desean conseguir. El objetivo principal de esta arqui-
tectura es definir un marco en el que el proceso de planificacion no sea un
proceso aislado, sino un proceso capaz de actuar sobre un entorno dinamico,
realimentarse con informacion sobre su estado y emplear dicha informacion
para emprender acciones correctoras.
Las principales aportaciones de este trabajo estan relacionadas, sin embar-
go, con el algoritmo desarrollado que se integra en los agentes de planificacion.
Este algoritmo esta estructurado en tres etapas fundamentales, de las que
podemos extraer las siguientes conclusiones:
Calculo del grafo de planificacion relajado
El calculo de un grafo relajado de planificacion es un elemento comun en
la mayorıa de los planificadores heurısticos existentes, ya que permite obtener
valiosa informacion heurıstica de una forma muy eficiente. Cualquier extension
propuesta sobre este tipo de grafos y que mejore la calidad de la informacion
que proporciona puede aplicarse a un gran numero de planificadores para mejo-
rar sus prestaciones. En este trabajo se han elaborado dos nuevas extensiones,
de gran utilidad para el tipo de problemas a los que esta destinado:
• Calculo del coste de acciones y proposiciones respecto a la funcion de
optimizacion del problema. En el algoritmo tradicional de construccion
del grafo relajado, el coste se determina en funcion del numero de pasos
de tiempo (time steps), lo que disminuye la utilidad de la informacion
extraıda del grafo cuando la funcion de optimizacion es otra muy dife-
rente. Los resultados obtenidos demuestran que, aunque esta extension
provoca un incremento en el tiempo de computo, la calidad media de los
planes mejora sensiblemente cuando se emplea esta extension.
186 7.2. Conclusiones
• Manejo de acciones de sensorizacion. En el grafo relajado propuesto se
tiene en cuenta la posible incertidumbre sobre el estado del mundo, de
forma que un determinado literal pueda ser cierto o falso, pero tambien
desconocido. Las acciones de sensorizacion se incluyen en el grafo cuando
las acciones normales no permiten alcanzar los objetivos debido a la
informacion desconocida. La ejecucion de una accion de sensorizacion
permite adquirir la informacion necesaria durante la ejecucion, por lo
que resulta un mecanismo muy util cuando se trabaja en dominios con
informacion incompleta.
Calculo de los planes mono-objetivo
Una de las principales caracterısticas del algoritmo de planificacion pro-
puesto es que se calcula un plan independiente para cada objetivo, partiendo
de la informacion extraıda del grafo relajado. Con esto se consigue simplificar
notablemente el problema de planificacion, evitando resolver muchas de las
complejas interacciones que aparecen. De hecho, el calculo de un plan mono-
objetivo inicial se realiza en coste polinomico (en caso de no existir operadores
con precondiciones numericas), lo que permite al planificador tomar decisiones
muy rapidas.
Otra de las ventajas de esta aproximacion es que los planes mono-objetivo
se refinan incrementalmente, por lo que este proceso puede ser interrumpido en
cualquier momento. En general, cuanto mayor es el tiempo disponible para el
refinamiento, mejores son las decisiones que se toman. Esta es la caracterıstica
basica para proporcionar al planificador un comportamiento muy similar al de
un algoritmo anytime.
Ordenacion de los planes mono-objetivo
A diferencia de otros planificadores basados en la descomposicion de obje-
tivos, nuestro algoritmo no trata de unir los planes mono-objetivo obtenidos
para obtener un unico plan valido. El coste de resolver los conflictos que apare-
cen es normalmente demasiado alto para poder proporcionar una respuesta en
un tiempo limitado. Esta etapa consiste, por lo tanto, tratar de descubrir cual
es la mejor accion a ejecutar sobre el estado actual con el fin de aproximarse
a la consecucion de los objetivos.
7. Conclusiones y trabajo futuro 187
La seleccion de la siguiente accion a ejecutar parte del hecho de que la
primera accion de un plan mono-objetivo. Es logico suponer, por lo tanto,
que la siguiente accion a ejecutar debera corresponderse con la primera accion
de uno (o mas) de los planes mono-objetivo. La principal dificultad consiste,
entonces, en averiguar que plan mono-objetivo es el que debe comenzar a
ejecutarse en primer lugar.
En esta etapa se proponen diversos criterios generales para establecer un
orden entre los distintos planes mono-objetivos. El plan ordenado en primer
lugar sera, por consiguiente, aquel que comience a ejecutarse en primer lugar.
Estos criterios no siempre consiguen establecer una relacion de orden entre
todos los planes, y no siempre obtienen la ordenacion optima. Sin embargo, en
la mayorıa de ocasiones, las decisiones que se toman son suficientemente buenas
para generar planes de buena calidad. Los resultados obtenidos demuestran que
la calidad obtenida es muy similar a la de otros planificadores clasicos, y que
el tiempo de computo es, en muchos dominios, significativamente menor.
7.2.2. Contribuciones de la tesis
El objetivo de esta tesis se ha dirigido hacia la propuesta y evaluacion de
una tecnica de planificacion practica, adecuada para la resolucion de ciertos
tipos de problemas reales, caracterizados por su dinamismo, por la falta de
informacion completa y por tiempos de reaccion muy limitados. A pesar de
la complejidad que supone trabajar bajo estos requerimientos, el planificador
desarrollado ha sido capaz de resolver satisfactoriamente numerosos problemas
con estas caracterısticas. A nuestro modo de ver, el objetivo de la tesis se
ha cumplido favorablemente. Las contribuciones mas generales de la tesis se
enumeran a continuacion:
• Definicion de una aproximacion de planificacion practica independien-
te del dominio, basada en tecnicas bien conocidas como el calculo de
heurısticas y la descomposicion de objetivos, pero combinadas de una
forma novedosa.
• Extension del grafo relajado de planificacion tradicional para incluir
nuevas caracterısticas relevantes en numerosos problemas reales, como el
calculo de costes respecto a una funcion de optimizacion arbitraria, la
188 7.2. Conclusiones
ausencia de informacion completa y el soporte para acciones de sensori-
zacion.
• Diseno de un metodo para el calculo incremental de planes mono-
objetivos, que permite dotar al planificador de un comportamiento si-
milar al anytime.
• Definicion de un conjunto de criterios que permiten establecer un orden
de ejecucion entre un conjunto de planes mono-objetivo.
• Evaluacion del planificador desarrollado de acuerdo con las caracterısti-
cas que incorpora: manejo de variables numericas y acciones de sensori-
zacion, restricciones en el tiempo de respuesta, y reaccion ante eventos
inesperados y modificaciones en los objetivos.
Adicionalmente, los resultados de este trabajo de tesis han dado lugar a
una serie de publicaciones, que aparecen referenciadas a lo largo de la memoria.
De entre ellas se destacan las siguientes:
• O. Sapena, E. Onaindıa. Handling Numeric Criteria in Relaxed Plan-
ning Graphs. Advances in Artificial Intelligence, LNAI, Springer Verlag.
(IBERAMIA 2004).
• O. Sapena, E. Onaindıa. Domain Independent Anytime Planning for
Dynamic Environments. Frontiers in Artificial Intelligence and Appli-
cations. IOS Press. (CCIA 2004).
• O. Sapena, E. Onaindıa, M. Mellado, C. Correcher, E. Vendrell. Reac-
tive Planning Simulation in Dynamic Environments with VirtualRobot.
Innovations in Applied Artificial Intelligence, LNCS, Springer Verlag.
(IEA-AIE 2004).
• O. Sapena, E. Onaindıa. An Architecture to Integrate Planning and Exe-
cution in Dynamic Environments. (PLANSIG 2003).
• O. Sapena, E. Onaindıa. Planificacion Independiente del Dominio en
Entornos Dinamicos. (CAEPIA 2003).
7. Conclusiones y trabajo futuro 189
• O. Sapena, E. Onaindıa. A Planning and Monitoring System for Dyna-
mic Environments. Journal of Intelligent & Fuzzy Systems. (2002).
• O. Sapena, E. Onaindıa. Domain Independent On-Line Planning for
STRIPS Domains. LNAI, Springer Verlag. (IBERAMIA 2002). Best pa-
per award.
• O. Sapena, E. Onaindıa. Execution, Monitoring and Replanning in Dy-
namic Environments. Workshop on On-Line Planning and Scheduling
(AIPS 2002).
• E. Onaindıa, O. Sapena, L. Sebastia, E. Marzal. SimPlanner: an Execution-
monitoring System for Replanning in Dynamic Worlds. LNAI, Springer
Verlag. (EPIA 2001).
• O. Sapena, E. Onaindıa, E. Argente, S. Valero. SimPlanner: una He-
rramienta para Monitorizacion de Planes y Replanificacion. (CAEPIA
2001).
7.3. Trabajos futuros
En esta seccion se introducen algunas de las extensiones que podrıan rea-
lizarse a partir de este trabajo de tesis.
A pesar de los buenos resultados que ofrece el planificador que se ha de-
sarrollado, todavıa existen numerosas extensiones que pueden mejorar nota-
blemente la eficiencia, la calidad de los planes obtenidos y las caracterısticas
que soporta. Respecto a la eficiencia, existen dos posibles ampliaciones que
podrıan producir mejoras muy importantes en el tiempo de computo. La pri-
mera de ellas consiste en combinar la tecnica de descomposicion de objetivos
con la ordenacion de objetivos. Esta ultima tecnica permite establecer un
orden entre los diversos subobjetivos de un plan, por lo que el esfuerzo del
calculo y posterior refinamiento de los planes mono-objetivo podrıa reducirse
sensiblemente.
Otra posibilidad se basa en el hecho de que un alto porcentaje del tiempo
total de planificacion se consume en el calculo de los numerosos grafos rela-
jados de planificacion. Una reduccion del numero de grafos relajados
190 7.3. Trabajos futuros
necesarios, sobretodo durante el proceso de refinamiento de los planes mono-
objetivos, supondrıa un ahorro muy importante de tiempo. Adicionalmente,
se podrıa estudiar la posibilidad de generar estos grafos de forma incremental,
partiendo de un grafo ya existente: los grafos relajados se generan a partir de
un determinado estado, estado que generalmente es el resultado de aplicar una
unica accion sobre el estado de partida de otro grafo existente.
Por otro lado, la calidad de los planes obtenidos puede mejorarse de varias
formas. Una de ellas es el estudio de nuevos y mas robustos criterios de
ordenacion de los planes mono-objetivo. Establecer un orden correcto entre
diversos planes mediante la aplicacion de un conjunto de criterios generales es
un proceso complejo. Los criterios que se proponen en este trabajo abarcan
muchos casos posibles en numerosos dominios, pero no son suficientes para
tomar siempre la mejor decision. Concretamente, la ordenacion es mas difıcil
de realizar en aquellos problemas en los que hay pocas interacciones entre los
objetivos. La definicion de un conjunto mas amplio de criterios de ordenacion
podrıa dar lugar a la obtencion de planes de muy alta calidad.
Como se observo en la evaluacion del comportamiento anytime del pla-
nificador desarrollado, existe tambien un lımite en la calidad maxima de los
planes que pueden alcanzarse. Aunque el objetivo principal del algoritmo pro-
puesto no es la obtencion de soluciones optimas, puede ser interesante ampliar
el ambito de aplicacion del planificador para aprovechar sus caracterısticas y
su rapidez en otro tipo de problemas. La incorporacion de mecanismos de
busqueda adicionales cuando el tiempo disponible no es un aspecto funda-
mental permitirıa dotar al planificador de otras caracterısticas, como comple-
titud y optimalidad, sin perjuicio de las que ya posee.
Una ultima lınea de investigacion se centra en la extension del algoritmo
propuesto para dar soporte a nuevas funcionalidades, como el soporte para
objetivos numericos y la asociacion de probabilidades a ciertos hechos. El tra-
bajo con objetivos numericos es una caracterıstica fundamental de muchos
problemas donde se manejan recursos. La incorporacion de los valores de las
variables numericas en el grafo relajado de planificacion, de forma similar al
algoritmo que se propone en [Hoffman 2003], puede simplificar notablemente
esta tarea. Por otra parte, asociar valores probabilısticos a ciertos hechos
del entorno permite disminuir considerablemente el numero de acciones de
7. Conclusiones y trabajo futuro 191
sensorizacion que debe incluir el planificador para resolver un problema con
informacion incompleta.
Apendice A
Descripcion de dominios de
planificacion clasicos
En este capıtulo se describen algunos de los dominios mas conocidos dentro
del campo de la planificacion clasica. Estos dominios se emplean a lo largo de
este trabajo para mostrar mediante ejemplos las tecnicas y los algoritmos que
se han desarrollado.
A.1. El mundo de bloques
Este dominio consiste en construir varias pilas de bloques mediante un
brazo robot. El brazo robot puede realizar cuatro operaciones distintas: coger
un bloque que este encima de la mesa (pick-up) o sobre otro bloque (unstack),
y dejar un bloque sobre la mesa (put-down) o sobre otro bloque (stack).
La especificacion que se muestra aquı se utilizo en la segunda competi-
cion de planificacion [IPC 2000]. Es frecuente encontrar en la literatura otras
versiones con distinto numero de operadores.
Descripcion del dominio:
(define (domain BLOCKS)
(:requirements :strips :typing)
(:types block)
(:predicates (on ?x - block ?y - block)
(ontable ?x - block)
193
194 A.1. El mundo de bloques
(clear ?x - block)
(handempty)
(holding ?x - block))
(:action pick-up
:parameters (?x - block)
:precondition (and (clear ?x) (ontable ?x) (handempty))
:effect (and (not (ontable ?x)) (not (clear ?x)) (not (handempty))
(holding ?x)))
(:action put-down
:parameters (?x - block)
:precondition (holding ?x)
:effect (and (not (holding ?x)) (clear ?x) (handempty)
(ontable ?x)))
(:action stack
:parameters (?x - block ?y - block)
:precondition (and (holding ?x) (clear ?y))
:effect (and (not (holding ?x)) (not (clear ?y)) (clear ?x)
(handempty) (on ?x ?y)))
(:action unstack
:parameters (?x - block ?y - block)
:precondition (and (on ?x ?y) (clear ?x) (handempty))
:effect (and (holding ?x) (clear ?y) (not (clear ?x))
(not (handempty)) (not (on ?x ?y)))))
Problema ejemplo:
Un problema tıpico del mundo de bloques es la anomalıa de Sussman [By-
lander 1994]. En este problema hay tres bloques que deben colocarse como se
muestra en la figura A.1. La especificacion en PDDL es la siguiente:
(define (problem Sussman)
(:domain Blocksworld)
(:objects A B C)
A. Descripcion de dominios de planificacion clasicos 195
(:init
(on C A)
(ontable A)
(ontable B)
(clear B)
(clear C)
(handempty))
(:goal (and (on A B) (on B C))))
Figura A.1: Problema del mundo de bloques: la anomalıa de Sussman
A.2. Logistics
En este dominio, el objetivo es transportar una serie de paquetes entre dis-
tintas localidades. Este transporte se puede realizar mediante camiones, dentro
de una misma ciudad, o mediante aviones, entre ciudades diferentes. Logistics
se empleo en la primera y en la segunda competicion de planificacion, con una
especificacion muy similar. La especificacion que se muestra a continuacion se
corresponda con la utilizada en la segunda competicion [IPC 2000].
Descripcion del dominio:
(define (domain logistics)
(:requirements :strips)
(:predicates (package ?obj)
(truck ?truck)
(airplane ?airplane)
(airport ?airport)
196 A.2. Logistics
(location ?loc)
(in-city ?obj ?city)
(city ?city)
(at ?obj ?loc)
(in ?obj ?obj))
(:action load-truck
:parameters (?obj ?truck ?loc)
:precondition (and (package ?obj) (truck ?truck) (location ?loc)
(at ?truck ?loc) (at ?obj ?loc))
:effect (and (not (at ?obj ?loc)) (in ?obj ?truck)))
(:action load-airplane
:parameters (?obj ?airplane ?loc)
:precondition (and (package ?obj) (airplane ?airplane)
(location ?loc) (at ?obj ?loc) (at ?airplane ?loc))
:effect (and (not (at ?obj ?loc)) (in ?obj ?airplane)))
(:action unload-truck
:parameters (?obj ?truck ?loc)
:precondition (and (package ?obj) (truck ?truck) (location ?loc)
(at ?truck ?loc) (in ?obj ?truck))
:effect (and (not (in ?obj ?truck)) (at ?obj ?loc)))
(:action unload-airplane
:parameters (?obj ?airplane ?loc)
:precondition (and (package ?obj) (airplane ?airplane)
(location ?loc) (in ?obj ?airplane) (at ?airplane ?loc))
:effect (and (not (in ?obj ?airplane)) (at ?obj ?loc)))
(:action drive-truck
:parameters (?truck ?loc-from ?loc-to ?city)
:precondition (and (truck ?truck) (location ?loc-from)
(location ?loc-to) (city ?city) (at ?truck ?loc-from)
(in-city ?loc-from ?city) (in-city ?loc-to ?city))
:effect (and (not (at ?truck ?loc-from)) (at ?truck ?loc-to)))
A. Descripcion de dominios de planificacion clasicos 197
(:action fly-airplane
:parameters (?airplane ?loc-from ?loc-to)
:precondition (and (airplane ?airplane) (airport ?loc-from)
(airport ?loc-to) (at ?airplane ?loc-from))
:effect (and (not (at ?airplane ?loc-from))
(at ?airplane ?loc-to))))
Problema ejemplo:
El siguiente problema es uno de los mas sencillos de la segunda competicion
en el dominio Logistics. Este problema se llama logistics-4-0, donde el primer
numero indica el numero de paquetes a transportar. El segundo numero solo
identifica la serie de problemas a la que pertenece. La figura A.2 muestra grafi-
camente el estado inicial de este problema. El objetivo consiste en transportar
los paquetes obj11 y obj13 al aeropuerto apt1, y los paquetes obj21 y obj23
al almacen pos1.
(define (problem logistics-4-0)
(:domain logistics)
(:objects apn1 apt2 pos2 apt1 pos1 cit2 cit1
tru2 tru1 obj23 obj22 obj21 obj13 obj12 obj11)
(:init (package obj11) (package obj12) (package obj13)
(package obj21) (package obj22) (package obj23)
(truck tru1) (truck tru2) (city cit1) (city cit2)
(location pos1) (location apt1) (location pos2)
(location apt2) (airport apt1) (airport apt2)
(airplane apn1) (at apn1 apt2) (at tru1 pos1)
(at obj11 pos1) (at obj12 pos1) (at obj13 pos1)
(at tru2 pos2) (at obj21 pos2) (at obj22 pos2)
(at obj23 pos2) (in-city pos1 cit1) (in-city apt1 cit1)
(in-city pos2 cit2) (in-city apt2 cit2))
(:goal (and (at obj11 apt1) (at obj23 pos1) (at obj13 apt1)
(at obj21 pos1))))
198 A.3. Depots
Figura A.2: Estado inicial del problema logistics-4-0 del dominio Logistics.
A.3. Depots
Este dominio reune caracterısticas del mundo de bloques y de Logistics.
En los problemas de Depots se definen un conjunto de almacenes. En cada
almacen hay uno o mas palets sobre los que se pueden apilar cajas. Las cajas
se pueden cargar y descargar de los camiones mediante gruas. Los camiones
son necesarios para el transporte de cajas entre almacenes. Este dominio, cuya
especificacion se muestra a continuacion, se introdujo en la tercera competicion
de planificacion [IPC 2002].
Descripcion del dominio:
(define (domain Depot)
(:requirements :typing)
(:types place
locatable - object
depot distributor - place
truck hoist surface - locatable
pallet crate - surface)
(:predicates (at ?x - locatable ?y - place)
(on ?x - crate ?y - surface)
(in ?x - crate ?y - truck)
(lifting ?x - hoist ?y - crate)
(available ?x - hoist)
(clear ?x - surface))
A. Descripcion de dominios de planificacion clasicos 199
(:action Drive
:parameters (?x - truck ?y - place ?z - place)
:precondition (and (at ?x ?y))
:effect (and (not (at ?x ?y)) (at ?x ?z)))
(:action Lift
:parameters (?x - hoist ?y - crate ?z - surface ?p - place)
:precondition (and (at ?x ?p) (available ?x) (at ?y ?p)
(on ?y ?z) (clear ?y))
:effect (and (not (at ?y ?p)) (lifting ?x ?y) (not (clear ?y))
(not (available ?x)) (clear ?z) (not (on ?y ?z))))
(:action Drop
:parameters (?x - hoist ?y - crate ?z - surface ?p - place)
:precondition (and (at ?x ?p) (at ?z ?p) (clear ?z)
(lifting ?x ?y))
:effect (and (available ?x) (not (lifting ?x ?y)) (at ?y ?p)
(not (clear ?z)) (clear ?y) (on ?y ?z)))
(:action Load
:parameters (?x - hoist ?y - crate ?z - truck ?p - place)
:precondition (and (at ?x ?p) (at ?z ?p) (lifting ?x ?y))
:effect (and (not (lifting ?x ?y)) (in ?y ?z) (available ?x)))
(:action Unload
:parameters (?x - hoist ?y - crate ?z - truck ?p - place)
:precondition (and (at ?x ?p) (at ?z ?p) (available ?x)
(in ?y ?z))
:effect (and (not (in ?y ?z)) (not (available ?x))
(lifting ?x ?y))))
Problema ejemplo:
El ejemplo que se presenta aquı corresponde con el problema mas sencillo
de Depots (pfile1 ), dentro de la competicion de planificacion del 2002. La figura
A.3 muestra graficamente el estado inicial de este problema.
200 A.3. Depots
(define (problem depotprob1818)
(:domain Depot)
(:objects
depot0 - Depot
distributor0 distributor1 - Distributor
truck0 truck1 - Truck
pallet0 pallet1 pallet2 - Pallet
crate0 crate1 - Crate
hoist0 hoist1 hoist2 - Hoist)
(:init
(at pallet0 depot0) (at pallet1 distributor0)
(at pallet2 distributor1)
(clear crate1) (clear crate0) (clear pallet2)
(at truck0 distributor1) (at truck1 depot0)
(at hoist0 depot0) (at hoist1 distributor0)
(at hoist2 distributor1)
(available hoist0) (available hoist1) (available hoist2)
(at crate0 distributor0) (on crate0 pallet1)
(at crate1 depot0) (on crate1 pallet0))
(:goal (and (on crate0 pallet2) (on crate1 pallet1))))
Figura A.3: Estado inicial del problema depotprob1818 del dominio Depots.
Version numerica:
La version numerica de Depots anade pesos a las cajas y capacidades a
los camiones. Ademas, los camiones y las gruas consumen combustible. En la
A. Descripcion de dominios de planificacion clasicos 201
mayorıa de problemas de este dominio, la funcion a minimizar es el consu-
mo de combustible (:metric minimize (fuel-cost)). La especificacion que
aparece a continuacion muestra algunas diferencias que aparecen en la version
numerica.
(define (domain Depot)
(:requirements :typing :fluents)
...
(:functions
(load_limit ?t - truck)
(current_load ?t - truck)
(weight ?c - crate)
(fuel-cost))
...
(:action Drive
:parameters (?x - truck ?y - place ?z - place)
:precondition (and (at ?x ?y))
:effect (and (not (at ?x ?y)) (at ?x ?z)
(increase (fuel-cost) 10)))
(:action Load
:parameters (?x - hoist ?y - crate ?z - truck ?p - place)
:precondition (and (at ?x ?p) (at ?z ?p) (lifting ?x ?y)
(<= (+ (current_load ?z) (weight ?y)) (load_limit ?z)))
:effect (and (not (lifting ?x ?y)) (in ?y ?z) (available ?x)
(increase (current_load ?z) (weight ?y))))
...
A.4. DriverLog
El dominio DriverLog [IPC 2002] es una variacion del dominio Logistics.
Los camiones que se emplean para repartir los paquetes entre distintas loca-
lidades requieren un conductor. Los conductores pueden desplazarse tambien
entre localidades, pero utilizan un tipo de vıa distinto (caminos en lugar de
carreteras). La especificacion de este dominio, introducida en la tercera com-
peticion de planificacion, es la siguiente:
202 A.4. DriverLog
Descripcion del dominio:
(define (domain driverlog)
(:requirements :typing)
(:types location locatable - object
driver truck obj - locatable)
(:predicates
(at ?obj - locatable ?loc - location)
(in ?obj1 - obj ?obj - truck)
(driving ?d - driver ?v - truck)
(link ?x ?y - location) (path ?x ?y - location)
(empty ?v - truck))
(:action LOAD-TRUCK
:parameters (?obj - obj ?truck - truck ?loc - location)
:precondition (and (at ?truck ?loc) (at ?obj ?loc))
:effect (and (not (at ?obj ?loc)) (in ?obj ?truck)))
(:action UNLOAD-TRUCK
:parameters (?obj - obj ?truck - truck ?loc - location)
:precondition (and (at ?truck ?loc) (in ?obj ?truck))
:effect (and (not (in ?obj ?truck)) (at ?obj ?loc)))
(:action BOARD-TRUCK
:parameters (?driver - driver ?truck - truck ?loc - location)
:precondition (and (at ?truck ?loc) (at ?driver ?loc)
(empty ?truck))
:effect (and (not (at ?driver ?loc)) (driving ?driver ?truck)
(not (empty ?truck))))
(:action DISEMBARK-TRUCK
:parameters (?driver - driver ?truck - truck ?loc - location)
:precondition (and (at ?truck ?loc) (driving ?driver ?truck))
:effect (and (not (driving ?driver ?truck)) (at ?driver ?loc)
(empty ?truck)))
A. Descripcion de dominios de planificacion clasicos 203
(:action DRIVE-TRUCK
:parameters (?truck - truck ?loc-from - location
?loc-to - location ?driver - driver)
:precondition (and (at ?truck ?loc-from) (driving ?driver ?truck)
(link ?loc-from ?loc-to))
:effect (and (not (at ?truck ?loc-from)) (at ?truck ?loc-to)))
(:action WALK
:parameters (?driver - driver ?loc-from - location
?loc-to - location)
:precondition (and (at ?driver ?loc-from) (path ?loc-from ?loc-to))
:effect (and (not (at ?driver ?loc-from)) (at ?driver ?loc-to))))
Problema ejemplo:
El ejemplo que se presenta aquı corresponde con el problema mas sencillo
de DriverLog (pfile1 ), dentro de la competicion de planificacion del 2002. La
figura A.4 muestra graficamente el estado inicial de este problema.
(define (problem DLOG-2-2-2)
(:domain driverlog)
(:objects
driver1 driver2 - driver
truck1 truck2 - truck
package1 package2 - obj
s0 s1 s2 p1-0 p1-2 - location)
(:init
(at driver1 s2) (at driver2 s2)
(empty truck1) (empty truck2)
(at truck2 s0) (at truck1 s0)
(at package1 s0) (at package2 s0)
(path s1 p1-0) (path p1-0 s1) (path s0 p1-0) (path p1-0 s0)
(path s1 p1-2) (path p1-2 s1) (path s2 p1-2) (path p1-2 s2)
(link s0 s1) (link s1 s0) (link s0 s2) (link s2 s0) (link s2 s1)
(link s1 s2))
(:goal (and (at driver1 s1) (at truck1 s1) (at package1 s0)
(at package2 s0))))
204 A.5. MailDelivery
Figura A.4: Estado inicial del problema DLOG-2-2-2 del dominio DriverLog.
Version numerica:
En la version numerica de DriverLog se especifica el tiempo necesario
para desplazarse de una localizacion a otra, bien conduciendo un camion
(time-to-drive ?l1 ?l2 - location) como caminando (time-to-walk ?l1
?l2 - location). El tiempo total de conduccion y de desplazamiento a pie se
almacenan en las variables driven y walked respectivamente. Los operadores
DRIVE-TRUCK y WALK se encargan, por lo tanto, de incrementar dichas variables
segun el tiempo invertido en el desplazamiento.
La funcion a minimizar es una combinacion lineal entre la longitud del plan
(en pasos de tiempo), el tiempo total de conduccion y el tiempo total camina-
do: (:metric minimize (+ (+ (* Cte1 (total-time)) (* Cte2 (driven)))
(* Cte3 (walked)))).
A.5. MailDelivery
Este no es un dominio clasico pues introduce nuevas caracterısticas como
acciones de sensorizacion. La especificacion, por lo tanto, no cumple estricta-
mente el estandar PDDL ya que incluye algunas de las extensiones descritas
A. Descripcion de dominios de planificacion clasicos 205
en el apartado 4.3.
En este dominio se utiliza uno o mas robots moviles para repartir el correo
en una planta de despachos. Los robots pueden desplazarse por una serie de
puntos de referencia dentro de la planta, y son capaces de recoger y entregar
cartas y de abrir y cerrar las puertas de los despachos. Los robots, ademas,
pueden comprobar el estado de las puertas (abiertas o cerradas) y verificar si
una persona o una carta se encuentra en un determinado despacho.
Descripcion del dominio:
(define (domain MailDelivery)
(:requirements :typing :fluents :negative-preconditions)
(:types locatable door point - object
person letter robot - locatable)
(:predicates
(at ?x - locatable ?y - point)
(in ?l - letter ?r - robot)
(open ?d - door)
(delivered ?l - letter ?p - person)
(connected ?p1 - point ?p2 - point)
(conn-door ?p1 - point ?p2 - point ?d - door)
(next ?p - point ?d - door))
(:functions
(driven ?r - robot)
(distance ?p1 - point ?p2 - point))
(:action Open-door
:parameters (?r - robot ?d - door ?p - point)
:precondition (and ((not) open ?d) (at ?r ?p) (next ?p ?d))
:effect (and (open ?d)))
(:action Travel
:parameters (?r - robot ?p1 - point ?p2 - point)
:precondition (and (at ?r ?p1) (connected ?p1 ?p2))
:effect (and (not (at ?r ?p1)) (at ?r ?p2)
206 A.5. MailDelivery
(increase (driven ?r) (distance ?p1 ?p2))))
(:action Travel-door
:parameters (?r - robot ?p1 - point ?p2 - point ?d - door)
:precondition (and (at ?r ?p1) (conn-door ?p1 ?p2 ?d) (open ?d))
:effect (and (not (at ?r ?p1)) (at ?r ?p2)
(increase (driven ?r) (distance ?p1 ?p2))))
(:action Deliver-letter
:parameters (?r - robot ?l - letter ?p - person ?x - point)
:precondition (and (at ?r ?x) (at ?p ?x) (in ?l ?r))
:effect (and (not (in ?l ?r)) (delivered ?l ?p)))
(:action Pickup-letter
:parameters (?r - robot ?l - letter ?p - point)
:precondition (and (at ?r ?p) (at ?l ?p))
:effect (and (not (at ?l ?p)) (in ?l ?r)))
(:sensing action Check-door
:parameters (?r - robot ?d - door ?p - point)
:precondition (and (at ?r ?p) (next ?p ?d))
:effect (open ?d))
(:sensing action Check-person
:parameters (?r - robot ?per - person ?p - point)
:precondition (at ?r ?p)
:effect (at ?per ?p))
(:sensing action Check-letter
:parameters (?r - robot ?l - letter ?p - point)
:precondition (at ?r ?p)
:effect (at ?l ?p)))
Problema ejemplo:
En este ejemplo, se dispone de un robot r que debe entregar la carta l a
una persona p (ver figura A.5). La especificacion de este problema se muestra
a continuacion:
A. Descripcion de dominios de planificacion clasicos 207
(define (problem Problem1)
(:domain MailDelivery)
(:objects
p - person
r - robot
l - letter
A B C D E F - point
doorA doorB doorC doorD - door)
(:init
(at r A) (at p B) (at l C)
(open doorA)
(open doorB)
(not (open doorC))
(not (open doorD))
(connected E F) (= (distance E F) 3)
(connected F E) (= (distance F E) 3)
(conn-door A E doorA) (= (distance A E) 1)
(conn-door E A doorA) (= (distance E A) 1)
(conn-door E C doorC) (= (distance E C) 1)
(conn-door C E doorC) (= (distance C E) 1)
(conn-door B F doorB) (= (distance B F) 1)
(conn-door F B doorB) (= (distance F B) 1)
(conn-door D F doorD) (= (distance D F) 1)
(conn-door F D doorD) (= (distance F D) 1)
(next A doorA) (next E doorA) (next E doorC) (next C doorC)
(next F doorB) (next B doorB) (next F doorD) (next D doorD)
(= (driven r) 0))
(:goal (delivered l p))
(:metric minimize (driven r)) )
208 A.5. MailDelivery
Figura A.5: Estado inicial del problema ejemplo del dominio MailDelivery.
REFERENCES 209
References
[Ambite et al. 2000] J.L. Ambite, C.A. Knoblock, y S. Minton. Learning plan
rewriting rules. Proceedings of the 5th International Conference on
Artificial Intelligence Planning and Scheduling Systems, pages 3–12,
2000.
[Ambite y Knoblock 2001] J.L. Ambite y C.A. Knoblock. Planning by rewri-
ting. Journal of Artificial Intelligence Research, 15:207–261, 2001.
[Ambros-Ingerson y Steel 1988] J.A. Ambros-Ingerson y S. Steel. Integrating
planning, execution and monitoring. Proceedings of AAAI-88, pages
83–88, 1988.
[Amir y Engelhardt 2003] E. Amir y B. Engelhardt. Factored planning. Pro-
ceedings of the 18th International Joint Conference on Artificial Inte-
lligence (IJCAI), pages 929–935, 2003.
[Amir 2002] E. Amir. Planning with nondeterministic actions and sensing.
AAAI’02 workshop on Cognitive Robotics, 2002.
[Anderson y Farley 1988] J.S. Anderson y A.M. Farley. Plan abstraction based
on operator generalization. Proceedings of the 17th National Confe-
rence on Artificial Intelligence, pages 100–104, 1988.
[Argente et al. 2003] E. Argente, S. Valero, y E. Onaindıa. Plan optimization
process. Proceedings of CAEPIA-TTIA, 2:23–26, 2003.
[Aylett et al. 1998] R.S. Aylett, D.P. Barnes, y K.G. Shin. A multi-robot
architecture for planetary rovers. Proceedings of the 5th European
Space Agency Workshop on Advanced Space Technologies for Robotics
and Automation, 1998.
[Bacchus et al. 1999] F. Bacchus, J.Y. Halpern, y H.J. Levesque. Reasoning
about noisy sensors and effectors in the situation calculus. Artificial
Intelligence, 111(1-2):171–208, 1999.
[Bacchus y Ady 2001] F. Bacchus y M. Ady. Planning with resources and
210 REFERENCES
concurrency: A forward chaining approach. International Joint Con-
ference on Artificial Intelligence (IJCAI), pages 417–424, 2001.
[Barrett et al. 1995] A. Barrett, D. Christianson, M. Friedman, K. Golden, C.
Kwok, J.S. Penberthy, Y. Sun, y D. Weld. UCPOP user’s manual
(version 4.0). Technical Report 93-09-06d, University of Washington,
1995.
[Bartak 1999] R. Bartak. Constraint programming: In pursuit of the holy grail.
Proceedings of Week of Doctoral Students (WDS99), pages 555–564,
1999.
[Bayardo y Schrag 1997] R.J. Bayardo y R.C. Schrag. Using CSP look-back
techniques to solve real world SAT instances. Proceedings of the 14th
National Conference on Artificial Intelligence (AAAI), pages 203–208,
1997.
[Belker et al. 2004] Th. Belker, M. Hammel, y J. Hertzberg. Plan projection
under the APPEAL robot control architecture. Proceedings of the 8th
Conference on Intelligent Autonomous Systems (IAS-8), pages 809–
817, 2004.
[Bellman 1978] R. Bellman. An Introduction to Artificial Intelligence: Can
Computers Think? Boyd & Fraser Publishing Company, 1978.
[Bertoli et al. 2001a] P. Bertoli, A. Cimatti, y M. Roveri. Heuristic search +
symbolic model checking = efficient conformant planning. Proceedings
of the 17th International Joint Conference on Artificial Intelligence
(IJCAI), pages 467–472, 2001.
[Bertoli et al. 2001b] P. Bertoli, A. Cimatti, M. Roveri, y P. Traverso. Plan-
ning in nondeterministic domains under partial observability via sym-
bolic model checking. Proceedings of the 17th International Joint Con-
ference on Artificial Intelligence (IJCAI), 1:473–478, 2001.
[Bertoli et al. 2003] P. Bertoli, A. Cimatti, U. Dal Lago, y M. Pistore. Exten-
ding PDDL to nondeterminism, limited sensing and iterative condi-
tional. In Proc. of ICAPS’03 Workshop on PDDL, 2003.
REFERENCES 211
[Bertoli y Cimatti 2002] P. Bertoli y A. Cimatti. Improving heuristics for
planning as search in belief space. Proceedings of the Conference on
AI Planning Systems (AIPS), pages 143–152, 2002.
[Blum y Furst 1997] A. Blum y M. Furst. Fast planning through planning
graph analysis. Artificial Intelligence, 90:281–300, 1997.
[Blythe et al. 1992] J. Blythe, O. Etzioni, Y. Gil, R. Joseph, D. Kahn, C.
Knoblock, S. Minton, A. Perez, S. Reilly, M. Veloso, y X. Wang. Pro-
digy 4.0: The manual and tutorial. Technical report CMU-CS-92-150.
Carnegie Mellon University, 1992.
[Blythe 1994] J. Blythe. Planning with external events. Proceedings of the
10th Conference on Uncertainty in Artificial Intelligence, pages 94–
101, 1994.
[Blythe 1998] J. Blythe. Planning under Uncertainty in Dynamic Domains.
PhD Thesis, Computer Science Department, Carnegie Mellon Univer-
sity, Pittsburg, PA, 1998.
[Boddy 1991] M. Boddy. Anytime problem solving using dynamic program-
ming. Proceedings of the 9th National Conference on Artificial Inte-
lligence (AAAI), pages 738–743, 1991.
[Bonasso et al. 1997] R.P. Bonasso, R.J. Firby, Gat E., D. Kortenkamp, D.
Miller, y M. Slack. Experiences with an architecture for intelligent,
reactive agents. Journal of Experimental and Theoretical Artificial
Intelligence, 9(1), 1997.
[Bonet et al. 1997] B. Bonet, G. Loerincs, y H. Geffner. A robust and fast ac-
tion selection mechanism for planning. Proceedings of the 14th Natio-
nal Conference of the American Association for Artificial Intelligence
(AAAI), pages 714–719, 1997.
[Bonet y Geffner 2000] B. Bonet y H. Geffner. Planning with incomplete in-
formation as heuristic search in belief space. Proceedings of the 5th
International Conference on AI Planning and Scheduling (AIPS), pa-
ges 52–61, 2000.
212 REFERENCES
[Bonet y Geffner 2001a] B. Bonet y H. Geffner. GPT: a tool for planning
with uncertainty and partial information. Proceedings of the IJCAI-
01 Workshop on Planning with Uncertainty and Partial Information,
pages 82–87, 2001.
[Bonet y Geffner 2001b] B. Bonet y H. Geffner. Heuristic Search Planer 2.0.
AI Magazine, 22(3):77–80, 2001.
[Bonet y Geffner 2001c] B. Bonet y H. Geffner. Planning as heuristic search.
Artificial Intelligence Journal, 129:5–33, 2001.
[Bonet y Geffner 2004] B. Bonet y H. Geffner. mGPT: A probabilistic plan-
ner based on heuristic search. 1st International Probabilistic-Planning
Competition / ICAPS-04, 2004.
[Boutilier 2000] C. Boutilier. Approximately optimal monitoring of plan pre-
conditions. Proceedings of the 16th Annual Conference on Uncertainty
in Artificial Intelligence, pages 54–62, 2000.
[Brafman y Hoffmann 2004] R. Brafman y J. Hoffmann. Conformant plan-
ning via heuristic forward search: A new approach. Proceedings of
the International Conference on Automated Planning and Scheduling
(ICAPS), 2004.
[Briggs y Cook 1999] W. Briggs y D.J. Cook. Anytime planning for optimal
tradeoff between deliberative and reactive planning. Proceedings of the
1999 Florida AI Research Symposium (FLAIRS-99), pages 367–370,
1999.
[Britanikand y Marefat 2004] J. Britanikand y M. Marefat. CBPOP: A
domain-independent multi-case reuse planner. Computational Inte-
lligence, 20(2):405–443, 2004.
[Bryant 1985] R.E. Bryant. Symbolic manipulation of boolean functions using
a graphical representation. Proceedings of the 22nd ACM/IEEE Con-
ference on Design Automation, pages 688–694, 1985.
REFERENCES 213
[Bryce y Kambhampati 2004] D. Bryce y S. Kambhampati. Heuristic guidan-
ce measures for conformant planning. Proceedings of the International
Conference on Automated Planning and Scheduling (ICAPS), pages
365–375, 2004.
[Bylander 1994] T. Bylander. The computational complexity of propositional
STRIPS planning. Artificial Intelligence, 69:165–204, 1994.
[Castellini et al. 2001] C. Castellini, E. Giunchiglia, y A. Tacchella. Improve-
ments to sat-based conformant planning. Proceedings of the European
Conference on Planning (ECP), 2001.
[Chen et al. 2004] Y. Chen, C.W. Hsu, y B.W. Wah. SGPlan: Subgoal parti-
tioning and resolution in planning. IPC-4 Booklet (ICAPS), 2004.
[Christensen 1991] J. Christensen. Automatic Abstraction in Planning. PhD
thesis, Department of Computer Science, Standford University, 1991.
[Chun 1999] S.B. Chun. Wargaming. Air University Library. Maxwell AFB,
AL, 1999.
[Cimatti y Roveri 2000] A. Cimatti y M. Roveri. Conformant planning via
symbolic model checking. Journal of Artificial Intelligence Research
(JAIR), 13:303–338, 2000.
[Clarke et al. 2000] E.M. Clarke, O. Grumberg, y D.A. Peled. Model Checking.
The MIT Press, 2000.
[Coddington et al. 2001] A.M. Coddington, M. Fox, y D. Long. Handling du-
rative actions in classical planning frameworks. Proceedings of the 20th
Workshop of the UK Planning and Scheduling Special Interest Group,
pages 44–58, 2001.
[Collins y Pryor 1995] G. Collins y L. Pryor. Planning under uncertainty: so-
me key issues. Proceedings of the 14th International Joint Conference
on Artificial Intelligence (IJCAI), pages 1567–1573, 1995.
[Culberson y Schaeffer 1998] J.C. Culberson y J Schaeffer. Pattern databases.
Computational Intelligence, 14(4):318–334, 1998.
214 REFERENCES
[Currie y Tate 1991] K. Currie y A. Tate. O-Plan: the open planning archi-
tecture. Artificial Intelligence, 52:49–86, 1991.
[Davis et al. 1962] M. Davis, G. Logemann, y D. Loveland. A machine pro-
gram for theorem-proving. Communications of the ACM, 5(7):394–
397, 1962.
[De Giacomo et al. 1998] G. De Giacomo, M. Soutchanski, y R. Reiter. Exe-
cution monitoring of high-level robot programs. Proceedings of the 6th
International Conference on Principles of Knowledge Representation
and Reasoning, pages 453–464, 1998.
[Dean et al. 1995] T. Dean, L.P. Kaelbling, J. Kirman, y A. Nicholson. Plan-
ning under time constraints in stochastic domains. Artificial Intelli-
gence, 76(1-2):35–74, 1995.
[Do y Kambhampati 2001a] M.B. Do y S. Kambhampati. Planning as cons-
traint satisfaction: Solving the planning graph by compiling it into
CSP. Artificial Intelligence, 132(2):151–182, 2001.
[Do y Kambhampati 2001b] M.B. Do y S. Kambhampati. Sapa: A domain-
independent heuristic metric temporal planner. Recent Advances in AI
Planning, 6th European Conference on Planning (ECP), pages 109–
120, 2001.
[Do y Kambhampati 2003] M.B. Do y S. Kambhampati. Sapa: A multi-
objective metric temporal planner. Journal of Artificial Intelligence
Research (JAIR), 20:155–194, 2003.
[Draper et al. 1994] D. Draper, S. Hanks, y D. Weld. Probabilistic planning
with information gathering and contingent execution. Proceedings of
the 2nd Conference on AI Planning Systems (AIPS), pages 31–36,
1994.
[Drummond et al. 1991] M. Drummond, J. Bresina, y S. Kedar. The entropy
reduction engine: Integrating planning, scheduling and control. SI-
GART Bulletin. ACM Press, 2(4):61–65, 1991.
REFERENCES 215
[Drummond et al. 1993] M. Drummond, K. Swanson, J. Bresina, y R. Levin-
son. Reaction-first search. Proceedings of the International Joint Con-
ference on Artificial Intelligence (IJCAI), pages 1408–1414, 1993.
[Edelkamp y Helmert 2001] S. Edelkamp y M. Helmert. MIPS: the model
checking integrated planning system. AI Magazine, 22(3):67–71, 2001.
[Edelkamp 2001] S. Edelkamp. Planning with pattern databases. European
Conference on Planning , LNCS, pages 13–24, 2001.
[Edelkamp 2003] S. Edelkamp. Taming numbers and durations in the model
checking integrated planning system. Journal of Artificial Intelligence
Research (JAIR), 20:195–238, 2003.
[El-Kholy y Richards 1996] A. El-Kholy y B. Richards. Temporal and resour-
ce reasoning in planning: the parcPLAN approach. Proceedings of the
12th European Conference on Artificial Intelligence, pages 614–618,
1996.
[Ernst y Newell 1969] G. Ernst y A. Newell. GPS: A Case Study in Generality
and Problem Solving. New York: Academic Press, 1969.
[Erol et al. 1994] K. Erol, J. Hendler, y D. Nau. UCMP: A sound and complete
procedure for hierarchical task-network planning. Proceedings of the
International Conference on Artificial Intelligence Planning Systems,
pages 249–254, 1994.
[Etzioni et al. 1992] O. Etzioni, S. Hanks, D. Weld, D. Draper, N. Lesh, y
M. Williamson. An approach to planning with incomplete informa-
tion. Proceedings of the 3rd International Conference on Principles of
Knowledge Representation and Reasoning, pages 115–125, 1992.
[Etzioni 1993] O. Etzioni. Acquiring search-control knowledge via static analy-
sis. Artificial Intelligence, 62(2):255–302, 1993.
[Feng et al. 2004] Z. Feng, R. Dearden, N. Meuleau, y R. Washington. Dyna-
mic programming for structured continuous markov decision problems.
216 REFERENCES
20th Conference on Uncertainty in Artificial Intelligence (UAI-2004),
2004.
[Fern et al. 2003] A. Fern, S. Yoon, y R. Givan. Approximate policy iteration
with a policy language bias. Advances in Neural Information Proces-
sing Systems. MIT Press, 2003.
[Fernandez et al. 2004] J.L. Fernandez, R. Sanz, y A.R. Dieguez. Probabilistic
models for monitoring and fault diagnosis: Application and evaluation
in a mobile robot. Applied Artificial Intelligence, 18(1):43–67, 2004.
[Fikes y Nilsson 1971] R.E. Fikes y N.J. Nilsson. STRIPS: A new approach
to the application of theorem proving to problem solving. Artificial
Intelligence, 2:189–208, 1971.
[Firby 1994] R.J. Firby. Task networks for controlling continuous processes.
Proceedings of the 2nd International Conference on Artificial Intelli-
gence Planning Systems (AIPS), pages 49–54, 1994.
[Fourman 2000] M.P. Fourman. Propositional planning. Workshop on Model
Theoretic Approaches to Planning, AIPS, 2000.
[Fox y Derek 2001] M. Fox y L. Derek. STAN4: a hybrid planning strategy
based on subproblem abstraction. AI Magazine, 22(3):81–84, 2001.
[Fox y Derek 2002] M. Fox y L. Derek. PDDL+: Modeling continuous time
dependent effects. Proceedings of the 3rd International NASA Works-
hop on Planning and Scheduling for Space, 2002.
[Fox y Derek 2003] M. Fox y L. Derek. PDDL2.1: An extension to PDDL for
expressing temporal planning domains. Journal of Artificial Intelli-
gence Research (JAIR), 20:61–124, 2003.
[Fox y Long 1998] M. Fox y D. Long. The automatic inference of state inva-
riants in TIM. Journal of Artificial Intelligence Research, 9:367–421,
1998.
REFERENCES 217
[Fox y Long 1999] M. Fox y D. Long. The detection and exploitation of sym-
metry in planning problems. Proceedings of the Sixteenth International
Joint Conference on Artificial Intelligence, pages 956–961, 1999.
[Garrido y Onaindıa 2003] A. Garrido y E. Onaindıa. On the application of
least-commitment and heuristic search in temporal planning. Procee-
dings of the International Joint Conference on Artificial Intelligence,
pages 942–947, 2003.
[Geffner 2000] H. Geffner. Functional STRIPS: a more flexible language for
planning and problem solving. Logic-Based Artificial Intelligence, Jack
Minker (Ed.), Kluwer, 2000.
[Gerevini et al. 2003] A. Gerevini, A. Saetti, y I. Serina. Planning through
stochastic local search and temporal action graphs in LPG. Journal
of Artificial Intelligence Research (JAIR), 20:239–290, 2003.
[Gerevini y Schubert 1998] A. Gerevini y L. Schubert. Inferring state cons-
traints for domain-independent planning. Proceedings of the 15th Na-
tional Conference on Artificial Intelligence, pages 905–912, 1998.
[Gerevini y Serina 2000] A. Gerevini y I. Serina. Fast plan adaptation through
planning graphs: Local and systematic search techniques. Proceedings
of the Conference on AI Planning Systems (AIPS), pages 112–121,
2000.
[Gervasio et al. 1998] M. Gervasio, W. Iba, P. Langley, y S. Sage. Interactive
adaptation for crisis response. AIPS-98 Workshop on Interactive and
Collaborative Planning, pages 29–36, 1998.
[Ghallab et al. 1998] M. Ghallab, A. Howe, C. Knoblock, D. McDermott, A.
Ram, M. Veloso, D. Weld, y D. Wilkins. PDDL - the planning domain
definition language. AIPS-98 Planning Committee, 1998.
[Ghallab et al. 2004] M. Ghallab, D. Nau, y P. Traverso. Automated Task
Planning. Theory and Practice. Morgan Kaufmann, 2004.
218 REFERENCES
[Ghallab y Laruelle 1994] M. Ghallab y H. Laruelle. Representation and con-
trol in IxTeT, a temporal planner. International Conference on AI
Planning and Scheduling, pages 61–67, 1994.
[Gil et al. 2004] Y. Gil, E. Deelman, J. Blythe, C. Kesselman, y H. Tang-
munarunkit. Artificial intelligence and grids: Workflow planning and
beyond. IEEE Intelligent Systems, special issue on e-science, pages
26–33, 2004.
[Ginsberg 1989] M.L. Ginsberg. Universal planning: An (almost) universally
bad idea. AI Magazine, 10(4):40–44, 1989.
[Giunchiglia y Traverso 1999] F. Giunchiglia y P. Traverso. Planning as model
checking. Proceedings of the 5th European Conference on Planning
(ECP), pages 1–20, 1999.
[Golden et al. 1994] K. Golden, O. Etzioni, y D. Weld. Omnipotence wit-
hout omniscience: Efficient sensor management for planning. National
Conference on Artificial Intelligence (AAAI), pages 1048–1054, 1994.
[Golden y Weld 1996] K. Golden y D. Weld. Representing sensing actions: The
middle ground revisited. Knowledge Representation and Reasoning,
pages 174–185, 1996.
[Golden 1998] K. Golden. Leap before you look: Information gathering in the
PUCCINI planner. Proceedings of the International Conference on AI
Planning Systems (AIPS), pages 70–77, 1998.
[Goldman y Boddy 1994a] R.P. Goldman y M.S. Boddy. Conditional linear
planning. Proceedings of the Second International Conference on AI
Planning Systems (AIPS), pages 80–85, 1994.
[Goldman y Boddy 1994b] R.P. Goldman y M.S. Boddy. Epsilon-safe plan-
ning. Proceedings of the 10th International Conference on Uncertainty
in Artificial Intelligence, pages 253–261, 1994.
REFERENCES 219
[Goodwin 1994] R. Goodwin. Reasoning about when to start acting. Pro-
ceedings of the 2nd International Conference on Artificial Intelligence
Planning Systems (AIPS), pages 86–91, 1994.
[Green 1969] C. Green. Applications of theorem proving to problem solving.
Proceedings of the First International Joint Conference on Artificial
Intelligence (IJCAI-69), pages 741–747, 1969.
[Gretton et al. 2003] C. Gretton, D. Price, y S. Thiebaux. NMRDPP: A
system for decision-theoretic planning with non-markovian rewards.
ICAPS-03 Workshop on Planning under Uncertainty and Incomplete
Information, 2003.
[Haigh y Veloso 1996] K.Z. Haigh y M.M. Veloso. Planning with dynamic
goals for robot execution. Proceedings of the AAAI Fall Symposium
“Plan Execution: Problems and Issues”, pages 65–71, 1996.
[Hammond 1986] K.J. Hammond. CHEF: A model of case-based plan-
ning. Proceedings of the National Conference on Artificial Intelligence
(AAAI), pages 267–271, 1986.
[Hanks y Weld 1995] S. Hanks y D. Weld. A domain-independent algo-
rithm for plan adaptation. Journal of Artificial Intelligence Research
(JAIR), 2:319–360, 1995.
[Haslum y Geffner 2000] P. Haslum y H. Geffner. Admissible heuristics for
optimal planning. International Conference on AI Planning and Sche-
duling, pages 140–149, 2000.
[Hawes 2001] N. Hawes. Anytime planning for agent behaviour. Proceedings
of the 12th Workshop of PLANSIG, pages 157–166, 2001.
[Hernadvogyi y Holte 2000] I.T. Hernadvogyi y R.C. Holte. Experiments with
automatic created memory-based heuristics. Proceedings of the Sym-
posium on Abstraction, Reformulation and Approximation (SARA),
LNAI, 1864:281–290, 2000.
[Hoffman y Nebel 2001] J. Hoffman y B. Nebel. The FF planning system: Fast
220 REFERENCES
planning generation through heuristic search. Journal of Artificial
Intelligence Research, 14:253–302, 2001.
[Hoffman 2003] J. Hoffman. The Metric-FF planning system: Translating ’ig-
noring delete lists’ to numeric state variables. Journal of Artificial
Intelligence Research, 20:291–341, 2003.
[Hoffmann 2000] J. Hoffmann. A heuristic for domain independent planning
and its use in an enforced hill-climbing algorithm. Proceedings of the
12th International Symposium of Methodologies for Intelligent Systems
(ISMIS), pages 216–227, 2000.
[Holldobler y Skvortsova 2004] S. Holldobler y O. Skvortsova. A logic-based
approach to dynamic programming. AAAI-04 Workshop on Learning
and Planning in Markov Processes - Advances and Challenges, 2004.
[Holldobler y Storr 2000] S. Holldobler y H. Storr. Solving the entailment
problem in the fluent calculus using binary decision diagrams. Pro-
ceedings of the 1st International Conference on Computational Logic
(CL), pages 747–760, 2000.
[Ihrig y Kambhampati 1997] L.H. Ihrig y S. Kambhampati. Storing and inde-
xing plan derivations through explanation-based analysis of retrieval
failures. Journal of Artificial Intelligence Research (JAIR), 7:161–198,
1997.
[IPC 2000] IPC. International planning competition.
http://www.cs.toronto.edu/aips2000, 2000.
[IPC 2002] IPC. International planning competition.
http://www.dur.ac.uk/d.p.long/competition.html, 2002.
[IPC 2004] IPC. International planning competition. http://ls5-www.cs.uni-
dortmund.de/ edelkamp/ipc-4/, 2004.
[Jonsson et al. 2000] A.K. Jonsson, P.H. Morris, N. Muscettola, K. Rajan, y
B.D. Smith. Planning in interplanetary space: Theory and practice.
REFERENCES 221
Proceedings of the International Conference on Artificial Intelligence
Planning Systems, pages 177–186, 2000.
[Kambhampati y Hendler 1992] S. Kambhampati y J.A Hendler. A
validation-structure-based theory of plan modification and reuse. Ar-
tificial Intelligence, 55:193–258, 1992.
[Kautz y Selman 1992] H.A. Kautz y B. Selman. Planning as satisfiability.
Proceedings of the 10th European Conference on Artificial Intelligence,
pages 359–363, 1992.
[Kautz y Selman 1996] H.A. Kautz y B. Selman. Pushing the envelope: Plan-
ning, propositional logic and stochastic search. Proceedings of the
National Conference on Artificial Intelligence (AAAI), 2:1194–1201,
1996.
[Kautz y Selman 1998] H.A. Kautz y B. Selman. The role of domain-specific
knowledge in the planning as satisfiability framework. Proceedings of
the International Conference on Artificial Intelligence Planning Sys-
tems, pages 181–189, 1998.
[Kautz y Selman 1999] H.A. Kautz y B. Selman. Unifying SAT-based and
graph-based planning. Proceedings of the 16th International Joint
Conference on Artificial Intelligence (IJCAI), pages 318–325, 1999.
[Knoblock 1991] C.A. Knoblock. Automatically search reduction in hierarchi-
cal problem solving. Proceedings of the 9th National Conference on
Artificial Intelligence, pages 686–691, 1991.
[Knoblock 1994] C.A. Knoblock. Automatically generating abstractions for
planning. Artificial Intelligence, 68(2):243–302, 1994.
[Knoblock 1995] C.A. Knoblock. Planning, executing, sensing, and replanning
for information gathering. Proceedings of the 14th International Joint
Conference on Artificial Intelligence (IJCAI), pages 1686–1693, 1995.
[Knoblock 2003] C.A. Knoblock. Deploying information agents on the Web.
222 REFERENCES
Proceedings of the 18th International Joint Conference on Artificial
Intelligence (IJCAI), pages 1580–1586, 2003.
[Koehler et al. 1997] J. Koehler, B. Nebel, J. Hoffmann, y Y. Dimopoulos.
Extending planning graphs to an ADL subset. Proceedings of the
Fourth European Conference in Planning, pages 273–285, 1997.
[Koehler y Hoffmann 2000] J. Koehler y J. Hoffmann. On reasonable and for-
ced goal orderings and their use in an agenda-driven planning algo-
rithm. Journal of Artificial Intelligence Research (JAIR), 12, 2000.
[Koehler 1993] J. Koehler. Flexible plan reuse in a formal framework. Procee-
dings of the 2nd European Workshop on AI Planning (EWSP), pages
171–184, 1993.
[Koenig et al. 2002] S. Koenig, D. Furcy, y C. Bauer. Heuristic search-based
replanning. Proceedings of the Conference on AI Planning Systems
(AIPS), pages 294–301, 2002.
[Koenig et al. 2003] S. Koenig, C.A. Tovey, y Y.V. Smirnov. Performance
bounds for planning in unknown terrain. Artificial Intelligence, 147(1-
2):253–279, 2003.
[Koenig y Likhachev 2002] S. Koenig y M. Likhachev. Improved fast replan-
ning for robot navigation in unknown terrain. Proceedings of the In-
ternational Conference on Robotics and Automation, 2002.
[Koenig 2002] S. Koenig. Agent-centered search. Artificial Intelligence Maga-
zine, 22(4):109–131, 2002.
[Kurien et al. 2002] J.A. Kurien, P.P. Nayak, y D.E. Smith. Fragment-based
conformant planning. Proceedings of the Conference on AI Planning
Systems (AIPS), pages 153–162, 2002.
[Kushmerick et al. 1995] N. Kushmerick, S. Hanks, y D. Weld. An algorithm
for probabilistic planning. Artificial Intelligence, 76:239–286, 1995.
REFERENCES 223
[Kvarnstrom y Magnusson 2003] J. Kvarnstrom y M. Magnusson. TALplan-
ner in IPC-2002: Extensions and control rules. Journal of Artificial
Intelligence Research (JAIR), 20:343–377, 2003.
[Kwok y Weld 1996] C. Kwok y D. Weld. Planning to gather information. Pro-
ceedings of the National Conference on Artificial Intelligence (AAAI),
1:32–39, 1996.
[Lemai y Ingrand 2004] S. Lemai y F. Ingrand. Interleaving temporal plan-
ning and execution in robotics domains. Proceedings of the National
Conference on Artificial Intelligence (AAAI), 2004.
[Li y Anbulagan 1997] C.M. Li y Anbulagan. Heuristics based on unit pro-
pagation for satisfiability problems. Proceedings of 15th International
Joint Conference on Artificial Interlligence (IJCAI), pages 366–371,
1997.
[Littman y Younes 2004] M.L. Littman y H.L.S. Younes. Introduction to the
probabilistic planning track. Online Proceedings for The Probablistic
Planning Track of IPC-04, 2004.
[Long et al. 2002] D. Long, M. Fox, y M. Hamdi. Reformulation in planning.
Proceedings of 5th International Symposium on Abstraction, Reformu-
lation and Approximation (SARA), pages 18–32, 2002.
[Long y Fox 1999] D. Long y M. Fox. Efficient implementation of the plan
graph in STAN. Journal of Artificial Intelligence Research, 10:87–
115, 1999.
[Long y Fox 2002] D. Long y M. Fox. Progress in AI planning research and
applications. UPGRADE. The European Online Magazine for the IT
Professional, 3(5):10–24, 2002.
[Lopez y Bacchus 2003] A. Lopez y F. Bacchus. Generalizing GraphPlan by
formulating planning as a CSP. Proceedings of the International Joint
Conference on Artificial Intelligence (IJCAI), pages 954–960, 2003.
[Majercik y Littman 1998] S. Majercik y M. Littman. MAXPLAN: A new
224 REFERENCES
approach to probabilistic planning. Proceedings of 4th International
Conference on Artificial Intelligence Planning and Scheduling (AIPS),
pages 86–93, 1998.
[Matellan y Borrajo 1998] V. Matellan y D. Borrajo. Combining classical and
reactive planning: the ABC2 model. AIPS’98 Workshop on Integra-
ting Planning, Scheduling and Execution in Dynamic and Uncertain
Environments, pages 121–126, 1998.
[McAllester y Rosenblitt 1991] D.A. McAllester y D. Rosenblitt. Systematic
nonlinear planning. Proceedings of the Ninth National Conference on
Artificial Intelligence, pages 634–639, 1991.
[McCarthy y Hayes 1969] J. McCarthy y P.J. Hayes. Some philosophical pro-
blems from the standpoint of artificial intelligence. Machine Intelli-
gence, 4:463–502, 1969.
[McCarthy y Pollack 2000] C.E. McCarthy y M.E. Pollack. Towards focused
plan monitoring: A technique and an application to mobile robots.
Autonomous Robots, 9(1):71–81, 2000.
[McCluskey et al. 2003] T.L. McCluskey, D. Liu, y R. Simpson. GIPO II: HTN
planning in a tool-supported knowledge engineering environment. Pro-
ceedings of the International Conference on Automated Planning and
Scheduling (ICAPS), pages 92–101, 2003.
[McDermott 1992] D. McDermott. Transformational planning of reactive
behaviour. Tecnical Report YALE/CSD/RR#941, Computer Science
Department, Yale University, 1992.
[McDermott 1996] D. McDermott. A heuristic estimator for means-ends
analysis in planning. Proceedings of the International Conference on
Artificial Intelligence Planning Systems, 3:142–149, 1996.
[McDermott 1999] D. McDermott. Using regresion-match graphs to control
search in planning. Artificial Intelligence, 109(1-2):111–159, 1999.
REFERENCES 225
[McDermott 2000] D. McDermott. The 1998 AI planning systems competi-
tion. AI Magazine, 21(2):35–55, 2000.
[Mellado et al. 2003] M. Mellado, C. Correcher, J.V. Catret, y D. Puig. Vir-
tualRobot: An open general-purpose simulation tool for robotics. Eu-
rosis International Conference ESMc’2003, 2003.
[Mellado 2003] M. Mellado. Simulacion en Robotica Mediante Virtual Robot.
Universidad Politecnica de Valencia. Ref.: 2003.443, 2003.
[Minton et al. 1994] S. Minton, J. Bresina, y M. Drummond. Total-order and
partial-order planning: A comparative analysis. Journal of Artificial
Intelligence Research, 2:227–261, 1994.
[Minton 1988] S. Minton. Learning Search Control Knowledge: An
Explanation-Based Approach. Kluwer, Boston, MA, 1988.
[Myers 1996] K.L. Myers. A procedural knowledge approach to task-level con-
trol. Proceedings of the 3rd International Conference on AI Planning
Systems (AIPS), pages 158–165, 1996.
[Nareyek y Sandholm 2003] A. Nareyek y T. Sandholm. Planning in dyna-
mic worlds: More than external events. Proceedings of the IJCAI-03
Workshop on Agents and Automated Reasoning, pages 30–35, 2003.
[Nareyek 2004] A. Nareyek. Artificial intelligence in computer games - state
of the art and future directions. ACM Queue, 1(10):58–65, 2004.
[Nau et al. 2003] D. Nau, T.C. Au, O. Ilghami, U. Kuter, W. Murdock, D. Wu,
y F. Yaman. SHOP2: an HTN planning system. Journal of Artificial
Intelligence Research (JAIR), 20:379–404, 2003.
[Nebel y Koehler 1995] B. Nebel y J. Koehler. Plan reuse versus plan gene-
ration: A theoretical and empirical analysis. Artificial Intelligence,
76(1-2):427–454, 1995.
[Newell y Simon 1963] A. Newell y H. Simon. GPS, a program that simulates
human thought. Computers and Thought, pages 279–293, 1963.
226 REFERENCES
[Nguyen et al. 2002] X. Nguyen, S. Kambhampati, y R.S. Nigenda. Planning
graph as the basis for deriving heuristics for plan synthesis by state
space and CSP search. Artificial Intelligence, 135(1-2):73–124, 2002.
[Nguyen y Kambhampati 2001] X. Nguyen y S. Kambhampati. Reviving par-
tial order planning. Proceedings of the International Joint Conference
on Artificial Intelligence, pages 459–466, 2001.
[Nilsson 1994] N.J. Nilsson. Principles of Artificial Intelligence. Morgan Kauf-
mann Publishers, 1994.
[Onaindia et al. 2000] E. Onaindia, L. Sebastia, y E. Marzal. 4SP: A four-
stage incremental planning approach. Proceedings of ECAI-00 Works-
hop on New Results in Planning, Scheduling and Design, pages 115–
129, 2000.
[Onaindia et al. 2001] E. Onaindia, O. Sapena, L. Sebastia, y E. Marzal. Sim-
Planner: an execution-monitoring system for replanning in dynamic
worlds. Proceedings of EPIA-01, Lecture Notes in Computer Science,
pages 393–400, 2001.
[Onder et al. 2004] N. Onder, G.C. Whelan, y L. Li. Probapop: Probabilistic
partial-order planning. 1st International Probabilistic-Planning Com-
petition / ICAPS-04, 2004.
[Paolucci et al. 2000] M Paolucci, O. Shehory, y K. Sycara. Interleaving plan-
ning and execution in a multiagent team planning environment. Tech-
nical report CMU-RI-TR-00-01, Robotics Institute, Carnegie Mellon
University, 2000.
[Pearl 1984] J. Pearl. Heuristics: Intelligent Search Strategies for Computer
Problem Solving. Addison-Wesley, 1984.
[Pednault 1989] E.P.D. Pednault. ADL: exploring the middle ground between
STRIPS and the situation calculus. Proceedings of the first interna-
tional conference on Principles of knowledge representation and rea-
soning, pages 324–332, 1989.
REFERENCES 227
[Penberthy y Weld 1992] J.S. Penberthy y D.S. Weld. UCPOP: A sound, com-
plete, partial order planner for ADL. Proceedings of the 3rd Interna-
tional Conference on the Principles of Knowledge Representation and
Reasoning, pages 103–114, 1992.
[Penberthy y Weld 1994] J.S. Penberthy y D.S. Weld. Temporal planning with
continuous change. Proceedings of the Twelfth National Conference on
Artificial Intelligence, 2:1010–1015, 1994.
[Peot y Smith 1992] M. Peot y D. Smith. Conditional nonlinear planning.
Proceedings of the Conference on AI Planning Systems (AIPS), pages
189–197, 1992.
[Peot y Smith 1993] M. Peot y D. Smith. Threat-removal strategies for
partial-order planning. Proceedings of the AAAI National Conference,
pages 492–499, 1993.
[Peot 1998] M. Peot. Decision-Theoretic Planning. PhD thesis, Department
of Engineering-Economic Systems and Operations Research, Stanford
University, 1998.
[Pollack y Horty 1999] M.E. Pollack y J.F. Horty. There’s more to life than
making plans: Plan management in dynamic, multi-agent environ-
ments. AI Magazine, 20(4):71–84, 1999.
[Pryor y Collins 1996] L. Pryor y G. Collins. Planning for contingencies: A
decision-based approach. Journal of Artificial Intelligence Research,
4:287–339, 1996.
[Rao y Georgeff 1991] A.S. Rao y M.P. Georgeff. Modeling rational agents
within a BDI architecture. Proceedings of the 2nd Conference on
Knowledge Representation and Reasoning, pages 473–484, 1991.
[Refanidis y Vlahavas 1999] I. Refanidis y I. Vlahavas. GRT: a domain in-
dependent heuristic for STRIPS worlds based on greedy regression
tables. Recent Advances in AI Planning, 5th European Conference on
Planning (ECP), pages 47–59, 1999.
228 REFERENCES
[Refanidis y Vlahavas 2001] I. Refanidis y I. Vlahavas. The GRT planning
system: Backward heuristic construction in forward state-space plan-
ning. Journal of Artificial Intelligence Research (JAIR), 15:115–161,
2001.
[Rich y Knight 1991] E. Rich y K. Knight. Introduction to Artificial Intelli-
gence. McGraw-Hill, 1991.
[Rintanen 1999a] J. Rintanen. Improvements to the evaluation of quantified
boolean formulae. Proceedings of the 16th Iinternational Joint Confe-
rence on Artificial Intelligence (IJCAI), pages 1192–1197, 1999.
[Rintanen 1999b] J. Rintanen. An iterative algorithm for synthesizing inva-
riants. Proceedings of the 17th National Conference on Artificial In-
telligence, pages 806–811, 1999.
[Russell y Norving 1995] S. Russell y P. Norving. Artificial Intelligence: A
Modern Approach. Prentice Hall, 1995.
[Sacerdoti 1974] E. Sacerdoti. Planning in a hierarchy of abstraction spaces.
Artificial Intelligence, 5:115–135, 1974.
[Sacerdoti 1975] E. Sacerdoti. The nonlinear nature of plans. Proceedings
of the International Joint Conference on Artificial Intelligence (AI),
pages 206–214, 1975.
[Sapena et al. 2001] O. Sapena, E. Onaindia, E. Argente, y S. Valero. Sim-
Planner: una herramienta para monitorizacion de planes y replanifi-
cacion. Proceedings of CAEPIA-TTIA, 2:873–882, 2001.
[Sapena et al. 2004] O. Sapena, E. Onaindia, M. Mellado, C. Correcher, y E.
Vendrell. Reactive planning simulation in dynamic environments with
VirtualRobot. Innovations in Applied Artificial Intelligence, LNCS,
Springer-Verlag, pages 699–707, 2004.
[Sapena y Onaindia 2002a] O. Sapena y E. Onaindia. Domain independent
on-line planning for STRIPS domains. Proceedings of IBERAMIA,
LNAI, Springer-Verlag, 2527:825–834, 2002.
REFERENCES 229
[Sapena y Onaindia 2002b] O. Sapena y E. Onaindia. Execution, monitoring
and replanning in dynamic environments. Workshop on On-Line Plan-
ning and Scheduling (AIPS-02), 2002.
[Sapena y Onaindia 2002c] O. Sapena y E. Onaindia. A planning and moni-
toring system for dynamic environments. Journal of Intelligent and
Fuzzy Systems, 12(3-4):151–162, 2002.
[Sapena y Onaindia 2003] O. Sapena y E. Onaindia. An architecture to inte-
grate planning and execution in dynamic environments. Proceedings
of PLANSIG-03, pages 184–193, 2003.
[Sapena y Onaindia 2004] O. Sapena y E. Onaindia. Domain independent
anytime planning for dynamic environments. Proceedings of CCIA.
To appear, 2004.
[Schoppers 1987] M.J. Schoppers. Universal plans for reactive robots in un-
predictable domains. Proceedings of the 10th International Joint Con-
ference on Artificial Intelligence (IJCAI), pages 1039–1046, 1987.
[Sebastia et al. 2001] L. Sebastia, E. Onaindia, y E. Marzal. STeLLa: An op-
timal sequential and parallel planner. Proceedings of EPIA, LNAI,
Springer-Verlag, pages 409–416, 2001.
[Sebastia et al. 2002] L. Sebastia, E. Onaindia, y E. Marzal. STeLLa v2.0:
Planning with intermediate goals. Proceedings of IBERAMIA, LNAI,
Springer-Verlag, pages 805–814, 2002.
[Selman et al. 1994] B. Selman, H.A. Kautz, y B. Cohen. Noise strategies for
improving local search. Proceedings of the 12th National Conference
on Artificial Intelligence (AAAI), pages 337–343, 1994.
[Simmons 1988] R. Simmons. A theory of debugging plans and interpreta-
tions. Proceedings of the National Conference on Artificial Intelligence
(AAAI/IAAI), pages 94–99, 1988.
[Simmons 1994] R. Simmons. Structured control for autonomous robots.
IEEE Transactions on Robotics and Automation, 10(1), 1994.
230 REFERENCES
[Smith et al. 2000] D. Smith, J. Frank, y A. Jonsson. Bridging the gap
between planning and scheduling. Knowledge Engineering Review,
15(1):47–83, 2000.
[Smith y Weld 1998] D.E. Smith y D.S. Weld. Conformant graphplan.
Proceedings of the National Conference on Artificial Intelligence
(AAAI/IAAI), pages 889–896, 1998.
[Smith y Weld 1999] D.E. Smith y D.S. Weld. Temporal planning with mutual
exclusion reasoning. Proceedings of the International Joint Conference
on Artificial Intelligence, pages 326–337, 1999.
[Soler et al. 2000] J. Soler, V. Julian, C. Carrascosa, y V. Botti. Applying the
ARTIS agent architecture to mobile robot control. Proceedings of the
IBERAMIA, LNAI, pages 359–368, 2000.
[Son y Baral 2001] T.C. Son y C. Baral. Formalizing sensing actions - a tran-
sition function based approach. Artificial Intelligence, 125(1-2):19–91,
2001.
[Tate 1974] A. Tate. INTERPLAN: A plan generation system which can deal
with interactions between goals. Machine Intelligence Research Me-
morandum MIP-R-109, University of Edinburgh, Edinburgh, 1974.
[Teichteil-Konigsbuch y Fabiani 2004] F. Teichteil-Konigsbuch y P. Fabiani.
Une approche hybride en planification probabiliste d’exploration au-
tonome. Quatorzieme congres francophone de Reconnaissance des For-
mes et Intelligence Artificielle (RFIA-2004), 2004.
[Thiebaux et al. 1995] S. Thiebaux, J. Hertzberg, W. Shoaff, y M. Schneider.
A stochastic model of actions and plans for anytime planning under
uncertainty. International Journal of Intelligent Systems, 10(2):155–
183, 1995.
[Valero et al. 2004] S. Valero, E. Argente, y E. Onaindıa. Proceso de paraleli-
zacion y optimizacion de planes secuenciales, paralelos y temporales.
Technical Report, DSIC-II/03/04, pages 1–104, 2004.
REFERENCES 231
[van Beek y Chen 1999] P. van Beek y X. Chen. CPlan: a constraint pro-
gramming approach to planning. Proceedings of the 16th National
Conference on Artificial Intelligence (AAAI), pages 585–590, 1999.
[Veloso et al. 1995] M.M. Veloso, J. Carbonell, A. Perez, D. Borrajo, E. Fink,
y J. Blythe. Integrating planning and learning: The PRODIGY archi-
tecture. Journal of Experimental and Theoretical Artificial Intelligen-
ce, 7(1):81–120, 1995.
[Veloso et al. 1998] M.M. Veloso, M.E. Pollack, y M.T. Cox. Rationale-based
monitoring for continuous planning in dynamic environments. Procee-
dings of the Fourth International Conference on Artificial Intelligence
Planning Systems (AIPS), pages 171–179, 1998.
[Veloso 1994] M.M. Veloso. PRODIGY/ANALOGY: Analogical reasoning in
general problem solving. Proceedings of the First European Workshop
on Case-Based Reasoning (EWCBR), LNAI, Springer-Verlag, 837:33–
50, 1994.
[Verma et al. 2003] V. Verma, G. Gordon, y R. Simmons. Efficient monitoring
for planetary rovers. Proceedings of the International Symposium on
Artificial Intelligence and Robotics in Space (iSAIRAS), 2003.
[Volpe et al. 2001] R. Volpe, I. Nesnas, T. Estlin, D. Mutz, R. Petras, y H.
Das. The CLARAty architecture for robotic autonomy. Proceedings
of the 2001 IEEE Aerospace Conference, 2001.
[Waldinger 1981] R. Waldinger. Achieving several goals simultaneously. In
Nilsson, N.J. and Webber, B., editors. Readings in Artificial Intelli-
gence, pages 250–271, 1981.
[Warren 1974] D. Warren. Warplan: A system for generating plans. Memo 76,
Computational Logic Dept., School of AI, Univ. of Edinburgh, 1974.
[Warren 1976] D. Warren. Generating conditional plans and programs. Pro-
ceedings of the Summer Conference on Artificial Intelligence and Si-
mulation on Behavior, pages 344–354, 1976.
232 REFERENCES
[Washington 1995] R. Washington. Incremental planning for truly integrated
planning and reaction. Proceedings of the Scandinavian Conference
on AI (SCAI), 28:305–316, 1995.
[Washington 2000] R. Washington. On-board real-time state and fault identi-
fication for rovers. Proceedings of the IEEE International Conference
on Robotics and Automation (ICRA), pages 1175–1181, 2000.
[Weld et al. 1998] D.S. Weld, C.R. Anderson, y D.E. Smith. Extending
graphplan to handle uncertainty and sensing actions. Proceedings of
AAAI’98, pages 897–904, 1998.
[Weld 1994] D.S. Weld. An introduction to least commitment planning. AI
Magazine, 15(4), 1994.
[Weld 1999] D.S. Weld. Recent advances in AI planning. AI Magazine,
20(2):93–123, 1999.
[Wilkins 1988] D.E. Wilkins. Practical Planning: Extending the Classical AI
Planning Paradigm. Morgan Kaufmann, 1988.
[Wilkins 1990] D. Wilkins. Can AI planners solve practical problems? Compu-
tational Intelligence, 6(4):232–246, 1990.
[Wilkins 1999] D.E. Wilkins. Using the SIPE-2 Planning System: A Manual
for Version 6.1. SRI International Artificial Intelligence Center, Menlo
Park, CA, 1999.
[Williams y Nayak 1996] B.C. Williams y P.N. Nayak. A model-based approa-
ch to reactive self-configuring systems. Proceedings of the National
Conference on Artificial Intelligence (AAAI), 2:971–978, 1996.
[Wolfman y Weld 1999] S.A. Wolfman y D.S. Weld. The LPSAT engine and
its application to resource planning. Proceedings of the 16th Inter-
national Joint Conference on Artificial Intelligence (IJCAI), pages
310–316, 1999.
[Wooldridge 2000] M. Wooldridge. Reasoning about Rational Agents (Intelli-
gent Robotics and Autonomous Agents). MIT Press, 2000.
REFERENCES 233
[Yang 1997] Q. Yang. Intelligent Planning. A Decomposition and Abstraction
Based Approach. Spinger-Verlag. Berlin, Heidelberg, 1997.
[Younes y Simmons 2002] H.L.S. Younes y R.G. Simmons. On the role of
ground actions in refinement planning. Proceedings of the 6th Inter-
national Conference on Artificial Intelligence Planning and Scheduling
Systems (AIPS), pages 54–61, 2002.
[Younes y Simmons 2003] H.L.S. Younes y R.G. Simmons. VHPOP: Versa-
tile heuristic partial order planner. Journal of Artificial Intelligence
Research (JAIR), 20:405–430, 2003.
[Younes 2003] H.L.S. Younes. Extending PDDL to model stochastic decision
processes. Proceedings of the ICAPS-03 Workshop on PDDL, pages
95–103, 2003.
[Zhang y Gratch 1999] W. Zhang y J. Gratch. An analysis of CFOR planner.
Report available at http://citeseer.ist.psu.edu/245609.html, 1999.
[Zilberstein y Russell 1996] S. Zilberstein y S.J. Russell. Optimal composition
of real-time systems. Artificial Intelligence, 82(1-2):181–213, 1996.