Quelques précisions
Examinons d'un peu plus près l'ensemble de ces paramètres :
- les terminaux :nous allons dans le cadre de notre programme générer 100 valeurs aléatoires dans l'intervalle [-1,1], valeurs qui pourront être utilisées comme terminaux. Il y a donc au total 101 terminaux potentiels ;
- les valeurs pour le calcul de la fonction fitness : de manière totalement arbitraire, nous allons choisir 25 valeurs régulièrement réparties dans l'intervalle [0.0,10.0]
0.0 | 3.0 |
0.4 | 1.12 |
0.8 | -0.52 |
1.2000000000000002 | -1.9200000000000008 |
1.6 | -3.08 |
2.0 | -4.0 |
2.4 | -4.680000000000001 |
2.8 | -5.120000000000001 |
3.1999999999999997 | -5.32 |
3.5999999999999996 | -5.280000000000001 |
3.9999999999999996 | -5.0 |
4.3999999999999995 | -4.479999999999999 |
4.8 | -3.7200000000000024 |
5.2 | -2.719999999999999 |
5.6000000000000005 | -1.4800000000000004 |
6.000000000000001 | 7.105427357601002E-15 |
6.400000000000001 | 1.7200000000000024 |
6.800000000000002 | 3.680000000000014 |
7.200000000000002 | 5.88000000000001 |
7.600000000000002 | 8.320000000000014 |
8.000000000000002 | 11.000000000000021 |
8.400000000000002 | 13.920000000000016 |
8.800000000000002 | 17.080000000000013 |
9.200000000000003 | 20.480000000000025 |
9.600000000000003 | 24.120000000000033 |
- fitness et condition d'arrêt : il est a priori certain que nous n'obtiendrons pas le polynôme recherché mais nous en obtiendrons qu'une version approximée.
- Notre condition d'arrêt sera double :
-
- on atteint le nombre maximum de générations (ici 100) sans trouver une solution correcte ;
- la somme absolue des erreurs sur chaque cas est inférieure à 0,05*(nombre de cas) = 1,25.
On continue et on lance le programme ?