[PDF] [PDF] TP Informatique no 9/10 Algorithme de Dijkstra - Arnaud Jobin

L'algorithme de Dijkstra consiste en la recherche des plus courts chemins menant d'un sommet unique s ∈ S à chaque autre sommet d'un graphe pondéré G = (S 



Previous PDF Next PDF





[PDF] TP 7 : algorithme de Dijkstra

Ce TP est consacré `a la programmation de l'algorithme de Dijkstra On enregistre un Si l'on implémente F comme une file de priorité, c'est-`a-dire un tasmin 



[PDF] TP 4 Plus courts chemins Algorithme de Dijkstra - LIRMM

Algorithmes de Graphes, HLIN501 Année 2016-2017 TP 4 Programme en C ++ Votre programme La relation de filiation de l'arbre de Dijkstra return 0;



[PDF] Algorithme de Dijkstra - Normale Sup

21 oct 2008 · l'algorithme de Dijkstra sur des exemples concrets Exemple 1 Cherchons les plus courts chemins d'origine A dans ce graphe: A B E C D 10



[PDF] TD5 : Algorithme de Dijkstra - CNRS

Cet algorithme est adapté pour connaître les plus courts chemins depuis un c) Que se passera-t-il si vous appliquez l'algorithme de Dijkstra sur ce graphe ?



[PDF] Algorithme de Dijkstra : terminaison, correction et complexité

L'algorithme de Dijkstra est un grand classique pour calculer le plus court chemin dans un graphe à partir d'une origine unique Pour la correction de cet 



[PDF] TP Informatique no 9/10 Algorithme de Dijkstra - Arnaud Jobin

L'algorithme de Dijkstra consiste en la recherche des plus courts chemins menant d'un sommet unique s ∈ S à chaque autre sommet d'un graphe pondéré G = (S 



[PDF] Algorithme de Dijkstra

3 Dijkstra naïf 14 3 1 Header C'est le nombre de sommet du graphe */ 97 pour calculer à partir de l'algorithme de dijkstra le plus court chemin d'une 



[PDF] Graphes et plus court chemin - Programmation 3

