Pizzaria
Crom[] calcFitness(Crom[] cList) { // O TreeSet é utilizado para ordenar a população de cromossomos // de acordo com o valor fitness, do melhor para o pior fitness java.util.TreeSet sortByFitness = new java.util.TreeSet(); // Cada cromossomo da população tem seu fitness calculado. // O fitness nesse exemplo é indicado pela quantidade de // 1's (bits "ligados") contidos no cromossomo for(Crom c : cList){ for (int l = 0; l < c.alleles.length; ++l) { c.fitness += (c.alleles[l] == '1' ? 1 : 0); } sortByFitness.add(c); } return sortByFitness.toArray(new Crom[]{}); }
Crom selectRouletteWheel(Crom[] cList, int fitTotal) { // Armazena o fitness total da população int sum = fitTotal; // Um número entre zero e "sum" é sorteado int randWheel = new java.util.Random().nextInt(fitTotal + 1); // Começando pelo cromossomo com melhor fitness, subtrai-se o // valor do fitness do cromossomo do valor total (sum) até que // "sum" seja menor ou igual a "randWheel". O cromossomo com o // último fitness