Options Class for h02ce
Syntax
C# |
---|
public class h02ceOptions |
Visual Basic |
---|
Public Class h02ceOptions |
Visual C++ |
---|
public ref class h02ceOptions |
F# |
---|
type h02ceOptions = class end |
Description of the Optional Parameters
For each option, we give a summary line, a description of the optional parameter and details of constraints.
The summary line contains:
- the keywords, where the minimum abbreviation of each keyword is underlined (if no characters of an optional qualifier are underlined, the qualifier may be omitted);
- a parameter value, where the letters , denote options that take character, integer and real values respectively;
- the default value is used whenever the condition is satisfied and where the symbol is a generic notation for machine precision (see x02aj).
Keywords and character values are case and white space insensitive.
Check Frequency |
Every th iteration after the most recent basis factorization, a numerical test is made to see if the current solution satisfies the linear constraints . If the largest element of the residual vector is judged to be too large, the current basis is refactorized and the basic variables recomputed to satisfy the constraints more accurately. If , the default value is used. If , the value is used and effectively no checks are made.
Crash Option |
Note that this option does not apply when (see [Parameters]).
If , an internal crash procedure is used to select an initial basis from various rows and columns of the constraint matrix . The value of determines which rows and columns are initially eligible for the basis, and how many times the crash procedure is called. If , the all-slack basis is chosen. If , the crash procedure is called once (looking for a triangular basis in all rows and columns of the linear constraint matrix ). If , the crash procedure is called twice (looking at any equality constraints first followed by any inequality constraints). If or , the default value is used.
If , certain slacks on inequality rows are selected for the basis first. (If , numerical values are used to exclude slacks that are close to a bound.) The crash procedure then makes several passes through the columns of , searching for a basis matrix that is essentially triangular. A column is assigned to ‘pivot’ on a particular row if the column contains a suitably large element in a row that has not yet been assigned. (The pivot elements ultimately form the diagonals of the triangular basis.) For remaining unassigned rows, slack variables are inserted to complete the basis.
Crash Tolerance |
This value allows the crash procedure to ignore certain ‘small’ nonzero elements in the constraint matrix while searching for a triangular basis. For each column of , if is the largest element in the column, other nonzeros in that column are ignored if they are less than (or equal to) .
When , the basis obtained by the crash procedure may not be strictly triangular, but it is likely to be nonsingular and almost triangular. The intention is to obtain a starting basis with more column variables and fewer (arbitrary) slacks. A feasible solution may be reached earlier for some problems. If or , the default value is used.
Defaults |
This special keyword may be used to reset all optional parameters to their default values.
Expand Frequency |
This option is part of an anti-cycling procedure (see [Miscellaneous]) designed to allow progress even on highly degenerate problems.
For LP problems, the strategy is to force a positive step at every iteration, at the expense of violating the constraints by a small amount. Suppose that the value of the optional parameter Feasibility Tolerance is . Over a period of iterations, the feasibility tolerance actually used by h02ce (i.e., the working feasibility tolerance) increases from to (in steps of ).
For QP problems, the same procedure is used for iterations in which there is only one superbasic variable. (Cycling can only occur when the current solution is at a vertex of the feasible region.) Thus, zero steps are allowed if there is more than one superbasic variable, but otherwise positive steps are enforced.
Increasing the value of helps reduce the number of slightly infeasible nonbasic basic variables (most of which are eliminated during the resetting procedure). However, it also diminishes the freedom to choose a large pivot element (see the description of the optional parameter Pivot Tolerance).
If , the default value is used. If , the value is used and effectively no anti-cycling procedure is invoked.
Factorization Frequency |
If , at most basis changes will occur between factorizations of the basis matrix. For LP problems, the basis factors are usually updated at every iteration. For QP problems, fewer basis updates will occur as the solution is approached. The number of iterations between basis factorizations will therefore increase. During these iterations a test is made regularly according to the value of optional parameter Check Frequency to ensure that the linear constraints are satisfied. If necessary, the basis will be refactorized before the limit of updates is reached. If , the default value is used.
Feasibility Tolerance |
If , defines the maximum acceptable absolute violation in each constraint at a ‘feasible’ point (including slack variables). For example, if the variables and the coefficients in the linear constraints are of order unity, and the latter are correct to about five decimal digits, it would be appropriate to specify as . If , the default value is used.
h02ce attempts to find a feasible solution before optimizing the objective function. If the sum of infeasibilities cannot be reduced to zero, the problem is assumed to be infeasible. Let Sinf be the corresponding sum of infeasibilities. If Sinf is quite small, it may be appropriate to raise by a factor of or . Otherwise, some error in the data should be suspected. Note that the method does not attempt to find the minimum value of Sinf.
If the constraints and variables have been scaled (see the description of the optional parameter Scale Option), then feasibility is defined in terms of the scaled problem (since it is more likely to be meaningful).
Infinite Bound Size |
If , defines the ‘infinite’ bound in the definition of the problem constraints. Any upper bound greater than or equal to will be regarded as (and similarly any lower bound less than or equal to will be regarded as ). If , the default value is used.
Infinite Step Size |
If , specifies the magnitude of the change in variables that will be considered a step to an unbounded solution. (Note that an unbounded solution can occur only when the Hessian is not positive definite.) If the change in during an iteration would exceed the value of , the objective function is considered to be unbounded below in the feasible region. If , the default value is used.
Iteration Limit |
Iters |
Itns |
The value of specifies the maximum number of iterations allowed before termination. Setting and means that the workspace needed to start solving the problem will be computed and printed, but no iterations will be performed. If , the default value is used.
List |
Nolist |
Normally each optional parameter specification is printed as it is supplied. Optional parameter Nolist may be used to suppress the printing and optional parameter List may be used to restore printing.
LU Factor Tolerance |
LU Update Tolerance |
The values of and affect the stability and sparsity of the basis factorization , during refactorization and updates respectively. The lower triangular matrix is a product of matrices of the form
where the multipliers will satisfy . The default values of and usually strike a good compromise between stability and sparsity. For large and relatively dense problems, setting and to (say) may give a marked improvement in sparsity without impairing stability to a serious degree. Note that for band matrices it may be necessary to set in the range in order to achieve stability. If or , the default value is used.
LU Singularity Tolerance |
If , defines the singularity tolerance used to guard against ill-conditioned basis matrices. Whenever the basis is refactorized, the diagonal elements of are tested as follows. If or , the th column of the basis is replaced by the corresponding slack variable. If , the default value is used.
Minimize |
Maximize |
This option specifies the required direction of the optimization. It applies to both linear and nonlinear terms (if any) in the objective function. Note that if two problems are the same except that one minimizes and the other maximizes , their solutions will be the same but the signs of the dual variables and the reduced gradients (see [The Main Iteration]) will be reversed.
Monitoring File |
If and , monitoring information produced by h02ce is sent to a file with logical unit number . If and/or , the default value is used and hence no monitoring information is produced.
Optimality Tolerance |
If , is used to judge the size of the reduced gradients . By definition, the reduced gradients for basic variables are always zero. Optimality is declared if the reduced gradients for any nonbasic variables at their lower or upper bounds satisfy , and if for any superbasic variables. If , the default value is used.
Partial Price |
Note that this option does not apply to QP problems.
This option is recommended for large FP or LP problems that have significantly more variables than constraints (i.e., ). It reduces the work required for each pricing operation (i.e., when a nonbasic variable is selected to enter the basis). If , all columns of the constraint matrix are searched. If , and are partitioned to give roughly equal segments , for (modulo ). If the previous pricing search was successful on , the next search begins on the segments . If a reduced gradient is found that is larger than some dynamic tolerance, the variable with the largest such reduced gradient (of appropriate sign) is selected to enter the basis. If nothing is found, the search continues on the next segments , and so on. If , the default value is used.
Pivot Tolerance |
If , is used to prevent columns entering the basis if they would cause the basis to become almost singular. If , the default value is used.
Print Level |
The value of controls the amount of printout produced by h02ce, as indicated below. A detailed description of the printed output is given in [Description of the Printed Output] (summary output at each iteration and the final solution) and [Description of Monitoring Information] (monitoring information at each iteration). Note that the summary output will not exceed characters per line and that the monitoring information will not exceed characters per line. If , the default value is used. The following printout is sent to the current advisory message unit (as defined by (X04ABF not in this release)):
Output | |
No output. | |
The final solution only. | |
One line of summary output for each iteration (no printout of the final solution). | |
The final solution and one line of summary output for each iteration. |
The following printout is sent to the logical unit number defined by the Monitoring File:
Output | |
No output. | |
The final solution only. | |
One long line of output for each iteration (no printout of the final solution). | |
The final solution and one long line of output for each iteration. | |
The final solution, one long line of output for each iteration, matrix statistics (initial status of rows and columns, number of elements, density, biggest and smallest elements, etc.), details of the scale factors resulting from the scaling procedure (if or ), basis factorization statistics and details of the initial basis resulting from the crash procedure (if ; see [Parameters]). |
If and the unit number defined by Monitoring File is the same as that defined by (X04ABF not in this release), then the summary output is suppressed.
Rank Tolerance |
Scale Option |
This option enables you to scale the variables and constraints using an iterative procedure due to Fourer (see Hock and Schittkowski (1981)), which attempts to compute row scales and column scales such that the scaled matrix coefficients are as close as possible to unity. This may improve the overall efficiency of the method on some problems. (The lower and upper bounds on the variables and slacks for the scaled problem are redefined as and respectively, where if .)
If , no scaling is performed. If , all rows and columns of the constraint matrix are scaled. If , an additional scaling is performed that may be helpful when the solution is large; it takes into account columns of that are fixed or have positive lower bounds or negative upper bounds. If or , the default value is used.
Scale Tolerance |
Note that this option does not apply when .
If , is used to control the number of scaling passes to be made through the constraint matrix . At least (and at most ) passes will be made. More precisely, let denote the largest column ratio (i.e., in some sense) after the th scaling pass through . The scaling procedure is terminated if for some . Thus, increasing the value of from to (say) will probably increase the number of passes through . If or , the default value is used.
Superbasics Limit |
Note that this option does not apply to FP or LP problems.
The value of specifies ‘how nonlinear’ you expect the QP problem to be. If , the default value is used.