**TOMLAB /Xpress Manual**- Contents
- 1 Introduction
- 2 Installation of TOMLAB /Xpress
- 3 Using the Matlab Interface
- 4 Callbacks in Matlab
- 5 Test Routines in Non-Tomlab Format
- 6 Test Routines in Tomlab Format
- 7 xpControl - Control Parameters
- 8 xpProblemAttrib - Problem Attributes
- 9 Return Codes
- A The Matlab Interface Routines - Main Routines
- B The Matlab Interface Routines - Utility Routines
- C The Matlab Interface Routines - Test Routines
- D The Matlab Interface Routines - Callback Routines
- E IIS and SA
- References

All parameters not specified by the user are automatically set to their default values. The following table lists all parameters that the user can specify before calling the solver.

After solver execution a global variable

The following optional inputs can be used to control solver execution:

Symbol | Default | Description |

AUTOPERTURB | 1 | Simplex: This indicates whether automatic perturbation is performed. If this is set to 1, the problem will be perturbed by the amount PERTURB whenever the simplex method encounters an excessive number of degenerate pivot steps, thus preventing the Optimizer being hindered by degeneracies. |

0 = No perturbation performed. | ||

1 = Automatic perturbation is performed. | ||

BACKTRACK | 3 | Branch and Bound: This determines how the next node in the tree search is selected for processing. |

1 = If MIPTARGET is not set, choose the node with the best estimate. If MIPTARGET is set (by the user or by the global search previously finding an integer solution), the choice is based on the Forrest-Hirst-Tomlin Criterion, which takes into account the best current integer solution and seeks a new node which represents a large potential improvement. | ||

2 = Always choose the node with the best estimated solution. | ||

3 = Always choose the node with the best bound on the solution. | ||

BARDUALSTOP | 1.0E-08 | Newton barrier: This is a convergence parameter, representing the tolerance for dual infeasibilities. If the difference between the constraints and their bounds in the dual problem falls below this tolerance in absolute value, optimization will stop and the current solution will be returned. |

BARGAPSTOP | 1.0E-08 | Newton barrier: This is a convergence parameter, representing the tolerance for the relative duality gap. When the difference between the primal and dual objective function values falls below this tolerance, the Optimizer determines that the optimal solution has been found. |

BARINDEFLIMIT | 15 | Newton Barrier. This limits the number of consecutive indefinite barrier iterations that will be performed. The optimizer will try to minimize (maximise) a QP problem even if the Q matrix is not positive (negative) semi-definite. However, the optimizer may detect that the Q matrix is indefinite and this can result in the optimizer not converging. If more that BARINDEFLIMIT indefinite iterations occur then the optimizer will stop. |

BARITERLIMIT | 200 | Newton barrier: The maximum number of iterations. While the simplex method usually performs a number of iterations which is proportional to the number of constraints (rows) in a problem, the barrier method standardly finds the optimal solution to a given accuracy after a number of iterations which is independent of the problem size. The penalty is rather that the time for each iteration increases with the size of the problem. BARITERLIMIT specifies the maximum number of iterations which will be carried out by the barrier. |

BARMEMORY | 0 | Newton barrier: This specifies the amount of memory in megabytes to be used by the barrier algorithm in its search for the optimal solution. If set to 0, this is determined automatically by the Optimizer. |

BARORDER | 0 | Newton barrier: This specifies the ordering algorithm for the Cholesky factorization, used to preserve the sparsity of the factorized matrix. |

0 = Choose automatically. | ||

1 = Minimum degree method. This selects diagonal elements with the smallest number of nonzeros in their rows or columns. | ||

2 = Minimum local fill method. This considers the adjacency graph of nonzeros in the matrix and seeks to eliminate nodes that minimize the creation of new edges. | ||

3 = Nested dissection method. This considers the adjacency graph and recursively seeks to separate it into non-adjacent pieces. | ||

BAROUTPUT | 1 | Newton barrier: This specifies the level of solution output provided. Output is provided either after each iteration of the algorithm, or else can be turned off completely by this parameter. |

0 = No output. | ||

1 = At each iteration. | ||

