OptimizedDP: An Efficient, User-friendly Library For Optimal Control and Dynamic Programming
Minh Bui, Hanyang Hu, Chong He, Michael Lu, George Giovanis, Arrvindh Shriraman, Mo Chen
TL;DR
OptimizedDP tackles the exponential bottleneck of grid-based dynamic programming in control and robotics by delivering a high-performance Python toolbox with a HeteroCL-backed solver core. It supports time-dependent and time-independent Hamilton-Jacobi PDEs as well as discretized continuous-space MDP value iteration, combining level-set methods and Lax-Friedrichs sweeping to reach high-dimensional problems (up to 6–8 dimensions) efficiently. The framework emphasizes modular problem description, cache-aware parallel execution, and flexible visualization, delivering substantial speedups (order-of-magnitude in many cases) over existing toolboxes while maintaining a user-friendly interface. While not removing the curse of dimensionality, OptimizedDP provides a practical platform for generating ground-truth value functions and a staging ground for dimension-reduction and learning-based extensions, with public availability at the project repository.
Abstract
This paper introduces OptimizedDP, a high-performance software library for several common grid-based dynamic programming (DP) algorithms used in control theory and robotics. Specifically, OptimizedDP provides functions to numerically solve a class of time-dependent (dynamic) Hamilton-Jacobi (HJ) partial differential equations (PDEs), time-independent (static) HJ PDEs, and additionally value iteration for continuous action-state space Markov Decision Processes (MDP). The computational complexity of grid-based DP is exponential with respect to the number of grid or state space dimensions, and thus can have bad execution runtimes and memory usage whenapplied to large state spaces. We leverage the user-friendliness of Python for different problem specifications without sacrificing the efficiency of the core computation. This is achieved by implementing the core part of the code which the user does not see in heterocl, a framework we use to abstract away details of how computation is parallelized. Compared to similar toolboxes for level set methods that are used to solve the HJ PDE, our toolbox makes solving the PDE at higher dimensions possible as well as achieving an order of magnitude improvements in execution times, while keeping the interface easy for specifying different problem descriptions. Because of that, the toolbox has been adopted to solve control and optimization problems that were considered intractable before. Our toolbox is available publicly at https://github.com/SFU-MARS/optimized_dp.
