Navigation



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
Notez au passage les problèmes d'arrondi avec les nombres réels avec le programme que j'ai utilisé pour générer cette série ; ce qui prouve que l'ordinateur ne manipule que très rarement des valeurs réelles exactes (le programme est écrit en JAVA).
  • 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 :
    1. on atteint le nombre maximum de générations (ici 100) sans trouver une solution correcte ;
    2. 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 ?



Valid XHTML 1.0 Strict