Llamaremos planificación al proceso de búsqueda y articulación de una secuencia de acciones que permitan alcanzar un objetivo. Por ejemplo, si nuestro objetivo es viajar desde un pueblo perdido de Asturias y queremos llegar a Guatemala la secuencia de acciones serían los distintos transportes que se deben tomar para llegar. Otro ejemplo podría ser que tuviéramos un robot en un laberinto y nuestro objetivo fuera sacarle de él; en tal caso, nuestras acciones serían los tramos recorridos en línea recta y los giros dados por el robot.
Para formalizar el problema de la planificación existen 2 notaciones principales: ADL y STRIPS. Ambas coinciden en utilizar la lógica para representar estado inicial, objetivo y acciones. También coinciden en que, para aplicar una acción, es necesario cumplir unas precondiciones y, tras haber ejecutado la acción, habrá provocado unos efectos.
Para obtener la secuencia de acciones, es decir, el resultado al problema de la planificación, existen varios enfoques:
Búsquedas en el espacio de estados que operan hacia adelante (desde el estado inicial), o hacia atrás (desde el objetivo) aplicando las acciones. También existen heurísticas (estrategias) eficaces que nos ayudan en la búsqueda. Estos enfoques funcionan bien cuando los subobjetivos son independientes.
Si los subobjetivos no son independientes suele ser buena idea utilizar algoritmos de Planificación de Orden Parcial (POP), que exploran el espacio de planes sin comprometerse con una secuencia de acciones totalmente ordenada. Trabajan hacia atrás, desde el objetivo y añaden acciones para planificar cómo alcanzar cada subobjetivo.
Otras estrategias prometedoras son el algoritmo GRAPHPLAN y el algoritmo SATPLAN.
Cuando no se trabaja en mundos cerrados, sino en el mundo real, debemos tener en cuenta varias consideraciones. Muchas acciones consumen recursos: tiempo, dinero, materias primas, etc. por lo que debemos tener en cuenta medidas numéricas. Las redes jerárquicas de tareas (HTN) permiten tener sugerencias sobre el dominio por parte del diseñador. La información incompleta puede ser manejada mediante planificación que utilice acciones sensoriales para obtener la información que necesita. La planificación multiagente es necesaria cuando existen otros agentes en el entorno con los que cooperar, competir, o coordinarse.
Los problemas y soluciones que se abordan en planificación tienen aplicaciones directas en gestión de tareas (workflow), control de misiones complejas (espaciales, satélites, militares, etc.), turismo (visitas a ciudades, planificar rutas, ...), procesos de enseñanza/aprendizaje, robótica (planificar caminos), ...
Para la problemática de la planificación, las licencias libres han brillado por su ausencia. No obstante, todos los algoritmos se distribuyen con su código, lo cual también es cierto en arquitecturas integradas como PRODIGY, muy usadas en planificación.