BARPRIMALSTOP | 1.0E-08 | Newton barrier: This is a convergence parameter, indicating the tolerance for primal infeasibilities. If the difference between the constraints and their bounds in the primal problem falls below this tolerance in absolute value, the Optimizer will terminate and return the current solution. |

BARSTEPSTOP | 1.0E-10 | Newton barrier: A convergence parameter, representing the minimal step size. On each iteration of the barrier algorithm, a step is taken along a computed search direction. If that step size is smaller than BARSTEPSTOP, the Optimizer will terminate and return the current solution. |

Note: If the barrier method is making small improvements on BARGAPSTOP on later iterations, it may be better to set this value higher, to return a solution after a close approximation to the optimum has been
found. |
||

BARTHREADS | 1 | Newton barrier: The number of threads implemented to run the algorithm. This is usually set to the number of processors when running Parallel Xpress-MP on a single multi-processor machine. |

Note: The value of BARTHREADS depends on the user's authorization. If it is set to a value higher than that specified by the licence, then it will be reset by the Optimizer immediately prior to optimization. Obtaining its value after the optimization will give an indication of how many processors were actually used. |
||

BIGM | N/A | The infeasibility penalty used if the "Big M" method is implemented. The default value is dependent on the matrix characteristics. |

BIGMMETHOD | 1 | Simplex: This specifies whether to use the "Big M" method, or the standard phase I (achieving feasibility) and phase II (achieving optimality). In the "Big M" method, the objective coefficients of the variables are considered during the feasibility phase, possibly leading to an initial feasible basis which is closer to optimal. The side-effects involve possible round-off errors due to the presence of the "Big M" factor in the problem. |

0 = For phase I / phase II. | ||

1 = If "Big M" method to be used. | ||

BRANCHCHOICE | 0 | Once a global entity has been selected for branching, this control determines whether the branch with the minimum of maximum estimate is followed first. |

0 = Minimum estimate branch first. | ||

1 = Maximum estimate branch first. | ||

BREADTHFIRST | 10 | The number of nodes to include in the best-first search before switching to the local first search (NODESELECTION = 4). |

CACHESIZE | N/A | Newton barrier: cache size in Kbytes on the user's computer. On Intel platforms -1 may be used to determine the cache size automatically. Default value is hardware/platform dependent. |

Note: If the size is unknown, it is better to choose a smaller size. If the size cannot be determined automatically under Windows, a default size of 512 kB is
assumed. |
||

CHOLESKYALG | 1 | Newton barrier: type of Cholesky factorization used. |

0 = Pull Cholesky. | ||

1 = Push Cholesky. | ||

CHOLESKYTOL | 1.0E-15 | Newton barrier: The zero tolerance for pivot elements in the Cholesky decomposition of the normal equations coefficient matrix, computed at each iteration of the barrier algorithm. If the absolute value of the pivot element is less than or equal to CHOLESKYTOL, it merits special treatment in the Cholesky decomposition process. |

COVERCUTS | N/A | Branch and Bound: The number of rounds of lifted cover inequalities at the top node. A lifted cover inequality is an additional constraint that can be particularly effective at reducing the size of the feasible region without removing potential integral solutions. The process of generating these can be carried out a number of times, further reducing the feasible region, albeit incurring a time penalty. There is usually a good payoff from generating these at the top node, since these inequalities then apply to every subsequent node in the tree search. Default is determined automatically. |

CPKEEPALLCUTS | 1 | Cut pool: This indicates whether inactive user generated cuts should be deleted from the cut pool. Doing so will save memory, albeit at the expense of solution time if the cuts have to be generated again subsequently. |

0 = Do not delete inactive cuts. | ||

1 = Delete inactive cuts. | ||

CPMAXCUTS | 100 | Cut pool: The initial maximum number of cuts that will be stored in the cut pool. During optimization, the cut pool is subsequently resized automatically. |

CPMAXELEMS | 200 | Cut pool: The initial maximum number of nonzero coefficients which will be held in the cut pool. During optimization, the cut pool is subsequently resized automatically. |

CPUTIME | 1 | Which time to be used in reporting solution times. |

0 = If elapsed time is to be used. | ||

1 = If CPU time is to be used. | ||

