• Aucun résultat trouvé

chapitre IV Modélisation et résolution du sous problème de tarification

III. Résolution du sous problème de tarification

III.4. Règles de sélection des feuilles à examiner

Le choix de la feuille à examiner parmi les feuilles marquées peut s’effectuer selon plusieurs modalités décrites ci-dessous. La comparaison expérimentale entre ces différentes modalités sera également étudiée dans le chapitre V). Il est à noter que le choix de la feuille à explorer est facilement paramétrable et peut changer selon le moment où l’algorithme est appelé lors du processus de global de résolution : ainsi lors des premières boucles l’objectif est de trouver rapidement de bonnes trajectoires alternatives pour avoir une bonne estimation des valeurs duales. Lors des boucles suivantes l’objectif est de prouver qu’il n’existe plus de solution ou d’en trouver des plus atypiques.

III.4.b) Exploration en profondeur contre exploration en largeur

Il existe deux grandes stratégies d’exploration d’un graphe de possibilités. L’exploration en largeur étudie toutes possibilités à un niveau avant d’étudier les possibilités au niveau suivant. L’exploration en profondeur choisit au contraire une possibilité à chaque niveau et continue ainsi jusqu’à arriver à la fin de l’arbre des possibilités. Dans notre cas, une exploration en largeur consiste à explorer toutes les feuilles autour de la position d’origine et à ne s’éloigner que concentriquement de celle-ci. Une exploration en profondeur consiste au contraire à se rapprocher plus directement de l’aéroport de destination. Ces deux stratégies d’explorations ont des avantages et des inconvénients distincts.

i) Avantages et inconvénients d’une exploration en largeur

On peut remarquer que les calculs à effectuer pour étendre deux trajectoires partielles arrivant à la même position au début d’une feuille sont les mêmes, indépendamment du parcours précédent. Si les deux trajectoires sont déjà présentes au moment où l’on sélectionne la feuille concernée, ces calculs ne seront effectués qu’une fois. Par contre si l’on sélectionne la feuille dès qu’on a associé la première trajectoire partielle alors que la deuxième n’est pas encore connue, le calcul du parcours de la feuille sera effectué deux fois. Une exploration en largeur vise donc à limiter ces cas de figures. Par ailleurs, en étudiant toutes les possibilités à un niveau avant de passer au niveau supérieur, l’exploration en largeur augmente la diversité des solutions trouvées.

L’inconvénient principal de cette stratégie est qu’elle est plus lente : elle nécessite plus de temps de calcul pour trouver un nombre fixe de trajectoires. De plus, dans le cas où l’on ne connaît pas encore beaucoup de trajectoires, l’arbre des possibilités à explorer est trop grand et l’algorithme va avoir besoin de trop de temps ou de place mémoire.

ii) Avantages et inconvénients d’une exploration en profondeur

Une exploration en profondeur va permettre de calculer très rapidement un ensemble de trajectoires complètes et directes. Par contre l’éventail des solutions trouvées sera beaucoup plus restreint puisqu’elles ne diffèreront que par les dernières décisions. De plus, quand une exploration systématique est nécessaire (pour prouver qu’il n’y a plus de solution notamment), l’exploration en profondeur perd son avantage de rapidité puisque de nombreux calculs vont devoir être effectués plusieurs fois.

III.4.c) Définition du potentiel d’une feuille

Il faut commencer par associer à chaque feuille un potentiel qui permet de comparer deux feuilles entre elles. Ce potentiel est tiré des différentes trajectoires partielles associées à la feuille. Plusieurs formes de potentiel possibles sont décrites ci-dessous.

i) Réserve de carburant maximale parmi les trajectoires associées

Le potentiel de chaque feuille est le maximum des réserves de carburant des trajectoires associées restant à étendre. Cette stratégie vise clairement à effectuer une exploration en largeur puisqu’on s’éloignera de la position d’origine de manière concentrique. Elle parait a priori adaptée à une recherche exhaustive des trajectoires lorsqu’un certain nombre de boucles de génération de colonnes ont déjà été effectuées.

ii) Maximum de la réserve de carburant moins la consommation minimale

Le potentiel de chaque feuille est le maximum des réserves de carburant des trajectoires associées restant à étendre moins la consommation minimale pour rejoindre l’aéroport de destination Cette stratégie inspirée de l’algorithme A* vise tout comme la précédente à limiter le nombre de calculs redondants tout en profitant des informations supplémentaires sur la suite de l’exploration en « visant » l’aéroport de destination.

iii) Distance minimale pour rejoindre l’aéroport de destination

Le potentiel de chaque feuille est la distance minimale pour rejoindre l’aéroport de destination. C’est évidemment une stratégie d’exploration en profondeur, indépendante des trajectoires partielles associées à la feuille. Cette stratégie cherche à trouver rapidement des trajectoires complètes : adaptée a priori aux premières boucles de génération de colonnes.

iv) Coût réduit minimal des trajectoires partielles non explorées présentes dans la feuille

