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.
Citation
Since a lot of time and effort has gone into PPOPT's development, please cite the following publication if you are using PPOPT for your own research.
@incollection{kenefake2022ppopt,
title={PPOPT-Multiparametric Solver for Explicit MPC},
author={Kenefake, Dustin and Pistikopoulos, Efstratios N},
booktitle={Computer Aided Chemical Engineering},
volume={51},
pages={1273--1278},
year={2022},
publisher={Elsevier}
}
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.