• Aucun résultat trouvé

Résolution du problème global par un algorithme génétique

Dans le document Optimisation des flux de trafic aérien (Page 116-121)

7.7.1 Représentation du problème

Au vu de la difficulté du problème global, nous avons choisi d’utiliser une méthode d’optimisation stochastique, en l’occurrence un algorithme génétique.

Dans notre cas, un individu est un ensemble de n trajectoires, la mutation s’opère par modification aléatoire d’une ou plusieurs trajectoires de cet ensemble, et le croisement entre deux individus se fait par échange ou modification d’une partie des trajectoires. Le critère d’adaptation permettant la sélection est directement dépendant du coût global associé au déviations par rapport aux trajectoires préférentielles, avec de plus une forte pénalisation lorsque les trajectoires ne sont pas séparées.

7.7.2 Choix de la population initiale

Chaque élément de la population initiale est créé en choisissant de manière aléatoire les éléments déterminants des n trajectoires qui composeront cet élément, à l’intérieur toutefois de certaines li- mites.

Les parallèles droite et gauche sont distantes de 15 milles nautiques de la route directe. Le niveau de croisière doit être entre le FL290 et le FL350. Les niveaux de stabilisation en montée ou en descente doivent se situer entre le FL200 et le niveau de croisière. Les segments de vol stabilisé lors d’une montée interrompue ou d’une descente anticipée ne doivent pas représenter chacun, ou à eux deux, plus de 80% de la longueur totale des segments en vol stable.

7.7. RÉSOLUTION DU PROBLÈME GLOBAL PAR UN ALGORITHME GÉNÉTIQUE 115

7.7.3 Le critère d’adaptation

Afin de construire le critère d’adaptation selon lequel seront sélectionnés les meilleurs individus d’une population, nous allons calculer une matrice triangulaire C dont la diagonale contiendra, pour chaque trajectoire i, le coût de l’écart par rapport à la trajectoire préférentielle. Les éléments non dia- gonaux, d’indices (i, j) avec i 6= j, permettront de comptabiliser les interférences entre segments de trajectoires (notés s). Voici l’expression des coefficients de cette matrice, avec les notations introduites précédemment :

Cii= cost(i)

∀i 6= j Cij = P(sp,sq)∈Ti×Tjδ(sp, sq)

où cost(i) est le coût associé à la trajectoire Tidéfini en section 7.2.4, et où :

δ(sp, sq) = 1 si d(sp, sq) ≤

√ 2 0 sinon.

Notons f (i) la somme P

j∈[1,n],j≤iCij. Cette somme sera nulle lorsque la trajectoire Ti n’in-

terfère avec aucune trajectoire. Les trajectoires sont totalement séparées les unes des autres lorsque P

i∈[1,n]f (i) = 0.

Le critère d’adaptation F associé à un individu (c’est-à-dire un ensemble de n trajectoires) est défini par : F = 1 + 1+Pn iCii si P if (i) = 0 1 P if(i) si P if (i) > 0

Cette fitness sera donc inférieure à 1 si les trajectoires ne sont pas séparées. Elle sera supérieure à 1 lorsque les trajectoires n’interfèrent pas entre elles, et sera dans ce cas d’autant plus grande que les écarts aux trajectoires préférentielles seront faibles. Notre objectif sera donc de maximiser cette fitness, minimisant ainsi le nombre d’interférences et le coût cumulé des déviations.

7.7.4 L’opérateur de croisement

Soient deux individus a et b, composés chacun de n trajectoires. L’opérateur de croisement retenu consiste à choisir, par tirage au sort, une des deux stratégies suivantes :

– Examiner pour chaque indice i inférieur à n si la trajectoire de a comporte moins d’interfé- rences que celle de b, auquel cas on la copie dans b. Inversement, si bi est de meilleure qualité

que ai, on la copie dans ai. Pour comparer les deux trajectoires, on utilise un critère local

d’adaptation (propre à chaque trajectoire) : la somme f (i) = P

j∈[1,n],j≤iCij, que l’on a déjà

vue précédemment. Si le critère local est identique, on ne change rien.

– Effectuer un croisement barycentrique des deux individus (cf chapitre 3, section 3.6 pour le détail de ce type de croisement).

Pour chaque croisement, on se donne une certaine probabilité d’adopter la première stratégie, plus élitiste que la deuxième, puisqu’on cherche délibérément à produire des descendants plus performants, ou alors de choisir la stratégie introduisant plus de variations aléatoires. Le choix parmi la population des couples d’éléments que l’on choisit de croiser est lui-même aléatoire, la probabilité de croisement étant un paramètre du programme.

116 CHAPITRE 7. ÉTUDE D’UN PROBLÈME SIMPLIFIÉ DE SÉPARATION DE FLUX

7.7.5 L’opérateur de mutation

La probabilité de mutation d’un élément de population est également un paramètre du programme. L’opérateur de mutation choisi fonctionne de la manière suivante :

1. une trajectoire est choisie aléatoirement parmi les n de l’individu muté. Il est possible éventuel- lement de choisir parmi celles dont le critère local d’adaptation est le plus mauvais.

