Vous êtes sur la page 1sur 14

Travaux Dirigés 1

LE PROBLEME DU PLUS COURT CHEMIN

Exercice 1 :
Pour relier une mine de montagne à un terminal de chargement de minerai accessible par
camion, on doit construire une voie ferrée à crémaillère pour descendre le minerai avec des
wagonnets. Les segments de voie possibles sont donnés par le graphe suivant, avec les coûts de
construction en Millions de Dinars. La mine est au nœud 1 et le terminal au nœud 8.

3
2 6
12
7 4
9
4
1 3 15 7
8
5 4
2 18
29
4 8

Donner la voie ferrée la plus économique en utilisant l’algorithme de Dijkstra, ensuite


l’algorithme de Ford.

Algorithme de Dijkstra o(n2) fixation d’étiquettes

Itération 1 2 3 4 5 6 7 8
1 0/1 12/1 4/1 2/1 + + + +
2 - 12/1 4/1 - 20/4 + + 31/4
3 - 11/3 - - 19/3 + + 31/4
4 - - - - 19/3 14/2 + 31/4
5 - - - - 19/3 - 18/6 23/6
6 - - - - 19/3 - - 22/7
7 - - - - - - - 22/7

Le problème est résolu en exactement n-1 itérations. L’algorithme de Dijkstra se déroule


comme suit :

Itération 1
Etape1 : Initialisation : u1=0, u2=12, u3=4, u4=2, u5=u6=u7=u8=+
Etape 2 : Fixation d’une étiquette : k=4 P={1,4} T={2,3,5,6,7,8}, T alors on continue
Etape 3 : Mise à jour des étiquettes temporaires : u2=12, u3=4, u5=20, u6=u7=+, u8=31
Itération 2
Etape 2 : k=3 P={1,3,4} T={2,5,6,7,8}, T alors on continue
Etape 3 : u2=min{12,4+7}=11, u5=min{20,4+15}=19, u6=u7=+, u8=31
Itération 3
Etape 2 : k=2 P={1,3,4,2} T={5,6,7,8}, T alors on continue
Etape 3 : u5=19, u6=14, u7=+, u8=31

RO - Avril 2020 - S. BEN AICHA 1


Itération 4
Etape 2 : k=6 P={1,3,4,2,6} T={5,7,8}, T alors on continue
Etape 3 : u5=19, u7=18, u8=min{31,23}=23
Itération 5
Etape 2 : k=7 P={1,3,4,2,6,7} T={5,8}, T alors on continue
Etape 3 : u5=19, u8= min{22,23}=22
Itération 6
Etape 2 : k=5 P={1,3,4,2,6,7,5} T={8}, T alors on continue
Etape 3 : u8=22
Itération 7
Etape 2 : k=8 P={1,3,4,2,6,7,5,8} T= alors on arrête

Le chemin le plus court de 1 à 8 est 1→3→2→6→7→8

3
2 6
12
7 4
9
4
1 3 15 7
8
5 4
2 18
29
4 8

Algorithme de Ford o(n3) pas de fixation d’étiquettes

Itération 1 2 3 4 5 6 7 8
1 0/1 12/1 4/1 2/1 + + + +
2 0/1 11/3 4/1 2/1 19/3 15/2 + 31/4
3 0/1 11/3 4/1 2/1 19/3 14/2 19/6 24/6
4 0/1 11/3 4/1 2/1 19/3 14/2 18/6 23/6 ou 7
5 0/1 11/3 4/1 2/1 19/3 14/2 18/6 22/7
6 0/1 11/3 4/1 2/1 19/3 14/2 18/6 22/7

Les lignes 5 et 6 sont identiques donc arrêt

Le problème est résolu en au plus n-1 itérations. L’algorithme de Ford se déroule comme
suit :

Itération 1 : u1=0, u2=12, u3=4, u4=2, u5=u6=u7=u8=+


