Package edu.uci.ics.jung.algorithms.util
Class IterativeProcess
java.lang.Object
edu.uci.ics.jung.algorithms.util.IterativeProcess
- All Implemented Interfaces:
IterativeContext
- Direct Known Subclasses:
AbstractRanker
,EdmondsKarpMaxFlow
Provides basic infrastructure for iterative algorithms. Services provided include:
- storage of current and max iteration count
- framework for initialization, iterative evaluation, and finalization
- test for convergence
- etc.
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
done()
void
evaluate()
Performs the iterative process.protected void
Perform eventual clean-up operations (must be implement by subclass when needed).double
int
int
double
boolean
Check to see if the result has been attained.protected void
Initializes internal parameters to start the iterative process.double
relativePrecision
(double epsilon, double x) void
reset()
void
setDesiredPrecision
(double prec) void
setMaximumIterations
(int maxIter) void
setPrecision
(double precision) abstract void
step()
Evaluate the result of the current iteration.
-
Constructor Details
-
IterativeProcess
public IterativeProcess()Generic constructor.
-
-
Method Details
-
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 -
step
public abstract void step()Evaluate the result of the current iteration.- Specified by:
step
in interfaceIterativeContext
-
finalizeIterations
protected void finalizeIterations()Perform eventual clean-up operations (must be implement by subclass when needed). -
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.
-
setPrecision
public void setPrecision(double precision) - Parameters:
precision
- the precision to set
-
hasConverged
public boolean hasConverged()Check to see if the result has been attained.- Returns:
- boolean
-
done
public boolean done()- Specified by:
done
in interfaceIterativeContext
- Returns:
true
if this iterative process is finished, andfalse
otherwise.
-
initializeIterations
protected void initializeIterations()Initializes internal parameters to start the iterative process. -
reset
public void reset() -
relativePrecision
public double relativePrecision(double epsilon, double x) - Parameters:
epsilon
- doublex
- double- Returns:
- double
-
setDesiredPrecision
- Parameters:
prec
- the desired precision.- Throws:
IllegalArgumentException
-
setMaximumIterations
- Parameters:
maxIter
- the maximum allowed number of iterations- Throws:
IllegalArgumentException
-