org.opt4j.core.optimizer
Class AbstractOptimizer

java.lang.Object
  extended by org.opt4j.core.optimizer.AbstractOptimizer
All Implemented Interfaces:
Optimizer
Direct Known Subclasses:
OptimizationMediator

public abstract class AbstractOptimizer
extends java.lang.Object
implements Optimizer

The AbstractOptimizer is an abstract implementation of a population-based Optimizer. It provides the necessary coupling to the framework by informing all OptimizerStateListeners and OptimizerIterationListeners, calling the IndividualCompleter to decode and evaluate new Individuals and adding them to the Archive. The Control is checked regularly to allow user interaction. To implement an iteration-based Optimizer, the IterativeOptimizer interface is available.


Field Summary
protected  Archive archive
           
protected  IndividualCompleter completer
           
protected  Control control
           
protected  Iteration iteration
           
protected  java.util.Set<OptimizerIterationListener> iterationListeners
           
protected  boolean optimizing
           
protected  Population population
           
protected  java.util.Set<OptimizerStateListener> stateListeners
           
 
Constructor Summary
AbstractOptimizer(Population population, Archive archive, IndividualCompleter completer, Control control, Iteration iteration)
          Constructs an AbstractOptimizer with a Population, an Archive, an IndividualFactory, and a IndividualCompleter.
 
Method Summary
 void addOptimizerIterationListener(OptimizerIterationListener listener)
          Adds an OptimizerIterationListener to this optimizer.
 void addOptimizerStateListener(OptimizerStateListener listener)
          Adds an OptimizerStateListener to this optimizer.
 int getIteration()
          Return the current iteration.
protected  void injectListeners(java.util.Set<OptimizerStateListener> stateListeners, java.util.Set<OptimizerIterationListener> iterationListeners)
           
 boolean isRunning()
          Returns true if the Optimizer is running.
protected  void nextIteration()
          Call this method if a new iteration started.
 void removeOptimizerIterationListener(OptimizerIterationListener listener)
          Removes an OptimizerIterationListener from this optimizer.
 void removeOptimizerStateListener(OptimizerStateListener listener)
          Removes an OptimizerStateListener from this optimizer.
 void startOptimization()
          This method is called to start the optimization process.
 void stopOptimization()
          This method is called once the optimization process has stopped.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.opt4j.core.optimizer.Optimizer
optimize
 

Field Detail

iteration

protected final Iteration iteration

population

protected final Population population

archive

protected final Archive archive

completer

protected final IndividualCompleter completer

control

protected final Control control

stateListeners

protected final java.util.Set<OptimizerStateListener> stateListeners

iterationListeners

protected final java.util.Set<OptimizerIterationListener> iterationListeners

optimizing

protected boolean optimizing
Constructor Detail

AbstractOptimizer

public AbstractOptimizer(Population population,
                         Archive archive,
                         IndividualCompleter completer,
                         Control control,
                         Iteration iteration)
Constructs an AbstractOptimizer with a Population, an Archive, an IndividualFactory, and a IndividualCompleter.

Parameters:
population - the specified population
archive - the specified archive
completer - the specified completer
control - the control
iteration - the iteration counter
Method Detail

injectListeners

@Inject
protected void injectListeners(java.util.Set<OptimizerStateListener> stateListeners,
                                      java.util.Set<OptimizerIterationListener> iterationListeners)

getIteration

public int getIteration()
Description copied from interface: Optimizer
Return the current iteration.

Specified by:
getIteration in interface Optimizer
Returns:
the current iteration

isRunning

public boolean isRunning()
Description copied from interface: Optimizer
Returns true if the Optimizer is running.

Specified by:
isRunning in interface Optimizer
Returns:
true if the optimizer is running

nextIteration

protected void nextIteration()
                      throws TerminationException,
                             StopException
Call this method if a new iteration started.

Throws:
StopException - if the optimization is stopped
TerminationException - if the optimization is terminated

startOptimization

public void startOptimization()
Description copied from interface: Optimizer
This method is called to start the optimization process.

Specified by:
startOptimization in interface Optimizer

stopOptimization

public void stopOptimization()
Description copied from interface: Optimizer
This method is called once the optimization process has stopped.

Specified by:
stopOptimization in interface Optimizer

addOptimizerIterationListener

public void addOptimizerIterationListener(OptimizerIterationListener listener)
Description copied from interface: Optimizer
Adds an OptimizerIterationListener to this optimizer.

Specified by:
addOptimizerIterationListener in interface Optimizer
Parameters:
listener - the OptimizerIterationListener to add
See Also:
Optimizer.removeOptimizerIterationListener(org.opt4j.core.optimizer.OptimizerIterationListener)

addOptimizerStateListener

public void addOptimizerStateListener(OptimizerStateListener listener)
Description copied from interface: Optimizer
Adds an OptimizerStateListener to this optimizer.

Specified by:
addOptimizerStateListener in interface Optimizer
Parameters:
listener - the OptimizerStateListener to add
See Also:
Optimizer.removeOptimizerStateListener(org.opt4j.core.optimizer.OptimizerStateListener)

removeOptimizerIterationListener

public void removeOptimizerIterationListener(OptimizerIterationListener listener)
Description copied from interface: Optimizer
Removes an OptimizerIterationListener from this optimizer.

Specified by:
removeOptimizerIterationListener in interface Optimizer
Parameters:
listener - the OptimizerIterationListener to remove
See Also:
Optimizer.addOptimizerIterationListener(org.opt4j.core.optimizer.OptimizerIterationListener)

removeOptimizerStateListener

public void removeOptimizerStateListener(OptimizerStateListener listener)
Description copied from interface: Optimizer
Removes an OptimizerStateListener from this optimizer.

Specified by:
removeOptimizerStateListener in interface Optimizer
Parameters:
listener - the OptimizerStateListener to remove
See Also:
Optimizer.addOptimizerStateListener(org.opt4j.core.optimizer.OptimizerStateListener)