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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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