Sie sind auf Seite 1von 21

Algorithme de Dijkstra

Algorithme de Dijkstra

21 octobre 2008
Algorithme de Dijkstra

Introduction

Le but de cette présentation est de faire fonctionner


l’algorithme de Dijkstra sur des exemples concrets.

Exemple 1
Cherchons les plus courts chemins d’origine A dans ce graphe:

B C
1
10 9

A 2 3 4 6

5
2
E D
7
Algorithme de Dijkstra

Introduction

Le but de cette présentation est de faire fonctionner


l’algorithme de Dijkstra sur des exemples concrets.

Exemple 1
Cherchons les plus courts chemins d’origine A dans ce graphe:

B C
1
10 9

A 2 3 4 6

5
2
E D
7
Algorithme de Dijkstra

Premier exemple

On se place au sommet de plus petit poids, ici le sommet A.


B C
1
∞ ∞ A B C D E
10 9 0 ∞ ∞ ∞ ∞

A 0 2 3 4 6 •

5 •
∞ ∞
2 •
E D
7
Algorithme de Dijkstra

Premier exemple

On étudie chacune des arêtes partant du sommet choisi.


B C
1
10 ∞ A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 •

5 •
5 ∞
2 •
E D
7

Dans les colonnes, on mets la distance à A, et le sommet d’où


l’on vient.
Algorithme de Dijkstra

Premier exemple

On se place de nouveau au sommet de plus petit poids, ici E.


B C
1
10 ∞ A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 • •
• •
5 • •
5 ∞
2 • •
E D
7
Algorithme de Dijkstra

Premier exemple

Et ainsi de suite.
B C
1
8 14 A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 • 8E 14E 7E •
• •
5 • •
5 7
2
E D
7
Algorithme de Dijkstra

Premier exemple

B C
1
8 14 A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 • 8E 14E 7E •
• • •
5 • • •
5 7
2
E D
7
Algorithme de Dijkstra

Premier exemple

B C
1
8 13 A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 • 8E 14E 7E •
• 8E 13D • •
5 • • •
5 7
2 • • •
E D
7
Algorithme de Dijkstra

Premier exemple

B C
1
8 13 A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 • 8E 14E 7E •
• 8E 13D • •
5 • • • •
5 7
2 • • • •
E D
7
Algorithme de Dijkstra

Premier exemple

B C
1
8 9 A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 • 8E 14E 7E •
• 8E 13D • •
5 • • 9B • •
5 7
2 • • • • •
E D
7
Algorithme de Dijkstra

Premier exemple

B C
1
8 9 A B C D E
10 9 0 ∞ ∞ ∞ ∞
• 10A ∞ ∞ 5A
A 0 2 3 4 6 • 8E 14E 7E •
• 8E 13D • •
5 • • 9B • •
5 7 • • • • •
2
E D
7

Si l’on ne considère que les flèches soulignées, on obtient un


arbre, un graphe sans cycle.
Algorithme de Dijkstra

Deuxième exemple

Exemple 2
Cherchons les plus courts chemins d’origine E dans ce graphe:

A C
3
3 3
3
E 1 1 S

1 1
5
B D
Algorithme de Dijkstra

Deuxième exemple

Exemple 2
Cherchons les plus courts chemins d’origine E dans ce graphe:

A C
3
3 3
3
E 1 1 S

1 1
5
B D
Algorithme de Dijkstra

Deuxième exemple

A C
3
∞ ∞ E A B C D S
3 3 0 ∞ ∞ ∞ ∞ ∞
3 •
E 0 1 1 ∞ S •

1 1 •
∞ ∞
5 •
B D
Algorithme de Dijkstra

Deuxième exemple

A C
3
3 ∞ E A B C D S
3 3 0 ∞ ∞ ∞ ∞ ∞
3 • 3E 1E ∞ ∞ ∞
E 0 1 1 ∞ S
• •
• •
1 1 • •
1 ∞
5 • •
B D
Algorithme de Dijkstra

Deuxième exemple

A C
3
2 4 E A B C D S
3 3 0 ∞ ∞ ∞ ∞ ∞
3 • 3E 1E ∞ ∞ ∞
E 0 1 1 ∞ S • 2B • 4B 6B ∞
• • •
1 1 • • •
1 6
5 • • •
B D
Algorithme de Dijkstra

Deuxième exemple

A C
3
2 4 E A B C D S
3 3 0 ∞ ∞ ∞ ∞ ∞
3 • 3E 1E ∞ ∞ ∞
E 0 1 1 ∞ S • 2B • 4B 6B ∞
• • • 4B 6B ∞
1 1 • • • •
1 6
5 • • • •
B D
Algorithme de Dijkstra

Deuxième exemple

A C
3
2 4 E A B C D S
3 3 0 ∞ ∞ ∞ ∞ ∞
3 • 3E 1E ∞ ∞ ∞
E 0 1 1 7 S • 2B • 4B 6B ∞
• • • 4B 6B ∞
1 1 • • • • 5C 7C
1 5
5 • • • • •
B D
Algorithme de Dijkstra

Deuxième exemple

A C
3
2 4 E A B C D S
3 3 0 ∞ ∞ ∞ ∞ ∞
3 • 3E 1E ∞ ∞ ∞
E 0 1 1 6 S • 2B • 4B 6B ∞
• • • 4B 6B ∞
1 1 • • • • 5C 7C
1 5 • • • • • 6D
5
B D
Algorithme de Dijkstra

Deuxième exemple

A C
3
2 4 E A B C D S
3 3 0 ∞ ∞ ∞ ∞ ∞
3 • 3E 1E ∞ ∞ ∞
E 0 1 1 6 S • 2B • 4B 6B ∞
• • • 4B 6B ∞
1 1 • • • • 5C 7C
1 5 • • • • • 6B
5
B D