• Aucun résultat trouvé

3.2 Les algorithmes de plus courts chemins

3.3.3 Algorithmes proposés

Les différents algorithmes décrits ci-dessous permettent de résoudre les problèmes BI-MM-V-SP ou BI-MM-V-TD-SP considérés. Ils s’appuient sur un graphe multicouches pour représenter le réseau de transport et sur automate à états finis pour modéliser les contraintes de viabilité des itinéraires. Ces algorithmes déterminent l’ensemble des itiné-raires non-dominés entre une origine et une destination ou depuis une origine vers tout autre sommet du graphe.

Principe général de fixation d’étiquettes

Les différents algorithmes que nous avons proposés s’appuient sur une liste de labels à explorer (implémentée par une structure de données adéquate). Ils étendent le label (i, s, k), de cout πk

is minimal, vers l’ensemble de ces successeurs, si ce label n’est pas élagué par une des règles de dominance. Ainsi, pour chaque successeur j, l’algorithme détermine son état s0 (s0 = δ(mi, mj, s)), son nombre de transfert k0 (k0 = k si mi= mj, sinon k0= k + 1) et actualise le label (j, s0, k0) si besoin (ie. les valeurs πk0

js0 et predk0 js0). Adaptation de l’algorithme de [109]

L’algorithme proposé dans [109] et noté TLS (Topological Label Setting) permet de déterminer les plus courts chemins par nombre de transferts croissants et par temps de trajet décroissant.

Il itère sur le nombre de transferts (de 0 à Kmax) et, à chaque itération k, il utilise deux listes de labels, notées Qnow et Qnext (implémentées par des tas binaires) pour mémoriser respectivement les labels à k transferts et ceux à k + 1 transferts. A la fin de l’itération k, les labels contenus dans Qnext sont transférés dans Qnow ce qui limite les redondances de l’algorithme. Lors des différentes itérations, afin d’appliquer les règles de dominance pour élaguer un label (j, s0, k0), on a besoin de conserver la meilleure valeur précédemment trouvée pour tout nœud j à l’état s0 (cette valeur a nécessairement été obtenue pour des nombres de transferts k00< k0).

Les adaptations de cet algorithme que nous avons effectuées sont : d’utiliser la règle de dominance 3.3.2 proposée ; d’effectuer le test de dominance lorsqu’un label est extrait de Qnow et non pas avant l’ajout dans une des files Qnow ou Qnext afin d’améliorer les perfor-mances de l’algorithme et finalement d’utiliser une valeur πk0

js0 pour chacune des files Qnow

et Qnext et non pas une seule valeur πjs0 comme suggéré dans l’article (car à un nœud i, un chemin ayant k transferts pourrait ne pas être étendu s’il correspond à un plus long temps de trajet qu’un chemin à k+1 transferts).

Pour un graphe de transport GT = (N, E, M )avec n = |N| et m = |E| et un automate de viabilité comportant |S| sommets, nous avons établi la complexité temporelle dans le pire des cas de cet algorithme qui est en O(Kmax.m.|S|.(|S| + log(n.|S|))) lorsque la règle de dominance basée sur les états est appliquée et en O(Kmax.m.|S|.(log(n.|S|)))sans utilisa-tion de règle de dominance [66].

Un des inconvénients de cet algorithme est lié à la difficulté d’en proposer une version bidirectionnelle. En effet, l’obtention des solutions par valeurs croissantes du nombre de transferts pose des problèmes lors de la connexion des recherche en avant et en arrière car on ne peut pas se limiter à tester des connexions entre chemins partiels ayant un même nombre de transferts. Face à cette difficulté, nous avons proposé un nouvel algorithme dont l’extension en bidirectionnel est plus aisée.

Proposition d’un nouvel algorithme : MQLS

