Pianificazione Classica con Euristiche Generate da LLM: Sfidare lo Stato dell'Arte con Codice Python
Classical Planning with LLM-Generated Heuristics: Challenging the State of the Art with Python Code
March 24, 2025
Autori: Augusto B. Corrêa, André G. Pereira, Jendrik Seipp
cs.AI
Abstract
Negli ultimi anni, i grandi modelli linguistici (LLM) hanno dimostrato capacità notevoli in vari problemi di intelligenza artificiale. Tuttavia, non riescono a pianificare in modo affidabile, anche quando vengono forniti di una definizione dettagliata del compito di pianificazione. Tentativi di migliorare le loro capacità di pianificazione, come il prompting a catena di pensiero, il fine-tuning e il "ragionamento" esplicito, producono comunque piani errati e generalmente non riescono a generalizzare su compiti più ampi. In questo articolo, mostriamo come utilizzare gli LLM per generare piani corretti, anche per compiti fuori distribuzione di dimensioni crescenti. Per un dato dominio di pianificazione, chiediamo a un LLM di generare diverse funzioni euristiche dipendenti dal dominio sotto forma di codice Python, le valutiamo su un insieme di compiti di addestramento all'interno di una ricerca greedy best-first e selezioniamo quella più efficace. Le euristiche generate dagli LLM risolvono molti più compiti di test non visti rispetto alle euristiche indipendenti dal dominio all'avanguardia per la pianificazione classica. Sono addirittura competitive con il più potente algoritmo di apprendimento per la pianificazione dipendente dal dominio. Questi risultati sono particolarmente significativi considerando che la nostra implementazione proof-of-concept si basa su un pianificatore Python non ottimizzato, mentre i benchmark si basano su codice C++ altamente ottimizzato. In alcuni domini, le euristiche generate dagli LLM espandono meno stati rispetto ai benchmark, rivelando che non solo sono efficientemente calcolabili, ma a volte anche più informative delle euristiche all'avanguardia. Nel complesso, i nostri risultati dimostrano che campionare un insieme di programmi di funzioni euristiche di pianificazione può migliorare significativamente le capacità di pianificazione degli LLM.
English
In recent years, large language models (LLMs) have shown remarkable
capabilities in various artificial intelligence problems. However, they fail to
plan reliably, even when prompted with a detailed definition of the planning
task. Attempts to improve their planning capabilities, such as chain-of-thought
prompting, fine-tuning, and explicit "reasoning" still yield incorrect plans
and usually fail to generalize to larger tasks. In this paper, we show how to
use LLMs to generate correct plans, even for out-of-distribution tasks of
increasing size. For a given planning domain, we ask an LLM to generate several
domain-dependent heuristic functions in the form of Python code, evaluate them
on a set of training tasks within a greedy best-first search, and choose the
strongest one. The resulting LLM-generated heuristics solve many more unseen
test tasks than state-of-the-art domain-independent heuristics for classical
planning. They are even competitive with the strongest learning algorithm for
domain-dependent planning. These findings are especially remarkable given that
our proof-of-concept implementation is based on an unoptimized Python planner
and the baselines all build upon highly optimized C++ code. In some domains,
the LLM-generated heuristics expand fewer states than the baselines, revealing
that they are not only efficiently computable, but sometimes even more
informative than the state-of-the-art heuristics. Overall, our results show
that sampling a set of planning heuristic function programs can significantly
improve the planning capabilities of LLMs.Summary
AI-Generated Summary