Exact linear programming solver. This is a fork of QSopt_ex, originally released by Daniel Espinoza et al. version 2.5.10 under the GPL 3 (or later). The authors of QSopt_ex also granted a free license to use the software for research purposes but this license does not extend to the changes introduced by this project.
The goal of this fork is to update the software, and in particular the build system, to be more friendly. In addition the external dependencies have been reduced by removing the dependency on EGlib, GNU awk and Exuberant Ctags.
- C compiler: Tested with GCC and Clang.
- Libtool: To build QSopt_ex as a library.
- GNU MP: Tested with 6.0.0. The original authors
stated that QSopt_ex was tested with the 4.x.x and with 5.0.x version
series. The authors also noted that GNU MP should be compiled using option
--enable-alloca=malloc-reentrantbut this does not seem to be required anymore.
- libz: To read/write gz-compresed files.
- libbz2 To read/write bz2-compresed files.
If you have just cloned the source code with Git, run the
script to automatically set up the build system.
This script calls
libtoolize with the proper
arguments. This will also regenerate the
configure script. It is
recommended to build out of source directory. This is simply done
configure from an empty directory.
$ mkdir build && cd build $ ../configure
./configure --help to see available options. Now the test
programs and library can be compiled using
make. It is possible
to do a parallel build using the
-jX switch where
X is the number
of parallel processes.
$ make -j4
To install the libraries and executables run
$ make install
This will install into the prefix specified when
configure was run.
Running the solver
The exact solver is available though the
esolver executable. It can be
invoked to solve an LP or MPS format problem.
$ ./esolver cycle.mps
./esolver -h for more information on command line options.
Using it as a library
The Python module has moved to a separate repository at jonls/python-qsoptex.