de.jstacs.algorithms.optimization.termination
Class MultipleIterationsCondition

java.lang.Object
  extended by de.jstacs.algorithms.optimization.termination.AbstractTerminationCondition
      extended by de.jstacs.algorithms.optimization.termination.MultipleIterationsCondition
All Implemented Interfaces:
TerminationCondition, InstantiableFromParameterSet, Storable, Cloneable

public class MultipleIterationsCondition
extends AbstractTerminationCondition

This TerminationCondition requires another provided TerminationCondition to fail a contiguous specified number of times before the optimization is terminated.

Author:
Jan Grau

Nested Class Summary
static class MultipleIterationsCondition.MultipleIterationsConditionParameterSet
          This class implements the parameter set for a MultipleIterationsCondition.
 
Nested classes/interfaces inherited from class de.jstacs.algorithms.optimization.termination.AbstractTerminationCondition
AbstractTerminationCondition.AbstractTerminationConditionParameterSet
 
Field Summary
 
Fields inherited from class de.jstacs.algorithms.optimization.termination.AbstractTerminationCondition
parameter
 
Constructor Summary
MultipleIterationsCondition(int threshold, AbstractTerminationCondition condition)
          This constructor creates an instance that stops the optimization if provided termination condition fails a contiguously a specified number of times.
MultipleIterationsCondition(MultipleIterationsCondition.MultipleIterationsConditionParameterSet parameter)
          This is the main constructor creating an instance from a given parameter set.
MultipleIterationsCondition(StringBuffer xml)
          The standard constructor for the interface Storable.
 
Method Summary
 boolean doNextIteration(int iteration, double f_last, double f_current, double[] gradient, double[] direction, double alpha, Time t)
          This method allows to decide whether to do another iteration in an optimization or not.
protected  String getXmlTag()
          This method returns the xml tag that is used in the method AbstractTerminationCondition.toXML() and in the constructor AbstractTerminationCondition.AbstractTerminationCondition(StringBuffer).
 boolean isSimple()
          This method returns false if the TerminationCondition uses either the gradient or the direction for the decision, otherwise it returns true.
protected  void set()
          This method sets internal member variables from AbstractTerminationCondition.parameter.
 
Methods inherited from class de.jstacs.algorithms.optimization.termination.AbstractTerminationCondition
clone, getCurrentParameterSet, toXML
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultipleIterationsCondition

public MultipleIterationsCondition(int threshold,
                                   AbstractTerminationCondition condition)
                            throws Exception
This constructor creates an instance that stops the optimization if provided termination condition fails a contiguously a specified number of times.

Parameters:
threshold - the number of contiguous iterations the provided condition must fail to stop the optimization
condition - the condition for stopping the algorithm
Throws:
Exception - if the parameter can not be set properly

MultipleIterationsCondition

public MultipleIterationsCondition(MultipleIterationsCondition.MultipleIterationsConditionParameterSet parameter)
                            throws CloneNotSupportedException
This is the main constructor creating an instance from a given parameter set.

Parameters:
parameter - the set of parameters
Throws:
CloneNotSupportedException - if parameter can not be cloned properly.

MultipleIterationsCondition

public MultipleIterationsCondition(StringBuffer xml)
                            throws NonParsableException
The standard constructor for the interface Storable. Constructs a MultipleIterationsCondition out of an XML representation.

Parameters:
xml - the XML representation as StringBuffer
Throws:
NonParsableException - if the MultipleIterationsCondition could not be reconstructed out of the StringBuffer xml
Method Detail

doNextIteration

public boolean doNextIteration(int iteration,
                               double f_last,
                               double f_current,
                               double[] gradient,
                               double[] direction,
                               double alpha,
                               Time t)
Description copied from interface: TerminationCondition
This method allows to decide whether to do another iteration in an optimization or not. If it returns true it is recommended to do another iteration, otherwise (the method returns false and) it is recommended to stop the algorithm.

Parameters:
iteration - the number of performed iterations
f_last - last value of the function
f_current - current value of the function
gradient - the gradient of the function
direction - the last direction of the optimization
alpha - the last step size
t - a time object measuring the time that has been elapsed in the optimization
Returns:
true if another iteration should be done

isSimple

public boolean isSimple()
Description copied from interface: TerminationCondition
This method returns false if the TerminationCondition uses either the gradient or the direction for the decision, otherwise it returns true.

Returns:
false for gradient or direction based TerminationConditions

getXmlTag

protected String getXmlTag()
Description copied from class: AbstractTerminationCondition
This method returns the xml tag that is used in the method AbstractTerminationCondition.toXML() and in the constructor AbstractTerminationCondition.AbstractTerminationCondition(StringBuffer).

Specified by:
getXmlTag in class AbstractTerminationCondition
Returns:
the xml tag of the instance

set

protected void set()
Description copied from class: AbstractTerminationCondition
This method sets internal member variables from AbstractTerminationCondition.parameter. It is used in the constructors.

Specified by:
set in class AbstractTerminationCondition