algorithme de dijkstra + exemple

Post on 23-Feb-2018

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 14

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 14

E W Dijkstra (1930-2002) a proposeacute en 1959 un algorithme qui permet de deacuteterminer le plus courtchemin entre deux sommets dun graphe connexe pondeacutereacute (orienteacute ou non) dont le poids lieacute auxarecirctes est positif ou nul

EXEMPLE

Le graphe ci-dessous repreacutesente le reacuteseau routier dune reacutegion qui prend en compte le sens de lacirculation chaque arc repreacutesente une route agrave sens unique dont le poids est la distance en kilomegravetreentre deux sommets Quel est litineacuteraire le plus court qui relie E agrave S

Dapregraves document daccompagnement des programmes de Matheacutematiques - Classe terminale de la seacuterie ES

ALGORITHME DE DIJKSTRA

Lalgorithme ducirc agrave Dijkstra est baseacute sur le principe suivant

Si le plus court chemin reliant E agrave S passe par les sommets hellip alors les diffeacuterenteseacutetapes sont aussi les plus courts chemins reliant E aux diffeacuterents sommets hellip

On construit de proche en proche le chemin chercheacute en choisissant agrave chaque iteacuteration delalgorithme un sommet du graphe parmi ceux qui nont pas encore eacuteteacute traiteacutes tel que lalongueur connue provisoirement du plus court chemin allant de E agrave soit la plus courte possible

INITIALISATION DE LALGORITHME

Eacutetape 1 On affecte le poids 0 au sommet origine (E) et on attribue provisoirement un poids infin auxautres sommets

REacutePEacuteTER LES OPEacuteRATIONS SUIVANTES TANT QUE LE SOMMET DE SORTIE (S) NEST PASAFFECTEacute DUN POIDS DEacuteFINITIF

1 Eacutetape 2 Parmi les sommets dont le poids nest pas deacutefinivement fixeacute choisir le sommet Xde poids p minimal Marquer deacutefinitivement ce sommet X affecteacute du poids p(X)

2 Eacutetape 3 Pour tous les sommets Y qui ne sont pas deacutefinitivement marqueacutes adjacents audernier sommet fixeacute X

Calculer la somme s du poids de X et du poids de larecircte reliant X agrave YSi la somme s est infeacuterieure au poids provisoirement affecteacute au sommet Yaffecter provisoirement agrave Y le nouveau poids s et indiquer entre parenthegraveses le

sommet X pour se souvenir de sa provenance

QUAND LE SOMMET S EST DEacuteFINTIVEMENT MARQUEacute

983155

1

983155

2

983155

983147

983155

1

983155

2

983155

983147

983155

983145

983155

983145

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 24

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 24

Le plus court chemin de E agrave S sobtient en eacutecrivant de gauche agrave droite le parcours en partant de lafin S

VOUS POUVEZ OBSERVER LE DEacuteROULEMENT DE LALGORITHME DE DIJKSTRA PAS Agrave PAS EN CLIQUANT SUR LES BOUTONS

Pour faciliter la recherche du plus court chemin il est commode de preacutesenter les reacutesultats dans untableau

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 34

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 34

E A B C D F G S Sommet seacutelectionneacute etcommentaires

0 infin infin infin infin infin infin infin E de poids 0 on marque lessommets adjacents A B et C

5 (E) 3 (E) 2(E) infin infin infin infinC on selectionne les sommetsadjacents G et F on les marque

provisoirement G(2+3) et F(2+2)

5 (E) 3 (E) infin 4 (C) 5 (C) infinB le sommet adjacent A estaffecteacute dun poids eacutegal agrave 4(3+1lt5)

4 (B) infin 4 (C) 5 (C) infinA le sommet D va ecirctre marqueacute

provisoirement avec un poids 6=4+2

6 (A) 4 (C) 5 (C) infin

F le sommet adjacent D seraaffecteacute dun poids eacutegal agrave 5

(4+1lt6) le sommet S va ecirctremarqueacute provisoirement avec un poids 10= 4+6

5(F) 5 (C) 10 (F) D on conservera le poids de S

(5+7gt10 )

5 (C) 10 (F)

G le sommet adjacent est deacutejagrave

traiteacute

10 (F) S

Pour deacuteterminer le trajet le plus court on remonte les sommets en partant de S S vient de F quivient de C qui vient de E

Le plus court chemin est E-C-F-S la distance parcourue est de 10 km

Agrave VOTRE TOUR

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 44

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 44

Dans le graphe pondeacutereacute ci-dessous les poids des arecirctes sont deacutetermineacutes de manegravere aleacuteatoire Un papier un crayon et veacuterifiez vos reacutesultats

