• Aucun résultat trouvé

4.4 Optimisations du calcul du plus court chemin

4.4.4 Hub Labeling

Parmi les techniques d’accélération, il y a celles qui n’utilisent que des plus courts chemins déjà calculés lors d’un prétraitement, et pas le graphe lui-même. L’idée derrière ces techniques est de précalculer les distances entre des paires de nœuds, en ajoutant implicitement des raccourcis virtuels au graphe. Le plus court chemin peut être directement consulté en parcourant la table des

4.4 – Optimisations du calcul du plus court chemin 89

distances. Parmi celles-ci, nous présentons en détail l’algorithme Hub Labeling (HL) (ou 2-hop labeling) que nous avons utilisé dans ce travail de thèse [Cohen et al.,2003,Abraham et al.,2011, Delling et al.,2014].

L’algorithme HL est un cas particulier de la méthode d’étiquetage (voir la section4.3.1) qui a été développée spécifiquement pour résoudre le problème A sur les réseaux routiers, c’est-à-dire le calcul du plus court chemin entre deux points (voir les variantes des problèmes PCC dans la section4.2.2). L’algorithme HL a plusieurs propriétés intéressantes [Delling et al.,2013] :

1. C’est l’algorithme le plus rapide pour ce genre de problème, aussi bien pour les requêtes à longue distance que pour les requêtes les plus courantes.

2. La requête est plus simple : l’algorithme n’a même pas besoin de la structure de données du graphe.

3. Le concept d’étiquettes (et de hubs) est intuitif et extrêmement puissant, se prêtant naturel- lement à la mise en œuvre de requêtes beaucoup plus sophistiquées, telles que la recherche de points d’intérêt à proximité, l’optimisation des schémas de covoiturage ou la construction de tableaux de distance.

4.4.4.1 Description de la méthode

L’algorithme HL se base sur deux étapes. Une étape qui précalcule les étiquettes où l’étiquette

L(x) associée au nœud x se compose d’un ensemble de nœuds appelés hubs avec leurs distances

depuis x, c’est-à-dire de plus courts chemins de x vers les nœuds hubs. Ces nœuds sont choisis de façon à ce qu’il satisfassent la propriété de couverture.

Propriété 4.4.1 (Propriété de couverture).

Pour chaque paire (s, t) de nœuds distincts, L(s)T

L(t) doit contenir au moins un nœud apparte-

nant au plus court chemin entre s et t (s’il existe). Il découle de la propriété que L(s)T

L(t) 6= ∅ si est seulement si t est accessible depuis s.

L’étape pour trouver le plus court chemin est plus simple, étant donné la propriété de couverture. Étant donné s et t, il s’agit de trouver le nœud x ∈ L(s)T

L(t) qui minimise l⋆(s, x) + l(x, t). On peut imaginer l’étiquette d’un nœud x comme un ensemble des hubs aux- quels u est connecté directement. La propriété de couverture assure que les deux sommets par- tagent au moins un hub sur le plus court chemin entre eux.

Pour les graphes orientés, l’étiquette associée au nœud x consiste en deux : l’ensemble des étiquettes en avant Lf(x) a les distances de x vers tous les hubs, quant à l’ensemble en arrière

Lb(x) a les distances de tous les hubs vers le nœud x ; le plus court chemin entre s et t a un hub dans Lf(s)TLb(t) (voir la figure4.6).

90 CHAPITRE 4 — Théorie des graphes

FIGURE 4.6 – Illustration du marquage des étiquettes des nœuds s (losanges bleu) et t (carrés

rouges) (Bast et al.[2016]).

4.4.4.2 Complexité

Bien que la distance du plus court chemin l⋆(s, t) peut être trouvée en temps polynomial O(n) en évaluant l⋆(s, t) = min{l(s, x) + l(x, t) | x ∈ L(s), x ∈ L(t)}Delling et al.[2014], elle peut être considérablement plus petite pour certains types de graphes.

Pour les réseaux routiers, Abraham et al. [2011] ont montré que l’on peut obtenir de bons résultats en définissant l’étiquette du sommet x comme l’espace de recherche avec la technique de la contraction hiérarchique (voir la section4.4.4.3). En général, tout ordre de sommet définit complètement un étiquetageAbraham et al.[2012], et un ordre peut être converti efficacement en étiquetage correspondant. Pour des étiquettes encore plus petites, on peut choisir les sommets les plus importants, en fonction du nombre des plus courts chemins qui passent par ce nœud.

D’ailleurs, si les étiquettes sont triées par les identifiants des hubs (ID), une requête consiste en un balayage linéaire sur deux tableaux, comme dans le tri fusion. Ainsi, il n’est même pas nécessaire de regarder tous les hubs d’une étiquette. En conséquence, HL dispose des requêtes connues les plus rapides pour les réseaux routiers, prenant à peu près une microseconde pour le calcul. En revanche, la méthode souffre du temps de prétraitement qui est extrêmement long par rapport aux autres méthodes et nécessite un espace de mémoire plus important pour stocker les grandes étiquettes.

4.4.4.3 Génération des étiquettes

D’un point de vue théorique, l’ensemble des hubs optimal devrait fournir les meilleures per- formances, en termes de temps de réponse. Cependant générer un tel ensemble est un problème non trivial NP-difficile [Cohen et al.,2003]. Beaucoup de travaux ultérieurs [Abraham et al.,2011, 2012] tentent de générer l’étiquetage du hub en se basant sur des heuristiques appelées, méthodes

4.4 – Optimisations du calcul du plus court chemin 91

hiérarchiques. La structure des réseaux routiers, qui est basée sur des hiérarchies, a donné nais- sance à la technique de la Contraction Hiérarchique (en anglais Contraction Hierarchies).

Contraction Hierarchies

La technique de Contraction Hiérarchique (CH) est une approche importante pour exploiter la hiérarchie du réseau en créant des arcs raccourcis (en anglais shortcuts) pour ignorer les nœuds « sans importance » [Geisberger et al., 2008]. Le graphe contracté représente ainsi la structure compacte du graphe de départ. La méthode consiste à exécuter de manière répétée une opération de contraction de sommet. Pour contracter un sommet x ∈ X , il est (temporairement) supprimé de G et remplacé par des arcs entre ses voisins u et v, c’est-à-dire des raccourcis, de telle sorte qu’il existe un plus court chemin qui passe par le nœud x entre ses voisins. L’arc ajouté, qui est le raccourci, a une distance égale à la distance du plus court chemin entre ces voisins.

La figure4.7montre un exemple de contraction d’un nœud x.

v w x

1 2

3

FIGURE 4.7 – Exemple de contraction.

Au cours du prétraitement, CH classe d’une manière heuristique les sommets par «importance» et les contracte du moins important au plus important. Ce classement est défini de manière à minimiser le nombre de raccourcis ajoutés.

CHAPITRE

5

Notions sur les bases de

données

Dans ce chapitre, nous commençons par présenter les systèmes de gestion de bases de données. Ensuite, nous introduisons les bases de données relationnelles qui sont connues historiquement, à savoir leurs architectures, syntaxe du langage de requêtage et leurs limites. Face à ses limites, nous abordons les bases de données NoSQL. Nous présentons la base de données MongoDB utilisée par Milanamos dans notre contexte industriel et puis la base alternative proposée, la base orientée graphe Neo4j, pour répondre aux besoins deMilanamos. Comme exemple fil conducteur, nous avons opté pour le problème friends of friends présenté dans le domaine aérien par 2-hops.

94 CHAPITRE 5 — Notions sur les bases de données

5.1 Système de gestion de bases de données . . . 95

Documents relatifs