Skip to main content

Extensible Multiparametric Solver in Python

Project description

PPOPT

Python package Documentation Status PyPI Downloads Codacy Badge

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 ppopt

To install PPOPT and install all optional solvers the following installation is recommended.

pip install ppopt[optional]

In Python 3.11 and beyond there is currently an error with the quadprog package. An alternate version that fixed this error can be installed here.

pip install git+https://github.com/HKaras/quadprog/

Completed Features

  • Solver interface for mpLPs and mpQPs with the following algorithms
    1. Serial and Parallel Combinatorial Algorithms
    2. Serial and Parallel Geometrical Algorithms
    3. Serial and Parallel Graph based Algorithms
  • Solver interface for mpMILPs and mpMIQPs with the following algorithms
    1. 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 writing parallel algorithms efficiently. Here is a quick scaling analysis on a large multiparametric program with the combinatorial algorithm.

image image

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.

image

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

ppopt-1.6.10-py3-none-any.whl (96.5 kB view details)

Uploaded Python 3

File details

Details for the file ppopt-1.6.10-py3-none-any.whl.

File metadata

  • Download URL: ppopt-1.6.10-py3-none-any.whl
  • Upload date:
  • Size: 96.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for ppopt-1.6.10-py3-none-any.whl
Algorithm Hash digest
SHA256 27dec9bcce6de208afaf6304cd42e9b1083eb30c8f65e24b9dd6a67bb8def769
MD5 0040a9a75a891e3ab42912107d626a9d
BLAKE2b-256 cbe8bd87f7cd047e179fba10ba163f2e9646dabe9cbf8c6aed424e5d6231c6bb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page