The solver "gurobi" uses Gurobi (a trademark of Gurobi Optimization, Inc.; see http://www.gurobi.com/) to solve integer, mixed-integer, and linear programming problems. Normally gurobi is invoked by AMPL's solve command, which gives the invocation gurobi stub -AMPL in which stub.nl is an AMPL generic output file (possibly written by "ampl -obstub" or "ampl -ogstub"). After solving the problem, gurobi writes a stub.sol file for use by ampl's solve and solution commands. When you run ampl, this all happens automatically if you give the AMPL commands option solver gurobi; solve; You can control gurobi by setting the environment variable gurobi_options appropriately (either by using ampl's option command, or by using the shell's set and export commands before you invoke ampl). You can put one or more (white-space separated) phrases in $gurobi_options. To see the possibilities, invoke gurobi '-=' ---------- INSTALLING ========== On Linux systems, libgurobi*.so (where the value of "*" depends on the current version of Gurobi) and the libgurobi.so.* to which it points need to appear in the current directory when gurobi itself appears there, or in one of the standard places (specified by /etc/ld.so.conf on some systems), or in a directory named in $LD_LIBRARY_PATH. An alternative is to add a short shell script, such as #!/bin/sh LD_LIBRARY_PATH=/usr/local/lib export LD_LIBRARY_PATH exec /usr/local/bin/gurobix "$@" to a directory in your usual $PATH (and mark the script executable with, e.g., "chmod +x gurobi"). The above script assumes that the true "gurobi" binary has been moved to /usr/local/bin/gurobix and that the libgurobi* files have been moved to /usr/local/lib. MacOSX systems are similar to Linux systems, but with DYLD_LIBRARY_PATH in place of LD_LIBRARY_PATH. Starting 20150225, gurobi binaries for MacOSX should find the appropriate libgurobi.so.* if it appears in the same directory as "gurobi". On MS Windows systems, gurobi.exe and the relevant gurobi*.dll must appear somewhere in your usual search $PATH (or in the current directory). AIX systems are similar to Linux systems, but with LIBPATH in place of LD_LIBRARY_PATH and libgurobbi*.a in place of libgurobi*.so*. ----------------------- solve_result_num values ======================= Here is a table of solve_result_num values that "gurobi" can return to an AMPL session, along with an indication of the text that appears in the associated solve_message. Value Message 0 optimal solution 1 optimal solution with integer variables rounded to integers 2 optimal solution with nonintegral "integer" variables 100 suboptimal: could not satisfy optimaliter tolerances 101 bestbndstop reached 102 bestobjstop reached 103 bestobjstop or bestbndstop reached 104 bestobjstop or bestbndstop reached with no solution available 200 infeasible [IIS computation not attempted] 201 infeasible [IIS returned] 202 infeasible [IIS finder failed] 203 infeasible; .dunbdd returned [IIS computation not attempted] 204 infeasible; .dunbdd returned [IIS also returned] 205 infeasible; .dunbdd returned [IIS finder failed] 300 unbounded 301 unbounded [unbounded or infeasible; IIS finder failed] 302 unbounded; .unbdd returned 303 unbounded; .unbdd returned [IIS finder failed] 400 objective cutoff 401 iteration limit with a feasible solution 402 node limit with a feasible solution 403 time limit with a feasible solution 404 solution limit 405 interrupted with a feasible solution 411 iteration limit without a feasible solution 412 node limit without a feasible solution 413 time limit without a feasible solution 415 interrupted without a feasible solution 500 Could not create the gurobi environment 501 Gurobi call failed [message gives routine name] 502 misc. failure [message gives details] 503 Bad $gurobi_options 504 Surprise VBasis[...] = ... 505 Surprise CBasis[...] = ... 506 Gurobi set/get parameter failed [message gives more details] 510 cannot open logfile (specified in $gurobi_options or command line) 511 cannot open paramfile (specified in $gurobi_options or command line) 512 missing value in paramfile 513 extra text in paramfile 514 invalid parameter name in paramfile 520 numeric error 521 nonlinear objective 522 nonlinear constraint 523 quadratic objective involving division by 0 524 indefinite quadratic objective or constraint 525 quadratic constraint involving division by 0 530 could not open serverlic file 531 error in serverlic file 532 error while tuning 540 Gurobi Compute Server not reached or bad pool_... settings 541 Rejected by Gurobi Compute Server 542 Feature not supported by Gurobi Compute Server 543 Feature not supported 563 logical constraint is not an indicator constraint 564 bad suffixes for multiple objectives 565 bug? Error return from named routine 567 complementarity constraint 570 solution found but not available (Gurobi bug?) 571 expected just one solution when problem has no integer variables 601 could not talk to Gurobi compute server 602 job rejected by Gurobi compute server 603 no license for specified gurobi compute server 604 surprise return while trying to use Gurobi compute server 605 bad value for cloudid or cloudkey, or Gurobi Cloud out of reach Values 521-524 only arise in Gurobi versions >= 4.0. Values 203-205 and 302-303 only arise in Gurobi versions >= 4.5. Values 530-531 and 601-603 only arise in Gurobi versions >= 5.5. Values 540-542 only arise in Gurobi versions >= 6.5. Value 605 only arises in Gurobi versions >= 7.0. ************************* If you have questions about or find bugs with this stuff, please contact: David M. Gay dmg@ampl.com