Upload
freddyguenengafo
View
222
Download
0
Embed Size (px)
Citation preview
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