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.

ParameterAdditional value
SKIP-ACCELERATION-PROCESS
LINEAR-SYSTEMS-SOLVER-IN-ACCELERATION-PROCESSString
TRUST-REGIONS-INNER-SOLVERString (not required)
LINEAR-SYSTEMS-SOLVER-IN-TRUST-REGIONSString
NEWTON-LINE-SEARCH-INNER-SOLVERString (not required)
LINEAR-SYSTEMS-SOLVER-IN-NEWTON-LINE-SEARCHString
TRUNCATED-NEWTON-LINE-SEARCH-INNER-SOLVERString (not required)
MATRIX-VECTOR-PRODUCT-IN-TRUNCATED-NEWTON-LSString
FIXED-VARIABLES-REMOVAL-AVOIDED
ADD-SLACKS
OBJECTIVE-AND-CONSTRAINTS-SCALING-AVOIDED
IGNORE-OBJECTIVE-FUNCTION
ITERATIONS-OUTPUT-DETAILInt
NUMBER-OF-ARRAYS-COMPONENTS-IN-OUTPUTInt
SOLUTION-FILENAMEString
ACCELERATION-PROCESS-ITERATIONS-LIMITInt
INNER-ITERATIONS-LIMITInt
OUTER-ITERATIONS-LIMITInt
PENALTY-PARAMETER-INITIAL-VALUEFloat
LARGEST-PENALTY-PARAMETER-ALLOWEDFloat

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 30

Furthermore, 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='')