momilp
Solver for a class of Multi-objective Mixed Integer Linear Programs (MOMILPs)
Programming language
This project is implemented in Python 3.
Setup the environment
After cloning the code, make sure you are in the root directory of the repo and follow these steps:
python3 -m venv momilp_venv
source momilp_venv/bin/activate
export PYTHONPATH="${PYTHONPATH}:."
Install the dependencies
pip install -r requirements.txt
Run help to see the usage of the command line app
python ./src/apps/momilp_solver --help
Instances
TOMILP:
Three-objective mixed-integer programming problem instances in the .lp
file format. Subfolder names indicate the number of constraints and the number of integer variables. Each instance has equal number of continuous and integer variables.
For example, in subfolder 10
, instances contain 10 linear constraints with 5 continuous and 5 integer variables.
- Instances under
I1
folder contain instances withone
discrete-valued objective. - Instances under
B1
folder contain instances withone
discrete-valued objective and all integer variables are binary. - Instances under
B2
folder contain instances withtwo
discrete-valued objective and all integer variables are binary.
BOMBLP:
Bi-objective mixed-binary linear programming instances used in Boland et al. (2015)
that are converted to their corresponding .lp
file formats.
@article{boland2015boilp,
title={A criterion space search algorithm for biobjective integer programming: The balanced box method},
author={Boland, Natashia and Charkhgard, Hadi and Savelsbergh, Martin},
journal={INFORMS Journal on Computing},
volume={27},
number={4},
pages={735--754},
year={2015},
publisher={INFORMS}
}
Subfolder names indicate the number of constraints and
the number of binary variables. Each instance has equal number of continuous and binary variables. For example, subfolder 20
contain 20 linear constraints with 10 continuous and 10 binary variables.
TOKP:
Three-objective 0/1 single knapsack problems provided in Kirlik (2014)
that are converted to their corresponding .lp
file formats.
@misc{kslib,
author = {Kirlik, Gokhan},
title = {{Test instances for multi-objective discrete optimization problems}},
howpublished = {\url{http://home.ku.edu.tr/~moolibrary/}},
note = {Online; accessed 13 June 2021},
year = {2014}
}
Subfolder names indicate the number of items in the knapsack. The instances under 10_alternative_efficient_sols
contain
modified versions of 10-item instances that lead to efficient integer vectors.
examples:
Contain .lp
files for the examples provided in the manuscript.
Example usage for momilp solver
In order to run the solver, a valid Gurobi
installation is required.
python ./src/apps/momilp_solver -d '0' -m ./instances/TOMILP/O3-C10/B1/ -s gurobi -w ~/Downloads
python ./src/apps/momilp_solver -d '0, 1' -m ./instances/TOMILP/O3-C10/B2/ -s gurobi -w ~/Downloads
python ./src/apps/momilp_solver -d '0, 1, 2' -m ./instances/TOKP/10 -s gurobi -w ~/Downloads