mmrbipy: A solver for the min-max regret binary integer programming problem (MMR-BIP)
Project description
mmrbipy: A solver for the min-max regret binary integer programming problem (MMR-BIP)
Installation
In a virtual environment with Python 3.6+, mmrbipy can be installed via
pip install mmrbipy
Using mmrbipy
With a compatible instance file, mmrbipy solves the MMR-BIP from a Python script:
from mmrbipy import Model
# Generate a model from instance file
mod = Model(problem='kp', filename='../instance/KP/1-70-01-45-20')
# Solve by iDS algorithm with best-scenario constraints
mod.solve(algorithm='ids-b', timelimit=100)
# Print results
print("objective value: {}".format(mod.objval))
print("time to best: {:.2f}".format(mod.ttb))
# Write the results to file
mod.write("result.txt")
Model
To solve the MMR-BIP, mmrbipy provides five types of instance format:
- min-max binary integer programming problem (bip)
- min-max regret knapsack problem (kp)
- min-max regret multidimensional knapsack problem (mkp)
- min-max regret set covering problem (scp)
- min-max regret generalized assignment problem (gap)
See instance page for the details of each type
Set problem type in constructor of Model class
# Generate a model from instance file
mod = Model(problem='kp', filename='../instance/KP/1-70-01-45-20')
Note: Benchmark instances for
- min-max regret knapsack problem
- min-max regret multidimensional knapsack problem
- min-max regret set covering problem
- min-max regret generalized assignment problem
are available in the instance
directory on the project's homepage. For easy access to the example files, we recommend cloning the repository.
Algorithm
To solve the MMR-BIP, mmrbipy provides the following algorithms:
- fixed scenario algorithm (fix);
- Benders-like decomposition algorithm (bd);
- branch-and-cut algorithm with Benders cuts (bc);
- dual substitution algorithm (ds);
- iterated dual substitution algorithm with best-scenario constraints (ids-b);
- iterated dual substitution algorithm with Hamming-distance constraints (ids-h);
- branch-and-cut algorithm for dual substitution model with best-scenario constraints (bcds-b);
- branch-and-cut algorithm for dual substitution model with Hamming-distance constraints (bcds-h).
Set algorithm type in solve function
# Solve by iDS algorithm with best-scenario constraints
mod.solve(algorithm='ids-b', timelimit=100)
Note: The implement are based on gurobypy.
Additional information
For more information about the algorithms used in the solver, see Wu et al. (2022).
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.
Source Distribution
Built Distribution
File details
Details for the file mmrbipy-1.1.2.tar.gz
.
File metadata
- Download URL: mmrbipy-1.1.2.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cd3e8ac1f4e0af040cfd136094692b54ae99dc541e18b09aeda21c46f7fb685 |
|
MD5 | e3573eb1f962c6bd3cf16cf08e97d9a1 |
|
BLAKE2b-256 | 8c7ec90906dc70e20d37a3d47c7e04a5b4ee22ed7507071e327af75618df630e |
File details
Details for the file mmrbipy-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: mmrbipy-1.1.2-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57b5628968571ba2d7a5e5e2ccc291b87edc220712cabae735ba34ed753e27e1 |
|
MD5 | c7d8d5e2446182da412c0d2bdb7427fb |
|
BLAKE2b-256 | 525b88566d873114659acb7936d74bc06e50075509c2a7816ce0325c03c2063a |