Homepage: https://www.jesselansdown.com/Gurobify/
Issue tracker: https://github.com/jesselansdown/Gurobify/issues
Homepage: http://gap-system.org/
Homepage: http://gurobi.com/
For more information on Gurobi parameters, attributes, and status codes, see the following links:
Attributes: http://www.gurobi.com/documentation/7.0/refman/attributes.html
Parameters: http://www.gurobi.com/documentation/7.0/refman/parameters.html
Status codes: https://www.gurobi.com/documentation/7.0/refman/optimization_status_codes.html
Licencing: http://www.gurobi.com/products/licensing-pricing/licensing-overview
The information in this section on optimisation status codes is taken directly from the Gurobi website[gur16c].
1 - Model is loaded, but no solution information is available.
2 - Model was solved to optimality (subject to tolerances), and an optimal solution is available.
3 - Model was proven to be infeasible.
4 - Model was proven to be either infeasible or unbounded. To obtain a more definitive conclusion, set the DualReductions parameter to 0 and reoptimize.
5 - Model was proven to be unbounded. Important note: an unbounded status indicates the presence of an unbounded ray that allows the objective to improve without limit. It says nothing about whether the model has a feasible solution. If you require information on feasibility, you should set the objective to zero and reoptimize.
6 - Optimal objective for model was proven to be worse than the value specified in the Cutoff parameter. No solution information is available.
7 - Optimization terminated because the total number of simplex iterations performed exceeded the value specified in the IterationLimit parameter, or because the total number of barrier iterations exceeded the value specified in the BarIterLimit parameter.
8 - Optimization terminated because the total number of branch-and-cut nodes explored exceeded the value specified in the NodeLimit parameter.
9 - Optimization terminated because the time expended exceeded the value specified in the TimeLimit parameter.
10 - Optimization terminated because the number of solutions found reached the value specified in the SolutionLimit parameter.
11 - Optimization was terminated by the user.
12 - Optimization was terminated due to unrecoverable numerical difficulties.
13 - Unable to satisfy optimality tolerances; a sub-optimal solution is available.
14 - An asynchronous optimization call was made, but the associated optimization run is not yet complete.
15 - User specified an objective limit (a bound on either the best objective or the best bound), and that limit has been reached.
Common sources of error during installation include:
Forgetting to run ./install.sh
Not having autotools installed. On a mac this can be done using brew, and checking all necessary dependencies are available with Brew Doctor.
Not putting the correct paths to Gurobi (or GAP if not in the default "pkg" directory) when running "configure". Sometimes the paths are correct but incomplete, eg missing "linux64" or "mac64" at the end. Compare with the example paths given in the installation section of the manual.
Having incorrect versions of GAP or Gurobi.
The compiler gives warnings when running "make"
This seems to be due to the way GAP stores integers, but it doesn't affect the function of the program. If no errors are given the installation is generally ok. Test the installation by loading Gurobify and running the test cases.
Compilation is successful, but GAP cannot load the package, giving an error such as:
gap> LoadPackage("Gurobify"); #W dlopen() error: libgurobi70.so: cannot open shared\ object file: No such file or directory Error, module '/home/linux/gap4r8/pkg/Gurobify/bin\ /x86_64-pc-linux-gnu-gcc-default64/Gurobify.so'
This is caused by GAP not being able to find the Gurobi binary. When installing Gurobify, you were required to enter the path to Gurobi in the configure stage. If this path is "gurobi_path", then navigate to "gurobi_path/lib" in the terminal. You should now be able to load Gurobify when running GAP from this location. It can be fixed by running the following:
LD_LIBRARY_PATH=gurobi_path/lib:$LD_LIBRARY_PATH
where "gurobi_path/lib" is as above. This will only be valid for the current session, to make this change permanent the line must be added to the .bash_profile file.
Compilation is successful, but GAP cannot load Gurobify, giving an error such as:
gap> LoadPackage("Gurobify"); dyld: lazy symbol binding failed: Symbol not found: _RegisterPackageTNUM Referenced from: /usr/local/lib/gap4r7/pkg/Gurobify-1.1.0/bin\ /x86_64-apple-darwin14.3.0-gcc-default64/Gurobify.so Expected in: flat namespace
Gurobify requires GAP version 4.8 or higher.
Gurobify will not compile, giving an error such as:
src/Gurobify.c:12:10: fatal error: 'gurobi_c.h' file not found
Check that you have entered the correct path for Gurobi during installation.
Gap gives an error like the following when trying to load Gurobify:
gap> LoadPackage("Gurobify"); Error, Error: failed to create new environment. in if not LOAD_DYN( arg[1], false ) then Error( "no support for dynamic loading" ); fi; at /usr/local/lib/gap-4.10.0/lib/files.gd:583 called from <function "LoadDynamicModule">( <arguments> ) called from read-eval loop at /usr/local/lib/gap-4.10.0/pkg/Gurobify/init.g:8 type 'quit;' to quit to outer loop
Check that Gurobi's licese is up-to-date.
Shown below is the LP file, "test.lp", written during the simple example in Section 1.
\ Model created with Gurobify - A GAP interface to Gurobi Optimizer. \ LP format - for model browsing. Use MPS format to capture full model detail. Minimize x + 2 y + z Subject To UnNamedConstraint: 2 x + 2 y + 2 z <= 6 UnNamedConstraint: x + 2 y + 3 z >= 5 UnNamedConstraint: 2 x + 2 y + 2 z <= 6 UnNamedConstraint: x + 2 y + 3 z >= 5 Bounds Binaries x y z End
generated by GAPDoc2HTML