CRASH | 2 | Simplex: This determines the type of crash used when the algorithm begins. During the crash procedure, an initial basis is determined which is as close to feasibility and triangularity as possible. A good choice at this stage will significantly reduce the number of iterations required to find an optimal solution. The possible values increase proportionally to their time-consumption. |

0 = Turns off all crash procedures. | ||

1 = For singletons only (one pass). | ||

2 = For singletons only (multi pass). | ||

3 = Multiple passes through the matrix considering slacks. | ||

4 = Multiple (<= 10) passes through the matrix but only doing slacks at the very end. | ||

n > 10. As for value 4 but performing at most n - 10 passes. | ||

CROSSOVER | 1 | Newton barrier: This control determines whether the barrier method will cross over to the simplex method when at optimal solution has been found, to provide an end basis and advanced sensitivity analysis information. |

0 = No crossover. | ||

1 = Crossover to a basic solution. | ||

Note: The full primal and dual solution is available whether or not crossover is
used. |
||

CSTYLE | 1 | Convention used for numbering arrays. |

0 = Indicates that the FORTRAN convention should be used for arrays (i.e. starting from 1). | ||

1 = Indicates that the C convention should be used for arrays (i.e. starting from 0). | ||

CUTDEPTH | N/A | Branch and Bound: Sets the maximum depth in the tree search at which cuts will be generated. Generating cuts can take a lot of time, and is often less important at deeper levels of the tree since tighter bounds on the variables have already reduced the feasible region. A value of 0 signifies that no cuts will be generated. Default value is determined automatically. |

CUTFREQ | N/A | Branch and Bound: This specifies the frequency at which cuts are generated in the tree search. If the depth of the node modulo CUTFREQ is zero, then cuts will be generated. Default value is determined automatically. |

CUTSTRATEGY | -1 | Branch and Bound: This specifies the cut strategy. A more aggressive cut strategy, generating a greater number of cuts, will result in fewer nodes to be explored, but with an associated time cost in generating the cuts. The fewer cuts generated, the less time taken, but the greater subsequent number of nodes to be explored. |

-1 = Automatic selection of the cut strategy. | ||

0 = No cuts. | ||

1 = Conservative cut strategy. | ||

2 = Moderate cut strategy. | ||

3 = Aggressive cut strategy. | ||

DEFAULTALG | 1 | This selects the algorithm that will be used to solve the LP if no algorithm flag is passed to the optimization routines. |

1 = Automatically determined. | ||

2 = Dual simplex. | ||

3 = Primal simplex. | ||

4 = Newton barrier. | ||

DEGRADEFACTOR | 1.0 | Branch and Bound: Factor to multiply estimated degradations associated with an unexplored node in the tree. The estimated degradation is the amount by which the objective function is expected to worsen in an integer solution that may be obtained through exploring a given node. |

DENSECOLLIMIT | N/A | Newton barrier: Columns with more than DENSECOLLIMIT elements are considered to be dense. Such columns will be handled specially in the Cholesky factorization of this matrix. Default value is determined automatically. |

DUALGRADIENT | -1 | This specifies the pricing method for the dual algorithm. |

-1 = Determine automatically. | ||

0 = Devex. | ||

1 = Steepest edge. | ||

ELIMTOL | 1.0E-03 | The Markowitz tolerance for the elimination phase of the presolve. |

ETATOL | 1.0E-12 | Zero tolerance on eta elements. During each iteration, the basis inverse is premultiplied by an elementary matrix, which is the identity except for one column - the eta vector. Elements of eta vectors whose absolute value is smaller than ETATOL are taken to be zero in this step. |

EXTRACOLS | 0 | The initial number of extra columns to allow for in the matrix. If columns are to be added to the matrix, then, for maximum efficiency, space should be reserved for the columns before the matrix is input by setting the EXTRACOLS control. If this is not done, resizing will occur automatically, but more space may be allocated than the user actually requires. |

