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 a, i​ and ​r denote options that take character, integer and real values respectively;
  • the default value is used whenever the condition i100000000 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 ith iteration after the most recent basis factorization, a numerical test is made to see if the current solution x,s satisfies the linear constraints Ax-s=0. If the largest element of the residual vector r=Ax-s is judged to be too large, the current basis is refactorized and the basic variables recomputed to satisfy the constraints more accurately. If i<0, the default value is used. If i=0, the value i=99999999 is used and effectively no checks are made.
Crash Option
Note that this option does not apply when start="W" (see [Parameters]).
If start="C", an internal crash procedure is used to select an initial basis from various rows and columns of the constraint matrix A-I. The value of i determines which rows and columns are initially eligible for the basis, and how many times the crash procedure is called. If i=0, the all-slack basis B=-I is chosen. If i=1, the crash procedure is called once (looking for a triangular basis in all rows and columns of the linear constraint matrix A). If i=2, the crash procedure is called twice (looking at any equality constraints first followed by any inequality constraints). If i<0 or i>2, the default value is used.
If i=1​ or ​2, certain slacks on inequality rows are selected for the basis first. (If i=2, numerical values are used to exclude slacks that are close to a bound.) The crash procedure then makes several passes through the columns of A, 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 A while searching for a triangular basis. For each column of A, if amax is the largest element in the column, other nonzeros in that column are ignored if they are less than (or equal to) amax×r.
When r>0, 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 r<0 or r1, 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 i iterations, the feasibility tolerance actually used by h02ce (i.e., the working feasibility tolerance) increases from 0.5δ to δ (in steps of 0.5δ/i).
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 i 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 i<0, the default value is used. If i=0, the value i=99999999 is used and effectively no anti-cycling procedure is invoked.
Factorization Frequency
If i>0, at most i 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 Ax-s=0 are satisfied. If necessary, the basis will be refactorized before the limit of i updates is reached. If i0, the default value is used.
Feasibility Tolerance
If rε, r 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 r as 10-5. If r<ε, 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 r by a factor of 10 or 100. 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 r>0, r defines the ‘infinite’ bound bigbnd in the definition of the problem constraints. Any upper bound greater than or equal to bigbnd will be regarded as + (and similarly any lower bound less than or equal to -bigbnd will be regarded as -). If r0, the default value is used.
Infinite Step Size
If r>0, r 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 x during an iteration would exceed the value of r, the objective function is considered to be unbounded below in the feasible region. If r0, the default value is used.
Iteration Limit
Iters
Itns
The value of i specifies the maximum number of iterations allowed before termination. Setting i=0 and Print Level>0 means that the workspace needed to start solving the problem will be computed and printed, but no iterations will be performed. If i<0, 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 r1 and r2 affect the stability and sparsity of the basis factorization B=LU, during refactorization and updates respectively. The lower triangular matrix L is a product of matrices of the form
10μ1
where the multipliers μ will satisfy μri. The default values of r1 and r2 usually strike a good compromise between stability and sparsity. For large and relatively dense problems, setting r1 and r2 to 25 (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 r1 in the range 1r1<2 in order to achieve stability. If r1<1 or r2<1, the default value is used.
LU Singularity Tolerance
If r>0, r defines the singularity tolerance used to guard against ill-conditioned basis matrices. Whenever the basis is refactorized, the diagonal elements of U are tested as follows. If ujjr or ujj<r×maxiuij, the jth column of the basis is replaced by the corresponding slack variable. If r0, 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 fx and the other maximizes -fx, their solutions will be the same but the signs of the dual variables πi and the reduced gradients dj (see [The Main Iteration]) will be reversed.
Monitoring File
If i0 and Print Level>0, monitoring information produced by h02ce is sent to a file with logical unit number i. If i<0 and/or Print Level=0, the default value is used and hence no monitoring information is produced.
Optimality Tolerance
If rε, r is used to judge the size of the reduced gradients dj=gj-πTaj. 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 -r×max1,πdjr×max1,π, and if djr×max1,π for any superbasic variables. If r<ε, 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., nm). It reduces the work required for each pricing operation (i.e., when a nonbasic variable is selected to enter the basis). If i=1, all columns of the constraint matrix A-I are searched. If i>1, A and -I are partitioned to give i roughly equal segments Aj,Kj, for j=1,2,,p (modulo p). If the previous pricing search was successful on Aj-1,Kj-1, the next search begins on the segments Aj,Kj. 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 Aj+1,Kj+1, and so on. If i0, the default value is used.
Pivot Tolerance
If r>0, r is used to prevent columns entering the basis if they would cause the basis to become almost singular. If r0, the default value is used.
Print Level
The value of i 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 80 characters per line and that the monitoring information will not exceed 120 characters per line. If i<0, the default value is used. The following printout is sent to the current advisory message unit (as defined by (X04ABF not in this release)):
0iOutput
00No output.
01The final solution only.
05One line of summary output for each iteration (no printout of the final solution).
10The 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:
0iOutput
00No output.
01The final solution only.
05One long line of output for each iteration (no printout of the final solution).
10The final solution and one long line of output for each iteration.
20The 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 Scale Option=1 or 2), basis factorization statistics and details of the initial basis resulting from the crash procedure (if start="C"; see [Parameters]).
If Print Level>0 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 ri and column scales cj such that the scaled matrix coefficients a-ij=aij×cj/ri 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 l-j=lj/cj and u-j=uj/cj respectively, where cjrj-n if j>n.)
If i=0, no scaling is performed. If i=1, all rows and columns of the constraint matrix A are scaled. If i=2, an additional scaling is performed that may be helpful when the solution x is large; it takes into account columns of A-I that are fixed or have positive lower bounds or negative upper bounds. If i<0 or i>2, the default value is used.
Scale Tolerance
Note that this option does not apply when Scale Option=0.
If 0<r<1, r is used to control the number of scaling passes to be made through the constraint matrix A. At least 3 (and at most 10) passes will be made. More precisely, let ap denote the largest column ratio (i.e., 'biggest'element'smallest'element in some sense) after the pth scaling pass through A. The scaling procedure is terminated if apap-1×r for some p3. Thus, increasing the value of r from 0.9 to 0.99 (say) will probably increase the number of passes through A. If r0 or r1, the default value is used.
Superbasics Limit
Note that this option does not apply to FP or LP problems.
The value of i specifies ‘how nonlinear’ you expect the QP problem to be. If i0, the default value is used.

Inheritance Hierarchy

System..::..Object
  NagLibrary..::..H..::..h02ceOptions

See Also