Option Name | MPL Name | Solver Param | ParamNr | Type | Default | Min | Max |
---|---|---|---|---|---|---|---|
Algorithm | OptimizeAlgorithm | list | 1 | 1 | 3 | ||
Decimal display | Decimals | Decimals | int | 5 | 0 | 12 | |
Field size | Fieldsize | Fieldsize | int | 11 | 0 | 20 | |
Limit search | LimitSearch | LimitSearch | real | 0 | 0 | MAXREAL | |
Relative optimality gap | MipRelativeGap | RelGap | real | 0 | 0 | 100 | |
Use presolve | Presolve | Presolve | flag | 1 | 0 | 1 | |
Crash method | Crash | Crash | list | 0 | 0 | 3 | |
Set element size | ElemSize | ElemSize | real | 1e-12 | 0.0 | 0.1 | |
Log frequency | FreqLog | FreqLog | int | 1 | 0 | 60 | |
Relative pivotal tolerance | IntGap | IntGap | real | 0.0 | 0 | 1.0 | |
Integer solution Limit | MipSolutionLimit | IntLimit | int | 0 | 0 | MAXINT | |
Integer variable fixing | IntPct | IntPct | real | 0.0 | 0.0 | 1.0 | |
Iteration limit | IterationLimit | IterLimit | int | MAXINT | 0 | MAXINT | |
Node limit | MipNodeLimit | MaxNodes | int | MAXINT | 0 | MAXINT | |
Lower integer feasibility tolerance | LTolerance | LTolerance | real | 5e-6 | 5e-6 | 0.1 | |
Upper integer feasibility tolerance | UTolerance | UTolerance | real | 5e-6 | 5e-6 | 0.1 | |
Markovitz | Markovitz | Markovitz | int | 10 | 1 | 10000 | |
Pricing policy | Pricing | Pricing | list | 3 | 3 | 4 | |
Dual tolerance | DualTol | DualTol | real | 1e-7 | 0.0 | 0.1 | |
Pivot rejection | RejectPivot | RejectPivot | real | 1e-6 | 0 | 0.1 | |
Scaling | Scaling | Scaling | list | 1 | 0 | 2 | |
Sprouts | Sprouts | Sprouts | int | 0 | -MAXINT | MAXINT | |
Prior branching limit | StickWithIt | StickWithIt | list | 10 | 0 | MAXINT | |
Zero coefficient tolerance | TCoeffTol | TCoeffTol | real | 1e-7 | 0 | 0.1 | |
Time limit | SolTimeLimit | TimeLimit | int | MAXINT | 0 | MAXINT | |
Primal tolerance | PrimalTol | PrimalTol | real | 1e-8 | 0 | 0.1 | |
Marginal pivot value | YPivot | YPivot | real | 1e-10 | 0 | 0.1 | |
Time limit after initial solution | StopAfter | StopAfter | int | 0 | 0 | MAXINT | |
Branching strategy | Strategy | Strategy | list | 10 | 1 | 10 | |
Branching variation | Variation | Variation | list | 0 | 0 | 5 |
The algorithm option selects which algorithm to use when solving LP problems.
Simplex (1) | Use the Simplex method. |
Barrier (2) | Use the Barrier, interior point method. |
Network (3) | Use the Network Simplex method. |
An option that states the number of digits to the right of the decimal point to be displayed.
Number of positions required to print a number.
Limit search is used to limit the number of nodes to search by implicitly or explicitly stating a bound on the value of an integer solution. The integer solution obtained, if any, will have a functional value no worse than thelimit searchvalue. The next integer solution will have a monotonically improving objective function value until an optimal integer solution is found and if verified.
The tolerance for the relative gap between the best integer objective solution found and the objective value of the worst open node remaining.
Prior to solving a model, XA attempts to simplify and reduce the size (number of rows, columns and non-zero coefficients). This is a boolean option that sets whether the presolver will be used in the optimization process
Option that sets the Method of generating the initial basis.
Primal Infeasibility (0) | Minimize primal infeasibility |
Dual Infeasibility (1) | Minimize dual infeasibility. |
Primal/Dual Infeasibility (2) | Both 0 & 1. |
Slack Basis (3) | All slack basis. |
Sets the smallest element that can be stored in the LU factors arrays. If the absolute value a number is less than element size it is consider zero (0.0). Extreme caution should be exercised when changing this value because of the overall effect on problem feasibility. Relative tolerance used to check if the current basic solution is primal feasible.
Sets the frequency in time to print the iteration log line.
Relative tolerance used to choose eligible pivotal elements of the simplex table.
Sets the maximum number of integer feasible solutions to find. The default means there is no limit.
Sets in percentage terms the amount of available integer variables to be fixed at each integer node. The default means no fixing is done, this feature can be useful on very large binary problems.
Sets the maximum number of iterations to be performed on the problem.
Sets the maximum number of branch and bound nodes to generate.
Sets the lower integer variable tolerance. This should always be set to a low value otherwise there is an increased chance of inaccurate integer feasible solutions.
Sets the upper integer variable tolerance. This should always be set to a low value otherwise there is an increased chance of inaccurate integer feasible solutions.
The Markowitz value is used during matrix inversion & updating the LU factors. During inversion, row and column factors are scanned for the largest & smallest numbers (in an absolute sense). The pivot element is chosen such that the ratio of the pivot element to these numbers is less than Markowitz value if possible. The larger Markowitz value is, the large will be this ratio, which leads to sparsity but can cause numeric instability. The best number of numeric stability is 1.0 which tends to leads to build-up (density) in the LU factors, which effect speed. So simply put - 1) A value of 1.0 is the best for numerical stability and the worst for density. 2) A value of 1000.0 is (can be) bad for numerical stability but good to maintain sparsity of LU factors.
This sets the pricing strategies employed in the Simplex Methods in solving LPs.
Reduced Cost (0) | |
Automatic Devex (1) | |
Infeasible Devex (2) | |
Feasible Devex (3) | |
Combined Devex (4) |
Sets the dual activity tolerance, the default value is close to zero and increase in this setting can effect the problem infeasibility.
After a column is selected to enter the basis, a column is selected to leave the basis to maintain model feasibility. If the absolute value of the selected outgoing column is marginal value is less than the pivot rejection value then this entering column is initially rejected and the search for another column to enter the basis is performed and the outgoing column selection is performed again until the pivot rejection value is exceeded. If all enter columns are rejected then the entering column with the largest marginal value is selected without regards to the pivot rejection value. Increasing this value, for example to 1.0e-4, improves numerical stability on numerically unstable models but increases solve times.
Set the scaling technique to be used in the problem
None (0) | The problem is not scaled. |
Row/Column Scaling None (1) | Both rows and columns in the problem are scaled. |
Row Scaling (2) | Only the rows of the problem are scaled. |
When solving mixed integer models the Optimizer must decide when to generate a 'marker' on the branch and bound node tree. This 'marker' is used to very quickly return to this location and begin exploring other branch directions. The 'marker' table is scanned at regular intervals to try to improve integer solutions. The default value of zero means no markers are generated, a positive sprout value indicates the frequency of marker generation. Whereas a negative sprout value indicates the amount of reduction in the number of non-integer columns before a marker is generated.
Once an integer problem is solved, the basis file is reloaded to indicate branching direction for the current XA solve. This setting states the following branching advice will be implemented until the parameter number of infeasible branches have been made, before the standard branching strategy is employed.
Performing extensive calculations can result in round off errors, this setting sets the coefficient tolerance for zero. Thus the default value is 1e-7, any coefficient value during XA solve phase below or at this value will be set to zero.
Sets the maximum amount of time in seconds for XA to solve the problem.
Sets the primal activity tolerance, the default value is close to zero and increase in this setting can effect the problem infeasibility.
When selecting a column to leave the basis the column's marginal values that are less than marginal pivot value in a absolute sense are rejected. Making pivots with very small values can lead to numeric stability and should be avoid when possible while making pivots with to large a marginal pivot value to can lead to infeasible pivoting. Extreme caution should be exercised when changing this value because of the overall effect on problem feasibility.
Is the time in seconds to stop the solve once the initial integer feasible solution was found. The default is 0 meaning no limit is set.
Sets the branch and bound strategy which defines the order in which the integer variables are processed during the search for integer solutions. Solution times can vary significantly with the method selected.
XA's Method (1) | Uses XA's own proprietary method. |
Obj Change (2) | Variable selected base don the minimum change in the objective function. |
Priority (3) | Uses the priority ordering of the variables. |
Closest Bound (4) | Selects the integer variable closest to its bound. |
Branch Up (6) | Select variables that always branch up. |
Branch down (7) | Select variables that always branch up. |
Farthest Bound (8) | Selects the integer variable farthest from its bound.. |
Random (9) | Uses a random method to select the branching variable. |
Polytope smoothest (10) | Selection based on the apparent smoothest sides on the resultant propblem polytope. |
Each XA Branch and Bound strategy has a number of variations. Sometimes these variations reduce the solution time but may not yield the optimal integer solution.
A (0) | This variation reduces the amount of time XA spends estimating the value of a would be integer solution. The values calculated are rough estimates. |
B (1) | This variation spends very little time calculating estimated integer solutions at each node and is the most radical in performance and integer solution. |
C (2) | Each time an improving integer solution is found XA splits the remaining node list in half based upon the length of the current list. This technique allows XA to search nodes that might not normally be explored. The reported integer solution value may not be the optimal integer solution because nodes may be eliminated that would lead to this solutions. |
D (3) | Each time an improving integer solution is found XA splits the remaining node list based upon the difference in current projected objective and the best possible objective value divided by two. This technique allows XA to search nodes that might not normally be explored. The reported integer solution value may not be the optimal integer solution because nodes may be eliminated that would lead to this solutions. |
P (4) | Each time a node is generated XA calculates the effects of each non-integer on future objective function values, which is calculation intensive. By assigning branching priorities to your integer variables XA will only perform this calculation on non-integer variable(s) with the lowest branching priority, which frequently reduces the number of calculations. |