Searching Direction Strategies¶
If a step cannot be taken with the current search direction (e.g. computed an invalid search direction or the line search failed on a valid search direction), NCVX may attempt up to four optional fallback strategies to try to continue making progress from the current iterate. The strategies are as follows and are attempted in order:
0. BFGS-SQP steering - default for constrained problems - irrelevant for unconstrained problems
1. BFGS-SQP steering with BFGS’s inverse Hessian approximation replaced by the identity. If strategy #0 failed because quadprog failed on the QPs, this “steepest descent” version of the steering QPs may be easier to solve. - irrelevant for unconstrained problems
2. Standard BFGS update on penalty/objective function, no steering - default for unconstrained problems
3. Steepest descent on penalty/objective function, no steering
4. Randomly generated search direction
min_fallback_level¶
Integer in [0,4]. Default value: 0
Min number of strategy to be employed NOTE: fallback levels 0 and 1 are only relevant for constrained problems.
max_fallback_level¶
Integer in [0,4]. Default value: 3
Max number of strategy to be employed (>= min_fallback_level) NOTE: fallback levels 0 and 1 are only relevant for constrained problems.
max_random_attempts¶
Positive integer. Default value: 5
If max_fallback_level is 4, this is the number of randomly generated directions to attempt if all previous strategies fail on any single iteration