• Aucun résultat trouvé

Dev Max : recherche des d´eviations born´ees

B.8 Traces radar fusionn´ees `a Orly

III.1 Dev Max : recherche des d´eviations born´ees

6.3.2 Complexit´e

Sans la contrainte de validit´e d´efinie sur les chemins, l’algorithme ainsi formul´e visiterait chaque nœud du graphe exactement autant de fois qu’il y a de chemins trouv´es passant par ce nœud : ceci d´ecoule de la connaissance exacte des coˆuts minimaux (¯c). Dans ce cas, le nombre d’it´erations de Explorer pourrait donc ˆetre major´e par kl, o`u k d´esignerait le nombre de chemins trouv´es et l le

nombre maximal de nœuds par chemin.

L’ajout de la contrainte de validit´e ne peut cependant que diminuer le nombre d’it´erations de

Explorer, qui pourra donc toujours ˆetre major´e par kl, `a condition que k d´esigne le nombre de

chemins de co ˆut admissible (et non le nombre de chemins r´eellement trouv´es).

Au cours de chaque it´eration de Explorer, l’op´eration la plus p´enalisante consiste `a v´erifier

que le nœud courant n’interf`ere pas avec le chemin emprunt´e depuist : ceci demande O(l) calculs

d’intersections g´eom´etriques.

Dev Max s’effectue enO(kl2) op´erations.

O`u :

½

k d´esigne le nombre de chemins de coˆuts admissibles, l le nombre maximal de nœuds par chemin.

62 CHAPITRE 6. AFFECTATION DE CHEMINS Il faut cependant remarquer que le nombrek de chemins de coˆut admissible d´epend du param`etre ∆ et ne peut pas ˆetre connu `a l’avance. Il n’est par ailleurs pas souhaitable de limiter l’algorithme `a

un nombre fix´e de chemins, puisque leur ´enum´eration n’est pas ordonn´ee (on n’obtiendrait donc plus les meilleurs chemins).

6.3.3 R´esultats

La figure 6.1 illustre quelques exemples d’application de l’algorithme aux voies de circulation de Roissy et d’Orly, pour diff´erentes valeurs de∆, avec ou sans sens pr´ef´erentiels. Il en ressort tout

d’abord une grande variation du nombre de chemins (et donc du temps n´ecessaire `a leur calcul) en fonction des param`etres et de l’a´eroport.

– A Roissy, les deux premiers exemples (1.1 et 1.2) montrent qu’une d´eviation maximale de deux minutes (qui semble minimaliste pour un tel a´eroport) rapporte d´ej`a un nombre de chemins beaucoup trop ´elev´e (1352 chemins sans sens pr´ef´erentiels). Les deux exemples suivants (2.1 et 2.2) mettent en ´evidence le caract`ere extrˆemement variable et tr`es rapidement absurde du nombre de chemins obtenus.

