wcp_control_type structure#
#include <galahad_wcp.h> struct wcp_control_type { // components bool f_indexing; ipc_ error; ipc_ out; ipc_ print_level; ipc_ start_print; ipc_ stop_print; ipc_ maxit; ipc_ initial_point; ipc_ factor; ipc_ max_col; ipc_ indmin; ipc_ valmin; ipc_ itref_max; ipc_ infeas_max; ipc_ perturbation_strategy; ipc_ restore_problem; rpc_ infinity; rpc_ stop_p; rpc_ stop_d; rpc_ stop_c; rpc_ prfeas; rpc_ dufeas; rpc_ mu_target; rpc_ mu_accept_fraction; rpc_ mu_increase_factor; rpc_ required_infeas_reduction; rpc_ implicit_tol; rpc_ pivot_tol; rpc_ pivot_tol_for_dependencies; rpc_ zero_pivot; rpc_ perturb_start; rpc_ alpha_scale; rpc_ identical_bounds_tol; rpc_ reduce_perturb_factor; rpc_ reduce_perturb_multiplier; rpc_ insufficiently_feasible; rpc_ perturbation_small; rpc_ cpu_time_limit; rpc_ clock_time_limit; bool remove_dependencies; bool treat_zero_bounds_as_general; bool just_feasible; bool balance_initial_complementarity; bool use_corrector; bool space_critical; bool deallocate_error_fatal; bool record_x_status; bool record_c_status; char prefix[31]; struct fdc_control_type fdc_control; struct sbls_control_type sbls_control; };
detailed documentation#
control derived type as a C struct
components#
bool f_indexing
use C or Fortran sparse matrix indexing
ipc_ error
error and warning diagnostics occur on stream error
ipc_ out
general output occurs on stream out
ipc_ print_level
the level of output required is specified by print_level
ipc_ start_print
any printing will start on this iteration
ipc_ stop_print
any printing will stop on this iteration
ipc_ maxit
at most maxit inner iterations are allowed
ipc_ initial_point
how to choose the initial point. Possible values are
0 the values input in X, shifted to be at least prfeas from their nearest bound, will be used
1 the nearest point to the “bound average” 0.5(X_l+X_u) that satisfies the linear constraints will be used
ipc_ factor
the factorization to be used. Possible values are
0 automatic
1 Schur-complement factorization
2 augmented-system factorization
ipc_ max_col
the maximum number of nonzeros in a column of A which is permitted with the Schur-complement factorization
ipc_ indmin
an initial guess as to the integer workspace required by SBLS
ipc_ valmin
an initial guess as to the real workspace required by SBLS
ipc_ itref_max
the maximum number of iterative refinements allowed
ipc_ infeas_max
the number of iterations for which the overall infeasibility of the problem is not reduced by at least a factor .required_infeas_reduction before the problem is flagged as infeasible (see required_infeas_reducti
ipc_ perturbation_strategy
the strategy used to reduce relaxed constraint bounds. Possible values are
0 do not perturb the constraints
1 reduce all perturbations by the same amount with linear reduction
2 reduce each perturbation as much as possible with linear reduction
3 reduce all perturbations by the same amount with superlinear reduction
4 reduce each perturbation as much as possible with superlinear reduction
ipc_ restore_problem
indicate whether and how much of the input problem should be restored on output. Possible values are
0 nothing restored
1 scalar and vector parameters
2 all parameters
rpc_ infinity
any bound larger than infinity in modulus will be regarded as infinite
rpc_ stop_p
the required accuracy for the primal infeasibility
rpc_ stop_d
the required accuracy for the dual infeasibility
rpc_ stop_c
the required accuracy for the complementarity
rpc_ prfeas
initial primal variables will not be closer than prfeas from their bound
rpc_ dufeas
initial dual variables will not be closer than dufeas from their bounds
rpc_ mu_target
the target value of the barrier parameter. If mu_target is not positive, it will be reset to an appropriate value
rpc_ mu_accept_fraction
the complemtary slackness x_i.z_i will be judged to lie within an acceptable margin around its target value mu as soon as mu_accept_fraction * mu <= x_i.z_i <= ( 1 / mu_accept_fraction ) * mu; the perturbations will be reduced as soon as all of the complemtary slacknesses x_i.z_i lie within acceptable bounds. mu_accept_fraction will be reset to ensure that it lies in the interval (0,1]
rpc_ mu_increase_factor
the target value of the barrier parameter will be increased by mu_increase_factor for infeasible constraints every time the perturbations are adjusted
rpc_ required_infeas_reduction
if the overall infeasibility of the problem is not reduced by at least a factor required_infeas_reduction over .infeas_max iterations, the problem is flagged as infeasible (see infeas_max)
rpc_ implicit_tol
any primal or dual variable that is less feasible than implicit_tol will be regarded as defining an implicit constraint
rpc_ pivot_tol
the threshold pivot used by the matrix factorization. See the documentation for SBLS for details (obsolete)
rpc_ pivot_tol_for_dependencies
the threshold pivot used by the matrix factorization when attempting to detect linearly dependent constraints. See the documentation for SBLS for details (obsolete)
rpc_ zero_pivot
any pivots smaller than zero_pivot in absolute value will be regarded to zero when attempting to detect linearly dependent constraints (obsolete)
rpc_ perturb_start
the constraint bounds will initially be relaxed by perturb_start; this perturbation will subsequently be reduced to zero. If perturb_start < 0, the amount by which the bounds are relaxed will be computed automatically
rpc_ alpha_scale
the test for rank defficiency will be to factorize
rpc_ identical_bounds_tol
any pair of constraint bounds (c_l,c_u) or (x_l,x_u) that are closer tha identical_bounds_tol will be reset to the average of their values
rpc_ reduce_perturb_factor
the constraint perturbation will be reduced as follows:
if the variable lies outside a bound, the corresponding perturbation will be reduced to reduce_perturb_factor * current pertubation
( 1 - reduce_perturb_factor ) * violation
otherwise, if the variable lies within insufficiently_feasible of its bound the pertubation will be reduced to
reduce_perturb_multiplier * current pertubation
otherwise if will be set to zero
rpc_ reduce_perturb_multiplier
see reduce_perturb_factor
rpc_ insufficiently_feasible
see reduce_perturb_factor
rpc_ perturbation_small
if the maximum constraint pertubation is smaller than perturbation_small and the violation is smaller than implicit_tol, the method will deduce that there is a feasible point but no interior
rpc_ cpu_time_limit
the maximum CPU time allowed (-ve means infinite)
rpc_ clock_time_limit
the maximum elapsed clock time allowed (-ve means infinite)
bool remove_dependencies
the equality constraints will be preprocessed to remove any linear dependencies if true
bool treat_zero_bounds_as_general
any problem bound with the value zero will be treated as if it were a general value if true
bool just_feasible
if .just_feasible is true, the algorithm will stop as soon as a feasible point is found. Otherwise, the optimal solution to the problem will be found
bool balance_initial_complementarity
if .balance_initial_complementarity is .true. the initial complemetarity will be balanced
bool use_corrector
if .use_corrector, a corrector step will be used
bool space_critical
if .space_critical true, every effort will be made to use as little space as possible. This may result in longer computation time
bool deallocate_error_fatal
if .deallocate_error_fatal is true, any array/pointer deallocation error will terminate execution. Otherwise, computation will continue
bool record_x_status
if .record_x_status is true, the array inform.X_status will be allocated and the status of the bound constraints will be reported on exit.
bool record_c_status
if .record_c_status is true, the array inform.C_status will be allocated and the status of the general constraints will be reported on exit.
char prefix[31]
all output lines will be prefixed by .prefix(2:LEN(TRIM(.prefix))-1) where .prefix contains the required string enclosed in quotes, e.g. “string” or ‘string’
struct fdc_control_type fdc_control
control parameters for FDC
struct sbls_control_type sbls_control
control parameters for SBLS