VOUS POUVEZ VEacuteRIFIER LE DEacuteROULEMENT DE LALGORITHME DE DIJKSTRA PAS Agrave PAS EN CLIQUANT SUR LESBOUTONS

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 24

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 24

Le plus court chemin de E agrave S sobtient en eacutecrivant de gauche agrave droite le parcours en partant de lafin S

VOUS POUVEZ OBSERVER LE DEacuteROULEMENT DE LALGORITHME DE DIJKSTRA PAS Agrave PAS EN CLIQUANT SUR LES BOUTONS

Pour faciliter la recherche du plus court chemin il est commode de preacutesenter les reacutesultats dans untableau

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 34

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 34

E A B C D F G S Sommet seacutelectionneacute etcommentaires

0 infin infin infin infin infin infin infin E de poids 0 on marque lessommets adjacents A B et C

5 (E) 3 (E) 2(E) infin infin infin infinC on selectionne les sommetsadjacents G et F on les marque

provisoirement G(2+3) et F(2+2)

5 (E) 3 (E) infin 4 (C) 5 (C) infinB le sommet adjacent A estaffecteacute dun poids eacutegal agrave 4(3+1lt5)

4 (B) infin 4 (C) 5 (C) infinA le sommet D va ecirctre marqueacute

provisoirement avec un poids 6=4+2

6 (A) 4 (C) 5 (C) infin

F le sommet adjacent D seraaffecteacute dun poids eacutegal agrave 5

(4+1lt6) le sommet S va ecirctremarqueacute provisoirement avec un poids 10= 4+6

5(F) 5 (C) 10 (F) D on conservera le poids de S

(5+7gt10 )

5 (C) 10 (F)

G le sommet adjacent est deacutejagrave

traiteacute

10 (F) S

Pour deacuteterminer le trajet le plus court on remonte les sommets en partant de S S vient de F quivient de C qui vient de E

Le plus court chemin est E-C-F-S la distance parcourue est de 10 km

Agrave VOTRE TOUR

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 44

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 44

Dans le graphe pondeacutereacute ci-dessous les poids des arecirctes sont deacutetermineacutes de manegravere aleacuteatoire Un papier un crayon et veacuterifiez vos reacutesultats

VOUS POUVEZ VEacuteRIFIER LE DEacuteROULEMENT DE LALGORITHME DE DIJKSTRA PAS Agrave PAS EN CLIQUANT SUR LESBOUTONS

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 34

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 34

E A B C D F G S Sommet seacutelectionneacute etcommentaires

0 infin infin infin infin infin infin infin E de poids 0 on marque lessommets adjacents A B et C

5 (E) 3 (E) 2(E) infin infin infin infinC on selectionne les sommetsadjacents G et F on les marque

provisoirement G(2+3) et F(2+2)

5 (E) 3 (E) infin 4 (C) 5 (C) infinB le sommet adjacent A estaffecteacute dun poids eacutegal agrave 4(3+1lt5)

4 (B) infin 4 (C) 5 (C) infinA le sommet D va ecirctre marqueacute

provisoirement avec un poids 6=4+2

6 (A) 4 (C) 5 (C) infin

F le sommet adjacent D seraaffecteacute dun poids eacutegal agrave 5

(4+1lt6) le sommet S va ecirctremarqueacute provisoirement avec un poids 10= 4+6

5(F) 5 (C) 10 (F) D on conservera le poids de S

(5+7gt10 )

5 (C) 10 (F)

G le sommet adjacent est deacutejagrave

traiteacute

10 (F) S

Pour deacuteterminer le trajet le plus court on remonte les sommets en partant de S S vient de F quivient de C qui vient de E

Le plus court chemin est E-C-F-S la distance parcourue est de 10 km

Agrave VOTRE TOUR

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 44

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 44

Dans le graphe pondeacutereacute ci-dessous les poids des arecirctes sont deacutetermineacutes de manegravere aleacuteatoire Un papier un crayon et veacuterifiez vos reacutesultats

VOUS POUVEZ VEacuteRIFIER LE DEacuteROULEMENT DE LALGORITHME DE DIJKSTRA PAS Agrave PAS EN CLIQUANT SUR LESBOUTONS

7242019 Algorithme de Dijkstra + Exemple

httpslidepdfcomreaderfullalgorithme-de-dijkstra-exemple 44

2022016 Algorithme de Dijkstra

httpyallouzariefreefrterminale_coursgraphesdijkstraphp 44

Dans le graphe pondeacutereacute ci-dessous les poids des arecirctes sont deacutetermineacutes de manegravere aleacuteatoire Un papier un crayon et veacuterifiez vos reacutesultats

VOUS POUVEZ VEacuteRIFIER LE DEacuteROULEMENT DE LALGORITHME DE DIJKSTRA PAS Agrave PAS EN CLIQUANT SUR LESBOUTONS

top related