A meta-planning engine for automatic parameter configuration
Use algorithm configuration on several planners within the unified planning framework to enhance their performance.
Automated algorithm configuration is a method to optimize parameterized algorithms performance regarding a given measurable value. In planning, for example, the runtime until a plan is found or the quality of a plan can be improved by configuring the planning algorithm.
The AIPlan4EU project developed a Unified Planning (UP) library to simplify the use and interfacing of various kinds of planning techniques. This asset encompasses the code needed to connect several planning engines with several automated Algorithm Configuration (AC) tools and enables the integration of further AC tools.
Our meta-planning engine for AC is implemented in the form of a generic interface and written in Python. The interface enables UPF to connect to external AC methods. In this project, we focussed on three leading AC technologies: OAT [1] (written in C#), SMAC [2] (written in Python), and irace [3] (written in R). All three methods have already reached TRL 9, are released under open source licenses and work on Windows, Linux and MacOS. Several planning engines available in the UPF are integrated and can be configured using the technologies mentioned before. The generic functionalities can be used to integrate further algorithm configuration technologies, as well as further planning engines.
Algorithm Configuration Tools
- OPTANO GmbH. OPTANO Algorithm Tuner Documentation. OAT Documentation. Accessed: 2023-01-30
- Lindauer, M.T., Eggensperger, K., Feurer, M., Biedenkapp, A., Deng, D., Benjamins, C., Sass, R., Hutter, F.: Smac3: A versatile bayesian optimization package for hyperparameter optimization. Journal of Machine Learning Research 23, 54-1549 (2022).
- López-Ilbáñez, M., Dubois-Lacoste, J., Stützle, T., Birattari, M.: The irace package: Iterated racing for automatic AC. Operations Research Perspectives, 23-58 (2016).
Currently Integrated Planning Engines
- LPG
- Fast-Downward
- EnhSP
- tamer
- pyperplan
Docmentation
You can find more details here: Documentation
Usage
Try it out here: Tutorial