Extensible Multiparametric Solver in Python
Project description
PPOPT
Python Parametric OPtimization Toolbox (PPOPT) is a software platform for solving and manipulating multiparametric programs in Python.
Installation
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 ppopt
To 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]
Completed Features
- 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
Key Applications
- 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.
Quick Overview
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.