/*
Copyright 2006 by Sean Luke and George Mason University
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package ec.select;
import ec.*;
import ec.util.*;
import ec.steadystate.*;
/*
* RandomSelection.java
*
* Created: Tue Sep 3 2002
* By: Liviu Panait
*/
/**
* Picks a random individual in the subpopulation. This is mostly
* for testing purposes.
*
Default Base
select.random
*
* @author Sean Luke
* @version 1.0
*/
public class RandomSelection extends SelectionMethod implements SteadyStateBSourceForm
{
/** default base */
public static final String P_RANDOM = "random";
public Parameter defaultBase()
{
return SelectDefaults.base().push(P_RANDOM);
}
// I hard-code both produce(...) methods for efficiency's sake
public int produce(final int subpopulation,
final EvolutionState state,
final int thread)
{
return state.random[thread].nextInt( state.population.subpops[subpopulation].individuals.length );
}
// I hard-code both produce(...) methods for efficiency's sake
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 = 1;
if (n>max) n = max;
if (n
Ads help maintain this website.