Vous êtes sur la page 1sur 15

Logistique et transport

plus court chemin


M. EL ALAOUI
Prof.mohamed.elalaoui@gmail.com
Éléments du graph

Un graph 𝐺(𝑁, 𝐴) est définit par un ensemble de nœuds et d’arcs les reliant
Les arcs sont munis de directions et de poids (couts, temps, distance) associés à
chaque arc

Les arcs peuvent être mono ou 𝟏 𝟐

bidirectionnelles 𝟑 𝟒

Le poids des directions opposés dans un arc 10


peuvent être différents 𝟓 𝟔
12

Les arcs bidirectionnels de poids identiques vers 11


𝟕 𝟖
les 2 directions, seront notés :

2
Type de graph

Un graph est dit orienté si au


Un graph est non orienté si tous
moins un des ses arc est orienté.
des arcs ne sont pas orientés.
𝟏 𝟐 𝟒 𝟓

𝟑
𝟔

Un graph est dit complet si tous les


nœuds sont liés directement par un arc
𝑨 𝑩
𝑨 𝑩 Graph non
complet
𝑪 𝑫
𝑪 𝑫
3
Plus court chemin

Détermines le plus court chemin de 1 à 7 dans le graph suivant :

15 40
25 𝟓
𝟐 10
15
0 10 20 50
𝟏 𝟒 30 𝟕
15 25 15
20
20 20
𝟑 𝟔

20 40

4
Dijkstra

Initialiser les distances par ∝

25 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐
15
20 10
2 ∝ 10
3 ∝ 𝟏 30
𝟒 𝟕
4 ∝ 15
15
5 ∝ 20 20
20
6 ∝ 𝟑 𝟔
7 ∝

5
Dijkstra
Répéter
• Chaque fois où un nœud peut être atteint par un nouveau arc. Calculer la distance min
• Actualiser le tableau
Arrêter lorsque tout les nœuds sont visités 15
25 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐
15
20 10
2 15
∝ 1 10
3 20
∝ 1 𝟏 30
𝟒 𝟕
4 ∝ 15
15
5 ∝ 20 20
6 ∝ 20
𝟑 𝟔
7 ∝
20

6
Dijkstra
Répéter
• Chaque fois où un nœud peut être atteint par un nouveau arc. Calculer la distance min
• Actualiser le tableau
Arrêter lorsque tout les nœuds sont visités 15
25 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐
15
20 10
2 15 1 10
3 20 1 𝟏 30
𝟒 𝟕
4 25
∝ 2 15
25 15
5 ∝ 20 20
6 ∝ 20
𝟑 𝟔
7 ∝
20

7
Dijkstra
Répéter
• Chaque fois où un nœud peut être atteint par un nouveau arc. Calculer la distance min
• Actualiser le tableau
Arrêter lorsque tout les nœuds sont visités 15 40
25 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐
15
20 10
2 15 1 10
3 20 1 𝟏 30
𝟒 𝟕
4 25 2 15
25 15
5 40
∝ 2 20 20
6 40
∝ 3,4 20
𝟑 𝟔
7 ∝
20 40

8
Dijkstra
Répéter
• Chaque fois où un nœud peut être atteint par un nouveau arc. Calculer la distance min
• Actualiser le tableau
Arrêter lorsque tout les nœuds sont visités 15 40
25 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐
15
20 10
2 15 1 10 50
3 20 1 𝟏 30
𝟒 𝟕
4 25 2 15
25 15
5 40 2 20 20
6 40 3,4 20
𝟑 𝟔
7 50
∝ 5
20 40
Plus court chemin 1-2-5-7

9
Utilisation

Nœud Distance min de 1 Nœud précédent


2 15 1
3 20 1
4 25 2 15 40
25
5 40 2 𝟐 𝟓
15
6 40 3,4 20 10
10 50
7 50 5 30
𝟏 𝟒 𝟕
15
25 15
Utilisation: 20 20
20
• De la source à la destination 𝟑 𝟔
• De la source à n’importe quelle destination 20 40
• De n’importe quelle source à une destination (inversé)
• De n’importe quelle source à n’importe quelle destination (n fois)

10
Exercice

Trouver le plus court chemin (de 1 à -6)

6 2
𝟏 𝟐 𝟑

2
3 3 2 1 3

𝟒 𝟓 𝟔
1 5

11
Formulation mathématique

𝑥𝑖𝑗 = 1 si l’arc 𝑖𝑗 est dans le plus court chemin


𝑥𝑖𝑗 = 0 sinon

min 𝑐𝑖𝑗 𝑥𝑖𝑗


15 40
𝑥12 + 𝑥13 = 1 25 𝟓
𝟐
15
−𝑥12 + 𝑥24 + 𝑥25 = 0 20 10
10 50
−𝑥13 + 𝑥34 + 𝑥36 = 0
𝟏 30
−𝑥24 −𝑥34 +𝑥45 + 𝑥46 + 𝑥47 = 0 𝟒 𝟕
−𝑥25 − 𝑥45 + 𝑥57 = 0 15
25 15
−𝑥46 − 𝑥36 + 𝑥67 = 0 20 20
20
−𝑥57 − 𝑥47 − 𝑥67 = −1 𝟑 𝟔
20 40
résolution: 𝑥12 = 𝑥25 = 𝑥57 = 1

12
2ème, 3ème … plus court chemin

Éliminer à chaque fois un arc du plus court chemin en lui affectant ∞


Recalculer le plus court chemin

∞ 55
25 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐

20 10
2 ∞ 1 10 60
3 20 1 𝟏 30
𝟒 𝟕
4 35 3 15
35 15
5 55 4 20 20
6 40 3 20
𝟑 𝟔
7 60 6
20 40

13
2ème, 3ème … plus court chemin

Éliminer à chaque fois un arc du plus court chemin en lui affectant ∞


Recalculer le plus court chemin

15 45
∞ 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐
15
20 10
2 15 1 10 55
3 20 1 𝟏 30
𝟒 𝟕
4 25 2 15
25 15
5 45 4 20 20
6 40 3,4 20
𝟑 𝟔
7 55 5
20 40

14
2ème, 3ème … plus court chemin

Éliminer à chaque fois un arc du plus court chemin en lui affectant ∞


Recalculer le plus court chemin

15 40
25 𝟓
Nœud Distance min de 1 Nœud précédent 𝟐
15
20 ∞
2 15 1 10 55
3 20 1 𝟏 30
𝟒 𝟕
4 25 2 15
35 15
5 40 2 20 20
6 40 3,4 20
𝟑 𝟔
7 55 4
20 40

15

Vous aimerez peut-être aussi