c b d t 12 4 2 1 15 17 4 12 13 3 11 Graphe non orienté voisins(u) = {v ∈ S {u L'algorithme de Dijkstra découvre à chaque étape de nouveaux chemins 



[PDF] Comparaison dalgorithmes de plus courts chemins sur - Numdam

Sur des graphes à 15000 sommets, certains algorithmes sont jusqu'à 218 fois plus rapides que l'algorithme classique de Dijkstra Mots clés : Plus court chemin,  



[PDF] Plus court chemin dans un graphe - mediaeduscoleducationfr

un chemin), et pondéré (c'est-à-dire que les arêtes sont accompagnées d'un poids, entier L'algorithme de Dijkstra opère sur un graphe connexe pondéré, pas 

[PDF] algorithme de dijkstra en ligne

[PDF] algorithme de dijkstra java

[PDF] algorithme de dijkstra javascript

[PDF] algorithme dichotomie python

[PDF] algorithme factorielle boucle pour

[PDF] algorithme factorielle en c

[PDF] algorithme factorielle n

[PDF] algorithme factorielle pascal

[PDF] algorithme factorielle python

[PDF] algorithme fonction procedure exercice corrigé pdf

[PDF] algoritmo de dijkstra aplicaciones

[PDF] algoritmo de dijkstra c++

[PDF] algoritmo de dijkstra em c

[PDF] algoritmo de dijkstra grafos

[PDF] algoritmo de dijkstra online

BCPST-22016-2017

TPInformat iquen

o 9/10

AlgorithmedeDijkstra

I.Quelques notionsdegraphes

L'algorithmedeDijkstraestunalgorithme permetta ntdedéterminerlespluscour tschemi ns entrecertainspo intsd'ungraphe.Ava ntdedétaillerlefoncti onnementdecetal gorithme,com- mençonsparintrodu irelevoca bulairenécessairesurlesgraphes.

Définition

Onappel legrapheG=(S,A)uncouple où:

⇥Sestunen semble,a ppeléensembledessommets, ⇥Aestunep artiedeS⇥S,ap peléeensembledesarêtes.

Danslasuite, onsupp oseraSfini.

Exemple

Oncons idèrelegraphesuivant,don népars areprésentationgraph ique. A BC D EF 3 1 1 3 2 5 3 1 1

Legraphe G=(S,A)esticid éfinipar :

Remarque

Legra pheprésentéicipossède lescaractéristiquessui vantes. •Iln'est pasorienté:si(u,v)2Aalorsona (v,u)2A. Ainsi,sionpeutallerd euàv,al orsonpeutaussia llerdevàu. •Ilestsimple:il yaaupl usu nea rêteent redeuxsommets. •Ilestpondéré:àc haq uearêteonassocieune valeurpositiv eappelée poids. Cepo idsreprésenteladi stanceentrelesdeuxsommet s. 1

BCPST-22016-2017

Définition

Onappel lematricedespoidsd'ungraphel amatriceG=(g

i,j (i,j)2S

2tellequepourt out

coupledesommets(i,j): ⇥si(i,j)2Aalorsg i,j estégal aupoidsde l'arête (i,j), ⇥si(i,j)62Aalorsg i,j =+1.

Exemple

Legrap heprécédentpossède6sommets.

Aprèsrenommage dessommets,lamatricedespoid sdecegr apheest:

DBECFA

D B E C F A 0 B B B B B B B B B B B B

031+1+1+1

3012+1+1

11035+1

+123013
+1+15101 +1+1+1310 1 C C C C C C C C C C C C A Onpeut représentercett ematriceenPythonsouslaformed' untabl eaudetypearray.

1importnumpyasnp

2

3Inf=np.inf

5[Inf,2,3,0,1,3],[Inf,Inf,5,1,0,1],[Inf,Inf,Inf,3,1,0] ])

IQuelleremarquepeut -onfairesurlamatriced epoidsdecegraphe.

C'estunemat ricesymétri que.

IDequel lepropriétéprovient cettecaractéristique?

Legrap heprécédentn'estpasori enté.

Ainsichaquearête (u,v)fournitunearête(v,u)demême poids.

II.Algori thmedeDijkstra

II.1.Brèvepré sentation

L'algorithmedeDijkstraconsisteenlarecher chedesp luscourtscheminsmenantd 'unsommet uniques2Sàch aqueautresommetd'u ngraphepondéréG=(S,A). TouslesarcsdeGsontsupposésd epoidspositifcequiperm etd'em pêcherlaprésencedecy cles depoid sstrictementnégati fs.

Notation

Pourtoutt2S,onnomme(t)lalong ueurdupluscourtcheminmen antdesàt. 2

BCPST-22016-2017

II.2.Calculde lalongueurdesplus courts chemin s

Avantdedéterminer lesplu scourtscheminsentresetto utautresommet t,on commencep ar déterminerlalongueurdecha cundeces pluscourtscheminsi.e.lafoncti on. Pourcefaire,onu til iseunattrib utd[v]dusomm etv2Squicontient lepoidsdusupposép lus courtcheminmena ntdesàv.Ceta ttr ibutestcorrigéaufuretàmesur edel'a lgorithmede sorteàcontenir(v)àla findel' exécution .Évid emment,cetattributest,àchaqueéta pede l'algorithme,unmajorantdupoidsd'unplu scourtc heminmenantdesàv.Au trementdit:

8v2S,(v)6d[v]

Détaillonslafonctionnementdecetat tribut .

Miseàjourd el'attribu td[v]

1)Initialisation

Audébu tdel'algorit hme,onco nsidère:

⇥d[s] 0, ⇥d[v] +1pourtoutsomm ets2S.

Exemple

