Python Parametric OPtimization Toolbox (PPOPT) is a software platform for solving and manipulating multiparametric programs in Python.
Currently, PPOPT requires Python 3.7 or higher and can be installed with the following commands.
pip install -e git+https://github.com/mmihaltz/pysettrie.git#egg=pysettrie
pip install ppoptTo install PPOPT and install all optional solvers the following installation is recommended.
pip install -e git+https://github.com/mmihaltz/pysettrie.git#egg=pysettrie
pip install ppopt[optional]- Solver interface for mpLPs and mpQPs with the following algorithms
- Serial and Parallel Combinatorial Algorithm
- Serial and Parallel Geometrical Algorithm
- Serial and Parallel Graph based Algorithm
- Solver interface for mpMILPs and mpMIQPs with the following algorithms
- Enumeration based algorithm
- Multiparametric solution export to C++, JavaScript, and Python
- Plotting utilities
- Presolver and Conditioning for Multiparametric Programs
- Explicit Model Predictive Control
- Multilevel Optimization
- Integrated Design, Control, and Scheduling
- Robust Optimization
For more information about Multiparametric programming and it's applications, this paper is a good jumping point.
To give a fast primer of what we are doing, we are solving multiparametric programming problems (fast) by writting parallel algorithms efficently. Here is a quick scaleing analysis on a large multiparametric program with the combinatorial algorithm.
Here is a benchmark against the state of the art multiparametric programming solvers. All tests run on the Terra Supercomputer at Texas A&M University. Matlab 2021b was used for solvers written in matlab and Python 3.8 was used for PPOPT.