EXTRAELEMS | N/A | The initial number of extra matrix elements to allow for in the matrix, including coefficients for cuts. If rows or columns are to be added to the matrix, then, for maximum efficiency, space should be reserved for the extra matrix elements before the matrix is input by setting the EXTRAELEMS control. If this is not done, resizing will occur automatically, but more space may be allocated than the user actually requires. The space allowed for cut coefficients is equal to the number of extra matrix elements remaining after rows and columns have been added but before the global optimisation starts. EXTRAELEMS is set automatically by the optimiser when the matrix is first input to allow space for cuts, but if you add rows or columns, this automatic setting will not be updated. So if you wish cuts, either automatic cuts or user cuts, to be added to the matrix and you are adding rows or columns, EXTRAELEMS must be set before the matrix is first input, to allow space both for the cuts and any extra rows or columns that you wish to add. Default is hardware/platform dependent. |

EXTRAMIPENTS | 0 | The initial number of extra global entities to allow for. |

EXTRAPRESOLVE | N/A | The initial number of extra elements to allow for in the presolve. Default is hardware/platform dependent. |

Note: The space required to store extra presolve elements is allocated dynamically, so it is not necessary to set this
control. |
||

EXTRAROWS | N/A | The initial number of extra rows to allow for in the matrix, including cuts. If rows are to be added to the matrix, then, for maximum efficiency, space should be reserved for the rows before the matrix is input by setting the EXTRAROWS control. If this is not done, resizing will occur automatically, but more space may be allocated than the user actually requires. The space allowed for cuts is equal to the number of extra rows remaining after rows have been added but before the global optimisation starts. EXTRAROWS is set automatically by the optimiser when the matrix is first input to allow space for cuts, but if you add rows, this automatic setting will not be updated. So if you wish cuts, either automatic cuts or user cuts, to be added to the matrix and you are adding rows, EXTRAROWS must be set before the matrix is first input, to allow space both for the cuts and any extra rows that you wish to add. Default value depends on the matrix characteristics. |

FEASTOL | 1.0E-06 | This is the zero tolerance on right hand side values, bounds and range values, i.e. the bounds of basic variables. If one of these is less than or equal to FEASTOL in absolute value, it is treated as zero. |

GOMCUTS | N/A | Branch and Bound: The number of rounds of Gomory cuts at the top node. These can always be generated if the current node does not yield an integral solution. However, Gomory cuts are not usually as effective as lifted cover inequalities in reducing the size of the feasible region. Default determined automatically. |

HEURDEPTH | 0 | Branch and Bound: Sets the maximum depth in the tree search at which heuristics will be used to find MIP solutions. It may be worth stopping the heuristic search for solutions after a certain depth in the tree search. A value of 0 signifies that heuristics will not be used. |

HEURFREQ | 5 | Branch and Bound: This specifies the frequency at which heuristics are used in the tree search. Heuristics will only be used at a node if the depth of the node is a multiple of HEURFREQ. |

HEURMAXNODES | 1000 | Branch and Bound: This specifies the maximum number of nodes at which heuristics are used in the tree search. |

HEURMAXSOL | 10 | Branch and Bound: This specifies the maximum number of heuristic solutions that will be found in the tree search. |

HEURSTRATEGY | -1 | Branch and Bound: This specifies the heuristic strategy. |

-1 = Automatic selection of heuristic strategy. | ||

0 = No heuristics. | ||

1 = Rounding heuristics. | ||

INVERTFREQ | N/A | Simplex: The frequency with which the basis will be inverted. The basis is maintained in a factorized form and on most simplex iterations it is incrementally updated to reflect the step just taken. This is considerably faster than computing the full inverted matrix at each iteration, although after a number of iterations the basis becomes less well-conditioned and it becomes necessary to compute the full inverted matrix. The value of INVERTFREQ specifies the maximum number of iterations between full inversions. The default frequency is determined automatically. |

INVERTMIN | 3 | Simplex: The minimum number of iterations between full inversions of the basis matrix. See the description of INVERTFREQ for details. |

KEEPBASIS | 1 | Simplex: This determines which basis to use for the next iteration. The choice is between using that determined by the crash procedure at the first iteration, or using the basis from the last iteration. |

0 = Problem optimization starts from the first iteration, i.e. the previous basis is ignored. | ||

1 = The previously loaded basis (last in memory) should be used. | ||

