plugins.big.bigsnakeutils.icy.snake2D
Class Snake2DPowellOptimizer

java.lang.Object
  extended by java.util.Observable
      extended by plugins.big.bigsnakeutils.icy.snake2D.Snake2DOptimizer
          extended by plugins.big.bigsnakeutils.icy.snake2D.Snake2DPowellOptimizer

public class Snake2DPowellOptimizer
extends Snake2DOptimizer

This class implements a optimization scheme for parametric snakes based on Powell's method. It handles objects that implement the Snake2D interface.

Version:
May 3, 2014
Author:
Philippe Thévenaz (philippe.thevenaz@epfl.ch), Ricard Delgado-Gonzalo (ricard.delgado@gmail.com), Nicolas Chenouard (nicolas.chenouard@gmail.com)

Field Summary
 
Fields inherited from class plugins.big.bigsnakeutils.icy.snake2D.Snake2DOptimizer
isCurrentBest
 
Constructor Summary
Snake2DPowellOptimizer()
           
 
Method Summary
 double getAbsoluteAccuracy()
           
 double getInitialBracketingStep()
           
 double getMaximalParabolicBracketingExcursion()
           
 double getNonQuadraticBracketingDegeneracy()
           
 double getNumericalGradientStepSize()
           
 double getRelativeAccuracy()
           
 double getVanishingGradientConvergence()
           
 double getVanishingStepConvergence()
           
 double getVanishingTotalDisplacementConvergence()
           
 void optimize(Snake2D snake, Snake2DNode[] configuration)
          This method evolves the snake.
 java.lang.Double reportSnakeBestObservedEnergy()
          Returns the best energy observed so far during the optimization process.
 boolean reportSnakeDeath()
          Returns true if the snake died, and false otherwise.
 boolean reportSnakeOptimality()
          Returns true if the optimal snake has been found, and false otherwise.
 void setAbsoluteAccuracy(double absoluteAccuracy)
           
 void setInitialBracketingStep(double initialBracketingStep)
           
 void setMaximalParabolicBracketingExcursion(double maximalParabolicBracketingExcursion)
           
 void setNonQuadraticBracketingDegeneracy(double nonQuadraticBracketingDegeneracy)
           
 void setNumericalGradientStepSize(double numericalGradientStepSize)
           
 void setRelativeAccuracy(double relativeAccuracy)
           
 void setVanishingGradientConvergence(double vanishingGradientConvergence)
           
 void setVanishingStepConvergence(double vanishingStepConvergence)
           
 void setVanishingTotalDisplacementConvergence(double vanishingTotalDisplacementConvergence)
           
 void stopOptimizing()
          Requests stopping the optimization process.
 
Methods inherited from class plugins.big.bigsnakeutils.icy.snake2D.Snake2DOptimizer
wasSuccessfulProbing, willProbe
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Snake2DPowellOptimizer

public Snake2DPowellOptimizer()
Method Detail

optimize

public void optimize(Snake2D snake,
                     Snake2DNode[] configuration)
This method evolves the snake.

Specified by:
optimize in class Snake2DOptimizer

reportSnakeBestObservedEnergy

public java.lang.Double reportSnakeBestObservedEnergy()
Returns the best energy observed so far during the optimization process.

Specified by:
reportSnakeBestObservedEnergy in class Snake2DOptimizer
Returns:
Return null if the energy could not be computed even once. Else, return the best energy that could be observed during optimization.

reportSnakeDeath

public boolean reportSnakeDeath()
Returns true if the snake died, and false otherwise.

Specified by:
reportSnakeDeath in class Snake2DOptimizer
Returns:
Return false if the snake was still alive when the optimizer did terminate, or possibly if an eventual death of the snake was unrelated to the termination decision. Return true if the optimizer did indeed terminate because the snake died.

reportSnakeOptimality

public boolean reportSnakeOptimality()
Returns true if the optimal snake has been found, and false otherwise.

Specified by:
reportSnakeOptimality in class Snake2DOptimizer
Returns:
Return false if the optimizer abandoned its task before the optimization was complete, whatever the reason may have been. Return true if the optimizer could bring its task to completion and found a snake that was deemed to be optimal.

stopOptimizing

public void stopOptimizing()
Requests stopping the optimization process.

Specified by:
stopOptimizing in class Snake2DOptimizer

getAbsoluteAccuracy

public double getAbsoluteAccuracy()

setAbsoluteAccuracy

public void setAbsoluteAccuracy(double absoluteAccuracy)

getInitialBracketingStep

public double getInitialBracketingStep()

setInitialBracketingStep

public void setInitialBracketingStep(double initialBracketingStep)

getMaximalParabolicBracketingExcursion

public double getMaximalParabolicBracketingExcursion()

setMaximalParabolicBracketingExcursion

public void setMaximalParabolicBracketingExcursion(double maximalParabolicBracketingExcursion)

getNonQuadraticBracketingDegeneracy

public double getNonQuadraticBracketingDegeneracy()

setNonQuadraticBracketingDegeneracy

public void setNonQuadraticBracketingDegeneracy(double nonQuadraticBracketingDegeneracy)

getNumericalGradientStepSize

public double getNumericalGradientStepSize()

setNumericalGradientStepSize

public void setNumericalGradientStepSize(double numericalGradientStepSize)

getRelativeAccuracy

public double getRelativeAccuracy()

setRelativeAccuracy

public void setRelativeAccuracy(double relativeAccuracy)

getVanishingGradientConvergence

public double getVanishingGradientConvergence()

setVanishingGradientConvergence

public void setVanishingGradientConvergence(double vanishingGradientConvergence)

getVanishingStepConvergence

public double getVanishingStepConvergence()

setVanishingStepConvergence

public void setVanishingStepConvergence(double vanishingStepConvergence)

getVanishingTotalDisplacementConvergence

public double getVanishingTotalDisplacementConvergence()

setVanishingTotalDisplacementConvergence

public void setVanishingTotalDisplacementConvergence(double vanishingTotalDisplacementConvergence)