Skip to main content

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}
}

Metadata

Release files for ppopt 1.6.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for ppopt 1.6.12
File Interpreter ABI Platform
ppopt-1.6.12-py3-none-any.whl Python 3 none any Details

Release files / ppopt-1.6.12-py3-none-any.whl

Download URL ppopt-1.6.12-py3-none-any.whl
Size 96.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
30d3feba883e81dd89b60f497335a291651cf867057b47ac446fe237777b2160
BLAKE2b-256 checksum
How to use checksums
e80260a3633e10d72a3f5c81689d46b30f2513fb5c503a2dab1b73dcb9649852
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release history Release notifications | RSS feed

This release

1.6.12 This release

1 release file

1.6.11

1 release file

1.6.10

1 release file

1.6.9

1 release file

1.6.8

1 release file

1.6.7

1 release file

1.6.6

1 release file

1.6.5

1 release file

1.6.4

1 release file

1.6.3

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.0

2 release files

1.3.0

1 release file

1.2.0

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page