Surl'exemp leprécédent,etsionchoisi ts=D,l' étaped'initialisat ions'écrit:

DBECFA

0+1+1+1+1+1

2)Principederelâchement

L'opérationderelâchementd'unarc(u,v)2S⇥Sconsisteenuntestpermettan tde savoir s'ilestpossib le,enpas santparu,d' améliorerlepluscourtcheminjus qu'àv.

Sioui ,ilfautmettreà jourd[v].

Plusprécisément ,one

ff ectueletests uivant : d[u]+g u,v Ilconv ientalorsd'e ff ectuerlamise àjour: d[v] d[u]+g u,v

Exemple

1)Surl'exempleprécédent,onprendu=D

Oncherc healorsàdéterminer,p ourtoutsommetv2Ssionp eutmettr eàjoursd[v]à l'aided'unchemindon tledernierarc est(u,v). Étantdonnéel'étap ed'initialisat ion,celaconsisteàcons idérerlescheminsdesàvde taille1:

DBECFA

031+1+1+1

3

BCPST-22016-2017

2)Onprendalorsu=E

Oncher chealorsàdéterminer,p ourtoutsommetv2Ssionpeu tmettre àjoursd[v]à l'aided'unchemindo ntledernierarc est(u,v).

Étantdonnéel'éta peprécédente,celaconsi steàconsidérerleschemin sdesàvdet aille

2(autrementditlescheminss!u!v):

DBECFA

02146+1

3)Onprendalorsu=B

Oncher chealorsàdéterminer,p ourtoutsommetv2Ssionpeu tmettre àjoursd[v]à l'aided'unchemindo ntledernierarc est(u,v).

Étantdonnéel'éta peprécédente,celaconsi steàconsidérerleschemin sdesàvdetaille

3(autrementditlescheminss!...!u!v):

DBECFA

02146+1

4)Onprendalorsu=C

Oncher chealorsàdéterminer,p ourtoutsommetv2Ssionpeu tmettre àjoursd[v]à l'aided'unchemindo ntledernierarc est(u,v).

Étantdonnéel'éta peprécédente,celaconsi steàconsidérerleschemin sdesàvdetaille

4(autrementditlescheminss!...!...!u!v):

DBECFA

021457

5)Onprendalorsu=F

Oncher chealorsàdéterminer,p ourtoutsommetv2Ssionpeu tmettre àjoursd[v]à l'aided'unchemindo ntledernierarc est(u,v).

Étantdonnéel'éta peprécédente,celaconsi steàconsidérerleschemin sdesàvdetaille

DBECFA

021456

6)Onprendalorsu=A

Oncher chealorsàdéterminer,p ourtoutsommetv2Ssionpeu tmettre àjoursd[v]à l'aided'unchemindo ntledernierarc est(u,v).

Étantdonnéel'éta peprécédente,celaconsi steàconsidérerleschemin sdesàvdetaille

DBECFA

021456

Sélectiondusommetuàchaqueétape

Àch aqueétapedel'algori thme,onsélectio nneles ommetuquivérifie lespropriétéssuiva ntes:

•un'apasencor eétésélectio nné, •l'attributd[u]estlepl usfaibl e(parmitous lessommetsnonencore sélectionnés). Onparled'algorit hmeglouton:on sélection neàchaqueétapelasous-sol uti onoptimalei.e.le sommetréalisantla meilleuredistance.

Findel' algori thme

Unefoisto uslessommet svisités,on atrouv étouslespluscourtsc hemins(desàtoutv)de tailleinférieureouéga leaunombredesommetsent out.On adonctrouvé tousles pluscourts dechemi ns(desàtoutv). 4

BCPST-22016-2017

II.3.Implémen tation

IAppliquerl'algorithmedeD ijkstraavecorigineD.

DBECFA

0+1+1+1+1+1

031+1+1+1

02146+1

02146+1

021457

021456

021456