KEEPMIPSOL | 1 | Branch and Bound: The number of integer solutions to keep. During a global search, typically any number of integer solutions may be found, which may or may not represent optimal solutions. The value of KEEPMIPSOL represents the number of integer solutions which will be stored. |

Goal Programming: The number of goal programming solutions to keep in the pre-emptive case. Pre-emptive goal programming solves a sequence of problems giving a sequence of partial solutions. The value of KEEPMIPSOL represents the number of partial solutions to keep. | ||

By default only the best solution is kept. | ||

KEEPNROWS | 1 | Status for nonbinding rows. |

-1 = Delete N type rows and make space available as spare rows. | ||

0 = Delete N type rows. | ||

1 = Keep N type rows. | ||

LNPBEST | 50 | Number of infeasible global entities to create lift-and-project cuts for during each round of Gomory cuts at the top node (see GOMCUTS). |

LNPITERLIMIT | 10 | Number of iterations to perform in improving each lift-and-project cut. |

Note: By setting the number to zero a Gomory cut will be created
instead. |
||

LPITERLIMIT | 2147483645 | Simplex: The maximum number of iterations that will be performed before the optimization process terminates. For MIP problems, this is the maximum number of iterations at each node explored by the Branch and Bound method. |

LPLOG | 100 | Simplex: The frequency at which the simplex log is printed. |

n < 0 = Detailed output every -n iterations. |
||

0 = Log displayed at the end of the optimization only. | ||

n > 0 = Summary output every n iterations. |
||

MARKOWITZTOL | 0.01 | The Markowitz tolerance used for the factorization of the basis matrix. |

MATRIXTOL | 1.0E-09 | The zero tolerance on matrix elements. If the value of a matrix element is less than or equal to MATRIXTOL in absolute value, it is treated as zero. |

MAXCUTTIME | 0 | The maximum amount of time allowed for generation of cutting planes and re-optimization. The limit is checked during generation and no further cuts are added once this limit has been exceeded. |

0 = No time limit. | ||

n > 0 = Stop cut generation after n seconds. |
||

MAXIIS | 1 | This controls the number of Irreducible Infeasible Sets to be found. |

-1 = Search for each of the IIS. | ||

0 = Search for none. | ||

n > 0 = Search for the first n IIS. |
||

MAXMIPSOL | 0 | Branch and Bound: This specifies a limit on the number of integer solutions to be found by the Optimizer before it pauses and asks whether or not to continue. It is possible that during optimization the Optimizer will find the same objective solution from different nodes. However, MAXMIPSOL refers to the total number of integer solutions found, and not necessarily the number of distinct solutions. |

MAXNODE | 100000000 | Branch and Bound: The maximum number of nodes that will be explored before the Optimizer pauses and asks whether or not to continue. |

MAXPAGELINES | 23 | Number of lines between page breaks in printable output. |

MAXSLAVE | 0 | Number of worker processes to use in the parallel MIP optimization. |

Note: Set this to the number of processors available to solve the MIP
problem. |
||

MAXTIME | 0 | The maximum time in seconds that the Optimizer will run before it terminates, including the problem setup time and solution time. For MIP problems, this is the total time taken to solve all the nodes. |

0 = No time limit. | ||

n > 0 = If an integer solution has been found, stop MIP search after n seconds, otherwise continue until an integer solution is finally
found. |
||

n < 0 = Stop in LP or MIP search after -n
seconds. |
||

MIPABSCUTOFF | 1.0E+40 | Branch and Bound: If the user knows that they are interested only in values of the objective function which are better than some value, this can be assigned to MIPABSCUTOFF. This allows the Optimizer to ignore solving any nodes which may yield worse objective values, saving solution time. It is set automatically after an LP Optimizer command, unless it was previously set by the user. The cutoff may be updated automatically whenever a MIP solution is found using the MIPRELCUTOFF and MIPADDCUTOFF controls. The default is for minimization problems. Default has negative sign if maximization. |

MIPABSSTOP | 0.0 | Branch and Bound: The absolute tolerance determining whether the global search will continue or not. It will terminate if abs(MIPOBJVAL - BESTBOUND) <= MIPABSSTOP, where MIPOBJVAL is the value of the best solution's objective function, and BESTBOUND is the current best solution bound. For example, to stop the global search when a MIP solution has been found and the Optimizer can guarantee it is within 100 of the optimial solution, set MIPABSSTOP to 100. |

