Gurobify is a GAP[GAP16] package which provides an interface to the optimisation software Gurobi[gur16d].
Gurobify can be obtained from the Gurobify homepage:
https://www.jesselansdown.com/Gurobify
Please use the issue tracker to inform me of any bugs or suggestions:
https://github.com/jesselansdown/Gurobify/issues
If Gurobify aids you in obtaining results that lead to a publication, please cite Gurobify as you would a paper. An example BibTeX entry for citing gurobify is given below. Check that the version number and doi correspond to the version that you used in your research. Please also send me an email informing me of the paper for my own interest!
@article{gurobify, Author = {Lansdown, Jesse}, Doi = {10.5281/zenodo.5025558}, Key = {gurobify}, Title = {{Gurobify -- A GAP interface to Gurobi Optimizer, Version 2.0.0}}, Url = {http://doi.org/10.5281/zenodo.5025558}, Year = 2021, }
Here is the entry in the APA style which may be used directly in the bibliography environment of your LaTeX document.
\bibitem[Lansdown(2021)]{gurobify} J.~Lansdown. \newblock {Gurobify -- A GAP interface to Gurobi Optimizer, Version 2.0.0}. \newblock 2021. \newblock \doi{10.5281/zenodo.5025558}. \newblock URL \url{http://doi.org/10.5281/zenodo.5025558}.
Gurobify requires the following software to be installed.
GAP 4.8 (or later)
Gurobi 7.0 (or later)
Autotools
Autotools may be installed on MacOSX using homebrew with the commands brew install autoconf and brew install automake. If you want to regenerate the documentation for any reason, then the following will also be required.
AutoDoc 2020.08.11 (or later)
GAPDoc 1.6.4 (or later)
Although Gurobi is proprietary software, it is available free for academic use. According to the Gurobi website,
"Gurobi makes most of our solvers available to recognized degree-granting academic institutions free of charge" [gur16b],
and
"The free Academic License for Gurobi has all the features and performance of the full Gurobi Optimizer. A free Academic License has no limits on model size. The only restrictions on the use of these licenses are:
They can only be used by faculty, students, or staff of a degree-granting academic institution
They can only be used for research or educational purposes
They must be validated from a recognized academic domain, as described below.
Note, free academic licenses expire twelve (12) months after the date on which your license was generated, but eligible faculty, students, or staff can renew a license by repeating the above process" [gur16a].
For up-to-date information on Gurobi licences, please refer to the Gurobi website. A link can be found in the Appendix, or through a simple search online.
To install Gurobify, first extract it in the pkg directory of the GAP installation directory. You may place Gurobify in a different location, so long as its parent directory is called "pkg". Installing Gurobify outside of the GAP root pkg directory is not recommended, but is useful for example when administrative privileges are needed to access the GAP root directory. Next run the following command in the terminal from within the Gurobify directory.
./install.sh -g <gurobi path> [-r <gap path>]
The ‐g <gurobi path> is a necessary argument, and normally looks something like this on MacOSX,
‐g /Library/gurobi701/mac64/
or something like this on Linux,
‐g /opt/gurobi701/linux64/
The [‐r <gap path>] is an optional argument, and is not normally necessary if Gurobify is placed in the pkg directory of the GAP root directory. If, however, Gurobify is located in a non-root pkg directory, then this argument must be included. It normally looks something like this,
‐r /opt/gap4r8/
To test the package is working correctly, run the following command from inside the Gurobify directory.
gap maketest.g
It transforms each of the examples in Chapter 4 "Examples" and the example given in Section 2.2 "Simple Example" into test cases to check that Gurobify is functioning correctly.
Within the Gurobify directory there is a subdirectory called "doc". This directory contains the documentaion for Gurobify in the form of a pdf file called "manual.pdf" as well as in html format. To access the html version of the manual, open the file called "chap0.html". The documentation can be regenerated by running the following command in the terminal from the Gurobify directory, though this should not be necessary.
gap makedoc.g
Regenerating the documentation will also automatically regenerate the "maketest.g" test file.
Open GAP and load Gurobify with the command LoadPackage("Gurobify");. You should see the following.
gap> LoadPackage("Gurobify"); ----------------------------------------------------------------------------- Loading Gurobify 2.0.0 (Gurobify provides an interface to Gurobi from GAP.) by Jesse Lansdown (www.jesselansdown.com). Homepage: https://www.jesselansdown.com/Gurobify/ Currently running Gurobi Optimizer 9.1.0 ----------------------------------------------------------------------------- true
Note that if you have Gurobify located somewhere other than the GAP root directory's pkg directory, then you must run GAP with the following command to enable GAP to find Gurobify.
gap -l ";/alternative/path/to/Gurobify"
where /alternative/path/to/Gurobify is the path to the directory which contains /pkg/Gurobify as subdirectories.
Please ensure that all dependencies are present, the correct paths have been used, and the correct versions of software are being used. There is also a section in the Appendix, "Troubleshooting The Installation", which deals with a number of issues people face when installing Gurobify, and suggests solutions.
generated by GAPDoc2HTML