Un algorithme génétique nécessite un moyen de récompenser les bons gènes avec une plus grande propagation. Si vous n'aviez aucun moyen de distinguer les bons gènes des mauvais gènes, vous ne pourriez pas du tout utiliser un algorithme génétique.
Pour qu'un algorithme génétique fonctionne, vous devez permettre aux solutions les plus adaptées de se reproduire de préférence aux solutions les moins adaptées. Sinon, vous essayez simplement des solutions aléatoires.
Voici un exemple typique de ma propre expérience: en développant l'un des premiers systèmes de numérotation vocale, nous avons eu du mal à trouver un algorithme pour faire correspondre un nom prononcé à une copie stockée de ce même nom. On nous a dit qu'une précision de 95% pour choisir un nom sur 25 était suffisante. Nous avions un corpus stocké de personnes disant 25 noms 10 fois chacun.
Tout d'abord, nous avons développé un système d'entrée qui mesurait la longueur du mot parlé et l'énergie de fréquence en plusieurs morceaux normalisés. Ensuite, nous avons développé un algorithme qui a attribué des poids aux correspondances sur ces paramètres et comparé deux ensembles de paramètres à travers ces poids.
Maintenant, nous avons eu une dernière étape - quelle devrait être la valeur de ces poids?
Nous avons créé 1 000 ensembles aléatoires de poids et les avons testés par rapport au corpus. Nous avons jeté les 500 qui ont fait le pire. Pour les 500 restants, nous avons dupliqué chacun et dans l'un d'eux, augmenté ou abaissé au hasard l'un des poids.
Nous avons répété ce processus sur un ordinateur pendant environ deux semaines jusqu'à ce qu'il ait finalement un ensemble de poids répondant au critère de précision de 95%. Nous l'avons ensuite testé sur des données ne figurant pas dans le corpus. Il était précis à environ 92%. Nous avons donc couru plus longtemps pour atteindre une précision de 98% sur le corpus et cet ensemble de poids a produit une précision de 95% sur les données ne figurant pas dans le corpus.
Donc, le fait est que vous devez avoir une fonction de fitness pour exécuter un algorithme génétique. Si vous n'avez aucun moyen de distinguer les bons gènes des mauvais gènes, comment pouvez-vous vous assurer que les bons gènes se reproduisent et que les mauvais gènes ne le font pas?