Package xal.extension.solver.algorithm
Class DirectedStep
java.lang.Object
xal.extension.solver.algorithm.SearchAlgorithm
xal.extension.solver.algorithm.DirectedStep
- All Implemented Interfaces:
AlgorithmScheduleListener,SolutionJudgeListener
Based on the acceleration-step of Forsythe and Motzkin
-
Field Summary
Fields inherited from class xal.extension.solver.algorithm.SearchAlgorithm
EFFICIENCY_COMPARATOR, problem -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidalgorithmAvailable(SearchAlgorithm source) Handle a message that an algorithm is available.voidalgorithmUnavailable(SearchAlgorithm source) Handle a message that an algorithm is not available.protected double[]calculateGradient(Trial originTrial) Calculate the gradient for the specified pointprotected double[]calculateVector(TrialPoint originPoint, TrialPoint targetPoint) Calculate the vector from the origin point to the target pointvoidfoundNewOptimalSolution(SolutionJudge source, List<Trial> solutions, Trial solution) Handle a message that a new optimal solution has been found.getLabel()Return the label for a search algorithm.intGet the minimum number of evaluations per run.intReturns the global rating which in an integer between 0 and 10.intReturns the local rating which is an integer between 0 and 10.protected TrialperformAcceleratedSearch(Trial originTrial) Perform an accelerated search.protected TrialperformGradientAndLinearSearch(Trial originTrial) Perform a gradient calculation followed by a linear search along the gradient.voidperformRun(AlgorithmSchedule algorithmSchedule) Calculate the next few trial points.voidreset()reset the algorithm for searching from scratchprotected TrialsearchAlongGradient(double[] gradient, Trial originTrial) Search along the gradient from the origin point.protected static TrialPointtrialPointAlongGradient(double[] gradient, TrialPoint originPoint, double scale, List<Variable> variables) Get a new trial point along the gradient.voidtrialScored(AlgorithmSchedule schedule, Trial trial) Handle a message that a trial has been scored.voidtrialVetoed(AlgorithmSchedule schedule, Trial trial) Handle a message that a trial has been vetoed.Methods inherited from class xal.extension.solver.algorithm.SearchAlgorithm
addSearchAlgorithmListener, algorithmRunExecuted, algorithmRunWillExecute, evaluateTrialPoint, executeRun, getEfficiency, getEvaluationsLeft, getMaxEvaluationsPerRun, removeSearchAlgorithmListener, setProblem, setProposedEvaluations
-
Constructor Details
-
DirectedStep
public DirectedStep()
-
-
Method Details
-
reset
public void reset()reset the algorithm for searching from scratch- Overrides:
resetin classSearchAlgorithm
-
getLabel
Return the label for a search algorithm.- Specified by:
getLabelin classSearchAlgorithm- Returns:
- The trial point.
-
performRun
Calculate the next few trial points.- Specified by:
performRunin classSearchAlgorithm
-
performAcceleratedSearch
Perform an accelerated search. -
performGradientAndLinearSearch
Perform a gradient calculation followed by a linear search along the gradient. -
calculateGradient
Calculate the gradient for the specified point- Returns:
- the gradient at the specified point
-
calculateVector
Calculate the vector from the origin point to the target point- Returns:
- the vector from the origin point to the target point
-
searchAlongGradient
Search along the gradient from the origin point. -
trialPointAlongGradient
protected static TrialPoint trialPointAlongGradient(double[] gradient, TrialPoint originPoint, double scale, List<Variable> variables) Get a new trial point along the gradient. -
getMinEvaluationsPerRun
public int getMinEvaluationsPerRun()Get the minimum number of evaluations per run. Subclasses may want to override this method.- Overrides:
getMinEvaluationsPerRunin classSearchAlgorithm- Returns:
- the minimum number of evaluation per run.
-
globalRating
public int globalRating()Returns the global rating which in an integer between 0 and 10.- Returns:
- The global rating for this algorithm.
-
localRating
public int localRating()Returns the local rating which is an integer between 0 and 10.- Returns:
- The local rating for this algorithm.
-
algorithmAvailable
Handle a message that an algorithm is available.- Parameters:
source- The source of the available algorithm.
-
trialScored
Handle a message that a trial has been scored.- Specified by:
trialScoredin interfaceAlgorithmScheduleListener- Overrides:
trialScoredin classSearchAlgorithm- Parameters:
trial- The trial that was scored.schedule- the schedule providing this event
-
trialVetoed
Handle a message that a trial has been vetoed.- Specified by:
trialVetoedin interfaceAlgorithmScheduleListener- Overrides:
trialVetoedin classSearchAlgorithm- Parameters:
trial- The trial that was vetoed.schedule- the schedule providing this event
-
foundNewOptimalSolution
Handle a message that a new optimal solution has been found.- Specified by:
foundNewOptimalSolutionin interfaceSolutionJudgeListener- Overrides:
foundNewOptimalSolutionin classSearchAlgorithm- Parameters:
source- The source of the new optimal solution.solutions- The list of solutions.solution- The new optimal solution.
-