public abstract class AbstractOptimizer extends java.lang.Object implements Optimizer
AbstractOptimizer
is an abstract implementation of a
population-based Optimizer
. It provides the necessary coupling to the
framework by informing all OptimizerStateListener
s and
OptimizerIterationListener
s, calling the IndividualCompleter
to decode and evaluate new Individual
s 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.Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
AbstractOptimizer(Population population,
Archive archive,
IndividualCompleter completer,
Control control,
Iteration iteration)
Constructs an
AbstractOptimizer with a Population , an
Archive , an IndividualFactory , and a
IndividualCompleter . |
Modifier and Type | Method and Description |
---|---|
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.
|
protected final Iteration iteration
protected final Population population
protected final Archive archive
protected final IndividualCompleter completer
protected final Control control
protected final java.util.Set<OptimizerStateListener> stateListeners
protected final java.util.Set<OptimizerIterationListener> iterationListeners
protected boolean optimizing
public AbstractOptimizer(Population population, Archive archive, IndividualCompleter completer, Control control, Iteration iteration)
AbstractOptimizer
with a Population
, an
Archive
, an IndividualFactory
, and a
IndividualCompleter
.population
- the specified populationarchive
- the specified archivecompleter
- the specified completercontrol
- the controliteration
- the iteration counter@Inject protected void injectListeners(java.util.Set<OptimizerStateListener> stateListeners, java.util.Set<OptimizerIterationListener> iterationListeners)
public int getIteration()
Optimizer
getIteration
in interface Optimizer
public boolean isRunning()
Optimizer
true
if the Optimizer
is running.protected void nextIteration() throws TerminationException, StopException
StopException
- if the optimization is stoppedTerminationException
- if the optimization is terminatedpublic void startOptimization()
Optimizer
startOptimization
in interface Optimizer
public void stopOptimization()
Optimizer
stopOptimization
in interface Optimizer
public void addOptimizerIterationListener(OptimizerIterationListener listener)
Optimizer
OptimizerIterationListener
to this optimizer.addOptimizerIterationListener
in interface Optimizer
listener
- the OptimizerIterationListener to addOptimizer.removeOptimizerIterationListener(org.opt4j.core.optimizer.OptimizerIterationListener)
public void addOptimizerStateListener(OptimizerStateListener listener)
Optimizer
OptimizerStateListener
to this optimizer.addOptimizerStateListener
in interface Optimizer
listener
- the OptimizerStateListener to addOptimizer.removeOptimizerStateListener(org.opt4j.core.optimizer.OptimizerStateListener)
public void removeOptimizerIterationListener(OptimizerIterationListener listener)
Optimizer
OptimizerIterationListener
from this optimizer.removeOptimizerIterationListener
in interface Optimizer
listener
- the OptimizerIterationListener to removeOptimizer.addOptimizerIterationListener(org.opt4j.core.optimizer.OptimizerIterationListener)
public void removeOptimizerStateListener(OptimizerStateListener listener)
Optimizer
OptimizerStateListener
from this optimizer.removeOptimizerStateListener
in interface Optimizer
listener
- the OptimizerStateListener to removeOptimizer.addOptimizerStateListener(org.opt4j.core.optimizer.OptimizerStateListener)