Option Name | MPL Name | Solver Param | ParamNr | Type | Default | Min | Max |
---|---|---|---|---|---|---|---|
Bound Treatment | BoundTreatment | xbndha | 4 | list | 0 | 1 | 2 |
Pricing | Pricing | xdjscl | 15 | list | 1 | 0 | 3 |
LU Factorization Tolerance | LUFactorizationTol | xdropf | 2 | real | 1e-12 | 0 | 1e-9 |
Zero Tolerance | ZeroTolerance | xdropm | 4 | real | 1e-7 | 0 | 1e-4 |
LP Preprocessing Fill | LPPreprocessingFill | xfiltl | 5 | real | 4 | 0 | MAXREAL |
Refactorization Frequency | RefactorizationFreq | xfrinv | 18 | int | 100 | 1 | 200 |
Cholesky Memory | CholeskyMemory | xipmem | 30 | int | 0 | 0 | 1 |
Crossover Level | CrossoverLevel | xipxov | 31 | list | 2 | 0 | 3 |
LP Method PercentValue | LPMethodPercentValue | xipdua | 28 | int | 150 | 0 | MAXINT |
Algorithm | OptimizeAlgorithm | xlptyp | 36 | list | 2 | 0 | 4 |
Refactorization Level | RefactorizationLevel | IntLimit | 13 | real | 2 | 1.1 | 5 |
Threads | Threads | xnproc | 53 | int | 1 | 1 | MAXINT |
Cholesky Ordering | CholeskyOrdering | xoripm | 56 | list | 0 | 0 | 4 |
Presolve Methods | PresolveMethods | xpreme | 60 | int | 2047 | 0 | 8191 |
Use Preprocessing | UsePreprocessing | xrduce | 64 | list | 2 | 0 | 2 |
MIP Absolute Gap | MipAbsoluteGap | xabgap | 1 | real | 0 | 0 | MAXREAL |
Maximum Extra Columns | MaxExtraColumns | xadcol | 1 | int | 0 | 0 | MAXINT |
Maximum Extra NZs | MaxExtraNZs | xadnon | 2 | int | 400000 | 0 | MAXINT |
Maximum Extra Rows | MaxExtraRows | xadrow | 3 | int | 2000 | 0 | MAXINT |
Dual Simplex Bounding | DualSimplexBounding | xbndha | 4 | list | 0 | 0 | 2 |
Bound Reduction Level | BoundReductionLevel | xbndrd | 5 | list | 0 | -MAXINT | MAXINT |
Branching Strategy | BranchingStrategy | xbrheu | 8 | list | 10 | 0 | MAXINT |
Use Clique Cuts | UseCliqueCuts | xclict | 11 | list | 2 | 0 | 2 |
Coefficient Reduction | CoefficientReduction | xcored | 12 | list | 1 | 0 | 2 |
Use CoverCuts | UseCoverCuts | xcovct | 13 | list | 2 | 0 | 3 |
Use Gomory Cuts | UseGomoryCuts | xgomct | 21 | list | 2 | 0 | 4 |
Use Euclidean Reduction | UseEuclideanReduction | xeucrd | 16 | flag | 1 | 0 | 1 |
Flow Cuts | FlowCuts | xflwct | list | 4 | 0 | 5 | |
Halt After X nodes | HaltAfterXnodes | xfrnod | 20 | int | -1 | -1 | MAXINT |
MIP Relative Gap | MipRelativeGap | xglgap | 6 | real | 1 | 0 | 1 |
Gomory Density Level | GomoryDensityLevel | xgommc | 22 | int | 6 | 0 | MAXINT |
MIP Heuristic | MIPHeuristic | xheutp | 23 | list | -1 | -1 | 5 |
Use Basic Fixing | UseBasicFixing | xhfinb | 24 | flag | 1 | 0 | 1 |
Heuristic Termination | HeuristicTermination | xhgap | 7 | real | 4 | 0 | 5 |
Down Integer FeasTol | DownIntegerFeasTol | xhrdlb | 8 | real | 0.05 | 0.0 | 1.0 |
Up Integer FeasTol | UpIntegerFeasTol | xhrdub | 9 | real | 0.95 | 0.0 | 1.0 |
Heuristic Time Limit | HeuristicTimeLimit | xhtlim | 10 | real | 10.0 | 0.0 | MAXREAL |
Bound Implication Usage | BoundImplicatUsage | ximbnd | 25 | list | 2 | 0 | 2 |
Deriving Implications | DerivingImplications | ximpli | 26 | list | 2 | 0 | 2 |
LP Method At Nodes | LPMethodAtNodes | xiplpt | 29 | flag | 1 | 0 | 1 |
LIFO Termination | LIFOTermination | xlifo | 32 | list | 2 | 0 | 2 |
Local Search Type | LocalSearchType | xlocs | 33 | list | 0 | 0 | 3 |
Use MIR Cuts | UseMIRCuts | xmirct | 38 | list | 1 | 0 | 2 |
Use MIR Cuts | UseMIRCuts | xmirct | 38 | list | 1 | 0 | 2 |
Node Heuristic Limit | NodeHeuristicLimit | xmnheu | 40 | int | 50 | 0 | MAXINT |
Max Disk TreeSize | MaxDiskTreeSize | xmxdsk | 15 | real | 100.0 | 0.0 | MAXREAL |
Branch N Cut Limit | BranchNCutLimit | xmxint | 42 | flag | 1 | 0 | 1 |
Branch N Cut Time Limit | BranchNCutTimeLimit | xmxmin | 16 | real | 120.0 | 0.0 | MAXREAL |
Branch N Cut Node Limit | BranchNCutNodeLimit | xmxnod | 43 | int | 9999999 | 0 | MAXINT |
Max Processing Passes | MaxProcessingPasses | xmxpsu | 44 | int | 10 | 0 | MAXINT |
Select Brand N Bound Alg | SelectBrandNBoundAlg | xnewbb | 45 | flag | 0 | 0 | 1 |
Local Search Level | LocalSearchLevel | xnlbab | 47 | int | 1000 | 0 | MAXINT |
Node Limit Local Search | NodeLimitLocalSearch | xnlstr | 48 | int | 1000 | 0 | MAXINT |
Node Selection | MipNodeSelect | xnodse | 49 | list | 3 | -MAXINT | 7 |
MIP Recomputation | MIPRecomputation | xnogap | 50 | flag | 0 | 0 | 1 |
Build Integer Table | BuildIntegerTable | xnoitb | 51 | flag | 0 | 0 | 1 |
Heuristic/LIFO Node Limit | HeurLIFONodeLimit | xnlstr | 48 | int | 1000 | 0 | MAXINT |
Node Table Partitioning | NodeTablePartitioning | xparnd | 59 | int | 1000 | 1 | MAXINT |
Partitioning Node Limit | PartitioningNodeLimit | xparnl | 48 | flag | 0 | 0 | 1 |
Initialize PseudoCosts | InitializePseudoCosts | xpcini | 59 | list | 1 | 0 | 2 |
Probing | Probing | xprlev | 61 | list | 0 | 0 | 1 |
Range Con Conversion | RangeConConversion | xranha | 59 | flag | 0 | 0 | 1 |
Min MIP Solution Improve | MinMIPSolutionImprove | xrimpr | 59 | real | 0.0001 | 0.0 | 1.0 |
Output Level | OutputLevel | xoutlv | 57 | list | 0 | 0 | 3 |
LP Time Limit | LPTimeLimit | xmxtlp | 17 | real | 0 | 0 | 1 |
Restriction of bounds. Dual simplex needs restricted bounds for best performance. The default is set to 0 if IPM or primal simplex is used and to 1 if dual simplex is used.
Simplex (0) | Reduced bounds during LP-preprocessing are relaxed at the end of LP (default when IPM is used). |
Barrier (1) | Reduced bounds during LP-preprocessing are kept. |
Network (2) | Extended bound reduction is used. |
Sets scaling of Reduced Costs.
None (0) | No scaling of Reduced Costs in Pricing. |
ModifiedDevex (1) | Reduced Costs of non-basis variables are scaled (modified Devex). |
Devex (2) | Full Devex. |
SteepestEdge (3) | Steepest edge pricing |
An element in a row or column will be set to 0 during the LU Factorization, if this value multiplied by a value of an element with the largest magnitude of a row or column.
A matrix coefficient with a smaller magnitude than xdropm will be set to 0.0.
Determines how much fill is tolerated when using the aggregator during LP-preprocessing. If LP Preprocessing Fill is set to a higher value more fill is allowed. As a consequence the preprocessed matrix and its factorizations may have more nonzeros but fewer constraints.
A new LU-factorization in one of the simplex engines is computed after the value of Refactorization Frequency unless there are numerical problems or a significant amount of fill which makes it more efficient to recompute the LU factors.
Specifies how the memory for the Cholesky factorization of the IPM-engine is allocated. 0 means it is allocated form the MOPS memory block. 1 means the memory is allocated dynamically outside of the MOPS memory block. Note, that the value of Cholesky Memory is only relevant if the IPM engine is used to solve the initial LP. Furthermore if xipmen is set to 1 the size of the MOPS memory block specified by xmreal will be reduced if it is set too large.
Sets the crossover level when solving LPs with IPM.
None (0) | No crossover after solving the starting LP with IPM |
Primal (1) | Only primal part of crossover. |
PrimalFinish (2) | Primal and dual part of crossover and primal simplex to finish. |
DualFinish (3) | Primal and dual part of crossover and dual simplex to finish. |
specifies a percent value. If the ratio of the number of active rows and columns after LP-preprocessing is larger than LP Method PercentValue then the IPM-engine solves the dual LP.
Sets the algorithm used to solve the initial LP.
Primal (0) | Primal Simplex |
Dual (2) | Primal Simplex. |
Barrier (4) | Interior point method. |
A new LU Factorization will be calculated if the number of elements of the current LU Factorization divided by the number of elements of the last Factorization is greater than Refactorization Level.
Specifies how many processors should be used for the execution of the IPM-engine on a multiprocessor system. For example on an Intel Core Duo architecture Threads should be set to 2, resulting in a 40% reduction of the CPU-time. Note, that the value of Threads is only relevant if the IPM engine is used to solve the initial LP. Note, CP-time will increase if you specify Threads > 1 and the machine has less than xnproc processors.
Ordering strategy for the Cholesky factorization using the interior point method
Automatic (0) | Automatic ordering. |
MinDegree (1) | Minimum degree. |
MinLocalFill (2) | Minimum local fill in. |
Primal (3) | Nested dissection. |
MultiSection (4) | Multi section ordering. |
Presolve action control for LP Preprocessing. The bits of this value represent turning on or off individual presolve techniques. To get a particular form of the presolve, set xpreme to the sum of the values corresponding to the following presolve methods:
Singleton row check (0) | Singleton rows are replaced by bounds on variables. |
Singleton column check (1) | Free (or implied free) singleton columns are eliminated from the problem. |
Primal feasibility check (2) | This process evaluates the possible minimum and maximum row values. Based on the results, it may detect redundant rows and fixes variables on their bound. |
Cheap dual test (4) | This procedure performs optimality tests based on the signs of the nonzero values of the columns. |
Dual feasibility check (8) | The same as the primal but on the dual problem. Bounds on the dual variables are tightened if possible. |
Singleton row check (16) | The same as the primal but on the dual problem. Bounds on the dual variables are tightened if possible. |
Primal bound check and relaxation (32) | This procedure detects hidden free variables in the problem. |
Searching identical variables (64) | This procedure detects splitted variables in the problem and replaces them with an appropriate one. The process also performs this check on the dual problem and removes duplicated rows. |
Doubleton row check (128) | This procedure generates free variables in doubleton rows. This procedure modifies the bounds of the variables. Therefore final dual slack values may not correspond to the original problem. |
Aggregator (256) | This procedure eliminates free variables. |
Linear dependency check (512) | This procedure detects linearly dependent rows in the constraint matrix. |
Sparser (1024) | This procedure makes the constraint matrix sparser. This procedure performs row transformations therefore may changes the dual values. |
Bound restoring (2048) | MOPS restores the original bounds on the variables after the aggregator if this bit is turned on. In such a case MOPS takes slightly more iterations in primal simplex or IPM in general, but in special cases improves numerical stability. |
Extended dual test (4096) | This procedure performs additional dual tests which may change the optimal solution. The optimal objective value is not changed. This procedure can therefore be turned on if only the optimal objective function value is important. |
Determines if preprocessing will be run.
None (0) | No LP Preprocessing. |
LP Preprocessing (2) | LP Preprocessing. |
Absolute gap. The Branch and Bound search will be stopped if the best difference between the best MIP solution found so far and the best MIP bound is less than Absolute Gap.
Maximum number of additional columns for extending the LP/IP model.
Maximum number of additional nonzeros for LP and IP preprocessing.
Maximum number of additional constraints for LP and IP preprocessing.
The dual simplex engine benefits from tight bounds derived during the LP-preprocessing. Dual Simplex Bounding determines the level of bound reduction and bound retaining after LP-preprocessing.
Level 0: (0) | Tight bounds from LP are retained if the initial LP is solved by the dual simplex and the model is a pure LP-model. |
Level 1: (1) | As Level 0 but in addition an extended bound reduction is used to further tighten the bounds |
Level 2: (2) | As Level 1 but the extended bound reduction is also executed when the model is an IP-mode. |
Level of bound reduction during supernode processing.
Level 0: (0) | No bound reduction. |
Level 1: (1) | Bound reduction of all variables during supernode processing. |
Level 2: (2) | Bound reduction also during branch-and-bound (old). |
Branching heuristic. Determines how a branching variable will be chosen.
Rounding Down (0) | When minimizing (maximizing) a fractional IP variable with maximal (minimal) objective function coefficient will be set to the down rounded value. |
Rounding Up (1) | When minimizing (maximizing) a fractional IP variable with minimal (maximal) objective function coefficient will be set to the up rounded value. |
Maximimizing Infeasibilities (2) | Branch on most fractional IP-variable. Tie breaking rule is the best cost. |
Branch on Objective cost (3) | Branch on IP-variable with largest/smallest costs if minimization/maximization. The variable will be set to the down rounded value. Tie breaking rule is most fractional part. |
Weighted Psuedocosts (5) | Branch on fractional integer variable with largest weighted pseudo costs. Tie breaking rule is most fractional part. |
Psuedocosts (6) | Branch on fractional integer variable with the largest smallest pseudo costs. Tie breaking rule is most fractional part. |
Determines if Cliques Cuts will be produced during Supernode Processing.
None (0) | No Cliques will be derived. |
Use logical (1) | All Cliques will be saved and used during logical tests. |
Full (2) | Additionally to option 1, violated Clique Cuts at Supernodes will be added. |
Sets coefficient reduction level during supernode processing.
None (0) | No coefficient reduction. |
Simple (1) | Simple coefficient reduction. |
Full (2) | Extended coefficient reduction, based on Probing (can be time-consuming). |
Determines if and how Cover Cuts are derived at Supernodes and during branch-and-cut.
None (0) | No Cover Cuts are derived. |
Violated Cover Cuts (1) | Violated Cover Cuts are derived only in the first Supernode branch. |
Derived is solution improves (2) | Cover Cuts are only derived when the objective function value improves. |
At Supernode (3) | Cover Cuts will be derived at each Supernode. |
Determines whether Gomory Mixed-Integer Cuts will be derived during Supernode Processing
None (0) | No Cuts will be derived. |
Limited Cuts (1) | Cuts with a limited number of nonzero elements are derived. |
Cut level (>1) | The higher the value (max 4) the more cuts can be derived. Note, that cuts might be relatively dense, which slows down LP optimization at nodes. |
Euclidean reduction of constraints during supernode processing.. The default is 1 meaning Euclidean reduction is used.
This parameter determines the level of flow cuts that should be derived.
Determines if the Branch-and-Bound cut process is interrupted after reaching this node count. Default is -1 means no interruption in the Branch and Bound process.
Relative global gap. The Branch-and-Cut search will be stopped if the relative difference between the objective function value of the best integer solution and the objective function value of the best waiting node is less than MIP Relative Gap.
Sets the density level for taking Gomory cuts into the matrix. A violated Gomory cut will only be added to the matrix if the sum of all nonzeros in all columns of the cut is smaller than Gomory Density Level * xn. The smaller value, the more restrictive is the use of cuts.
Sets the IP heuristic to be used for the initial solution.
None (0) | No heuristics is used. |
Total Rounding (1) | Total rounding; in every iteration all integer variables will be rounded to an integer value. |
Local Branching (2) | Local Branching. |
RINS (3) | Relaxation Induced Neighborhood Search (RINS) heuristic. |
RSS (4) | Relaxation-based Search Space (RSS) heuristic with LIFO. |
RSS & RINS (5) | RSS heuristic with RINS heuristic. |
Determine whether a part of the none basics are fixed before the heuristic will start. The default is on.
If the global gap in the heuristic is smaller than Heuristic Termination, the heuristic will be terminated. This parameter is only used if a heuristic is used.
A fractional integer variable will be rounded down, if its fractional part is smaller than this tolerance parameter. This parameter is valid for the RINS- and RSS-heuristic.
A fractional integer variable will be rounded up, if its fractional part is greater than this tolerance parameter. This parameter is valid for the RINS- and RSS-heuristic.
Time limit in heuristic and is only relevant if a heuristic is used.
Determines the use of conditional bound Implications (only mixed integer models).
None (0) | Bound Implications are not used. |
At Supernode (1) | Bound Implications are only used during Supernode Processing. |
Full (2) | Bound implications are also used during the Branch-and-Bound process. |
Determines how implications, that have been derived by probing, will be used during Supernode Processing.
None (0) | No implications will be derived. |
Full Implications (1) | All implications are derived and stored, they will be used in all logical tests. |
Full Implications with Checks (2) | Additionally to option 1 it will be checked if Implication Cut Levels violate LP solutions at Supernodes. If this is the case, cut levels will be derived and stored. |
Sets the algorithm to be used to solve the LP at each node during the Branch-and-Bound process. Default is 1 means Dual Simplex will be used, 0 states Primal Simplex will be used.
Set type of mixed LIFO. Mixed LIFO is activated if Node Selection < 0.
Node Limit (0) | End LIFO, if node limit is reached. |
LP Inf/Integer (1) | End LIFO, if LP inf. or integer. |
Critical Value (2) | end LIFO, if functional value is greater than critical value. |
Set type of mixed LIFO. Mixed LIFO is activated if Node Selection < 0.
None (0) | No local search. |
RINS (1) | Relaxation induced neighborhood search (RINS). |
Local branching (2) | local branching. |
Rounding (3) | rounding in branch and bound. |
This parameter determines if mixed integer rounding cuts should be derived during the super node processing.
None (0) | MIR-cuts are not used. |
At first Supernode (1) | MIR-cuts are derived only at the first supernode. |
Full (2) | MIR-cuts are derived at every supernode. |
This parameter determines if mixed integer rounding cuts should be derived during the super node processing.
None (0) | MIR-cuts are not used. |
At first Supernode (1) | MIR-cuts are derived only at the first supernode. |
Full (2) | MIR-cuts are derived at every supernode. |
Sets number of nodes to be processed by the heuristics before the Branch-and-Bound process. This parameter is only relevant if heuristics are used.
Maximum disk space in MB used for the node file during the Branch-and-Bound / Cut process.
The branch-and-cut search is terminated when the value of Branch N Cut Limit is reached independent of any other search limitation such as CP-time (Branch N Cut Time Limit), node limit (Branch N Cut Node Limit), disk space or global gap(MIP Relative Gap).
Maximum CPU time in minutes for the initial LP and the Branch-and-Bound process. The IP optimization will be stopped if xmxmin has been reached.
Maximum number of nodes in Branch-and-Bound process. The IP optimization will be stopped after Branch N Cut Node Limit nodes.
Max number of passes in Supernode Processing for improving the strength of the LP Relaxation. The Supernode Processing will be terminated after Max Processing Passes passes or if the objective function value does not change anymore.
Indicate whether new branch and bound algorithm is executed. Default is 0, thus old Branch N bound used.
Node limit in branch and bound before the next local search or mixed LIFO iteration starts. This parameter is only used in the new branch and bound and is only relevant if Node Selection < 0 or Local Search Type > 0.
Node limit during local search heuristic or mixed lifo strategy. This parameter is only used in the new branch and bound and is only relevant if Node Selection < 0 or Local Search Type > 0.
Sets the node selection strategy in the Branch-and-Bound process.
Mixed LIFO (<0) | Mixed lifo strategy with a node selection. |
LIFO (0) | LIFO. |
Best Obj Coeff (1) | Chose node with best objective function coefficient. |
Minimum Infeasibilities (2) | Chose node with minimum sum of integer infeasibilities. |
Best Projection/Obj Coeff (3) | Best Projection, with xnodse = 2 until the first IP solution. |
Best Projection (4) | Best Projection. |
Pseudo Costs (5) | Chose node with best estimation based on pseudo costs. |
Mix (6) | Chose node until first IP solution with Minimum Infeasibilities, than with Pseudo Costs until gap is smaller than 5% and finally chose node with percentage error. |
Subsequent Pseudo Costs (7) | Best estimation based on pseudo costs, with Minimum Infeasibilities until first IP solution. |
Min MIP Solution Improve and MIP Relative Gap are set to default values of 1.d-4. If the IP-model has very large objective function values then it is possible that an optimal IP-solution cannot be found because Min MIP Solution Improve and MIP Relative Gap are relative values. These values are therefore recomputed after the initial supernode processing resulting possibly in smaller values. In such a case they replace the values of Min MIP Solution Improve and MIP Relative Gap. To prevent this recomputation and possible replacement xnogap can be set to 1.
Indicate whether integer table is build. The default is off.
Node limit during local search heuristic or mixed lifo strategy and is only relevant if Node Selection < 0 or Local Search Type > 0.
Set the partitioning type for the node table.
(<0) | partitioning node table with |Node Table Partitioning|; start with partitioning, if node table is half filled |
None (0) | No partitioning |
Functional Value (1) | Partition node table with functional value. |
Estimation/Functional Value (2) | Partition node table with estimation and functional value. |
Estimation (3) | partition node table with estimation. |
Node limit for a partitioning update, if Node Table Partitioning <> 0.
Set the initialization type for pseudo costs.
To Zero (0) | Initialize pseudo costs to zero |
To xCost (1) | initialize pseudo costs to xcost. |
Solve LP Partially (2) | Solve LP partially to compute pseudo costs. |
Probing level. Probing tries to set binary variables, that are not fixed, to 0 or 1 and analyzes the resulting implications. In pure 0/1 models this technique can be very effective. In mixed integer models, probing is usually less efficient.
Fractional (0) | Probing only for fractional 0/1 variables. |
Full at Supernodes (1) | Probing for all 0/1, but only at Supernodes. |
Full at every node (2) | Probing for all 0/1 variables at each node of the tree. |
Sets conversion of Range constraints that contain integer variables. The default is off.
After each IP solution found, The current upper bound will be set to best IP solution found - Min MIP Solution Improve * |best IP solution found| * xsscal, so the next integer solution must be Min MIP Solution Improve * 100% better than the previously found solution with objective function value best IP solution found. After the Branch-and-Bound process it will be proved, that the best solution found is maximal Min MIP Solution Improve * 100% away from the global optimum.
Output level for logging. Controls creation of *.log and *.sta files.
No log (0) | No logging, no statistics. |
Write Stats file (1) | Write statistic file after optimization, no log file. |
Stats/Log file (2) | Write statistic file and log file. |
Extend Stats/Log (3) | Write statistic file and log file with extended information. After each xfrlog iterations a information will be written to the log file. |
Maximum CPU time in minutes for solving the initial LP. The optimization will be terminated after LP Time Limit minutes if no solution has been found until then.