Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Un algorithme génétique en Julia - partie 13

| Comments

Niveau : intermédiaire

On peut améliorer la fonction fight, pour qu’elle ne choisisse pas toujours le meilleur individu. Il serait bon que, dans une faible proportion, elle choisisse parfois le plus faible des deux combattants ; ceci pour assurer qu’on ne perde pas de matériel génétique.

Voici donc la nouvelle fonction fight:

1
2
3
4
5
6
7
function fight(scores, index1, index2)
  if rand() < 0.8
    scores[index1] > scores[index2] ? index1 : index2
  else
    scores[index1] > scores[index2] ? index2 : index1
  end
end

Dans 80% des cas, elle selectionne le meilleur individu, et dans 20% des cas, elle selectionne le plus faible.

Je pense qu’on a maintenant tous les éléments nécessaire à la finalisation de l’algorithme.

À demain.

Articles connexes

Commentaires