¿Hay alguna buena referencia sobre la planificación de IA en dominios abstractos jerárquicamente a gran escala con cientos o miles de acciones primitivas y miles o millones de acciones compuestas?

Mi diseño para abordar este problema está en el manuscrito que estoy escribiendo: Construyendo mentes con patrones (DRAFT).

Los capítulos 7, 8, 9, 11, 12, 13, 14 tratan de la resolución de problemas y la selección de acciones. Reviso y proporciono rutinas de alto nivel para varios enfoques de planificación en el capítulo 8.

El truco para mí es (1) lidiar solo con la selección de acciones compuestas, donde las acciones compuestas pueden contener solo una acción primitiva. En el sistema Piagetian Modeler que estoy construyendo, una acción compuesta se llama una “Solución” (en oposición a un “plan” o “acción compuesta”) y una acción primitiva se llama un “evento”; también (2) filtrar soluciones irrelevantes es primordial. Por lo tanto, necesita un algoritmo o un medio para determinar qué soluciones son aplicables y cuáles son relevantes. Abordo esto abstrayendo los dominios en situaciones, y las soluciones se refieren a situaciones más que a un estado global. Eso ayuda a particionar los conjuntos de soluciones aplicables. Lea más en el manuscrito.

No soy un experto en planificación, pero necesito tecnología de planificación para mi propia investigación de IA. Al igual que su pregunta, mi trabajo involucra abstracciones jerárquicas, en particular las actividades de los agentes de software organizados en jerarquías de roles como lo propuso James Albus.

Creo que lo que está buscando es un planificador jerárquico de red de tareas. Los principios de operación son simples y tales planificadores han sido enviados por un tiempo. Ver Red jerárquica de tareas. En las competencias de planificación, los planificadores de HTN han demostrado ser escalables.

Cuando trabajé en Cycorp hace más de una década, traduje el planificador SHOP-2 HTN de Java a Lisp, donde se incorporó como un módulo de inferencia para la base de conocimiento de sentido común de Cyc.

Para mi propia investigación posterior, escribí un código de planificación que funciona de la misma manera que una organización humana que realiza la planificación y luego la ejecución del plan. El agente de más alto nivel propone un objetivo, que puede incluir alcanzar un estado deseado, mantener un cierto estado o incluso evitar un determinado conjunto de estados. En mi trabajo, el objetivo generalmente está representado por un conjunto de declaraciones lógicas. El agente encuentra planes de alto nivel cuyas condiciones previas se cumplen y cuyos resultados subsumen el objetivo. La expansión del plan de alto nivel en pasos y subplanes posiblemente ordenados temporalmente se encarga a los agentes directamente subordinados que se repiten en el proceso de planificación con respecto a sus agentes subordinados. La expectativa predeterminada es que cada agente informe que su parte del plan general es posible, pero si no es así, el agente superior debe encontrar un plan alternativo para resolverlo, de lo contrario se considera que el plan no es posible.

Cuando se considera la planificación HTN para una red jerárquica de agentes de software, hay mucho que ganar al pensar en la eventual ejecución del plan. Durante la ejecución del plan, se espera que cada parte del plan sea factible, pero se debe prever la “reparación del plan” en caso de que una de las condiciones previas originales no sea el caso. La ejecución del plan también significa que los agentes tienen procedimientos para llevar a cabo las acciones del plan, pero algunas actividades de planificación pueden posponerse al tiempo de ejecución si se sabe de antemano que dichos planes pospuestos siempre tienen solución.