MIPADDCUTOFF | -1.0E-05 | Branch and Bound: The amount to add to the objective function of the best integer solution found to give the new cutoff. Once an integer solution has been found whose objective function is equal to or better than MIPABSCUTOFF, improvements on this value may not be interesting unless they are better by at least a certain amount. If MIPADDCUTOFF is nonzero, it will be added to MIPABSCUTOFF each time an integer solution is found which is better than this new value. This cuts off sections of the tree whose solutions would not represent substantial improvements in the objective function, saving processor time. The control MIPABSSTOP provides a similar function but works in a different way. |

MIPLOG | -100 | Global print control. |

-n = Print out summary log at each n'th node. | ||

0 = No printout in global. | ||

1 = Only print out summary statement at the end. | ||

2 = Print out detailed log at all solutions found. | ||

3 = Print out detailed log at each node. | ||

MIPPRESOLVE | N/A | Branch and Bound: Type of integer processing to be performed. If set to 0, no processing will be performed. Default value depends on the matrix characteristics. |

0 = Reduced cost fixing will be performed at each node. This can simplify the node before it is solved, by deducing that certain variables' values can be fixed based on additional bounds imposed on other variables at this node. | ||

1 = Logical preprocessing will be performed at each node. This is performed on binary variables, often resulting in fixing their values based on the constraints. This greatly simplifies the problem and may even determine optimality or infeasibility of the node before the simplex method commences. | ||

2 = Probing of binary variables is performed at the top node. This sets certain binary variables and then deduces effects on other binary variables occurring in the same constraints. | ||

MIPRELCUTOFF | 1.0E-04 | Branch and Bound: Percentage of the LP solution value to be added to the value of the objective function when an integer solution is found, to give the new value of MIPABSCUTOFF. The effect is to cut off the search in parts of the tree whose best possible objective function would not be substantially better than the current solution. The control MIPRELSTOP provides a similar functionality but works in a different way. |

MIPRELSTOP | 0.0 | Branch and Bound: This determines whether or not the global search will terminate. Essentially it will stop if: abs(MIPOBJVAL - BESTBOUND) <= MIPRELSTOP * BESTBOUND, where MIPOBJVAL is the value of the best solution's objective function and BESTBOUND is the current best solution bound. For example, to stop the global search when a MIP solution has been found and the Optimizer can guarantee it is within 5 |

MIPTARGET | 1.0E+40 | Branch and Bound: The target object function for the global search (only used by certain node selection criteria). This is set automatically after an LP optimization routine, unless it was previously set by the user. |

MIPTOL | 5.0E-06 | Branch and Bound: This is the tolerance within which a decision variable's value is considered to be integral. |

MPSBOUNDNAME | 64 blanks | The bound name sought in the MPS file. |

MPSECHO | 1 | Determines whether comments in MPS matrix files are to be printed out during matrix input. |

0 = MPS comments are not to be echoed. | ||

1 = MPS comments are not to be echoed. | ||

MPSERRIGNORE | 0 | Number of errors to ignore whilst reading an MPS file. |

MPSFORMAT | -1 | Specifies the format of MPS files. |

-1 = To determine the file type automatically. | ||

0 = For fixed format. | ||

1 = If MPS files are assumed to be in free format by input. | ||

MPSNAMELENGTH | 8 (MAX 64) | Maximum length of MPS names in characters. If reset, this must be before any problem is input. Internally it is rounded up to the smallest multiple of 8. MPS names are right padded with blanks. |

MPSOBJNAME | 64 blanks | The objective function name sought in the MPS file. |

MPSRANGENAME | 64 blanks | The range name sought in the MPS file. |

MPSRHSNAME | 64 blanks | The right hand side name sought in the MPS file. |

NODESELECTION | N/A | Minimum number of iterations. Default value depends on the matrix characteristics. |

1 = Local first: Choose between descendant and sibling nodes if available; choose from all outstanding nodes otherwise. | ||

