Class LineSearch
This line search algorithm is algorithm 3.5/3.6 from Nocedal and Wright (Second edition, 2006). It provides a step length that satisfies the strong Wolfe conditions.
Inherited Members
Namespace: Microsoft.ML.Probabilistic.Math
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
public class LineSearch
Properties
ExtrapolationMultiplier
Multiplier for the extrapolation
Declaration
public double ExtrapolationMultiplier { get; set; }
Property Value
Type | Description |
---|---|
Double |
InterpolationTolerance
When performing interpolation this is the minimum fraction of the range by which the interpolant must be from one of the two end points
Declaration
public double InterpolationTolerance { get; set; }
Property Value
Type | Description |
---|---|
Double |
MaximumZoomIterations
Maximum number of iterations for the zoom method
Declaration
public int MaximumZoomIterations { get; set; }
Property Value
Type | Description |
---|---|
Int32 |
Phi
Line search evaluation function
Declaration
public LineSearchEval Phi { get; set; }
Property Value
Type | Description |
---|---|
LineSearchEval |
Methods
Run(Double, Double, Double, Double)
Main execution method for line search
Declaration
public double Run(double initialStep, double maxStep, double phi0, double dPhi0)
Parameters
Type | Name | Description |
---|---|---|
Double | initialStep | |
Double | maxStep | |
Double | phi0 | |
Double | dPhi0 |
Returns
Type | Description |
---|---|
Double | Step satisfying Wolfe conditions |
SetWolfeConstants(Double, Double)
Set Wolfe conditions
Declaration
public void SetWolfeConstants(double c1, double c2)
Parameters
Type | Name | Description |
---|---|---|
Double | c1 | Sufficient decrease condition |
Double | c2 | Curvature condition |