Skip to main content

A modular framework for mixed integer programming.

Project description

Optiframe PyPI Version License

Optiframe is an optimization framework for writing mixed integer programs (MIPs).

It allows you to structure your MIPs in a way that allows clear separation of concerns, high modularity and testability.

Core Concepts

  • The optimization process is divided into multiple steps which are clearly separated:
    1. Validation allows you to validate the input data.
    2. Pre-processing allows you to optimize the provided data to reduce the size of the final model.
    3. MIP building allows you to modify the MIP to define the optimization problem.
    4. Solving is a pre-defined step that obtains an optimal solution for the problem.
    5. Solution extraction allows you to process the variable values of the solution into something more meaningful.
  • Tasks are the core components that allow you to implement functionality for each step.
    • The constructor of a task allows you to define dependencies for that task, which are automatically injected by the optimizer based on their type annotation.
    • The execute method allows you to implement the functionality. It may return data which can then be used by other tasks as a dependency.
  • Modules combine tasks that belong together. Each module must contain a task for building the MIP and can additionally contain tasks for validation, pre-processing and solution extraction. The modules are what makes Optiframe so extendable: You can define extensions of a problem in a separate module and only include it if needed.
  • The optimizer allows you to configure the packages that you need. Afterwards, you can initialize it with the instance data and then solve the optimization problem.

Installation & Usage

pip install optiframe

Take a look at the examples folder for examples on how to use Optiframe!

License

This project is available under the terms of the MIT license.

Project details


Download files

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

Source Distribution

optiframe-0.5.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

optiframe-0.5.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file optiframe-0.5.0.tar.gz.

File metadata

  • Download URL: optiframe-0.5.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/6.2.6-76060206-generic

File hashes

Hashes for optiframe-0.5.0.tar.gz
Algorithm Hash digest
SHA256 d42a7277ca7184017da7a8ca2d658f1e46f7b2de66c3ee8e1683e4cfde422a90
MD5 9c05390aef7e9caf9f900614ac4269de
BLAKE2b-256 dd8cb7b57f0debafcfff7b6adec22cfc696dc7e5fc983e554641b34b1a356a14

See more details on using hashes here.

File details

Details for the file optiframe-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: optiframe-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/6.2.6-76060206-generic

File hashes

Hashes for optiframe-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b345eb113182d1a698d36378f8212983da913cee72bee38fb303ada5a6b6b61b
MD5 5cd29bcc914ee4a91239f62b185babbf
BLAKE2b-256 6db418d3cfc81dbe88c9aa91146b10a37e816b58a3ed1434494fefddac8101b2

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