Updated to Gurobi libraries 10.0.3, which include many bugfixes.
mp_options. Receive mp_options from AMPL (for all MP solvers). They are parsed before (solvername)_options.
Solution checking: relative tolerance sol:chk:feastolrel; options sol:chk:round, sol:chk:prec.
Solution checking, options sol:chk:* (experimental).
Preprocess And/Or constraints.
Alternative solutions: solve status equal to that of the final solution.
Fixed a bug causing repeated names for auxiliary variables and constraints.
Option values can be assigned without ‘=’.
Fixed a bug where equivalent conditional comparisons were not unified.
Option ‘tech:writesolution’ #218
Option ‘writeprob’ (‘tech:writemodel’) ASL-compatible
Fixed inequalities of integer expressions with non-integer constants, see test_int_non_int.mod.
Option ‘writesol=filename’ to export solutions/results.
Option [solver_]auxfiles rc; transfers names of variables and constraints into the model; (solver)_options ‘cvt:names=0-3’ controls names.
Updated to Gurobi libraries 10.0.2, which include many bugfixes.
Fix quadratic objective with repeated subexpressions.
Changes in MP.
Wrong solver options are gracefully reported via solve_message.
Added option ‘lim:sol’ to set a limit on the number of solutions found
Fixed partial MIP start.
Fixed the outlev option.
Recognition of second-order conic constraints from algebraic representations and conversion into quadratic constraints; Gurobi appears to recognize second-order cones from quadratics.
Changes in the MP library.
Relinked with Gurobi version 10.0.1, which includes many bugfixes
Changed behaviour of ‘tech:logfile’, which no longer implies ‘tech:outlev=1’. Specifying a logfile will enable gurobi’s full log to file only; to obtain both console and log output, set also ‘tech:outlev=1’.
Changes in MP
Fixed #195: shorter error message for missing NonConvex=2 option
Bug fixes in MP
Changes in MP: added the ==> else operator Implemented implication with ‘else’: constr1 ==> constr2 [else constr3]
Changes in MP: PLApproxRelTol, PLApproxDomain Parameters to control piecewise-linear approximation. cvt:plapprox:reltol default value changed from 1e-5 to 0.01.
Gurobi 10.0 support Options ‘lim:mem’, ‘lim:softmem’, ‘mip:obbt’ and ‘alg:networkalg’ Added option tech:writepresolvedprob to export the presolved model
Released the new MP-based Gurobi driver The new driver becomes the default (and is named just ‘gurobi’)
Piecewise-linear approximation of quadratics For Gurobi, non-default. To use, set the options cvt:quadobj=0 cvt:quadcon=0. Recognizing x^2 for stronger univariate approximation
Changes in MP: piecewise-linear approximations of nonlinear functions, default value of big-M
For range constraints x-gurobi reports nonbasic status low/upp, for one-sided constraints low/upp/equ, consistent with ASL drivers
Sensitivity analysis: use constraint suffixes .sens(lb/ub)(lo/hi), the old-style suffixes .sensrhs(lo/hi) meaningful only for one-sided constraints.
Suffixes .iis(lb/ub)force on constraints and variables
Added support for ‘params’ option from command line and environment variable
Changes in MP fixed suffixes export on Windows and multiple solutions handling
Options ‘funcpieces’, ‘funcpiecelength’, ‘funcpieceratio’, ‘funcpieceerror’ The above options (and corresponding suffixes) are passed to Gurobi. The suffixes can specialize the values for individual constraints.
Subexpressions: note that if a subexpression is contained in several constraints, for contradicting suffix values the maximum is taken.
Relinked with Gurobi 9.5.2, which contains bug fixes
Complementarity constraints: also quadratics Complementarity constraints now handle quadratics.
Branch develop is used for new code The active development branch is now develop.
Convert quadratic range constraints to QuadCon(LE/EQ/GE) Gurobi does not support quadratic range constraints. Conversion of linear range constraints into one-side rhs constraints has been generalized for any algebraic ones.
Linear complementarity in MP: 1st go
Other changes in MP
Fix strict comparison tolerance Option cvt:mip:eps, default 1e-3.
Assume new constraints are active (#152): Gurobi requires a complete basis for hotstart and we have to guess the statuses of new variables and constraints.
Allowing SOS constraints with repeated weights (#163): Although Gurobi states SOS weights should be unique, it accepts them repeated. This happens when AMPL linearizes a PL function with redundant (repeated) slopes. It seems better to use PL functions natively (option pl_linearize 0;).
Native handling of abs, min/max, and/or, and indicators by default: For the general constraints abs, min/max, and/or, Gurobi 9.5 seems to use tight MIP reformulations, matching the performance of MIPConverter redfinitions. In contrast, indicator constraints behave differently to MIP reformulations (accessible by acc:ind_..=1): better primal and worse dual bounds. Setting acc:* = 2 as default (native handling).
Basis status low/upp/sup for new variables: when new variables are added, AMPL assigns .sstatus none while Gurobi 9.5 needs a complete basis so we automatically set Gurobi var status to low/upp/sup depending on where 0.0 is relative to the bounds.
First eXperimental release, linked with Gurobi 9.5.