code: 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);
      }
docs: {@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.