Class IterativeProcess

  • All Implemented Interfaces:
    IterativeContext
    Direct Known Subclasses:
    AbstractRanker, EdmondsKarpMaxFlow

    public abstract class IterativeProcess
    extends java.lang.Object
    implements IterativeContext
    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();
     
    • Constructor Summary

      Constructors 
      Constructor Description
      IterativeProcess()
      Generic constructor.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      boolean done()
      Returns true if this iterative process is finished, and false otherwise.
      void evaluate()
      Performs the iterative process.
      protected void finalizeIterations()
      Perform eventual clean-up operations (must be implement by subclass when needed).
      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.
      protected void initializeIterations()
      Initializes internal parameters to start the iterative process.
      double relativePrecision​(double epsilon, double x)  
      void reset()  
      void setDesiredPrecision​(double prec)
      Defines the desired precision.
      void setMaximumIterations​(int maxIter)
      Defines the maximum allowed number of iterations.
      void setPrecision​(double precision)  
      abstract void step()
      Evaluate the result of the current iteration.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, 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
      • step

        public abstract void step()
        Evaluate the result of the current iteration.
        Specified by:
        step in interface IterativeContext
      • 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()
        Description copied from interface: IterativeContext
        Returns true if this iterative process is finished, and false otherwise.
        Specified by:
        done in interface IterativeContext
      • 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 - 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