de.jstacs.algorithms.optimization.termination
Class TimeCondition

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

public class TimeCondition
extends AbstractTerminationCondition

This class implements a TerminationCondition that stops the optimization if the elapsed time in seconds is greater than a given value.

Author:
Jens Keilwagen
See Also:
Time

Nested Class Summary
static class TimeCondition.TimeConditionParameterSet
          This class implements the parameter set for a TimeCondition.
 
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
TimeCondition(double s)
          This constructor creates an instance that does not allow any further iteration after s seconds
TimeCondition(StringBuffer xml)
          The standard constructor for the interface Storable.
TimeCondition(TimeCondition.TimeConditionParameterSet parameter)
          This is the main constructor creating an instance from a given parameter set.
 
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

TimeCondition

public TimeCondition(double s)
              throws Exception
This constructor creates an instance that does not allow any further iteration after s seconds

Parameters:
s - the threshold of stopping the optimization (in seconds)
Throws:
Exception - if the parameter can not be set properly

TimeCondition

public TimeCondition(TimeCondition.TimeConditionParameterSet 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.

TimeCondition

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

Parameters:
xml - the XML representation as StringBuffer
Throws:
NonParsableException - if the TimeCondition 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