Optional parameters
Algencan has a set of parameters that can adjust the solver algorithm.
epsfeas: a Float, $\epsilon_{feas}$, to specify the feasibility tolerance of the Algencan main stopping criterion of convergence.epsopt: a Float, $\epsilon_{opt}$, to specify the optimality tolerance of the Algencan main stopping criterion of convergence.efstain: a Float, $\epsilon_{fstain}$, to specify the feasibility tolerance of the Algencan main stopping criterion to an infeasible point. A possible value for this parameter is $\sqrt{\epsilon_{feas}}$.eostain: a Float, $\epsilon_{ostain}$, to specify the optimality tolerance of the Algencan main stopping criterion to an infeasible point. A possible value for this parameter is $\epsilon_{opt}^{1.5}$.efacc: a Float, $\epsilon_{facc}$, to specify the feasibility tolerance of the Algencan threshold to launch the acceleration process.eoacc: a Float, $\epsilon_{oacc}$, to specify the optimality tolerance of the Algencan threshold to launch the acceleration process.outputfnm: a String to specify the output filename.specfnm: a String to specify the specification filename, which stores the additional parameters as shown below.
These parameters can be defined as optional keywords in the solver function call, e.g:
algencan(nlp; epsfeas=1.0e-10, epsopt=1.0e-10, outputfnm='output.dat')Additional optional parameters
Algencan also provides a set of additional parameters (case-insensitive) that can be defined in the specification file provided by specfnm. The table below lists these parameters.
| Parameter | Additional value |
|---|---|
| SKIP-ACCELERATION-PROCESS | |
| LINEAR-SYSTEMS-SOLVER-IN-ACCELERATION-PROCESS | String |
| TRUST-REGIONS-INNER-SOLVER | String (not required) |
| LINEAR-SYSTEMS-SOLVER-IN-TRUST-REGIONS | String |
| NEWTON-LINE-SEARCH-INNER-SOLVER | String (not required) |
| LINEAR-SYSTEMS-SOLVER-IN-NEWTON-LINE-SEARCH | String |
| TRUNCATED-NEWTON-LINE-SEARCH-INNER-SOLVER | String (not required) |
| MATRIX-VECTOR-PRODUCT-IN-TRUNCATED-NEWTON-LS | String |
| FIXED-VARIABLES-REMOVAL-AVOIDED | |
| ADD-SLACKS | |
| OBJECTIVE-AND-CONSTRAINTS-SCALING-AVOIDED | |
| IGNORE-OBJECTIVE-FUNCTION | |
| ITERATIONS-OUTPUT-DETAIL | Int |
| NUMBER-OF-ARRAYS-COMPONENTS-IN-OUTPUT | Int |
| SOLUTION-FILENAME | String |
| ACCELERATION-PROCESS-ITERATIONS-LIMIT | Int |
| INNER-ITERATIONS-LIMIT | Int |
| OUTER-ITERATIONS-LIMIT | Int |
| PENALTY-PARAMETER-INITIAL-VALUE | Float |
| LARGEST-PENALTY-PARAMETER-ALLOWED | Float |
As an illustration, the following expressions may form part of a valid specification file:
# single line comments with '#' are allowed
SKIP-ACCELERATION-PROCESS
ITERATIONS-OUTPUT-DETAIL 10
# the syntax is case-insensitive
inner-iterations-limit 30Furthermore, there is the possibility of these additional parameters being passed by optional keywords in the solver call. In that case, the parameter's name has the character - substituted by _. For instance:
# Assign 50 to the parameter `OUTER-ITERATIONS-LIMIT`.
algencan(nlp; outer_iterations_limit=50)When there is no additional value associated with the parameter, you can assign an empty string value to the respective keyword. For example:
algencan(nlp; skip_acceleration_process='')