de.jstacs.algorithms.optimization.termination
Class CombinedCondition

java.lang.Object
  extended by de.jstacs.algorithms.optimization.termination.CombinedCondition
All Implemented Interfaces:
TerminationCondition

public class CombinedCondition
extends Object
implements TerminationCondition

This class allows to use many TerminationConditions at once.

Author:
Jens Keilwagen

Constructor Summary
CombinedCondition(int threshold, TerminationCondition... condition)
          This constructor creates an instance that allows to use many TerminationConditions at one.
 
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CombinedCondition

public CombinedCondition(int threshold,
                         TerminationCondition... condition)
This constructor creates an instance that allows to use many TerminationConditions at one.

Parameters:
threshold - the number of conditions that has to be fulfilled; if all conditions should be fulfilled than threshold=condition.length (equal to AND); if at least one condition should be fulfilled than 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
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.

Specified by:
doNextIteration in interface TerminationCondition
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