edu.uci.ics.jung.algorithms
Class IterativeProcess

java.lang.Object
  extended byedu.uci.ics.jung.algorithms.IterativeProcess
Direct Known Subclasses:
AbstractRanker, EdmondsKarpMaxFlow

public abstract class IterativeProcess
extends java.lang.Object

Provides basic infrastructure for iterative algorithms. Services provided include:

Algorithms that subclass this class are typically used in the following way:

 FooAlgorithm foo = new FooAlgorithm(...)
 foo.setMaximumIterations(100); //set up conditions
 ...
 foo.evaluate(); //key method which initiates iterative process
 foo.getSomeResult();
 

Author:
Scott White (originally written by Didier Besset)

Constructor Summary
IterativeProcess()
          Generic constructor.
 
Method Summary
 void evaluate()
          Performs the iterative process.
 double getDesiredPrecision()
          Returns the desired precision.
 int getIterations()
          Returns the number of iterations performed.
 int getMaximumIterations()
          Returns the maximum allowed number of iterations.
 double getPrecision()
          Returns the attained precision.
 boolean hasConverged()
          Check to see if the result has been attained.
 double relativePrecision(double epsilon, double x)
           
 void setDesiredPrecision(double prec)
          Defines the desired precision.
 void setMaximumIterations(int maxIter)
          Defines the maximum allowed number of iterations.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IterativeProcess

public IterativeProcess()
Generic constructor.

Method Detail

evaluate

public void evaluate()
Performs the iterative process. Note: this method does not return anything because Java does not allow mixing double, int, or objects


getDesiredPrecision

public double getDesiredPrecision()
Returns the desired precision.


getIterations

public int getIterations()
Returns the number of iterations performed.


getMaximumIterations

public int getMaximumIterations()
Returns the maximum allowed number of iterations.


getPrecision

public double getPrecision()
Returns the attained precision.


hasConverged

public boolean hasConverged()
Check to see if the result has been attained.

Returns:
boolean

relativePrecision

public double relativePrecision(double epsilon,
                                double x)
Parameters:
epsilon - double
x - double
Returns:
double

setDesiredPrecision

public void setDesiredPrecision(double prec)
                         throws java.lang.IllegalArgumentException
Defines the desired precision.

Throws:
java.lang.IllegalArgumentException

setMaximumIterations

public void setMaximumIterations(int maxIter)
                          throws java.lang.IllegalArgumentException
Defines the maximum allowed number of iterations.

Throws:
java.lang.IllegalArgumentException