IAppliquerl'algorithmedeDi jkstraavecorigineE.

DBECFA

IAppliquerl'algorithmedeD ijkstraavecorigineC.

DBECFA

5

BCPST-22016-2017

IImplémenterDijkstraDist(G,depart)quiprendenp aramètrelama tri cedespoidsGetle sommetdepartetren voielatailledesplu scourts cheminsdedepartàto utsommetv.

1defdijkstraDist(G, depart):

3N=np.size(G,0)

4

7pcc=list()

8foriin range(N):

9pcc.append([Inf,False])

10sommet_u= depart

11dist_u=0

12pcc[depart][0]=0

14pcc[depart][1]=True

15

17cpt=0

18whilecpt !=N-1:

21minimum=Inf

22#Étapederelâchement

23forkin range(N):

24

26ifpcc[k][1]== False:

27dist_uv=G[sommet_u][k]

28#Distancetotaleduchemins->...->u->v

29dist_totale=dist_u+dist_uv

30

32ifdist_totale< pcc[k][0]:

33pcc[k][0]=dist_totale

34

36ifpcc[k][0]< minimum:

37minimum=pcc[k][0]

38prochain_sommet_select=k

39

40#Onatraitécomplétementunsommet

41cpt=cpt+1

42

44sommet_u= prochain_sommet_select

45pcc[sommet_u][1]=True

46dist_u=pcc[sommet_u][0]

47

48return(pcc)

6

BCPST-22016-2017

II.4.Exhiberle spluscourtschemin s

IEnrepren antlesexemplesprécédents(av ecorig ineDpuisavecorigi neE),expli quercomment onpeuto btenirlespl uscourtscheminsàl'a idedesca lculsdetaill eprécédents. •Siàune étap e,d[v]aét émodifié,il fautserappelerdequels ommetuprovient cettemodifica tion. •L'idéeétantalorsq uel'arc(u,v)seraunarcd uplusco urtchemin . IModifierlepremiertableau (avecor igineenD)po urqu'ilprenne encomptecettenouvel le information.

DBECFA

0+1+1+1+1+1

031
D +1+1+1 02 E 14 E 6 E +1

02146+1

02145
C 7

021456

F

021456

IReconstitueralorslepluscourtch emindeDversA,celu ideDversEetcelu ideDversB. •Leplu scourtcheminde DversAestréali séparD!E!C!F!A. •Leplus courtchemindeDversEestréali séparD!E. •Leplus courtchemindeDversBestréali séparD!E!B. IImplémenterlafonctionDijsktraDistChemin(G,depart)quiprenden paramètrelama - tricedespoidsGetle sommeto riginedepartetren voielatailledespl uscour tscheminsde departàt outsommetvainsiquelederni ersommetuti lisép ourcalculercettetail le.

Onécrir aseulementlesdeuxlig nesquidi

ff

èrentdelafon ctionpr écédente.

•Laligne9doitêtremodifi ée:ondoits esouvenird'uneinfo rma tionsu pplémentaire. pcc.append([Inf,False,None]) •Ondoit ajouterunelign e34poursesouveni rdequel sommetprovientla modification. pcc[k][2]= sommet_u 7

BCPST-22016-2017

IImplémenterlafonctiondijkstraPCC(G,depart,ar rivee)quipermetd' obtenirleplu s courtchemindedepartàarrivee.

1defdijkstraPCC(G ,depart,arrivee):

2pcc=dijkstraDistChemin(G,depart)

3#Reconstitutiondupluscourtchemin

4chemin=list()

6ville=arrivee

7chemin.append(ville)

8whileville!=depart:

9ville=pcc[ville][2]

10chemin.append(ville)

11#Ondemandelemiroirdelalisteobtenuepour

12#quelessommetsapparaissentdansl'ordre

13return(list(reversed(chemin)))

ITestervotrefon ctionenprenantpour origineDpuisE.

8quotesdbs_dbs21.pdfusesText_27