Installing the bilevel solver MibS with CPLEX
Table of Contents
MibS is an open-source solver for bilevel optimization.
The GitHub page explains how to install the default version, which comes with Symphony as the underlying solver. I show here how to install in with CPLEX.
Installing with CPLEX
First, get coinbrew. This is a tool that helps install all COIN-OR libraries.
wget https://raw.githubusercontent.com/coin-or/coinbrew/master/coinbrew
Then, download MibS with:
./coinbrew fetch MibS@1.2
Next, install MibS with the following options:
-
--with-cplex-incdir=should point to theincludedirectory of CPLEX. -
--with-cplex-lib=is used to pass linking options necessary for MibS to communicate with CPLEX. The-Lflag should point to the CPLEXlibdirectory. The flags-lmand-lpthreadadd libraries required by CPLEX. -
--disable-cplex-libcheck --tests=nonedisables unit testing. See this GitHub Discussion for details.
Putting it all together:
./coinbrew build MibS \
--with-cplex-incdir=/opt/ibm/ILOG/CPLEX_Studio2211/cplex/include/ilcplex/ \
--with-cplex-lib="-L/opt/ibm/ILOG/CPLEX_Studio2211/cplex/lib/x86-64_linux/static_pic/ -lcplex -lpthread -lm -ldl" \
--disable-cplex-libcheck --tests=none
For C++ users, you may want to add --enable-debug if you plan
to link directly against MibS and need debugging support.
The MibS executable is located at ./dist/bin/mibs. You can run it as follows:
./dist/bin/mibs \
-MibS_auxiliaryInfoFile /path/to/the/auxilary/file.aux \
-instance /path/to/the/mps/file.mps.gz \
-feasCheckSolver CPLEX
For more information, see the official documentation.
Henri Lefebvre