@PublicationReference(author="R. Fletcher",title="Practical Methods of Optimization, Second Edition",type=Book,year=1987,pages={26,30},notes={"Equation 2.5.1 and Equation 2.5.6","Fletcher assumes the initial point has negative slope."}) @PublicationReference(author="Wikipedia",title="Wolfe conditions",url="http://en.wikipedia.org/wiki/Wolfe_conditions",type=WebPage,year=2008) public class WolfeConditions extends AbstractCloneableSerializable
Constructor and Description |
---|
WolfeConditions(InputOutputSlopeTriplet originalPoint,
double slopeCondition,
double curvatureCondition)
Creates a new instance of WolfeConditions
|
WolfeConditions(WolfeConditions other)
Copy Constructor
|
Modifier and Type | Method and Description |
---|---|
WolfeConditions |
clone()
This makes public the clone method on the
Object class and
removes the exception that it throws. |
boolean |
evaluate(InputOutputSlopeTriplet trialPoint)
Evaluates if the trial point meets the Wolfe conditions
|
boolean |
evaluateGoldsteinCondition(InputOutputPair<java.lang.Double,java.lang.Double> trialPoint)
Evaluates the Goldstein (Armijo) conditions, which is purely a
sufficient decrease condition.
|
static boolean |
evaluateGoldsteinCondition(InputOutputSlopeTriplet originalPoint,
InputOutputPair<java.lang.Double,java.lang.Double> trialPoint,
double slopeCondition)
Evaluates the Goldstein (Armijo) conditions, which is purely a
sufficient decrease condition.
|
boolean |
evaluateStrictCurvatureCondition(double trialSlope)
Evaluates the strict curvature condition.
|
static boolean |
evaluateStrictCurvatureCondition(double originalSlope,
double trialSlope,
double curvatureCondition)
Evaluates the strict curvature condition.
|
double |
getCurvatureCondition()
Getter for curvatureCondition
|
InputOutputSlopeTriplet |
getOriginalPoint()
Getter for originalPoint
|
double |
getSlopeCondition()
Getter for slopeCondition
|
void |
setCurvatureCondition(double curvatureCondition)
Setter for curvatureCondition
|
void |
setOriginalPoint(InputOutputSlopeTriplet originalPoint)
Setter for originalPoint
|
void |
setSlopeCondition(double slopeCondition)
Setter for slopeCondition
|
public WolfeConditions(InputOutputSlopeTriplet originalPoint, double slopeCondition, double curvatureCondition)
originalPoint
- Original point to store, slope must be less than 0.0.slopeCondition
- Slope condition parameter for the Goldstein condition, must be less than
curvatureCondition and on the interval (0,1).curvatureCondition
- Curvature condition for the curvature condition, must be greater than
slopeCondition and on the interval (0,1).public WolfeConditions(WolfeConditions other)
other
- WolfeConditions to copypublic WolfeConditions clone()
AbstractCloneableSerializable
Object
class and
removes the exception that it throws. Its default behavior is to
automatically create a clone of the exact type of object that the
clone is called on and to copy all primitives but to keep all references,
which means it is a shallow copy.
Extensions of this class may want to override this method (but call
super.clone()
to implement a "smart copy". That is, to target
the most common use case for creating a copy of the object. Because of
the default behavior being a shallow copy, extending classes only need
to handle fields that need to have a deeper copy (or those that need to
be reset). Some of the methods in ObjectUtil
may be helpful in
implementing a custom clone method.
Note: The contract of this method is that you must use
super.clone()
as the basis for your implementation.clone
in interface CloneableSerializable
clone
in class AbstractCloneableSerializable
public boolean evaluate(InputOutputSlopeTriplet trialPoint)
trialPoint
- Trial point to considerpublic boolean evaluateGoldsteinCondition(InputOutputPair<java.lang.Double,java.lang.Double> trialPoint)
trialPoint
- Trial point to consider.@PublicationReference(author="R. Fletcher", title="Practical Methods of Optimization, Second Edition", type=Book, year=1987, pages=27, notes="Equation 2.5.1") public static boolean evaluateGoldsteinCondition(InputOutputSlopeTriplet originalPoint, InputOutputPair<java.lang.Double,java.lang.Double> trialPoint, double slopeCondition)
originalPoint
- Original point to store, slope must be less than 0.0.trialPoint
- Trial point to consider.slopeCondition
- Slope condition parameter for the Goldstein condition, must be less than
curvatureCondition and on the interval (0,1).public boolean evaluateStrictCurvatureCondition(double trialSlope)
trialSlope
- Trial slope to consider.@PublicationReference(author="R. Fletcher", title="Practical Methods of Optimization, Second Edition", type=Book, year=1987, pages=29, notes="Equation 2.5.6") public static boolean evaluateStrictCurvatureCondition(double originalSlope, double trialSlope, double curvatureCondition)
originalSlope
- Slope at the original point.trialSlope
- Trial slope to consider.curvatureCondition
- Curvature condition for the curvature condition, must be greater than
slopeCondition and on the interval (0,1).public InputOutputSlopeTriplet getOriginalPoint()
public void setOriginalPoint(InputOutputSlopeTriplet originalPoint)
originalPoint
- Original point to store, slope must be less than 0.0.public double getSlopeCondition()
public void setSlopeCondition(double slopeCondition)
slopeCondition
- Slope condition parameter for the Goldstein condition, must be less than
curvatureCondition and on the interval (0,1).public double getCurvatureCondition()
public void setCurvatureCondition(double curvatureCondition)
curvatureCondition
- Curvature condition for the curvature condition, must be greater than
slopeCondition and on the interval (0,1).