Itération 2 : u1=0, u2=min{12,4+7}=11, u3=4, u4=2, u5=min{+, 4+15}=19, u6= min{+,
12+3}=15, u7=+, u8=min{+, 2+29}=31
Itération 3 : u1=0, u2=11, u3=4, u4=2, u5=19, u6= min{+, 12+3, 11+3}=14, u7=min{+,
19+8, 15+4}=19,u8=min{31,15+9}=24
Itération 4 : u1=0, u2=11, u3=4, u4=2, u5=19, u6=14, u7=min{19,14+4}=18,
u8=min{31,19+4,14+9}=23
Itération 5: u1=0, u2=11, u3=4, u4=2, u5=19, u6=14, u7=18, u8=min{23, 18+4}=22
Itération 6: u1=0, u2=11, u3=4, u4=2, u5=19, u6=14, u7=18, u8=min{23, 18+4}=22
Arrêt

RO - Avril 2020 - S. BEN AICHA 2


Exercice 2 :
Glueco est une société commerciale spécialisée dans la vente des produits de nettoyage dans 3
régions différentes (Région 1, Région 2 et Région 3). Pour augmenter ses ventes, Glueco désire
planifier l’ouverture de 3 nouveaux points de vente. L’étude de marché réalisée a permis
d’estimer la recette moyenne annuelle dans les 3 régions et ce en fonction du nombre de points
de vente à ouvrir par région (voir tableau suivant).

Nbre de points Recette moyenne annuelle en Milliers de Dinars


de vente Région 1 Région 2 Région 3
0 400 300 200
1 600 500 300
2 800 700 550
3 850 850 700

Le problème consiste à déterminer le nombre de nouveaux points de vente à ouvrir dans chaque
région de façon à maximiser la recette moyenne annuelle des produits de Glueco dans les 3
régions.

1. Montrer que ce problème peut être formulé comme un problème de plus court chemin. Préciser
le graphe et les différentes données correspondantes.
Le problème peut être modélisé par un graphe dont les sommets représentent les états
du système. Chaque état est donné par un couple (région, cumul des points de vente
ouverts).

RO - Avril 2020 - S. BEN AICHA 3


1,0 2,0

1,1 2,1

0,0 3,3

1,2 2,2

Région, Nombre de
points de vente
ouverts jusque là

1,3 2,3

Région 1 Région 2 Région 3

300
1,0 2,0 700

400
1,1 2,1

0,0 3,3

1,2 2,2

1,3 2,3

Région 1 Région 2 Région 3

RO - Avril 2020 - S. BEN AICHA 4


300
1,0 500
2,0 700
700
850

400
1,1 2,1 550

0,0 3,3
300
1,2 2,2

200

1,3 2,3

Région 1 Région 2 Région 3

300
1,0 500
2,0 700
700
850

400 300
1,1 2,1 550
500
600 700

0,0 3,3
300
1,2 2,2

200

1,3 2,3

Région 1 Région 2 Région 3

RO - Avril 2020 - S. BEN AICHA 5


300
1,0 500
2,0 700
700
850

400 300
1,1 2,1 550
500
600 700

0,0 800 3,3


850 300
300
1,2 500
2,2

200

300
1,3 2,3

Région 1 Région 2 Région 3

2. Résoudre ce problème avec un algorithme adéquat du cours.


Ici on cherche le chemin le plus long, celui qui maximise la recette annuelle sur les trois régions.
Il s’agit d’un graphe sans circuit.
400
300
1,0 500
2,0 700
700
850
600
400 300
1,1 2,1 550
500
600 700

0,0 800 3,3


800
850 300
300
1,2 500
2,2

200
850
300
1,3 2,3

Région 1 Région 2 Région 3

RO - Avril 2020 - S. BEN AICHA 6


400 700
300
1,0 500
2,0 700
700
850
600 900
400 300
1,1 2,1 550
500
600 700

0,0 800 3,3


800
850 300
300
1,2 500
2,2

200
850
300
1,3 2,3

Région 1 Région 2 Région 3

400 700
300
1,0 500
2,0 700
700
850
600 900
400 300
1,1 2,1 550
500
600 700

0,0 800 3,3


