public List<T> generateInitialPopulation(int populationSize,
                                             Collection<T> seedCandidates,
                                             Random rng)
    {
        if (seedCandidates.size() > populationSize)
        {
            throw new IllegalArgumentException("Too many seed candidates for specified population size.");
        }
        List<T> population = new ArrayList<T>(populationSize);
        population.addAll(seedCandidates);
        for (int i = seedCandidates.size(); i < populationSize; i++)
        {
            population.add(generateRandomCandidate(rng));
        }
        return Collections.unmodifiableList(population);
    }
public List < T > generateInitialPopulation ( int populationSize , Collection < T > seedCandidates , Random rng ) { if ( seedCandidates . size ( ) > populationSize ) { throw new IllegalArgumentException ( "Too many seed candidates for specified population size." ) ; } List < T > population = new ArrayList < T > ( populationSize ) ; population . addAll ( seedCandidates ) ; for ( int i = seedCandidates . size ( ) ; i < populationSize ; i ++ ) { population . add ( generateRandomCandidate ( rng ) ) ; } return Collections . unmodifiableList ( population ) ; }
{@inheritDoc}
If the number of seed candidates is less than the required population
size, the remainder of the population will be generated randomly via
the {@link #generateRandomCandidate(Random)} method.