– A Orly, les voies de circulation moins complexes donnent des r´esultats plus exploitables (car plus constants). Les exemples s´electionn´es (3.1 et 3.2) font cependant apparaˆıtre une particu- larit´e : le non respect des sens pr´ef´erentiels peut faire diminuer le nombre de chemins trouv´es (`a∆ fix´e). En effet, les sens pr´ef´erentiels d´enaturent la notion de plus court chemin, qui peut

devenir beaucoup plus court sans sens pr´ef´erentiels. Il peut naturellement en r´esulter un nombre moins important de chemins situ´es dans la plage de coˆuts correspondante.

Ces exemples montrent que les chemins trouv´es sont difficilement satisfaisants, car beaucoup trop nombreux ou trop peu diversifi´es : les ramifications des voies de circulation rendent le nombre de chemins combinatoire et il est n´ecessaire de limiter le nombre de combinaisons, en utilisant d’autres m´ethodes d’´enum´eration.

6.4

Recherche des k meilleurs chemins

6.4.1 Formulation du probl`eme

Pour pouvoir limiter le nombre de chemins `a chercher, il est n´ecessaire de les ´enum´erer dans l’ordre de leur coˆut (du moins au plus coˆuteux). Le probl`eme devient alors la recherche dek meilleurs

chemins reliants `a t.

Pour chaque nœudn du graphe,Csnd´esigne toujours l’ensemble de tous les chemins reliants `a n et¯cγle coˆut d’un cheminγ. Dans le cas particulier du nœud origine s, le chemin ´el´ementaire (s) est toujours consid´er´e comme valide et de coˆut nul (c¯ss= 0).

Un sous ensembleCsnk (k≥ 0) de Csnest appel´e ensemble dek meilleurs chemins entre s et n si il est de cardinalk et que tout chemin plus court que l’un de ses chemins lui appartient :

∀γ ∈ Csnk , ∀γ0 ∈ Csn, ¯cγ0 < ¯cγ =⇒ γ0 ∈ Csnk

Il peut naturellement exister plusieurs ensembles dek meilleurs chemins de s `a n de mˆeme cardi-

nal, puisque diff´erents chemins peuvent avoir le mˆeme coˆut. Par contre, le coˆut maximal des ´el´ements de ces ensembles est unique et sera not´eck(n) :

∀Csnk ensemble dek meilleurs chemins de s `a n, avec k≥ 1, Max γ∈Ck

sn

¯

6.4. RECHERCHE DESK MEILLEURS CHEMINS 63

0 1000

0 1000

1.1 Roissy :∆ = 120s 1.2 Roissy :∆ = 120s

Avec sens pr´ef´erentiels Sans sens pr´ef´erentiels

92 chemins (trouv´es en80 ms) 1352 chemins (trouv´es en1.2s)

0 1000 0 1000

2.1 Roissy :∆ = 200s 2.2 Roissy :∆ = 200s

Avec sens pr´ef´erentiels Sans sens pr´ef´erentiels

948 chemins (trouv´es en825ms) 15850 chemins (trouv´es en 143s)

0 100

3.1 Orly :∆ = 60s 3.2 Orly :∆ = 60s

Avec sens pr´ef´erentiels Sans sens pr´ef´erentiels

264 chemins (trouv´es en145ms) 113 chemins (trouv´es en68ms)

64 CHAPITRE 6. AFFECTATION DE CHEMINS Il en d´ecoule :ck+1(n) = Min

γ∈Csn/Csnk

¯ cγ Le probl`eme est donc de trouver un ensembleCk

st de k meilleurs chemins entre s et t, si un tel ensemble existe. Dans la n´egative, le probl`eme revient `a chercherCst.

6.4.2 Relation de r´ecurrence

Une relation de r´ecurrence, d´ecrite pour la premi`ere fois par Dreyfus [Dreyfus 69] permet de calculer la suite(ck(n))k≥1des coˆuts des meilleurs chemins des `a n, `a partir des coˆuts des meilleurs chemins des `a chacun des p`eres de n dans le graphe :

Soient

  

Ck

snun ensemble dek meilleurs chemins de s `a n, avec k≥ 1

∀m ∈ P `eres(n), Γmk ={γm∈ Csm|(γm· n) ∈ Csnk } et jmk =|Γm| La relation de r´ecurrence s’´ecrit alors : ck+1(n) = Min

m∈P `eres(n)cj

k

m+1(m) + cmn

Cette relation sert de base `a l’´elaboration des m´ethodes it´eratives permettant d’obtenirk meilleurs

chemins entre deux nœuds. Elle se d´emontre comme suit :

Lemme 1 ∀m ∈ P `eres(m), Γkmest un ensemble dejmk meilleurs chemins des `a m.

En effet,∀γm ∈ Γkm, ∀γm0 ∈ Csm/Γkm, on a par construction deΓkm:

(γm· n) ∈ Csnk et (γm0 · n) ∈ Csn/Csnk Et commeCk

snest un ensemble dek meilleurs chemins : ¯c(γm·n)≤ ¯c(γm0 ·n)

soit :c¯γm+ cmn ≤ ¯cγ0m+ cmn et donc :¯cγm ≤ ¯cγm0

Lemme 2 ∀m ∈ P `eres(m), Csn/Csnk = ∪

m∈P `eres(n) γm∈C∪sm/Γkm

{(γm· n)} Ceci d´ecoule naturellement de la structure mˆeme du graphe, qui impose :

∀n 6= s, Csn= ∪

m∈P `eres(n) γm∈C∪sm{(γm· n)}

Pour le nœud particuliers, il faut ajouter `a cette r´eunion le chemin trivial (s). Dans tous les cas,

la d´efinition desΓk

mdonne alors directement le r´esultat. On peut alors ´ecrire :

ck+1(n) = Min γn∈Csn/Cksn ¯ cγn = Min m∈P `eres(n) γm∈CMinsm/Γkm ¯ cm·n) (d’apr`es le lemme 2) = Min m∈P `eres(n) γm∈CMinsm/Γkm ¯ cγm+ cmn

6.4. RECHERCHE DESK MEILLEURS CHEMINS 65 Et commeΓkmest un ensemble dejmk meilleurs chemins des `a m (lemme 1) :

Min

γm∈Csm/Γkm

¯

cγm = cjmk+1(m)

La relation de r´ecurrence peut ´egalement ˆetre exprim´ee en terme de chemins :

∀m ∈ P `eres(n), ∀γm∈ Csm/Γkmtel que¯cγm+ cmn= ck+1(n),

Ck+1

sn =Csnk ∪ {γm· n} est un ensemble de k + 1 meilleurs chemins de s `a n.

6.4.3 Enum´eration r´ecursive des k meilleurs chemins´

Description

L’algorithme d’´enum´eration r´ecursive dek meilleurs chemins [Jim´enez Pelayo 99] est un des plus