Le principe de l’algorithme MQLS (Multi-Queues Label Setting) que nous avons pro-posé est de déterminer l’ensemble des plus courts chemin dans l’ordre croissant du temps de trajet et donc dans l’ordre décroissant du nombre de transferts. Pour cela, il nécessite un ensemble Q de listes de labels (implémentées par des tas binaires) tel que chaque liste Qk contienne les labels à k transferts. Avec l’algorithme MQLS, le label de cout minimal (i, s, k)est recherché dans l’ensemble des listes Q. Puis, s’il n’est pas dominé, ses labels suc-cesseurs (j, s0, k0)sont calculés et insérés dans les listes Qk0 correspondant à leur nombre de transferts. Lorsqu’un plus court chemin est déterminé d’une origine vers une destination, son nombre de transfert k permet de supprimer toutes les listes Qk telles que k ≥ k. L’algorithme stoppe lorsqu’il n’y a plus de labels dans les files Qk, il ne nécessite donc pas de fixer a priori une valeur maximale du nombre de transferts Kmax. Dans le pire des cas, sa complexité temporelle est en O(Kmax.m.|S|.(Kmax.|S| + log(n.|S|))) avec la règle de dominance basée sur les états et en O(Kmax.m.|S|.(Kmax+ log(n.|S|))) sans règle de dominance. Sa complexité temporelle dans le pire des cas est moins bonne que celle de l’algorithme TLS ci-dessus.

Comparaisons expérimentales

Les expérimentations ont été menées sur une partie du réseau de transport de la ville de Toulouse dont les caractéristiques générales sont fournies dans le tableau 3.2.

Nous avons considéré que les modes de transport en commun (métro et bus) disposent de tables horaire ou de fréquence de passage et que les autres modes (marche et véhi-cule personnel) sont statiques. Le graphe dépendant du temps utilisé est le même que le graphe statique, cependant l’intégration des horaires réels des bus, dans la modélisation par graphe multi-couches, a conduit à éclater une ligne de bus en utilisant la notion de mis-sions (ensemble d’itinéraires effectifs associés à une même ligne) et de courses (association des horaires aux différentes missions). Ceci a entrainé, d’une part, une augmentation du nombre nœuds et d’arcs pour le mode Bus et, d’autre part, une augmentation du nombre

Graphe statique Graphe dynamique

Modes Nœuds Arcs Nœuds Arcs

Bus 6 170 6 646 9 384 9 047 Métro 75 72 75 72 Voirie (Marche et VP) 56 774 146 280 56 774 146 280 Transfert - 6 370 - 28 017 Parking 29 - 29 -Total 63 048 159 368 66 262 183 416

Table 3.2 – Caractéristiques du graphe de transport

d’arcs de transfert pour permettre les changements de modes.

A partir de ces deux graphes, nous avons généré aléatoirement 100 couples origines-destinations répartis dans les zones périphériques de l’agglomération.

Dans le graphe dépendant du temps, l’horaire de départ est fixé à 8h du matin, le nombre d’horaires est de 129 975 et la fréquence de passage du métro est de 3 minutes.

Tous les algorithmes déterminent l’ensemble des trajets non-dominés. Dans ces expé-rimentations, le nombre moyen de solutions non-dominées est de 5 pour un nombre de transferts moyen de 2. L’obtention de plusieurs solutions non-dominées pour un trajet donné, en termes de temps de trajet et de nombre de transferts, est en grande partie liée à l’interdiction de stationner un véhicule à la destination. Cette hypothèse, réaliste en mileu urbain, permet d’obtenir une plus grande variété de solutions. En l’absence de cette hypo-thèse, le mode VP domine les autres et il n’y a souvent qu’une seule solution non-dominée consistant à réaliser tout le trajet origine-destination en voiture (et donc avec 0 transfert). La distance moyenne des itinéraires trouvée est de 40 km (entre 30 et 50), ces itinéraires sont plus longs que ceux classiquement réalisés sur l’agglomération toulousaine mais ils permettent d’avoir un meilleur aperçu des performances relatives de nos algorithmes et des règles de dominance.

La figure 3.2 montre l’impact de la règle de dominance simple et de celle basée sur les états pour les différents algorithmes en termes de temps de calcul.

MQLS TLS 0.5 1 1.5 2 2.5 sec sans dominance dominance simple dominance états

Figure 3.2 – Impact des règles de dominances sur le graphe statique

Ces résultats montrent l’apport significatif de la règle de dominance simple pour les algorithmes TLS et MQLS et met aussi en évidence l’apport de la règle de dominance basée sur les états.

Par ailleurs, bien que la complexité théorique au pire de MQLS soit moins bonne que celle de TLS (avec ou sans dominance), en pratique, lors de l’utilisation de la dominance basée sur les états, MQLS a un meilleur temps de calcul que TLS (ce qui n’est pas le cas sans dominance ou avec la dominance simple).

Ces résultats sont confirmés dans le cas d’un graphe dépendant du temps.