dqp_control_type structure#
struct dqp_control_type{T} f_indexing::Bool error::Int32 out::Int32 print_level::Int32 start_print::Int32 stop_print::Int32 print_gap::Int32 dual_starting_point::Int32 maxit::Int32 max_sc::Int32 cauchy_only::Int32 arc_search_maxit::Int32 cg_maxit::Int32 explore_optimal_subspace::Int32 restore_problem::Int32 sif_file_device::Int32 qplib_file_device::Int32 rho::T infinity::T stop_abs_p::T stop_rel_p::T stop_abs_d::T stop_rel_d::T stop_abs_c::T stop_rel_c::T stop_cg_relative::T stop_cg_absolute::T cg_zero_curvature::T max_growth::T identical_bounds_tol::T cpu_time_limit::T clock_time_limit::T initial_perturbation::T perturbation_reduction::T final_perturbation::T factor_optimal_matrix::Bool remove_dependencies::Bool treat_zero_bounds_as_general::Bool exact_arc_search::Bool subspace_direct::Bool subspace_alternate::Bool subspace_arc_search::Bool space_critical::Bool deallocate_error_fatal::Bool generate_sif_file::Bool generate_qplib_file::Bool symmetric_linear_solver::NTuple{31,Cchar} definite_linear_solver::NTuple{31,Cchar} unsymmetric_linear_solver::NTuple{31,Cchar} sif_file_name::NTuple{31,Cchar} qplib_file_name::NTuple{31,Cchar} prefix::NTuple{31,Cchar} fdc_control::fdc_control_type{T} sls_control::sls_control_type{T} sbls_control::sbls_control_type{T} gltr_control::gltr_control_type{T}
detailed documentation#
control derived type as a Julia structure
components#
Bool f_indexing
use C or Fortran sparse matrix indexing
Int32 error
error and warning diagnostics occur on stream error
Int32 out
general output occurs on stream out
Int32 print_level
the level of output required is specified by print_level
Int32 start_print
any printing will start on this iteration
Int32 stop_print
any printing will stop on this iteration
Int32 print_gap
printing will only occur every print_gap iterations
Int32 dual_starting_point
which starting point should be used for the dual problem
-1 user supplied comparing primal vs dual variables
0 user supplied
1 minimize linearized dual
2 minimize simplified quadratic dual
3 all free (= all active primal costraints)
4 all fixed on bounds (= no active primal costraints)
Int32 maxit
at most maxit inner iterations are allowed
Int32 max_sc
the maximum permitted size of the Schur complement before a refactorization is performed (used in the case where there is no Fredholm Alternative, 0 = refactor every iteration)
Int32 cauchy_only
a subspace step will only be taken when the current Cauchy step has changed no more than than cauchy_only active constraints; the subspace step will always be taken if cauchy_only < 0
Int32 arc_search_maxit
how many iterations are allowed per arc search (-ve = as many as require
Int32 cg_maxit
how many CG iterations to perform per DQP iteration (-ve reverts to n+1)
Int32 explore_optimal_subspace
once a potentially optimal subspace has been found, investigate it
0 as per an ordinary subspace
1 by increasing the maximum number of allowed CG iterations
2 by switching to a direct method
Int32 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
Int32 sif_file_device
specifies the unit number to write generated SIF file describing the current problem
Int32 qplib_file_device
specifies the unit number to write generated QPLIB file describing the current problem
T rho
the penalty weight, rho. The general constraints are not enforced explicitly, but instead included in the objective as a penalty term weighted by rho when rho > 0. If rho <= 0, the general constraints are explicit (that is, there is no penalty term in the objective function)
T infinity
any bound larger than infinity in modulus will be regarded as infinite
T stop_abs_p
the required absolute and relative accuracies for the primal infeasibilies
T stop_rel_p
see stop_abs_p
T stop_abs_d
the required absolute and relative accuracies for the dual infeasibility
T stop_rel_d
see stop_abs_d
T stop_abs_c
the required absolute and relative accuracies for the complementarity
T stop_rel_c
see stop_abs_c
T stop_cg_relative
the CG iteration will be stopped as soon as the current norm of the preconditioned gradient is smaller than max( stop_cg_relative * initial preconditioned gradient, stop_cg_absolute )
T stop_cg_absolute
see stop_cg_relative
T cg_zero_curvature
threshold below which curvature is regarded as zero if CG is used
T max_growth
maximum growth factor allowed without a refactorization
T identical_bounds_tol
any pair of constraint bounds (c_l,c_u) or (x_l,x_u) that are closer than identical_bounds_tol will be reset to the average of their values
T cpu_time_limit
the maximum CPU time allowed (-ve means infinite)
T clock_time_limit
the maximum elapsed clock time allowed (-ve means infinite)
T initial_perturbation
the initial penalty weight (for DLP only)
T perturbation_reduction
the penalty weight reduction factor (for DLP only)
T final_perturbation
the final penalty weight (for DLP only)
Bool factor_optimal_matrix
are the factors of the optimal augmented matrix required? (for DLP only)
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 exact_arc_search
if .exact_arc_search is true, an exact piecewise arc search will be performed. Otherwise an ineaxt search using a backtracing Armijo strategy will be employed
Bool subspace_direct
if .subspace_direct is true, the subspace step will be calculated using a direct (factorization) method, while if it is false, an iterative (conjugate-gradient) method will be used.
Bool subspace_alternate
if .subspace_alternate is true, the subspace step will alternate between a direct (factorization) method and an iterative (GLTR conjugate-gradient) method. This will override .subspace_direct
Bool subspace_arc_search
if .subspace_arc_search is true, a piecewise arc search will be performed along the subspace step. Otherwise the search will stop at the firstconstraint encountered
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 generate_sif_file
if .generate_sif_file is .true. if a SIF file describing the current problem is to be generated
Bool generate_qplib_file
if .generate_qplib_file is .true. if a QPLIB file describing the current problem is to be generated
char symmetric_linear_solver[31]
indefinite linear equation solver set in symmetric_linear_solver
char definite_linear_solver[31]
definite linear equation solver
char unsymmetric_linear_solver[31]
unsymmetric linear equation solver
NTuple{31,Cchar} sif_file_name
name of generated SIF file containing input problem
NTuple{31,Cchar} qplib_file_name
name of generated QPLIB file containing input problem
NTuple{31,Cchar} prefix
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 sls_control_type sls_control
control parameters for SLS
struct sbls_control_type sbls_control
control parameters for SBLS
struct gltr_control_type gltr_control
control parameters for GLTR