net.sourceforge.cilib.algorithm.population
Class MultiPopulationCriterionBasedAlgorithm

java.lang.Object
  extended by net.sourceforge.cilib.algorithm.Algorithm
      extended by net.sourceforge.cilib.algorithm.population.PopulationBasedAlgorithm
          extended by net.sourceforge.cilib.algorithm.population.MultiPopulationBasedAlgorithm
              extended by net.sourceforge.cilib.algorithm.population.MultiPopulationCriterionBasedAlgorithm
All Implemented Interfaces:
Serializable, Iterable<PopulationBasedAlgorithm>, Runnable, Cloneable

public class MultiPopulationCriterionBasedAlgorithm
extends MultiPopulationBasedAlgorithm

Generic class that represents the case where a Criterion-based MultiPopulationBasedAlgorithm (like VEPSO) is used to solve a Multi-objective problem. The class makes use of an ObjectiveAssignmentStrategy to assign the MOOptimisationProblem's sub-objectives to the different sub-populations. Some KnowledgeTransferStrategy mechanism is needed to share the knowledge gained during the search among the different sub-populations.

Author:
Wiehann Matthysen
See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.sourceforge.cilib.algorithm.population.MultiPopulationBasedAlgorithm
algorithmIterator, subPopulationsAlgorithms
 
Fields inherited from class net.sourceforge.cilib.algorithm.Algorithm
optimisationProblem
 
Constructor Summary
MultiPopulationCriterionBasedAlgorithm()
           
MultiPopulationCriterionBasedAlgorithm(MultiPopulationCriterionBasedAlgorithm copy)
           
 
Method Summary
protected  void algorithmIteration()
          The actual operations that the current Algorithm performs within a single iteration.
 OptimisationSolution getBestSolution()
          Get the best current solution.
 MultiPopulationCriterionBasedAlgorithm getClone()
          Create a cloned copy of the current object and return it.
 ObjectiveAssignmentStrategy getObjectiveAssignmentStrategy()
           
 List<OptimisationSolution> getSolutions()
          Get the collection of best solutions.
 void performInitialisation()
          Perform the needed initialisation required before the execution of the algorithm starts.
 void performUninitialisation()
          Perform the needed unintialisation steps after the algorithm completes it's execution.
 void setObjectiveAssignmentStrategy(ObjectiveAssignmentStrategy objectiveAssignmentStrategy)
           
 
Methods inherited from class net.sourceforge.cilib.algorithm.population.MultiPopulationBasedAlgorithm
accept, addPopulationBasedAlgorithm, getAlgorithmIterator, getInitialisationStrategy, getPopulations, getTopology, iterator, removePopulationBasedalgorithm, reset, setAlgorithmIterator, setInitialisationStrategy, setPopulations
 
Methods inherited from class net.sourceforge.cilib.algorithm.Algorithm
addAlgorithmListener, addStoppingCondition, get, getAlgorithmList, getIterations, getOptimisationProblem, getPercentageComplete, getStoppingConditions, initialise, isFinished, performIteration, removeAlgorithmListener, removeStoppingCondition, run, setOptimisationProblem, terminate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiPopulationCriterionBasedAlgorithm

public MultiPopulationCriterionBasedAlgorithm()

MultiPopulationCriterionBasedAlgorithm

public MultiPopulationCriterionBasedAlgorithm(MultiPopulationCriterionBasedAlgorithm copy)
Method Detail

getClone

public MultiPopulationCriterionBasedAlgorithm getClone()
Description copied from class: PopulationBasedAlgorithm
Create a cloned copy of the current object and return it. In general the created copy will be a deep copy of the provided instance. As a result this operation an be quite expensive if used incorrectly.

Specified by:
getClone in interface Cloneable
Specified by:
getClone in class PopulationBasedAlgorithm
Returns:
An exact clone of the current object instance.
See Also:
Object.clone()

setObjectiveAssignmentStrategy

public void setObjectiveAssignmentStrategy(ObjectiveAssignmentStrategy objectiveAssignmentStrategy)

getObjectiveAssignmentStrategy

public ObjectiveAssignmentStrategy getObjectiveAssignmentStrategy()

performInitialisation

public void performInitialisation()
Description copied from class: Algorithm
Perform the needed initialisation required before the execution of the algorithm starts.

Overrides:
performInitialisation in class Algorithm

algorithmIteration

protected void algorithmIteration()
Description copied from class: MultiPopulationBasedAlgorithm
The actual operations that the current Algorithm performs within a single iteration.

Specified by:
algorithmIteration in class MultiPopulationBasedAlgorithm

performUninitialisation

public void performUninitialisation()
Description copied from class: Algorithm
Perform the needed unintialisation steps after the algorithm completes it's execution.

Overrides:
performUninitialisation in class Algorithm

getBestSolution

public OptimisationSolution getBestSolution()
Description copied from class: PopulationBasedAlgorithm
Get the best current solution. This best solution is determined from the personal bests of the particles.

Specified by:
getBestSolution in class PopulationBasedAlgorithm
Returns:
The OptimisationSolution representing the best solution.

getSolutions

public List<OptimisationSolution> getSolutions()
Description copied from class: PopulationBasedAlgorithm
Get the collection of best solutions. This result does not actually make sense in the normal PSO algorithm, but rather in a MultiObjective optimization.

Specified by:
getSolutions in class PopulationBasedAlgorithm
Returns:
The Collection<OptimisationSolution> containing the solutions.


Copyright © 2009 CIRG. All Rights Reserved.