org.gersteinlab.regulation.numeric
Class DescentMethod

java.lang.Object
  extended by org.gersteinlab.regulation.numeric.DescentMethod
Direct Known Subclasses:
GradientDescent, NewtonMethod

public abstract class DescentMethod
extends java.lang.Object

        A class for minimizing a differentiable multivariate real function using
        a descent method.
        

Version:
1.0 (September 4, 2008)
        Change History:
        1.0     - Initial version
        
Author:
Kevin Yuk-Lap Yip

Field Summary
static double ALPHA
           
static double BETA
           
 
Constructor Summary
DescentMethod()
           
 
Method Summary
protected  double armijo(double[] x, double[] dx, double alpha, double beta)
          The backtracking line search method (Armijo rule) for determining step size at a point towards a descent direction.
protected  double armijo(double[] x, double fx, double[] gfx, double[] dx, double alpha, double beta)
          The backtracking line search method (Armijo rule) for determining step size at a point towards a descent direction, with precomputed function value and gradient.
abstract  double[] minimize(double[] x0)
          Perform the minimization using default parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALPHA

public static final double ALPHA
See Also:
Constant Field Values

BETA

public static final double BETA
See Also:
Constant Field Values
Constructor Detail

DescentMethod

public DescentMethod()
Method Detail

minimize

public abstract double[] minimize(double[] x0)
Perform the minimization using default parameters.

Parameters:
x0 - The initial estimate of x
Returns:
The final estimate of x

armijo

protected double armijo(double[] x,
                        double[] dx,
                        double alpha,
                        double beta)
The backtracking line search method (Armijo rule) for determining step size at a point towards a descent direction.

Parameters:
x - The point
dx - The descent direction
alpha - The stopping parameter
beta - The reduction factor of t of backtracking line search
Returns:
The step size

armijo

protected double armijo(double[] x,
                        double fx,
                        double[] gfx,
                        double[] dx,
                        double alpha,
                        double beta)
The backtracking line search method (Armijo rule) for determining step size at a point towards a descent direction, with precomputed function value and gradient.

Parameters:
x - The point
fx - The function value at the point
gfx - The gradient at the point
dx - The descent direction
alpha - The stopping parameter
beta - The reduction factor of t of backtracking line search
Returns:
The step size