NeSIG

NeSIG (Neuro-Symbolic Instance Generator) es un método neuro-simbólico que representa el estado del arte (SOTA) en la generación automática de problemas/instancias de planificación. Dado un dominio de planificación, codificado en el lenguaje PDDL, NeSIG aprende a generar problemas para dicho dominio de manera que sean válidos, diversos y difíciles de resolver. Por ejemplo, NeSIG puede utilizarse para generar niveles de juegos (ej.: sokoban) dada una descripción (en PDDL) de las dinámicas del mismo.

Como método neuro-simbólico, NeSIG combina el clásico acercamiento simbólico con el más moderno subsimbólico o conexionista, basado en Deep Learning, para resolver la tarea de la generación de problemas. Por una parte, recibe como entradas una representación simbólica del sistema para el cual generar problemas (denominado dominio de planificación) y una lista de condiciones que los problemas generados deben cumplir. Estas condiciones, denominadas reglas de consistencia, son representadas de manera sencilla mediante un nuevo lenguaje semi-declarativo (que combina Python y lógica) creado especialmente para este propósito. Este lenguaje se encuentra disponible en Github (https://github.com/TheAeryan/PDDL-Prover) y en el repositorio PyPI de paquetes Python, acumulando a día de hoy más de 2000 descargas.

Dada la descripción simbólica del dominio y reglas de consistencia, NeSIG utiliza Deep Learning, más concretamente Deep Reinforcement Learning (DRL), para aprender a generar problemas válidos, diversos y difíciles. Para ello, el proceso de generación de problemas se formula de manera iterativa, paso a paso, y se entrenan dos políticas generativas con DRL para aprender a generar problemas. La primera política aprende a generar el estado inicial del problema, mediante la adición sucesiva de objetos y átomos (relaciones) a un estado vacío. Una vez generado el estado inicial, una segunda política genera el objetivo del problema mediante la aplicación sucesiva de acciones sobre dicho estado inicial. Durante este proceso de generación se evalúa la validez, diversidad y dificultad de los problemas generados, obteniéndose una señal de recompensa que se utiliza para entrenar a ambas políticas generativas. Por último, estas políticas son representadas mediante una Neural Logic Machine, un tipo de red neuronal neuro-simbólica capaz del razonamiento y aprendizaje inductivo a partir de datos representados en formato lógico, como es el caso de PDDL.

Esquema de NeSIG
Esquema general NeSIG

Este trabajo ha sido aceptado en la conferencia internacional ECAI (European Conference on Artificial Intelligence) en 2024, bajo el nombre «Nesig: A neuro-symbolic method for learning to generate planning problems» y también se encuentra disponible en el repositorio gratuito ArXiv.

El artículo de ECAI puede citarse de la siguiente forma::

Núñez-Molina, C., Mesejo, P., & Fernández-Olivares, J. (2024). Nesig: A neuro-symbolic method for learning to generate planning problems. European Conference on Artificial Intelligence.

El código del algoritmo puede encontrarse en Github. En este repositorio se proporciona una imagen Docker con instrucciones de uso para su fácil instalación. Además, se proporcionan los datos de los experimentos llevados a cabos para el artículo publicado en la ECAI (menos los checkpoints y logs debido a su gran tamaño).

Repositorio GitHub: https://github.com/ari-dasci/S-PlanningProblemGeneration

Contacto: Carlos Núñez Molina