de.jstacs.algorithms.optimization.termination
Class CombinedCondition

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

public class CombinedCondition
extends AbstractTerminationCondition

This class allows to use many TerminationConditions at once.

Author:
Jens Keilwagen

Nested Class Summary
static class CombinedCondition.CombinedConditionParameterSet
          This class implements the parameter set for a CombinedCondition.
 
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
CombinedCondition(CombinedCondition.CombinedConditionParameterSet parameter)
          This is the main constructor creating an instance from a given parameter set.
CombinedCondition(int threshold, AbstractTerminationCondition... condition)
          This constructor creates an instance that allows to use many TerminationConditions at once.
CombinedCondition(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

CombinedCondition

public CombinedCondition(int threshold,
                         AbstractTerminationCondition... condition)
                  throws Exception
This constructor creates an instance that allows to use many TerminationConditions at once.

Parameters:
threshold - the number of conditions that has to be fulfilled to continue; if all conditions should be fulfilled then threshold=condition.length (equal to AND); if at least one condition should be fulfilled then threshold=1 (equal to OR);
condition - the conditions that are used to create this instance and that are used to determine whether another iteration should be done
Throws:
Exception - if the parameter can not be set properly

CombinedCondition

public CombinedCondition(CombinedCondition.CombinedConditionParameterSet 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.

CombinedCondition

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

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

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

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

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