WebCab Optimization
v2.6
(J2EE Edition)

com.webcab.ejb.math.optimization.unidimensional
Class BracketingAlgorithm

java.lang.Object
  |
  +--com.webcab.ejb.math.optimization.unidimensional.BracketingAlgorithm
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AccelBracketing, AccelDerivBracketing, ParabolicBracketing

public abstract class BracketingAlgorithm
extends Object
implements Serializable

This abstract class is the base class for all classes implementing a bracketing algorithm. It gives the main functionality of a bracketing algorithm to the user (given an initial point it returns a bracket containing the extremum); at the same time for the programmer the task is divided into two main parts: finding the `dimension' of the problem by taking the second point then actually bracketing the extremum.

To implement a bracketing algorithm the programmer must override find_initial and extend methods.

See Also:
AccelBracketing, AccelDerivBracketing, ParabolicBracketing, Serialized Form

Constructor Summary
BracketingAlgorithm()
           
 
Method Summary
 Bracket bracketBidir(double x, UniDimensionalFunction f, double mindist, double bparam)
          The method for bidirectional bracketing.
 Bracket bracketUnidir(double x, UniDimensionalFunction f, double mindist, double bparam)
          The method for unidirectional bracketing.
protected abstract  Bracket extend(Bracket br, UniDimensionalFunction f, double bparam, int extreme_type)
          This method takes as parameter a bracket with the first two points initialized and extends the bracket until it surely contains a local extremum of the given type.
protected abstract  Bracket find_initial(double x, UniDimensionalFunction f, double mindist)
          This method returns a bracket with the first two points initialized.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BracketingAlgorithm

public BracketingAlgorithm()
Method Detail

find_initial

protected abstract Bracket find_initial(double x,
                                        UniDimensionalFunction f,
                                        double mindist)
                                 throws InvalidUniDimensionalFunctionException
This method returns a bracket with the first two points initialized.

Parameters:
x - The starting point.
f - The function.
mindist - algorithm dependent
Returns:
The bracket with the first two points initialized.
InvalidUniDimensionalFunctionException

extend

protected abstract Bracket extend(Bracket br,
                                  UniDimensionalFunction f,
                                  double bparam,
                                  int extreme_type)
                           throws InvalidUniDimensionalFunctionException,
                                  UniDimensionalException
This method takes as parameter a bracket with the first two points initialized and extends the bracket until it surely contains a local extremum of the given type.

Parameters:
f - The function.
bparam - algorithm dependent
extreme_type - The type of the extremum: 1 for minimum, -1 for maximum.
Returns:
The bracket with all points initialized.
InvalidUniDimensionalFunctionException
UniDimensionalException

bracketUnidir

public Bracket bracketUnidir(double x,
                             UniDimensionalFunction f,
                             double mindist,
                             double bparam)
                      throws InvalidUniDimensionalFunctionException,
                             UniDimensionalException
The method for unidirectional bracketing. That is, given a starting point, it finds an interval containing an extermum which may be of any kind (minimum or maximum), but must be greater than x.

Parameters:
x - The starting point.
f - The function. Some algorithms may require the function to be derivable.
mindist - algorithm dependent
Returns:
The bracket with all points initialized.
InvalidUniDimensionalFunctionException
UniDimensionalException

bracketBidir

public Bracket bracketBidir(double x,
                            UniDimensionalFunction f,
                            double mindist,
                            double bparam)
                     throws InvalidUniDimensionalFunctionException,
                            UniDimensionalException
The method for bidirectional bracketing. That is, given a starting point, it finds an interval containing an extermum which must be a minimum, but can be greater or less than x.

Parameters:
x - The starting point.
f - The function. Some algorithms may require the function to be differentiable.
mindist - algorithm dependent
Returns:
The bracket with all points initialized.
InvalidUniDimensionalFunctionException
UniDimensionalException

WebCab Optimization
v2.6
(J2EE Edition)