Domain-Independent Dynamic Programming (DIDP)
Domain-Independent Dynamic Programming (DIDP) is a novel model-based paradigm for combinatorial optimization based on dynamic programming (DP). In DIDP, once you formulate your problem as a DP model, you can use generic solvers to solve the model, just as in mixed-integer programming (MIP) and constraint programming (CP). DIDP shows superior performance to MIP and CP in a number of combinatorial optimization problems including vehicle routing problems (VRPs), packing problems, and scheduling problems (see our papers for detailed evaluations).
Software
Our framework is publicly available as open-source software under the MIT/Apache-2.0 license (free for commercial use!). To get started, we recommend using DIDPPy.
- DIDPPy: Python interface for DIDP. You can formulate DP models and solve them with generic solvers using Python. You do not need to install the other libraries individually.
- didp-yaml: Command line executable for DIDP taking YAML files as input. You can formulate DP models and write configurations of a solver in the YAML data format and pass them to the executable. You do not need to install the other libraries individually.
- dypdl: Rust library for DP modeling.
- dypdl-heuristic-search: Rust library for heuristic search based generic DP solvers.
All of the above software are managed on our GitHub repository.
Modeling in DIDP
We use Dynamic Programming Description Language (DyPDL) as a modeling formalism for DIDP, which is based on state transition systems. While it is named “Language”, DyPDL is independent from particular programming languages or data formats, and we provide Python, Rust, and YAML interfaces for it.
Solvers for DIDP
Currently, our generic DIDP solvers are based on heuristic search such as A* and beam search, inspired by AI planning.
Papers
- Ryo Kuroiwa and J. Christopher Beck. Domain-Independent Dynamic Programming: Generic State Space Search for Combinatorial Optimization. In Proceedings of the 33rd International Conference on Automated Planning and Scheduling (ICAPS). 2023. slides poster
- This paper introduces the notion of DIDP with the modeling language DyPDL and the generic solver CAASDy with the experimental evaluation using 6 combinatorial optimization problems.
- Ryo Kuroiwa and J. Christopher Beck. Solving Domain-Independent Dynamic Programming Problems with Anytime Heuristic Search. In Proceedings of the 33rd International Conference on Automated Planning and Scheduling (ICAPS). 2023. slides
- This paper proposes 6 anytime solvers for DIDP with the experimental evaluation using 9 combinatorial optimization problems.
- Ryo Kuroiwa and J. Christopher Beck. Large Neighborhood Beam Search for Domain-Independent Dynamic Programming. In Proceedings of the 29th International Conference on Principles and Practice of Constraint Programming (CP). 2023. slides poster
- This paper proposes a large neighborhood search framework for DIDP based on beam search.
Papers using DIDP
- Arnoosh Golestanian, Giovanni Lo Bianco, Chengyu Tao, and J. Christopher Beck. Optimization Models for Pickup and Delivery Problems with Reconfigurable Capacities. In Proceedings of the 29th International Conference on Principles and Practice of Constraint Programming (CP). 2023.
- DIDP beats MIP and CP in a pickup and delivery problem with complicated capacity constraints inspired by a real-world application.
Presentations
- Introduction to DIDP presented at the DPSOLVE workshop at CP 2023
Contact Information
Ryo Kuroiwa (ryo.kuroiwa [at] mail.utoronto.ca)