Etapes préparatoires
Déjà, je vous propose de rajouter un grand nombre de points à notre ensemble d'apprentissage de manière à éviter que le moteur de PG « triche » et nous propose des fonctions passant par les points sans correctement approximer la fonction sinus.
x | sin(x) |
0 | 0 |
0,1 | 0,0998334166468282 |
0,2 | 0,198669330795061 |
0,3 | 0,29552020666134 |
... | ... |
6,1 | -0,182162504272095 |
6,2 | -0,0830894028174964 |
Pour ceux qui sont intéressés et qui souhaiteraient reproduire cet exemple, vous pouvez retrouver le fichier ici
Nous allons cependant complexifier (quelque peu) notre approche puisque nous allons demander au moteur de programmation génétique d'essayer de découvrir cette fonction sans utiliser de fonctions trigonométriques.
L'ensemble des points d'apprentissage est représenté sur la figure suivante :
Comme on le voit, l'ensemble d'apprentissage pour le moteur de PG est une bonne approximation de la fonction sinus.