2 = Best first: Choose from all outstanding nodes. | ||

3 = Local depth first: Choose between descendant and sibling nodes if available; choose from the deepest nodes otherwise. | ||

4 = Best first, then local first: Best first is used for the first BREADTHFIRST nodes, after which local first is used. | ||

5 = Pure depth first: Choose from the deepest outstanding nodes. | ||

OMNIDATANAME | 64 blanks | Data for OMNI data name field. |

OPTIMALITYTOL | 1.0E-06 | Simplex: This is the zero tolerance for reduced costs. On each iteration, the simplex method searches for a variable to enter the basis which has a negative reduced cost. The candidates are only those variables which have reduced costs less than the negative value of OPTIMALITYTOL. |

OUTPUTLOG | 1 | This controls the level of output produced by the Optimizer during optimization. The possible options are to print all messages or to disable printing altogether. |

0 = Turn all output off. | ||

1 = Print messages. | ||

OUTPUTMASK | 64 '?'s | Mask to restrict the row and column names written to file. |

OUTPUTTOL | 1.0E-05 | Zero tolerance on print values. |

PENALTY | N/A | Minimum absolute penalty variable coefficient. Default depends on the matrix characteristics. |

PERTURB | 0.0 | The factor by which the problem will be perturbed prior to optimization if the control AUTOPERTURB has been set to 1. A value of 0.0 results in an automatically determined perturbation value. |

PIVOTTOL | 1.0E-09 | Simplex: The zero tolerance for matrix elements. On each iteration, the simplex method seeks a nonzero matrix element to pivot on. Any element with absolute value less than PIVOTTOL is treated as zero for this purpose. |

PPFACTOR | 1.0 | The partial pricing candidate list sizing parameter. |

PRESOLVE | 1 | This control determines whether presolving should be performed prior to starting the main algorithm. Presolve attempts to simplify the problem by detecting and removing redundant constraints, tightening variable bounds, etc. In some cases, infeasibility may even be determined at this stage, or the optimal solution found. |

-1 = Presolve applied, but a problem will not be declared infeasible if primal infeasibilities are detected. The problem will be solved by the LP optimization algorithm, returning an infeasible solution, which can sometimes be helpful. | ||

0 = Presolve not applied. | ||

1 = Presolve applied. | ||

2 = Presolve applied, but redundant bounds are not removed. This can sometimes increase the efficiency of the barrier algorithm. | ||

Note: Memory for presolve is dynamically resized. If the Optimizer runs out of memory for presolve, an error message (245) is
produced. |
||

PRESOLVEOPS | 511 (0-8 are set) | This specifies the operations which are performed during the presolve. |

0 = singleton column removal. | ||

1 = singleton row removal. | ||

2 = forcing row removal. | ||

3 = dual reductions. | ||

4 = redundant row removal. | ||

5 = duplicate column removal. | ||

6 = duplicate row removal. | ||

7 = strong dual reductions. | ||

8 = variable eliminations. | ||

9 = no IP reductions. | ||

13 = linearly dependant row removal. | ||

PRICINGALG | 0 | Simplex: This determines the pricing method to use on each iteration, selecting which variable enters the basis. In general Devex pricing requires more time on each iteration, but may reduce the total number of iterations, whereas partial pricing saves time on each iteration, although possibly results in more iterations. |

-1 = If partial pricing is to be used. | ||

0 = If the pricing is to be decided automatically. | ||

1 = If Devex pricing is to be used. | ||

PSEUDOCOST | 0.01 | Branch and Bound: The default pseudo cost used in estimation of the degradation associated with an unexplored node in the tree search. A pseudo cost is associated with each integer decision variable and is an estimate of the amount by which the objective function will be worse if that variable is forced to an integral value. |

REFACTOR | 0 (1) | Indicates whether the optimization should restart using the current representation of the factorization in memory. Default is 1 for reoptimizing. |

0 = Do not refactor on reoptimizing. | ||

1 = Refactor on reoptimizing. | ||

Note: In the tree search, the optimal bases at the nodes are not refactorized by default, but the optimal basis for an LP problem will be refactorized. If you are repeatedly solving LPs with few changes then it is more efficient to set REFACTOR to
0. |
||

