

35.1.0 Major release (April 29, 2021)
Acknowledgments
We would like to thank all of our users who have reported problems and made suggestions for improving this release. In particular, we thank Matthew Adams, Jürgen Apfelbeck, Wolfgang Britz, Yacine Gaoua, Carolin Kellenbrink, Masoud Javadi, Bruce McCarl, Scott McDonald, Will Raymond, Tom Rutherford, Sebastian Spieker, and Kirk A. Yost.
Platforms
macOS 11 (on Intel CPUs) has been added to the list of supported Mac OS X versions.
GAMS System
GAMS
Added new dollar control options gdxLoad and gdxUnload to load and unload symbols from and to GDX files in a single instruction at compile time.
Print an extra log line for echo dollar control options $echo, $echoN, and $onEcho, which write to an external file. When running GAMS from one of the GAMS IDEs, this log line can be clicked to open the file created.
Extended the report generated by dmpSym and dmpUserSym to include another column reporting a memory estimate for each set, parameter, variable, and equation.
Removed the columns DIMOK, ACCESS, SPECVAL, EXTERN, TABLE, DOMAIN, and LAGLEAD from the report generated by dmpUserSym. This information is very technical and mostly of internal interest. These columns are still available with dmpSym.
The status of MultiThreading for the Grid and MultiThreading Solve Facility has been changed from beta to released and fully supported.
Fixed that the stars option was ignored for some messages in the output file.
Fixed a problem that causes default records in the data statement or when loaded from GDX (see $load) being ignored with implicit set definition. So with
Set i;
Parameter p(i<) / i0 0, i1 1, i2 2 /;
only i1 and i2 made it into i. Now, i0 is added as well.
Fixed a problem, where $onDotL and $onDotScale were ignored in put statements.
Fixed a problem, where $onDelim was applied incorrectly to display and option statements.
Fixed a problem, where $onSymXRef and $onUElXRef were ignored when there were too many references.
Fixed and extended the behavior of $eval: If a GAMS function was hidden by a user defined symbol, $eval ignored the latter. This has been changed. Now, the GAMS function needs to be prefixed with system. to be accessed in this case. An example for this behavior is given here.
Fixed a potential problem when doing a filtered load of symbols with domain violations through EmbeddedCode.
Fixed an unwanted compilation error that happened if $onExternalInput or $onExternalOutput were used on the same line and after $if.
Fixed a problem where dumpOpt in combination with $onVerbatim skipped a leading substitution character in an $ifThen block.
Solvers
AlphaECP
New version 2.11.01.
New options:
ECPtoltype: AlphaECP termination criterion.
MIPoptcrlimtype: Strategy to increase MIPoptcrlim.
MIPoptimaliter: MIP is solved to optimality with this frequency.
TOLoptcr: Relative termination tolerance for MINLP.
Minor bugfixes.
For more information, see the release paper.
ANTIGONE, IPOPT, SHOT, SCIP
Updated Intel MKL to version 2021.2.0 on Linux and Mac OS X.
BARON
The NLP solver selected with option extNLPSolver is used in case NLPSol is set to 1 or 6 (and AllowExternal is 1). In the previous releases Conopt was used with NLPSol value 1.
BONMIN
Fixed an issue where a problem with SOS constraints was rejected due to falsely detected negative variable bounds.
CONOPT
New libraries for CONOPT3: 3.17K
Fixed perturbations of the Jacobian for external equations where 2nd order derivatives are not available.
Fixed an issue resulting in insufficient CONOPT3 memory.
Fixed an issue with multithreading in CONOPT 4.
CPLEX
New libraries 20.1.0.1.
Added option usercallparmfile: Commandline parameter include file used in GAMS commandline calls triggered by BCH.
Fixed incorrect reporting of infeasible solutions of the unrelaxed model in feasopt mode.
Fixed incorrect variable matching for options objnreltol and objnabstol.
Fixed parsing of individual objective functions for multiobjective optimization (any ordering of equation definitions is allowed now).
GAMSCHK
Fix problem with handling of row/column patterns introduced in GAMS 34.3.
GUROBI
New libraries 9.1.2.
Added possibility to write a single GDX file with the solution pool (see solnpoolmerge).
Added the following options:
solnpoolmerge: Enable merged solution pool GDX.
solnpoolnumsym: Number of variable symbols in merged solution pool GDX.
solnpoolprefix: Prefix for variable symbols in merged solution pool GDX.
miptrace: Filename of MIP trace file (formerly hidden and undocumented).
miptracenode: Node interval when a trace record is written (formerly hidden and undocumented).
miptracetime: Time interval when a trace record is written (formerly hidden and undocumented).
Fixed incorrectly processed (hidden) options isvname and appname.
GUSS/Scenario Solver
Measure time internally rather then relying on solvers' reported resUsd to determine the overall running time.
KNITRO
New GAMS/Knitro link using the KN interface.
Enabled the possibility to use solvelink = 5 on Linux (other platforms were already enabled).
Added support of variable and equation scaling.
Added options:
names: Enable to pass variable and equation names to Knitro.
blasoptionlib: Specifies a dynamic library name that contains object code for BLAS/LAPACK functions.
bndrange: Specifies max limits on the magnitude of constraint and variable bounds.
cg_pmem: Specifies the amount of nonzero elements per column of the Hessian of the Lagrangian which are retained when computing the incomplete Cholesky preconditioner.
cg_precond: Specifies whether an incomplete Cholesky preconditioner is applied during CG iterations in barrier algorithms.
cg_stoptol: Specifies the relative stopping tolerance used for the conjugate gradient (CG) subproblem solves.
convex: Declare the problem as convex by setting to 1 or nonconvex by setting to 0.
cpuplatform: Specify the target instruction set architecture.
initpenalty: Specifies the initial penalty parameter used in the Knitro merit functions.
linesearch: Indicates which linesearch strategy to use for the Interior/Direct or SQP algorithm to search for a new acceptable iterate.
newpoint: Specifies additional action to take after every iteration in a solve of a continuous problem.
presolve_level: Set the level of presolve operations to enable through the Knitro presolver.
presolve_initpt: Control whether the Knitro presolver can shift a usersupplied initial point.
presolve_passes: Set a maximum limit on the number of passes through the Knitro presolve operations.
presolveop_tighten: Determine whether or not to enable the Knitro presolve operation to tighten variable bounds.
restarts: Specifies whether or not to enable automatic restarts in Knitro.
restarts_maxit: When restarts are enabled, this option can be used to specify a maximum number of iterations before enforcing a restart.
strat_warm_start: Specifies whether or not to invoke a warmstart strategy.
findiff_relstepsize: Specifies the relative stepsize used for finitedifference gradients.
findiff_terminate: Specifies the termination criteria when using finitedifference gradients.
infeastol_iters: The optimization process will terminate if the relative change in the feasibility error is less than infeastol for infeastol_iters consecutive infeasible iterations.
xtol_iters: The optimization process will terminate if the relative change in all components of the solution point estimate is less than xtol for xtol_iters.
bar_conic_enable: Enable special treatments for conic constraints when using the Interior/Direct algorithm (has no affect when using the Interior/CG algorithm).
bar_initpi_mpec: Specifies the initial value for the MPEC penalty parameter used when solving problems with complementarity constraints using the barrier algorithms.
bar_linsys: Indicates which linear system form is used inside the Interior/Direct algorithm for computing primaldual steps.
bar_maxcorrectors: Specifies the maximum number of corrector steps allowed for primaldual steps.
bar_slackboundpush: Specifies the amount by which the barrier slack variables are initially pushed inside the bounds.
bar_switchobj: Indicates which objective function to use when the barrier algorithms switch to a pure feasibility phase.
act_lpfeastol: Specifies the feasibility tolerance used for linear programming subproblems solved when using the Active Set or SQP algorithms.
act_lppenalty: Indicates whether to use a penalty formulation for linear programming subproblems in the Knitro Active Set or SQP algorithms.
act_lppresolve: Indicates whether to apply a presolve for linear programming subproblems in the Knitro Active Set or SQP algorithms.
act_parametric: Indicates whether to use a parametric approach when solving linear programming (LP) subproblems when using the Knitro Active Set or SQP algorithms.
act_qppenalty: Indicates whether to use a penalty formulation for quadratic programming subproblems in the Knitro SQP algorithm.
mip_clique: Specifies rules for adding clique cuts.
mip_cutfactor: This value specifies a limit on the number of cuts added to a node subproblem.
mip_heuristic_terminate: Specifies the condition for terminating the MIP heuristic.
mip_intvar_strategy: Specifies how to handle integer variables.
mip_mir: Specifies rules for adding mixed integer rounding cuts.
mip_selectdir: Specifies the MIP node selection direction rule (for tiebreakers) for choosing the next node in the branch and bound tree.
mip_zerohalf: Specifies rules for adding zerohalf cuts.
ma_outsub: Enable writing algorithm output to files for the multialgorithm (algorithm=5) procedure.
ms_num_to_save: Specifies the number of distinct feasible points to save in a file named knitro_mspoints.
ms_outsub: Enable writing algorithm output to files for the parallel multistart procedure.
ms_savetol: Specifies the tolerance for deciding if two feasible points are distinct.
par_msnumthreads: Specify the number of threads to use for multistart (when ms_enable = 1).
out_csvinfo: Controls whether or not to generates a file knitro_solve.
out_csvname: Use to specify a custom csv filename when using out_csvinfo.
out_hints: Specifies whether to print diagnostic hints (e.g. about user option settings) after solving.
outappend: Specifies whether output should be started in a new file, or appended to existing files.
outdir: Specifies a single directory as the location to write all output files.
outmode: Specifies where to direct the output from Knitro.
outname: Use to specify a custom filename when output is written to a file using outmode.
Added values to the following options:
blasoption: 2 (dynamic)
bar_pencons: 1 (auto), 3 (equalities)
hessopt: 7 (gauss_newton)
honorbnds: 1 (auto)
ma_terminate: 3
mip_knapsack: 3 (all)
mip_outlevel: 2 (iterstime), 3 (root)
mip_rootalg: 4 (sqp), 5 (multi)
scale: 2 (user_none), 3 (internal)
Updated the following options to KNITRO defaults:
fstopval: maxdouble
honorbnds: 1 (auto)
par_blasnumthreads: 0
par_lsnumthreads: 0
xtol: 1e12
bar_pencons: 1 (auto)
bar_switchrule: 1 (auto)
mip_maxnodes: 0
mip_maxsolves: 0
mip_rounding: 1 (auto)
Deprecated options:
bar_maxbacktrack: Use linesearch_maxtrials instead.
maxcgit: Use cg_maxit instead.
pivot: Use linsolver_pivottol instead.
Removed formerly deprecated options:
maxcrossit
mu
feasible
feasmodetol
barrule
Removed unused option reform.
Fixed an issue with options not being forwarded to Knitro.
Lindo/LindoGlobal
New libraries 13.0.262:
LP Solver Improvements:
With new enhancements made to the simplex solvers, the average performance on large instances where the number of variables is several times larger than the number of constraints has increased by several folds compared to the previous version.
Improved performance on LP’s when using multiple cores with concurrent execution of Primal, Dual, and Barrier.
MIP (Mixed Integer Program) Solver:
Improved selection of defaults for cuts and heuristics.
Global Solver Improvements:
Highly improved ability to recognize convexity of various composite functions, especially involving logarithms and sums, which can gives a performance improvement of one orderofmagnitude in these cases.
Performance improvement for convexconcave type functions.
Enhanced capabilities for converting nonlinear functions to linear forms.
Substantial performance improvement for nonconvex quadratic models.
LocalSolver
New libraries 10.0 (20210330).
We plan to drop LocalSolver and LocalSolver70 by the end of 2021.
MOSEK
New libraries 9.2.41.
MPSGE
Increased the internal MAXFUN limit (from 5000 to 10000) on the number of components (inputs, outputs, taxes, etc.) in any MPSGE row.
ODHCPLEX
New libraries 5.34.
SBB
Added option usercallparmfile: Commandline parameter include file used in GAMS commandline calls triggered by BCH.
SCIP
New libraries 7.0 (c53330372e).
SNOPT
New libraries 7.7.7 and new GAMS/SNOPT link.
Changed option value to SNOPT default for the following options:
Linesearch Tolerance: 0.9
LI Singularity Tolerance: 3.2e11
Removed the following parameters:
Start Objective Check
Start Constraint Check
Stop Objective Check
Stop Constraint Check
Derivative Level
XPRESS
Added support for choosing a different algorithm than primal simplex for solving the fixed MIP (see mipCleanup). The algorithm can be chosen with defaultAlg and lpFlags.
Deprecated the following options:
algorithm: Use defaultAlg or lpFlags instead.
extraPresolve
lpThreads
Added the following options:
algAfterCrossover: Algorithm to be used for the final clean up step after the crossover.
autoPerturb: Simplex: Indicates whether automatic perturbation is performed.
autoScaling: Whether the Optimizer should automatically select between different scaling algorithms.
backtrackTie: Branch and Bound: Specifies how to break ties when selecting the next node to work on when a full backtrack is performed.
barCores: If set to a positive integer it determines the number of physical CPU cores assumed to be present in the system by the barrier algorithm.
barFailIterLimit: Newton barrier: Maximum number of consecutive iterations that fail to improve the solution in the barrier algorithm.
barFreeScale: Defines how the barrier algorithm scales free variables.
barGapTarget: Newton barrier: Target tolerance for the relative duality gap.
barKernel: Newton barrier: Defines how centrality is weighted in the barrier algorithm.
barObjScale: Defines how the barrier scales the objective.
barOrderThreads: If set to a positive integer it determines the number of concurrent threads for the sparse matrix ordering algorithm in the Newton barrier method.
barPresolveOps: Controls the Newton barrier specific presolve operations.
barRegularize: Determines how the barrier algorithm applies regularization on the KKT system.
barRhsScale: Defines how the barrier scales the right hand side.
branchChoice: Once a global entity has been selected for branching, this control determines which of the branches is solved first.
branchDisj: Branch and Bound: Determines whether the optimizer should attempt to branch on general split disjunctions during the branch and bound search.
branchStructural: Branch and Bound: Determines whether the optimizer should search for special structure in the problem to branch on during the branch and bound search.
cacheSize: Newton barrier: L2 or L3 (see notes) cache size in kB (kilobytes) of the CPU.
choleskyAlg: Newton barrier: Type of Cholesky factorization used.
choleskyTol: Newton barrier: Tolerance for pivot elements in the Cholesky decomposition of the normal equations coefficient matrix, computed at each iteration of the barrier algorithm.
conflictCuts: Branch and Bound: Specifies how cautious or aggressive the optimizer should be when searching for and applying conflict cuts.
coresPerCpu: Used to override the detected value of the number of cores on a CPU.
cpuTime: How time should be measured when timings are reported in the log and when checking against time limits.
crossoverAccuracyTol: Newton barrier: Determines how crossover adjusts the default relative pivot tolerance.
crossoverIterLimit: Newton barrier: Maximum number of iterations that will be performed in the crossover procedure before the optimization process terminates.
crossoverOps: Newton barrier: Bit vector for adjusting the behavior of the crossover procedure.
cutFactor: Limit on the number of cuts and cut coefficients the optimizer is allowed to add to the matrix during global search.
cutSelect: Bit vector providing detailed control of the cuts created for the root node of a global solve.
dualGradient: Simplex: Dual simplex pricing method.
dualize: Whether presolve should form the dual of the problem.
dualizeOps: Bitvector control for adjusting the behavior when a problem is dualized.
dualPerturb: Factor by which the problem will be perturbed prior to optimization by dual simplex.
dualStrategy: Bitvector control specifies the dual simplex strategy.
elimFillin: Amount of fillin allowed when performing an elimination in presolve.
elimTol: Markowitz tolerance for the elimination phase of the presolve.
feasibilityPump: Branch and Bound: Decides if the Feasibility Pump heuristic should be run at the top node.
feasTolPerturb: Determines how much a feasible primal basic solution is allowed to be perturbed when performing basis changes.
feasTolTarget: Target feasibility tolerance for the solution refiner.
forceParallelDual: Dual simplex: Specifies whether the dual simplex solver should always use the parallel simplex algorithm.
genConsDualReductions: Parameter specifies whether dual reductions should be applied to reduce the number of columns and rows added when transforming general constraints to MIP structs.
heurBeforeLp: Branch and Bound: Determines whether primal heuristics should be run before the initial LP relaxation has been solved.
heurDiveIterLimit: Branch and Bound: Simplex iteration limit for reoptimizing during the diving heuristic.
heurDiveRandomize: Level of randomization to apply in the diving heuristic.
heurDiveSoftRounding: Enables a more cautious strategy for the diving heuristic.
heurDiveSpeedUp: Branch and Bound: Changes the emphasis of the diving heuristic from solution quality to diving speed.
heurDiveStrategy: Branch and Bound: Chooses the strategy for the diving heuristic.
heurForceSpecialObj: Branch and Bound: Whether local search heuristics without objective or with an auxiliary objective should always be used, despite the automatic selection of the Optimizer.
heurFreq: Branch and Bound: Frequency at which heuristics are used in the tree search.
heurSearchEffort: Adjusts the overall level of the local search heuristics.
heurSearchFreq: Branch and Bound: How often the local search heuristic should be run in the tree.
heurSearchRootCutFreq: How frequently to run the local search heuristic during root cutting.
heurSearchRootSelect: Bit vector control for selecting which local search heuristics to apply on the root node of a global solve.
heurSearchTreeSelect: Bit vector control for selecting which local search heuristics to apply during the tree search of a global solve.
heurStrategy: Branch and Bound: Heuristic strategy.
historyCosts: Branch and Bound: How to update the pseudo cost for a global entity when a strong branch or a regular branch is applied.
indLinBigM: Indicator constraints can be internally converted to regular rows (i.e. linearized) using a BigM coefficient whenever the BigM coefficient is smaller or equal to this value.
indPreLinBigM: During presolve, indicator constraints can be internally replaced with regular rows (i.e. linearized) using a BigM coefficient whenever the BigM coefficient is smaller or equal to this value.
l1Cache: Newton barrier: L1 cache size in kB (kilo bytes) of the CPU.
lnpBest: Number of infeasible global entities to create liftandproject cuts for during each round of Gomory cuts at the top node (see gomCuts).
lnpIterLimit: Number of iterations to perform in improving each liftandproject cut.
localChoice: Controls when to perform a local backtrack between the two child nodes during a dive in the branch and bound tree.
lpFlags: Bitvector control which defines the algorithm for solving an LP problem or the initial LP relaxation of a MIP problem.
lpFolding: Simplex and barrier: Whether to fold an LP problem before solving it.
lpLogDelay: Time interval between two LP log lines.
lpLogStyle: Simplex: Style of the simplex log.
lpRefineIterLimit: Simplex iteration limit the solution refiner can spend.
markowitzTol: Markowitz tolerance used for the factorization of the basis matrix.
maxCutTime: Maximum amount of time allowed for generation of cutting planes and reoptimization.
maxImpliedBound: Presolve: When tighter bounds are calculated during MIP preprocessing, only bounds whose absolute value are smaller than maxImpliedBound will be applied to the problem.
maxLocalBacktrack: BranchandBound: How far back up the current dive path the optimizer is allowed to look for a local backtrack candidate node.
maxMemoryHard: Sets the maximum amount of memory in megabytes the optimizer should allocate.
maxMemorySoft: When resourceStrategy is enabled, this control sets the maximum amount of memory in megabytes the optimizer targets to allocate.
maxMipTasks: BranchandBound: The maximum number of tasks to run in parallel during a MIP solve.
maxScaleFactor: Determines the maximum scaling factor that can be applied during scaling.
maxTime: Maximum time in seconds that the Optimizer will run before it terminates, including the problem setup time and solution time.
mipDualReductions: Branch and Bound: Limits operations that can reduce the MIP solution space.
mipFracReduce: Branch and Bound: Specifies how often the optimizer should run a heuristic to reduce the number of fractional integer variables in the node LP solutions.
mipKappaFreq: Branch and Bound: Specifies how frequently the basis condition number (also known as kappa) should be calculated during the branchandbound search.
mipRampUp: Controls the strategy used by the parallel MIP solver during the rampup phase of a branchandbound tree search.
mipRefineIterLimit: Defines an effort limit expressed as simplex iterations for the MIP solution refiner.
mipRestart: Branch and Bound: Controls strategy for intree restarts.
mipToltarget: Target mipTol value used by the automatic MIP solution refiner as defined by refineOps.
miqcpAlg: Determines which algorithm is to be used to solve mixed integer quadratically constrained and mixed integer second order cone problems.
xslp_mipAlgorithm: Bitmap describing the MISLP algorithms to be used.
xslp_mipFixStepBounds: Bitmap describing the stepbound fixing strategy during MISLP.
xslp_mipRelaxStepBounds: Bitmap describing the stepbound relaxation strategy during MISLP.
netCuts: Determines the addition of multicommodity network cuts to a problem.
objScaleFactor: Custom global objective scaling factor, expressed as a power of 2.
optimalityTolTarget: Target optimality tolerance for the solution refiner.
outputLog: Controls the level of output produced by the Optimizer during optimization.
outputTol: Zero tolerance on print values.
preAnalyticCenter: Determines whether analytic centers should be computed and used for variable fixing and the generation of alternative reduced costs.
preBasisRed: Determines whether a lattice basis reduction algorithm should be attempted as part of presolve.
preBndRedCone: Determines whether second order cone constraints should be used for inferring bound reductions on variables when solving a MIP.
preBndRedQuad: Determines whether convex quadratic contraints should be used for inferring bound reductions on variables when solving a MIP.
preCoefElim: Presolve: Specifies whether the optimizer should attempt to recombine constraints in order to reduce the number of non zero coefficients when presolving a mixed integer problem.
preComponents: Determines whether small independent components should be detected and solved as individual subproblems during root node processing.
preComponentsEffort: Presolve: Adjusts the overall effort for the independent component presolver.
preConeDecomp: Presolve: Decompose regular and rotated cones with more than two elements and apply Outer Approximation on the resulting components.
preConvertSeparable: Presolve: Reformulate problem with nondiagonal quadratic objective and/or constraints as diagonal quadratic or secondorder conic constraints.
preDomCol: Presolve: Determines the level of dominated column removal reductions to perform when presolving a mixed integer problem.
preDomRow: Presolve: Determines the level of dominated row removal reductions to perform when presolving a problem.
preDupRow: Presolve: Determines the type of duplicate rows to look for and eliminate when presolving a problem.
preElimQuad: Presolve: Allows for elimination of quadratic variables via doubleton rows.
preImplications: Presolve: Determines whether to use implication structures to remove redundant rows.
preLinDep: Presolve: Determines whether to check for and remove linearly dependent equality constraints when presolving a problem.
preObjCutDetect: Presolve: Determines whether to check for constraints that are parallel or near parallel to a linear objective function, and which can safely be removed.
presolveMaxGrow: Limit on how much the number of nonzero coefficients is allowed to grow during presolve, specified as a ratio of the number of nonzero coefficients in the original problem.
presolveOps: Specifies the operations which are performed during the presolve.
presolvePasses: Number of reduction rounds to be performed in presolve.
primalPerturb: Factor by which the problem will be perturbed prior to optimization by primal simplex.
primalUnshift: Determines whether primal is allowed to call dual to unshift.
qcCuts: Branch and Bound: Limit on the number of rounds of outer approximation cuts generated for the root node, when solving a mixed integer quadratically constrained or mixed integer second order conic problem with outer approximation.
qcRootAlg: Determines which algorithm is to be used to solve the root of a mixed integer quadratically constrained or mixed integer second order cone problem, when outer approximation is used.
qSimplexOps: Controls the behavior of the quadratic simplex solvers.
quadraticUnshift: Determines whether an extra solution purification step is called after a solution found by the quadratic simplex (either primal or dual).
randomSeed: Sets the initial seed to use for the pseudorandom number generator in the Optimizer.
refineOps: Specifies when the solution refiner should be executed to reduce solution infeasibilities.
relaxTreeMemoryLimit: When the memory used by the branch and bound search tree exceeds the target specified by the treeMemoryLimit control, the optimizer will try to reduce this by writing nodes to the global file.
repairIndefInitEq: Controls if the optimizer should make indefinite quadratic matrices positive definite when it is possible.
resourceStrategy: Controls whether the optimizer is allowed to make nondeterministic decisions if memory is running low in an effort to preserve memory and finish the solve.
rootPresolve: Determines if presolving should be performed on the problem after the global search has finished with root cutting and heuristics.
sbBest: Number of infeasible global entities to initialize pseudo costs on each node.
sbEffort: Adjusts the overall amount of effort when using strong branching to select an infeasible global entity to branch on.
sbEstimate: Branch and Bound: How to calculate pseudo costs from the local node when selecting an infeasible global entity to branch on.
sbIterLimit: Number of dual iterations to perform in strong branching for each entity.
sifting: Determines whether to enable sifting algorithm with the dual simplex method.
xslp_algorithm: Bitmap describing the SLP algorithm(s) to be used.
xslp_analyze: Bitmap activating additional options supporting model / solution path analyzis.
xslp_augmentation: Bitmap describing the SLP augmentation method(s) to be used.
xslp_barStartOps: Controls behaviour when the barrier is used to solve the linearizations.
xslp_convergenceOps: Bitmap describing which convergence tests should be carried out.
xslp_filter: Bitmap for controlling solution updates.
xslp_presolveOps: Bitmap indicating the SLP presolve actions to be taken.
xslp_zeroCriterion: Bitmap determining the behavior of the placeholder deletion procedure.
sosRefTol: Minimum relative gap between the ordering values of elements in a special ordered set.
treeCompression: When writing nodes to the global file, the optimizer can try to use datacompression techniques to reduce the size of the global file on disk.
treeCutSelect: Bit vector providing detailed control of the cuts created during the tree search of a global solve.
treeMemoryLimit: Soft limit, in megabytes, for the amount of memory to use in storing the branch and bound search tree.
treeMemorySavingTarget: When the memory used by the branchandbound search tree exceeds the limit specified by the treeMemoryLimit control, the optimizer will try to save memory by writing lowerrated sections of the tree to the global file.
treeQCCuts: Branch and Bound: Limit on the number of rounds of outer approximation cuts generated for nodes other than the root node, when solving a mixed integer quadratically constrained or mixed integer second order conic problem with outer approximation.
Added options to conveniently set bits of XPRESS bitmap options:
New bits of refineOps:
refineOps_lpOptimal
refineOps_mipSolution
refineOps_mipNodeLp
refineOps_lpPresolve
refineOps_iterativeRefiner
refineOps_refinerPrecision
refineOps_refinerUsePrimal
refineOps_refinerUseDual
refineOps_mipFixGlobals
refineOps_mipFixGlobalsTarget
New bits of mipPresolve:
mipPresolve_reducedCostFixing
mipPresolve_logicPreprocessing
mipPresolve_allowChangeBounds
mipPresolve_dualReductions
mipPresolve_globalCoefTightening
mipPresolve_objBasedReductions
mipPresolve_allowTreeRestart
mipPresolve_symmetryReductions
New bits of presolveOps:
presolveOps_singletonColRemoval
presolveOps_singletonRowRemoval
presolveOps_forcingRowRemoval
presolveOps_dualReductions
presolveOps_redundantRowRemoval
presolveOps_duplicateColRemoval
presolveOps_duplicateRowRemoval
presolveOps_strongDualReductions
presolveOps_variableEliminations
presolveOps_noIpReductions
presolveOps_noGlobalDomainChange
presolveOps_noAdvIpReductions
presolveOps_linDependRowRemoval
presolveOps_noIntVarEliminations
presolveOps_noIntVarAndSosDetect
New bits of scaling:
scaling_rowScaling
scaling_colScaling
scaling_rowScalingAgain
scaling_maximum
scaling_curtisReid
scaling_byMaxElemNotGeoMean
scaling_bigM
scaling_simplexObjScaling
scaling_ignoreQuadRowPart
scaling_beforePresolve
scaling_noScalingRowsUp
scaling_noScalingColsDown
scaling_disableGlobalObjScaling
scaling_rhsScaling
scaling_noAggressiveQScaling
scaling_slackScaling
New bits of lpFlags:
lpFlags_dual
lpFlags_primal
lpFlags_barrier
lpFlags_network
New bits of cutSelect:
cutSelect_clique
cutSelect_mir
cutSelect_cover
cutSelect_mirRowAggregation
cutSelect_flowpath
cutSelect_implication
cutSelect_liftAndProject
cutSelect_disableCutRows
cutSelect_gubCover
cutSelect_zeroHalf
cutSelect_indicator
New bits of treeCutSelect:
treeCutSelect_clique
treeCutSelect_mir
treeCutSelect_cover
treeCutSelect_mirRowAggregation
treeCutSelect_flowpath
treeCutSelect_implication
treeCutSelect_liftAndProject
treeCutSelect_disableCutRows
treeCutSelect_gubCover
treeCutSelect_zeroHalf
treeCutSelect_indicator
Renamed the following options to match the original XPRESS options names. Old option names currently serve as alias, but are deprecated and will be removed in an upcoming release:
treePresolveKeepBasis to treePresolve_keepBasis.
slpKnitroOptFile to knitroOptFile.
All XPRESS Nonlinear (SLP) options, e.g., slpSolver to xslp_solver.
Fixed default values of single bit options for XPRESS bitmap options with negative default values.
Tools
GAMS Studio
New version 1.6.1.
New feature: Static Code Completion which can be activated by pressing Ctrl + Space.
New feature: Allow to move multiple lines up and down using Ctrl + Shift + Arrow.
New feature: Allow to close view tabs using the middle mouse button.
Added instant update of tab size in editor when changing corresponding setting.
Added word under cursor as default search entry when no text selection is present.
Allow to move block selections using the arrow keys.
Added *.inc as common extension for GAMS files.
Added user defined extensions for GAMS files.
Added automatic reloading of files that appear in the GAMS log.
Added setting for user defined extensions for files to be automatically reloaded.
Added autoreload button to filechanged dialog.
Added Studio Documentation entry in Help menu.
Added setting to change default open file behavior (new group or current group) and adjusted menu entry for alternative file opening behavior.
Hotkey F1 jumps to the corresponding documentation entry for Project Explorer, Process Logs, GDX Diff Dialog, and Search Widget.
Improved GDX Viewer, e.g.:
Added facility to access domains and filters in Table View.
Show original index position of domains in both list view and table view.
Improved automatic column widths.
Stability improvements and minor bug fixes, e.g.:
Fixed crash when LST file is missing (e.g. because of setting output=NUL).
Fixed "Reset View" not resetting splitter in the LST/LXIViewer.
Fixed crash related to comment shortcut in solver option editor when pressing it multiple times.
Fixed wrong sort order after resetting GDX Viewer.
Fixed GAMS engine not appending /api to the URL on Mac OS X when clicking OK directly after editing the URL.
Fixed eolCom not working in some dollar control option lines (like $include).
Fixed jump to next search result if the result is in a different file and the current one has no results.
Fixed jump to search result occasionally not working.
Fixed Find Next/Prev behavior for .opt files.
GDXDUMP
Added a new line at the end of the file, which was missing if the option noHeader is set.
GDXMERGE
Added command line option strict. When set to true, gdxmerge will terminate with an error in case input files cannot be found or the output file already exists.
GDXXRW
Fixed a potential missing initialization if incRC is set for symbols with either cDim or rDim equal 0.
APIs
CFG
With the next major release the last argument opt: pointer of function cfgAlgReadyAPI will be dropped.
DCT
Functions dctLoadWithHandle, dctSymDomIdx, dctDomNameCount, and dctDomName have been deprecated and will be removed in the near future.
gams2numpy
Improved error handling.
New optional parameter domains for gdxWriteSymbolStr and gdxWriteSymbolRaw that can be used to specify the domains of the symbol. Parameter needs to be a list of strings.
GMO
Updated to better handle cases where quadratic structure is explicitly detected (i.e. useQ is set) and some but not all of the nonlinear equations are quadratic. Several new functions have been added. In addition, some existing functions have been renamed  the new names are more descriptive and/or more consistent with new and existing function names. The old names are still available as deprecated synonyms  we expect to remove these synonyms in the near future and potentially without warning.
Updated API version to 20  compatible with some older API versions.
New functions:
gmoObjLNZ: Number of linear nonzeros in objective gradient.
gmoObjNLNZEx: Number of GMOORDER_NL nonzeros in objective gradient.
gmoObjQNZEx: Number of GMOORDER_Q nonzeros in objective gradient.
gmoObjCVecNZ: Number of nonzeros in c vector of objective (1 if Q information not used).
gmoObjConstEx: Objective constant  this is independent of useQ.
gmoObjQConst: Get constant in solvers quadratic objective.
gmoGetObjCVec: Get c vector of quadratic objective.
gmoGetObjSparseEx: Get information for gradient of objective function (sparse).
gmoGetRowStatEx: Get Jacobian row nonzero counts: total and by GMOORDER_XX.
gmoGetRowCVecNZOne: Number of nonzeros in c vector of row si (1 if Q information not used).
gmoGetRhsOneEx: Get individual equation RHS  independent of useQ.
gmoGetRowSparseEx: Get info for one row of Jacobian (sparse).
gmoGetRowCVec: Get c vector of the quadratic form for one row.
gmoGetRowQConst: Get the constant of the quadratic form for one row.
gmoHessInclQRows: if useQ is true, still include GMOORDER_Q rows in the Hessian.
Renamed functions:
gmoObjQNZ → gmoObjQMatNZ: Number of nonzeros in lower triangle of Q matrix of objective (1 if useQ is false).
gmoGetObjQ → gmoGetObjQMat: Get lower triangle of Q matrix of objective.
gmoGetRowQ → gmoGetRowQMat: Get lower triangle of Q matrix of one row.
HighLevel APIs
We might drop support for macOS 10.14 for the C++ API with the next major release.
Fixed an issue with an updater symbol that tries to update a nonexisting symbol in the model instance. This used to make the solve method of GAMSModelInstance fail, but now just increases the nomatch count.
Fixed GAMSOptions.Output (.NET), GAMSOptions.setOutput (Java), and GamsOptions.output (Python) parameter being ignored in GAMSJob::Run().
LowLevel APIs
For the next major releases, some cleanup of the distributed APIs is planned. In particular, it is planned to remove all Delphi variants but the dcp version (i.e. gdxdcpdef.pas) and all Fortran variants but the f9 version (i.e. gdxf9def.f90). Please contact us, if that causes any trouble for your operation.
PAL
Added functions palDataDirs and palConfigDirs to retrieve standard locations searched by GAMS.
Model Libraries
GAMS Model Library
nurses.gms : A Nurse Scheduling Problem (428)
GAMS Test Library
New models:
gdxmerg3.gms : Test strict mode
unload15.gms : Test $gdxUnload
load13.gms : Test $gdxLoad
conopt02.gms : CONOPT test suite  multithread test
implset2.gms : Test for Implicit Set Definition with default records
prevwork1.gms : PreviousWork Test
decla3.gms : Test correct loading after multi declaration of domain set
delim5.gms : Limited scope for $onDelim
load14.gms : Test loading of GDX file with bad UELs
eval08.gms : Test $eval with hidden functions
embpy07.gms : Test no_match_limit for model instance
embpy08.gms : Test filtered load from Embedded Code

CALL or EMAIL
有关GAMS软件的更多信息，请联系我们的销售代表：
 4006211085
 02150391085
或点击下面的链接直接在线提交购买咨询信息
留言询价 