efficace en terme de temps de calcul : il traduit la relation de r´ecurrence d´ecrite ci-dessus par une fonction r´ecursive calculant un chemin suivant pour tout nœud du graphe, d´efini par la suite directe d’un chemin suivant d’un de ses p`eres.

Pour cela, unk`eme chemin des `a n (avec s 6= n ou k > 1) sera d´ecrit par un i`emechemin des `a m, o`u m est un nœud p`ere de n : un tel chemin sera caract´eris´e par son coˆut, le nœud p`ere m, et

l’indicei de ce chemin pour m.

La structure de donn´ees utilis´ee par l’algorithme associe, `a chaque nœud du graphe, un tableau de chemins connus et un ensemble de chemins candidats pour le chemin suivant. Il se d´ecompose en trois phases :

1. Une phase d’initialisation, pendant laquelle un plus court chemin (lorsqu’il en existe un) est calcul´e pour chaque nœud du graphe (avec l’algorithme de Dijkstra par exemple.) Chaque

plus court chemin de chaque nœudn6= s est d´ecrit par un triplet :

– le coˆut¯csndu chemin,

– le p`erepnden dans ce chemin (tel que ¯cspn+ cpnn= ¯csn),

– et l’indicei = 1.

2. Une phase it´erative pendant laquelle un ensemble de meilleurs chemins des `a t est ´elabor´e par

des appels successifs `a une fonction r´ecursiveChemin Suivant. Appliqu´ee `a un nœudn, cette

fonction :

(a) compl`ete les chemins candidats du nœudn :

– Lors de la recherche d’un second chemin, tous les plus courts chemins entres et les

nœuds p`eres den autres que le nœud source pn(d´efini dans l’initialisation) forment des candidats pour le second chemin. Dans le cas particuliern = s, il n’y a pas de nœud

sourcepndonc cet ensemble des chemins candidats n’est pas restreint.

– si n 6= s ou si le chemin cherch´e n’est pas le second, un autre chemin candidat est

ajout´e : le chemin suivant du nœud p`ere de n dans le dernier chemin trouv´e. Si ce

chemin n’est pas encore connu, la fonctionChemin Suivant se rappelle r´ecursivement

sur ce nœud p`ere.

(b) extrait de l’ensemble des candidat du nœud n celui de coˆut minimal, qui sera alors le

chemin recherch´e.

Les it´erations de Chemin Suivant s’arrˆetent lorsque le nombre de chemins trouv´es est suffi-

66 CHAPITRE 6. AFFECTATION DE CHEMINS 3. Une phase de d´eveloppement des chemins, `a partir des nœuds p`eres et des indices trouv´es.

L’algorithme maintient ainsi, pour chaque nœud explor´e, autant de chemins candidats de coˆut minimal que ce nœud poss`ede de p`eres (tant que de tels chemins existent). Le meilleur candidat forme donc bien un meilleur chemin suivant, d’apr`es la relation de r´ecurrence.

La terminaison correcte de la fonction r´ecursive est assur´ee si le graphe ne comporte pas de cycle n´egatif : les coˆuts minimaux font r´ef´erence `a des plus courts chemin sans boucle, donc si unieme` che- min contient plusieurs fois un nœudn, ce chemin sera d´ecrit comme ´etant la suite d’un j`emechemin den, avec j < i. La fonction r´ecursive Chemin Suivant ne peut donc pas se rappeler ind´efiniment

sur ce nœud. REA(G, (¯c), s, t, k) :                                      

soientQ, K : Tables sur N (Candidats et nombre de chemins par nœuds)

soientC, Γ, I : Tables sur N × {1, ..., k} (Coˆut, nœuds et indice source desieme` chemins des nœuds)

Chemin Suivant(n) :                            

siK(n) non d´efini alors (Initialisation)

    Q(n) ← {(¯csm+ cmn,m, 1)| m ∈ P `eres(n) et ¯csm6= ∞} sin = s alorsK(s) ← 2 ; C(s, 1) ← 0 ; Γ(s, 1) ← (s) ; I(s, 1) ← 0 sinonK(n) ← 1

sinon (Recherche dui`emechemin, aveci > 1)

       

soiti :I(n, K(n)) + 1 et p : p`ere de n dans Γ(n, K(n))

siK(p) < i alors Chemin Suivant(p) siC(p, i) 6= ∞ alors

¥

Q(n) ← Q(n) ∪ {(C(p, i) + cpn,p, i)}

K(n) ← K(n) + 1

siQ(n) 6= {} alors (Extraction et d´eveloppement d’un chemin)

   

soit(cp, p, ip) : Extraire min(Q(n)) siK(p) non d´efini alors Chemin Suivant(p)

C(n, K(n)) ← cp;Γ(n,K(n)) ← (Γ(p, ip)· n) ; I(n, K(n)) ← ip

sinonC(n, K(n)) ← ∞

r´ep´eter Chemin Suivant(t) tant queK(t) < k et C(t, K(t)) 6= ∞

retourner{Γ(t, i) | i ∈ {1, ..., K(t)} et C(t, i) 6= ∞}