JAGA Homepage

org.jaga.reproduction
Class CombinedReproductionAlgorithm

java.lang.Object
  extended by org.jaga.reproduction.CombinedReproductionAlgorithm
All Implemented Interfaces:
ReproductionAlgorithm
Direct Known Subclasses:
SimpleBinaryXOverWithMutation

public class CombinedReproductionAlgorithm
extends java.lang.Object
implements ReproductionAlgorithm

TODO: Complete these comments.

Project: JAGA - Java API for Genetic Algorithms.

Company: University College London and JAGA.Org (http://www.jaga.org).

Copyright: (c) 2004 by G. Paperin.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, ONLY if you include a note of the original author(s) in any redistributed/modified copy.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or see http://www.gnu.org/licenses/gpl.html

Version:
JAGA public release 1.0 beta
Author:
Greg Paperin (greg@jaga.org)

Field Summary
private  java.lang.Class applicableClass
           
private  java.util.ArrayList combinedAlgorithms
           
 
Constructor Summary
CombinedReproductionAlgorithm()
           
 
Method Summary
private  void checkAlgorithmFitsTheOthers(ReproductionAlgorithm algorithm)
           
 int countCombinedAlgorithms()
           
 int findReproductionAlgorithm(ReproductionAlgorithm algorithm)
           
 java.lang.Class getApplicableClass()
          Returns the class of individuals handled by this reproduction algorithm.
 ReproductionAlgorithm getReproductionAlgorithm(int position)
           
 int getRequiredNumberOfParents()
          Returns, how many individuals are required to produce one new individual whwn using this reproduction algorithm.
 void insertReproductionAlgorithm(int position, ReproductionAlgorithm algorithm)
           
 void removeReproductionAlgorithm(int position)
           
 Individual[] reproduce(Individual[] parents, GAParameterSet params)
          Reproduces the specified individuals.
 void setReproductionAlgorithm(int position, ReproductionAlgorithm algorithm)
           
private  void updateApplicableClass()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

combinedAlgorithms

private java.util.ArrayList combinedAlgorithms

applicableClass

private java.lang.Class applicableClass
Constructor Detail

CombinedReproductionAlgorithm

public CombinedReproductionAlgorithm()
Method Detail

insertReproductionAlgorithm

public void insertReproductionAlgorithm(int position,
                                        ReproductionAlgorithm algorithm)

setReproductionAlgorithm

public void setReproductionAlgorithm(int position,
                                     ReproductionAlgorithm algorithm)

findReproductionAlgorithm

public int findReproductionAlgorithm(ReproductionAlgorithm algorithm)

removeReproductionAlgorithm

public void removeReproductionAlgorithm(int position)

getReproductionAlgorithm

public ReproductionAlgorithm getReproductionAlgorithm(int position)

countCombinedAlgorithms

public int countCombinedAlgorithms()

checkAlgorithmFitsTheOthers

private void checkAlgorithmFitsTheOthers(ReproductionAlgorithm algorithm)
                                  throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

updateApplicableClass

private void updateApplicableClass()

getApplicableClass

public java.lang.Class getApplicableClass()
Description copied from interface: ReproductionAlgorithm
Returns the class of individuals handled by this reproduction algorithm.

Specified by:
getApplicableClass in interface ReproductionAlgorithm
Returns:
The required type of the array-members in the parameter parents to the method ReproductionAlgorithm.reproduce.

reproduce

public Individual[] reproduce(Individual[] parents,
                              GAParameterSet params)
Description copied from interface: ReproductionAlgorithm
Reproduces the specified individuals.

Specified by:
reproduce in interface ReproductionAlgorithm
Parameters:
parents - The individuals to reproduce. The type of objects in this array must be the class returned by getApplicableClass. The number of objects in this array must be the same as returned by getRequiredNumberOfParents.
params - Experiment parameters.
Returns:
The children - i.e. the result of the reproduction of parents.

getRequiredNumberOfParents

public int getRequiredNumberOfParents()
Description copied from interface: ReproductionAlgorithm
Returns, how many individuals are required to produce one new individual whwn using this reproduction algorithm. If any number of parents is permitted (e.g. for most kinds of mutation), this method should return -1.

Specified by:
getRequiredNumberOfParents in interface ReproductionAlgorithm
Returns:
The required length of the array-parameter parents to the method reproduce or -1 if any length is parmitted.

JAGA Homepage

Go to JAGA Homepage