Guest User

Untitled

a guest
May 25th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. public Individual pickRandomIndividual(List<Individual> pool) {
  2. Double totalScore = 0d;
  3. Double runningScore = 0d;
  4. for (Individual ind : pool) {
  5. totalScore += ind.fitnessValue;
  6. }
  7.  
  8. Double rnd = Math.random() * totalScore;
  9.  
  10. for (Individual ind : pool) {
  11. if (rnd >= runningScore &&
  12. rnd <= runningScore + ind.fitnessValue) {
  13. return ind;
  14. }
  15. runningScore += ind.fitnessValue;
  16. }
  17. return null;
  18. }
  19.  
  20. Double fitnessSum = genePool.stream()
  21. .mapToDouble(individual -> individual.fitnessValue)
  22. .sum();
  23. Double runningScore = 0d;
  24.  
  25. Double rnd = random() * fitnessSum;
  26.  
  27. for (Individual g : genePool) {
  28. if (rnd >= runningScore && rnd <= runningScore + g.fitnessValue) {
  29. return g;
  30. }
  31. runningScore += g.fitnessValue;
  32. }
  33. return null;
Add Comment
Please, Sign In to add comment