PLANNING & LEARNING RESEARCH GROUP logoplg Universidad Carlos III de Madrid

Introducción


La Planificación Automática (PA) es la rama de la Inteligencia Artificial que se ocupa de dotar a las máquinas con la capacidad de hacer planes que consigan objetivos. Más formalmente, la Planificación Automática es el proceso de encontrar una secuencia ordenada de acciones que partiendo de un estado inicial lleguen a otro estado en el que se cumplan una serie de metas. Generalmente las acciones se expresan en términos de precondiciones que se deben cumplir para que la acción se pueda aplicar, y efectos, que son los cambios que se producen en el estado al aplicar la acción. La Planificación Automática independiente del dominio utiliza técnicas genéricas de resolución de problemas para encontrar esta secuencia de acciones independientemente de cuáles sean las acciones, las metas y el problema en el que se apliquen.

Por otro lado, en la actualidad la mayoría de las técnicas de control de robots se basan en sistemas reactivos con poca deliberación. En general adolecen de falta de capacidad para cambiar el comportamiento ante eventos inesperados o de realizar acciones complejas no pre-programadas con anterioridad, lo cual puede ser resuelto mediante el uso de la Planificación Automática. Las dificultades técnicas inherentes a la PA y la robótica han hecho que durante casi tres décadas se hayan desarrollado sin casi interacción.

PELEA (Planning, Execution and Learning Architecture) es una arquitectura genérica de código libre para la integración de planificación, ejecución, monitorización, replanificación y aprendizaje. Ha sido desarrollada por tres universidades españolas (Universidad Carlos III de Madrid, Universidad Politécnica de Valencia y Universidad de Granada) en el marco del proyecto PELEA (TIN2008-06701-C03-03) financiado por el Plan Nacional de Investigación. Aunque puede ser utilizada en cualquier aplicación que necesite conjuntamente de planificación, ejecución y aprendizaje automáticos, está especialmente diseñada para el control de robots. Entre sus características, es agnóstica respecto al paradigma de planificación, por lo que se puede utilizar con planificadores clásicos, jerárquicos, etc. y es independiente de la plataforma robótica en que se utilice. Además permite monitorizar la ejecución del plan, replanificar si es necesario y aprender nuevo conocimiento para mejorar los resultados de la planificación.

Está desarrollado en Java y puede ejecutarse en cualquier plataforma para la que exista una máquina virtual de Java (JVM). Requiere entre 25MB y 75MB de RAM por módulo. Es por lo tanto totalmente multi-plataforma, con la excepción de los módulos de Planificación, que deben encapsular un planificador automático y que por lo tanto dependen del sistema operativo en el que funcione ese planificador automático (Linux en la mayor parte de los casos, aunque también los hay que trabajan en Windows, e incluso existen versiones Java de alguno de ellos).