2. on tente de calculer une trajectoire séparée des autres, la plus proche possible de la trajectoire préférentielle. En cas de réussite, cette trajectoire vient remplacer celle choisie.

3. en cas d’échec de la tentative précédente, des variations aléatoires (bruit) sont introduites dans la trajectoire choisie.

L’étape consistant à calculer une trajectoire séparée des autres est réalisée au moyen de l’algo- rithme A∗présenté précédemment.

7.7.6 Résultats de l’algorithme génétique

Les mêmes configurations que dans la section 7.6.5 ont été testées avec l’algorithme génétique Demi-cercle Num. test 1 2 3 4 5 6 7 8 9 10 Fbest 1.1897 1.1897 1.1901 1.1897 1.1885 1.1885 1.1897 1.1893 1.1901 1.1885 Coût 51.735 51.735 51.620 51.735 52.068 52.068 51.735 51.842 51.620 52.068 Num. Gén. 71 125 116 89 75 78 109 98 84 78 Temps (s) 591.03 1307.13 1033.93 848.83 742.89 894.82 1124.39 1107.01 714.64 728.49 TAB. 7.1 – Résultats numériques de l’algorithme génétique pour 10 flux en demi-cercle (DC).

L’algorithme a été lancé 10 fois de suite avec des valeurs différentes pour la racine du générateur aléatoire. La population de 250 éléments évolue sur 150 générations, avec une probabilité de croise- ment de 0.6 et une probabilité de mutation de 0.05. Les résultats sont détaillés dans le tableau 7.1, qui donne les différentes valeurs du critère d’adaptation, le coût, le numéro de génération à laquelle la meilleure solution a été trouvée, ainsi que le temps de calcul (CPU Xeon 2.8 GHz).

On voit que, dans tous les cas, l’algorithme génétique fournit des résultats meilleurs que ceux de l’A∗(cf section 7.6.5) ou équivalents, ce à quoi on pouvait s’attendre, étant donné que le but de l’A

n’est pas de résoudre le problème global. Les temps de calcul sont bien sûr plus longs.

Les figures 7.15 et 7.14 illustrent la meilleure solution trouvée. On voit que les déviations latérales des trajectoires 8 et 9, combinées avec des déviations verticales décalées, permet aux trajectoires 7, 8 et 9 de se croiser sur seulement 2 niveaux de vol. Ces trois trajectoires sont détaillées sur la figure 7.16. Cette solution permet de séparer toutes les trajectoires en occupant seulement 8 niveaux de vol au lieu des 10 de la solution trouvée par l’A∗.

Cercle

Pour le problème des 10 flux en cercle, la même démarche de test a été utilisée, avec une di- zaine d’essais avec des valeurs différentes pour la racine du générateur aléatoire. On constate sur le tableau 7.2 que les solutions trouvées sont, comme pour le problème en demi-cercle, meilleures ou équivalentes à celle trouvée par l’A∗, dont la fitness est de 1.174859, avec un coût de 56.19546

7.7. RÉSOLUTION DU PROBLÈME GLOBAL PAR UN ALGORITHME GÉNÉTIQUE 117 -400 -300 -200 -100 0 100 200 300 400-400-300 -200 -100 0 100 200 300 400 0 5000 10000 15000 20000 25000 30000 35000 ft ’traj_0’ ’traj_1’ ’traj_2’ ’traj_3’ ’traj_4’ ’traj_5’ ’traj_6’ ’traj_7’ ’traj_8’ ’traj_9’ NM NM ft -400 -300 -200 -100 0 100 200 300 400 -400 -300 -200 -100 0 100 200 300 400 NM NM

FIG. 7.14 – Résultats de l’algorithme génétique pour 10 flux en demi-cercle (distances horizontales en milles nautiques ; altitudes en pieds).

0 5000 10000 15000 20000 25000 30000 35000 40000 0 100 200 300 400 500 600 700 800 traj_0 traj_1 traj_2 traj_3 traj_4 traj_5 traj_6 traj_7 traj_8 traj_9

FIG. 7.15 – Profils verticaux des trajectoires trouvées par l’algorithme génétique pour 10 flux en demi-cercle (en abscisse : distance parcourue, en milles nautiques ; en ordonnée : altitude en pieds).

118 CHAPITRE 7. ÉTUDE D’UN PROBLÈME SIMPLIFIÉ DE SÉPARATION DE FLUX -400 -300 -200 -100 0 100 200 300 400-300 -200 -100 0 100 200 300 0 5000 10000 15000 20000 25000 30000 35000 ’traj_7’ ’traj_8’ ’traj_9’

FIG. 7.16 – Détail des trajectoires 7, 8 et 9 du meilleur résultat de l’algorithme génétique pour 10 flux en demi-cercle (distances horizontales en milles nautiques ; altitude en pieds).

7.8. CONCLUSION SUR L’ÉTUDE DU PROBLÈME SIMPLIFIÉ 119

Dans le document Optimisation des flux de trafic aérien (Page 116-121)