800 1100
850 300
300
1,2 500
2,2

200
850 1300
300
1,3 2,3

Région 1 Région 2 Région 3

RO - Avril 2020 - S. BEN AICHA 7


400 700
300
1,0 500
2,0 700
700
850
600 900
400 300
1,1 2,1 550
500
600 700 1500

0,0 800 3,3


800 1100
850 300
300
1,2 500
2,2

200
850 1300
300
1,3 2,3

Région 1 Région 2 Région 3

400 700
300
1,0 500
2,0 700
700
850
600 900
400 300
1,1 2,1 550
500
600 700 1500

0,0 800 3,3


800 1100
850 300
300
1,2 500
2,2

200
850 1300
300
1,3 2,3

Région 1 Région 2 Région 3

La recette maximale est 1500DT elle peut être obtenue par deux possibilités :
• Ouverture d’un nouveau point de vente en région 1 et deux en région 2.
• Ouverture de deux points de vente en région 1 et un en région 2.

RO - Avril 2020 - S. BEN AICHA 8


Exercice 3 :
Une étudiante a besoin d’une voiture pour ses 5 années d’études universitaires. Au début de sa
première année (t = 0), elle achète une voiture neuve et au début de chaque année t, elle a la
possibilité de soit garder sa voiture durant l’année [t, t+1[, soit vendre sa voiture au prix v(i),
où i est l’âge de la voiture au moment de la vente et acheter une autre neuve au prix p(t). A la
fin de sa dernière année d’études, l’étudiante revendra sa voiture sans en racheter d’autre.

Le coût annuel de maintenance d’une voiture dépend de son âge i au début de chaque année t
et est désigné par r(i). Les valeurs p(t), v(i) et r(i) étant supposées actualisées à la date 0,
l’objectif est de déterminer une politique qui permet à l’étudiante de bénéficier d’une voiture
durant les 5 années d’études et ce avec un coût total minimal.

1. Montrer que l’objectif revient à déterminer un plus court chemin entre deux sommets
particuliers dans un graphe qu’on précisera.
2. Résoudre ce problème avec les données suivantes :

Age de la voiture (ans) i /Année t 0 1 2 3 4 5


Prix d’achat p(t) 12.000 14.000 15.000 15.000 16.000 -
Prix de récupération (DT) 9.000 6.000 2.000 1.000 0
Coût annuel de maintenance (DT) 2.000 4.000 5.000 9.000 12.000 -

Il s’agit d’un problème de remplacement d’équipement qui peut être modélisé par un graphe où
les sommets sont les années et chaque arc entre les années i et j signifie que la voiture est achetée
au début de l’année i et vendue au début de l’année j ; les coûts sur les arcs se calculent comme
suit :

5.000
0 1 2 3 4 5

0→1
Achat : + 12.000
Maintenance année 0 : + 2.000
Vente voiture âgée de 1 an : - 9.000
Coût total : = 5.000

RO - Avril 2020 - S. BEN AICHA 9


44.000

31.000
21.000
12.000

5.000
0 1 2 3 4 5

0→2
Achat : + 12.000
Maintenance année 0 : + 2.000
Maintenance année 1 : + 4.000
Vente voiture âgée de 2 ans : - 6.000
Coût total : = 12.000

44.000

31.000
21.000
12.000

5.000 7.000
0 1 2 3 4 5

1→2
Achat : + 14.000
Maintenance année 0 : + 2.000
Vente voiture âgée de 1 an : - 9.000
Coût total : = 7.000

44.000

31.000
21.000

5.000 7.000
0 1 2 3 4 5
14.000

1→3
Achat : + 14.000
Maintenance année 0 : + 2.000
Maintenance année 1 : + 4.000
Vente voiture âgée de 2 ans : - 6.000
Coût total : = 14.000

RO - Avril 2020 - S. BEN AICHA 10


On obtient finalement le graphe suivant :

44.000

31.000
21.000 24.000

12.000 15.000

5.000 7.000 8.000 8.000 9.000


0 1 2 3 4 5
14.000 15.000
23.000
33.000

Graphe sans circuit


U0=0 ; U1=5000/0 ; U2= min {12000, 500+7000}=12000/0 ou 1 ;

44.000

31.000
21.000 24.000

12.000 15.000

5.000 7.000 8.000 8.000 9.000


0 1 2 3 4 5
14.000 15.000
23.000
33.000

5.000 12.000

U3=min {5000+7000+8000, 5000+14000, 21000}=19000/1


U4=min {12000+15000, 5000+23000, 19000+8000,31000}=27000/2 ou 3
U5=min {44000, 5000+33000, 12000+24000, 19000+15000, 17000+9000}=34000/3
44.000

31.000
21.000 24.000

12.000 15.000

5.000 7.000 8.000 8.000 9.000


0 1 2 3 4 5
14.000 15.000
23.000
33.000

5.000 12.000 19.000 27.000 34.000

RO - Avril 2020 - S. BEN AICHA 11


44.000

31.000
21.000 24.000

12.000 15.000

5.000 7.000 8.000 8.000 9.000


0 1 2 3 4 5
14.000 15.000
23.000
33.000

5.000 12.000 19.000 27.000 34.000

Graphe sans circuit


U0=0 ; U1=5000/0 ; U2= min {12000, 500+7000}=12000/0 ou 1 ;
U3=min {5000+7000+8000, 5000+14000, 21000}=19000/1
U4=min {12000+15000, 5000+23000, 19000+8000,31000}=27000/2 ou 3
U5=min {44000, 5000+33000, 12000+24000, 19000+15000, 17000+9000}=34000/3

Ainsi le plus court chemin est : 0→1→3→5


Ce qui revient à acheter la voiture l’année 0, la revendre en année 1 et en racheter une nouvelle
qu’il faudra revendre l’année 3 et en racheter une nouvelle pour enfin arriver à l’année 5 avec
un coût total de 34000.

Exercice 4 :
Une compagnie de transport urbain décide de faire appel à des conducteurs de bus
supplémentaires. Pour cela, elle doit préciser les horaires de travail de chaque conducteur. Le
tableau suivant présente les différents créneaux horaires possibles ainsi que leurs coûts.
L’objectif est d’avoir, pour chaque heure de la période de service (de 9h à 17h), au moins un
conducteur en service et ce avec un coût minimal.

Créneaux horaires 9h-13h 9h-11h 12h-15h 12h-17h 14h-17h 13h-16h 16h-17h


Coût 30 18 21 38 20 22 9

Résoudre ce problème en le formulant comme un problème de plus court chemin dans un graphe
qu’on précisera.

Modélisation du problème par un graphe où les sommets sont les heures et les coûts sur les arcs
sont les coûts relatifs à chaque plage horaire proposée :

RO - Avril 2020 - S. BEN AICHA 12


30 22 20

18 9
09h 11h 12h 13h 14h 15h 16h 17h
21

38

On rajoute des arcs représentant la couverture assurée par les options proposées :

Exemple : la plage horaire 9h-13h permet également une couverture 9h-12h ; la plage horaire
12h-15h permet également une couverture 12h-13h et 12h-14h.

30 22 20
30
18 21 9
09h 11h 12h 13h 14h 15h 16h 17h
21

21

38

On obtient finalement le graphe suivant :

30 22 20 20
30 22
21 22 9
18 20
09h 11h 12h 13h 14h 15h 16h 17h
21

21

38

38

RO - Avril 2020 - S. BEN AICHA 13


30 22 20 20
30 22
21 22 9
18 20
09h 11h 12h 13h 14h 15h 16h 17h
18 30 21 30 51 52 52 61
21

38

38

30 22 20 20
30 22
21 22 9
18 20
09h 11h 12h 13h 14h 15h 16h 17h
18 30 21 30 51 52 52 61
21

38

38

Graphe sans circuit. Le chemin le plus court est 9h→13h→16h→17h avec un coût total de 61

RO - Avril 2020 - S. BEN AICHA 14

Vous aimerez peut-être aussi