net.openai.ai.ga.selection.common
Class SelectLeastMaturity

java.lang.Object
  |
  +--net.openai.ai.ga.selection.common.SelectLeastMaturity
All Implemented Interfaces:
SelectionAlgorithm

public class SelectLeastMaturity
extends java.lang.Object
implements SelectionAlgorithm

SelectGreatestMaturity is a SelectionAlgorithm that will return a portion of the passed Population that have the least maturity. It will choose either a fixed number or a percentage.

Since:
JDK1.3
Version:
%I%, %G%
Author:
Jared Grubb

Constructor Summary
SelectLeastMaturity(double goalPercentage)
          Creates a new SelectGreatestMaturity object for choosing the specified percentage of Cells out of the specified Population who have the least maturity.
SelectLeastMaturity(int goalNumber)
          Creates a new SelectLeastMaturity object for choosing the specified number of Cells out of the specified Population who have the least maturity.
 
Method Summary
 Population selectFromPopulation(Population pop)
          Chooses the Cells in the specified Population with the least maturity.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SelectLeastMaturity

public SelectLeastMaturity(int goalNumber)
Creates a new SelectLeastMaturity object for choosing the specified number of Cells out of the specified Population who have the least maturity.

Parameters:
goalNumber - the maximum number of Cells to allow
Throws:
ArithmeticException - on a negative goalNumber

SelectLeastMaturity

public SelectLeastMaturity(double goalPercentage)
Creates a new SelectGreatestMaturity object for choosing the specified percentage of Cells out of the specified Population who have the least maturity. The percentage must be between 0.0 and 1.0, inclusive.

Throws:
ArithmeticException - on a negative percentage or on a percentage greater than 1.0
Method Detail

selectFromPopulation

public Population selectFromPopulation(Population pop)
Chooses the Cells in the specified Population with the least maturity. For a fixed number, returns a maximum number depending on the size of the population, but may return fewer if the population if the population is not that large. For a percentage, returns a percentage of the population, rounded down (i.e., percentage of 10% (0.10) on a size of 25 {0.10 * 25 = 2.5} returns a maximum of 2, not three; a percentage of 10% on a size of 9 {0.10 * 9 = 0.9} will not return any objects.)

The returned population is guaranteed to return the members of the specified population such that there are no other members in that population who are less than those returned. This means that cells who tie those already in the return population are ignored when their addition would cause the size to exceed that specified. For example, if the maturity of a population was {1,1,2,3,3,3,4,5,5} and the least 4 should be returned, then the returned population will be {1,1,2,3}. The cells who have maturity 1 are kept since their addition will knock more fit members out of the list. However, the other cells of maturity 3 are ignored since their addition could not knock any other cell out.

Specified by:
selectFromPopulation in interface SelectionAlgorithm
Parameters:
pop - the Population to choose from
Returns:
a selected Population in arbitrary order


Copyright - 2001 OpenAI Labs. All Rights Reserved.