Package minfx :: Package line_search :: Module backtrack
[hide private]
[frames] | no frames]

Module backtrack

source code

Backtracking line search algorithm.

This file is part of the minfx optimisation library.

Functions [hide private]
numpy rank-1 array
backtrack(func, args, x, f, g, p, a_init=1.0, rho=0.5, c=0.0001, max_iter=500)
Backtracking line search.
source code
Variables [hide private]
  __package__ = 'minfx.line_search'

Imports: dot


Function Details [hide private]

backtrack(func, args, x, f, g, p, a_init=1.0, rho=0.5, c=0.0001, max_iter=500)

source code 

Backtracking line search.

Procedure 3.1, page 41, from 'Numerical Optimization' by Jorge Nocedal and Stephen J. Wright, 1999, 2nd ed.

Requires the gradient vector at point xk.

Internal variables

ai - The step length at line search iteration i. xai - The parameter vector at step length ai. fai - The function value at step length ai.

Parameters:
  • func (func) - The function to minimise.
  • args (tuple) - The tuple of arguments to supply to the functions func.
  • x (numpy rank-1 array) - The parameter vector.
  • f (float) - The function value at the point x.
  • g (numpy rank-1 array) - The gradient vector at the point x.
  • p (numpy rank-1 array) - The descent direction.
  • a_init (float) - Initial step length.
  • rho (float) - The step length scaling factor (should be between 0 and 1).
  • c (float) - Constant between 0 and 1 determining the slope for the sufficient decrease condition.
  • maxiter (int) - The maximum number of iterations.
Returns: numpy rank-1 array
The parameter vector, minimised along the direction xk + ak.pk, to be used at k+1.