|
MoochoPack : Framework for Large-Scale Optimization Algorithms
Version of the Day
|
The following is the contents of the file Moocho.opt.NLPAlgoConfigMamaJama which are options specific to the class MoochoPack::NLPAlgoConfigMamaJama and the class objects that it configures.
*** Begin Moocho.opt.NLPAlgoConfigMamaJama
*************************************************************************
*** All of these options can be used with the NLPAlgoConfigMamaJama
*** algorithm configuration class.
***
*** See the file Moocho.opt.DecompositionSystemStateStepBuilderStd
*** for more options that are used by this class.
***
*** This file will be maintained and will include every option that
*** users can set. Most of these options the user will want to leave
*** alone but they are there in any case.
***
**********************************************************
*** Options specific for the rSQP algorithm configuration
*** class NLPAlgoConfigMamaJama.
***
options_group NLPAlgoConfigMamaJama {
*** Variable Reduction range/null space decomposition
* max_basis_cond_change_frac = -1.0; *** [default]
*** (+-dbl) If < 0 then the solver will decide what value to use.
*** Otherwise this is the change in a very inexact condition number estimate
*** between iterations (see printed algorithm description) which triggers the
*** selection of a new basis.
*** Example values:
*** -1 : Allow solver to decide [default]
*** 0 : Switch to a new basis every iteration (not a good idea)
*** 100 : Switch to a new basis when change is more that 100?
*** 1e+50 : (big number) Never switch to a new basis.
*** Reduced Hessian Approximations
* exact_reduced_hessian = true; *** Use NLP Hessian info if available
* exact_reduced_hessian = false; *** Use quasi_newton [default]
*** If true and if the NLP supports second order information
*** (hessian of the lagrangian HL) then the exact reduced hessian
*** rHL = Z'*HL*Z will be computed at each iteration.
* quasi_newton = AUTO; *** Let solver decide dynamically [default]
* quasi_newton = BFGS; *** Dense BFGS
* quasi_newton = LBFGS; *** Limited memory BFGS
*** [exact_reduced_hessian == false]
*** ToDo: Finish documentation!
* num_lbfgs_updates_stored = -1; *** [default]
*** [quasi_newton == LBFGS] (+-int) If < 0 then let solver decide
*** otherwise this is the maximum number of update vectors stored
*** for limited memory LBFGS.
* lbfgs_auto_scaling = true; *** (default)
* lbfgs_auto_scaling = false;
*** [quasi_newton == LBFGS] If true then auto scaling of initial
*** hessian approximation will be use for LBFGS.
* hessian_initialization = AUTO; *** Let the solver decide dynamically [default]
* hessian_initialization = SERIALIZE; *** rHL_(0) read from file (see ReducedHessianSerialization)
* hessian_initialization = IDENTITY; *** rHL_(0) = I
* hessian_initialization = FINITE_DIFF_SCALE_IDENTITY; *** rHL_(0) = ||fd|| * I
* hessian_initialization = FINITE_DIFF_DIAGONAL; *** rHL_(0) = diag(max(fd(i),small),i)
* hessian_initialization = FINITE_DIFF_DIAGONAL_ABS; *** rHL_(0) = diag(abs(fd(i))
*** [exact_reduced_hessian == false] Determines how the quasi-newton hessian is initialized.
*** ToDo: Finis documentation!
*** QP solvers
* qp_solver = AUTO; *** Let the solver decide dynamically
* qp_solver = QPKWIK; *** Primal-dual, active set, QR
* qp_solver = QPOPT; *** Primal, active set, null space, Gill et. al.
* qp_solver = QPSOL; *** Primal, active set, null space, Gill et. al.
* qp_solver = QPSCHUR; *** [default] Primal-dual, active set, schur complement
*** QP solver to use to solve the reduced space QP subproblem (null
*** space step). Note that only QPSCHUR ships with MOOCHO by default.
* reinit_hessian_on_qp_fail = true; *** [default]
* reinit_hessian_on_qp_fail = false;
*** If true, then if a QPFailure exception is thrown (see printed algorithm)
*** then the Hessian approximation will be reinitialized and the QP solver will
*** attempt to solve the QP again.
*** Line search methods
* line_search_method = AUTO; *** Let the solver decide dynamically [default]
* line_search_method = NONE; *** Take full steps at every iteration
* line_search_method = DIRECT; *** Use standard Armijo backtracking
* line_search_method = 2ND_ORDER_CORRECT; *** Like DIRECT except computes corrections for
* *** c(x) before backtracking line search
* line_search_method = WATCHDOG; *** Like DIRECT except uses watchdog type trial steps
* line_search_method = FILTER; *** [default] Use the Filter line search method
*** Options:
*** AUTO : Let the solver decide dynamically what line search method to use (if any)
*** NONE : Take full steps at every iteration. For most problems this is a bad idea.
*** However, for some problems this can help when starting close to the solution usually.
*** DIRECT : Use a standard Armijo backtracking line search at every iteration.
*** 2ND_ORDER_CORRECT : Like DIRECT except computes corrections for before applying
*** the backtracking line search (see options_group LineSearch2ndOrderCorrect).
*** This can help greatly on some problems and can counter act the Maritos effect.
*** FILTER : Use the filter line search. Here we accept either a decrease in the
*** objective function for the constraints. See "Global and Local Convergence of
*** Line Search Filter Methods for Nonlinear Programming" by Waechter and Biegler.
* merit_function_type = AUTO; *** [line_search_method != NONE] Let solver decide
* merit_function_type = L1; *** [line_search_method != NONE] phi(x) = f(x) + mu*||c(x)||1
* merit_function_type = MODIFIED_L1; *** [line_search_method != NONE] phi(x) = f(x) + sum(mu(j),|cj(x)|,j)
* merit_function_type = MODIFIED_L1_INCR; *** [line_search_method != NONE] Like MODIFIED_L1 except mu(j) are altered in order to take larger steps
*** Determines the type of merit function used when the line search
*** method uses a merit function.
* l1_penalty_parameter_update = AUTO; *** [merit_function_type == L1] let solver decide
* l1_penalty_parameter_update = WITH_MULT; *** [merit_function_type == L1] Use Lagrange multipliers to update mu
* l1_penalty_parameter_update = MULT_FREE; *** [merit_function_type == L1] Don't use Lagrange multipliers to update mu
*** Determines how the penalty parameter is updated for the L1 merit function.
}
*********************************************************************
*** Options for serialization of the reduced Hessian
***
*** [NLPAlgoConfigMamaJama::hessian_initialization == SERIALIZE]
***
options_group ReducedHessianSerialization {
* reduced_hessian_input_file_name = "reduced_hessian.in"; *** [default]
* reduced_hessian_input_file_name = ""; *** Does not read from file
*** The name of a file that will be used to read in the reduced Hessian
*** in a format that is compatible with the internal implementation.
* reduced_hessian_output_file_name = "reduced_hessian.out"; *** [default]
* reduced_hessian_output_file_name = ""; *** Does not write to file
*** The name of a file that will be used to write in the reduced Hessian.
*** This reduced Hessian can then be read back in using the
*** reduced_hessian_input_file_name option.
}
*********************************************************************
*** Options for finite difference initialization of reduced hessian.
***
*** [NLPAlgoConfigMamaJama::hessian_initialization == FINITE_DIFF_*]
***
options_group InitFinDiffReducedHessian {
* initialization_method = SCALE_IDENTITY;
* initialization_method = SCALE_DIAGONAL;
* initialization_method = SCALE_DIAGONAL_ABS;
* max_cond = 1e+1;
* min_diag = 1e-8;
* step_scale = 1e-1;
}
*********************************************************************
*** Options for checking for skipping the BFGS update.
***
*** [NLPAlgoConfigMamaJama::exact_hessian == false]
***
options_group CheckSkipBFGSUpdateStd {
* skip_bfgs_prop_const = 10.0; *** (+dbl)
}
*********************************************************************
*** Options for BFGS updating (dense or limited memory)
***
*** [NLPAlgoConfigMamaJama::exact_hessian == false]
***
options_group BFGSUpdate {
* rescale_init_identity = true; *** [default]
* rescale_init_identity = false;
*** If true, then rescale the initial identity matrix at 2nd iteration
* use_dampening = true; *** [default]
* use_dampening = false;
*** Use dampened BFGS update
* secant_testing = DEFAULT; *** Test secant condition if check_results==true (see above) [default]
* secant_testing = TEST; *** Always test secant condition
* secant_testing = NO_TEST; *** Never test secant condition
* secant_warning_tol = 1e-6; *** [default]
* secant_error_tol = 1e-1; *** [default]
}
*********************************************************************
*** Options for the convergence test.
***
*** See the printed step description (i.e. 'MoochoAlgo.out') for a
*** description of what these options do.
***
options_group CheckConvergenceStd {
* scale_opt_error_by = SCALE_BY_NORM_2_X;
* scale_opt_error_by = SCALE_BY_NORM_INF_X;
* scale_opt_error_by = SCALE_BY_ONE; *** [default]
* scale_feas_error_by = SCALE_BY_NORM_2_X;
* scale_feas_error_by = SCALE_BY_NORM_INF_X;
* scale_feas_error_by = SCALE_BY_ONE; *** [default]
* scale_comp_error_by = SCALE_BY_NORM_2_X;
* scale_comp_error_by = SCALE_BY_NORM_INF_X;
* scale_comp_error_by = SCALE_BY_ONE; *** [default]
*** Determines what all of the error measures are scaled by when checking convergence
*** SCALE_BY_NORM_2_X : Scale the optimality conditions by 1/(1+||x_k||2)
*** SCALE_BY_NORM_INF_X : Scale the optimality conditions by 1/(1+||x_k||inf)
*** SCALE_BY_ONE : Scale the optimality conditions by 1
* scale_opt_error_by_Gf = true; *** [default]
* scale_opt_error_by_Gf = false;
*** Determines if the linear dependence of gradients (i.e. ||rGL_k||inf or ||GL_k||inf)
*** is scaled by the gradient of the objective function or not.
*** true : Scale ||rGL_k||inf or ||GL_k|| by an additional 1/(1+||Gf||inf)
*** false : Scale ||rGL_k||inf or ||GL_k|| by an additional 1 (i.e. no extra scaling)
}
****************************************************************
*** Options for the TangentalStepWithInequStd_Step
***
*** This used for NLPs that have bounds.
***
options_group TangentialStepWithInequStd {
* warm_start_frac = 0.8; *** [default]
* warm_start_frac = 0.0; *** Never do a warm start
* warm_start_frac = 1.0; *** Do a warm start as soon a possible
*** (+dbl) Determines the number of inequality constraints that
*** must be the same any two rSQP iterations in order for
*** a warm start to be used on the next rSQP iteration.
* qp_testing = QP_TEST_DEFAULT; *** [default] Test if check_results==true
* qp_testing = QP_TEST; *** Always test
* qp_testing = QP_NO_TEST; *** Never test
*** Determines if the postconditions for the QP solve are checked
*** or not.
* primal_feasible_point_error = true; *** [default] Throw exception on PRIMAL_FEASIBLE_POINT
* primal_feasible_point_error = false; *** No throw exception on PRIMAL_FEASIBLE_POINT
* dual_feasible_point_error = true; *** [default] Throw exception on DUAL_FEASIBLE_POINT
* dual_feasible_point_error = false; *** No throw exception on DUAL_FEASIBLE_POINT
}
********************************************************************
*** Options for the QPSolverRelaxedTester object that is used
*** to test the QP solution.
***
*** This is only used when the NLP has bounds and a QP solver is used.
*** This sets testing options for the TangentalStepWithInequalStd_Step
*** object.
***
*** See the MoochoAlgo.opt file for details.
***
options_group QPSolverRelaxedTester {
* opt_warning_tol = 1e-10; *** [default] Tolerances for optimality conditions
* opt_error_tol = 1e-5; *** [default]
* feas_warning_tol = 1e-10; *** [default] Tolerances for feasibility
* feas_error_tol = 1e-5; *** [default]
* comp_warning_tol = 1e-10; *** [default] Tolerances for complementarity
* comp_error_tol = 1e-5; *** [default]
}
****************************************************************
*** Options for the primal-dual, active-set, schur-complement
*** QP solver QPSchur.
***
*** [NLPAlgoConfigMamaJama::qp_solver == QPSCHUR]
***
options_group QPSolverRelaxedQPSchur {
*** Convergence criteria and algorithm control options
* max_qp_iter_frac = 10.0; *** (+dbl) max_qp_itr = max_qp_itr_frac * (# variables)
* bounds_tol = 1e-10; *** (+dbl) feasibility tolerance for bound constraints
* inequality_tol = 1e-10; *** (+dbl) feasibility tolerance for general inequality constraints
* equality_tol = 1e-10; *** (+dbl) feasibility tolerance for general equality constraints
* loose_feas_tol = 1e-9; *** (+dbl) (Expert use only)
* dual_infeas_tol = 1e-12; *** (+dbl) allowable dual infeasibility before reporting an error
* huge_primal_step = 1e+20; *** (+dbl) value of a near infinite primal step
* huge_dual_step = 1e+20; *** (+dbl) value of a near infinite dual step
* bigM = 1e+10; *** (+dbl) value or relaxation penalty in objective
* iter_refine_at_solution = true; *** [default]
* iter_refine_at_solution = false;
*** If true then iterative refinement will be performed at the solution of
*** the QP in every case.
* iter_refine_min_iter = 1; *** [default]
*** Minimum number of iterative refinement iterations to perform when
*** using iterative refinement.
*** Example values:
*** 0 : Don't perform any iterations of iterative refinement if you don't have to
*** 1 : Perform at least one step if iterative refinement no matter what the
*** residual is.
* iter_refine_max_iter = 3; *** [default]
*** Maximum number of steps of iterative refinement to perform.
*** This helps to keep down the cost of iterative refinement but
*** can cause the QP method to fail due to ill-conditioning and roundoff.
*** This number should be kept small since the target residuals may not
*** be obtainable.
*** Example values:
*** 0 : Never perform any steps of iterative refinement
*** 1 : Never perform more than one step of iterative refinement
*** 10 : Never perform more than 10 steps of iterative refinement.
* iter_refine_opt_tol = 1e-12; *** [default]
*** Iterative refinement convergence tolerance for the optimality
*** conditions of the QP. Specifically this is compared to the
*** scaled linear dependence of gradients condition.
*** Example values:
*** 1e-50 : (very small number) Do iterative refinement until
*** iter_refine_max_iter is exceeded.
*** 1e-12 : [default]
*** 1e+50 : (very big number) Allow convergence of iterative refinement at
*** any time.
* iter_refine_feas_tol = 1e-12; *** [default]
*** Iterative refinement convergence tolerance for the feasibility
*** conditions of the QP. Specifically this is compared to the
*** scaled residual of the active constraints (equalities and inequalities)
*** Example values:
*** 1e-50 : (very small number) Do iterative refinement until
*** iter_refine_max_iter is exceeded.
*** 1e-12 : [default]
*** 1e+50 : (very big number) Allow convergence of iterative refinement at
*** any time.
* inequality_pick_policy = ADD_BOUNDS_THEN_MOST_VIOLATED_INEQUALITY; *** [default]
* inequality_pick_policy = ADD_BOUNDS_THEN_FIRST_VIOLATED_INEQUALITY; *** not supported yet!
* inequality_pick_policy = ADD_MOST_VIOLATED_BOUNDS_AND_INEQUALITY;
*** Warning and error tolerances
* warning_tol = 1e-10; *** General testing warning tolerance
* error_tol = 1e-5; *** General testing error tolerance
* pivot_warning_tol = 1e-8; *** [default]
*** (+dbl) Minimum relative tolerance for a pivot element in the schur complement
*** under which a warning message for near singularity will be printed
*** (see MatrixSymAddDelUpdateable).
*** Example values:
*** 0.0: Don't print any warning messages about near singularity.
*** 1e-6: default
*** 2.0: ( > 1 ) Show the pivot tolerance of every update!
* pivot_singular_tol = 1e-11; *** [default]
*** (+dbl) Minimum relative tolerance for a pivot element in the schur complement
*** under which the matrix is considered singular and an error message will be printed
*** (see MatrixSymAddDelUpdateable).
*** Example values:
*** 0.0: Allow any numerically nonsingular matrix.
*** 1e-8: default
*** 2.0: ( > 1 ) Every matrix is singular (makes no sense!)
* pivot_wrong_inertia_tol = 1e-11; *** [default]
*** (+dbl) Minimum relative tolerance for a pivot element in the schur complement
*** over which the matrix is considered to have the wrong inertia rather than
*** being singular and an error message will be printed
*** (see MatrixSymAddDelUpdateable).
*** Example values:
*** 0.0: Any pivot with the wrong sign will be considered to have the wrong inertia
*** 1e-8: default
*** 2.0: ( > 1 ) Every matrix has the wrong inertia (makes no sense!)
*** Output control
* print_level = USE_INPUT_ARG; *** [default] Use the input argument to solve_qp(...)
* print_level = NO_OUTPUT;
* print_level = OUTPUT_BASIC_INFO;
* print_level = OUTPUT_ITER_SUMMARY;
* print_level = OUTPUT_ITER_STEPS;
* print_level = OUTPUT_ACT_SET;
* print_level = OUTPUT_ITER_QUANTITIES;
}
********************************************************************
*** Options for the direct line search object that is used in all the
*** line search methods for the SQP step.
***
*** [NLPAlgoConfigMamaJama::line_search_method != NONE]
***
*** See the MoochoAlgo.opt file for details.
***
options_group DirectLineSearchArmQuadSQPStep {
* slope_frac = 1.0e-4;
* min_frac_step = 0.1:
* max_frac_step = 0.5;
* max_ls_iter = 20;
}
*******************************************************************
*** Options for the watchdog line search.
***
*** [NLPAlgoConfigMamaJama::line_search_method = WATCHDOG]
***
*** Warning! The watchdog option is not currently supported!
***
options_group LineSearchWatchDog {
* opt_kkt_err_threshold = 1e-3; *** (+dbl)
* feas_kkt_err_threshold = 1e-3; *** (+dbl)
*** Start the watchdog linesearch when opt_kkt_err_k < opt_kkt_err_threshold and
*** feas_kkt_err_k < feas_kkt_err_threshold
}
*******************************************************************
*** Options for the second order correction line search.
***
*** [NLPAlgoConfigMamaJama::line_search_method == 2ND_ORDER_CORRECT]
***
*** Warning! The 2nd order correction option is not currently supported!
***
options_group LineSearch2ndOrderCorrect {
* newton_olevel = PRINT_USE_DEFAULT; *** O(?) output [default]
* newton_olevel = PRINT_NOTHING; *** No output
* newton_olevel = PRINT_SUMMARY_INFO; *** O(max_newton_iter) output
* newton_olevel = PRINT_STEPS; *** O(max_newton_iter) output
* newton_olevel = PRINT_VECTORS; *** O(max_newton_iter*n) output
*** Determines the amount of output printed to the journal output stream.
*** PRINT_USE_DEFAULT: Use the output level from the overall algorithm
*** to print comparable output (see journal_output_level).
*** PRINT_NOTHING: Don't print anything (overrides default print level).
*** PRINT_SUMMARY_INFO: Print a nice little summary table showing the sizes of the
*** newton steps used to compute a feasibility correction as well as what
*** progress is being made.
*** PRINT_STEPS: Don't print a summary table and instead print some more detail
*** as to what computations are being performed etc.
*** PRINT_VECTORS: Print out relevant vectors as well for the feasibility Newton
*** iterations.
* constr_norm_threshold = 1.0; *** [default]
*** (+dbl) Tolerance for ||c_k||inf below which a 2nd order correction step
*** will be considered (see printed description). Example values:
*** 0.0: Never consider computing a correction.
*** 1e-3: Consider a correction if and only if ||c_k||inf <= 1e-3
*** 1e+50: (big number) Consider a correction regardless of ||c_k||inf.
* constr_incr_ratio = 10.0; *** [default]
*** (+dbl) Tolerance for ||c_kp1||inf/(1.0+||c_k||inf) below which a 2nd order
*** correction step will be considered (see printed description). Example values:
*** 0.0: Consider computing a correction only if ||c_kp1||inf is zero.
*** 10.0: Consider computing a correction if and only if
*** ||c_kp1||inf/(1.0+||c_k||inf) < 10.0.
*** 1e+50: (big number) Consider a correction regardless how big ||c_kp1||inf is.
* after_k_iter = 0; *** [default]
*** (+int) Number of SQP iterations before a 2nd order correction will be considered
*** (see printed description). Example values:
*** 0: Consider computing a correction right away at the first iteration.
*** 2: Consider computing a correction when k >= 2.
*** 999999: (big number) Never consider a 2nd order correction.
* forced_constr_reduction = LESS_X_D;
* forced_constr_reduction = LESS_X; *** [default]
*** Determine the amount of reduction required for c(x_k+d+w).
*** LESS_X_D: phi(c(x_k+d+w)) < forced_reduct_ratio * phi(c(x_k+d)) is all that is required.
*** As long as a feasible step can be computed, only one newton
*** iteration should be required for this.
*** LESS_X: phi(c(x_k+d+w)) < forced_reduct_ratio * phi(c(x_k)) is required.
*** In general, this may require several feasibility step calculations
*** and several newton iterations. Of course the maximum number of
*** newton iterations may be exceeded before this is achieved.
* forced_reduct_ratio = 1.0; *** [default]
*** (+dbl) (< 1) Fraction of reduction in phi(c(x)) for required reduction.
*** Example values:
*** 0.0: The constraints must be fully converged and newton iterations will
*** performed until max_newton_itr is exceeded.
*** 0.5: Require an extra 50% of the required reduction.
*** 1.0: Don't require any extra reduction.
* max_step_ratio = 1.0; *** [default]
*** (+dbl) Maximum ratio of ||w^p||inf/||d||inf allowed for correction step w^p before
*** a line search along phi(c(x_k+d+b*w^p)) is performed. The purpose of this parameter
*** is to limit the number of line search iterations needed for each feasibility
*** step and to keep the full w = sum(w^p,p=1...) from getting too big. Example values:
*** 0.0: Don't allow any correction step.
*** 0.1: Allow ||w^p||inf/||d||inf <= 0.1.
*** 1.0: Allow ||w^p||inf/||d||inf <= 1.0.
*** 1e+50: (big number) Allow ||w^p||inf/||d||inf to be a big as possible.
* max_newton_iter = 3; *** [default]
*** (+int) Limit the number of newton feasibility iterations (with line searches)
*** allowed. Example values:
*** 0: Don't allow any newton iterations (no 2nd order correction).
*** 3: Allow 3 newton iterations
*** 999999: Allow any number of newton iterations (not a good idea)
}
*******************************************************************
*** Options for the filter search.
***
*** [NLPAlgoConfigMamaJama::line_search_method = FILTER]
***
*** See the MoochoAlgo.out file for details
***
options_group LineSearchFilter {
* gamma_theta = 1e-5; *** [default]
* gamma_f = 1e-5; *** [default]
* f_min = UNBOUNDED; *** [default]
* f_min = 0.0; *** If 0 is minimum ...
* gamma_alpha = 5e-2; *** [default]
* delta = 1e-4; *** [default]
* s_theta = 1.1; *** [default]
* s_f = 2.3; *** [default]
* theta_small_fact = 1e-4; *** [default]
* theta_max = 1e10; *** [default]
* eta_f = 1e-4; *** [default]
* back_track_frac = 0.5; *** [default]
}
*******************************************************************
*** Options for generating feasibility steps for reduced space.
***
*** [NLPAlgoConfigMamaJama::line_search_method == 2ND_ORDER_CORRECT]
***
*** Warning! The 2nd order correction option is not currently supported!
***
options_group FeasibilityStepReducedStd {
* qp_objective = OBJ_MIN_FULL_STEP;
* qp_objective = OBJ_MIN_NULL_SPACE_STEP;
* qp_objective = OBJ_RSQP;
* qp_testing = QP_TEST_DEFAULT;
* qp_testing = QP_TEST;
* qp_testing = QP_NO_TEST;
}
******************************************************************
*** Options for the direct line search object for
*** the newton steps of the 2nd order correction (see above).
***
*** [NLPAlgoConfigMamaJama::line_search_method == 2ND_ORDER_CORRECT]
***
*** Warning! The 2nd order correction option is not currently supported!
***
options_group DirectLineSearchArmQuad2ndOrderCorrectNewton {
* slope_frac = 1.0e-4;
* min_frac_step = 0.1:
* max_frac_step = 0.5;
* max_ls_iter = 20;
}
******************************************************************
*** Change how the penalty parameters for the merit function
*** are adjusted.
***
*** [NLPAlgoConfigMamaJama::line_search_method != NONE]
***
options_group MeritFuncPenaltyParamUpdate {
* small_mu = 1e-6;
* min_mu_ratio = 1e-8
* mult_factor = 7.5e-4;
* kkt_near_sol = 1e-1;
}
*****************************************************************
*** Change how the penalty parameters for the modified
*** L1 merit function are increased.
***
*** [NLPAlgoConfigMamaJama::line_search_method != NONE]
*** [NLPAlgoConfigMamaJama::merit_function_type == MODIFIED_L1_INCR]
***
options_group MeritFuncModifiedL1LargerSteps {
* after_k_iter = 3;
*** (+int) Number of SQP iterations before considering increasing penalties.
*** Set to 0 to start at the first iteration.
* obj_increase_threshold = 1e-4;
*** (+-dbl) Consider increasing penalty parameters when the relative
*** increase in the objective function is greater than this value.
*** Set to a very large negative number (i.e. -1e+100) to always
*** allow increasing the penalty parameters.
* max_pos_penalty_increase = 1.0;
*** (+dbl) Ratio the multipliers are allowed to be increased.
*** Set to a very large number (1e+100) to allow increasing the penalties
*** to any value if it will help in taking a larger step. This will
*** in effect put all of the weight of the constraints and will force
*** the algorithm to only minimize the infeasibility and ignore
*** optimality.
* pos_to_neg_penalty_increase = 1.0; *** (+dbl)
* incr_mult_factor = 1e-4; *** (+dbl)
}
*** End Moocho.opt.NLPAlgoConfigMamaJama
1.7.6.1