/*
  Copyright 2006 by Sean Luke
  Licensed under the Academic Free License version 3.0
  See the file "LICENSE" for more information
*/


package ec;

/* 
 * SelectionMethod.java
 * 
 * Created: Mon Aug 30 19:19:56 1999
 * By: Sean Luke
 */

/**
 * A SelectionMethod is a BreedingSource which provides direct IMMUTABLE pointers
 * to original individuals in an old population, not fresh mutable copies.
 * If you use a SelectionMethod as your BreedingSource, you must 
 * SelectionMethods might include Tournament Selection, Fitness Proportional Selection, etc.
 * SelectionMethods don't have parent sources.
 *
 

Typical Number of Individuals Produced Per produce(...) call
Always 1. * @author Sean Luke * @version 1.0 */ public abstract class SelectionMethod extends BreedingSource { public static final int INDS_PRODUCED = 1; /** Returns 1 (the typical default value) */ public int typicalIndsProduced() { return INDS_PRODUCED; } /** A default version of produces -- this method always returns true under the assumption that the selection method works with all Fitnesses. If this isn't the case, you should override this to return your own assessment. */ public boolean produces(final EvolutionState state, final Population newpop, final int subpopulation, final int thread) { return true; } /** A default version of prepareToProduce which does nothing. */ public void prepareToProduce(final EvolutionState s, final int subpopulation, final int thread) { return; } /** A default version of finishProducing, which does nothing. */ public void finishProducing(final EvolutionState s, final int subpopulation, final int thread) { return; } public int produce(final int min, final int max, final int start, final int subpopulation, final Individual[] inds, final EvolutionState state, final int thread) { int n=INDS_PRODUCED; if (nmax) n = max; for(int q=0;q

Ads help maintain this website.