WolfeLS

scalation.optimization.WolfeLS
class WolfeLS(f: FunctionS2S, c1: Double, c2: Double) extends LineSearch

The WolfeLS class performs an inexact line search on f to find a point x that exhibits (1) SDC: sufficient decrease (f(x) enough less that f(0)) and (2) CC: the slope at x is less steep than the slope at 0. That is, the line search looks for a value for x satisfying the two Wolfe conditions.

f(x) <= f(0) + c1 * f'(0) * x Wolfe condition 1 (Armijo condition) |f'(x)| <= |c2 * f'(0)| Wolfe condition 2 (Strong version) f'(x) >= c2 * f'(0) Wolfe condition 2 (Weak version, more robust)

It works on scalar functions (@see wolfeLSTest). If starting with a vector function f(x), simply defines a new function fl(a) = x0 + direction * a (@see wolfeLSTest2).

Value parameters

c1

constant for sufficient decrease (Wolfe condition 1)

c2

constant for curvature/slope constraint (Wolfe condition 2)

f

the scalar objective function to minimize

Attributes

Graph
Supertypes
trait LineSearch
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def lsearch(x0: Double, lo0: Double): Double

Perform an inexact Line Search (LS) on the function f to find a point x that satisfies the Wolfe Conditions 1 and 2.

Perform an inexact Line Search (LS) on the function f to find a point x that satisfies the Wolfe Conditions 1 and 2.

Value parameters

lo0

the lower bound for x

x0

the current point

Attributes

def lsearch_(x0: Double, lo0: Double, weak: Boolean): Double

Perform an inexact Line Search (LS) on the function f to find a point x that satisfies the Wolfe Conditions 1 and 2. A Bisection Method for the Wolfe Conditions

Perform an inexact Line Search (LS) on the function f to find a point x that satisfies the Wolfe Conditions 1 and 2. A Bisection Method for the Wolfe Conditions

Value parameters

lo0

the lower bound for x (defaults to 0)

weak

whether to use the weak (true) or strong (false) Wolfe conditions

x0

the current point (defaults to 1)

Attributes

See also

sites.math.washington.edu/~burke/crs/408/notes/nlp/line.pdf

def search(step: Double): Double

Perform an inexact Line Search (LS) using the Wolfe approach with defaults.

Perform an inexact Line Search (LS) using the Wolfe approach with defaults.

Value parameters

step

the initial step size

Attributes

Inherited fields

protected val EPSILON: Double

Attributes

Inherited from:
LineSearch