# Representation and Synthesis of C++ Programs for Generalized Planning

arXiv: https://arxiv.org/abs/2206.14480 · HTML: https://mlsanity.com/paper/2206.14480/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 5 of its 51 references that are in the map.
- First posted on arXiv 29 Jun 2022.

## Builds on (most cited first, 5 of 5)

- [Generalized Planning as Heuristic Search](https://mlsanity.com/paper/2103.14434/) (2021)
- [Scaling-up Generalized Planning as Heuristic Search with Landmarks](https://mlsanity.com/paper/2205.04850/) (2022)
- [Learning General Policies from Small Examples Without Supervision](https://mlsanity.com/paper/2101.00692/) (2021)
- [Generalized Planning with Positive and Negative Examples](https://mlsanity.com/paper/1911.09365/) (2019)
- [Computing Programs for Generalized Planning as Heuristic Search](https://mlsanity.com/paper/2205.06259/) (2022)

## Built on by (most cited first, 1 of 1)

- [Novelty and Lifted Helpful Actions in Generalized Planning](https://mlsanity.com/paper/2307.00735/) (2023)

## Abstract (arXiv)

The paper introduces a novel representation for Generalized Planning (GP) problems, and their solutions, as C++ programs. Our C++ representation allows to formally proving the termination of generalized plans, and to specifying their asymptotic complexity w.r.t. the number of world objects. Characterizing the complexity of C++ generalized plans enables the application of a combinatorial search that enumerates the space of possible GP solutions in order of complexity. Experimental results show that our implementation of this approach, which we call BFGP++, outperforms the previous GP as heuristic search approach for the computation of generalized plans represented as compiler-styled programs. Last but not least, the execution of a C++ program on a classical planning instance is a deterministic grounding-free and search-free process, so our C++ representation allows us to automatically validate the computed solutions on large test instances of thousands of objects, where off-the-shelf classical planners get stuck either in the pre-processing or in the search.