Le potentiel de chaque feuille est le minimum des coûts réduits partiels des trajectoires associées restant à étendre. Cette stratégie basée sur l’algorithme de Dijkstra ne garantit pas toutefois que chaque feuille ne sera explorée qu’une seule fois comme dans l’algorithme de Dijkstra : en effet comme on étend toutes les trajectoires d’une feuille en même temps, toutes les trajectoires partielles ne sont pas considérées dans l’ordre croissant du coût réduit. Elle est similaire à la première stratégie et parait conseillée après un certain nombre de boucles de génération de colonnes.

v) Estimation minimale des coûts réduits des trajectoires partielles présentes

Le potentiel de chaque feuille est le minimum de l’estimation de coût réduit de chaque trajectoire associée restant à étendre. Cette estimation du coût réduit est faite à partir de la portion de trajectoire déjà déterminée (coût réduit partiel) et à partir des distances minimales précalculées entre les feuilles et l’aéroport de destination pour la portion restante de la trajectoire. Ce choix inspiré de l’algorithme A* est similaire à la stratégie ii) tout en prenant mieux en compte les coûts réduits

vi) Date d’arrivée minimale à la feuille parmi les trajectoires présentes

Le potentiel de chaque feuille est le minimum des dates d’arrivée à l’aéroport (à la vitesse nominale) des trajectoires associées restant à étendre. Cette stratégie, parfois rencontrée sous le nom de chrono-SPT ([52]) est conseillée dans le cas des problèmes de plus court chemins

dynamiques et vise également à minimiser le nombre de sélections d’un même sommet.

III.4.d) Structures de données pour déterminer la séquence des sommets dans l’algorithme

Une fois qu’on a déterminé le potentiel d’une feuille qui permet de les comparer deux à deux, il faut choisir la structure de données utilisées pour stocker les feuilles marquées en attente d’être examinées. L’objectif général est de minimiser pour chaque feuille le nombre de passage dans la liste des feuilles à examiner. Pour cela deux grandes stratégies sont possibles : soit on choisit systématiquement la feuille de plus petit potentiel et on peut alors utiliser des structures de données telles que les piles de priorité pour accéder rapidement à l’élément de plus petit potentiel. On peu également suivre des règles de sélection plus empiriques basées notamment sur des piles auxquelles on peut ajouter les feuilles soit en tête soit en queue. Les deux stratégies sont décrites ci-dessous.

i) Les piles de priorités

Le potentiel d’une feuille est généralement défini à partir de caractéristiques des trajectoires partielles associées à la feuille. Ces caractéristiques des trajectoires ont la particularité d’avoir une évolution monotone (soit toujours en augmentation, soit toujours en diminution) lors de l’extension des trajectoires au travers d’une feuille : ainsi la réserve de carburant diminue alors que l’estimation de coût réduit ou le coût réduit partiel augmentent. Si l’on souhaite explorer le graphe des possibilités en largeur, il est alors naturel de choisir les feuilles dans l’ordre dicté par leur potentiel (le plus petit en premier si le potentiel augmente lors de l’extension des trajectoires partielles ou le plus grand s’il diminue). Si l’on stocke linéairement les feuilles dans leur ordre d’arrivée, il ne faut qu’une opération pour ajouter une feuille à la liste, par contre il faut n opérations pour trouver la feuille de plus petit potentiel où n est le nombre de feuilles déjà dans la liste. Les structures de données appelées piles de priorité permettent de trouver ce minimum en un temps proportionnel. Les piles de priorité

utilisées lors de ce travail sont décrites en détail dans les annexes (p.162 Annexes II.1.d).

ii) Les règles d’Esopo-Pape et variantes à deux piles (algorithmes à seuil)

L’algorithme dit d’Esopo-Pape ([59]) maintient deux piles : un nœud (pour nous une feuille) qui arrive pour la première fois dans les sommets marqués est stocké à la fin de la pile Q2 tandis que s’il revient il est stocké à la fin de la pile Q1. On considère alors les sommets de Q1 en premier puis lorsque celle-ci est vide ceux de Q2. Cette méthode donne généralement de très bons résultats. Une méthode plus sophistiquée appelée méthode de seuil (threshold algorithm [55]) gère également deux piles : un sommet est ajouté à la fin de la pile 1 si son

potentiel ne dépasse pas un certain seuil ou à la fin de la pile 2 dans le cas contraire. Lorsque la pile 1 est vide, les sommets de la pile 2 qui ne dépassent pas le seuil actuel sont alors replacés dans la pile 1 et le seuil est réajusté. Cet algorithme souffre de la difficulté de définir la valeur du seuil et n’a pas été implémenté pour cette raison. Bertsekas ([53]) propose une variante de ces algorithmes : avant d’ajouter un sommet à une pile, on compare son label avec celui du sommet situé en tête de la pile : s’il est meilleur on le met à la tête de la pile, sinon à la fin de la pile. Les conséquences du choix de l’une ou l’autre de ses structures de données

sur les performances de l’algorithme de résolution du plus court chemin sont décrites dans le chapitre V.

On décrit maintenant la deuxième phase de l’algorithme pendant laquelle on calcule pour chaque trajectoire 3D retenue la politique de vitesse associée optimale.

III.5. Phase II : Programmation dynamique : recherche temporelle