REL10STYLE | 0 | Determines whether the old style convention should be used for dual values, slacks and reduced costs. |

0 = Use standard convention for solution values. | ||

1 = Use convention in Release 10 and earlier for solution values. | ||

RELPIVOTTOL | 1.0E-06 | Simplex: At each iteration a pivot element is chosen within a given column of the matrix. The relative pivot tolerance, RELPIVOTTOL, is the size of the element chosen relative to the largest possible pivot element in the same column. |

SBBEST | N/A | Number of infeasible global entities on which to perform strong branching. Default determined automatically. |

SBITERLIMIT | N/A | Number of dual iterations to perform the strong branching. Default determined automatically. |

SBSELECT | N/A | The size of the candidate list of global entities for strong branching. Default determined automatically. |

Note: Before strong branching is applied on a node of the branch and bound tree, a list of candidates is selected among the infeasible global entities. These entities are then evaluated based on the local LP solution and prioritised. Strong branching will then be applied to the SBBEST candidates. The evaluation is potentially expensive and for some problems it might improve performance if the size of the candidate list is
reduced. |
||

SCALING | 35 | This determines how the Optimizer will rescale a model internally before optimization. If set to 0, no scaling will take place. |

Bit | Meaning | |

0 | Row scaling. | |

1 | Column scaling. | |

2 | Row scaling again. | |

3 | Maximum. | |

4 | Curtis-Reid. | |

5 | 0 = scale by geometric mean., 1 = scale by maximum element. | |

SOLUTIONFILE | 1 | Determines whether the binary solution file (problem_name.sol) is used to store optimal solutions. The Optimizer always stores the final LP solution in memory. Depending on the value of SOLUTIONFILE, the Optimizer may also store the final LP solution, or, in the case of a MIP, the best known MIP solution to the binary solution file. Sometimes it is advantageous to disable use of the solution file, where file access is inconvenient or incurs a performance overhead. However, certain functions that use the solution obtain it from the binary solution file, and their behaviour is affected by this control. |

0 = The binary solution file is not used. If solving a MIP, MIP solutions are not stored anywhere by the Optimizer. If required, they must be stored by the user in the user's own memory structures. This can be achieved by setting an integer solution callback function using XPRSsetcbintsol, which will be called whenever a MIP solution is found. Functions which require the binary solution file will not work and will report an error. All other functions will access the LP solution stored in memory rather than the binary solution file. If a MIP problem is being solved, and a function is called that accesses the solution, this means the LP solution to the last branch and bound node (linear relaxation) solved will be used, and not the best known MIP solution. | ||

1 = The binary solution file is used to store the final LP solution, or, if a MIP solution has been found, the best known MIP solution. | ||

SOSREFTOL | 1.0E-03 | The minimum gap between the ordering values of elements in a special ordered set. |

TRACE | 0 | Control of the infeasibility diagnosis during presolve - if nonzero, infeasibility will be explained. |

TREECOVERCUTS | 1 | Branch and Bound: The number of rounds of lifted cover inequalities generated at nodes other than the top node in the tree. Compare with the description for COVERCUTS. |

TREEGOMCUTS | 1 | Branch and Bound: The number of rounds of Gomory cuts generated at nodes other than the first node in the tree. Compare with the description for GOMCUTS. |

VARSELECTION | -1 | Branch and Bound: This determines the formula used to calculate the estimate of each integer variable, and thus which integer variable is selected to be branched on at a given node. The variable selected to be branched on is the one with the minimum estimate. The variable estimates are also combined to calculate the overall estimate of the node, which, depending on the BACKTRACK setting, may be used to choose between outstanding nodes. |

-1 = Determined automatically. | ||

1 = The minimum of the 'up' and 'down' pseudo costs. | ||

2 = The 'up' pseudo cost plus the 'down' pseudo cost. | ||

3 = The maximum the 'up' and 'down' pseudo costs, plus twice the minimum of the 'up' and 'down' pseudo costs. | ||

4 = The maximum of the 'up' and 'down' pseudo costs. | ||

5 = The 'down' pseudo cost. | ||

6 = The 'up' pseudo cost. | ||