167
OPM3001 - Techniques quantitatives de gestion Eric L ALLET, Jean-Luc R AFFY TELECOM É COLE DE M ANAGEMENT -1 ÈRE A NNÉE Décembre 2009

OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Embed Size (px)

Citation preview

Page 1: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

OPM3001 - Techniques quantitatives de gestion

Eric LALLET , Jean-Luc RAFFY

TELECOM ÉCOLE DE MANAGEMENT - 1ÈRE ANNÉE

Décembre 2009

Page 2: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

ii Eric L ALLET , Jean-Luc RAFFY

Page 3: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Table des matières

Avant propos vii

I Théorie des graphes 1

1 Graphes : définitions et généralités 3

1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 3

1.2 Graphes non orientés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 3

1.3 Graphes orientés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 6

1.4 Matrice d’adjacence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 8

1.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 9

2 Les problèmes d’ordonnancement 11

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 11

2.2 Le diagramme de GANTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 11

2.3 La méthode potentiel-tâches . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 13

2.4 Recherche du plus long chemin . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 24

2.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 24

3 Les Arbres 27

3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 27

3.2 Définitions et propriétés . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 27

3.3 L’algorithme de Kruskal . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 28

3.4 L’algorithme de Prim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 29

3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 34

4 Recherche du plus court chemin 37

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 37

4.2 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 37

4.3 Algorithme de Ford-Moore . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 37

4.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 42

5 Flot Maximal 45

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 45

5.2 Description du problème . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 45

5.3 Exemple de problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 45

Eric LALLET , Jean-Luc RAFFY iii

Page 4: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

5.4 L’algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 46

5.5 Exemple de flot max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 47

5.6 Flot maximal à coût minimal . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 49

5.7 L’algorithme de Busacker et Gowen . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 49

5.8 Exemple flot max coût min . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 50

5.9 Variantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 52

5.10 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 52

II Programmation linéaire 55

6 La programmation linéaire 57

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 57

6.2 La forme canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 57

6.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 58

7 La méthode géométrique 61

7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 61

7.2 La méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 61

7.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 62

7.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 63

8 Le simplexe 65

8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 65

8.2 La forme standard et son tableau associé . . . . . . . . . . . . . .. . . . . . . . . . . . . 65

8.3 L’algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 67

8.4 Interprétation du tableau final . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 68

8.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 69

8.6 Plus loin au sujet des valeurs marginales . . . . . . . . . . . . .. . . . . . . . . . . . . . 71

8.7 Unités et simplifications . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 72

8.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 74

9 Le problème dual 77

9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 77

9.2 Création du problème dual . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 77

9.3 Exemple de résolution par le problème dual . . . . . . . . . . . .. . . . . . . . . . . . . 78

9.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 80

10 Simplexe : le cas général 81

10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 81

10.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 81

10.3 La forme canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 81

10.4 La méthode par l’exemple . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 82

10.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 84

iv Eric LALLET , Jean-Luc RAFFY

Page 5: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

11 Programmation linéaire en nombres entiers 87

11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 87

11.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 87

11.3 La méthode par l’exemple . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 88

11.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 92

11.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 93

III Modélisation 95

12 Modélisation 97

12.1 Chemin de la question à la réponse . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 97

12.2 Les erreurs à ne pas faire . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 98

12.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 100

IV Appendix 105

A Corrections des exercices 107

A.1 Graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 107

A.2 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 110

A.3 Arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 118

A.4 Plus court chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 121

A.5 Flot maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 128

A.6 Méthode géométrique et Simplexe . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 132

A.7 Dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 138

A.8 Simplexe : le cas général . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 139

A.9 Programmation linéaire en nombres entiers . . . . . . . . . . .. . . . . . . . . . . . . . 142

A.10 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 143

Eric LALLET , Jean-Luc RAFFY v

Page 6: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

vi Eric LALLET , Jean-Luc RAFFY

Page 7: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Avant propos

Combien d’hommes et en combien de temps une armée peut-elle emmener sur tel ou tel terrain d’opé-ration en cas de besoin ?

Existe-t-il des cas où une entreprise doit produire moins pour gagner plus ?

Quel est le coût minimal pour installer un réseau ? et par où lefaire passer ?

Quelles sont les tâches d’un projet sur-lesquelles il ne faut pas prendre de retard sous peine de pénalisertout le projet ?

Tôt ou tard le directeur d’une entreprise, d’une équipe ou d’un projet devra répondre à ce genre dequestions. Évidemment il lui faudra réunir diverses informations et paramètres pour pouvoir le faire. Maisune fois toutes les cartes en main il devra mettre en œuve des techniques de calculs pour trouver la bonneréponse.

Ce sont ces «techniques quantitatives de gestion» qui vont être présentées dans ce cours. Elles utilisentdes algorithmes issus de deux types de théories différents :certains reposent sur la théorie des graphes, etd’autres sur la programmation linéaire.

Cependant ce cours n’est ni un cours de théorie des graphes, ni un cours de programmation linéaire. Il vaprésenter les bases nécessaires à la compréhensions des algorithmes utilisés par les différentes techniques,mais il n’en fera pas une présentation formelle ou complète.Ainsi les algorithmes seront décrits, mais lesthéories sous-jacentes ne seront qu’éffleurées, leurs preuves ne seront pas faites.

Ne pensez pas pour autant qu’il faille laisser votre intelligence au vestiaire. Certes, une fois l’algorithmecompris, il devient vite une technique «automatique» et assez facile à appliquer. Mais la vraie difficultén’est pas ici. Le véritable problème à résoudre est de trouver comment modéliser votre question et doncquelle technique appliquer pour avoir la réponse. Ainsi l’enjeu de ce cours n’est pas tant de savoir commentmarchent les techniques (même si vous allez effectivement devoir le savoir !), mais plutôt de savoir à quellesquestions et à quels types de problèmes elles répondent.

Eric LALLET , Jean-Luc RAFFY vii

Page 8: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

viii Eric L ALLET , Jean-Luc RAFFY

Page 9: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Première partie

Théorie des graphes

Eric LALLET , Jean-Luc RAFFY 1

Page 10: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE
Page 11: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 1

Graphes : définitions et généralités

1.1 Introduction

Beaucoup d’algorithmes d’optimisations, d’ordonnancements, de recherches d’optimum reposent surdes graphes. Un bon dessin valant souvent plus qu’un long discours, les gens formalisent naturellementbeaucoup de leur problèmes avec des graphes.

Il existe deux grandes familles de graphes : les graphes non orientés, et les graphes orientés. Nous allonsformaliser et décrire ces deux grandes familles dans les sections qui suivent.

1.2 Graphes non orientés

FIG. 1.1 – Exemple de graphe non orienté

Un graphe fini non orienté (G) se définit grâce deux ensembles finis : un ensemble de sommets(X), etun ensemble d’arêtes (U ).

G = [X, U ] avec X = {x1, x2, x3, . . . , xn} et U = {u1, u2, u3, . . . , um}

Une arêteuk deU est définie par une paire non-ordonnée de sommets(xi, xj).

Sur la figure 1.1G = [X, U ] avecX = {1, 2, 3, 4, 5, 6, 7} et U = {u1, u2, u3, u4, u5, u6, u7, u8,u9, u10, u11}.

Définition 1.1 (extrémité) xi etxj sont appelés les extrémités deuk.

Sur la figure 1.1 les sommets6 et7 sont les extrémités deu9.

Eric LALLET , Jean-Luc RAFFY 3

Page 12: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Définition 1.2 (adjacent) Deux sommets reliés par une arête sont adjacents

Sur la figure 1.1 les sommets6 et7 sont adjacents.

Définition 1.3 (incident) Une arête est incidente aux sommets qu’elle relie. On dit aussi qu’un sommet estincident aux arêtes qui l’ont pour extrémité.

Sur la figure 1.1u9 est une arête incidente à6 et7.

Définition 1.4 (boucle) Une arêteu = (xi, xi) dont les extrémités coïncident est appelée une boucle.

Définition 1.5 (graphe simple) Un graphe est dit simple s’il ne contient aucune boucle et si aucun couplede sommet n’est relié par deux arêtes ou plus. Un graphe qui n’est pas simple est appelé un multigraphe.

L’exemple de la figure 1.1 est un multigraphe : il y a par exemple deux arêtes entre les sommets1 et2,et une boucle sur le sommet7.

Définition 1.6 (ordre) L’ordre N d’un graphe est son nombre de sommets.N = |X |

Le graphe de la figure 1.1 est d’ordre 7.

Définition 1.7 (degré) Le degréd(xi) d’un sommet est le nombre d’arêtes incidentes. Les arêtes qui bouclentcomptent pour2. Le degréD(G) d’un graphe est le degré maximum de tous ses sommets.

Sur la figure 1.1d(7) = 4, d(2) = 5, etD(G) = 5.

Définition 1.8 (graphe biparti) Un graphe est biparti si l’ensemble de ses sommets peut être partitionnéen 2 classesX1 et X2 de sorte que 2 sommets de la même classe ne soient jamais adjacents. Il se noteG = (X1, X2, U).

Définition 1.9 (graphe complet) Un grapheG = (X, U) est dit complet si pour toute paire de sommetsxi, xj il existe au moins une arête de la forme(xi, xj)

Définition 1.10 (graphe biparti complet) Un graphe bipartieG = (X1, X2, U) est dit biparti complet sitous les sommets deX1 sont reliés à tous les sommets deX2.

X1 Graphe complet K5

X2

Graphe biparti G=(X1, X2, U)

X1X2

Graphe biparti complet K3,2

FIG. 1.2 – Exemples de graphes bipartis ou complets

Le graphe complet simple d’ordren est appeléKn. Un graphe simple biparti completG = (X1, X2, U)avec|X1| = p et |X2| = q est appeléKp,q. Sur la figure 1.2,G est un graphe bipartie,K5 est un graphecomplet,K3,2 est un graphe biparti complet.

Définition 1.11 (cocycle)Soit A un sous ensemble de sommets deX . Le cocycle deA (notéω(A)) estl’ensemble des arêtes ayant une extrémité dansA et l’autre dansX −A.

Sur la figure 1.3 on aω(A) = {u1, u2, u4, u7, u9, u11}

4 Eric LALLET , Jean-Luc RAFFY

Page 13: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 1.3 – Cocycle

Définition 1.12 (chaîne)Une chaîne joignantx1 àxn est une suite de la forme(x1, u1, x2, u2, x3, u3 . . . un−1, xn)qui commence parx1, se finit parxn et qui alterne sommets et arêtes incidents.

Les sommets étant implicites, la chaîne est souvent notée qu’avec ses arêtes :(u1, u2, u3, . . . un−1). Lorsquele graphe est simple, la chaîne peut aussi être notée qu’avecses sommets(x1, x2, . . . xn).

Définition 1.13 (chaîne élémentaire)Une chaîne est élémentaire si tous les sommets qui la composentsont différents.

Définition 1.14 (chaîne simple)Une chaîne est simple si elle ne contient pas deux fois la mêmearête.

Définition 1.15 (chaîne fermée)Une chaîne est fermée si elle termine sur le sommet où elle a commencé(x1 = xn).

Définition 1.16 (cycle) Un cycle est une chaîne fermée simple qui n’a aucun sommet en double mis à partle premier qui est identique au dernier.

(u8, u4, u6) est une chaîne élémentaire simple allant de5 à4.

(u9, u10) est une chaîne simple qui va de6 à7. Elle n’est pas élémentaire car elle passe deux fois par7

(5, u8, 2, u2, 1, u1, 2, u8, 5) est une chaîne fermée allant de5 à5, mais n’est pas un cycle.

(1, u2, 2, u7, 4, u5, 1) est un cycle.

Définition 1.17 (connexité)Un graphe est dit connexe si pour tout couple de sommetsxi etxj soit il existeune chaîne allant dexi à xj , soit on axi = xj .

Pour exprimer cette définition autrement, utilisons la relationR suivante :

xiRxj ⇔

xi = xj

ouIl existe une chaîne allant dexi a xj

Cette relationR définit une relation d’équivalence (relation réflexive, symétrique, et transitive). Elleforme ainsi des classes d’équivalence qui divisent le graphe en plusieurs partitions. Par exemple, le graphede la figure 1.1 est divisé en deux classes d’équivalence avecdans une classe les sommets 1, 2, 3, 4 et 5 etdans l’autre les sommets 6 et 7.

Définition 1.18 (nombre de connexité)Le nombrep de classes d’équivalence distinctes de la relationRest appelé le nombre de connexité du graphe.

Il existe alors une deuxième façon de définir la connexité :

Définition 1.19 (connexité (2e)) Un graphe est dit connexe si et seulement si son nombre de connexitépvaut 1

Eric LALLET , Jean-Luc RAFFY 5

Page 14: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

1.3 Graphes orientés

Un graphe orienté est un graphe dont les arêtes ont un sens. Onles appelle des arcs. Pour ce genre degraphes les définitions et les propriétés définies pour les graphes non-orientés ont besoin d’être adaptées.

Un graphe fini orienté (G) se définit grâce deux ensembles finis : un ensemble de sommets(X), et unensemble d’arc (U ).

G = [X, U ] avec X = {x1, x2, x3, . . . , xn} et U = {u1, u2, u3, . . . , um}

Un arcuk deU est défini par une paire ordonnée de sommets(xi, xj). On dit que l’arcuk va dexi àxj .

FIG. 1.4 – Exemples de graphe orienté

Sur la figure 1.4G = [X, U ] avecX = {1, 2, 3, 4, 5, 6, 7} et U = {u1, u2, u3, u4, u5, u6, u7, u8, u9,u10, u11}. L’arc u1 va de1 vers2 et l’arcu10 va de7 vers7.

Définition 1.20 (extrémité initiale) Soit un arcuk = (xi, xt). xi est dite l’extrémité initiale deuk. Ondéfinit aussi une fonctionI(uk) = xi qui donne l’extrémité initiale d’un arc.

Définition 1.21 (extrémité terminale) Soit un arcuk = (xi, xt). xt est dite l’extrémité terminale deuk.On définit aussi une fonctionT (uk) = xt qui donne l’extrémité terminale d’un arc. On nome aussi cetteextrémité, l’extrémité finale.

Sur un graphe orienté chaque sommet a deux demi-degrés : le demi-degré extérieur et le demi-degréintérieur.

Définition 1.22 (demi-degré extérieur)Le demi-degré extérieur d’un sommetxi est le nombre d’arcsayantxi comme extrémité initiale.

La fonctiond+, demi-degré extérieur se définit avec :d+(x) = |{u ∈ U/I(u) = x}|.

Définition 1.23 (demi-degré intérieur) Le demi-degré intérieur d’un sommetxt est le nombre d’arcs ayantxt comme extrémité terminale.

La fonctiond−, demi-degré intérieur se définit avec :d−(x) = |{u ∈ U/T (u) = x}|.

Définition 1.24 (degré) Le degré d’un sommet est la somme de ses deux demi-degrés.

La fonctiond, degré d’un sommet se définit avec :d(x) = d+(x) + d−(x).

À la lecture de cette définition, on comprend pourquoi pour les graphes non orientés on compte deuxfois les boucles dans la définition du degré d’un sommet.

Sur le graphe de la figure 1.4 on ad+(2) = 3, d−(2) = 2, d(2) = 5, d+(7) = 2, d−(7) = 2, d(7) = 4.

6 Eric LALLET , Jean-Luc RAFFY

Page 15: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Définition 1.25 (successeur)On dit que le sommetxt est successeur du sommetxi s’il existe au moins unarc ayantxi comme extrémité initiale, etxt comme extrémité terminale.

Définition 1.26 (prédécesseur)On dit que le sommetxi est prédécesseur du sommetxt s’il existe au moinsun arc ayantxi comme extrémité initiale, etxt comme extrémité terminale.

Sur l’exemple le sommet1 a 2 et 3 pour successeurs. Le sommet7 a 6 et lui même pour successeurs.Le sommet2 est prédécesseur de3, 4 et5. Le sommet7 est prédécesseur de6 et de lui même.

Définition 1.27 (p-graphe) Un p-graphe est un graphe dans lequel il n’existe jamais plusdep arcs de laforme(xi, xj) entre 2 sommets quelconquesxi etxj pris dans cet ordre.

Le graphe de l’exemple est un 2-graphe. Il existe 2 arcs de la forme(1, 2) et aucun autre arc n’est doubléou plus dans ce graphe.

Définition 1.28 (application multivoque) Soit une applicationA allant de l’ensembleE vers lui même.On parle d’application multivoque lorsque l’applicationA associe à tout élément de l’ensemble, un sousensemble de l’ensemble.

Par exemple l’application définie sur un ensemble de personnes par «a pour enfant» est une applicationmultivoque.

Définition 1.29 (application multivoqueΓ+) Soit un grapheG = [X, U ]. On définitΓ+ comme l’appli-

cation qui à tout sommetx deX associe l’ensemble des sommets successeurs dex.

Sur l’exemple de la figure 1.4Γ+(4) = {1, 3}.

Γ+(4) peut se noterΓ+4 .

Définition 1.30 (application multivoqueΓ−) Soit un grapheG = [X, U ]. On définitΓ− comme l’appli-

cation qui à tout sommetx deX associe l’ensemble des sommets prédécesseurs dex.

Sur l’exempleΓ−(7) = {6, 7}.

Γ−(4) peut se noterΓ−

4 .

Dans le cas d’un 1-graphe la connaissance de l’ensemble des sommetsX et de l’applicationΓ+ définittotalement le graphe. Voila pourquoi dans ce cas, il est possible de définir un grapheG commeG = [X, Γ+].

Définition 1.31 (cocircuit) Étant donné un sous-ensemble de sommetsA d’un grapheG = (X, U), A ⊆X on définit :

ω+(A) : l’ensemble des arcs ayant leur extrémité initiale dansA, et leur extrémité terminale dans(X −A).

ω+(A) = {u ∈ U/I(u) ∈ AetT (u) ∈ X −A}

ω−(A) : l’ensemble des arcs ayant leur extrémité terminale dansA, et leur extrémité initiale dans(X −A)

ω−(A) = {u ∈ U/I(u) ∈ X −AetT (u) ∈ A}

Enfin, on a :ω(A) = ω+(A) + ω−(A).

L’ensemble des arcs formés parω(A) est appelé le cocircuit de A.

Sur la figure 1.5 on aω+(A) = {u4, u7, u11}, ω−(A) = {u1, u2, u9, }, et ω(A) = {u1, u2, u4, u7,u9, u11}

Définition 1.32 (chemin) Un chemin est une chaîne orientée.

Définition 1.33 (circuit) Un circuit est un cycle orienté (donc un chemin simple fermé avec aucun sommeten double mis à part le premier indentique au dernier).

Sur le graphe de la figure 1.4,(1, u2, 2, u8, 5) est un chemin allant de1 à 5. Et (u1, u7, u5) forme uncircuit bouclant sur1.

Eric LALLET , Jean-Luc RAFFY 7

Page 16: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

u1

u2

u3 u4

u5

u6

u7

u8

u9

u10

1 2

3

46

7

5

A

X−Au11

FIG. 1.5 – Cocircuit

Définition 1.34 (forte connexité) Un graphe orienté est dit fortement connexe si pour tout couple de som-metsxi etxj il existe un chemin allant dexi à xj .

Pour exprimer cette définition autrement, utilisons la relationR suivant :

xiRxj ⇔

xi = xj

ouIl existe un chemin allant dexi a xjet un chemin allant dexj a xi

Cette relationR définit une relation d’équivalence (relation réflexive, symétrique, et transitive). Elleforme ainsi des classes d’équivalence qui divisent le graphe en plusieurs partitions. Par exemple, le graphede la figure 1.4 est divisé en 4 classes d’équivalence :{1, 2, 4}, {6, 7}, {3} et {5}. On dit que ce graphe a4 composantes fortement connexes.

1.4 Matrice d’adjacence

Dans les cas réels, le dessin d’un graphe peut être fastidieux (car trop grand, trop complexe), et tota-lement illisible (trop d’arètes ou d’arcs qui se croisent dans tous les sens). Il faut alors choisir une autreréprésentation. Il en existe plusieurs et dans ce cours on aura l’occasion d’utiliser les «matrices d’adja-cence».

Une matrice d’adjacence permet la représentation d’un graphe simple orienté ou non-orienté.

SoitG = [X, U ] un graphe simple avec|X | = N .

Sa matriceA d’adjacence est une matriceN ×N remplis de booléens avec

aij =

{1 si (xi, xj) ∈ U0 sinon

On peut aussi représenter des multigraphes avec ce type de matrice en remplaçant les booléens par desentiers :

aij = |Uij | avecUij = {u ∈ U/(I(u) = xi etT (u) = xj)}

Pour les graphes non-orientés on peut décider de ne pas remplir une moitié de la matrice (copie del’autre moitié).

8 Eric LALLET , Jean-Luc RAFFY

Page 17: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Voici des exemples de matrices d’adjacence.

02(u1, u2) 01(u3) 1(u4) 01(u5) 1(u7) 1(u6) 00 1(u8) 0 0 00 0 0 0 0 00 0 0 0 0 2(u9, u11) 1(u10)

0 2(u1, u2) 1(u3) 0 0 0 00 0 1(u4) 1(u7) 1(u8) 0 00 0 0 0 0 0 01(u5) 0 1(u6) 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 1(u9)0 0 0 0 0 1(u11) 1(u10)

1.5 Exercices

Exercice 1.1 (De mains en mains)

Arnaud, Bertrand, Carole, Dorothée, Étienne et Fanny sont des représentants d’une même societée. Ils sontbasés sur des sites differents, mais ils se croisent parfoislors de leurs voyages. Ils ont alors pour habitudede déjeuner ensemble. La semaine prochaine Arnaud et Bertrand ont prévu de déjeuner ensemble le lundi,tandis que Étienne et Fanny feront de même de leur coté. MardiDorothée et Étienne partageront leurrepas dans ville, et Arnaud et Cyril dans une autre ville. Mercredi Cyril doit manger avec Dorothée. JeudiDorothée déjeune avec Étienne et enfin, vendredi Étienne retrouvera Fanny pour son repas.

Bertrand aimerait profiter de ces rencontres pour transmettre un colis à Fanny. Est-ce possible ? Et si ouipar quelles mains doit transiter le colis. Et Étienne voudrait transmettre un colis à Arnaud. Est-ce possible ?Et si oui par quelles mains doit transiter le colis.

Correction page 107.

Exercice 1.2 (Qui triche ?)

Arnaud, Bertrand, Carole, Dorothée, Étienne, Fanny et Gabriel doivent passer un test de mémoire. Pour celails reçoivent une liste d’objets qu’ils doivent aller chercher dans une autre pièce. Ils ont tout le temps qu’ilsveulent pour apprendre la liste, mais ensuite ils doivent aller dans la pièce sans liste et en un seul passagechercher les objets de cette liste.

Mais le surveillant qui devait vérifier que les personnes n’allaient qu’une seule fois dans la pièce s’estendormi. Cependant le portique d’entrée de la pièce a pu compter les entrées : 9. Il y a donc eu de la triche !

On interroge les candidats, et tous affirment qu’ils n’ont vupersonne entrer deux fois dans la piècedurant leur propre passage. Trop occupés à se souvenir de leur objet, ils ne se souviennent plus trop del’ordre des entrées sorties, par contre ils savent qui ils ont vu dans la pièce :

– Arnaud a vu Bertrand, Dorothée, et Gabriel.– Bertrand a vu Arnaud, Cyril et Gabriel.– Cyril a vu Bertrand, Dorothée, Fanny et Gabriel.– Dorothée a vu Arnaud, Cyril, Étienne et Gabriel.– Étienne a vu Dorothée, Fanny et Gabriel.– Fanny a vu Étienne, Cyril et Gabriel.– Gabriel a vu tout le monde !Qui a triché ?

Correction page 108.

Eric LALLET , Jean-Luc RAFFY 9

Page 18: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Exercice 1.3 (Qui triche ? (bis))

On se pose le même problème que précédement, mais cette fois ci le portique n’a pas compté les entrées, etles témoignages sont les suivants :

– Arnaud a vu Bertrand, Dorothée, et Gabriel.– Bertrand a vu Arnaud, et Gabriel.– Cyril a vu Dorothée et Fanny.– Dorothée a vu Arnaud, Cyril, et Étienne.– Étienne a vu Dorothée et Fanny.– Fanny a vu Étienne et Cyril.– Gabriel a vu Arnaud, Bertrand, !

Y’a-t-il eu tricheries ? Et si oui par qui ?

Correction page 109.

Exercice 1.4 (Ménager la chèvre et le choux)

Un fermier se retrouve au bord d’une rivière avec sa chèvre, son loup apprivoisé, et des choux. Il doitfranchir la rivière avec tout ce beau monde. Mais la barque qu’il peut utiliser n’a assez de place que pourlui et soit la chèvre, soit le loup, soit le choux. De plus il nepeut pas se permettre de laisser sur une rive lachèvre seule avec le choux, sinon elle le mangerait, ni laisser la chèvre seule avec le loup, sinon le loup lamangerait.

Sachant que seul le fermier sait manipuler la barque, quels voyages doit faire le fermier pour que toustraversent la rivière indemnes.

Correction page 109.

10 Eric LALLET , Jean-Luc RAFFY

Page 19: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 2

Les problèmes d’ordonnancement

2.1 Introduction

On se pose des problèmes d’ordonnancement lorsque l’on est confronté à un problème d’organisation. Ilfaut accomplir de multiples tâches qui demandent un certaintemps d’exécution et qui doivent être exécutéesdans un certain ordre. Il est donc nécessaire d’identifier les tâches prioritaires en fonction de l’objectif àatteindre et, lors de leur exécution, il faut détecter les retards et les dépassements de moyens.

Les nombreuses méthodes d’ordonnancement peuvent se regrouper en deux grandes familles selon leprincipe de base qu’elles utilisent. On distingue :

– les méthodes du type diagramme à barres : GANTT– les méthodes à chemin critique : potentiel-tâches, potentiel-étapes (PERT).Dans ce cours nous allons traiter les diagrammes de GANTT et le potentiel-tâches.

2.2 Le diagramme de GANTT

Un diagramme de GANTT se présente sous la forme d’un tableau àdeux dimensions. Les colonnes re-présentent l’avancement du temps (par exemple chaque colonne pourra symboliser la durée d’une semaine),et les lignes contiennent les différentes tâches à accomplir. En face de chaque tâche on va dessiner une barreallant du temps début de la tâche à son temps de fin.

Imaginons un exemple où l’on a 8 tâches à accomplir avec les durées et les contraintes suivantes :

Tâches Durées ContraintesA 3 semainesB 2 semainesC 5 semainesD 3 semaines A achevéeE 3 semaines A, B achevéesF 5 semaines D achevéeG 2 semaines C, E achevéesH 2 semaines F, G achevées

Les trois premières tâches (A, B et C) n’ont aucune contrainte. Elles peuvent commencer au temps0.On peut donc les représenter dans notre table en traçant une barre partant du temps 0, et parcourant la duréede la tâche : 3 semaines pourA, 2 pourB, et 6 semaines pourC :

Eric LALLET , Jean-Luc RAFFY 11

Page 20: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Tâches 1 2 3 4 5 6 7 8 9 10 11 12 13

A

B

C

Par contre la tâcheD ne peut commencer qu’après la tâcheA et E ne peut commencer qu’après lestâchesA et B. Comme ces tâches sont déjà dans notre diagramme, on connaîtleurs temps de fin (après lasemaine 3 et 2), il est donc possible de tracer la barre ces deux tâches :

Tâches 1 2 3 4 5 6 7 8 9 10 11 12 13

A

B

C

D

E

Les contraintes deF etG sont maintenant résolues.F commence aprèsD donc après la sixième semaine.G ne peut commencer qu’aprèsC etE, c’est le temps de fin deE (6) la plus grande contrainte qui va imposerle début deG :

Tâches 1 2 3 4 5 6 7 8 9 10 11 12 13

A

B

C

D

E

F

G

Il ne reste plus queH à placer. Cette tâche commence aprèsF et G. De ces deux tâches, c’estF quitermine en dernier, c’est donc après la semaine 11, queH va commencer.

12 Eric LALLET , Jean-Luc RAFFY

Page 21: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Tâches 1 2 3 4 5 6 7 8 9 10 11 12 13

A

B

C

D

E

F

G

H

Ce diagramme nous apprend déjà que le projet durera 13 semaines. Il va aussi permettre d’attribuer lestâches à des équipes. On peut représenter sur le graphique l’avancement des travaux. Il suffit d’indiquerpar une barre le travail effectivement accompli depuis que les tâchesA, B et C ont été commencées. Si onprocède ainsi pour toutes les tâches on saura à tout moment quel est l’état d’avancement du projet.

Sur ce graphe, les tâchesD et E sont très similaires. Elles semblent devoir commencer et finir en mêmetemps. Pourtant on va voir dans la section suivante qu’il esttout à fait possible de reporter la tâcheE de troissemaine sans que cela ne change la durée du projet, alors que le moindre report de la tâcheD allongera ladurée du projet. Cette notion importante de tâche «critique» n’apparait pas sur le diagramme de GANNT.

De plus les contraintes n’apparaissent plus sur cette version du graphe. Par exemple on voit bien que latâcheF commence après la semaine 6, mais on ne peut pas savoir si c’est à cause de la tâcheD ou de la tâcheE. On ne peut pas immédiatement déduire les conséquences d’unretard d’une tâche sur les autres. Voilapourquoi certains logiciels proposent une version améliorée de GANTT qui fait ressortir ces dépendances.

En résumé ce diagramme présente les avantages suivants :– clarté et simplicité de la méthode– information très condensée– le plan d’action peut être facilement suivi.– le déroulement des tâches peut se suivre dans le temps.

Par contre il a ces inconvénients :– les tâches critiques ne sont pas mises en évidence– l’élaboration d’un plan d’action se révèle malaisé car cette méthode ne fait pas apparaître les liaisons

entre les tâches.

La mise en évidence de ces tâches critiques et de l’enchaînement des tâches est au contraire le point fortde la méthode «potentiel-tâches» présentée dans la sectionsuivante.

2.3 La méthode potentiel-tâches

2.3.1 Construction du graphe

Le but de cette méthode est de mettre en valeur l’enchaînement des tâches, de déterminer les dates dedébut et de fin de chaque tâche, de connaître les marges de manœuvre possibles sur ces dates. Pour cela onva construire un graphe dont les sommets seront les tâches duprojet et les arcs les contraintes qui les lient.Ces arcs seront étiquetés (valués) par la durée de la tâche dont ils sont issus.

La première étape de cette méthode va être de dessiner le graphe des tâches. Reprenons l’exemple de lasection précédente :

Eric LALLET , Jean-Luc RAFFY 13

Page 22: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Tâches Durées ContraintesA 3 semainesB 2 semainesC 5 semainesD 3 semaines A achevéeE 3 semaines A, B achevéeF 5 semaines D achevéeG 2 semaines C, E achevéesH 2 semaines F, G achevées

On commence le graphe en plaçant un sommet pour toutes les tâches n’ayant aucune contrainte. Pourl’exemple, on place donc les sommetsA, B et C (cf l’étape 1 sur la figure 2.1). Ensuite on ajoute étape parétape les sommets qui ne dépendent que des sommets déjà placés. On ajoute un arc entre les sommets desétapes pré-requises et le sommet ajouté. Sur cet arc on indique la durée de la tâche pré-requise. Donc pourl’exemple, après les tâchesA, B etC, on peut placer les tâchesD etE. On trace aussi les arcs partant deA etB vers ces deux tâches, en indiquant dessus leur durée. Donc lavaleur 3 pour la tâcheA et 2 pour la tâcheB (cf l’étape 2 de la figure 2.1).

A

B

C

Etape 1

A

B

C

E

D

Etape 2

3

3

2

FIG. 2.1 – Début de la construction du graphe

On continue ainsi à placer les autres tâches et les arcs qui indiquent les dépendances jusqu’à la dernière.On arrive alors au graphe de la figure 2.2.

A

B

C

F

G

D

E H

3 3

53

2

5

3 2

FIG. 2.2 – Graphe avec toutes les tâches

Il nous reste à finaliser ce graphe. Pour cela il faut ajouter deux tâches fictives de durée nulle. Lapremière,α va symboliser le début du projet. On va la relier à toutes les tâches sans dépendance, donc quin’ont pas de prédécesseur. La seconde,ω va symboliser la fin du projet. Tous les sommets sans successeurvont y être reliés. Il faut bien sûr penser à placer sur les arcs la durée des tâches correspondantes. On arrivealors au graphe finalisé de la figure 2.3.

14 Eric LALLET , Jean-Luc RAFFY

Page 23: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 2.3 – Graphe finalisé

2.3.2 Recherche de la date au plus tôt

Pour qu’une tâche puisse commencer il faut que toutes les tâches qui la relient au début du projet soientréalisées.

Définition 2.1 (date au plus tôt) On définit doncti, la date au plus tôtde la tâchei comme la date au plustôt de l’exécution de la tâchei.

Par exemple, pour commencer la tâcheE, il faut avoir finit la tâcheA et B. CommeA dure 3 semaineset B 2 semaines, ce sont les 3 semaines deA qui sont la véritable contrainte pourE. La tâcheE ne pourradonc commencer au plus tôt que 3 semaines après le début du projet. En fait pour retrouver ce temps on acherché le plus long chemin sur le graphe entreα etE.

Définition 2.2 (durée du projet) On définit la durée du projet comme la date au plus tôt de la tâcheω.

Cette date va donc se calculer en trouvant le plus long chemindeα àω.

Pour trouver les dates au plus tôt des différentes tâches, ilsuffit d’appliquer l’algorithme de recherchedu plus long chemin1 sur le graphe (G = [X, U ]).

Algorithme 2.1 (recherche des dates au plus tôt)

1. posertα = 0 etS = {α}.

2. chercher un sommetj ∈ S tel queΓ−

j ⊆ S (remarque :S = {x ∈ X/x /∈ S})

3. posertj = max(ti + di)i∈Γ−

j

4. poserS = S ∪ {j}

5. si |S| = |X | fin, sinon retourner en 2.

Faisons tourner cet algorithme sur notre exemple.

Pour aller plus vite, plutôt que de prendre un seul sommet à l’étape 2, on peut prendre tous les sommetsdont les prédécesseurs sont déjà traités.

– tα = 0 etS = {α}.– Les prédécesseurs deA, B et C sont déjà dansS. On peut donc les traiter.

tA = max( tα︸︷︷︸

0

+ dα︸︷︷︸

0

) = 0

tB = max( tα︸︷︷︸

0

+ dα︸︷︷︸

0

) = 0

tC = max( tα︸︷︷︸

0

+ dα︸︷︷︸

0

) = 0

S = {α, A, B, C}

1Voir la section 2.4 à ce sujet

Eric LALLET , Jean-Luc RAFFY 15

Page 24: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– Les prédécesseurs deD etE sont dansS. On peut donc les traiter.

tD = max( tA︸︷︷︸

0

+ dA︸︷︷︸

3

) = 3

tE = max( tB︸︷︷︸

0

+ dB︸︷︷︸

2

, tA︸︷︷︸

0

+ dA︸︷︷︸

3

) = max(2, 3) = 3

S = {α, A, B, C, D, E}

– Les prédécesseurs deF et G sont dansS. On peut donc les traiter.

tF = max( tD︸︷︷︸

3

+ dD︸︷︷︸

3

) = 6

tG = max( tE︸︷︷︸

3

+ dE︸︷︷︸

3

, tC︸︷︷︸

0

+ dC︸︷︷︸

5

) = max(6, 5) = 6

S = {α, A, B, C, D, E, F}

– Les prédécesseurs deH sont dansS. On peut donc le traiter.

tH = max( tF︸︷︷︸

6

+ dE︸︷︷︸

5

, tG︸︷︷︸

6

+ dG︸︷︷︸

2

) = max(11, 8) = 11

S = {α, A, B, C, D, E, F, G}

– Le prédécesseur deω est dansS. On peut donc le traiter.

tω = max( tH︸︷︷︸

11

+ dH︸︷︷︸

2

) = 13

S = {α, A, B, C, D, E, F, G, ω}

– Fin

Plutôt que de dérouler cet algorithme sur une feuille ligne après ligne, il est plus simple de le faire dansun tableau.

On débute avec un tableau où seul letα est connu :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C,E F,G Hti 0

Ensuite on ajoute dans la ligneti tous les temps que l’on sait calculer : ceux dont leΓ− est déjà traité.Comme pour l’instant seultα est connu, on peut traiterA, B etC :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C,E F,G H↓ ↓ ↓

tα + dα = 0 tα + dα = 0 tα + dα = 0ti 0

16 Eric LALLET , Jean-Luc RAFFY

Page 25: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Maintenant on peut traiterD etE :

Tâches α A B C D E F G h ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A B D C, E F,G H↓ ↓ ↓

tA + dA = 3 tA + dA = 3 ((((((hhhhhhtB + dB = 2ti 0 0 0 0

Maintenant on peut traiterF et G :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C E F, G H↓ ↓ ↓

tD + dD = 6 ((((((hhhhhhtC + dC = 5 tE + dE = 6ti 0 0 0 0 3 3

On continue avecH :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C,E F G H↓ ↓

tF + dF = 11 ((((((hhhhhhtG + dG = 8ti 0 0 0 0 3 3 6 6

Et on termine avecω :

Tâches α A B C D E F G h ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F,G H↓

tH + dH = 13ti 0 0 0 0 3 3 6 6 11

2.3.3 Recherche de la date au plus tard

On sait maintenant quand une tâche pourra commencer au plus tôt. On va maintenant calculer quand ilsera possible de commencer au plus tard une tâche sans que cela ne retarde la fin du projet.

Définition 2.3 (date au plus tard) On définit doncTi, la date au plus tardde la tâchei comme la date auplus tard où l’on puisse commenceri sans augmenter la durée du projet.

Par exemple, prenons la tâcheG. Cette tâche dure 2 semaines et doit être faite pour commencer la tâcheH. La tâcheH commence la11eme semaine. Donc on peut décider de commencer la tâcheG que 2 semainesavant c’est à dire la9eme semaine sans que le projet ne prenne de retard. En résumé on peut commencer auplus tôtG la 6eme semaine et au plus tard la9eme semaine (TG = 9).

Pour trouver les dates au plus tard des différentes tâches onva appliquer l’algorithme suivant :

Algorithme 2.2 (recherche des dates au plus tard)

1. poserTω = tω etS = {ω}.

2. chercher un sommetj ∈ S tel queΓ+j ⊆ S

3. poserTj = min(Ti)i∈Γ+j− dj

Eric LALLET , Jean-Luc RAFFY 17

Page 26: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

4. poserS = S ∪ {j}

5. si |S| = |X | fin, sinon retourner en 2.

Faisons tourner cet algorithme sur notre exemple.

Pour aller plus vite, plutôt que de prendre un seul sommet à l’étape 2, on peut prendre tous les sommetsdont les successeurs sont déjà traités.

– Tω = 13 etS = {ω}.– Le successeur deH est déjà dansS, On peut donc le traiter.

TH = min( Tω︸︷︷︸

13

)− dH︸︷︷︸

2

= 11

S = {H, ω}

– Les successeurs deF etG sont déjà dansS, On peut donc les traiter.

TF = min( TH︸︷︷︸

11

)− dF︸︷︷︸

5

= 6

TG = min( TH︸︷︷︸

11

)− dG︸︷︷︸

2

= 9

S = {F, G, H, ω}

– Les successeurs deC, D et E sont déjà dansS, On peut donc les traiter.

TC = min( TG︸︷︷︸

9

)− dC︸︷︷︸

5

= 4

TD = min( TF︸︷︷︸

6

)− dD︸︷︷︸

3

= 3

TE = min( TG︸︷︷︸

9

)− dE︸︷︷︸

3

= 6

S = {C, D, E, F, G, H, ω}

– Les successeurs deA et B sont déjà dansS, On peut donc les traiter.

TA = min( TD︸︷︷︸

3

, TE︸︷︷︸

6

)− dA︸︷︷︸

3

= 3− 3 = 0

TB = min( TE︸︷︷︸

6

)− dB︸︷︷︸

2

= 6− 2 = 4

S = {A, B, D, C, E, F, G, H, ω}

– Les successeurs deα sont déjà dansS, On peut donc le traiter.

Tα = min( TA︸︷︷︸

0

, TB︸︷︷︸

4

, TC︸︷︷︸

4

)− dα︸︷︷︸

0

= 0− 0 = 0

S = {α, A, B, C, D, E, F, G, H, ω}

– Fin.

Plutôt que de dérouler cet algorithme sur une feuille ligne après ligne, il est plus simple de le faire dansun tableau.

On débute avec un tableau où tous lesti sont connus, mais seul leTω est fixé.

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F,G Hti 0 0 0 0 3 3 6 6 11 13Γ+

i A, B, C D,E E G F G H H ω

Ti 13

18 Eric LALLET , Jean-Luc RAFFY

Page 27: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Ensuite on ajoute dans la ligneTi tous les temps que l’on sait calculer : ceux dont les dates au plus detous lesΓ+

i sont connues. Comme pour l’instant seulTω est connu, on peut traiterH :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F, G Hti 0 0 0 0 3 3 6 6 11 13Γ+

i A, B, C D,E E G F G H H ω

↓Tω − dH = 11

Ti 13

Maintenant on peut traiterF et G :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F, G Hti 0 0 0 0 3 3 6 6 11 13Γ+

i A, B, C D,E E G F G H H ω

↓ ↓TH − dF = 6 TH − dG = 9

Ti 11 13

Maintenant on peut traiterC, D etE

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F, G Hti 0 0 0 0 3 3 6 6 11 13Γ+

i A, B, C D,E E G F G H H ω

↓ ↓ ↓TG − dC = 4 TF − dD = 3 TG − dE = 6

Ti 6 9 11 13

On continue avecA et B :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F,G Hti 0 0 0 0 3 3 6 6 11 13Γ+

i A, B, C D E E G F G H H ω

↓ ↓ ↓TD = 3 ����XXXXTE = 6

TD − dA = 0 TE − dB = 4Ti 4 3 6 6 9 11 13

Eric LALLET , Jean-Luc RAFFY 19

Page 28: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

On finit avecα

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F,G Hti 0 0 0 0 3 3 6 6 11 13Γ+

i A B C D,E E G F G H H ω

↓ ↓ ↓TA = 0 ����XXXXTB = 4 ����XXXXTC = 4

TA − dα = 0Ti 0 4 4 3 6 6 9 11 13

2.3.4 Calcul des marges

Définition 2.4 (marge totale) La marge totaleMi d’une tâchei est le délai dont on peut retarder cettetâche sans affecter l’achèvement du projet.

Cette marge est donnée par la différence entre la date au plustard et la date au plus tôt :Mi = Ti − ti.

Dans notre exemple on obtient :

Tâches α A B C D E F G H ω

di 0 3 2 5 3 3 5 2 2 0Γ−

i α α α A A,B D C, E F,G Hti 0 0 0 0 3 3 6 6 11 13Γ+

i A,B,C D,E E G F G H H ω

Ti 0 0 4 4 3 6 6 9 11 13Mi 0 0 4 4 0 3 0 3 0 0

Les tâches critiques sont celles qui ont une marge nulle. Il est impossible de prendre du retard dessussans retarder tout le projet. Le chemin critique passe par les tâches critiques. On le visualise sur le grapheen doublant les arcs de ce chemin (voir figure 2.4).

FIG. 2.4 – Graphe avec le chemin critique

2.3.5 Calcul sur le graphe

Il est tout à fait possible de calculer les dates au plus tôt, les dates au plus tard et marges directement surle graphe. Pour cela on va le présenter un peu différemment. Les sommets vont être remplacer par des casesavec 3 emplacements : un pour la date au plus tôt, un pour la date au plus tard et le dernier pour la marge.

20 Eric LALLET , Jean-Luc RAFFY

Page 29: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 2.5 – Calcul de la date au plus tôt : état initial

Un premier parcours du graphe va permettre de calculer les dates au plus tôt. On débute avec un grapheavec des cases vides, sauf pour letα qu’on initialise à 0 (voir figure 2.5).

Ensuite on déroule le même algorithme que précédemment. On regarde tous les sommets dont les pré-décesseurs sont déjà traités. Pour chaque arc arrivant sur le sommet, on calcule la somme la valeur duti dusommet initial de l’arc et de la valeur de l’arc. On met le maximum sur le sommet terminal.

Pour la première étape, on peut remplir les sommetsA, B etC. Ils n’ont qu’un seul prédécesseur chacun,et donc la maximum est vite trouvé (voir figure 2.6).

FIG. 2.6 – Calcul de date au plus tôt : première étape A, B et C

Pour la seconde étape, le calcul est simple pourD. Il n’y a qu’un seul prédécesseur, il suffit donc defaire la somme du sommet initial (A=0) et de l’arc (3).Par contreE à 2 prédécesseurs. La somme en partantA est plus grande, c’est donc cette valeur (3) que l’on prend (voir figure 2.7).

FIG. 2.7 – Calcul de la date au plus tôt : seconde étape D et E

La troisième étape permet de remplir la date au plus tôt deF et G. PourF il n’y a que l’arc venant deDà prendre en compte, mais pourG il y a deux choix. La plus grande valeur vient parE (voir figure 2.8).

En continuant avec la même logique on remplit la date au plus tôt deH (un maximum à choisir parmi 2arcs) et deω (voir figure 2.9).

Maintenant il faut remonter le graphe depuis le sommetω pour calculerTi, les dates au plus tard de

Eric LALLET , Jean-Luc RAFFY 21

Page 30: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 2.8 – Calcul de la date au plus tôt : troisième étape F, et G

FIG. 2.9 – Calcul de la date au plus tôt : fin

chaque tâche. On initialiseTω, la date au plus tard d’ω avec la valeur de sa date au plus tôt que l’on vientde calculer. On obtient le graphe initial de la figure 2.10.

FIG. 2.10 – Calcul de la date au plus tard : état initial

Ensuite on déroule l’algorithme du calcul de la date au plus tard. On regarde tous les sommets dont lessuccesseurs sont déjà traités. On choisit parmi les successeurs celui qui à le plus petitTi, et on lui retire lavaleur de l’arc.

Pour la première étape, on peut remplir le sommetH. Il n’a qu’un seul successeur et donc la minimumest vite trouvé (voir figure 2.11).

Le seconde étape permet de trouver la date au plus tard pourF etG. Ces deux sommets n’ont qu’un seulsuccesseur, donc il suffit de retirer la valeur de l’arc auTi du successeur. On arrive au graphe de la figure2.12

Lorsque deux étapes plus loin, les dates au plus tard deA, B etC sont calculés, on peut trouver celle deα. Il a trois successeur, et c’estA qui avecTA = 0 a leTi minimum alors queB avecTB = 4 et C avecTC = 3 sont rejetés.

22 Eric LALLET , Jean-Luc RAFFY

Page 31: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 2.11 – Calcul de date au plus tard : première étape H

FIG. 2.12 – Calcul de la date au plus tard : seconde étape (F et G)

FIG. 2.13 – Calcul de la date au plus tard : fin

Maintenant il nous reste à calculer les marges (Mi) de chaque étape. Pour cela il suffit de faire ladifférence entre la date au plus tard (Ti) et la date au plus tôt (ti) pour chaque sommet du graphe. On vaaussi doubler les arcs du chemin critique.

FIG. 2.14 – Calcul des marges et du chemin critique

Eric LALLET , Jean-Luc RAFFY 23

Page 32: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

2.4 Recherche du plus long chemin

L’algorithme utilisé pour la recherche de la date au plus tôtest une recherche de plus long chemin. Il estdonc possible d’utiliser le même algorithme sur des graphesqui ne sont pas liés à des problèmes d’ordon-nancement lorsqu’on a besoin de trouver un plus long chemin.Cette technique peut être très pertinente lorsde la recherche d’un «maximum». Les exercices 2.2 et 2.3 à la fin de chapitre illuste ce cas.

2.5 Exercices

Exercice 2.1 (Organisation d’un colloque)

Vous avez été choisi par vos pairs lors d’une conférence sur les techniques quantitatives pour organiserla suivante à Paris. La date a été fixée. Ce sera du 17 au 20 décembre 2009 pour que vos collègues puissenten profiter, s’ils le souhaitent, pour prolonger leur séjourà Paris lors des fêtes.

C’est la première fois que vous êtes organisateur. Vous demandez donc conseil à un collègue expéri-menté qui vous explique ce qu’il faut faire, mais de manière «non linéaire» :

«La première chose à faire est de trouver le site de la conférence. Par exemple un hôtel qui pourrahéberger les participants et qui possède des salles de conférence. Il faut compter 3 semaines pour letrouver.

D’ailleurs pour toutes ces recherches, et tout l’aspect logistique, tu dois t’entourer d’une équipe, lecomité d’organisation, à qui tu délégueras l’essentiel de ces tâches. Choisir cette équipe devrait teprendre 1 semaine.

Il te faut aussi choisir le comité de programme. Ça sera l’équipe chargée de l’aspect scientifique ducolloque. Compte 3 semaines pour ce choix. Ce comité de programme devra se réunir 2 fois avantla conférence. Une première fois, avant l’appel à communications, pour fixer les grandes lignes duprogramme qui seront indiquées dans cet appel. Et une seconde fois, après la sélection finale desarticles, et au moins 3 semaines avant le colloque, pour fixeren détail le programme final.

Le temps que les articles soient écrits et envoyés, il faut laisser aux auteurs, un délais de 8 semainesentre l’appel à communications et la sélection. Il faut aussi laisser 8 semaines au jury entre la réceptiondes articles, et la sélection finale.

Tu dois aussi te mettre d’accord avec un imprimeur pour l’édition des «proceedings». En général il fautcompter 6 semaines pour l’impression à condition que tous les articles aient été mis en forme selonles conventions de l’imprimeur. Pour cela, accorde 4 semaines après la sélection finale aux différentsauteurs pour qu’ils fassent cette mise en forme. Il faut que tu aies reçu les livres imprimés au moins 1semaine avant le colloque.

Prévoie aussi un programme «social» pour occuper les conférenciers en dehors du temps des confé-rences. Le temps fort sera un banquet lors d’une soirée. Ton comité d’organisation devrait pouvoirchoisir le lieu de ce banquet en 2 semaines. Il devra aussi se mettre d’accord avec l’hôtel pour lesmenus et les prix des repas lors de la conférence. Pour cela compte 1 semaine après le choix del’hôtel. Une fois tout cela connu, laisse encore 1 semaine aucomité d’organisation pour fixer le prixque devront payer les conférenciers. Ce prix et le programme«social» devront figurer dans l’appel àcommunications.

De plus, comme j’ai compris que tu avais des sponsors généreux, tu devrais profiter des deux réunionsdu comité de programme pour tester l’hôtel et le lieu du banquet. Donc programme la première réuniondu comité de programme dans l’hôtel, et prévoie un dîner sur le lieu du banquet le soir de la seconderéunion.

Voila, je pense que je n’ai rien oublié.»

Et bien quand devez-vous commencer au plus tard à organiser tout cela pour que le colloque puisse biendébuter le 17 décembre?

Il n’est jamais simple de fixer une date de réunion. . . Quellessont les marges dont vous disposez pourles deux réunions du comité de programme pour fixer une date sans que cela ne ralonge votre préparation?

Correction page 110

24 Eric LALLET , Jean-Luc RAFFY

Page 33: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Exercice 2.2 (Le banquet)2

Apollodore, un jeune traiteur, vient de se mettre à son compte et propose ses services pour des banquets.En une journée de travail il arrive à produire 50 repas. Par contre il ne possède pas encore ses cuisines. Ila cependant trouvé une grosse collectivité qui possède des cuisines sous-utilisées trois jours par semaineet qui loue alors des espaces de travail. La location, même d’une seule journée, donne aussi l’accès durantla semaine à un espace de stockage en chambre froide où le traiteur peut conserver jusqu’à 100 repas. Cetespace doit être totalement libéré le vendredi soir.

En tenant compte du prix de location (variable), et des matières premières utilisées, Apollodore a calculéle prix d’une journée de production (50 repas) suivant la journée :

Jour lundi mardi jeudiPrix 2k euros 2k euros 1k euros

Pour la semaine à venir il a trouvé trois demandes pour 100 repas (chaque demande est pour 100 repas)qui pourraient lui convenir. S’il les accepte (il peut accepter certaines et refuser d’autres), voici les jours etles prix convenus :

Jour mardi mercredi vendrediPrix 7k euros 4k euros 4k euros

Les jours où il sert un banquet, il n’a pas le temps de produiredes repas. De plus chaque banquet luicoûte 1k euros de frais divers (transport, services. . . ) à soustraire aux revenus indiqués ci dessus.

Est-ce qu’Apollodore a intérêt à travailler cette semaine ?– Si oui, selon quel planning?– Sinon pourquoi?Correction page 112

Exercice 2.3 (Le banquet, suite)

Apollodore connaît un ami, Aristodème, exactement dans lesmêmes conditions que lui. Ils peuventtravailler ensemble durant cette semaine. Aristodème devra lui aussi payer la location d’un espace de travail,donc le prix des repas supplémentaires produits reste le même. Par contre il peut très bien continuer àproduire des repas les jours où Apollodore sert les banquets(s’il a accès aux cuisines ce jour là !).

Leur conseillez-vous de travailler ensemble cette semaine(notez qu’ils peuvent très bien ne pas travaillerles mêmes jours ni le même nombre de jours) ?

– Si oui, selon quel planning?– Sinon pourquoi?

Exercice 2.4 (Tarte Tatin)

Profitant d’un week-end bien mérité Apollodore et Aristodème se décident presque à la dernière minutede faire une tarte tatin pour recevoir des amis qui doivent arriver 1 heure plus tard. Ils veulent l’accompagnerd’une crème anglaise. Voici les diverses actions qu’ils doivent réaliser ainsi que leur durée.

Pour la pâte brisée :– Préparer la pâte (5 minutes)– Laisser reposer la pâte (30 minutes)– Étaler la pâte (5 minutes)

Pour la tarte Tatin :– Préparation du moule (5 minutes) : Prendre un moule à manquer... Verser 125g de sucre sur le fond.

Parsemer sur le dessus 120g beurre coupé en petits morceaux.– Préparation des pommes (10 minutes) : Peler 8 belles pommes, enlever le coeur et les couper en

quartiers.

2Attention, cet exercice et le suivant ne concernent pas des problèmes d’ordonnancement, mais ils illlustrent l’usage des algorithmesdu potentiel-tâche sur d’autres types de graphes pour retrouver un chemin le plus long

Eric LALLET , Jean-Luc RAFFY 25

Page 34: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– Mise en place des pommes (10 minutes) : Placer les quartiersde pommes dans le moule, sur le sucreet le beurre. Saupoudrer avec 125g de sucre

– Caramélisation des pommes (5 minutes) : Placer le moule surun feu vif, jusqu’à ce que le caramelcommence à dorer.

– Mise en place de la pâte (5 minutes) : Recouvrir les pommes dela pâte étalée. Rentrer le bord àl’intérieur du moule. Faire quelques trous pour laisser échapper la vapeur.

– Cuisson (15 minutes) : Enfourner dans un four chaud, thermostat 9 pendant 15 minutes, le temps quela pâte soit bien dorée.

Pour la crème anglaise :– Préparer la crème (15 minutes).– Laisser refroidir (15 minutes).– Mettre au réfrigérateur (30 minutes minimum).

Apollodore se propose pour préparer la pâte, et s’occuper ensuite de la tarte Tatin, pendant qu’Aristo-dème s’occupera de préparer la crème anglaise puis étalera la pâte.

Aristodème suggère qu’Apollodore commence immédiatementla préparation de la Tarte pendant quelui commencera la pâte brisé. Il préparera la crème anglaisedurant le temps de repos de la pâte, et ensuiteétalera la pâte.

Lequel des deux scénarios conseillez-vous de mettre en œuvre ?

Correction page 116

26 Eric LALLET , Jean-Luc RAFFY

Page 35: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 3

Les Arbres

3.1 Introduction

FIG. 3.1 – Quel est le réseau de coût minimum permettant de reliertoutes les succursales ?

Imaginons que l’on veuille construire un réseau privé pour faire communiquerN succursales d’uneentreprise avec pour objectif d’obtenir le coût le plus bas.On connaît tous les raccordements possibleset leur coût (voir la figure 3.1). Comme le but est d’avoir le prix le plus bas, on ne va garder que lesraccordements strictement nécessaires. On s’aperçoit déjà que l’on n’a pas besoin de cycles dans ce graphe.Par contre pour que toute succursale puisse joindre toutes les autres, le graphe devra permettre de trouverun chemin entre tous les sommets (on aura donc un graphe connexe).

Ainsi la solution est de trouver un graphe connexe simple sans cycle qui offre le moindre coût deconstruction. Or un graphe connexe simple sans cycle est un arbre. Nous allons donc étudier les arbres,leurs propriétés et deux algorithmes qui permettront de trouver la solution à ce genre de problème.

3.2 Définitions et propriétés

Définition 3.1 (arbre) Un arbre est un graphe connexe simple sans cycle.

Par exemple une rivière et ses affluents forme un arbre. On utilise aussi beaucoup les arbres pour clas-sifier. Par contre, avec notre définition, en théorie de graphe, un «arbre généalogique» ne reste un arbre que

Eric LALLET , Jean-Luc RAFFY 27

Page 36: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

si on ne remonte pas trop loin (on finira souvent par trouver deux ancêtres communs à deux conjoints, etdonc on formera un cycle).

Définition 3.2 (sous graphe)On dit qu’un grapheG′ = [X ′, U ′] est un sous-graphe deG = [X, U ] siX ′ ⊆ X etU ′ ⊆ U .

Définition 3.3 (sous graphe couvrant)Un sous grapheG′ = [X ′, U ′] est dit couvrant siX ′ = X et G′

est connexe.

Définition 3.4 (poids d’un graphe) Soit un grapheG = [X, U ] où chaque arêteui est valuée avec unpoidspi. Le poids du graphe est la somme des poids des arêtes du graphe.

Les arbres sont des graphes qui ont de nombreuses propriétés. En voici quelques-unes :

1. un arbre est toujours un graphe simple.

2. un arbre à N sommets possède N-1 arêtes.

3. Un sous-graphe deG couvrant et sans cycle est un arbre couvrant deG. On appelle ces arbres, des«arbres de recouvrement» du grapheG.

4. Si un graphe a toutes ses arêtes de poids positif ou nul, il admet un sous-graphe couvrant de poidsminimal, et ce sous-graphe couvrant de poids minimal est un arbre.

Pour résoudre le problème de l’introduction, il faut donc trouver le graphe de recouvrement de poidsminimum. Ce graphe est un arbre. Comme le nombre d’arbres de recouvrement croît de façon exponentielleavec le nombre de sommets, il n’est pas du tout interessant detous les calculer pour connaître celui qui ale poids minimum. Pour éviter cela, il existe des algorithmes qui permettent de construire d’entrée un arbrede poids minimal et dont le nombre d’étapes est une fonction linéaire du nombre d’arêtes. Nous allons voirces algorithmes.

3.3 L’algorithme de Kruskal

Soit un grapheG = [X, U ], avec|X | = N et |U | = M .

On va construite un arbre recouvrement deG de poids minimum :τ = [X, T ].

Algorithme 3.1 (Kruskal)

1. Classer les arêtes par ordre croissant de poids.U = {u1, u2, u3, ...., um}.

2. PoserT = ∅ et i = 1.

3. SiT ∪ ui est sans cycle ajouteui àT : T ← T ∪ ui.Sinon aller à l’étape 4.

4. Incrémenteri de1.Si |T | = N − 1 Stop, sinon retourner à l’étape 3.

On peut remarquer que durant les phases intermédiaires de l’algorithme de Kruskal, le sous grapheformé parT n’est pas forcement connexe. On a un ensemble d’arbres disjoints. Un graphe de cette formes’appelle une «forêt».

Faisons tourner cet algorithme sur l’exemple de l’introduction : N = 6 et M = 10. Après classementdes arêtes par ordre croissant de poids on obtientU = {u1, . . . , u10} de la figure 3.2.

On poseT = ∅ et i = 1.

Donc on commence par ajouteru1 dans notre arbre :T = {u1} et i = 2.

Ensuite on ajouteu2 :T = {u1, u2} et i = 3.

On peut ajouteru3 toujours sans créer de cycle, doncT = {u1, u2, u3} et i = 4.

À l’étape suivanteu4 peut aussi être ajouter, doncT = {u1, u2, u3, u4} et i = 5.

A ce stade on obtient la figure 3.3.

28 Eric LALLET , Jean-Luc RAFFY

Page 37: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

U1

U2

U4U5

U6

U8

U9U10

U3

U7

FIG. 3.2 – Kruskal : tri des arêtes (lesui numérotées dans par ordre croissant de poids)

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

U1

U2

U4U5

U6

U8

U9U10

U3

U7

=(X,T)tt

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

U1

U2

U4U5

U6

U8

U9U10

U3

U7

=(X,T)tt

FIG. 3.3 – Kruskal : étape avec 4 arêtes et étape finale

On tente alors d’ajouteru5. Mais(u1, u4, u5) forment un cycle.u5 est donc rejeté, eti = 6.

On tente alors d’ajouteru6. Mais(u1, u4, u6, u2) forment un cycle.u6 est donc rejeté, eti = 7

Par contreu7 peut aussi être ajoutée. On obtientT = {u1, u2, u3, u4, u7}, et i = 8. Comme|T | = 5 =N − 1, l’algorithme est terminé. On aτ = [X, T ] un arbre de recouvrement minimal (voir la figure 3.3).

On peut maintenant évaluer le coût du réseau à mettre en place: c’est le poids de notre arbre de recou-vrement minimal. Donc sipi est le poids de l’arêteui :

coût= p1 + p2 + p3 + p4 + p7 = 1 + 1 + 2 + 2 + 5 = 11.

Notez qu’un arbre de recouvrement minimal n’est pas obligatoirement unique. D’autres peuvent peserle même poids. On va d’ailleurs en trouver un autre pour notreproblème lorsqu’on va utiliser l’algorithmede Prim dans la section suivante.

3.4 L’algorithme de Prim

3.4.1 Description

Soit un grapheG = [X, U ], avec|X | = N et |U | = M .

On va construite un arbre recouvrement minimal deG : τ = [X, T ].

Voici le principe de l’algorithme de Prim :

Algorithme 3.2 (Prim)

1. Pour tous les sommetsxi deX , construire tous les cocycles élémentaires1 ωi = ω({xi}).

1Ces cocycles élémentaires sont utilisés à l’étape 3 de l’algorithme pour calculer de façon itérative le cocycle de l’ensemble dessommets déjà traités. Si le graphe est simple et les cocyclessimples à trouver, cette étape n’est pas utile.

Eric LALLET , Jean-Luc RAFFY 29

Page 38: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

2. Prendre un sommet quelconque du graphe (par exemplex1) et poser :

A = {x1}

q = ωx1

T = ∅

3. Choisir dansq, une arêteu de poids minimale. Soitxj l’extrémité deu dansX − S. On pose :

T ← T ∪ {u}

A← A ∪ {xj}

q ← q∆ωj(Différence symétrique :Y ∆Z = (Y ∪ Z − (Y ∩ Z)

(remarque : cet algorithme donne toujoursq = ω(A)).

4. Si |T | = N − 1, fin,sinon retourner en 3.

3.4.2 Exemple sur un graphe dessiné

Faisons tourner cet algorithme sur notre exemple.

– Pour démarrer, on va choisir d’initialiserA avecS1 (voir figure 3.4)2

A = {S1}

q = ω(A) = ωS1 = {u1, u2, u3, u4}

T = ∅

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

u1

u2

u3

u4

u5

u6

u7

u8

u9

u10

A

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

u1

u2

u3

u4

u5

u6

u7

u8

u9

u10

A

FIG. 3.4 – Prim : Initialisation de l’algorithme et première étape (u2 ajoutée)

– On doit choisir une arête de moindre poids dansq. L’arêteu1 (de poids 8) est donc exclue. Les 3autres (de poids 2) peuvent convenir. On va prendreu2. Elle est reliée àS4 qui rentre donc dansl’ensembleA (voir figure 3.4).

T = {u2}

A = {S1, S4}

q = ω(A) = {u1, u3, u4, u6, u7, u8}

– Les trois arêtes de poids2 deq sont éligibles :u3, u4 etu8. On va choisiru3. Son extrémitéS6 entredonc dansA (voir la figure 3.5).

T = {u2, u3}

A = {S1, S4, S6}

q = ω(A) = {u1, u4, u6, u7, u9, u10}

2Notez que pour cette algorithme les arêtes n’ont pas besoin d’être triées. Donc leur numérotation a juste été faite «au vol» lors dudessin du graphe

30 Eric LALLET , Jean-Luc RAFFY

Page 39: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

u1

u2

u3

u4

u5

u6

u7

u8

u9

u10

AS1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

u1

u2

u3

u4

u5

u6

u7

u8

u9

u10

A

FIG. 3.5 – Prim : Deuxième étape (u3 ajoutée) et troisième étape (u9 ajoutée)

– A cette étape, seule l’arête de poids1, u9 peut être choisie. On ajoute son extrémitéS5 dans l’en-sembleA (voir la figure 3.5).

T = {u2, u3, u9}

A = {S1, S4, S5, S6}

q = ω(A) = {u1, u6, u7, u10}

– L’arête de plus faible poids deq estu10. Son extrémitéS3 entre dansA (voir la figure 3.6).

T = {u2, u3, u9, u10}

A = {S1, S3, S4, S5, S6}

q = ω(A) = {u1, u6, u5}

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

u1

u2

u3

u4

u5

u6

u7

u8

u9

u10

A

S1

S6

S3

S5

S4

S2

8

1

2

2

6

6

5

2

1

2

u1

u2

u3

u4

u5

u6

u7

u8

u9

u10

A

FIG. 3.6 – Prim : Quatrième étape (u10 ajoutée) et dernière étape (arbre trouvé)

– L’arêteu5 de poids 1 complète notre arbre. Le nombre d’arêtes vautN − 1 et A enrichi deS2

l’extrémité deu5 couvre maintenant tout l’ensemble. L’algorithme se termine donc ici (voir figure3.6).

T = {u2, u3, u5, u9, u10}

A = {S1, S2, S3, S4, S5, S6}

q = ω(A) = ∅

L’arbre trouvé ici n’est pas le même que dans la section précédente, mais il pèse bien le même poids(11). Aussi bien pour Kruskal que pour Prim, il y a des choix à faire (par exemple, lorsqu’il y a plusieursarêtes avec le même minimum), et il y a donc plusieurs «bonnes» solutions.

Eric LALLET , Jean-Luc RAFFY 31

Page 40: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

3.4.3 Exemple sur la matrice du graphe

Pour ce genre de problème, le graphe dessiné est parfois illisible : le graphe n’est pas planaire et pleind’arêtes se croisent dans tous les sens. Essayer de trouver sur le dessin le cocycle des sommets déjà traitésdevient vite impossible. On peut bien sûr dérouler l’algorithme à la main, mais il est aussi possible detravailler sur la matrice d’adjacence qui représente le graphe. Dans ce cas le booléen qui indique s’il existeune arête entre deux sommets est remplacé par le poids de l’arête.

La matrice d’adjacence du graphe des succursales donne :

S1 S2 S3 S4 S5 S6

S1

S2 8S3 1S4 2 6 6S5 2S6 2 5 2 1

Les cocycles élémentaires d’un sommet sur une telle matricesont très simples à trouver : il s’agit de lacolonne et de la ligne du sommet.

Donc la matrice qui donne les arêtes du cocycle élémentaire deS4 est :

S1 S2 S3 S4 S5 S6

S1

S2

S3

S4 2 6 6S5

S6 2

Imaginons maintenant qu’on veuille ajouterS6 à notre ensemble (pour former l’ensemble de sommets{ S4, S6 }). Comment trouver le nouveau cocycle ?

On a vu que le cocycle de l’union de deux ensembles de sommets était l’union des deux cocycles moinsl’intersection. Pour faire l’union, il faut ajouter le cocycle élémentaire deS6 (sa ligne et sa colonne), et pourretirer l’intersection il faut rayer toutes les arêtes qui étaient déjà présentes.

On obtient :

S1 S2 S3 S4 S5 S6

S1

S2

S3

S4 2 6 6S5

S6 2 5 �A2 1

Si on ajouteS1 à l’ensemble, on procède de la même manière pour trouver le cocycle du nouvel en-semble ({S1, S4, S6 }). On ajoute la ligne et la colonne deS1 mais en rayant les éléments déjà présents.

Cela donne :

S1 S2 S3 S4 S5 S6

S1

S2 8S3

S4 �A2 6 6S5 2S6 �A2 5 �A2 1

32 Eric LALLET , Jean-Luc RAFFY

Page 41: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Utilisons ce principe sur l’algorithme de Prim.

Imaginons un cas d’étude : Six fleuves majeurs coulent dans laprovince de Primlande : l’Armoise, laBellis, le Comaret, la Douve, l’Erine et le Fragon. Le gouverneur de Primlande voudrait créer un réseaude canaux pour permettre de naviguer d’un fleuve à l’autre. Ilveut aussi que ça lui coûte le moins cherpossible. Il a demandé une étude pour évaluer le coût de la jonction des fleuves pris deux à deux. Voici lerésultat :

Armoise Bellis Comaret Douve Erine FragonArmoiseBellis 10Comaret 6 8Douve 4 2 4Erine 9 4 7 2Fragon 3 3 3 1 5

Il faut maintenant trouver quels canaux creuser pour que tous les fleuves ne forment plus qu’un seulréseau qui coûte le moins cher possible. Prim est parfaitement adapté. On va donc le dérouler, mais sur lamatrice.

Pour démarrer, on va choisir d’initialiserA avecArmoise. On sélectionne donc l’Armoise (en sou-lignant) dans la matrice et on ajoute son cocycle. Sur une matrice d’adjacences, le cocycle d’un sommetcorrespond à sa ligne et sa colonne :

Armoise Bellis Comaret Douve Erine FragonArmoiseBellis 10Comaret 6Douve 4Erine 9Fragon 3

La plus petite arête présente dans la matrice est celle qui vade l’Armoise auFragon. On ajoute cettearête à notre arbre (en ajoutant un «oui» dans la case de l’arête),

On ajoute leFragon dans l’ensembleA (on le souligne dans la matrice).

On ajoute aussi son cocycle (donc on fait l’union avec le cocycle du graphe déjà dans la matrice), maisen rayant les éléments s’ils sont déjà présents (on supprimel’intersection avec le cocycle déjà présent). Onobtient le cocycle du nouvel ensemble :

Armoise Bellis Comaret Douve Erine FragonArmoiseBellis 10Comaret 6Douve 4Erine 9Fragon �A3 oui 3 3 1 5

Dans le nouveau cocycle, c’est l’arêteDouve-Fragon qui doit être sélectionnée. On ajoute cette arêteà notre arbre.

On ajoute laDouve dans l’ensembleA. On ajoute son cocycle mais en rayant les arêtes qui sont déjàprésentes dans la matrice :

Armoise Bellis Comaret Douve Erine FragonArmoiseBellis 10Comaret 6Douve �A4 2 4Erine 9 2Fragon �A3 oui 3 3 �A1 oui 5

Eric LALLET , Jean-Luc RAFFY 33

Page 42: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Dans le nouveau cocycle, deux arêtes peuvent être choisies :soit Erine-Douve, soit Douve-Bellis.On va choisir d’ajouter l’arêteDouve-Bellis.

On ajoute aussi laBellis dans l’ensembleA. On ajoute son cocycle mais en rayant les arêtes qui sontdéjà présentes dans la matrice :

Armoise Bellis Comaret Douve Erine FragonArmoiseBellis ��ZZ10Comaret 6 8Douve �A4 �A2 oui 4Erine 9 4 2Fragon �A3 oui �A3 3 �A1 oui 5

Cette fois, c’est au tour de l’arêteErine-Douve d’être choisie.

On ajoute aussi l’Erine dans l’ensembleA. On ajoute son cocycle mais en rayant les arêtes qui sontdéjà présentes dans la matrice :

Armoise Bellis Comaret Douve Erine FragonArmoiseBellis ��ZZ10Comaret 6 8Douve �A4 �A2 oui 4Erine �A9 �A4 7 �A2 ouiFragon �A3 oui �A3 3 �A1 oui �A5

On doit maintenant prendre l’arêteFragon-Comaret. On obtient les5 arêtes utiles à notre arbre, onpeut s’arrêter là :

Armoise Bellis Comaret Douve Erine FragonArmoiseBellis ��ZZ10Comaret �A6 �A8Douve �A4 �A2 oui �A4Erine �A9 �A4 �A7 �A2 ouiFragon �A3 oui �A3 �A3 oui �A1 oui �A5

L’arbre de recouvrement minimal est donc composé de (Douve-Bellis,Erine-Douve, Fragon-Armoise,Fragon-Comaret, Fragon-Douve).

Il pèse donc :2 + 2 + 3 + 3 + 1 = 11.

3.5 Exercices

Exercice 3.1 (Promesse électorale)

Le réseau routier d’une petite commune rurale a été laissé à l’abandon si longtemps qu’une bonne partie desroutes sont devenues des chemins. Lors des dernières élections le maire a promis qu’il allait remettre en étatsuffisamment de routes pour que toutes les habitations de la commune puissent rejoindre le centre-bourgpar une route digne de ce nom. Il lui faut maintenant tenir sa promesse, mais bien sûr, il voudrait engagerun minimum de dépenses pour cela.

La carte de la commune et la liste des habitations à relier au centre-bourg sont sur la figure 3.7. Le coûtde la remise en état d’une route est directement proportionnel à sa longueur. Voici la longueur des différentschemins :

34 Eric LALLET , Jean-Luc RAFFY

Page 43: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

ch1=500m ch2=1200m ch3=1400 ch4=800m ch5=1400m ch6=1600ch7=1300m ch8=1500m ch9=1400 ch10=500 ch11=1400m ch12=1600mch13=1300 ch14=1500 ch15=1700 ch16=1300

FIG. 3.7 – Carte de la commune

Correction page 118

Eric LALLET , Jean-Luc RAFFY 35

Page 44: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

36 Eric LALLET , Jean-Luc RAFFY

Page 45: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 4

Recherche du plus court chemin

4.1 Introduction

Les problèmes de cheminement dans les graphes sont parmi lesplus anciens de la théorie des graphes.Ce type de recherche se rencontre soit directement, soit sous la forme d’un problème dans de nombreusesapplications.

Quelques exemples :– les problèmes de tournées– les problèmes de gestion de stock, d’investissements– les problèmes d’optimisation de réseaux.

4.2 Définitions

Définition 4.1 (graphe valué) Étant donné un grapheG = (X, U), on associe à chaque arcu ∈ U unnombrel(u) ∈ R. On dit queG est valué par la longueurl(u).

Définition 4.2 (plus court chemin) Le problème du plus court chemin (PCCH) entre 2 sommetsi etj serade trouver un cheminpi,j dont la longueur totalel(pi,j) est minimale.

Avecl(pi,j) =∑

u∈pi,j

l(u)

L’interprétation del(u) peut être un coût de transport, une dépense de construction ou un temps néces-saire pour parcourir u.

Voici deux exemples pour illustrer des cas où on est confronté à ce type de problème :– Considérons une carte routière et cherchons la route la plus courte pour se rendre d’une localité à une

autre. Le graphe est obtenu en prenant comme sommets les localités et en remplaçant chaque routeentre deux localités par 2 arcs d’orientations opposées, etayant pour longueur la longueur de la route.

– Considérons le projet de construction d’une autoroute entre les villes A et K. Sur le graphe les arcsreprésentent les différents tronçons possibles de l’autoroute ; chaque arc est valué par le coût total deréalisation du tronçon correspondant.

4.3 Algorithme de Ford-Moore

4.3.1 Description

Voici l’algorithme de Ford avec l’amélioration de Moore :

Soit un grapheG = [X, U ] connexe valué.|X | = N . La longueur de l’arc allant dexi àxj estl(ij).

Eric LALLET , Jean-Luc RAFFY 37

Page 46: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

On va trouver les plus courts chemins,λ(xi), allant du sommetx1 vers chacun des sommetsxi dugraphe. Cet algorithme est itératif : à chaque étape on va réévaluer la longueur du chemin dex1 à xi. Lavaleur de cette longueur à l’étapem sera notéeλ(xi, m),

Algorithme 4.1 (Algorithme de Ford-Moore)

1. Poserλ(x1, 0) = 0 etS0 = Γ(x1) etS1 = ∅

λ(xi, 0) =∞ pourxi ∈ X etxi 6= x1

m = 0

2. Pour toutxi ∈ Sm faire :

λ(xi, m + 1) = min(λ(xi, m), λ(xk, m) + l(ki) ) k ∈ Γ−(xi)

si λ(xi, m + 1) < λ(xi, m) alorsSm+1 ← Sm+1 ∪ Γ(xi)

3. Siλ(xi, m + 1) = λ(xi, m) pour toutxi ∈ X Fin

Sinon aller en 4.

4. Sm+2 = ∅ etm← m + 1. Retouner en 2.

4.3.2 Exemple sur le graphe dessiné

Trouvons le plus court chemin allant du sommetA au sommetH du graphe de la figure 4.1. Notez quesur ce graphe certains arcs ont des chemins avec des longueurs négatives. Tant qu’il n’y a pas de circuits delongueur négative l’algorithme va fonctionner.

B

C

D

3

−1

E

H

F

G

4

2

7

8

0

4

5

3

A

−2

1

5

FIG. 4.1 – Quel est le plus court chemin allant deA àH ?

On commence en initialisantλ(A, 0) = 0 et tous les autresλ(x, 0) = ∞. Pour alléger le graphe on vaconsidérer que les sommets sansλ sont marqués avec∞. La première itération de l’algorithme (m = 1) vafaire évoluer les succésseurs deA : B, C etD (voir figure 4.2).

À la seconde itération la propagation atteint tous les sommets. Mais la valeur du sommetC évolue ànouveau. En effet ses prédécesseursB et D ayant changés on doit réévaluer la valeur de son chemin. Etcelui arrivant par le sommetB est plus court. C’est donc lui qui devient le chemin le plus court pour lesommetC (voir la figure 4.3).

À la troisième itération, les sommetsA, B, C etD sont stabilisés. mais il faut réévaluer tous les autres.Pour le sommetE la valeur qui arrive pas le sommetF est la même que celle déjà arrivée par le sommetB. Donc pour l’instant on a deux estimations équivalentes du chemin le plus court pour le sommetE. Maiscela va évoluer puisque à cette itération la valeur du sommetF change à nouveau. Les valeurs des sommetsG etH changent aussi (voir figure 4.4).

À la quatrième itération le sommetG est lui aussi stabilisé. Le sommetF va rester inchangé, car lavaleur qui arrive par leG est plus grande. Celle du sommetE diminue, et donc le chemin le plus court pource sommet arrive maintenant par le sommetF . Pour le sommetH , une seconde estimation du chemin le

38 Eric LALLET , Jean-Luc RAFFY

Page 47: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 4.2 – Première itération de l’algorithme de Ford-Moore

FIG. 4.3 – Seconde itération de l’algorithme de Ford-Moore

FIG. 4.4 – Troisième itération de l’algorithme de Ford-Moore

plus court apparait : celui qui arrive par le sommetG a (pour l’instant) la même valeur que celui qui arrivepar le sommetE (voir figure 4.5).

Enfin, à la cinquième et dernière itération, seul le sommetH évolue. La propagation venant du sommetE est plus basse. CommeH n’a pas de successeur, ce changement n’aura plus de répercution sur le graphe.L’algorithme s’arète là. Le chemin le plus court allant deA àH passe donc parB, C, F etE et la valeur desa longueur est 8 (voir figure 4.6).

Eric LALLET , Jean-Luc RAFFY 39

Page 48: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 4.5 – Quatrième itération de l’algorithme de Ford-Moore

FIG. 4.6 – Cinquième et dernière itération de l’algorithme de Ford-Moore

4.3.3 Exemple sur un tableau

Il est possible de dérouler l’exemple sur un tableau plutôt que sur le dessin du graphe. On crée un tableauavec une colonne pour chaque sommet, une pour la liste des sommets qui ont changé, et une dernière pourleurs successeurs. Il y a une nouvelle ligne pour chaque itération.

Le tableau commence donc avecλ(A, 0) = 0 et les autres∞.

m λ(A) λ(B) λ(C) λ(D) λ(E) λ(F ) λ(G) λ(H) Sommets Γ+

changés0 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ A B,C,D

À l’étape suivante on traite tous les sommets qui apparaissent dans la colonneΓ+ de la ligne précédente.Ici il faut donc faire évoluerB, C et D en fonction de leur prédécesseurA. En plus de la valeur de lalongueur du chemin, on note aussi sur la case le prédécesseurpour pouvoir retrouver à la fin les sommetsdu chemin le plus court.

m λ(A) λ(B) λ(C) λ(D) λ(E) λ(F ) λ(G) λ(H) Sommets Γ+

changés0 0 ��HH∞ ��HH∞ ��HH∞ ∞ ∞ ∞ ∞ A B,C,D1 5/A 4/A 3/A B C,E

C F,GD H,C

40 Eric LALLET , Jean-Luc RAFFY

Page 49: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Pour l’itération 2, les sommetsC, E, F, G etH doivent être réévaluer.

m λ(A) λ(B) λ(C) λ(D) λ(E) λ(F ) λ(G) λ(H) Sommets Γ+

changés0 0 ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ A B,C,D1 5/A ��HH4/A 3/A B C,E

C F,GD H,C

2 3/B 9/B 7/C 3/C 11/D C F,GE HF EG F, HH

Les sommetsE, F, G etH présents dans la colonneΓ+ doivent être révalués.

m λ(A) λ(B) λ(C) λ(D) λ(E) λ(F ) λ(G) λ(H) Sommets Γ+

changés0 0 ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ A B,C,D1 5/A ��HH4/A 3/A B C,E

C F,GD H,C

2 3/B 9/B ��HH7/C ��HH3/C ���XXX11/D C F,GE HF EG F,HH

3 9/F 6/C 2/C 9/E F E��HH8/G ���XXX10/G G F,H

H

À cette itération, il faut réévaluerE, F etH .

m λ(A) λ(B) λ(C) λ(D) λ(E) λ(F ) λ(G) λ(H) Sommets Γ+

changés0 0 ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ A B,C,D1 5/A ��HH4/A 3/A B C,E

C F,GD H,C

2 3/B ��HH9/B ��HH7/C ��HH3/C ���XXX11/D C F,GE HF EG F,HH

3 ��HH9/F 6/C 2/C 9/E F E��HH8/G ���XXX10/G G F,H

H4 8/F ��HH7/G 9/G E H

Eric LALLET , Jean-Luc RAFFY 41

Page 50: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

SeulH doit être réévaluer.

m λ(A) λ(B) λ(C) λ(D) λ(E) λ(F ) λ(G) λ(H) Sommets Γ+

changés0 0 ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ A B,C,D1 5/A ��HH4/A 3/A B C,E

C F,GD H,C

2 3/B ��HH9/B ��HH7/C ��HH3/C ���XXX11/D C F,GE HF EG F,HH

3 ��HH9/F 6/C 2/C ��HH9/E F E��HH8/G ���XXX10/G G F,H

H4 8/F ��HH7/G ��HH9/G E H5 8/E H

La colonneΓ+ est vide. L’algorithme est donc fini. La longueur du plus court chemin est donc8.Pour connaître ce chemin le plus court, il suffit de partir de la colonne deH et de remonter la route :H → 8/E → 8/F → 6/C → 3/B → 5/A.

4.4 Exercices

Exercice 4.1 (Voyage Lyon-Agen)

Un voyageur doit aller en voiture de Lyon à Agen. En regardantles cartes il a dégagé diverses optionspour faire sa route (voir figure 4.7).

– Il peut couper le massif-central par les nationales en passant le Le Puy-en-Velay, Brioude et Cahors.– Il peut passer par les autoroutes du sud de la France, en passant par Orange, Montpellier, Narbonne,

Toulouse et Montauban.– Il peut passer par les autoroutes du centre de la France, en rejoingnant l’A72 à Feurs, et ensuite en

passant par Clermont-Ferrand, Brive, Cahors, Montauband.– Il peut enfin faire un mélange de tout cela en profitant éventuellement de l’A75 qui coupe toutes ces

routes.Sachant qu’il réalise une moyenne de 70km/h sur les nationales et départementales et de 110km/h sur

les autoroutes quel chemin doit-il emprunter pour faire le trajet le plus rapidement possible ? Et quel est letemps de ce trajet ?

Correction page 121.

Exercice 4.2 (Le banquet)

Refaites l’exercice 2.2 (page 25) mais cette fois en le modélisant avec une recherche de plus courtchemin.

Correction page 123.

Exercice 4.3 (Le banquet (suite))

Refaites l’exercice 2.3 (page 25) mais cette fois en le modélisant avec une recherche de plus courtchemin.

Correction page 125.

42 Eric LALLET , Jean-Luc RAFFY

Page 51: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 4.7 – Les routes entre Lyon et Agen

Eric LALLET , Jean-Luc RAFFY 43

Page 52: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

44 Eric LALLET , Jean-Luc RAFFY

Page 53: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 5

Flot Maximal

5.1 Introduction

Dans ce chapitre nous allons voir un algorithme qui permet detrouver le flot maximal entre deux pointsd’un graphe. De nombreux problèmes de natures très différentes se modélisent avec ce genre de graphe :le calcul de la capacité d’un réseau routier ou informatique, le calcul de flux migratoires ou financiers, lecalcul des possibilités logistiques d’une armée. . .

En ajoutant des coûts de transit sur les arcs, on verra aussi comment trouver le flot maximal qui nedépasse pas un coût donné, ou bien comment trouver le coût minimal pour faire transiter un flot donné.

5.2 Description du problème

Le problème du flot maximal consiste à faire passer un flot optimal à traver un «réseau de transport».Un réseau de transport est un grapheG = [X, U ] orienté sans boucle, dont chaque arc est valué par unnombre représentant sa capacité de transport. On distinguedeux sommets particuliers dans ce graphe :S, lasource, etP , le puits. Le problème sera de trouver la capacité du transitmaximal entre la source et le puits.La capacité d’un arcu sera notéec(u), et le flot attribué à cet arc sera notéϕ(u).

Le réseau de transport ne doit pas générer l’apparition d’unflot venu de nulle part. Donc pour tous lessommets il faut verifier que la somme des flots sortants est égale à la somme des flots entrants.

∀x ∈ X on a∑

u/I(u)=x

ϕ(u) =∑

u′/T (u′)=x

ϕ(u′)

Pour que cette propriété soit vraie y compris pour le puits etla source, il faut placer un arc allant dupuits vers la source. Même si par la suite cet arc ne sera généralement pas représenté sur les graphes de cecours, il faudra imaginer sa présence, et surtout vérifier lapropriété sous-jacente : le flot arrivant au puitsvaut celui sortant de la source.

5.3 Exemple de problème

Pour illustrer ce chapitre, imaginons un exemple :

Un producteur de betteraves de Picardie décide de faire circuler sa production d’Épénancourt jusqu’àMaizy. Il veut profiter pour cela du réseau de voies navigables. Après s’être renseigné, il sait qu’il a lacapacité de faire circuler deux péniches par jour entre Épénancourt et Maizy sur le canal qui passe parNoyon et Quierzy. Mais en profitant du canal qui passe par Chauny, il peut aussi faire circuler deux pénichessupplémentaires entre Épénancourt et Quierzy. De plus à partir de Noyon, il a possibilité de faire passer versMaizy une péniche de plus en utilisant le canal qui passe par Venizel (voir figure 5.1).

On va déterminer combien de péniches ce producteur peut faire passer chaque jour.

Eric LALLET , Jean-Luc RAFFY 45

Page 54: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Épénancourt

Noyon

Quierzy

Maizy2 2 2

2

1

FIG. 5.1 – Capacités de transport entre Épénancourt et Maizy

5.4 L’algorithme de Ford-Fulkerson

5.4.1 Introduction

L’algorithme de Ford-Fulkerson part d’un graphe avec un premier flot établi. Ce premier flot est quel-conque, il peut même être nul. Mais pour diminuer le nombre d’itérations mieux vaut essayer de faire passer«au jugé» le meilleur flot possible. Ensuite on va déterminerdans quelle mesure ce flot peut être amélioré.Pour cela on va répéter de façon cyclique trois phases :

1. Le marquage du graphe : on va faire utiliser un premier algorithme pour marquer le graphe. Cemarquage permettra de trouver un chemin où le flot peut être augmenté, si un tel chemin existe.

2. Le calcul de l’amélioration : si on a réussi à marquer un chemin, on détermine ensuite le gain quel’on peut obtenir sur le flot grâce à celui-ci.

3. L’augmentation du flot : enfin, avant de reboucler sur le marquage, on augmente le flot du graphe dugain calculé à la phase 2.

5.4.2 Le marquage du graphe

Cette première phase va permettre soit de trouver un chemin non saturé allant de sourceS au puitsP ,soit de trouver une chaîne permettant de dérouter une partiedu flot pour désaturer un arc au profit d’un flotparallèle. Pour cela on va construire «une chaîne améliorante» allant deS àP .

Algorithme 5.1 (Algorithme de Ford-Fulkerson : phase du marquage)

1. Marquer la sourceS d’une *.

2. Pour tout sommetx marqué :– s’il existe des arcs(x, y), avec y non marqué tel queϕ(x, y) < c(x, y) marquery par+x.– s’il existe des arc(y, x), avec y non marqué tel queϕ(y, x) > 0 marquery par−x.

3. Tant queP n’est pas marqué et qu’il est possible de marquer d’autres sommets, retourner en 2.Sinon FIN.

A fin du marquage, si le puitsP n’est pas marqué, le flot est déjà à son maximum. Sinon, il peutêtreamélioré. On calcule alors la valeur du gain grâce à l’algorithme de la seconde phase.

5.4.3 Le calcul du gain

La marquage a créé une «chaîne améliorante»C allant de la source au puits composée d’arcs parcourusdans le bon sens (orientation directe), d’arcs parcourus à contre sens (orientation inverse)

On va appeléC+, l’ensemble des arcs d’orientation directe de la chaîne améliorante, etC−, l’ensembledes arcs d’orientation inverse. On a doncC = C+ ∪ C−.

Les arcs deC+ sont des arcs non-saturés sur lesquels il va être possible defaire passer un flot supplé-mentaire. Les arcs deC− sont des arcs sur lesquels il existe déjà un flot que l’on va pouvoir rediriger pouraugmenter le flot des arcs deC+. Il faut calculer ce flot supplémentaire.

Soit δ+ = min(c(u)− ϕ(u)) ∀u ∈ C+. C’est le flot maximal que l’on peut rediriger vers les arcs deC+ avant de saturer l’un d’entre eux.

46 Eric LALLET , Jean-Luc RAFFY

Page 55: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Soit δ− = min(ϕ(u)) ∀u ∈ C−. C’est le flot maximal que peut puiser dans les arcs deC− avantd’épuiser l’un d’entre eux.

Le gain que l’on peut gagner sur le flot grâce à la chaîne amélioranteC est doncδ = min(δ+, δ−).

L’algorithme pour calculer ce gain part du puits, et remontela chaîne jusqu’à la source :

Algorithme 5.2 (Algorithme de Ford-Fulkerson : Calcul du gain)

1. Poserg ←∞ etx← P

2. – six est marqué+y alorsg ← min(g, c(y, x)− ϕ(y, x)).– six est marqué−y alorsg ← min(g, ϕ(x, y))

x← y.

3. Six = S alors FIN

Sinon aller en 2.

Une fois ce gain évalué, il faut le reporter sur le flot du graphe.

5.4.4 L’augmentation du flot

Maintenant que l’on connaît la valeur du gain, il suffit de reparcourir la chaîne améliorante comme onvient de le faire, mais cette fois ci, en ajoutant le flot aux arc deC+, et en le prélevant sur les arcs deC−.

Algorithme 5.3 (Algorithme de Ford-Fulkerson : Augmentation du flot)

1. Poserx← P

2. – six est marqué+y alors augmenterϕ(y, x)) deg.– six est marqué−y alors diminuerϕ(x, y)) deg.

x← y.

3. Six = S alors FIN

Sinon aller en 2.

5.5 Exemple de flot max

Reprenons l’exemple de la figure 5.1. Pour accélérer le calcul de la solution, on va déjà considérer qu’unflot de deux péniches emprunte le canal direct Épénancourt, Noyon, Quierzy, Maizy. Si on garde ces deuxpéniches ainsi, il n’est pas possible d’en faire passer par le canal Épénancourt-Quierzy puisqu’au delà deQuierzy le canal est saturé. Et il n’est pas possible de profiter du canal Noyon-Maizy, puisque la section quimène à Noyon est saturée (Voir Figure 5.2).

FIG. 5.2 – Ford-Fulkerson : Établissement d’un flot au jugé

On va donc utiliser l’algorithme de Ford-Fulkerson pour voir s’il est possible de faire mieux que cesdeux péniches. On débute par la phase de marquage.

– La source Épénancourt est marquée d’une *.– Seul Épénancourt est marqué. L’arc Épénancourt-Quierzy n’est pas saturé, donc on marque Quierzy

avec «+Épénancourt». Aucun arc n’arrive sur Épénancourt, donc aucun sommet ne peut être marquéde «-Épénancourt».

Eric LALLET , Jean-Luc RAFFY 47

Page 56: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– Quierzy est marqué. Tous les arcs partant de Quierzy sont saturés. Donc aucun sommet ne peut êtremarqué «+Quierzy». Par contre l’arc qui arrive de Noyon a un flot non nul, et Noyon n’est pas encoremarqué, donc on marque Noyon avec «-Quierzy».

– Noyon est marqué. Son seul voisin non marqué est Maizy. L’arc qui va de Noyon à Maizy n’est passaturé. On peut donc marquer Maizy avec «+Noyon».

– Le puits Maizy est marqué, on arrête le marquage (voir Figure 5.3).

Épénancourt

Noyon

Quierzy

Maizy2/2 2/2 2/2

0/2

0/1

* +Épénancourt

−Quierzy

+Noyon

FIG. 5.3 – Ford-Fulkerson : Premier marquage

On peut maintenant calculer le gain qu’il est possible d’ajouter au flot grâce à la chaîne amélioranteque l’on vient de marquer. Pour cela on démarre du puits (Maizy) et on remonte le marquage de la chaînejusqu’à la source (Épénancourt).

– g ←∞ etx←Maizy– Maizy est marqué par «+Noyon». La capacité de l’arc Noyon-Maizy est de1 et son flot de0. Donc

g = min(∞, 1− 0) = 1.x← Noyon.

– Noyon est marqué de «-Quierzy». Le flot de l’arc Noyon-Quierzy est de2. Doncg = min(1, 2) = 1.x← Quierzy.

– Quierzy est marqué «+Épénancourt». La capacité de l’arc Épénancourt-Quierzy est de2 et son flotde0. Doncg = min(1, 2− 0) = 1.x← Épénancourt.

– x est vaut la source, on arrête l’algorithme ici. Le gain possible grâce à cette chaîne est donc de1.

Donc, cette itération nous permet de faire passer une troisème péniche dans le flot. On va reporter ce gainsur les flots du graphe. On reparcourt la même chaîne en ajoutant le gain lorsqu’on remonte un marquage«+» et en prélevant lorsqu’on remonte un marquage «-».

– x←Maizy– Maizy est marqué par «+Noyon». Le flot de l’arc Noyon-Maizy était de0. On l’augmente de1. Il

passe donc à1.x← Noyon.

– Noyon est marqué de «-Quierzy». Le flot de l’arc Noyon-Quierzy était de2. On le diminue de1. Ilpasse donc à1.x← Quierzy.

– Quierzy est marqué «+Épénancourt». Le flot de l’arc Épénancourt-Quierzy était de0. On l’augmentede1. Il passe donc à1.x← Épénancourt.

– x est la source, on arrête l’algorithme ici (Voir figure 5.4).

Épénancourt

Noyon

Quierzy

Maizy2/2 1/2 2/2

1/2

1/1

* +Épénancourt

−Quierzy

+Noyon

FIG. 5.4 – Ford-Fulkerson : Augmentation du flot

L’exemple est simple et une seule itération a suffit à saturertous les canaux arrivants à Maizy. Doncon sait que le flot est maximal. Mais on va quand même continuerl’algorithme de Ford-Fulkerson pourmontrer que dans ce cas on ne trouve plus de chaîne améliorante.

48 Eric LALLET , Jean-Luc RAFFY

Page 57: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

On recommence la phase de marquage.

– La source Épénancourt est marquée d’une *.– Seul Épénancourt est marqué. L’arc Épénancourt-Quierzy n’est pas saturé, donc on marque Quierzy

avec «+Épénancourt». Aucun arc n’arrive sur Épénancourt, donc aucun sommet ne peut être marquéde «-Épénancourt».

– Quierzy est marqué. Tous les arcs partant de Quierzy sont saturés. Donc aucun sommet ne peut êtremarqué «+Quierzy». Par contre l’arc qui arrive de Noyon a un flot non nul, et Noyon n’est pas encoremarqué, donc on marque Noyon avec «-Quierzy».

– Noyon est marqué. Son seul voisin non marqué est Maizy. L’arc qui va de Noyon à Maizy est saturé.On ne peut donc pas marquer Maizy.

– Plus aucun marquage n’est possible, le puits n’est pas marqué. Il n’existe plus de chaîne améliorante(voir Figure 5.5).

Épénancourt

Noyon

Quierzy

Maizy2/2 1/2 2/2

1/2

1/1

* +Épénancourt

−Quierzy

FIG. 5.5 – Ford-Fulkerson : Deuxième marquage, et fin de l’algorithme

Notre cultivateur pourra donc faire passer 3 péniches par jour entre Épénancourt et Maizy.

Comme on vient de le voir dans cette exemple, le flot max sera toujours au mieux égal à la capacité quisort le source ou qui arrive dans le puits :

ϕmax ≤ min(∑

u∈ω+(source)

c(u),∑

u′∈ω−(puits)

c(u′))

5.6 Flot maximal à coût minimal

On va ajouter une composante à notre problème : le coût du transit. Donc maintenant le grapheG =[X, U ] va être doublement valué. Chaque arcu est muni d’une capacitéc(u) mais aussi d’un coût unitairede transita(u). Donc si le flot transitant par l’arcu estϕ(u), le coût de transit de ce flot par cet arc estϕ(u)× a(u). Dans ces conditions, le coût global du flot sur tout le grapheest :

coût global=∑

u∈U

ϕ(u)× a(u)

Dans un premier temps, le problème que l’on va résoudre consiste à trouver quel est le coût minimalpour faire passer le flot maximal (calculé précédemment par l’algorithme de Ford-Fulkerson)

Pour cela on va utiliser l’algorithme de Busacker et Gowen.

5.7 L’algorithme de Busacker et Gowen

Cet algorithme utilise de façon itérative la recherche d’unplus court chemin pour trouver où faire passerun flot à moindre coût. Flot après flot, on va saturer le graphe jusqu’à atteindre le coût ou le flot fixé. Àchaque fois qu’on va ajouter un flot, cela va saturer des arcs ou éventuellement en libérer d’anciens quiétaient saturés. Il va donc falloir à chaque étape construire un nouveau graphe associé qui représentera lesvéritables capacités restantes une fois pris en compte les flots déjà envoyés.

Regardons comment construire ce graphe associé :

Soit le grapheG = [X, U ] oùc(u) est la capacité de transit de l’arcu, eta(u) le coût de transit unitairede cet arc. On noteraϕ(u) le flot qui transit sur l’arcu.

Eric LALLET , Jean-Luc RAFFY 49

Page 58: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Le graphe associé seraG′ = [X, U ′] avecc′(u) la capacité de transit,a′(u) le coût de transit unitaire.On le construit de la façon suivante :

– Pour tout arc(x, y) ∈ U tel queϕ(x, y) < c(x, y) ajouter un arc(x, y) dansU ′ avecc′(x, y) =c(x, y)− ϕ(x, y) eta′(x, y) = a(x, y).

– Pour tout arc(x, y) ∈ U tel queϕ(x, y) > 0 ajouter un arc(y, x) dansU ′ avecc′(y, x) = ϕ(x, y) eta′(y, x) = −a(x, y).

Pour la première version de l’algorithme de Busacker et Gowen, on se fixe le but d’atteindreϕmax,la valeur du flot maximal qui peut transiter sur ce graphe (valeur calculée grâce à l’algorithme de Ford-Fulkerson).S est sommet source etP le sommet puits.

Algorithme 5.4 (Algorithme de Busacker et Gowen)

a) On part avec le graphe vierge de tout flot (ϕ(u) = 0 ∀u ∈ U ), et on poseϕ = 0.

b) Calculer le grapheG′ associé àG.

c) Chercher surG′ un plus court cheminPCCH deS à P , la longueur des arcs étant le coût de transit(avec l’algorithme de Ford-Moore).

d) Calculer∆ϕ, la valeur de flot pouvant transiter parPCCH .

∆ϕ = Min(c′(u))u∈PCCH

e) Pour tout arc(x, y) ∈ PCCH– Si l’arc (x, y) ∈ U alors faireϕ(x, y)← ϕ(x, y) + ∆ϕ.– Sinon faireϕ(y, x)← ϕ(y, x) −∆ϕ.

f) ϕ← ϕ + ∆ϕ.Si ϕ = ϕmax alors FINSinon allez en «b».

5.8 Exemple flot max coût min

Pour illustrer cet algorithme, prenons le graphe de la figure5.6.

S PB C

Ac(u)

a(u)

3

100 3

500

2

200

2

100 3

100

2

100

2

300

FIG. 5.6 – Busacker et Gowen : le graphe exemple

Avant d’utiliser Busacker et Gowen, on va calculer le flot maximal de ce graphe. Pour cela on commencepar lancer deux flots au jugé : le premier de 2 unités par le chemin S → B → C → P et le second de 3unités par le cheminS → A→ P (voir la figure 5.7).

Comme la capacité maximale de la source est saturée avec les 5unités envoyées, on sait que l’on a leflot maximal.

On peut maintenant commencer l’algorithme de Busacker et Gowen :

1. a) On démarre avec les flots à0 et avecϕ = 0. Le ϕmax à atteindre est de 5.

b) Comme les flots sont nuls, le graphe associé est exactementle même que le graphe de référence(celui de la figure 5.6).

50 Eric LALLET , Jean-Luc RAFFY

Page 59: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

S PB C

A

3/3

100

3/3

500 2

200

2/2

100

2/3

100 2/2

100

2

300

FIG. 5.7 – Flots au jugé

c) On recherche le plus court chemin (au sens du coût) de S à P sur ce graphe. On trouve le cheminS → B → C → P (pour une «longueur» de 300).

d) ∆ϕ = Min(c(S, B), c(B, C), c(C, P )) = Min(2, 3, 2) = 2

Le coût de ce premier flot est donc de2× longueur(S → B → C → P ) = 2× 300 = 600.

e) On ajoute ce flot au graphe d’origine (voir figure 5.8).

f) ϕ← ϕ + ∆ϕ = 0 + 2 = 2

ϕ < ϕmax donc on refait une itération de l’algorithme de Busacker et Gowen.

2. b) On calcule le nouveau graphe associé. Seul l’axeS → B → C → P évolue : les arcsS → Bet C → P saturés disparaissent du graphes. La capacité de l’arcB → C tombe à1. Et les arcsP → C, C → B et B → S apparaissent avec un coût de−100 et une capacité de2 (voir figure5.8).

FIG. 5.8 – Busacker et Gowen : deuxième itération

c) Le nouveau plus court chemin de S à P sur ce graphe estS → A → C → B → P (pour unelongueur de 500 ; attention àC → B qui a une longueur négative de -100).

d) ∆ϕ = Min(c(S, A), c(A, C), c(C, B), c(B, P )) = Min(3, 2, 2, 2) = 2.Le coût de ce second flot est donc2× longueur(S → A→ C → B → P ) = 2× 500 = 1000.

e) On ajoute ce flot au graphe d’origine (voir figure 5.9).

f) ϕ← ϕ + ∆ϕ = 2 + 2 = 4

ϕ < ϕmax donc on refait une itération de l’algorithme de Busacker et Gowen.

3. b) On calcule le nouveau graphe associé. Plutôt que de repartir de zéro, on peut prendre pour basele dernier graphe associé (celui de la figure 5.8) et ajouter dessus notre nouveau flot. Donc sur lechemin de ce flot, l’arcS → A perd2 sur sa capacité, et un arcA→ S apparaît avec une capacitéde2 et un coût de−100. Ensuite l’arcA → C disparaît, mais un arcC → A apparaît avec unecapacité de 2 et coût de−200. L’arc B → C retrouve une capacité de3 et l’arc C → B quiétait apparu sur le premier graphe associé n’existe plus. Enfin l’arc B → P disparaît mais un arcP → B apparaît avec une capacité de2 et un coût de−300 (voir figure 5.9).

c) Le nouveau plus court chemin de S à P sur ce graphe estS → A → P (pour une longueur de600).

d) ∆ϕ = Min(c(S, A), c(A, P )) = Min(1, 3) = 1.Le coût de ce troisième flot est donc1× longueur(S → A→ P ) = 1× 600 = 600.

Eric LALLET , Jean-Luc RAFFY 51

Page 60: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 5.9 – Busacker et Gowen : troisième itération

e) On ajoute ce flot au graphe d’origine (voir figure 5.10).

f) ϕ← ϕ + ∆ϕ = 4 + 1 = 5

ϕ = ϕmax. On a donc atteint notre objectif et l’algorithme se finit là.

S PB C

A

3/3

1001/3

500

2/2

200

2/2

100 3

100

2/2

100

2/2

300

FIG. 5.10 – Busacker et Gowen : le flot maximal à coût minimum

L’algorithme s’est fini en trois itérations. Le premier flot aun coût de 600, le deuxième de 1000 et ledernier de 600. Donc le coût total de notre flot est de 2200.

5.9 Variantes

Il est possible de changer la condition de fin de l’algorithmede Busacker et Gowen.

On peut décider d’arrêter pour tout flot inférieur au flot maximal. On peut donc trouver ainsi le coûtminimal pour tout flot compris entre 0 et le flot maximal.

On peut aussi décider d’arrêter lorsqu’on a atteint un coût fixé. On peut alors trouver le flot maximalque l’on peut faire passer pour un coût donné. Dans ce cas, il faut aussi vérifier à chaque itération que l’ona pas atteint le flot maximal. Si tel est le cas, cela signifie que l’on peut faire passer le flot maximal pour uncoût inférieur ou égal au coût donné.

5.10 Exercices

Exercice 5.1 (Cursus de formation)

Un organisme qui vend des formations sous-traite ses enseignements dans trois écoles. Une formationqu’elle propose à son catalogue nécessite la validation destrois unités de valeur (UV1, UV2, etUV3). Il fautavoir validé l’UV1 pour suivre l’UV2, et avoir validé l’UV2 pour suivre l’UV3.

La deuxième école a des accords d’équivalence avec les deux autres. Elle peut recevoir des élèves ayantvalidés desUV dans les deux autres écoles, et ses élèves peuvent aussi continuer leur cursus dans les deuxautres écoles.

52 Eric LALLET , Jean-Luc RAFFY

Page 61: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

La troisième école a réuni lesUV2 et UV3 au sein d’un seul module indivisible. Voici le tableau desdates, capacités (en nombre d’élèves) et coût (en k euros/élève) pour les différentesUV et école.

UV1 UV2 UV3

Début :1er septembre Début : 10 décembre Début :1er févrierPremière Fin : 30 novembre Fin : 15 février Fin : 15 mai

école Capacité : 40 Capacité : 20 Capacité : 25Coût : 10 k euros Coût : 10 k euros Coût : 15 k eurosDébut :1er octobre Début : 5 janvier Début :1er avril

Seconde Fin : 15 décembre Fin : 15 mars Fin : 15 juinécole Capacité : 30 Capacité : 35 Capacité : 30

Coût : 8 k euros Coût : 8 k euros Coût : 8 k eurosDébut : 15 octobre Début : 20 janvier

Troisième Fin : 15 janvier Fin : 15 juinécole Capacité : 20 Capacité : 35

Coût : 13 k euros Coût : 20 k euros

À première lecture, la première école peut former 20 élèves,la seconde 30 et la troisième 20. Doncon pourrait former 70 élèves. Mais en profitant des équivalences entre la seconde école et les deux autres,l’organisme de formation doit pouvoir proposer mieux. Combien de formations peut-elle proposer cetteannée ?

Correction page 128.

Exercice 5.2 (Cursus de formation (suite))

Finalement l’organisme de formation a reçu une demande pour63 formations. Quel cursus l’organismedoit proposer à ces 63 élèves pour obtenir ces formations à moindre prix ?

Correction page 130.

Eric LALLET , Jean-Luc RAFFY 53

Page 62: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

54 Eric LALLET , Jean-Luc RAFFY

Page 63: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Deuxième partie

Programmation linéaire

Eric LALLET , Jean-Luc RAFFY 55

Page 64: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE
Page 65: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 6

La programmation linéaire

6.1 Introduction

Un des problèmes le plus classique en gestion consiste à optimiser un gain, un coût, ou toutes autresvaleurs fonctions de nombreux paramètres. De plus ces paramètres ne peuvent généralement pas être fixésà volonté, mais sont soumis à des contraintes.

La valeur à optimiser et les contraintes sont très souvent des fonctions linéaires des paramètres. Il existealors diverses techniques pour résoudre ce problème. Nous allons présenter deux d’entre elles : la méthodegéométrique et le simplexe.

6.2 La forme canonique

L’objectif de la programmation linéaire est de trouver la valeur optimale d’une fonction linéaire souscontraintes linéaires. La fonction à optimiser est baptisée fonction coût ou fonction économique. On lanomme généralementZ.

Un problème de programmation linéaire se modélise de la façon suivante :

Soit la fonction économique Z que l’on souhaite optimiser (maximiser ou minimiser).

Z = C1 ×X1 + C2 ×X2 + ... + Cn ×Xn

où lesXi sont des variables qui influent sur la valeur deZ, et lesCi les poids respectifs de ces variablesmodélisant l’importance relative de chacune de ces variables sur la valeur de la fonction économique.

Les contraintes relatives aux variables s’expriment de la façon suivante :

A1.1 ×X1 + A1.2 ×X2 + . . . + A1.n ×Xn ≤ B1

A2.1 ×X1 + A2.2 ×X2 + . . . + A2.n ×Xn ≥ B2

...Am.1 ×X1 + Am.2 ×X2 + . . . + Am.n ×Xn ≤ Bm

avecXi ≥ 0 ∀i

Le modèle ci-dessus contient des contraintes de type «≤» et d’autres de type «≥». Cependant lorsqu’onvoudra résoudre un problème, la première étape consistera àle modéliser sous une forme dite «canonique».Pour un problème de maximisation la forme canonique se décrit qu’avec des contraintes de type «≤» etpour un problème de minimisation la forme canonique se décrit qu’avec des contraintes de type «≥». Silors de la modélisation des contraintes de l’autre type sontapparues, il suffit de multiplier par−1 les deuxmembres pour renverser l’opérateur.

Eric LALLET , Jean-Luc RAFFY 57

Page 66: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

La forme canonique d’un problème de type maximisation est :

Trouver la valeur maximale deZ pour :

Z = C1 ×X1 + C2 ×X2 + ... + Cn ×Xn

A1.1 ×X1 + A1.2 ×X2 + . . . + A1.n ×Xn ≤ B1

A2.1 ×X1 + A2.2 ×X2 + . . . + A2.n ×Xn ≤ B2

...Am.1 ×X1 + Am.2 ×X2 + . . . + Am.n ×Xn ≤ Bm

avecXi ≥ 0 ∀i

La forme canonique d’un problème de type minimisation est :

Trouver la valeur minimale deZ pour :

Z = C1 ×X1 + C2 ×X2 + ... + Cn ×Xn

A1.1 ×X1 + A1.2 ×X2 + . . . + A1.n ×Xn ≥ B1

A2.1 ×X1 + A2.2 ×X2 + . . . + A2.n ×Xn ≥ B2

...Am.1 ×X1 + Am.2 ×X2 + . . . + Am.n ×Xn ≥ Bm

avecXi ≥ 0 ∀i

Nous allons dans un premier temps nous intéresser au problème de type maximisation

6.3 Exemple

Pour illustrer les deux prochains chapitres nous allons modéliser jusqu’à la forme canonique un exemple :

Un atelier d’ébénisterie a obtenu un contrat de sous-traitance de meubles pour deux modèles de bi-bliothèques. Ces deux modèles utilisent du chêne et du hêtrepour être fabriqués. Le modèle «petit chêne»utilise 2 stères de chêne et4 stères de hêtre. Le modèle «grand hêtre» utilise8 stères de hêtre et1 stère dechêne. La construction des 2 modèles nécessite10 heures de travail chacun. La marge obtenu sur le modèle«petit chêne» est de600 euros, et celle sur le modèle «grand hêtre» de400 euros.

Sachant que cet atelier dispose chaque année d’un stock de8.000 stères de hêtre et2.000 stères dechêne, et qu’il peut fournir12.500 heures de travail, quelle quantité de chaque modèle doit-ilproduire pouroptimiser sa marge ?

La première étape du problème est la modélisation.

Il faut en général commencer par trouver la fonction économique. Cela permet de définir les variablesdu problème. Pour notre exemple, en appelantM1 le nombre de modèles «petit chêne» etM2 le nombre demodèles «grand hêtre» fabriqués, la marge dégagée par l’atelier sera de600×M1 +400×M2 euros. Doncla fonction économique à maximiser est :

Z = 600×M1 + 400×M2 (unité : euro)

.

Mais l’atelier ne peut pas produire à l’infini ces deux modèles. Il est limité par ses stocks de bois et sonvolume horaire de travail. Le stock de chêne est de2.000 stères, il en faut2 pour le modèleM1 et1 pour lemodèleM2. Donc on obtient la contrainte suivante :

2×M1 + M2 ≤ 2000

Avec le même raisonnement sur les stères de hêtre il faut respecter la contrainte :

4×M1 + 8×M2 ≤ 8000

Enfin, il faut10 heures de travail pour chaque meuble, et l’atelier en dispose de12.500, donc :

10×M1 + 10×M2 ≤ 12500

58 Eric LALLET , Jean-Luc RAFFY

Page 67: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Donc en résumé on obtient le modèle suivant :

Z = 600×M1 + 400×M2

avec

2×M1 + M2 ≤ 20004×M1 + 8×M2 ≤ 800010×M1 + 10×M2 ≤ 12500M1 ≥ 0 etM2 ≥ 0

Eric LALLET , Jean-Luc RAFFY 59

Page 68: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

60 Eric LALLET , Jean-Luc RAFFY

Page 69: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 7

La méthode géométrique

7.1 Introduction

Dans ce chapitre nous allons décrire la méthode géométrique. Pour les cas simples (c’est à dire, géné-ralement pas plus de deux variables une fois le modèle simplifié), sa mise en œuvre est très facile et rapide.De plus elle permettra plus tard dans ce cours d’illustrer lecomportement des autres méthodes, et ainsi dedonner une compréhension intuitive des algorithmes.

7.2 La méthode

La méthode géométrique consiste à matérialiser dans un espace àn (le nombre de variables de la fonc-tion économique) dimensions les contraintes sur les variables. Ensuite on représente dans cet espace lafonction économique, et on essaie de faire monter «Z» jusqu’au maximum possible tout en restant dansl’espace limité par les contraintes.

Cette méthode s’applique facilement lorsque le nombre de dimensions est réduit, car dans ce cas lareprésentation géométrique est facile, mais dès que ce nombre est important (plus de 3), cette méthode n’estplus envisageable.

L’exemple de la section précédente utilise 2 variables. On peut donc l’appliquer. Notre espace est justeun plan. On va mettre sur l’axex (horizontal) la variableM1 est sur l’axey (vertical) la variableM2.Comme on sait que l’on doit avoirM1 ≥ 0 et M2 ≥ 0, la solution de notre problème se trouve dans lepremier quadrant (le quart haut droit) de notre espace (voirfigure 7.1.)

Il faut maintenant mettre en place les trois autres contraintes. Pour indiquer que2 × M1 + M2 ≤2000, il faut tracer la droite2 × M1 + M2 = 2000 et supprimer de l’espace de solution tout ce qui setrouve au dessus. On fait de même pour les deux autres contraintes (droites4 ×M1 + 8 ×M2 = 8000 et10×M1 + 10×M2 = 12500). On obtient le schéma de la figure 7.2.

Maintenant que l’on a cerné l’espace des possibilités, il faut trouver le (ou les) point(s) qui nousdonne(nt) la plus grande valeur pour la fonction économiqueZ = 600 × M1 + 400 × M2. Pour celaon va commencer par dessiner la droite avecZ = 0, et on va faire glisser cette droite jusqu’à faire monterZ au maximum tout en restant dans l’espace de solution. Quand on aura atteint ce maximum, le (ou les)point(s) commun(s) à la droite et l’espace des solutions sera notre optimum (voir figure 7.3).

Il reste alors à interpréter le résultat. Sur le schéma, lorsqu’on a fait monterZ, l’ultime point communentreZ et l’espace des solutions admissibles était pourM1 = 750 et M2 = 500. Donc la solution quiapporte la plus grande marge possible à notre atelier consiste à construire750 bibliothèques «petit chêne»et500 bibliothèques «grand hêtre». Sa marge sera alors de750× 600 + 500× 400 = 650.000 euros.

Eric LALLET , Jean-Luc RAFFY 61

Page 70: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 7.1 – Espace possible pourM1 etM2 positifs

FIG. 7.2 – Espace des «solutions admissibles» après prise en compte des contraintes

7.3 Conclusion

Très simple à utiliser cette méthode atteint vite ses limites pour des problèmes correspondant aux casréels. En dehors des cas d’école, il est rare de pouvoir construire une modèle avec seulement deux variables.Et quand ce n’est pas le cas, il faut alors utiliser d’autres méthodes. Le chapitre suivant présente une desméthodes les plus utilisées, car très performante : le simplexe.

62 Eric LALLET , Jean-Luc RAFFY

Page 71: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. 7.3 – Recherche du Z optimum

7.4 Exercices

Voir les exercices 8.1 et 8.2 page 74.

Eric LALLET , Jean-Luc RAFFY 63

Page 72: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

64 Eric LALLET , Jean-Luc RAFFY

Page 73: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 8

Le simplexe

8.1 Introduction

Le méthode du simplexe a été mise au point par Georges Dantzigdans les années 1950. Elle implémenteune heuristique qui permet dans une très grande majorité descas d’atteindre l’optimum du problème trèsrapidement. Son principe consiste à parcourir un chemin surles frontières du domaine des solutions ad-missibles, en s’approchant à chaque étape un peu plus de l’optimum. L’heuristique essaye de trouver parmitous les chemins un qui soit très court.

8.2 La forme standard et son tableau associé

L’algorithme du simplexe sert à résoudre un problème de programmation linéaire de type maximisationqui s’exprime sous la forme canonique suivante :

Il faut trouver le maximum d’une fonction économiqueZ exprimée par :

Z = C1 ×X1 + C2 ×X2 + ... + Cn ×Xn

en respectant les contraintes :

A1.1 ×X1 + A1.2 ×X2 + . . . + A1.n ×Xn ≤ B1

A2.1 ×X1 + A2.2 ×X2 + . . . + A2.n ×Xn ≤ B2

...Am.1 ×X1 + Am.2 ×X2 + . . . + Am.n ×Xn ≤ Bm

Xj ≥ 0 ∀j

Pour résoudre ce problème, on va commencer par transformer les inégalités en égalités en introduisantune variable «d’écart» positive ou nulle pour chacune des contraintes. Par exemple avec une nouvelle va-riableE1, on peut transformer l’inégalitéA1.1 ×X1 + A1.2 ×X2 + . . . + A1.n ×Xn ≤ B1 pour la fairedevenir l’égalitéA1.1 ×X1 + A1.2 ×X2 + . . . + A1.n ×Xn + E1 = B1.

Avec lesm variables d’écart, notre problème devient :

AvecXj ≥ 0 ∀j etEi ≥ 0 ∀i, trouver le maximum deZ pour :

A1.1 ×X1 + A1.2 ×X2 + . . . + A1.n ×Xn + E1 = B1

A2.1 ×X1 + A2.2 ×X2 + . . . + A2.n ×Xn + E2 = B2

...Am.1 ×X1 + Am.2 ×X2 + . . . + Am.n ×Xn + Em = Bm

C1 ×X1 + C2 ×X2 + ... + Cn ×Xn = Z

Ceci est la forme standard du problème.

Eric LALLET , Jean-Luc RAFFY 65

Page 74: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Avant de mettre en œuvre l’algorithme du simplexe on transforme ces équations sous la forme d’untableau qui auran + m + 2 colonnes, etm + 2 lignes :

– La première ligne contiendra le nom de nos colonnes.– Il y aura une ligne pour chacune des équations1 àm.– La dernière ligne sert pour la fonction économique.– La première colonne sert à connaître ce qu’on va appeler les«variables en base». Au début on y

placera la variable d’écartEi de la ligne. Les variables qui ne seront pas dans cette colonne seront«hors base».

– Ensuite on placen colonnes, une pour chaque variableXj .– Ensuite on placem colonnes, une pour chaque variableEi.– Enfin on place une dernière colonne qui contiendra la somme de chaque ligne (Bi).– Enfin la valeur «Somme» de la ligne∆j est initialisée avec 0 (sauf exception expliquée plus loin).

Donc le tableau obtenu est le suivant :

X1 X2 . . . Xn E1 E2 . . . Em SommeE1 A1.1 A1.2 . . . A1,n 1 0 0 0 B1

E2 A2.1 A2.2 . . . A2,n 0 1 0 0 B2

...Em Am.1 Am.2 . . . Am,n 0 0 0 1 Bm

∆j C1 C2 . . . Cn 0 0 0 0 0

Avant d’aller plus loin, décryptons le sens de ce tableau. Tout le long de l’algorithme du simplexe cetableau va donner des solutions (de plus en plus optimales pour la valeur deZ) du système d’équationsde la forme standard. Dans cette solution toutes les variables hors base ont une valeur nulle. La valeur desvariables en base se lit dans la dernière colonne (la colonne«Somme»). Enfin le∆j de la colonne «Somme»donne l’opposé de la valeur deZ. Donc ce premier tableau du simplexe donne la solution de départ qui vaservir à amorcer l’algorithme du simplexe : toutes les variablesXi sont à0, toutes les variables d’écartEi

valent leBi de leur ligne d’équation et la valeur deZ est 01.

Sur ce tableau la dernière ligne (∆j) donne les gains (ou les coûts, si la valeur est négative) marginauxdes variables de leur colonne. Autrement dit, elle permet desavoir de combien va augmenter (ou diminuersi la valeur est négative) la valeur deZ si on augmente de1 la variable de cette colonne. Par exemple,si on arrive à trouver une solution admissible qui augmente de 1 la valeur deX2, alors la valeur deZ vaaugmenter deC2.

Revenons à l’exemple de l’atelier d’ébénisterie de la section 6.3, et construisons son tableau pour lesimplexe :

Z = 600×M1 + 400×M2 (unité : euro)

avec

2×M1 + M2 ≤ 20004×M1 + 8×M2 ≤ 800010×M1 + 10×M2 ≤ 12500M1 ≥ 0 etM2 ≥ 0

Mis sous la forme standard, avec l’ajout de 3 variables d’écartsE1, E2 etE3 telles que :– E1 désigne le nombre de stères de chêne qui restent sans usage pour la solution courante.– E2 désigne le nombre de stères de hêtre qui restent sans usage pour la solution courante.– E3 désigne le nombre d’heures de travail qui restent sans usagepour la solution courante.

1Certains problèmes donnent un modèle où cette solution de départ n’est pas admissible car certainsBi sont négatifs. Il faut alorstrouver un autre point de départ. Nous verrons dans le chapitre 10 page 81 comment le trouver. D’autre part, dans certainscas, lavaleur deZ de la solution initiale n’est pas nulle, il faut alors mettrel’opposé de cette valeur dans le∆j de la colonne «Somme».

66 Eric LALLET , Jean-Luc RAFFY

Page 75: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

2×M1 + M2 + E1 = 20004×M1 + 8×M2 + E2 = 800010×M1 + 10×M2 + E3 = 12500600×M1 + 400×M2 = Z

Ce qui donne le tableau :

M1 M2 E1 E2 E3 Somme

E1 2 1 1 0 0 2000E2 4 8 0 1 0 8000E3 10 10 0 0 1 12500

∆j 600 400 0 0 0 0

8.3 L’algorithme du simplexe

Pour décrire cet algorithme, on va noter le tableau du simplexe sous la forme suivante2 :

x1 x2 . . . xj . . . xp Sommey1 a1,1 a1,2 . . . a1,j . . . a1,p SM1

...yi ai,1 ai,2 . . . ai,j . . . ai,p SMi

...ym am,1 am,2 . . . am,j . . . am,p SMm

∆ ∆1 ∆2 . . . ∆j . . . ∆p Res

Dans ce tableau la colonne des variablesyi est appelé la base. Au cours de l’algorithme certaines va-riablesxi vont pivoter et vont venir se mettre en base. Au tout début de l’algorithme les variables de basesont lesm variables d’écart.

L’algorithme du simplexe est un algorithme itératif qui à chaque tour va trouver une nouvelle solutionqui augmente la valeur deZ jusqu’à ce qu’on ne puisse plus l’améliorer. Chaque tour de cet algorithme sepasse en deux grandes étapes.

– La recherche du pivot (grâce à une heuristique qui permet généralement de converger rapidement versla solution)

– La mise en base de la variable du pivot, et le calcul du nouveau tableau

Algorithme 8.1 (Algorithme du simplexe)

1. La recherche du pivot :

a) Premier critère de Dantzig :On a vu que la dernière ligne donnait le gain marginal des variables. Comme le but est d’augmenterla valeur deZ et d’arriver le plus vite possible à la solution optimale, onva choisir la variable quia le plus grand gain.Ainsi le pivot se trouve sur la colonne j qui a le∆j strictement positif le plus grand.

b) Second critère de Dantzig : Le premier critère nous a indiqué la variable qui allait passer en base.Le second critère sert à indiquer la variable qui va sortir dela base (et donc passer à 0) pouraugmenter le plus possible la variable choisie tout en gardant une solution admissible pour lesystème d’équations.Le pivot se trouve sur la ligne i qui unai,j strictement positif et le rapportSMi/ai,j le plus petit.

2Dans ce tableau il y a p=n+m variables x : lesn variables de la fonction économique, plus lesm variables d’écart

Eric LALLET , Jean-Luc RAFFY 67

Page 76: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

2. Le pivotement : soitai,j le pivot trouvé à l’étape 1.

a) Mise en base dexj

Lors du pivotement, la variablesyi de la base est remplacée parxj .

b) Modification de la ligne du pivot :

On divise la ligne par le pivot.

Pourl allant de1 àp faire :

a′

i,l ←ai,l

ai,j

Notez que le pivot passe donc à 1.

c) Modification des autres lignes

On soustrait à toutes les lignes k, aveck 6= i la ligne du pivot proportionnellement àak,j/ai,j :

SM ′

k ← SMk −(SMi × ak,j)

ai,j

Res′ ← Res−(SMi ×∆j)

ai,j

Pourl allant de1 àp faire :

a′

k,l ← ak,l −(ai,l × ak,j)

ai,j

∆′

l ← ∆l −(ai,l ×∆j)

ai,j

Notez que sur la colonne du pivot, mis à part le pivot lui même,toutes les valeurs sont passées à0.

3. La boucle

Si après le nouveau calcul il existe encore un∆j strictement positif, on peut encore augmenterZ :retournez à l’étape 1.

Pour simplifier la description de l’étape «2c» de l’algorithme, il y une formule qui fonctionne pourtoutes les valeurs qui ne sont pas sur la ligne du pivot (même sur la colonne «Somme» ou sur la ligne«∆j») :

On recherchev′, la nouvelle valeur dev. Soitp le pivot,x et y les valeurs qui sont à l’intersection deslignes et colonnes dev et du pivot, alors :v′ = v − x× y/p

p . . . x...

...y . . . v′ = v − x× y/p

8.4 Interprétation du tableau final

À la fin de l’algorithme, le tableau du simplexe continue à se lire de la même manière. Ainsi les solutionsdu problème d’origine se lisent directement dans ce tableau.

Les valeurs des variablesXj passées en base à la place deEi se lisent dans la colonne «Somme» :SMi.Les variablesXj qui ne sont pas passées en base sont nulles.

La valeur optimale deZ est l’opposé de la valeur de «Res».

Les valeurs des variables d’écart qui ont quitté la base sontnulles.

Les variables d’écartEi qui sont toujours en base indiquent qu’une contrainte n’a pas atteint son maxi-mum. La valeur de cette variable d’écart se lit dans la colonne «Somme» :SMi.

68 Eric LALLET , Jean-Luc RAFFY

Page 77: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Si à la fin de l’algorithme il y a des variables hors base avec un∆j nul, alors il existe d’autres solutionsoptimales (une infinité en fait). Vous pouvez faire un pivotement de plus en choisissant la colonne d’une deces variables pour trouver la solution optimale qui privilégie cette valeur.

Si alors qu’il reste des∆j strictement positifs, il n’est plus possible de trouver un pivot strictementpositif sur leur colonne, alors la fonction économique n’est pas bornée. Il existe des solutions qui permettentde monter sa valeur à l’infini . Mais dans le cadre de modèles degestion, il est peu probable que vouspuissiez dégager des bénéfices infinis. Ce diagnostic cache dont très certainement un problème dans votremodélisation (probablement des contraintes oubliées).

8.5 Exemple

Reprenons l’exemple de l’ébénisterie. On avait déjà construit letableau du simplexe suivant. Il correspond à une première solution(non optimale pourZ) du système d’équations :M1 = 0 etM2 = 0.

M1 M2 E1 E2 E3 SommeE1 2 1 1 0 0 2000E2 4 8 0 1 0 8000E3 10 10 0 0 1 12500∆j 600 400 0 0 0 0

Il y a des∆j strictement positifs : on peut trouver une meilleuresolution. Faisons la première itération :

1. a) Le premier critère de Dantzig (le plus grand∆j ) permet de sélectionner la colonne deM1 pour lepivot.

b) Le second critère de Dantzig (le plus petitSMi/ai, j) permet de sélectionner la ligne deE1 pourle pivot.

M1 M2 E1 E2 E3 Somme

E1 2 1 1 0 0 2000

E2 4 8 0 1 0 8000E3 10 10 0 0 1 12500∆j 600 400 0 0 0 0

2. a) La variableM1 passe en base à la place deE1.

b) La ligne du pivot est divisée par2.

c) on retire à la ligne deE2 4/2 = 2 fois la ligne du pivot.

on retire à la ligne dee3 10/2 = 5 fois la ligne du pivot.

on retire à la ligne des∆j 600/2 = 300 fois la ligne du pivot.

On obtient un nouveau tableau du simplexe. Son interprétationcorrespond à la solutionM1 = 1000 etM2 = 0.

M1 M2 E1 E2 E3 SommeM1 1 1/2 1/2 0 0 1000E2 0 6 -2 1 0 4000E3 0 5 -5 0 1 2500∆j 0 100 -300 0 0 -600000

Eric LALLET , Jean-Luc RAFFY 69

Page 78: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

3. Il reste un∆j strictement positif. On peut encore améliorer la valeur deZ. Donc on fait une autreitération.

Seconde itération :

1. a) Le premier critère de Dantzig permet de sélectionner lacolonne deM2 pour le pivot.

b) Le second critère de Dantzig permet de sélectionner la ligne deE3 pour le pivot.

M1 M2 E1 E2 E3 SommeM1 1 1/2 1/2 0 0 1000E2 0 6 -2 1 0 4000

E3 0 5 -5 0 1 2500

∆j 0 100 -300 0 0 -600000

2. (a) La variableM2 passe en base à la place deE3

(b) La ligne du pivot est divisée par5

(c) On retire à la ligne deM1 (1/2)/5 = 1/10 fois la ligne du pivot.On retire à la ligne deE2 (6/5) fois la ligne du pivot.On retire à la ligne des∆j 100/5 = 20 fois la ligne du pivot.

On obtient un nouveau tableau du simplexe. Son interprétationcorrespond à la solutionM1 = 750 etM2 = 500.

M1 M2 E1 E2 E3 SommeM1 1 0 1 0 -1/10 750E2 0 0 4 1 6/5 1000M2 0 1 -1 0 1/5 500∆j 0 0 -200 0 -20 -650000

3. Il ne reste plus aucun∆j strictement positif. La solution est optimale. L’algorithme s’arrête ici.

Il nous reste à interpréter le tableau final.– La somme au bout de la ligne deM1 est 750 : il faut construire 750 bibliothèquesM1 («petit chêne»).– La somme au bout de la ligne deM2 est 500 : il faut construire 500 bibliothèquesM2 («grand hêtre»).– La valeur de Res est -650000 : le Z optimal est de 650000, qui sera (en euros) la marge dégagée par

la vente des bibliothèques construites.– La variable d’écartE2 est toujours en base. La valeur dans sa colonne somme est1000. Donc pour la

solution optimaleE2 = 1000. E2 est la variable d’écart qui donne le nombre de stères de hêtrenonutilisés. Donc la solution optimale du problème laisse1000 stères de hêtre sans usage.

Trois nombres restent à interpréter. Les valeurs des∆j pour les colonnes des variables d’écart. Ce sontles «coûts marginaux». Elles indiquent combien on pourraitdégager de marge en plus si on augmentait nosstocks de chêne, de hêtre et d’heures de travail (ou au contraire à quel prix minimum il faudrait vendre cestock pour qu’il rapporte au moins autant que la production faite avec).

– La valeur marginale pourE1 est -200. EtE1 est la variable d’écart qui désigne les stères de chênenon-utilisés. Cela signifie qu’augmenter de1 E1, c’est à dire de laisser sans usage 1 stère de chêne,coûterait200 Euros. Et au contraire, disposer de 1 stère de chêne de plus permettrait de gagner200euros supplémentaires. Donc si le stère de chêne coûte moinsde200 euros, il sera intéressant d’enacheter pour produire plus, et s’il coûte plus de200 euros, il vaudra mieux vendre notre stock plutôtque de produire avec.

– La valeur marginale pourE2 est 0. Cela signifie qu’acheter du hêtre en plus ne rapporterait rien. Cequi est logique puisqu’on vient de voir que l’on n’avait déjàpas épuisé notre propre stock. Et doncon peut vendre ce sur-stock à n’importe quel prix sans perdred’argent.

70 Eric LALLET , Jean-Luc RAFFY

Page 79: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– La valeur marginale pourE3 est -20.E3 est la variable qui sert à désigner le nombre d’heures detravail non utilisées. Ainsi augmenter le nombre d’heures de travail de1, permet de gagner20 eurosde plus. Donc l’entreprise n’a intérêt à augmenter le nombred’heures de travail que si cela ne luicoûte pas plus de 20 euros de l’heure.

8.6 Plus loin au sujet des valeurs marginales

Attention l’interprétation des coûts marginaux n’est valable qu’à la marge. Dans ce type de problèmeon parcourt des paliers avec des effets de seuil. Dès qu’on franchit un seuil les coûts marginaux changent.

Dans l’exemple de la section précédente, il reste 1000 stères de hêtre sans usage. Donc les coûts mar-ginaux associés à cette variable sont nuls : on peut vendre cebois à n’importe quel prix, cela augmenterales gains. Mais cette remarque n’est vrai que pour le stock inutilisé. Au delà des 1000 stères, continuer àvendre du hêtre diminuerait la production de meuble, et doncles gains. C’est le seuil à partir duquel le coûtmarginal pour les bois de hêtre va changer.

Pour le cas des stocks inutilisés le seuil est assez simple à trouver (c’est la grandeur du stock), maispour les autres variables il faut procéder différemment.

Examinons un autre cas : le coût marginal associé au bois de chêne est de200 euros le stère. Autrementdit si on arrive à vendre ce bois plus cher que200 euros le stère on a intérêt à le vendre plutôt que de produireavec. Par contre si on arrive à trouver du chêne à moins de200 euros le stère, on a intérêt à l’acheter et àproduire avec pour augmenter les gains. Imaginons que l’ébénisterie trouve un marché où elle peut acheterdu chêne à150 euros le stère. Elle devrait l’acheter. Chaque stère obtenuainsi va lui permettre d’augmenterses gains de50 euros. Mais ce gain ne peut monter que jusqu’à un certain seuil : la production est limitéepar le stock de hêtre et le nombre d’heure de travail dont dispose l’ébénisterie. Au delà de ce seuil, ellene pourra plus produire de meubles avec le chêne acheté, et elle dépensera donc200 euros pas stère sanspouvoir rien en faire.

Quel est ce seuil ? On retombe sur un nouveau problème de programmation linéaire. Si l’ébénisterieaccepte d’acheter du chêne tant que c’est rentable, on retrouve le même problème que précédemment avecune contrainte de moins : celle concernant le stock de chêne.Sa modélisation est donc identique à avant,excepté l’inégalité concernant cette contrainte qui disparaît :

Z = 600×M1 + 400×M2

avec

((((((((((hhhhhhhhhh2×M1 + M2 ≤ 2000 la contrainte sur le chêne n’existe plus4×M1 + 8×M2 ≤ 8000 contrainte sur le hêtre10×M1 + 10×M2 ≤ 12500 contrainte sur les heures de travailM1 ≥ 0 etM2 ≥ 0

On obtient ainsi le même tableau du simplexe que précédemment mais avec la variableE1 (celle concer-nant le chêne) en moins :

M1 M2 E2 E3 SommeE2 4 8 1 0 8000E3 10 10 0 1 12500∆j 600 400 0 0 0

Ce simplexe se résout en une seule itération :

M1 M2 E2 E3 SommeE2 0 4 1 -2/5 3000M1 1 1 0 1/10 1250∆j 0 -200 0 -60 750000

Grâce à l’achat de stères supplémentaires, une nouvelle solution optimale se dessine :– M1 vaut 1250. Il faut produire 1250 bibliothèques «petit chêne».– M2 n’est pas en base, doncM2 vaut 0. Il ne faut plus produire de bibliothèques «petit hêtre»

Eric LALLET , Jean-Luc RAFFY 71

Page 80: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– E2 vaut 3000. Il reste donc 3000 stères de hêtre inutilisé.Chaque bibliothèque «petit chêne» consomme 2 stères de chênes. Il a donc fallu un total de1250× 2 =

2 500 stères de chêne pour la production. Comme le stock initial était de2 000, il a fallu acheter500 stèressupplémentaires. Le coût de cet achat est :150× 500 = 75 000 euros.

Et attention le nouveau gain pour l’ébénisterie est donc de675 000 euros. En effet, même si le gain quiapparaît dans le dernier tableau du simplexe est750 000 euros, il faut penser à lui soustraire le prix desstères de chêne qu’il fallut acheter pour obtenir la nouvelle solution :750 000− 75 000 = 675 000.

Il existe un autre moyen de calculer ce nouveau gain : dans le problème précédent le gain était de650 000 euros. On a vu qu’en achetant le chêne à150 euros le stère, on augmentait le gain de50 euros parstères. Donc les500 stères ont augmenté le gain de500× 50 = 25 000. Et 650 000 + 25 000 redonne bienla même valeur :675 000.

8.7 Unités et simplifications

8.7.1 Les unités des variables

Un risque important d’erreurs dans l’interprétation du tableau du simplexe est de se tromper dans lesunités. En effet entre les données originales du problème, leur interprétation, la mise en équation, les sim-plifications, la construction du tableau et les pivotementsil y a de nombreuses occasions d’erreurs. Dans letableau du simplexe les nombres qui ont besoin d’être interprétés sont dans la dernière ligne et la dernièrecolonne. Leurs unités sont directement liées aux variablesdans la première ligne et la première colonne. Ilfaudra donc veiller à toujours bien indiquer le nom de ces variables lors de la création du tableau et lors desdivers pivotements.

L’unité d’un nombre sur la dernières colonne est celle de la variable en première colonne. Attention,celle-ci peut changer lors d’un pivotement.

L’unité d’un nombre sur la dernière ligne est celle deZ divisée par celle de la variable en premièreligne.

X1 . . . Xp SommeY1 Unité deY1

......

Ym Unité deYm

∆j Unité deZ/Unité deX1 . . . Unité deZ/Unité deXp Unité deZ

Dans un problème classique les unités des variables du problème et l’unité deZ sont généralement bienidentifiées. Par contre il y a souvent plus d’incertitudes sur les unités des variables d’écart. Tant qu’on necherchera qu’à connaître la valeur deZ et des variables du problèmes il sera possible de laisser ce flou surles variables d’écart, mais si on doit interpréter les valeurs marginales liées à ces variables, il faudra êtretrès rigoureux.

Un des risques majeurs de se tromper dans leur unités apparaît lors de la simplification des inégalités duproblème. Reprenons l’exemple traité précédemment, mais cette fois ci en simplifiant les nombres lorsquecela est possible.

8.7.2 Simplification de la fonction économique

Toutes les simplifications faites sur la fonction économique apportent un changement d’unité deZ.

Pour illustrer cela, reprenons l’exemple de la modélisation de la page 58. On avait décritZ avec lafonction :Z = 600×M1 + 400×M2.

M1 et M2 étaient le nombre de modèles de chaque étagère. Chaque modèle M1 rapporte600 euros,et chaque modèleM2, 400 euros. Donc ici l’unité deZ est l’euro. Mais on peut décider de simplifier lesnombres, et dire que chaque modèleM1 rapporte6 «hecto euros3» et chaque modèleM2 4 «hecto euros».Alors on obtient une fonctionZ ′ = 6×M1 + 4×M2 exprimée en «hecto euros».

31 hecto euro = 100 euro

72 Eric LALLET , Jean-Luc RAFFY

Page 81: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

8.7.3 Simplification des inégalités

Les simplifications faites sur les inégalités obtenues grâce aux diverses contraintes laissent inchangéesles unités des variables du modèle, mais changent les unitésdes variables d’écarts.

Reprenons encore le problème de la page 58 pour illustrer ce type de simplification. Le modèle avait 3contraintes, et donc trois inégalités.

– La première concernait la consommation des stères de chêneà disposition. Chaque modèleM1

consomme 2 stères de chêne et chaque modèleM2 consomme 1 stère de chêne. Comme on ne dis-pose que de2000 stères de chêne on a :2 ×M1 + M2 ≤ 2000. L’unité des variables du modèleM1 etM2 est «le nombre de modèle». Mais les coefficients placés devant (2 pourM1 et1 pourM2)sont en «stère de chêne par modèle». Donc l’unité des membresde cette inégalité est le «stère dechêne». Lors du passage à la forme standard, la variable d’écart ajoutée (E′

1) sera homogène avec lesautres membres de cette inégalité, et sera donc exprimée en «stère de chêne». Il n’y aucun intérêt àsimplifier cette inégalité qui va donc rester inchangée.

– Le seconde contrainte concernait la consommation de stères de hêtre. Chaque modèleM1 consomme4 stères de hêtre et chaque modèleM2 consomme 8 stères de hêtre. Comme on ne dispose que de8000 stères de hêtre on a :4×M1 +8×M2 ≤ 8000. L’unité des variables du modèleM1 etM2 restetoujours «le nombre de modèle», mais les coefficients placésdevant (4 pourM1 et 8 pourM2) sonten «stère de hêtre par modèle». Donc l’unité des membres de cette inégalité est le «stère de hêtre».Il est intéressant de simplifier cette inégalité par 4. On obtient : M1 + 2 ×M2 ≤ 2000. Mais si ondevait maintenant interpréter cette inégalité, il faudrait changer d’unités. Il faudrait parler le «4 stèresde hêtre». Chaque modèleM1 consomme1 «4 stères de hêtre», chaque modèleM2 consomme2 «4stères de hêtre», et on dispose de2000 «4 stères de hêtres». Donc l’unité des membres de l’inégalitésimplifiée est «4 stères de hêtre». La variable d’écart qui sera ajoutée lors du passage à la formestandard (E′

2) devra être homogène avec les autres membres, et aura donc pour unité «4 stères dehêtre».

– Enfin, la troisième contrainte concernait la consommationd’heures de travail. Chaque modèleM1

et M2 nécessite10 heures de travail. Comme on ne dispose que de12500 heures de travail on a :10 × M1 + 10 × M2 ≤ 12500. Les unités deM1 et M2 reste «le nombre de modèle», mais lescoefficients placés devant (10 pourM1 et M2) sont en «heure de travail par modèle». Donc l’unitédes membres de cette inégalité est «l’heure de travail». Il est intéressant de simplifier cette inégalitépar 10. On obtient :M1 + M2 ≤ 1250. Les coefficients devantM1 etM2 ont (en apparence) disparu.Et une lecture rapide pourrait interpréter cette inégalitéen «nombre de modèle». Mais en fait devantles variableM1 et M2 se cache un «1×» qui dit 1× «10 heures de travail» par modèle. Donc lavéritable unité des membres de cette inégalité est «10 heures de travail». La variable d’écart qui seraajoutée lors du passage à la forme standard (E′

3) devra être homogène avec les autres membres, etaura donc pour unité «10 heures de travail».

En résumé on obtient, trouver le maximum deZ ′ avec :

avec

2×M1 + M2 ≤ 2000 unité des membres : stère de chêneM1 + 2×M2 ≤ 2000 unité des membres : 4 stères de hêtreM1 + M2 ≤ 1250 unité des membres : 10 heures de travailZ ′ = 6×M1 + 4×M2 unité des membres : 100 eurosM1 ≥ 0 etM2 ≥ 0

8.7.4 Calculs et interprétations

Il faut ensuite tenir compte de ces changements d’unités lors des calculs et des interprétations.

Durant la phase de calcul il n’y en fait aucun changement, sauf bien sûr des nombres plus simples àmanipuler. Continuons le traitement de l’exemple après la simplification :

Lorsque l’on passe à la forme standard il faut ajouter 3 variables d’écart au problème. Ces 3 variablesvont récupérer l’unité de leur équation. On va donc avoir :

– E′

1 : le nombre de stères de chêne non utilisés.– E′

2 : le nombre de «4 stères de hêtre» non utilisés.– E′

3 : le nombre de «10 heures de travail» non utilisés.Ainsi l’unité deE′

1 est «1 stère de chêne», celle deE′

2 est «4 stères de hêtre» et celle deE′

3 est «10

Eric LALLET , Jean-Luc RAFFY 73

Page 82: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

heures de travail».

Mis sous la forme du simplexe, on obtient :

M1 M2 E′

1 E′

2 E′

3 SommeE′

1 2 1 1 0 0 2000E′

2 1 2 0 1 0 2000E′

3 1 1 0 0 1 1250∆j 6 4 0 0 0 0

Après le premier pivotement on a :

M1 M2 E′

1 E′

2 E′

3 SommeM1 1 1/2 1/2 0 0 1000E′

2 0 3/2 -1/2 1 0 1000E′

3 0 1/2 -1/2 0 1 250∆j 0 1 -3 0 0 -6000

Après le second pivotement on a :

M1 M2 E′

1 E′

2 E′

3 SommeM1 1 0 1 0 -1 750E′

2 0 0 1 1 -3 250M2 0 1 -1 0 2 500∆j 0 0 -2 0 -2 -6500

Le simplexe s’arrête ici. Il faut maintenant faire l’interprétation des résultats.

L’interprétation des variablesM1 et M2 ne posent aucun problème. Leur unité n’a pas changé. Il fautdonc construire 750 modèles 1 et 500 modèles 2.

L’interprétation deZ ′ demande plus de vigilance : son unité est «100 euros». Donc lamarge dégagéesera de 6500 «100 euros», autrement dit 650000 euros.

La valeur deE′

2 est de 250. Mais attention, son unité est «4 stères de hêtre».Donc à la fin, il reste 250«4 stères de hêtre» sans usage, autrement dit 1000 stères de hêtre sans usage.

La valeur marginale dans la colonne deE′

3 est−2. Son unité est celle deZ ′ divisée par celle deE′

3, donc«100 euros»/«10 heures de travail». Donc le coût marginale de l’heure de travail est de 2 «100 euros»/«10heures de travail», autrement dit 20 euros par heure de travail.

Ainsi, une fois interprétés avec leurs bonnes unités les nombres donnés par le tableau du simplexe deséquations simplifiées donnent heureusement la même solution que précédemment.

8.8 Exercices

Exercice 8.1 (Une histoire de fromage)

Une laiterie s’est spécialisée dans deux fromages. Le premier est un AOC qui exige plus d’heures detravail et un lait en provenance d’une région bien précise. Le second demande moins de travail, et peut êtrefabriqué avec n’importe quel lait. Par contre sa vente dégage une marge moindre.

La laiterie dispose de21 000 heures de travail annuel, elle reçoit 4 millions de litres delait de la zoneAOC, et 6 millions de litres d’autres zones.

74 Eric LALLET , Jean-Luc RAFFY

Page 83: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Le tableau suivant indique les ressources nécessaires pourproduire 1 tonne de fromage.

heures de travail litres de laitFromage par tonne de fromage par tonne de fromage

Fromage 1 (AOC) 30 h 10 000 lFromage 2 15 h 7 500 l

Sachant qu’un kilo du fromage AOC dégage une marge de 3 euros et qu’un kilo de l’autre fromageseulement 1 euro, quelle production doit fabriquer cette laiterie pour optimiser ses bénéfices ?

Correction page 132.

Exercice 8.2 (Une histoire de fromage (bis))

Même question, mais cette fois ci, avec une marge de 2 euros par kilo pour le fromage AOC et toujoursd’un seul euro pour le second fromage.

Correction page 134.

Exercice 8.3 (Problème électrique)

Un revendeur d’électricité a promis à sa clientèle qu’au moins 25% de son électricité serait d’originerenouvelable. Il a calculé que pour l’année qui arrive il aura un marché de 18 TWh (térawattheure). Il aaussi pré-sélectionné trois fournisseurs à qui il va acheter son électricité en gros. Voici les quantités (enTWh), le taux d’électricité renouvelable et la marge dégagée (en k euro/TWh) que peuvent lui fournir cestrois producteurs.

% d’électricité Quantité d’électricité Margerenouvelable achetable (TWh) (k Euro/TWh)

Producteur 1 10 % 25 900Producteur 2 46 % 6 700Producteur 3 100 % 4 500

Chez quels producteurs et en quelle quantité ce revendeur doit-il acheter son électricité pour avoir lemeilleurs bénéfice possible ?

Correction page 135.

Exercice 8.4 (Problème électrique (bis))

Même problème mais avec ces nouvelles marges :

% d’électricité Quantité d’électricité Margerenouvelable achetable (TWh) (k euros/TWh)

Producteur 1 10 % 25 850Producteur 2 46 % 6 710Producteur 3 100 % 4 500

Pour des raisons politiques le revendeur aimerait privilégier le second producteur. Est-il possible d’ache-ter une partie de l’électricité chez lui sans faire baisser les profits ?

Correction page 137.

Eric LALLET , Jean-Luc RAFFY 75

Page 84: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

76 Eric LALLET , Jean-Luc RAFFY

Page 85: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 9

Le problème dual

9.1 Introduction

En programmation linéaire à tout problème où il faut trouverle maximum d’une fonction économiqueencadrée par des contraintes de type «inférieur ou égal», ilexiste un problème associé où il faut trouver leminimum d’une fonction économique encadrée par des contraintes de type «supérieur ou égal» (et récipro-quement). Chaque problème est le «dual» de l’autre.

Ces deux problèmes sont liés par de nombreuses propriétés. Par exemple la valeur maximale de lafonction économique de l’un est exactement la valeur minimale de la fonction économique de l’autre. Enfait résoudre un des deux problèmes permet de connaître la solution de l’autre.

Voila pourquoi dans certains cas, plutôt que de résoudre le problème, on va chercher à résoudre sondual. Cela peut être par exemple, un moyen de réduire le nombre de variables pour utiliser la méthodegéométrique.

Dans les sections suivantes nous allons utiliser cette métode pour transformer un problème de type«minimisation» en problème de type «maximisation» afin de pouvoir utiliser le simplexe pour le résoudre.

9.2 Création du problème dual

Si problème primal avec ses «m» contraintes et sa fonction économique Z dont on cherche le maximums’exprime ainsi :

m contraintes :

n variables︷ ︸︸ ︷

(1) (2) (n) (Z ′)A1.1 ×X1+ A1.2 ×X2 + . . . + A1.n ×Xn ≤ B1

A2.1 ×X1+ A2.2 ×X2 + . . . + A2.n. ×Xn ≤ B2

...Am.1 ×X1+ Am.2 ×X2 + . . . + Am.n ×Xn ≤ Bm

Z = C1 ×X1+ C2 ×X2 + . . . + Cn ×Xn

Xi ≥ 0 ∀i

alors son problème dual avec ses «n» contraintes et sa fonction économique Z’ dont on cherche leminimum s’exprimera ainsi :

Eric LALLET , Jean-Luc RAFFY 77

Page 86: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

n contraintes :

m variables︷ ︸︸ ︷

(1) A1.1 × Y1 +A2.1 × Y2 + . . . +Am.1 × Ym ≥ C1

(2) A1.2 × Y1 +A2.2 × Y2 + . . . +Am.2 ×Xm ≥ C2

...(n) A1.n × Y1 +A2.n × Y2 + . . . +Am.b × Ym ≥ Cn

Z ′ = B1 × Y1 +B2 × Y2 + . . . +Bm × Ym

Yi ≥ 0 ∀i

Quelques remarques :– Le dual d’un problème de maximisation est un problème de minimisation (et réciproquement).– Le dual du dual est identique au primal– Il y a autant de variables dans le dual que de contraintes dans le primal.– Il y a autant de contraintes dans le dual que de variables dans le primal.– Le sens des inégalités dans le dual est l’inverse de celui duprimal.– Les seconds membres des inégalités du primal deviennent les coefficients de la fonction économique

Z’ du dual.– Les coefficient de la fonction économique du primal deviennent les seconds membres des inégalités

du dual.– Les lignes de coefficients des contraintes du primal deviennent les colonnes des contraintes du dual

(et réciproquement).– Les variables du primal et celles du dual doivent êtres positives ou nulles.Les deux problèmes ont aussi d’autres liaisons très intéressantes qui vont pouvoir être exploitées pour

résoudre certains problèmes :– La valeur optimale Z de la fonction économique du primal estidentique à la valeur optimale Z’ de la

fonction économique du dual.– Lorsque le problème primal est résolu, l’opposé des valeurs marginales des «m» variables d’écart des

équations du problème primal sont les valeurs des «m» variables de la solution du problème dual (etréciproquement).

Imaginons que l’on doive résoudre un problème où il faut minimiser une fonction économique avec surles variables (positives ou nulles) des contraintes «supérieures ou égales». En passant au problème dual ontombe sur un problème que le simplexe sait résoudre. Grâce à la solution du simplexe on connaît la valeurmarginale des variables d’écart du problème dual, et donc onconnaît la valeur des variables du problèmeprimal.

9.3 Exemple de résolution par le problème dual

Le directeur de l’atelier d’ébénisterie s’est rendu compteque sa production optimale n’utilisait que 7000des 8000 stères de hêtre qu’on lui livrait chaque année. Il décide donc de renégocier son approvisionnement.Après un appel d’offre, il se retrouve avec la possibilité d’acheter son bois par lots. Il peut acheter deux typesde lots. Le lot 1 est composé de 140 stères de hêtre et 20 stèresde chêne. Le lot 2 est composé de 70 stèresde hêtre et 30 stères de chêne. Les deux types de lots sont vendus à 10k euros l’unité.

Sachant la production de cet atelier utilise 7000 stères de hêtre et 2000 stères de chêne, combien faut-ilacheter de chaque lots pour obtenir un coût d’achat minimal ?

La première étape est la modélisation du problème. Si on nommeL1 la variable pour le nombre de lots1 et L2 celle pour les lots 2, la fonction économique à minimiser estZ = 10 × L1 + 10 × L2 (avecZexprimé en «k euros»).

78 Eric LALLET , Jean-Luc RAFFY

Page 87: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Les contraintes de production imposent un minimum d’achats. On les modélise par :

{140× L1 + 70× L2 ≥ 7000 (au moins 7000 stères de hêtre)20× L1 + 30× L2 ≥ 2000 (au moins 2000 stères de chêne)

Une fois les équations simplifiées, on obtient donc le problème suivant :

Minimiser la fonctionZ avec :

(1) (2) (Z ′)

2 ×L1 +1 ×L2 ≥ 1002 ×L1 +3 ×L2 ≥ 200

Z = 10 ×L1 +10 ×L2

L1 ≥ 0 et L2 ≥ 0

En passant sur le problème dual, on tombe sur un problème que le simplexe sait résoudre. Le problèmedual s’exprime ainsi :

Maximiser la fonctionZ ′ avec

(1) 2 ×X1 +2 ×X2 ≤ 10(2) 1 ×X1 +3 ×X2 ≤ 10

Z ′ = 100 ×X1 +200 ×X2

X1 ≥ 0 etX2 ≥ 0

On obtient le tableau du simplexe suivant :

X1 X2 E1 E2 SommeE1 2 2 1 0 10E2 1 3 0 1 10∆j 100 200 0 0 0

Selon les critères de Dantzig la colonne du pivot est celle deX2, et sa ligne celleE2.– On passe doncX2 en base à la place deE2.– On divises la ligne du pivot par3.– On retire2/3 de la ligne du pivot à celle deE1.– On retire200/3 de la ligne du pivot à celle des∆j

On obtient ce nouveau tableau :

X1 X2 E1 E2 SommeE1 4/3 0 1 -2/3 10/3X2 1/3 1 0 1/3 10/3∆j 100/3 0 0 -200/3 -2000/3

Cette fois ci le pivot est sur la colonne deX1 et la ligne deL1.– E1 passe en base à la place deE1.– La ligne du pivot est divisée par 4/3 (donc multipliée par 3/4)– On retire((1/3)/(4/3)) = 1/4 de la ligne du pivot à celle deX2.– On retire((100/3)/(4/3)) = 25 fois la ligne du pivot à celle des∆j

On obtient ce nouveau tableau :

X1 X2 E1 E2 SommeX1 1 0 3/4 -1/2 5/2X2 0 1 -1/4 1/2 5/2∆j 0 0 -25 -50 -750

Il ne reste plus de∆j strictement positif. L’algorithme du simplexe s’arrête ici.

Les valeurs marginales (les∆j) des colonne deE1 etE2 sont les solutions de notre problème de départ.Il suffit de prendre l’opposé de leur valeur.

L’atelier doit donc acheter 25 lot 1, et 50 lot 2. Ce qui lui coûtera 750k Euros.

Eric LALLET , Jean-Luc RAFFY 79

Page 88: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

9.4 Exercices

Exercice 9.1 (Achat d’électricité)

Un revendeur d’électricité a promis à sa clientèle qu’au moins 25% de son électricité serait d’originerenouvelable. Il a calculé que pour l’année qui arrive il aura un marché de 18 TWh (térawattheure). Après unappel d’offre auprès de ses fournisseurs, il a reçu trois propositions pour répondre à ses besoin en électricité.

Voici les quantités (en TWh), le taux d’électricité renouvelable et le prix (en millions d’euros/TWh) quepeuvent lui fournir ces trois producteurs.

% d’électricité Quantité d’électricité Prixrenouvelable achetable (TWh) (M Euro/TWh)

Producteur 1 10 % pas de limite 65Producteur 2 45 % 6 73Producteur 3 100 % 4 83

Chez quels producteurs et en quelle quantité ce revendeur doit-il acheter son électricité pour l’avoir àmoindre prix ?

Correction page 138.

80 Eric LALLET , Jean-Luc RAFFY

Page 89: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 10

Simplexe : le cas général

10.1 Introduction

On a vu que l’algorithme du simplexe était un algorithme itératif qui allait de solution admissible ensolution admissible jusqu’à trouver une optimale. Mais pour que cet algorithme fonctionne il faut quela solution initiale (celle du premier tableau de l’algorithme) soit effectivement une solution admissible.Jusqu’à présent on est toujours parti de la solution «Xi = 0 ∀i». Mais il y a des cas où cette solution n’estpas dans le domaine admissible. Dans cette situation il fautchanger le point de départ de l’algorithme dusimplexe.

Cette situation se produit si la formalisation du problème contient un mélange d’inégalités de type «≤»et de type «≥». Ou plus exactement, si la forme canonique du problème de maximalisation (la forme avecque des inégalités de type «≤») contient des seconds membres (lesBi) strictement négatifs.

10.2 Exemple

Prenons un exemple pour illustrer cette situation et décrire la méthode à suivre dans ce cas.

Un revendeur de café propose de vendre son stock sous la formede dosettes expresso prête à l’usage.A la base il possède deux types de café brut : 40 tonnes d’arabica et 20 tonnes de robusta. Il sait produiredeux types de dosettes :

– la première 100% arabica utilise 10 grammes du café arabicabrut et dégage une marge de 1,2 centimed’euro par dosette vendue.

– la seconde 50% arabica, 50% robusta utilise 5 gramme de chaque café et dégage une marge de 1centime d’euro par dosette vendue.

Une chaîne de cafétérias est prête à lui acheter sa production mais à deux conditions : il doit lui fournirau moins 5 millions dosettes dont au moins 2,5 millions arabica pur.

Ce revendeur peut-il répondre à cette demande, et si oui quelle production lui donnera une marge maxi-male ?

10.3 La forme canonique

La première étape reste celle que l’on a faite jusqu’à présent : formaliser le problème pour arriver à saforme canonique.

Le but est d’optimiser la marge. Celle-ci s’exprime en fonction des dosettes 100% arabica (D1) et desdosettes 50% arabica 50% robusta (D2) : Z = 1.2×D1 + D2 avec Z exprimé en centime d’euro.

– Le revendeur dispose de 20 tonnes de robusta. Chaque dosetteD2 en consomme 5g, donc :5×D2 ≤20000000

– Le revendeur dispose de 40 tonnes d’arabica. Une dosetteD1 en consonne 10g et une dosetteD2 5g,donc10×D1 + 5×D2 ≤ 40000000.

– Le revendeur doit fournir au moins 5 millions dosettes :D1 + D2 ≥ 5000000.

Eric LALLET , Jean-Luc RAFFY 81

Page 90: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– Le revendeur doit fournir au moins 2,5 millions dosettes arabica :D1 ≥ 2500000.En changeant les unités pour queD1 et D2 soient en «million de dosettes» et pour queZ soit exprimé

en «k euro», on obtient :

Maximiser la fonctionZ avec

D2 ≤ 42×D1 + D2 ≤ 8D1 + D2 ≥ 5D1 ≥ 2.5Z = 12×D1 + 10×D2

D1 ≥ 0 etD2 ≥ 0

Mis sous la forme canonique :

Maximiser la fonctionZ avec

D2 ≤ 42×D1 + D2 ≤ 8−D1 −D2 ≤ −5−D1 ≤ −2.5Z = 12×D1 + 10×D2

D1 ≥ 0 etD2 ≥ 0

On a deux inégalités avec un second membre strictement négatif. On est donc bien dans un cas où lasolutionD1 = 0 et D2 = 0 n’est pas dans le domaine admissible. Il va falloir trouver un autre point dedépart.

10.4 La méthode par l’exemple

Étape 1 : mise sous la forme standard.

La première étape consiste à passer le problème sous sa formestandard. On a joute donc 4 variablesd’écart (Ei) et on obtient :

AvecDj ≥ 0 ∀j etEi ≥ 0 ∀i, trouver le maximum deZ pour :

D2 + E1 = 42×D1 + D2 + E2 = 8−D1 −D2 + E3 = −5−D1 + E4 = −2.5Z = 12×D1 + 10×D2

On transforme les équations pour que tous les seconds membres soient positifs ou nuls :

AvecDj ≥ 0 ∀j etEi ≥ 0 ∀i, trouver le maximum deZ pour :

(1) D2 + E1 = 4(2) 2×D1 + D2 + E2 = 8(3) D1 + D2 − E3 = 5(4) D1 − E4 = 2.5

Z = 12×D1 + 10×D2

Dans cette expression, ce sont donc les contraintes(3) et (4) qui posent problème. En effet si on débuteavecD1 = 0 etD2 = 0 il n’est pas possible de garderE3 etE4 positifs conformément aux hypothèses.

82 Eric LALLET , Jean-Luc RAFFY

Page 91: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Étape 2 : ajout de variables artificielles.

Pour rendre ce point de départ possible, on va ajouter une nouvelle variable artificielle pour chacune descontraintes problématiques. SoitX1 et X2 avecX1 ≥ 0 etX2 ≥ 0. Et on transforme les deux contraintesproblématiques de cette façon :

(3) devientD1 + D2 + X1 − E3 = 5

(4) devientD1 + X2 − E4 = 2.5

Maintenant il va falloir tout faire pour que notre recherchede solution annule ces deux variables artifi-cielles. Comme le simplexe tend à trouver le maximum deZ, on va faire en sorte que cette recherche pousseà annuler ces deux variables. Pour cela on va changer leZ à maximaliser en ajoutantX1 et X2 dans sonexpression.

Le nouveauZ devient :Z = 12×D1 + 10×D2 − k ×X1 − k ×X2

Et on dit juste quek est une constante positive très grande. Donc la première chose à faire pour maxi-miserZ sera d’annulerX1 et X2. Si à la fin de l’algorithme du simplexe on n’y arrive pas, celasignifieraque les contraintes du problème étaient contradictoires etqu’il n’y avait pas de solution.

Maintenant le problème s’exprime ainsi :

AvecD1 ≥ 0, D2 ≥ 0, X1 ≥ 0, X2 ≥ 0 etEi ≥ 0∀i trouver le maximum deZ pour :

(1) D2 + E1 = 4(2) 2×D1 + D2 + E2 = 8(3) D1 + D2 + X1 − E3 = 5(4) D1 + X2 − E4 = 2.5

Z = 12×D1 + 10×D2 − k ×X1 − k ×X2

Étape 3 : calcul de la solution admissible de départ.

Grâce à l’ajout des variables artificielles on peut à nouveauconstruire une solution admissible évidente :on fixe toujoursD1 et D2 à zéro et on fixe aussi les variables d’écarts des contraintesproblématiques (E3

etE4) à zéro.– La contrainte(1) donneE1 = 4– La contrainte(2) donneE2 = 8– La contrainte(3) donneX1 = 5– La contrainte(4) donneX2 = 2.5Les quatre variables non nulles de notre solution admissible de départ sont doncE1, E2, X1, X2. Ce

seront donc les quatre variables en base sur le premier tableau du simplexe.

Il faut aussi réussir à exprimer la valeur des coûts (ou gains) marginaux des diverses variables pour notrepoint de départ. Il faut pour cela faire disparaître de l’expression deZ les variables en base.

– X1 est en base, et la contrainte(3) permet de dire :X1 = 5−D1 −D2 + E3

– X2 est en base, et la contrainte(4) permet de dire :X2 = 2.5−D1 + E4

DoncZ = 12×D1 + 10×D2 − k × (5−D1 −D2 + E3)︸ ︷︷ ︸

X1

−k × (2.5−×D1 + E4)︸ ︷︷ ︸

X2

.

Z = (12 + 2k)×D1 + (10 + k)×D2 − k × E3 − k × E4 − 7.5k.

En résumé : AvecD1 ≥ 0, D2 ≥ 0, X1 ≥ 0, X2 ≥ 0 et Ei ≥ 0∀i il faut trouver le maximum deZpour :

(1) D2 + E1 = 4(2) 2×D1 + D2 + E2 = 8(3) D1 + D2 + X1 − E3 = 5(4) D1 + X2 − E4 = 2.5

(12 + 2k)×D1 + (10 + k)×D2 − k × E3 − k × E4 = Z + 7.5k

Avec pour solution admissible de départ :E1 = 4, E2 = 8, X1 = 5, X2 = 2.5 et doncZ = −7.5k

Eric LALLET , Jean-Luc RAFFY 83

Page 92: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Étape 4 : le simplexe.

On a tout ce qu’il faut pour commencer le simplexe1 :

D1 D2 X1 X2 E1 E2 E3 E4 SommeE1 0 1 0 0 1 0 0 0 4E2 2 1 0 0 0 1 0 0 8X1 1 1 1 0 0 0 -1 0 5X2 1 0 0 1 0 0 0 -1 2.5∆j 12+2k 10+k 0 0 0 0 -k -k 7.5k

k est une constante positive «très grande» donc le premier pivot est sur la colonneD1. La ligne du pivotest sur la ligne deX2.

D1 D2 X1 X2 E1 E2 E3 E4 SommeE1 0 1 0 0 1 0 0 0 4E2 0 1 0 -2 0 1 0 2 3X1 0 1 1 -1 0 0 -1 1 2.5D1 1 0 0 1 0 0 0 -1 2.5∆j 0 10+k 0 -12-2k 0 0 -k 12+k -30+2.5k

Le second pivot est sur la colonne deD2 et la ligne deX1.

D1 D2 X1 X2 E1 E2 E3 E4 SommeE1 0 0 -1 1 1 0 1 -1 1.5E2 0 0 -1 -1 0 1 1 1 0.5D2 0 1 1 -1 0 0 -1 1 2.5D1 1 0 0 1 0 0 0 -1 2.5∆j 0 0 -10-k -2-k 0 0 10 2 -55

Le troisième pivot est sur la colonne deE3 et la ligne deE2.

D1 D2 X1 X2 E1 E2 E3 E4 SommeE1 0 0 0 2 1 -1 0 -2 1E3 0 0 -1 -1 0 1 1 1 0.5D2 0 1 0 -2 0 1 0 2 3D1 1 0 0 1 0 0 0 -1 2.5∆j 0 0 -k 8-k 0 -10 0 -8 -60

L’algorithme s’arrête là. On a réussi à faire sortir de la base les variables artificiellesX1 etX2, il y avaitdonc une solution possible. Cette solution estD1 = 2.5, D2 = 3, etZ = 60.

Donc pour optimiser sa marge le revendeur devra produire 2,5millions de dosettes 100% arabica, 3millions de dosettes 50% arabica 50% robusta, et sa marge sera de60 000 euros.

10.5 Exercices

Exercice 10.1 (Noix et cacahouètes)

Un traiteur doit renouveler ses stocks de noix de pécan et noix de cajou. Il a besoin de 25 tonnes de noixde pécan et de 6 tonnes de noix cajou. Il fait un appel d’offre et deux types de lots retiennent son attention :

– Un fournisseur lui propose des «lots 1» composés de 5kg de noix de pécan et 2kg de noix de cajouau prix unitaire de 110 euros.

1Noter que dans la forme standard exprimée au dessus leZ +7.5k a été volontaire mis dans le membre de droite pour bien montrerqu’ici la colonne «Somme» du∆j ne débute pas avec 0, mais avec7.5k, la valeur opposée deZ pour la solution initiale.

84 Eric LALLET , Jean-Luc RAFFY

Page 93: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– Un autre fournisseur lui propose des «lots 2» composés de 15kg de noix de pécan, 2kg de noix decajou et 30 kg de cacahouètes au prix unitaire de 224 euros. Par contre il ne peut fournir que 2000lots.

Le traiteur n’a actuellement pas besoin de cacahouètes. Mais il peut éventuellement écouler les caca-houètes obtenues avec les lots 2 : un confrère est prêt à lui racheter des lots composés de 5kg de noix depécan et 20kg de cacahouètes au prix unitaire de 60 euros.

Combien de lots le traiteur doit-il acheter et revendre pourrenouveler ses stocks à prix minimum.

Correction page 139

Eric LALLET , Jean-Luc RAFFY 85

Page 94: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

86 Eric LALLET , Jean-Luc RAFFY

Page 95: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 11

Programmation linéaire en nombresentiers

11.1 Introduction

Jusqu’à présent on a oublié de considérer un problème important : le simplexe ne travaille pas avecdes nombres entiers. Les solutions que l’on parcourt sont des points à des intersections de droites (plans,etc. . . ) et dans le cas de problèmes réels il y a fort peu de chance d’obtenir des nombres entiers. Lorsqueles variables représentent des éléments fractionnables (des litres de pétrole, des tonnes de blé, des kilo-wattheures, . . . ) cela ne pose aucun problème. Mais dans le cas contraire (des passagers transportés, desmeubles vendus, . . . ) il n’est pas possible de donner une solution non entière. Arrondir les chiffres de lasolution fractionnaire pour obtenir une solution entière n’est pas une bonne méthode : d’une part il n’estpas sûr que cette solution soit encore dans le domaine admissible, et d’autre part il se peut que la solutionentière optimale soit très loin de la solution fractionnaire optimale.

Pour les problèmes en nombres entiers, il n’existe pas d’algorithme simple1 qui trouve à coup sûr lasolution optimale. Il existe juste des algorithmes qui pourun nombre d’itérations acceptable, ont beaucoupde chances de la donner et qui en tout cas donne une solution proche de l’optimale. Nous allons voir l’und’entre eux.

11.2 Exemple

Prenons un exemple pour illustrer ce problème.

Un constructeur immobilier a trouvé le terrain pour bâtir 10petits immeubles. Il construit ses immeublesselon trois plans standards qui offrent trois types d’appartements différents allant du F1 au F3. Voici untableau donnant le nombre d’appartements suivant le modèled’immeuble :

Appartements Appartements AppartementsF3 F2 F1

Modèle 1 3 3 5Modèle 2 1 6 5Modèle 3 2 1 12

Quelque soit le modèle d’immeuble il fait une marge de 15k euros sur les F1, 50k euros sur les F2 et80k euros sur les F3.

Il a sur son carnet de commandes des demandes pour 24 F3, 35 F2 et 150 F1. Combien doit-il construirede chacun des modèles pour optimiser sa marge ?

Si on résout ce problème avec un simplexe classique, la solution optimale loge 58 demandeurs de F1 ettous les demandeurs de F2 et de F3. Elle dit de construire45/7 du modèle 1,17/7 du modèle 2 et8/7 dumodèle 3. Elle dégage une marge de 4,540 millions d’euros.

1au sens de la complexité. Donc qui se termine dans un temps «acceptable».

Eric LALLET , Jean-Luc RAFFY 87

Page 96: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Mais évidement, les immeubles ne se construisent pas par1/7. Il faut donc trouver une solution ennombres entiers.

11.3 La méthode par l’exemple

La méthode débute comme un simplexe classique : il faut modéliser pour trouver le premier tableau dusimplexe et son premier pivot.

On commence par modéliser notre problème sous sa forme canonique.

– Un immeuble de modèle 1 permet de dégager une marge de3× 80 + 3× 50+5× 15 = 465 k euros.– Un immeuble de modèle 2 permet de dégager une marge de1× 80 + 6× 50+5× 15 = 455 k euros.– Un immeuble de modèle 3 permet de dégager une marge de2×80+1×50+12×15 = 390 k euros.

Donc siM1, M2, etM3 sont les variables qui représentent le nombre d’immeubles de modèle 1, 2 et 3,la fonction économiqueZ à maximiser est :Z = 465×M1 + 455×M2 + 390×M3.

– (1) :M1 ≥ 0, M2 ≥ 0, M3 ≥ 0.– (2) : Il y a 24 commandes de F3, donc3×M1 + M2 + 2×M3 ≤ 24– (3) : Il y a 35 commandes de F2, donc3×M1 + 6×M2 + M3 ≤ 35– (4) : Il y 150 commandes de F1, donc5×M1 + 5×M2 + 12×M3 ≤ 150.– Il y a assez de commandes pour remplir 10 immeubles (les commandes permettent au moins de

remplir 10 immeubles de modèle 3), donc on est sûr de bâtir les10 immeubles :M1+M2+M3 = 10On utilise la dernière égalité pour faire disparaître une des variables du problème :M3 = 10−M1−M2.

Donc en reportant cette information dans les autres équations on obtient la forme canonique suivante :

MaximiserZ avec :

M1 ≥ 0 M2 ≥ 0(1) M1 + M2 ≤ 10 (M3 ≥ 0)(2) M1 −M2 ≤ 4(3) 2×M1 + 5×M2 ≤ 25(4) −7×M1 − 7×M2 ≤ 30

Z = 75×M1 + 65×M2 + 3900

CommeM1 et M2 sont positifs, la contrainte(4) est toujours vraie. On peut la retirer du modèle sansperdre d’information. On obtient la forme standard suivante :

MaximiserZ avec :

M1 ≥ 0 M2 ≥ 0(1) M1 + M2 ≤ 10 (M3 ≥ 0)(2) M1 −M2 ≤ 4(3) 2×M1 + 5×M2 ≤ 25

Z = 75×M1 + 65×M2 + 3900

Notez que pour la solution initialeM1 = 0 etM2 = 0, Z vaut3900. On en tient compte pour initialiserla case «Res» dans le premier tableau du simplexe qui suit :

M1 M2 E1 E2 E3 SommeE1 1 1 1 0 0 10E2 1 -1 0 1 0 4E3 2 5 0 0 1 25∆j 75 65 0 0 0 -3900

C’est à partir de cette étape que la méthode du simplexe est modifiée.

Pour obtenir une solution entière, on va réduire le domaine des solutions admissibles en lui retirant àchaque itération un petit morceau dans lequel on est sûr qu’il n’existe aucune solution entière. Réductionaprès réduction, l’algorithme va réussir à faire coïnciderl’optimum obtenu par le simplexe avec une solutionentière.

88 Eric LALLET , Jean-Luc RAFFY

Page 97: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

À chaque itération du simplexe deux cas peuvent se produire :

– Le pivot vaut 1 : on ne peut pas réduire le domaine de solutionsans perdre de solutions entières. Onprocède alors avec la méthode habituelle du simplexe. Et on est sûr que les valeurs du tableau vontrester entières.

– Le pivot ne vaut pas 1 : on va réduire le domaine de solution eneffectuant une troncature. Cette tron-cature va consister à ajouter une contrainte supplémentaire qui va éliminer un morceau du domaineadmissible, mais en s’assurant qu’aucune solution entièrene sera dans la partie rejetée. Cette tron-cature va aussi assurer que la nouvelle solution admissibleobtenue après cette itération sera toujoursentière.

La méthode pour effectuer la troncature passe par 4 étapes :

– Étape 1 : réécrire l’inégalité correspondant à la ligne du pivot :Cela consiste à retirer de la ligne le coefficient de la colonne correspondant à sa variable en base etrétablir l’inégalité.Prenons le cas d’un pivot (p = ai,j) sur la colonne d’une variable hors baseXj , et sur la ligne d’unevariable en baseVi.

X1 . . . Xj . . . ����XXXXXk = Vi . . . Xn Somme... 0Vi ai,1 . . . p=ai,j . . . �A1 . . . ai,n Bi

... 0L’inégalité correspondante est donc :

ai,1 ×X1 + . . . + ai,j ×Xj + . . . + ai,k−1 ×Xk−1 + ai,k+1 ×Xk+1 + . . . + ai,n ×Xn ≤ Bi

– Étape 2 : faire la troncature de cette inégalité :Pour cela il faut diviser cette inégalité par le pivot et ne garder que les parties entières des coefficients.La partie entière d’une valeurM sera notée[M ] et sin ≤M < n + 1 avecn ∈ Z alors[M ] = n.

[ai,1

ai,j

]

×X1 + . . . +

[ai,j

ai,j

]

×Xj + . . . +

[ai,n

ai,j

]

×Xn ≤

[Bi

ai,j

]

Notez que[

ai,j

ai,j

]

= 1.

– Étape 3 : créer une nouvelle variable d’écart (T ) :On ajoute une nouvelle variable d’écartT ≥ 0 telle que :

[ai,1

ai,j

]

×X1 + . . . +

[ai,j

ai,j

]

×Xj + . . . +

[ai,n

ai,j

]

×Xn + T =

[Bi

ai,j

]

Cette variable d’écart permet d’ajouter cette nouvelle égalité au tableau du simplexe. Ce tableau estainsi agrandi d’une ligne pour cette égalité, et d’une colonne pour la nouvelle variable d’écart (T ). Ildevient :

X1 . . . Xj . . . Xk = Vi . . . Xn T SommeV1 a1,1 . . . a1,j . . . 0 . . . a1,n 0 B1

......

Vi ai,1 . . . ai,j . . . 1 . . . ai,n 0 Bi

......

Vm am,1 . . . am,j . . . 0 . . . am,n 0 Bm

T [ai,1/ai,j ] . . . 1 . . . 0 . . . [ai,n/ai,j ] 1 [Bi/ai,j]

∆j C1 . . . Cj . . . 0 . . . Cn 0 Res

Eric LALLET , Jean-Luc RAFFY 89

Page 98: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– Étape 4 : pivoter sur ce nouveau pivotOn pivote sur la ligne deT et la colonnej. Donc la variableXj passe en base à la place deT .

La nouvelle égalité introduite dans la tableau du simplexe par la troncature est une nouvelle contraintequi réduit le domaine des solutions admissibles. Mais la méthode assure que la partie «perdue» par ce dé-coupage ne contenait aucune solution entière. Itération après itération, et donc découpage après découpage,l’algorithme va faire coïncider l’optimum du nouveau domaine admissible avec une solution entière.

Revenons à notre exemple. La tableau du simplexe obtenu était le suivant :

M1 M2 E1 E2 E3 SommeE1 1 1 1 0 0 10E2 1 -1 0 1 0 4E3 2 5 0 0 1 25∆j 75 65 0 0 0 -3900

Le premier pivot est sur la colonne deM1 et la ligne deE2. Comme il vaut 1, on procède à une itérationnormale du simplexe :

M1 M2 E1 E2 E3 SommeE1 0 2 1 -1 0 6M1 1 -1 0 1 0 4E3 0 7 0 -2 1 17∆j 0 140 0 -75 0 -4200

Regardons l’interprétation géométrique de cette premièreitéra-tion.

Le simplexe est parti de la solution admissible (mais pas opti-male !)S0 de départ oùM1 = 0 et M2 = 0. Le premier critère deDantzig a sélectionné la variable qui fait augmenter le plusvite lafonction économique (M1 : chaque unité deM1 en plus augmentede 75 la valeur deZ). Ensuite on a augmenté du maximum possiblecette variable tout en restant dans le domaine admissible. DoncM1

est passé à 4 (etM2 est toujours à 0). Cela donne une nouvelle solu-tion admissible au problème (S1). Elle n’est toujours pas optimale,mais elle est meilleur que la solutionS0 de départ.

Pour la seconde itération le nouveau pivot (colonneM2, ligneE3)vaut 7. Il faut faire une troncature.

1. Retour à l’inégalité :On réécrit l’inégalité correspondant à la ligne deE3 (la ligne du pivot).

M1 M2 E1 E2 ��ZZE3 SommeE3 0 7 0 -2 �A1 17

On obtient :

7×M2 − 2× E2 ≤ 17

2. Troncature de l’inégalité :On divise par le pivot et on garde les parties entières.

[7

7

]

×M2 +

[−2

7

]

× E2 ≤

[17

7

]

90 Eric LALLET , Jean-Luc RAFFY

Page 99: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

On obtient2 :

M2 − E2 ≤ 2

3. Ajout d’une variable d’écart :

On crée une variable d’écartT1 ≥ 0 telle que :M2 − E2 + T1 = 2. On ajoute cette nouvelle égalitédans le tableau du simplexe :

M1 M2 E1 E2 E3 T1 SommeE1 0 2 1 -1 0 0 6M1 1 -1 0 1 0 0 4E3 0 7 0 -2 1 0 17T1 0 1 0 -1 0 1 2∆j 0 140 0 -75 0 0 -4200

4. Pivotement sur cette nouvelle ligne :

On pivote sur ce nouveau pivot (celui de la ligneT1, colonneM2) :

M1 M2 E1 E2 E3 T1 SommeE1 0 0 1 1 0 -2 2M1 1 0 0 0 0 1 6E3 0 0 0 5 1 -7 3M2 0 1 0 -1 0 1 2∆j 0 0 0 65 0 -140 -4480

Regardons l’interprétation géométrique de cette se-conde itération.

Pour cette itération le premier critère de Dantzig a sé-lectionné la colonne de la variableM2. Mais si on avaitappliqué l’algorithme classique du simplexe, la nouvellesolution trouvée n’aurait pas été entière. On a donc faitune troncature. Celle-ci s’est traduite par l’inégalitéM2−E2 ≤ 2. La variableE2 est la variable d’écart que l’onavait introduite pour l’équation (2) de la forme standard duproblème :M1−M2+E2 = 4. DoncE2 = 4−M1+M2.Ainsi l’expression de la troncature en fonction des va-riablesM1 et M2 dit : M1 ≤ 6. Grâce à cette troncaturela nouvelle solution (S2) tombe sur une solution entière :M1 = 6 et M2 = 2. Par contre, même en tenant compte

de la réduction du domaine des solutions admissibles, la solutionS2 n’est toujours pas la solution optimalede ce domaine.

Passons à la troisième itération : Il reste des∆j strictement positifs. On peut encore essayer d’augmenterZ. Le pivot est sur la colonne deE2 et la ligne deE3. Il vaut 5, il faut faire une troncature.

1. On revient à l’inégalité correspondant à la ligne du pivot:

M1 M2 E1 E2 ��ZZE3 T1 SommeE3 0 0 0 5 �A1 -7 3

On obtient :

5× E2 − 7× T1 ≤ 3

2. On divise par le pivot et on garde les parties entières :

[5

5

]

× E2 +

[−7

5

]

× T1 ≤

[3

5

]

2Attention aux parties entières des nombres négatifs :ˆ

−2

7

˜

= −1 et non pas 0 !

Eric LALLET , Jean-Luc RAFFY 91

Page 100: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

On obtient3 :

E2 − 2× T1 ≤ 0

3. On crée une variable d’écartT2 et on ajoute cette nouvelle inégalité dans le tableau du simplexe :

M1 M2 E1 E2 E3 T1 T2 SommeE1 0 0 1 1 0 -2 0 2M1 1 0 0 0 0 1 0 6E3 0 0 0 5 1 -7 0 3M2 0 1 0 -1 0 1 0 2T2 0 0 0 1 0 -2 1 0∆j 0 0 0 65 0 -140 0 -4480

4. On pivote sur ce nouveau pivot (celui de la ligneT2, colonneE2).

M1 M2 E1 E2 E3 T1 T2 SommeE1 0 0 1 0 0 0 -1 2M1 1 0 0 0 0 1 0 6E3 0 0 0 0 1 3 -5 3M2 0 1 0 0 0 -1 1 2E2 0 0 0 1 0 -2 1 0∆j 0 0 0 0 0 -10 -65 -4480

Regardons l’interprétation géométrique de cette troi-sième itération.

La variable d’écartE2 passe en base lors de cette nou-velle itération. Les valeurs deM1, M2 et donc deZ res-tent inchangée. Par contre, cette étape ajoute une nouvelletroncature :E2 − 2× T1 ≤ 0. T1 est la variable d’écart in-troduite pour queM2−E2+T1 = 2, on a2×M2−E2 ≤ 4.De plusE2 = 4−M1 + M2. Ainsi la contrainte expriméeavec les variablesM1 et M2 devientM1 + M2 ≤ 8. Onreporte cette contrainte sur la représentation géométrique.On constate alors que la solution optimale du nouveau do-maine admissible coïncide avec la solution entière décou-verte à l’étape précédente. Donc cette itération a permisde prouver grâce à une troncature supplémentaire (qui à

chaque fois n’élimine aucune solution entière) que la solution S2 était la solution entière optimale.

Voila pourquoi, après cette itération, tous les∆j sont négatifs ou nuls. On a donc obtenu la preuve quela solution entière optimale était :M1 = 6, M2 = 2 etM3 = 10−M1 −M2 = 2. EnfinZ = 4480.

Donc le constructeur doit construire 6 immeubles du modèle 1, et 2 des modèles 2 et 3. Il aura une margede 4,48 millions d’euros. Comme pour la solution optimale ennombre fractionnaire les 24 commandesde F3 sont satisfaites, par contre 3 commandes de F2 ne le sontplus. En contrepartie 6 commandes F1supplémentaires sont réalisées.

11.4 Conclusion

L’exemple de la section précédente a été spécialement construit pour obtenir une convergence très ra-pide. Avec des cas réels, la plupart du temps la solution entière proposée converge très vite vers la solutionentière optimale. Par contre le nombre de troncatures qu’ilfaut faire pour prouver que c’est bien la solutionoptimale peut être beaucoup plus élevé. En fait même si ces modèles ne correspondent généralement pas àceux obtenus pour des problèmes économiques réels, il est possible de concevoir des cas où la convergencene se fera pas. On aura très probablement trouvé la bonne solution, mais on ne pourra pas le prouver.

3Attentionˆ

−7

5

˜

vaut -2 et non pas -1 !

92 Eric LALLET , Jean-Luc RAFFY

Page 101: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Malheureusement les problèmes de programmation linéaire en nombre entier étant très complexe, iln’existe aucun algorithme qui permettra dans tous les cas d’obtenir avec un nombre raisonnable d’itérationsla bonne solution et la preuve qu’elle est bien la bonne solution.

Cependant, l’algorithme de la section précédente a un grandavantage. À toutes les étapes il propose unesolution entière admissible. Celle-ci ne peut que progresser vers son optimum. Et si la solution ne progresseplus, mais que l’algorithme ne se termine pas pour autant, ilest tout à fait possible de l’arrêter et d’accepterla solution courante. Il est fort probable qu’elle soit la solution optimale même si on n’en a pas la preuve.

11.5 Exercices

Exercice 11.1 (Meubles de rangement)

Un client d’un magasin obtient régulièrement des points cadeaux. Il peut les échanger contre diverscadeaux. Il vient de s’apercevoir qu’il avait 59 points cadeaux qui arrivaient à échéance. Il doit les échangerrapidement, ou les perdre. En consultant la liste des cadeaux accessibles pour ce nombre de points il n’entrouve que deux qui l’intéressent :

– Contre 10 points, il peut obtenir un petit meuble rectangulaire qui permet de ranger 10 CD.– Contre 12 points, il peut obtenir un petit meuble en forme detour qui permet de ranger 11 CD.

Comme ces meubles ont été conçus pour s’emboîter les uns avecles autres, il peut en prendre plusieurspour en composer un qui lui permettra de ranger ces CD.

Comment doit-il faire l’échange pour obtenir le plus de rangements possible ?

Correction page 142.

Eric LALLET , Jean-Luc RAFFY 93

Page 102: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

94 Eric LALLET , Jean-Luc RAFFY

Page 103: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Troisième partie

Modélisation

Eric LALLET , Jean-Luc RAFFY 95

Page 104: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE
Page 105: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Chapitre 12

Modélisation

12.1 Chemin de la question à la réponse

D’une manière générale, les problèmes auxquels on est confronté dans le monde réel sont d’une com-plexité telle qu’il est difficile, voire impossible, de les résoudre directement

On dispose également d’une masse d’informations dont certaines ne sont pas utiles à la résolution duproblème considéré.

C’est pour cette raison que l’on passe par une phase de modélisation. Un modèle estUNE représentationsimplifiée du monde réel, pertinente au regard du problème à résoudre. Il doit inclure toutes les informationsutiles mais uniquement celles-ci.

Le choix du modèle dépend donc directement du type de problème à résoudre mais aussi de la techniquede résolution que l’on a choisie.

Des simplifications peuvent être éventuellement effectuées sur le modèle de façon à réduire le nombred’itérations de l’algorithme.

La solution du problème trouvée, il faut revenir à la réalitépour apporter la réponse à la question initiale.

FIG. 12.1 – Modélisation et résolution d’un problème

La principale difficulté est dans l’étape de modélisation. On vient cependant de voir des techniquespermettant de répondre à certaines questions.

– Ordonner, planifier des tâches : Gantt et potentiel-tâches.– Construire un réseau à moindre coût : Arbre de recouvrementminimal.– Minimiser un stock, un coût, une tournée,. . . : le plus courtchemin.– Maximaliser un flot, une production, un transport, . . . : le flot max.

Eric LALLET , Jean-Luc RAFFY 97

Page 106: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

– Maximaliser un flot, une production, un transport à moindrecoût : le flot max coût min.– Optimiser un problème à multiples variables et multiples contraintes : programmation linéaire

Mais il faut aussi savoir les utiliser dans des cas moins attendus :– Le chemin critique du potentiel-tâche est en fait une recherche du plus long chemin. Donc cette

technique peut servir aussi à maximaliser un gain, ou tout autre chose.– Les marges totales d’un potentiel-tâche peuvent être vu comme du «temps disponibles» dans un

emploi du temps. On peut s’en servir pour synchroniser des plannings pour trouver une date deréunion sur des emplois du temps a priori déjà plein.

– Le flot max à coût min peut être décliné de bien des façons. On peut essayer d’obtenir le maximumde choses (objets, services, . . . ) pour un coût donné. Il suffit de décider d’arrêter l’algorithme quandon atteint le coût fixé plutôt que de l’arrêter quand on atteint le flot maximum. On peut aussi s’enservir pour connaître le coût minimum pour tout flot inférieur au maximum.

– . . .

12.2 Les erreurs à ne pas faire

Il est bien d’apprendre de ses erreurs. Mais parfois ces erreurs se payent un peu cher. Alors autantapprendre des erreurs des autres. Dans cette section vous allez trouver une collection d’erreurs trouvéesdans diverses copies lors des contrôles. Essayez de bien comprendre quelle erreur a été faite, et ne la faitespas vous même à l’avenir.

Erreur 12.1 (Diagramme de GANTT) Utiliser un diagramme de GANTT pour trouver le chemin critiqueet les marges totales des tâches.

Le diagramme de GANTT est parfait pour calculer la durée d’unprojet et donner un planning facilementlisible à une équipe. Mais il n’est pas adapté à la recherche du chemin critique. Pour ce genre de rechercheil faudra par exemple utiliser un potentiel-tâches.

Erreur 12.2 (Potentiel-tâches)Placer sur le graphe d’un potentiel-tâches, la durée des tâches sur les arcsentrants.

Sur le graphe d’un potentiel-tâches la durée des tâches se place sur les arcs qui partent de la tâche, et nonpas sur ceux qui y arrivent. Le graphe erroné pourra éventuellement vous donner la durée du projet, maispar contre les dates au plus tôt et les dates au plus tard seront toutes fausses. Ainsi, de par leur constructionles arcs qui partent du sommetα ajouté à la source du graphe doivent obligatoirement être valués avec unedurée nulle (voir figure 12.2).

Erreur 12.3 (Potentiel-tâches)Placer des valeurs différentes sur deux arcs partants d’un même sommet(c’est à dire d’une même tâche).

L’arc qui part d’un sommet est valué par la durée de la tâche qui est modélisée par ce sommet. Une tâchene peut pas avoir plusieurs durées. Donc obligatoirement, tous les arcs qui partent d’un sommet reçoiventla même valeur.

FIG. 12.2 – Sur un potentiel-tâches, la durée des tâches se placesur les arcs SORTANT des sommets

98 Eric LALLET , Jean-Luc RAFFY

Page 107: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Erreur 12.4 (Graphes avec arcs valués)Mettre la valeur (capacité, longueur, coût, durée) sur les som-mets.

Les valeurs des graphes valués vus dans ce cours (potentiel-tâches, plus court chemin, flot max, flot-maxcoût-min. . . ) se placent sur les arcs et non pas sur les sommets. Même pour le potentiel-tâches, les valeursque l’on place lorsqu’on déroule l’algorithme directementsur le graphe sont les résultats de l’algorithmeet non pas les valeurs obtenues lors de la modélisation. Pourtous ces graphes, si dans votre modélisationune valeur est apparue sur un sommet, c’est qu’il y a une erreur. Généralement vous avez tout simplementoublié des arcs dans votre modèle.

Erreur 12.5 (Modélisation et simplifications) Simplifier votre modèle avant d’avoir fini la modélisation.

Il faut éviter de simplifier votre modèle trop tôt. Même si desarcs ou des contraintes sont visiblement in-utiles, gardez les dans votre modèle s’ils en font vraiment partie. Ensuite une fois la modélisation finie, avantde mettre la technique en œuvre, simplifier ce qui peut l’être. Les arcs ou les contraintes a priori inutilespeuvent devenir nécessaires après le changement de la valeur d’un simple paramètre de votre problème. Ilspeuvent aussi être très utiles pour donner une interprétation complète et correcte de votre solution.

Prenons un exemple pour illustrer cette démarche. Imaginons un problème de programmation linéaireoù il faut trouver le maximum de Z avec le modèle suivant :

(Modèle 1)

(1)X1 + X2 ≤ C1

(2)X1 + X2 ≤ C2

(3)X1 ≤ C3

Z = 2×X1 + X2

M1 ≥ 0 etM2 ≥ 0

Si C1 ≤ C2 on peut faire disparaître l’inégalité(2) pour obtenir le modèle :

(Modèle 2)

(1)X1 + X2 ≤ C1

(3)X1 ≤ C3

Z = 2×X1 + X2

M1 ≥ 0 etM2 ≥ 0

Et par contre siC2 ≤ C1 on peut faire disparaître l’inégalité(1) pour obtenir le modèle :

(Modèle 3)

(2)X1 + X2 ≤ C2

(3)X1 ≤ C3

Z = 2×X1 + X2

M1 ≥ 0 etM2 ≥ 0

Lors de votre modélisation vous serez forcement dans l’un des deux cas. Donc vous serez fortementtenté de faire disparaître de votre modèle l’inégalité inutile. Il est vrai que si votre problème est bien fixe etque les paramètres ne risquent pas de changer, le modèle simplifié fera très bien l’affaire. Mais imaginonsqu’immédiatement après ce premier problème, vous rencontrez le même avec juste des paramètres quichangent (par exemple deC1 ≤ C2 on est passé àC2 ≤ C1). Si vous avez modélisé avec le modèlecomplet (modèle 1), votre modélisation reste exacte, vous avez juste à procéder à la bonne simplificationavant d’utiliser la technique de résolution (par exemple unsimplexe). Si vous avez d’office utilisé un modèlesimplifié, il ne correspond plus au nouveau problème et vous devez refaire une nouvelle modélisation.

Erreur 12.6 (Simplexe) Utiliser le simplexe pour ensuite refaire les calculs à la main.

Le simplexe est un algorithme très complet. Il ne se contentepas de trouver la valeur des variables de votreproblème, il calcule aussi celles de la fonction économique, des variables d’écarts, des valeurs marginales.Alors évitez d’utiliser le simplexe en ne calculant que la valeur des variables en base pour ensuite faire lecalcul à la main pour trouver la valeur de la fonction économique. Par contre à titre de vérification, vouspouvez effectivement recalculer à la main la valeur de la fonction économique à partir de la valeur desvariables pour la comparer à celle trouver par votre simplexe : une différence démontre une erreur de calcul.

Eric LALLET , Jean-Luc RAFFY 99

Page 108: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

12.3 Exercices

Dans les chapitres précédents il était aisé de deviner la technique à mettre en œuvre pour les exercicespuisqu’ils concernaient le sujet traité juste au dessus. Voila pourquoi la plupart des exercices ont été placésdans ce chapitre. Ainsi vous n’aurez plus d’a priori sur le type de modélisation que vous devrez utiliser pourles résoudre. Il faudra le trouver par votre analyse du problème.

Exercice 12.1 (Commerce de guilde)

Une guilde du «Seigneur des Anneaux Online» a décidé de fairecommerce de son artisanat. Elle vientde recevoir une commande pour un ensemble de 10 arbalètes, 10sets complets d’armures lourdes, et 10épées. Pour réaliser cette commande il faut récolter deux types de fer (le fer de nain et le fer ancien), dubois et du cuir. Il faut ensuite faire divers alliages de fer,traiter le bois et le cuir. Enfin il faut réaliser lesobjets. Elle décide de confier ces tâches à trois de ses membres :

– Tawar : Elfe chasseur menuisier, il aura pour tâche d’allerrécolter le bois, de chasser pour rapporter lecuir. C’est aussi lui qui fera le traitement du bois et du cuir. Enfin c’est lui qui réalisera les arbalètes.

– Gorog : Nain prospecteur et ferronnier, il aura pour tâche de ramasser le fer de nain. C’est aussi luiqui aura la tâche de faire les armures. Mais attention, Gorogexige d’avoir le droit à une pause de 15minutes à la taverne entre ses 2 tâches !

– Albin : Humain prospecteur et fabriquant d’arme, il aura pour tâche de ramasser le fer ancien. C’estlui qui transformera tout le fer (fer de nain, et fer ancien) afin d’obtenir les alliages utiles aux arbalètes,aux armures et aux épées. Enfin c’est lui qui réalisera les épées.

Tawar prévoit de passer 45 minutes pour récolter la totalitédu cuir et du bois. Il lui faudra 15 minutespour en faire le traitement. Les arbalètes sont fabriquées avec du bois traités et un alliage de fer. Il lui faudra20 minutes pour toutes les faire.

Gorog prévoit de passer 1h pour récolter le fer de nain. La fabrication de ses armures utilisent desalliages de fer et du cuir traité. Il pense pouvoir faire toutes les armures en 25 minutes.

Albin passera 1h à ramasser le fer ancien. Il lui faudra 20 minutes pour réaliser les alliages. Ensuitepour fabriquer toutes les épées qui ne nécessitent que des alliages de fer, il lui faudra 10 minutes.

Une fois tout réalisé, Albin doit réunir la commande pour aller la livrer. Cela doit lui prendre 10 minutes.

Combien de temps faut-il prévoir pour livrer cette commande?

Gorog a-t-il retardé la livraison à cause de sa pause à la taverne ? Quelle est la pause maximale qu’ilpeut faire sans retarder la livraison ?

Correction page 143

Exercice 12.2 (Commerce de guilde (suite))

Les épées et les arbalètes ont satisfait les clients. La guilde a reçu de nombreuses commandes. Elledécide de les produire en série. Pour fabriquer une arbalèteil faut ramasser 25 morceaux de bois, et 20blocs de fer de nain. Pour fabriquer une épée il faut 25 blocs de fer ancien et 20 blocs de fer de nain. Tawarpeut ramasser 1000 morceaux de bois par semaine, Gorog 1000 blocs de fer de nain et Albin 1000 blocs defer ancien.

Sachant que la guilde vend une épée pour 1 pièce d’or (1 pièce d’or = 1000 pièces d’argent) et unearbalète pour 500 pièces d’argent, quel est le gain maximal qu’elle peut faire par semaine.

Gorog a négocié de recevoir 1 chope de bière par épée vendue, et 2 chopes par arbalète vendue. Or cettesemaine c’est lui qui dirige la production. Sachant qu’il vaprivilégier son intérêt (la bière !) quelles vontêtre les pertes de gain pour la guilde cette semaine ?

Correction page 144

Exercice 12.3 (Commerce de guilde (fin))

Un client se propose d’acheter le stock de matières premières (bois, fer de nain, et fer ancien). A quelprix minimum la guilde doit-il le vendre pour ne pas perdre d’argent par rapport à la vente optimale desproduits fabriqués ? (on sait dors et déjà que le prix minimumdu stock total est celui de la vente optimaledu problème 12.2. Il faut trouver la modlélisation qui le justifie.)

Correction page 146

100 Eric LALLET , Jean-Luc RAFFY

Page 109: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Exercice 12.4 (Reconstruction)

Vous êtes le Ministre du Budget d’un petit pays victime d’unecatastrophe naturelle qui a détruit touteinfrastructure et quasiment toutes les ressources de production sauf celles situées dans la ville de Coude-bolle.

Le Ministre de l’Equipement a fait chiffrer par ses servicesles coûts de reconstruction du réseau routierentre les principales villes (seules peuvent être construites, les routes dont les coûts sont indiqués dans letableau suivant)

Coudebolle Borivage Ollala Pompays TecugeCoudebolle 3000 7000 7000Borivage 2000 4000

Ollala 2000 3000Pompays 6000Tecuge

Quelle solution allez-vous adopter pour obtenir un réseau routier minimal au moindre coût ? On entendpar réseau routier minimal, un réseau permettant d’aller den’importe quelle ville vers n’importe quelleautre.

Correction page 146

Exercice 12.5 (Reconstruction (suite))

Le Ministre de l’Industrie intervient alors et vous reproche d’avoir une vue à court terme et qu’il fautaussi prendre en compte le fait que toutes les ressources de production sont maintenant concentrées à Cou-debolle.

Il vous transmet donc les coûts de transport (par tonne) estimés entre les différentes villes.

Coudebolle Borivage Ollala Pompays TecugeCoudebolle 3 7 7Borivage 4 2 4

Ollala 6 4 2 3Pompays 3 6Tecuge 8 8 6 8

(Vous aurez remarqué que le coût de transport de A vers B n’estpas obligatoirement le même que de Bvers A).

En supposant que le réseau routier est complet (toutes les routes possibles existent), optimisez les coûtsde transport à partir de Coudebolle vers toutes les villes.

Correction page 147

Exercice 12.6 (Reconstruction (fin))

Comme tout Ministre du Budget, vous tentez de concilier les intérêts de l’Etat (reconstruire au coûtminimum) et des acteurs économiques (ici, coûts de transport minimum).

Quelle solution adopteriez-vous et pourquoi?

Quel sera le surcoût par rapport à ce que vous avez calculé à lapremière question ?

Correction page 148

Eric LALLET , Jean-Luc RAFFY 101

Page 110: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Exercice 12.7 (Donjon et trésors)

Vous avez inventé un jeu vidéo très simple dont le scénario est le suivant :

Le joueur doit découvrir une salle aux trésors dans un donjonhanté. Pour cela il doit parcourir des salleset dans chaque salle il est soumis à certaines épreuves. Il n’existe bien sûr pas de chemin unique pour allerà la salle aux trésors mais suivant le parcours du joueur, le nombre d’épreuves qu’il aura à affronter peutêtre différent.

Votre jeu connaît un succès appréciable et votre éditeur vous demande d’organiser un grand tournoi.Vous adaptez les règles pour ce tournoi. Le nombre de points sera déterminé par le nombre d’épreuvespassées et le temps départegera les joueurs ex-aequo.

Pour des raisons d’organisation, l’organisateur veut savoir combien de temps il faut au minimum pourparvenir à la salle au trésor en ayant passé le maximum d’épreuves. De plus il veut que vous déterminiezpour chacune des salles un temps maximum pour y parvenir au-delà duquel le joueur est éliminé. Ce tempsest fixé a priori de façon à ce que le joueur ne puisse plus terminer le jeu moins d’une heure après le tempsminimal quelque soit le chemin qu’il emprunte ensuite.

Le château possède 8 salles (plus la salle aux trésors). Le tableau suivant vous indique le nombred’épreuves par salle.

Salle Nombred’épreuves

S1 2S2 4S3 3S4 5S5 4S6 2S7 6S8 3

Le temps minimum pour chaque épreuve est de 10 minutes.

Le tableau qui suit indique les possibilités de passage d’une salle à l’autre.

S1 S2 S3 S4 S5 S6 S7 S8S1 X XS2 X XS3 X XS4 XS5 X XS6 XS7 XS8

Le joueur part de la salle S1 et doit se rendre à la salle S8 qui lui donne l’accès à la salle aux trésors.

Quel chemin doit emprunter un joueur pour avoir le maximum depoints possibles ?

Quelle est l’heure maximale d’arrivée dans chaque salle pour ne pas être éliminé (l’heure 0, étant l’heured’entrée dans la salle 1, et le joueur aura le droit d’emprunter un chemin qui ne donne pas le maximum depoints) ?

Correction page 148.

Exercice 12.8 (Préparation des secours)

Un pays tropical doit faire face avec ses propres et maigres moyens à un cyclone en approche. Lesprévisions indiquent que le cyclone arrivera sur le sud d’une île du pays et qu’il risque de dévaster la régiondont la ville principale, Farniente est hautement touristique. Le gouvernement a fait évacuer la zone etdécide de préparer des équipes de secours pour réparer au plus vite les infrastructures après le passage du

102 Eric LALLET , Jean-Luc RAFFY

Page 111: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

cyclone. Il veut pouvoir disposer d’un maximum de personnelqualifié dans une ville hors du chemin ducyclone, mais à proximité : Estival. Actuellement ce personnel est cantonné dans la capitale : Aunor.

Le gouvernement dispose de quelques jours pour transporterle plus de personnes possible depuis lacapitale jusqu’à Estival. Pour cela il dispose de plusieursmoyens de transport (voir figure 12.3) :

FIG. 12.3 – Les infrastructures de transports

– Par bateau : Le voyage se fait en trois étapes. Depuis Aunor jusqu’à Bordelot la capacité de transportsera au total de 1000 personnes. Depuis Bordelot jusqu’à Danlo la capacité de transport sera autotal de 1000 personnes. Et depuis Danlo jusqu’à Estival la capacité totale de transport sera de 700personnes.

– Par avion : Le voyage se fait en deux étapes. Depuis Aunor jusqu’à Danlo la capacité de transportsera de 1000 personnes. Et depuis Danlo jusqu’à Estival la capacité totale de transport sera de 700personnes.

– Par route : Une fois arrivée à Bordelot, une route mène en deux étapes à Estival en passant parCampagne. Entre Bordelot et Campagne la capacité totale sera de 1000 personnes. Entre Campagneet Estival la capacité totale sera de 700 personnes.

Toutes ces capacités de transports prennent en compte la totalité des gens que l’on peut transporter surles quelques jours de préparation. Elle concernent des horaires qui permettent des correspondances pouracheminer les personnes jusqu’à Estival.

Combien de personnes au maximum sera-t-il possible d’acheminer depuis Aunor jusqu’à Estival ?

Pour chaque étape en bateau, le coût de transport d’une personne est de 1 galet (l’unité monétaire dupays). Pour chaque étape en avion le coût monétaire de transport d’une personne est de 6 galets. Pour chaqueétape de route le coût monétaire de transport d’une personneest de 2 galets. Le gouvernement dispose d’unbudget de 5400 galets pour le transport des personnes.

Combien pourra-t-il en transporter?

Correction page 149

Eric LALLET , Jean-Luc RAFFY 103

Page 112: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Exercice 12.9 (Déploiement des secours)

Le cyclone est passé, l’heure de la reconstruction est venue. Par chance les routes, le port et l’aéroportde Farniente ne sont que partiellement endommagés. Il est possible de les utiliser avec des transports légerspour acheminer le personnel et le matériel nécessaire. Une équipe de reconstruction est composée de 20personnes et de 1 tonne de matériel. Toutes les équipes ont été composées à Estival et pour des raisonslogistiques et d’organisation il faut transporter les 20 personnes d’une même équipe dans le même transport.De même chaque lot de 1 tonne de matériel ne doit pas être divisé durant la transport. Enfin, même si lematériel peut voyager sur un autre transport que le personnel, il faut qu’à l’arrivée il y ait autant d’équipesde 20 personnes que de lots de matériel.

Trois moyens de transports sont disponibles :– Des avions : ils peuvent transporter chacun 2 équipes. Chaque voyage coûte 250 galets.– Des bateaux : ils peuvent transporter chacun 1 équipe et 7 lots de matériel. Chaque voyage coûte 150

galets.– Des camions : ils peuvent transporter chacun 3 équipes et 1 lot de matériel. Chaque voyage coûte 150

galets.Pour cette phase des opérations le gouvernement dispose d’un budget de 3500 galets.

Combien pourra-t-il déployer d’équipes (avec son matériel) sur place ?

Correction page 154

104 Eric LALLET , Jean-Luc RAFFY

Page 113: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Quatrième partie

Appendix

Eric LALLET , Jean-Luc RAFFY 105

Page 114: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE
Page 115: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Annexe A

Corrections des exercices

A.1 Graphe

A.1.1 Correction de l’exercice 1.1 de la page 9

Pour ce problème il faut construire le graphe des rencontres. Mais ils ne suffit pas de relier les gensentre eux, car il faut tenir compte de la notion du temps. Après chaque rencontre les personnages sont«nouveaux». Il faut donc créer un nouveau sommet pour chaquepersonnage après chaque rencontre.

Arnaud fait 2 rencontres, il sera donc représenté par 3 sommets : A, A1 et A2.

Bertrand ne fait qu’une rencontre. Il faudra 2 sommets : B, B1.

Cyril fait 2 rencontres. il faudra 3 sommets : C, C1, C2.

Ainsi de suite jusqu’à Fanny et ses 2 rencontres (F, F1, F2).

On arrive au graphe de la figure A.1.

FIG. A.1 – Graphe des rencontres

Maintenant il faut être capable de trouver un chemin pour acheminer les colis. Il en existe bien un allantde Bertrand à Fanny : Il passe par A1, C1, D2, E3 et finit sur F2. Donc il faut que Bertrand donne son colisà Arnaud lundi qui le donne à Cyril le mardi, qui le transmet à Dorothée le mercredi. Jeudi Étienne le reçoitpour l’acheminer à Fanny le vendredi.

Par contre aucun chemin n’existe entre Étienne et Arnaud. Iln’est pas possible d’acheminer ce colis.

Eric LALLET , Jean-Luc RAFFY 107

Page 116: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

A.1.2 Correction de l’exercice 1.2 de la page 9

À la lecture des témoignages, au moins Gabriel ne semble pas très net. Mais analysons le problème deprès. Déjà dessinons le graphe des rencontres (comme tous les témoignages sont cohérents, on va utiliserun graphe non orienté : les rencontres sont réciproques). Voir la figure A.2.

A

B

C

D

E

G

F

FIG. A.2 – Graphe des rencontres

Comment peut-on interpréter ce graphe ? Chaque sommet est enfait un (ou plusieurs pour les tricheurs !)intervalle de temps. Les autres personnes qui y sont reliés sont les personnes qui ont été présentes dans lasalle durant cet intervalle de temps. Réduisons ce graphe à F, E, D A (voir figure A.3). On voit que Fanny avu Étienne mais pas Dorothée. Comme Étienne a vu Dorothée, onpeut en conclure que le passage d’Étiennes’est passé entre celui de Fanny et Dorothée avec un peu de temps en commun avec chacune des deux. Doncun chemin du style F,E,D,A correspond au déroulement du temps (même si on ne peut pas dire dans quelsens va le temps).

A

D

E

G

F

A

D

E

F

FIG. A.3 – Réductions du graphe à des sous-ensembles

Si on prends la réduction du graphe à F, E, D, A, G (voir figure A.3). On a toujours notre ligne de temps,mais avec Gabriel relié à tous. Cela veut juste dire qu’il a été témoin de toutes les autres rencontres. Maiscomme sa présence est continue, il a pu faire cela sans quitter la pièce. Donc ce sous graphe ne pose aucunproblème avec les règles du test.

Prenons par contre la réduction du graphe à A, B, C, D (voir figure A.4). Ici on a cycle. Et comme ona toujours une personne qui n’a pas été vu d’une autre, cela prouve que personne n’est resté en continudans la salle. Comme le temps ne cycle pas, seul le double passage d’une des 4 personnes peut expliquer cecycle. Il y a donc un tricheur parmi elles.

De la même manières tout cycle de 4 ou plus personnes où les gens ne sont reliés qu’à deux autresprouvera l’existence d’une tricherie. On peut trouver 2 cycles de genre sur le graphe. On les voit en réduisantle graphe à A,B,C,D et à C, D, E, F (voir figure A.4).

Il y a eu ici 2 boucles temporelles. Dans le cycle A, B, C, D au moins un acteur est entrée deux fois dansla pièce, et la même chose pour le cycle C, D, E, F. En fait, si onretire C du graphe d’origine, on obtient ungraphe sans anomalies (voir la figure A.5).

Ce graphe dernier permet de bien faire ressortir la chronologie des événements (sauf pour ce qui est du«sens» du temps : on va supposer que temps commence avec l’arrivée de F dans la salle, mais il est possibleque le temps doive être pris dans sens inverse et donc F soit ledernier a quitté la salle).

En ne tenant pas compte de Cyril, on obtient : Fanny ou Gabrielest entré en premier. Étienne est arrivéavant le départ de Fanny. Fanny est sortie. Dorothée est alors arrivée. La sortie d’Étienne a précédé l’arrivéed’Arnaud. Dorothée est sortie avant que n’arrive Bertrand.

Comme Fanny a vu Cyril sans que Étienne ne le voit, Cyril étaitdéjà dans la pièce avant Fanny, mais il

108 Eric LALLET , Jean-Luc RAFFY

Page 117: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

C

D

E

F

A

B

C

D

FIG. A.4 – Des sous-graphes incompatibles

A

B

D

E

G

F

FIG. A.5 – Sous graphe sans anomalies

est sorti avant l’arrivée d’Étienne. Dorothée a vu Cyril, mais ni Étienne ni Arnaud ne l’ont vu. Donc Cyrilest repassé dans la pièce entre l’arrivée de Dorothée et l’arrivée d’Arnaud. Bertrand a aussi vu Cyril, maisArnaud non. Donc Cyril est repassé une troisième fois après le départ d’Arnaud. Comme Gabriel n’a vuentrer personne deux fois de suite on peut aussi déduire qu’il est entrée dans la pièce après le premier départde Cyril (donc après Fanny), et qu’il l’a quitté avant le troisième passage de Cyril (donc avant Bertrand).On a donc la chronologie complète des passages.

Comme Cyril a fait 3 passages, on a l’explication des 2 entrées en trop. Il n’y a donc qu’un seul tricheur.

A.1.3 Correction de l’exercice 1.3 de la page 10

Le graphe des rencontres est dessiné sur la figure A.6.

A

B

C

D

E

G

F

FIG. A.6 – Graphe des rencontres

Il y a bien un cycle anormal : F, C, D, E. On est donc sûr qu’il y a eu tricherie. Mais on est incapable dedire combien il y a eu de tricheries et qui a triché. Les informations fournies ne permettent pas de le dire.

A.1.4 Correction de l’exercice 1.4 de la page 10

Pour cet exercice il faut commencer par établir la liste de tous les dispositions autorisées de nos 4protagonistes. Pour cela on va symboliser le fermier par un F, le loup par un L, la chèvre par un C, le chouxpar un X et la rivière par un /. Donc par exemple l’état de départ est «FLCX/» et l’état final voulu est«/FLCX». L’état où le loup et le choux sont sur la rive d’origine alors que le fermier et la chèvre sur l’autrerive s’écrit : «LX/FC»

Les dispositions autorisées sont celles où on ne trouve pas la chèvre sur la même rive que le loup ou

Eric LALLET , Jean-Luc RAFFY 109

Page 118: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

le choux alors que le fermier est sur l’autre rive. Donc toutes les combinaisons 3/1 ou 1/3 avec le fermierparmi les 3 sont possibles, mais les seules combinaisons 2/2possibles sont FC/LX ou LX/FC. On obtient laliste sur la figure A.7.

FLCX/ FLX/C FLC/X FCX/L FC/LX

LX/FC L/FCX X/FLC C/FLX /FLCX

FIG. A.7 – Les dispositions possibles

Maintenant on trace une arête entre deux sommets lorsqu’il est possible de passer d’une disposition àl’autre par un voyage en barque du fermier (et de son éventuelpassager). On obtient un graphe biparti avecdans un ensemble (en haut) les sommets où le fermier est sur larive d’origine, et dans l’autre (en bas) lessommets où le fermier est sur la rive d’arrivée (voir figure A.8).

FLCX/ FLX/C FLC/X FCX/L FC/LX

LX/FC L/FCX X/FLC C/FLX /FLCX

FIG. A.8 – Les connexions possibles entre les dispositions

Pour résoudre le problème, il suffit maintenant d’emprunterun chemin allant de la disposition FLCX/ àla disposition /FLCX.

A.2 Ordonnancement

A.2.1 Correction de l’exercice 2.1 de la page 24

Suite à ces explications très claires de votre collègue, la première étape va être d’identifier toutes lestâches et leurs dépendances.

Commençons par l’aspect logistique, qui ne dépend pas de l’aspect scientifique :

Tâche A : Choix du comité d’organisation. Sans lui, aucune tâche logistique ne peut se faire. Durée : 1semaine.

Tâche B : Choix de l’hôtel. Il est fait par le comité d’organisation : aprèsA. Durée : 3 semaines.

Tâche C : Choix des menus et prix des repas. Il faut avoir choisi l’hôtel : aprèsC : Durée : 1 semaine.

Tâche D : Choix du lieux du banquet. Il est fait par le comité d’organisation : aprèsA. Durée : 2 semaines.

Tâche E : Détermination du prix payé par les conférenciers. Cela dépend du banquet et des menus : aprèsC et D. Durée : 1 semaine.

Traitons maintenant l’aspect scientifique :

Tâche F : Choix du comité de programme. De lui dépend tout l’aspect scientifique. Durée : 3 semaines.

Tâche G : Première réunion. Il faut que le comité scientifique et l’hôtel soient choisis : aprèsB etF. Durée :0 semaine.

Tâche H : Appel et attente des communications : Cette tâche arrive après la première réunion et la déter-mination du prix : aprèsG et E. Durée : 8 semaines.

Tâche I : Sélection des articles. Elle arrive après les réponses à l’appel : aprèsH. Durée 8 semaines.

110 Eric LALLET , Jean-Luc RAFFY

Page 119: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Tâche J : Second réunion. Elle suit la sélection des articles et arrive après le choix du lieux de banquet :aprèsI etD. Elle doit arriver au moins 3 semaines avant le colloque : durée 3 semaines.

Tâche K : Mise en forme des articles sélectionnés. Elle arrive après la sélection des articles : aprèsI . Durée4 semaines.

Tâche L : Impression des «Proceedings». Elle arrive après la mise en forme des articles : aprèsK . Durée6 semaines.

Tâche M : Réception des livres. Elle suit l’impression : après la tâche L . Il faut les recevoir au moins 1semaine avant le colloque : durée 1 semaine.

Tâcheω : Le début du colloque. Il faut que tous les aspects logistiques soit réglés que le programme finalsoit fixé (deuxième réunion), et que les livres soient reçus :aprèsE, J et M .

Après avoir ajouté une tâche fictiveα de durée nulle placée avant les tâches sans dépendances, on obtientle graphe de la figure A.9

FIG. A.9 – Le graphe des tâches

On peut simplifier un peu ce graphe. Lorsqu’on a un cheminX → Y → Z, avec Y seul successeur deX, et Z seul successeur de Y, on peut supprimer Y, et remplacerle chemin parX → Z. La durée du nouvelarc reçoit la somme des durées des deux anciens. À la fin pour retrouver la date au plus tôt et la date auplus tard de Y, il suffira d’ajouter la durée de la tache X aux dates de X (et donc la marge totale de Y seraexactement la même que celle de X ).

Donc une fois simplifié on obtient le graphe de la figure A.10 :

FIG. A.10 – Le graphe simplifié des tâches

Maintenant, il suffit de mettre en œuvre le potentiel-tâchespour avoir la réponse à toutes les questions.Cela donne le graphe de la figure A.11

La durée minimale du projet est donc de 33 semaines. Vous devez à tout prix commencer 33 semainesavant le 17 décembre c’est à dire avant le 30 avril.

Vous avez une marge de 2 semaines sur la date de la première réunion (tâche G) et 8 semaines sur ladate de la seconde (tâche J).

Eric LALLET , Jean-Luc RAFFY 111

Page 120: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.11 – Le résultat du potentiel-tâches

A.2.2 Correction de l’exercice 2.2 de la page 25

La modélisation de ce problème ne saute pas aux yeux. Mais l’énoncé indique qu’il faut le modéliseravec un graphe et une recherche de plus long chemin. On va doncle modéliser ainsi. Mais notez queexactement le même exercice est aussi proposé dans la section de la recherche du plus court chemin. Doncla modélisation qui suit est une modélisation parmi d’autres, et non pas la seule possible !

La recherche d’un plus long chemin est bien adaptée à une recherche de maximum. Dans notre problèmeon trouve des gains et des coûts. Il est évidemment bien plus pertinent de trouver le maximum des gains.On va donc modéliser avec un graphe où les arcs seront valués avec des gains. Pour réussir à modéliser lescoûts sur ce graphe, on va les interpréter comme des gains négatifs. Une fois le graphe obtenu, il faudratrouver le chemin qui nous donnera le gain maximal. Ce gain pourra être positif ou négatif. Suivant le cason pourra conseiller à Apollodore de travailler ou non.

La première étape consiste à trouver un graphe qui modélise les possibilités d’Apollodore. Chaquejour le travail d’Apollodore va faire évoluer son stock de repas. Il pourra soit l’augmenter de 50 (le lundi,le mardi et le jeudi), soit le diminuer de 100 (le mardi et le vendredi), soit le laisser inchangé (tous lesjours). L’état de ce stock à la fin de chaque journée convient parfaitement pour modéliser les possibilitésd’Apollodore. Comme il produit ses repas par 50, qu’il les consomme pas 100 et que son stock maximalest de 100, à la fin de chaque journée son stock a trois états possibles : 0 repas, 50 repas ou 100 repas. Simodélise immédiatement la contrainte qui l’oblige à finir avec un stock nul le vendredi soir, notre graphedevra passer par les états de la figure A.24.

FIG. A.12 – Tous les états possibles du stock d’Apollodore

Il faut maintenant placer les arcs entre ces états. Le lundi Apollodore peut ne rien faire (le stock reste à0) ou produire 50 repas (le stock passe à 50 -état Lun 50-). S’il produit 50 repas, cela va lui coûter 2k euros(donc un gain de -2k). On va donc valuer cet arc avec la valeur -2 (notre unité sera le kilo euros). L’état Lun100 ne peut pas être atteint, il faudra le retirer du graphe. Le mardi le stock d’Apollodore ne lui permet pas

112 Eric LALLET , Jean-Luc RAFFY

Page 121: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

de répondre à la demande du premier banquet. Il n’a donc que 2 choix possibles : ne rien faire (son stock nebouge pas), ou produire 50 repas pour un coût de 2k euros (son stock monte de 50). Le mercredi il n’a pasaccès aux cuisines pour produire. Il n’a que deux choix : ne rien faire, ou servir les 100 repas du banquetsde mercredi (si son stock le lui permet). Ce banquet lui rapporte 3k euros (il faut penser à retirer le 1k eurosque lui coûte le service de chaque banquet). L’arc va être valué avec la valeur 3. On continue ainsi jusqu’àla fin de la semaine et on arrive à la figure A.13

FIG. A.13 – Ajouts des arcs suivants les actions d’Apollodore

Sur le graphe de la figure A.13, l’état «Jeu 50» se trouve en dehors de tout chemin menant au seul étatfinal acceptable (stock vide vendredi soir). Il faut donc le retirer de notre modélisation. On obtient le graphede la figure A.14.

FIG. A.14 – Graphe nettoyé des états impossibles

On peut encore maintenant simplifier ce graphe avant de fairetourner l’algorithme de recherche de pluslong chemin : on supprime les états sur lesquels il n’y qu’un seul arc entrant et un seul arc sortant. Onremplace les 2 arcs par un nouvel arc valué par la somme des deux valeurs. On obtient le graphe de la figureA.15.

Il nous reste plus qu’à appliquer le même algorithme que pourle potentiel-tâches. Attention, même sion parle du même algorithme, ce graphe n’est absolument pas celui d’un potentiel-tâches (petit rappel :par construction, sur un graphe d’un potentiel-tâches les valeurs des arcs partant du premier sommet sonttoutes nulles, et les valeurs des arcs partant d’un même sommet sont toutes identiques. Ce n’est pas le casdu graphe que l’on a construit ici !). On obtient le graphe de la figure A.16.

Eric LALLET , Jean-Luc RAFFY 113

Page 122: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.15 – Graphe simplifié avant algorithme

FIG. A.16 – Recherche du plus long chemin

Sur ce graphe on a stoppé l’algorithme dès l’étape du calcul équivalent à la recherche des «dates auplus tôt». Ces valeurs correspondent à celles du plus long chemin menant vers chacun des sommets. Or lavaleur obtenue pour le sommet en bout de graphe est 0. Il n’estdonc même pas la peine de chercher par quelchemin on arrive à cette valeur (cette recherche consisterait à rechercher ce qui correspondrait au chemincritique sur le potentiel-tâches), puisque le meilleurs scénario n’est pas intéressant pour Apollodore. Dansle meilleurs de cas, même s’il travaille, il ne peut pas gagner d’argent ! Donc il vaut mieux lui conseiller dene rien faire cette semaine.

A.2.3 Correction de l’exercice 2.3 de la page 25

La modélisation de cet exercice est exactement identique à celle du précédant. Par contre l’aide apportéepar Aristodème va enrichir le nombre de scénarios possibles. Grâce à cette main d’œuvre supplémentaire ilsera possible de produire jusqu’à 100 repas le lundi, mardi et jeudi. De plus même si l’un des deux sert lebanquet du mardi, l’autre pourra produire 50 repas le même jour. Ainsi il est envisageable de ne diminuerle stock que de 50 repas tout en servant ce banquet.

On obtient le graphe de la figure A.17.

114 Eric LALLET , Jean-Luc RAFFY

Page 123: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.17 – Ajouts des arcs en tenant compte des actions d’Apollodore et d’Aristodème

Sur le graphe de la figure A.17, l’état «Jeu 50» se trouve en dehors de tout chemin menant au seul étatfinal acceptable (stock vide vendredi soir). Il faut donc le retirer de notre modélisation. On obtient le graphede la figure A.18.

FIG. A.18 – Graphe nettoyé des états impossibles

On peut encore maintenant simplifier ce graphe avant de fairela recherche du plus long chemin : onsupprime les états sur lesquels il n’y qu’un seul arc entrantet un seul arc sortant. On remplace les 2 arcs parun nouvel arc valué par la somme des deux valeurs. On obtient le graphe de la figure A.19.

On applique l’algorithme utilisé sur les graphes d’un potentiel-tâches pour obtenir le graphe de la figureA.20.

Cette fois on obtient la valeur 3 sur le sommet final du graphe.Donc le meilleurs scénario permet dedégager un gain de de 3k euros. Apollodore et Aristodème ont donc intérêt à travailler ensemble cettesemaine.

Le chemin critique du graphe permet de dégager ce meilleurs scénario. Interprétons-le :– Il faut commencer par augmenter le stock de 100 dès le lundi.Donc les 2 traiteurs doivent travailler

en cuisine le lundi.– Ensuite le stock repasse à 0 le mardi. Donc l’un des deux doitservir le banquet du mardi pendant que

l’autre se repose.– Mercredi le stock reste à 0. Donc les deux traiteurs se reposent.

Eric LALLET , Jean-Luc RAFFY 115

Page 124: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.19 – Graphe simplifié avant algorithme

FIG. A.20 – Recherche du plus long chemin

– Il faut remonter le stock à 100 le jeudi. Donc les deux doivent travailler en cuisine.– Et vendredi le stock repasse à 0. Donc l’un sert le banquet duvendredi pendant que l’autre se repose.

A.2.4 Correction de l’exercice 2.4 de la page 25

Apollodore et Aristodème se demandent comment organiser leurs tâches pour être le plus efficace pos-sible. Il s’agit donc évidemment d’un problème d’ordonnancement. La question porte juste sur le choixentre deux scénarios possibles. Il suffit donc de calculer letemps pris par les deux scénarios et de choisirle plus rapide. Il n’est même pas utile de trouver les tâches critiques, donc un simple diagramme de Ganttsuffira. Bien sûr un potentiel-tâches répond tout aussi bienà la question. Pour cette correction nous allonsfaire un diagramme de Gantt.

La première étape consiste à trouver les dépendances des tâches.

Pour le premier scénario, Apollodore doit commencer par préparer la pâte brisé avant de faire la tarteelle même. Aristodème étalera cette pâte après la préparation de crème anglaise.

On obtient donc les dépendances suivantes :

116 Eric LALLET , Jean-Luc RAFFY

Page 125: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Nom de la Description Durée dépendancestâche (en minute)

A Préparer la pâte 5B Laisser reposer la pâte 30 après AC Préparer la crème 15D Étaler la pâte 5 après B et CE Laisser refroidir la crème 15 après CF Mettre la crème au réfrigérateur 30 après EG Préparer le moule 5 après AH Préparer les pommes 10 après GI Mettre en place des pommes 10 après HJ Caraméliser les pommes 5 après IK Placer la pâte 5 après D et JL Cuisson 15 après K

Traduit sous la forme d’un diagramme de GANTT, on obtient :

Tâches 05 10 15 20 25 30 35 40 45 50 55 60 65

A

B

C

D

E

F

G

H

I

J

K

L

Donc avec ce scénario, en 60 minutes tout est prêt.

Regardons maintenant le second scénario : seule la tache A change d’acteur. Donc Apollodore peutcommencer la tâche G immédiatement, par contre Aristodème doit reporter le début de la tâche C après lafin de la tache A.

On obtient les dépendances suivantes :

Eric LALLET , Jean-Luc RAFFY 117

Page 126: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Nom de la Description Durée dépendancestâche (en minute)

A Préparer la pâte 5B Laisser reposer la pâte 30 après AC Préparer la crème 15 après AD Étaler la pâte 5 après B et CE Laisser refroidir la crème 15 après CF Mettre la crème au réfrigérateur 30 après EG Préparer le moule 5H Préparer les pommes 10 après GI Mettre en place des pommes 10 après HJ Caraméliser les pommes 5 après IK Placer la pâte 5 après D et JL Cuisson 15 après K

Traduit sous la forme d’un diagramme de GANTT, on obtient :

Tâches 05 10 15 20 25 30 35 40 45 50 55 60 65

A

B

C

D

E

F

G

H

I

J

K

L

Donc avec ce second scénario il faut 65 minutes pour que tout soit prêt.

Apollodore et Aristodème devraient suivre la premier scénario pour terminer leur préparation le plusvite possible.

A.3 Arbre

A.3.1 Correction de l’exercice 3.1 de la page 34

Aucun doute possible pour cette exercice, il s’agit de trouver un arbre de recouvrement minimal. Deplus le graphe est presque déjà dessiné par le plan de la commune. Il faut juste penser à considérer touspoints déjà reliés par une route en bon état comme étant un seul et même sommet du graphe.

118 Eric LALLET , Jean-Luc RAFFY

Page 127: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Donc le réseau du Centre-Bourg forme un seul sommet. Il est relié aux Fays par ch1, à la Bergerie parch3, à la Dauberie par ch9, à la Croisée par ch8 et enfin aux Haies par ch11.

De plus les Iris et la Croisée ne forme qu’un seul et même sommet. Pour la suite de ce problème, on neparlera plus que du sommet «la Croisée» relié aux Haies par ch13 et aux Joncs par ch15.

En nommant «CB» le sommet du Centre-Bourg et les habitationspar leur initiale, on obtient la matriced’adjacence suivante (les distances sont exprimées en hectomètre) :

CB A B C D E F G H JCBAB ch3=14 ch5=14C ch8=15 ch7=13 ch6=16D ch9=14EF ch1=5 ch4=8 ch2=12G ch10=5H ch11=14 ch13=13 ch14=15 ch12=16J ch15=17 ch16=13

Le même graphe dessiné donne la figure A.21.

CBF

B

C

D

H

A

G

J E

ch3=14

ch8=15

ch9=14ch1=5

ch11=14

ch5=14

ch7=13

ch4=8

ch6=16

ch2=12

ch13=13

ch15=17

ch10=5

ch14=15

ch16=13

ch12=16

FIG. A.21 – Le réseau de chemin de la commune

On va par exemple utiliser l’algorithme de Prim en utilisantles matrices. La premier sommet (qui peutêtre choisi au hasard) placé va être «CB».

CB A B C D E F G H JCBAB ch3=14C ch8=15D ch9=14EF ch1=5

OUIGH ch11=14J

La plus petite arête partant de «CB» est celle allant vers «F». On ajoute donc «F» à notre ensemble desommets traités. On calcule le nouveau cocycle (on ajoute laligne et la colonne de «F» mais en supprimantles arêtes reliées aux éléments déjà dans l’ensemble).

Eric LALLET , Jean-Luc RAFFY 119

Page 128: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

CB A B C D E F G H JCBAB ch3=14C ch8=15D ch9=14EF ���XXXch1=5 ch4=8 ch2=12

OUI OUIGH ch11=14J

Dans le nouveau cocycle, la plus petite arête est celle allant de «F» à «A». On ajoute «A» à l’ensembledes sommets traités, et on calcule le nouveau cocycle.

CB A B C D E F G H JCBAB ch3=14 ch5=14C ch8=15 ch7=13D ch9=14EF ���XXXch1=5 ���XXXch4=8 ch2=12

OUI OUI OUIGH ch11=14J

C’est maintenant au tour de l’arête allant de «F» à «B». On ajoute le sommet «B» à l’ensemble :

CB A B C D E F G H JCBAB ����XXXXch3=14 ����XXXXch5=14C ch8=15 ch7=13 ch6=16

OUID ch9=14EF ���XXXch1=5 ���XXXch4=8 ����XXXXch2=12

OUI OUI OUIGH ch11=14J

À cette étape c’est l’arête allant de «A» vers «C» qui est prise. Et quelques itérations plus tard on obtientau final :

120 Eric LALLET , Jean-Luc RAFFY

Page 129: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

CB A B C D E F G H JCBAB ����XXXXch3=14 ����XXXXch5=14C ����XXXXch8=15 ����XXXXch7=13 ����XXXXch6=16

OUID ����XXXXch9=14

OUIEF ���XXXch1=5 ���XXXch4=8 ����XXXXch2=12

OUI OUI OUIG ����XXXXch10=5

OUIH ((((hhhhch11=14 ((((hhhhch13=13 ((((hhhhch14=15 ((((hhhhch12=16

OUI OUIJ ((((hhhhch15=17 ((((hhhhch16=13

OUI

Les 9 chemins à transformer en route sont donc : ch1, ch2, ch4,ch7, ch9, ch10, ch13, ch14, ch16.

La longueur totale à payer sera donc : 5+12+8+13+14+5+13+15+13=98 hm.

Et le nouveau plan de la commune est visible sur la figure A.22.

ch1

Centre Bourg

Bergerie

Fays

Aqueduc

Croisée

DauberieGrignon

Joncs

Haies

Iris

Epis d’or

ch2

ch4ch5

ch6

ch8

ch3

ch9

ch10

ch12

ch11

ch13ch14

ch15

ch16

Légende: : Chemin : Route

ch7

FIG. A.22 – Nouveau plan de la commune

A.4 Plus court chemin

A.4.1 Correction de l’exercice 4.1 de la page 42

Pour ce problème il faut rechercher un «plus court chemin» ausens du temps entre Lyon et Agen.

Il faut commencer par trouver le graphe qui va servir à résoudre le problème. Il n’est pas utile deconserver les noeuds intermédiaires qui ne concernent que les changements de noms des routes (commeFeurs, Orange, . . . ). Seuls les noeuds aux intersections desroutes sont intéressants pour notre modèle.

Eric LALLET , Jean-Luc RAFFY 121

Page 130: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Il faut aussi calculer le temps de parcours entre chacun des ces noeuds :– Entre Lyon et Clermont-Ferrand : il y a 77km de nationales et88 km d’autoroutes.(77/70+88/110)×

60 = 114 minutes de trajet.– Entre Lyon et Montpellier : il y a 308km d’autoroutes.(308/110)× 60 = 168 minutes de trajet.– Entre Lyon et Brioude : il y a 182km de nationales.(182/70)× 60 = 156 minutes de trajets.– Entre Montpellier et Brioude : il y a 275km d’autoroutes.(275/110)× 60 = 150 minutes de trajet.– Entre Brioude et Clermont-Ferrand : il y a 66km d’autoroutes.(66/110)×60 = 36 minutes de trajet.– Entre Clermont-Ferrand et Cahors : il y a 275km d’autoroutes. (275/110)× 60 = 150 minutes de

trajet.– Entre Brioude et Cahors : il y a 238km de nationales.(238/70)× 60 = 204 minutes de trajet.– Entre Montpellier et Montauband : il y a 275km d’autoroutes. (275/110) × 60 = 150 minutes de

trajet.– Entre Cahors et Montauband : il y a 88km d’autoroutes.(88/110)× 60 = 48 minutes de trajet.– Entre Cahors et Agen : il y a 105km de nationales.(105/70)× 60 = 90 minutes de trajet.– Entre Montauband et Agen : il y a 66km d’autoroutes.(66/110)× 60 = 36 minutes de trajets.On n’a pas d’aprioris sur le sens de parcours de l’axe transversal entre Montpellier et Clermont-Ferrand.

Il faudra donc mettre les arcs dans les deux sens pour ces routes.

On obtient le graphe de la figure A.23.

Lyon

Clermont

Brioud

e

Montpellier

Cahors

Montauband

Agen

114

168

182

150

15036

36

150

204

150

48

90

36

FIG. A.23 – Graphe modélisant les temps de trajet

Il nous reste à trouver le chemin le plus court (au sens du temps). On utilise l’algorithme de Ford-Moore.

m λ(Ly) λ(Cl) λ(Br) λ(Ml) λ(Ca) λ(Mb) λ(Ag) changés Γ+

0 0 ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ ��HH∞ Ly Cl, Br, Ml1 114/Ly ����XXXX182/Ly 168/Ly Cl Ca, Br

Br Cl, Ca, MlMl Br, Mb

2 ���XXX218/Br 150/Cl ���XXX332/Br 264/Cl ����XXXX318/Ml Br Cl, Ca, Ml����XXXX318/Ml ���XXX386/Br Ca Mb, Ag

Mb Ag3 ���XXX186/Br ���XXX300/Br ���XXX354/Br 312/Ca ����XXXX354/Ca Mb Ag

����XXXX354/Mt Ag4 348/Mb Ag

Le voyageur prendra donc 5h48 (348 minutes) pour faire le trajet. Il passera par les sommets Lyon,Clermont, Cahors et Montauband.

Donc son plan de route consiste à commencer son voyage sur desnationales et des départementalesjusqu’à Feurs. Là, il passe sur le réseau autoroutier en rejoignant Clermont-Ferrand par l’A72. Il empruntealors l’A71 jusqu’à Combronde où il passe sur l’A89 jusqu’à Brive la Gaillarde. Il change alors en passantsur l’A20 jusqu’à Montauband, où il rejoint l’A62 qui le mènera jusqu’à Agen.

122 Eric LALLET , Jean-Luc RAFFY

Page 131: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

A.4.2 Correction de l’exercice 4.2 de la page 42

Nous allons modéliser ce problème avec une recherche de pluscourt chemin, mais on a vu précédem-ment (page 25) qu’il était possible de le modéliser avec une recherche du chemin le plus long.

La recherche du plus court chemin sert à trouver un optimum reposant sur un graphe orienté. L’optimumen question est un minimum. Que peut-on chercher à minimiserpour optimiser notre problème? On a descoûts et des gains. . . Les deux étant en fait un peu la même chose : un gain est un coût négatif, et un coût estun gain négatif. Pour optimiser notre problème on doit soit maximiser les gains, soit minimiser les coûts.La technique de la rechercher du plus court chemin est parfaite pour le recherche d’un minimum. On vadonc chercher à minimiser les coûts (en transformant les gains en coûts négatifs). La semaine de travail serarentable que si le minimum obtenu est un nombre négatif. Sinon cela signifiera qu’elle coûtera de l’argent.

Comment modéliser la semaine de travail d’Apollodore sur ungraphe faisant apparaître les coûts ? Onva construire un graphe où chaque état représentera l’état du stock des repas d’Apollodore à la fin de chaquejournée. Il démarre avec un stock vide, et doit finir le vendredi avec un stock vide. Sa production est de 50repas, et un banquet en utilise 100. Le stock maximal est de 100 repas. Donc à la fin de chaque journée il ya trois états possibles pour ce stock : 0 repas, 50 repas ou 100repas. Notre graphe devra donc passer par lesétats de la figure A.24

FIG. A.24 – Tous les états possibles du stock d’Apollodore

Il faut maintenant placer les arcs entre ces états. Le lundi Apollodore peut ne rien faire (le stock resteà 0) ou produire 50 repas (le stock passe à 50 -état Lun 50-). S’il produit 50 repas, cela va lui coûter 2keuros. On va donc valuer cet arc avec la valeur 2 (notre unité sera le kilo euros). L’état Lun 100 ne peut pasêtre atteint, il faudra le retirer du graphe. Le mardi le stock d’Apollodore ne lui permet pas de répondre àla demande du premier banquet. Il n’a donc que 2 choix possibles : ne rien faire (son stock ne bouge pas),ou produire 50 repas pour 2k euros (son stock monte de 50). Le mercredi il n’a pas accès aux cuisines pourproduire. Il n’a deux que deux choix : ne rien faire, ou servirles 100 repas du banquets de mercredi (si sonstock le lui permet). Ce banquet lui rapporte 3k euros (il faut penser à retirer le 1k euros que lui coûte leservice de chaque banquet). Comme ici on modélise avec des coûts, ce gain va être reporté comme un coûtnégatif. L’arc va être valué avec la valeur -3. On continue ainsi jusqu’à la fin de la semaine et on arrive à lafigure A.25

Sur le graphe de la figure A.25, l’état «Jeu 50» se trouve en dehors de tout chemin menant au seul étatfinal acceptable (stock vide vendredi soir). Il faut donc le retirer de notre modélisation. On obtient le graphede la figure A.26.

On peut encore maintenant simplifier ce graphe avant de fairetourner l’algorithme de Ford-Moore : onsupprime les états sur lesquels il n’y qu’un seul arc entrantet un seul arc sortant. On remplace les 2 arcs parun nouvel arc valué par la somme des deux valeurs. On obtient le graphe de la figure A.27.

Eric LALLET , Jean-Luc RAFFY 123

Page 132: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.25 – Ajouts des arcs suivants les actions d’Apollodore

FIG. A.26 – Graphe nettoyé des états impossibles

FIG. A.27 – Graphe simplifié avant algorithme

On applique l’algorithme de Ford-Moore sur ce graphe :

124 Eric LALLET , Jean-Luc RAFFY

Page 133: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

m λ(D) λ(L0) λ(L50) λ(Ma50) λ(Ma100) λ(Me0) λ(J100) λ(V 0) Sommets Γ+

changés0 0 ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ D L0, L501 0/D 2/D L0 Me0, Ma50

L50 Ma50, Ma1002 2/L0 0/L0 Ma50 J100

2/L50 4/L50 Ma100 J100, Me0Me0 V0

3 3/Ma50 J100 V0((((hhhh1/Ma100 ((((hhhh4/Ma100

0/Me0 V04 0/J100

Le plus court chemin vers Ven0 a pour valeur 0. Donc le coût minimal pour une semaine de travaild’Apollodore est de 0. Autrement dit, son gain (la valeur opposé du coût pour ce modèle) est de 0. Il vautmieux conseiller à Apollodore de ne pas travailler dans ces conditions.

A.4.3 Correction de l’exercice 4.3 de la page 42

Pour la seconde partie de ce problème, la modélisation est exactement la même, sauf que la présenced’Aristodème permet d’ajouter d’autres chemins sur le graphe. En effet les jours de productions les deuxamis peuvent produire 100 repas. Et mardi, il est possible deconsommer 100 repas pour le banquet et d’enproduire 50 par ailleurs et donc au bilan de n’en consommer que 50. On obtient donc le graphe de la figureA.28

FIG. A.28 – Ajouts des arcs en tenant compte des actions d’Apollodore et d’Aristodème

Sur le graphe de la figure A.28, l’état «Jeu 50» se trouve en dehors de tout chemin menant au seul étatfinal acceptable (stock vide vendredi soir). Il faut donc le retirer de notre modélisation. On obtient le graphede la figure A.29.

On peut encore maintenant simplifier ce graphe avant de fairetourner l’algorithme de Ford-Moore : onsupprime les états sur lesquels il n’y qu’un seul arc entrantet un seul arc sortant. On remplace les 2 arcs parun nouvel arc valué par la somme des deux valeurs. On obtient le graphe de la figure A.30.

Eric LALLET , Jean-Luc RAFFY 125

Page 134: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.29 – Graphe nettoyé des états impossibles

FIG. A.30 – Graphe simplifié avant algorithme

126 Eric LALLET , Jean-Luc RAFFY

Page 135: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

On applique alors l’alogorithme de Ford-Moore :

m λ(D) λ(L0) λ(L50) λ(L100) λ(Ma0) λ(Ma50) λ(Ma100) λ(Me0) λ(J100) λ(V 0) Sommets Γ+

changés0 0 ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ D L0, L50, L1001 0/D 2/D 4/D L0 Ma0, Ma50, Ma100

L50 Ma50, Ma100L100 Ma0, Ma50, Ma100

2 ��XX0/L0 ��XX2/L0 4/L0 Ma0 Me0���XXX2/L50 4/L50 Ma50 J100

-2/L100 0/L100 4/L100 M100 Me0, J1003 -2/Ma0 Me0 J100, V0

���XXX1/Ma50 J100 V0((((hhhh1/Ma100 ((((hhhh4/Ma100

4 0/Me0 ���XXX-2/Me0 J100 V0���XXX-2/J100 V0

5 -3/J100 V0

Eric

LA

LL

ET

,Jean-L

uc

RAF

FY

12

7

Page 136: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Pour ce graphe le plus court chemin fait -3 : il passe par Début, Lun100, Mar0, Mer0, Jeu100 et Ven 0.

Cela signifie qu’Apollodore et Aristodème peuvent travailler ensemble cette semaine pour un coût de-3k euros, autrement dit un gain de 3k euros. Ils ont donc intérêt à le faire.

Interprétons le chemin pour leur donner le bon scénario :

Début→ Lun 100 Ils doivent monter leur stock à 100 dès le premier jour. Ils doivent donc travailler encuisine tous les deux le lundi.

Lun 100→ Mar 0 Ils doivent consommer les 100 repas (en servant le banquet dumardi), sans en produired’autres. Donc un seul des deux doit travailler le mardi au service du banquet du mardi, l’autre peutse reposer.

Mar 0 → Mer 0 Leur stock ne bouge pas ce jour là. Le mercredi est un jour de repos pour les deux amis.

Mer 0 → Jeu 100 Ils doivent remonter leur stock à 100 le jeudi. Ils doivent donc travailler en cuisine tousles deux.

Jeu 100→ Ven 0 Ils doivent consommer les 100 repas (en servant le banquet duvendredi), sans en pro-duire d’autres. Donc un seul des deux doit travailler le vendredi au service du banquet du vendredi,l’autre peut se reposer.

A.5 Flot maximal

A.5.1 Correction de l’exercice 5.1 de la page 52

Il s’agit d’un problème de flot maximal.

La première étape consiste à dessiner le graphe des cursus possibles pour les élèves. Ils vont devoirpasser par l’acquisition des troisUV . Comme la seconde école a des accords d’équivalence avec lesdeuxautres, il peut y avoir des échanges entre cette école et les autres à chaque étape de la formation. Maisencore faut-il que les dates le permettent. Comme la première école commence plus tôt, les seuls transfertspossibles avec elle vont de la première vers la seconde. Et comme la troisième école termine toujours sesUV après le début de la seconde, les transferts possibles entreelles vont de la deuxième vers la troisième.

On arrive au graphe de la figure A.31. Sur cette figure «D» signale les débuts de formation, «F» les fins.Le premier nombre qui suit désigne l’école, et après le pointle second nombre désigne l’UV . Donc parexemple «D2.3» désigne le début de la formation pour l’UV3 dans l’école 2.

FIG. A.31 – Graphe modélisant le cursus des élèves

Ce premier modèle peut être simplifié. Il est possible de supprimer les noeuds qui n’ont qu’une seulearête entrante et une seule arête sortante. On remplace alors ces deux arêtes par une arête ayant la capacitéminimale des deux arêtes.

c1 c2 min(c1, c2)

S1 −→ S2 −→ S3 devient S1 −→ S3

On obtient alors le graphe de la figure A.32.

Maintenant il faut trouver le flot maximal que l’on peut fairecirculer sur ce graphe. Pour cela on vacommencer avec un flot représentant le cas où chaque élève essaye de suivre la totalité de son cursus dansune seule école. En saturant chaque école on arrive au flot de la figure A.33.

128 Eric LALLET , Jean-Luc RAFFY

Page 137: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.32 – Graphe simplifié

FIG. A.33 – Premier flot. Chaque élève reste dans son école de départ

Ensuite on utilise l’algorithme de Ford-Fulkerson pour voir s’il est possible d’améliorer ce flot. La figureA.34 montre le marquage d’une chaîne qui permet de marquer lepuits (on n’a laissé sur le graphe que lesmarquages appartenant à cette chaîne).

FIG. A.34 – Marquage d’une chaîne améliorante

On obtient la donc chaîne suivante :

40 − 20 = 20 ∞ − 0 = ∞ 30 ∞ − 0 = ∞ 35 − 20 = 15

Début −→ F1.1 −→ D2.2 ←− F2.1 −→ D3.2+3 −→ Fin

On calcule les capacités restantes sur les arcs directs de cette chaîne et le flot passant sur les arcs inverses(il n’y qu’un seul arc inverse pour notre cas), et on prend le minimum de ces valeurs : 15. Il est donc possibled’augmenter de 15 le flot entre Début et Fin. Il faut ajouter 15aux flots des arcs directs de la chaîne et retirer15 à l’arc inverse. On obtient le nouveau flot de la figure A.35

Le flot est maintenant de 85 élèves.

On tente une nouvelle itération de l’algorithme de Ford-Fulkerson. On n’arrive plus à marquer le puits(voir figure A.36). Donc le flot maximal est déjà atteint.

Le flot maximal est de 85.

Pour obtenir la formation de 85 élèves, l’organisme doit envoyer 35 élèves suivre l’UV1 dans la premièreécole. 20 de ces élèves continueront la formation dans celle-ci, mais 15 autres iront faire lesUV2 et UV3

dans la deuxième école. Il doit aussi envoyer 30 élèves suivre l’UV1 dans la deuxième école. 15 continuerontdans celle-ci, mais 15 autres iront suivre le module qui regroupe lesUV2 et UV3 dans la troisième école.Enfin 20 élèves feront toutes lesUV dans la troisième école.

Eric LALLET , Jean-Luc RAFFY 129

Page 138: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.35 – Nouveau flot après amélioration

FIG. A.36 – Nouveau marquage : impossible de trouver une chaîne améliorante

A.5.2 Correction de l’exercice 5.2 de la page 53

Il s’agit d’un problème de type flot-maximal à coût minimal. Mais attention, on sait que la capacité denotre réseau est de 85 élèves. On veut n’en faire passer que 63. Donc il faudra arrêter l’algorithme avant leflot maximal.

Le schéma modélisant notre problème est celui de la figure A.37.

FIG. A.37 – Graphe modélisant la recherche du flot maximal à coût minimal

Il est possible de simplifier ce graphe. On peut supprimer tous les noeuds n’ayant qu’une seule arêteentrante et une seule arête sortant. On remplace ces deux arêtes par une arête ayant la capacité minimale etla somme des coûts des deux arêtes.

cap1/coût1 cap2/coût2 min(cap1 ,cap2 )/coût1+coût2

S1 −→ S2 −→ S3 devient S1 −→ S3

On obtient le graphe de la figure A.38.

Il faut mettre en œuvre l’algorithme de Busacker et Gowen. Pour cela on démarre avec un flot nul, et onrecherche le chemin le plus court (au sens du coût) allant de la source au puits. Il s’agit du chemin1 passantpas lesUV de l’école 2 . Le coût de ce chemin est de 24k euros. Sa capacitémaximale est de 30 élèves.On peut donc déjà placer un premier flot de 30 élèves sur le graphe (voir figure A.39) dont le coût global

1Pour alléger la correction de cet exercice, les calculs de recherche des chemins les plus courts ne seront pas reportés ici

130 Eric LALLET , Jean-Luc RAFFY

Page 139: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.38 – Graphe simplifié

est24k × 30 = 720k euros. On peut aussi calculer le nouveau graphe associé pourl’étape suivante (figureA.39).

FIG. A.39 – Premier flot de 30 élèves

Sur le nouveau graphe associé, le plus court chemin passe parDébut→ F1.1→D2.2→ F2.1→D3.2+3→ Fin. Son coût est de 30k euros. Sa capacité est de 30 élèves (concrètement à cette étape de l’algorithme,on demanderait à 30 élèves de l’école 2 de poursuivre leur scolarité dans l’école 3 pour que 30 élèves del’école 1 puissent finir à moindre coût leur apprentissage dans l’école 2). Le coût globale de ce flot est de30k × 30 = 900k euros. On obtient les nouveaux graphes de la figure A.40.

On n’a toujours pas atteint le flot de 63 élèves. On doit donc continuer l’algorithme. Sur le nouveaugraphe associé, le chemin le plus court est celui qui passe par l’école 3. Son coût est de 33k euros, et sacapacité de 5 élèves. Mais il ne nous manque que 3 élèves pour atteindre le flot recherché. Il suffit donc derajouter 3 élèves pour un coût de33k × 3 = 99k euros. On obtient le flot de la figure A.41.

La solution optimale coûte720k + 900k + 99k = 1719k euros. Elle consiste à envoyer 30 élèves fairel’ UV1 dans l’école 1, et lesUV2 et UV3 dans l’école 2. 30 autres élèves feront l’UV1 dans l’école 2, etsuivront le module réunissant lesUV2 etUV3 dans l’école 3. Enfin les 3 derniers feront toutes lesUV dansl’école 3.

Eric LALLET , Jean-Luc RAFFY 131

Page 140: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.40 – Un second flot de 30 autres élèves

FIG. A.41 – Solution optimale pour 63 élèves

A.6 Méthode géométrique et Simplexe

A.6.1 Correction de l’exercice 8.1 de la page 74

Il s’agit d’un problème de programmation linéaire.

Commençons par trouver la fonction économique à optimiser.Si on nommeF1 le nombre de tonnesde fromage AOC vendues en une année etF2 le nombres de tonnes de l’autre fromage, la marge annuelle(exprimée en k euros) de l’entreprise est :Z = 3× F1 + F2.

Les ressources imposent des contraintes sur la production :– La laiterie reçoit 4 millions de litres de lait de la zone AOC, et la tonne de fromage AOC en utilise

10 000 litres :10000× F1 ≤ 4 000 000– La laiterie reçoit 10 millions de litres de lait (4 millionsde la zone AOC et 6 millions d’autres zones),

et tout ce qui n’est pas utilisé par le fromage AOC (10 000 × F1) peut être utilisé pour le secondfromage qui en utilise7 500 litres par tonne :7 500× F2 ≤ 10 000 000− 10 000× F1

– La tonne de fromage AOC nécessite 30 heures de travail, et celle de l’autre fromage 15 heures. Lalaiterie dispose de21 000 heures :30× F1 + 15× F2 ≤ 21 000.

Donc on obtient (après avoir repasser la variableF1 de la seconde contrainte dans le membre degauche) :

10 000× F1 ≤ 4 000 00010 000× F1 + 7 500× F2 ≤ 10 000 00030× F1 + 15× F2 ≤ 21 000Trouver le max deZ = 3× F1 + F2

AvecF1 ≥ 0 etF2 ≥ 0

132 Eric LALLET , Jean-Luc RAFFY

Page 141: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Après simplifications :

F1 ≤ 4004× F1 + 3× F2 ≤ 4 0002× F1 + F2 ≤ 1 400Trouver le max deZ = 3× F1 + F2

AvecF1 ≥ 0 etF2 ≥ 0

Ici deux techniques sont utilisables : le simplexe et la méthode géométrique. On va utiliser cette dernière.

La délimitation du domaine de solution est visible sur le figure A.42

FIG. A.42 – Domaine de solution

On place ensuite la droite représentant la fonction économiqueZ = 3×F1 +F2 et on la monte jusqu’àatteindre les limites du domaine. Elle atteint sont maximumlorsqu’elle passe par le pointF1 = 400 etF2 = 600 (voir figure A.43) Donc le meilleurs choix économique consiste à utiliser tout le lait de la zoneAOC pour fabriquer 400 tonnes du fromage AOC (la maximum que l’on puisse faire), et à utiliser l’autrelait pour fabriquer 600 tonnes fromages de l’autre catégorie. Le bénéfice sera alors de3×400+600 = 1800k euros, c’est à dire 1,8 millions d’euros.

Notez que les deux contraintes qui bloquent la production sont d’une part la quantité de lait AOC(F1 ≤ 400) et d’autre part le nombre d’heures de travail (2 × F1 + F2 ≤ 1400) (les deux droites qui secroisent au point optimal). La contrainte sur l’autre lait ne bloque pas. D’ailleurs la solution n’utilise que4,5 millions de litres de lait de la zone non AOC. Il en reste donc 1,5 millions de litres sans usage.

FIG. A.43 – Résolution géométrique pourZ = 3× F1 + F2

Eric LALLET , Jean-Luc RAFFY 133

Page 142: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

A.6.2 Correction de l’exercice 8.2 de la page 75

La modélisation du problème est identique à celle de la question du précédente exceptée pour Z quichange :Z = 2× F1 + F2 (toujours en k euros).

F1 ≤ 4004× F1 + 3× F2 ≤ 4 0002× F1 + F2 ≤ 1400Trouver le max deZ = 2× F1 + F2

AvecF1 ≥ 0 etF2 ≥ 0

Le domaine de solution ne change pas, on retrouve celui de la figure A.42. Par contre la droite qui vareprésenterZ n’a plus la même pente. Elle a exactement la même pente que la troisième contrainte. Donclorsqu’on fait monter cette droite vers son maximum, elle vase confondre avec la droite qui exprime latroisième contrainte (voir figure A.44).

FIG. A.44 – Résolution géométrique pourZ = 2× F1 + F2

Dans ce cas la solution optimale est donnée par tout un segment de droite : le segment compris entreles points (F1 = 100, F2 = 1200) et (F1 = 400, F2 = 600). Donc la solution optimale consiste à fabriquerentre 100 et 400 tonnes du fromage AOC et à utiliser tout le reste du temps de travail pour fabriquer entre1200 et 600 tonnes de l’autre fromage. Toutes ces solutions rapporteront 1,4 millions d’euros. La solutionqui consiste à fabriquer 400 tonnes du fromage AOC et 600 tonnes de l’autre fromage va laisser 1,5 millionsde litres de lait (non AOC) sans usage. Si la laiterie arrive àles valoriser autrement, il sera certainementjudicieux de choisir cette solution.

Voici une seconde correction du même exercice, mais obtenueavec le simplexe :

Le tableau du simplexe est :

F1 F2 E1 E2 E3 SommeE1 1 0 1 0 0 400E2 4 3 0 1 0 4000E3 2 1 0 0 1 1400∆j 2 1 0 0 0 0

La premier pivot est sur la colonne deF1 et la ligne deE1. Après pivotement deF1 à la place deE1 onobtient :

F1 F2 E1 E2 E3 SommeF1 1 0 1 0 0 400E2 0 3 -4 1 0 2400E3 0 1 -2 0 1 600∆j 0 1 -2 0 0 -800

La second pivot est sur la colonne deF2 et la ligne deE3.

134 Eric LALLET , Jean-Luc RAFFY

Page 143: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

F1 F2 E1 E2 E3 SommeF1 1 0 1 0 0 400E2 0 0 2 1 -3 600F2 0 1 -2 0 1 600∆j 0 0 0 0 -1 -1400

Tout les∆j sont négatifs ou nuls, on a donc une solution optimale (400 tonnes de fromage AOC, et 600tonnes de l’autre fromage pour un gain de 1,4 millions d’euros). Mais la variableE1 n’est pas en base eta un∆j nul. Il existe donc d’autres solutions optimales. On peut faire pivoter cette variable pour connaîtrel’autre sommet du segment de solutions (la ligne du pivot estcelle deE2) :

F1 F2 E1 E2 E3 SommeF1 1 0 0 -1/2 1.5 100E1 0 0 1 1/2 -3/2 300F2 0 1 0 1 -2 1200∆j 0 0 0 0 -1 -1400

Donc l’autre solution consiste à fabriquer 100 tonnes du fromage AOC, 1200 tonnes de l’autre fromagepour le même bénéfice (et bien sûr, toutes les solutions intermédiaires sont aussi valables).

Comme dit précédemment, choisir de fabriquer 400 tonnes de fromage AOC permet de laisser 1,5millions de litres de lait non AOC sans usage. Et comme il seraprobablement possible de le revendre pouraugmenter les profits, on choisira certainement cette solution.

A.6.3 Correction de l’exercice 8.3 de la page 75

Il s’agit d’un problème de programmation linéaire.

Il faut commencer par trouver la fonction économique à optimiser. Il faut maximaliser la marge del’entreprise. Si on nomeP1 l’électricité achetée au producteur 1,P2 celle du producteur 2, etP3 celle duproducteur 3, cette marge se définit par :Z = 900× P1 + 700× P2 + 500× P3 (unités : k euro et TWh).

Il faut ensuite mettre les contraintes en équation :– On ne pourra pas vendre plus de 18 TWh :P1 + P2 + P3 ≤ 18. Avec les chiffres de cet exemple

où les producteurs offrent plus de18 TWh et où chaque TWh vendu rapporte de l’argent, on pourraitremplacer le «≤» par un «=», et donc faire disparaître du problème une des trois variables. Mais enfaisant ainsi on perdrait le coté général de la modélisation. Le modèle «≤» demeure valable si onmodifie les chiffres et que par exemple on ne trouve plus assezd’électricité sur le marché, ou quecertains fournisseurs nous obligeraient à avoir des margesnégatives sur leur électricité.

– Le producteur 1 nous propose au maximum 25 TWh :P1 ≤ 25. Évidemment, la contrainte précédenteest bien plus forte que celle-ci, mais à cette étape, on modélise : les simplifications viendront plustard.

– Le producteur 2 nous propose au maximum 6 TWh :P2 ≤ 6– Le producteur 3 nous propose au maximum 4 TWh :P3 ≤ 4– Il faut 25% d’électricité renouvelable dans le total vendu. La part d’électricité renouvelable est0.1×

P1 + 0.46×P3 + P3. Le total de l’électricité vendu estP1 + P2 + P3. Il faut donc0.1×P1 + 0.46×P3 + P3 ≥ 0.25× (P1 + P2 + P3), ce qui revient à dire :0.15× P1 − 0.21× P1 − 0.75× P3 ≤ 0

En résumé on obtient :

P1 + P2 + P3 ≤ 18P1 ≤ 25P2 ≤ 6P3 ≤ 40.15× P1 − 0.21× P2 − 0.75× P3 ≤ 0Trouver le max deZ = 900× P1 + 700× P2 + 500× P3

AvecP1 ≥ 0, P2 ≥ 0, P3 ≥ 0

Maintenant que toutes les contraintes ont été bien modélisées, on peut simplifier certaines choses :

Comme on aP2 ≥ 0, etP3 ≥ 0 la contrainteP1 +P2 +P3 ≤ 18 impliqueP1 ≤ 18. Donc elle impliqueaussiP1 ≤ 25 que l’on peut retirer de notre problème sans perte d’information. En simplifiant les équationscela donne :

Eric LALLET , Jean-Luc RAFFY 135

Page 144: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

P1 + P2 + P3 ≤ 18P2 ≤ 6P3 ≤ 45× P1 − 7× P2 − 25× P3 ≤ 0Trouver le max deZ = 9× P1 + 7× P2 + 5× P3

AvecP1 ≥ 0, P2 ≥ 0, P3 ≥ 0

Avec Z exprimé en «100 k euros».

Le tableau du simplexe donne :

P1 P2 P3 E1 E2 E3 E4 SommeE1 1 1 1 1 0 0 0 18E2 0 1 0 0 1 0 0 6E3 0 0 1 0 0 1 0 4E4 5 -7 -25 0 0 0 1 0∆j 9 7 5 0 0 0 0 0

Selon le premier critère de Dantzig, le premier pivot est surla colonne deP1. Ensuite le second critèrede Dantzig donne le pivot de sur la ligne deE4 (attention, il est tout à fait correct de choisir un0 dans la co-lonne «Somme», par contre dans les colonnes des variables onne peut sélectionner qu’un pivot strictementpositif).

On pivote doncP1 à la place deE4 (attention, soustraire un nombre négatif, veut dire l’ajouter).

P1 P2 P3 E1 E2 E3 E4 SommeE1 0 2.4 6 1 0 0 -0.2 18E2 0 1 0 0 1 0 0 6E3 0 0 1 0 0 1 0 4P1 1 -1.4 -5 0 0 0 0.2 0∆j 0 19.6 50 0 0 0 -1.8 0

Il reste des∆j strictement positifs, donc on continue. Le second pivot estsur la colonne deP3, et laligne deE1. On pivoteP3 à la place deE1.

P1 P2 P3 E1 E2 E3 E4 SommeP3 0 0.4 1 1/6 0 0 -1/30 3E2 0 1 0 0 1 0 0 6E3 0 0 1 0 0 1 1/30 1P1 1 0.6 0 5/6 0 0 1/30 15∆j 0 -0.4 0 -25/3 0 0 -1/5 -150

Tous les∆j sont négatifs ou nuls. Le simplexe s’arrête là.

On aP1 = 15, P3 = 3. P2 n’est pas en base, doncP2 = 0. Et Z = 150.

L’entreprise doit donc acheter 15 TWh au premier producteur, 3 au troisième producteur et elle fera unemarge de 150 «100 k euros», c’est à dire 15 millions d’euros.

136 Eric LALLET , Jean-Luc RAFFY

Page 145: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

A.6.4 Correction de l’exercice 8.4 de la page 75

Pour la modélisation, seule la fonction économique change par rapport à l’exercice précédent :Z =850× P1 + 710× P2 + 500× P3

Donc on obtient :

P1 + P2 + P3 ≤ 18P1 ≤ 25P2 ≤ 6P3 ≤ 40.15× P1 − 0.21× P2 − 0.75× P3 ≤ 0Trouver le max deZ = 850× P1 + 710× P2 + 500× P3

AvecP1 ≥ 0, P2 ≥ 0, P3 ≥ 0

En simplifiant et en exprimant Z en «10 k Euros» :

P1 + P2 + P3 ≤ 18P2 ≤ 6P3 ≤ 45× P1 − 7× P2 − 25× P3 ≤ 0Trouver le max deZ = 85× P1 + 71× P2 + 50× P3

AvecP1 ≥ 0, P2 ≥ 0, P3 ≥ 0

D’où le tableau du simplexe suivant :

P1 P2 P3 E1 E2 E3 E4 SommeE1 1 1 1 1 0 0 0 18E2 0 1 0 0 1 0 0 6E3 0 0 1 0 0 1 0 4E4 5 -7 -25 0 0 0 1 0∆j 85 71 50 0 0 0 0 0

Les deux pivotements vont êtres les mêmes que dans l’exercice précédent, et seule la ligne des∆j

change.

Premier pivotement :

P1 P2 P3 E1 E2 E3 E4 SommeE1 0 2.4 6 1 0 0 -0.2 18E2 0 1 0 0 1 0 0 6E3 0 0 1 0 0 1 0 4P1 1 -1.4 -5 0 0 0 0.2 0∆j 0 190 475 0 0 0 -17 0

Second pivotement :

P1 P2 P3 E1 E2 E3 E4 SommeP3 0 0.4 1 1/6 0 0 -1/30 3E2 0 1 0 0 1 0 0 6E3 0 0 1 0 0 1 1/30 1P1 1 0.6 0 5/6 0 0 1/30 15∆j 0 0 0 -475/6 0 0 -7/6 -1425

On arrive à une solution optimale (toujours en prenant 15 TWhchez le premier producteur, et 3 chezles troisièmes), qui rapporte 14,25 millions d’euros.

Mais cette fois ci, à la fin du second pivotement il y a une variable hors base qui a son∆j nul (P2). Celasignifie qu’il y a d’autres solutions optimales. En faisant un troisième pivotement pour faire entrerP2 dansla base on obtient (selon le second critère de Dantzig la ligne de pivotement est celle deE2) :

Eric LALLET , Jean-Luc RAFFY 137

Page 146: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

P1 P2 P3 E1 E2 E3 E4 SommeP3 0 0 1 1/6 -0.4 0 -1/30 0.6P2 0 1 0 0 1 0 0 6E3 0 0 1 0 0 1 1/30 1P1 1 0.6 0 5/6 -0,6 0 1/30 11.4∆j 0 0 0 -475/6 0 0 -7/6 -1425

On obtient alors une autre solution optimale qui consiste à acheter 11,4 TWh chez le premier construc-teur, 6 TWh chez le second et 0,6 chez le troisième (toujours pour un profit de de 14,25 millions d’euros). Ily a en fait tout un segment de droite compris entre les deux solutions qui donneront ce même profit optimal.

Le revendeur peut donc acheter les 6 TWh du second producteurtout en gardant le meilleurs profit.

A.7 Dual

A.7.1 Correction de l’exercice 9.1 de la page 80

Il s’agit d’un problème de programmation linéaire, avec unefonction à minimiser. On va donc passer parle problème dual pour résoudre avec le simplexe un problème de programmation linéaire avec une fonctionà maximiser.

Il faut commencer par modéliser le problème et établir sa forme canonique.

Si on nommeP1 la production électrique achetée au fournisseur 1,P2 celle du fournisseur 2, etP3 celledu fournisseur 3, la fonction économique à minimiser est (Z exprimé en M euros) :

Z = 65× P1 + 73× P2 + 83× P3

Il faut aussi respecter les diverses contraintes :– Il faut acheter au moins 18 TWh d’électricité (peut-être est-il rentable d’en acheter plus pour avoir

le quota d’électricité renouvelable, quitte à revendre le surplus à un autre vendeur d’électricité) :P1 + P2 + P3 ≥ 18

– Il faut fournir au moins 25% d’électricité renouvelable :0.1× P1 + 0.45× P2 + P3 ≥ 18× 0.25– Le fournisseur 2 est limité à 6 TWh :P2 ≤ 6– Le fournisseur 3 est limité à 4 TWh :P3 ≤ 4En mettant toutes ces inégalités sous leur forme canonique,on obtient :

Minimiser Z avec :

(1) (2) (3) (Z ′)

1 ×P1 +1 ×P2 +1 ×P3 ≥ 180.1 ×P1 +0.45 ×P2 +1 ×P3 ≥ 4.5

−1 ×P2 ≥ −6−1 ×P2 ≥ −4

Z = 65 ×P1 +73 ×P2 +83 ×P3

P1 ≥ 0, P2 ≥ 0 et P3 ≥ 0

Pour résoudre ce problème de minimisation, on va passer à sonproblème dual de maximisation etensuite utiliser le simplexe. Le problème dual est donc :

Trouver le maximum deZ ′ avec

(1) 1 ×Y1 +0.1 ×Y2 ≤ 65(2) 1 ×Y1 +0.45 ×Y2 −1 ×Y3 ≤ 73(3) 1 ×Y1 +1 ×Y2 −1 ×Y4 ≤ 83

Z ′ = 18 ×Y1 +4.5 ×Y2 −6 ×Y3 −4 ×Y4

Y1 ≥ 0, Y2 ≥ 0, Y3 ≥ 0 et Y4 ≥ 0

Nous allons éviter de simplifier les inégalités. Cela apporterait des changements d’unité pour les valeursmarginales dans le tableau du simplexe. Comme nous traitonsle dual du problème d’origine ce sont juste-

138 Eric LALLET , Jean-Luc RAFFY

Page 147: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

ment ces valeurs qui contiendront la solution. Pour éviter de compliquer le suivi des unités, nous allons lesgarder ainsi (ce sont des TWh achetés en million d’euros).

Voici le tableau du simplexe pour la première itération :

Y1 Y2 Y3 Y4 E1 E2 E3 SommeE1 1 0.10 0 0 1 0 0 65E2 1 0.45 -1 0 0 1 0 73E3 1 1 0 -1 0 0 1 83∆j 18 4.50 -6 -4 0 0 0 0

Le premier pivot est sur la colonne deY1 et la ligne deE1. Après avoir pivoté, on obtient :

Y1 Y2 Y3 Y4 E1 E2 E3 SommeY1 1 0.10 0 0 1 0 0 65E2 0 0.35 -1 0 -1 1 0 8E3 0 0.90 0 -1 -1 0 1 18∆j 0 2.70 -6 -4 -18 0 0 -1170

Il reste un∆j strictement positif, l’algorithme continue. Le second pivot est sur la colonne deY2 et laligne deE3. Après avoir pivoté, on obtient :

Y1 Y2 Y3 Y4 E1 E2 E3 SommeY1 1 0 0 1/9 10/9 0 -1/9 63E2 0 0 -1 7/18 -11/18 1 -7/18 1Y2 0 1 0 -10/9 -10/9 0 10/9 20∆j 0 0 -6 -1 -15 0 -3 -1224

Tous les∆j sont négatifs ou nuls. L’algorithme s’arrête ici. La valeurmarginale pourE1 est -15, pourE2 0, etE3 -3. Z ′ vaut 1224.

Donc lorsqu’on revient au problème primal, on aP1 = 15, P2 = 0, P3 = 3 etZ = 1224.

Le revendeur d’électricité doit donc acheter 15 TWh d’électricité au fournisseur 1, rien au fournisseur2, et 3 TWh au fournisseur 3. Celui lui coûtera 1224 M euros, c’est à dire 1,224 milliard d’euros.

A.8 Simplexe : le cas général

A.8.1 Correction de l’exercice 10.1 de la page 84

Il s’agit d’un problème de programmation linéaire, avec unefonction à minimiser.

Il faut commencer par modéliser le problème et établir sa forme canonique.

Pour éviter de manipuler des nombres avec trop de zéro, les variables choisies désigneront1000 lots.Ainsi les variables utilisées seront :

– L1 : le nombre de «1000 lots 1» achetés par le traiteur (c’est à dire 5 tonnes de noix de pécan, 2tonnes de noix de cajou).

– L2 : le nombre de «1000 lots 2» achetées par le traiteur (c’est à dire 15 tonnes de noix de pécan, 2tonnes de noix de cajou, et 30 tonnes de cacahouètes).

– L3 : le nombre de «1000 lots» revendus par le traiteur à son confrère (c’est à dire 5 tonnes de noix depécan, et 20 tonnes de cacahouètes).

La fonction économique à minimiser estZ = 110× L1 + 224× L2 − 60 × L3, avecZ exprimé en keuros.

Il faut traduire les contraintes en équations :– Il n’y a que 2000 lots 2 en vente :L2 ≤ 2– Le traiteur a besoin de 25 tonnes de noix de pécan :5× L1 + 15× L2 − 5× L3 ≥ 25– Le traiteur a besoin de 6 tonnes de noix de cajou :2× L1 + 2× L2 ≥ 6– Il faut acheter les cacahouètes des lots revendus :30× L2 ≥ 20× L3

Eric LALLET , Jean-Luc RAFFY 139

Page 148: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Donc en mettant toutes ces contraintes sous la forme canonique, il faut minimiserZ avec :

(1) (2) (3) (Z ′)

−1 ×L2 ≥ −25 ×L1 +15 ×L2 −5 ×L3 ≥ 252 ×L1 +2 ×L2 ≥ 6

30 ×L2 −20 ×L3 ≥ 0Z = 110 ×L1 +224 ×L2 −60 ×L3

L1 ≥ 0, L2 ≥ 0 et L3 ≥ 0

Pour résoudre ce problème de minimisation, on va passer à sonproblème dual de maximisation etensuite utiliser le simplexe. Le problème dual est donc :

Trouver le maximum deZ ′ avec

(1) 5 ×Y2 +2 ×Y3 ≤ 110(2) −1 ×Y1 +15 ×Y2 +2 ×Y3 +30 ×Y4 ≤ 224(3) −5 ×Y2 −20 ×Y4 ≤ −60

Z ′ = −2 ×Y1 +25 ×Y2 +6 ×Y3

Y1 ≥ 0, Y2 ≥ 0, Y3 ≥ 0 et Y4 ≥ 0

Le second membre de l’inégalité (3) de la forme canonique estnégatif. La solutionY1 = 0, Y2 = 0,Y3 = 0 etY4 = 0 n’est donc pas dans le domaine de solutions admissibles. Il faudra utiliser la méthode ducas général et utiliser une variable artificielle pour construire la première solution évidente utile au simplexe.

De plus nous n’allons pas simplifier les inégalités. Celles-ci apporteraient des changements d’unité pourles valeurs marginales dans le tableau du simplexe. Comme nous traitons le dual du problème d’origine cesont justement ces valeurs qui contiendront la solution. Pour éviter de compliquer le suivi des unités, nousallons les garder ainsi (ce sont des «milliers lots» achetésou revendus).

Transformons le problème sous la forme standard :

Il faut trouver le maximum deZ ′ avec :

(1) 5× Y2 + 2× Y3 + E1 = 110(2) −Y1 + 15× Y2 + 2× Y3 + 30× Y4 + E2 = 224(3) −5× Y2 − 20× Y4 + E3 = −60

Z ′ = −2× Y1 + 25× Y2 + 6× Y3

Y1 ≥ 0, Y2 ≥ 0, Y3 ≥ 0, Y4 ≥ 0, E1 ≥ 0 E2 ≥ 0, E3 ≥ 0

Pour construire une première solution admissible évidenteon inverse les signes de l’équation (3) pourobtenir un second membre positif, et on lui ajoute une variable artificielle (X1 ≥ 0 ). Pour que l’algorithmedu simplexe tende à annulerX1 en cherchant à maximiserZ ′, ajoute «−k ×X1» à son expression avec k,une constante positive très grande :

(1) 5× Y2 + 2× Y3 + E1 = 110(2) −Y1 + 15× Y2 + 2× Y3 + 30× Y4 + E2 = 224(3) 5× Y2 + 20× Y4 + X1 − E3 = 60

Z ′ = −2× Y1 + 25× Y2 + 6× Y3 − k ×X1

Y1 ≥ 0, Y2 ≥ 0, Y3 ≥ 0, Y4 ≥ 0, E1 ≥ 0 E2 ≥ 0, E3 ≥ 0, X1 ≥ 0

Et partant de la solutionY1 = 0, Y2 = 0, Y3 = 0, Y4 = 0 etE3 = 0 :– (1) donneE1 = 110– (2) donneE2 = 224– (3) donneX1 = 60X1 est en base au début de l’algorithme du simplexe. On va donc lefaire disparaître de l’expression de

Z ′. L’équation (3) donne :X1 = 60 + E3 − 5× Y2 − 20× Y4. Donc :

Z ′ = −2× Y1 + 25× Y2 + 6× Y3 − k (60 + E3 − 5× Y2 − 20× Y4)︸ ︷︷ ︸

X1

Z ′ = −2× Y1 + (25 + 5k)× Y2 + 6× Y3 + 20k × Y4 − k × E3 − 60k

140 Eric LALLET , Jean-Luc RAFFY

Page 149: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

En résumé, il faut trouver le maximum deZ ′ avec :

(1) 5× Y2 + 2× Y3 + E1 = 110(2) −Y1 + 15× Y2 + 2× Y3 + 30× Y4 + E2 = 224(3) 5× Y2 + 20× Y4 + X1 − E3 = 60

−2× Y1 + (25 + 5k)× Y2 + 6× Y3 + 20k × Y4 − k × E3 = Z ′ + 60kY1 ≥ 0, Y2 ≥ 0, Y3 ≥ 0, Y4 ≥ 0, E1 ≥ 0, E2 ≥ 0, E3 ≥ 0, X1 ≥ 0

avec pour solution admissible de départ :Y1 = 0, Y2 = 0, Y3 = 0, Y4 = 0, E3 = 0, E1 = 110,E2 = 224 etX1 = 60.

Cela donne ce premier tableau pour le simplexe :

Y1 Y2 Y3 Y4 X1 E1 E2 E3 SommeE1 0 5 2 0 0 1 0 0 110E2 -1 15 2 30 0 0 1 0 224X1 0 5 0 20 1 0 0 -1 60∆j -2 25+5k 6 20k 0 0 0 -k 60k

k est une constante positive très grande. Donc le premier pivot est sur la colonneY4 et sur la ligne deX1.

Y1 Y2 Y3 Y4 X1 E1 E2 E3 SommeE1 0 5 2 0 0 1 0 0 110E2 -1 15/2 2 0 -3/2 0 1 3/2 134Y4 0 1/4 0 1 1/20 0 0 -1/20 3∆j -2 25 6 0 -k 0 0 0 0

Le second pivot est sur la colonne deY2 et la ligne deY4.

Y1 Y2 Y3 Y4 X1 E1 E2 E3 SommeE1 0 0 2 -20 -1 1 0 1 50E2 -1 0 2 -30 -3 0 1 3 44Y2 0 1 0 4 1/5 0 0 -1/5 12∆j -2 0 6 -100 -5-k 0 0 5 -300

Le troisième pivot est sur la colonne deY3 et la ligne deE2.

Y1 Y2 Y3 Y4 X1 E1 E2 E3 SommeE1 1 0 0 10 2 1 -1 -2 6Y3 -1/2 0 1 -15 -3/2 0 1/2 3/2 22Y2 0 1 0 4 1/5 0 0 -1/5 12∆j 1 0 0 -10 4-k 0 -3 -4 -432

Le quatrième pivot est sur la colonne deY1 et la ligne deE1.

Y1 Y2 Y3 Y4 X1 E1 E2 E3 SommeY1 1 0 0 10 2 1 -1 -2 6Y3 0 0 1 -10 -1/2 1/2 0 1/2 25Y2 0 1 0 4 1/5 0 0 -1/5 12∆j 0 0 0 -20 2-k -1 -2 -2 -438

Le simplexe se termine là. À la fin les coûts marginaux correspondant àE1, E2 et E3 sont respective-ment -1, -2 et -2, donc pour le problème primal on aL1 = 1, L2 = 2 et L3 = 2. Z ′ vaut 438, et doncZvaut aussi 438.

Ainsi pour minimiser ses coûts le traiteur devra acheter 1000 lots 1, les 2000 lots 2 et il revendra à sonconfrère 2000 lots de 5kg de noix de pécan et 20 kg de cacahouètes. Cela lui coûtera 438 k euros.

Eric LALLET , Jean-Luc RAFFY 141

Page 150: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

A.9 Programmation linéaire en nombres entiers

A.9.1 Correction de l’exercice 11.1 de la page 93

On a faire un problème de programmation linéaire. S’il n’était pas en nombres entiers, il serait mêmetrivial. Le meuble rectangulaire est plus rentable que le meuble en forme de tour (10 rangements pour 10points, contre 11 rangements pour 12 points). Il faudrait neprendre que des meubles rectangulaire. . . 5,9tours pour 59 rangements !

Oui, mais les meubles doivent être entiers ! Il faut donc appliquer une méthode de programmationlinéaire en nombres entiers. Et au final, la solution en nombres entiers sera très loin de la solution fraction-naire.

Il faut commencer par modéliser notre problème.

On doit maximiser le nombre de rangements. Si on nommeM1 le nombre de meubles rectangulaires à10 rangements etM2 le nombre de meubles en forme de tour à 11 rangements, on obtient : Z = 10×M1 +11×M2

Le nombre de meubles échangeables est limité par le nombre depoints. Il en faut 10 pour les meublesrectangulaires, et 12 pour les tours. Le client dispose de 59points :10×M1 + 12×M2 ≤ 59.

La forme canonique du modèle est donc :

Trouver le maximum deZ avec :

10×M1 + 12×M2 ≤ 59Z = 10×M1 + 11×M2

M1 ≥ 0 etM2 ≥ 0

Donc le premier tableau du simplexe est :

M1 M2 E1 SommeE1 10 12 1 59∆j 10 11 0 0

Le premier pivot est sur la colonne deM2 et la ligne deE1. Il vaut 12, il faut procéder à une troncature.

La ligne exprime la contrainte :10×M1 + 12×M2 ≤ 59

En divisant par le pivot et gardant les parties entières on obtient :

[10

12

]

×M1 +

[12

12

]

×M2 ≤

[59

12

]

C’est à dire :M2 ≤ 4.

Avec une nouvelle variable d’écartT1, on peut ajouter cette contrainte au tableau du simplexe. Onobtient :

M1 M2 E1 T1 SommeE1 10 12 1 0 59T1 0 1 0 1 4∆j 10 11 0 0 0

Ensuite on pivote sur la ligne deT1 et la colonne deM2 :

M1 M2 E1 T1 SommeE1 10 0 1 -12 11M2 0 1 0 1 4∆j 10 0 0 -11 -44

142 Eric LALLET , Jean-Luc RAFFY

Page 151: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Pour la seconde itération le pivot est sur la colonne deM1 et la ligne deE1. Il vaut 10, il faut procéderà une troncature.

La ligne exprime la contrainte :10×M1 − 12× T1 ≤ 11.

En divisant par le pivot et gardant les parties entières on obtient :

[10

10

]

×M1 +

[−13

10

]

× T1 ≤

[11

10

]

C’est à dire :M1 − 2× T1 ≤ 1

Avec une nouvelle variable d’écartT2, on peut ajouter cette contrainte au tableau du simplexe. Onobtient :

M1 M2 E1 T1 T2 SommeE1 10 0 1 -12 0 11M2 0 1 0 1 0 4T2 1 0 0 -2 1 1∆j 10 0 0 -11 0 -44

Ensuite on pivote sur la ligne deT2 et la colonne deM1 :

M1 M2 E1 T1 T2 SommeE1 0 0 1 8 -10 1M2 0 1 0 1 0 4M1 1 0 0 -2 1 1∆j 0 0 0 9 -10 -54

Il reste un∆j positif. Il faut donc continuer. En fait il reste encore 5 itérations supplémentaires quivont ajouter 5 troncatures supplémentaires. Par contre la solution obtenue à la seconde itération ne va plusévoluer. Les 5 autres itérations vont juste réussir à prouver qu’il n’y a pas de meilleur solution entière dansle domaine admissible.

Pour alléger la correction les 5 autres itérations ne vont pas être reportées ici. Voici juste le derniertableau :

M1 M2 E1 T1 T2 T3 T4 T5 T6 T7 SommeE1 0 0 1 0 0 0 0 0 -2 0 1M2 0 1 0 0 0 0 0 0 1 -5 4M1 1 0 0 0 0 0 0 0 -1 6 1T1 0 0 0 1 0 0 0 0 -1 5 0T2 0 0 0 0 1 0 0 0 -1 4 0T3 0 0 0 0 0 1 0 0 -1 3 0T4 0 0 0 0 0 0 1 0 -1 2 0T5 0 0 0 0 0 0 0 1 -1 1 0∆j 0 0 0 0 0 0 0 0 -1 -5 -54

Ainsi au final,M1 = 1 et M2 = 4 et Z = 54. Donc le client devra échanger ses 59 points contre 1meuble rectangulaire à 10 emplacements et 4 meubles en formede tour à 11 emplacements. Il aura dépenser58 points, 1 sera inutilisé (E1 = 1 dans la solution finale) et aura obtenu 54 emplacements de rangement.

A.10 Modélisation

A.10.1 Correction de l’exercice 12.1 de la page 100

Il faut résoudre un problème d’ordonnancement de tâches. Pour la première questions, on a le choixentre GANTT et le potentiel-tâches. Mais le deuxième pose clairement la recherche du chemin critique et

Eric LALLET , Jean-Luc RAFFY 143

Page 152: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

de la marge totale d’une tâche. Il faudra donc faire un potentiel-tâches. Autant commencer par là dès lapremière question.

Pour modéliser ce potentiel-tâches, il faut identifier toutes les tâches et leur dépendances.

Il y a trois tâches de récoltes qui ne dépendent de rien d’autre :

Tâche A : La récolte du bois et du cuir par Tawar qui dure 45 minutes.

Tâche B : La récolte du fer de nain par Gorog qui dure 1 heure.

Tâche C : La récolte du fer ancien par Albin qui dure 1 heure.

Il y a deux tâches de traitement qui dépendent de certaines récoltes :

Tâche D : Le traitement du cuir et du bois par Tawar qui dure 15 minutes.Elle arrive après la tâche A.

Tâche E : Le traitement de tout le fer par Albin qui dure 20 minutes. Elle arrive après les deux récoltes defer (tâche B et C).

Il y a la pause de Gorog :

Tâche F : Cette pause dure 15 minutes et arrive après la récolte fer de nain (tache B).

Il y a les trois tâches de production :

Tâche G : La production d’arbalètes par Tawar qui dure 20 minutes et arrive après le traitement du fer etdu bois (tâche E et D).

Tâche H : La production d’armure par Gorog qui dure 25 minutes et arrive après sa pause, mais aussi aprèsle traitement du cuir et du fer (tâche F, D et E).

Tâche I : La production d’épée qui dure 10 minutes ne dépend que du traitement du fer (tâche E).

Enfin il y a la tache de livraison :

Tâche J : Cette livraison prend 10 minutes et arrive après les 3 productions (tâches G, H I).

Cela donne le graphe potentiel-tâches de la figure A.45.

FIG. A.45 – Graphe potentiel-tâches

Il nous reste à l’interpréter :– La livraison se fera au bout de 115 minutes (1h55).– La pause de Gorog (tache F) n’est pas sur le chemin critique.Il n’a pas retardé la livraison avec cette

pause.– La marge totale de cette pause est de 5 minutes. Il peut donc rester encore 5 minutes de plus à la

taverne sans retarder le projet. Sa pause maximale est donc de 20 minutes.

A.10.2 Correction de l’exercice 12.2 de la page 100

Ici il faut résoudre un problème de programmation linéaire.

Il faut optimiser le gain de la guilde. Si on appelleA le nombre d’arbalètes vendues, etE celui desépées, la fonction à optimiser est (gain exprimé en pièces d’or) :

Z = 0, 5×A + E

.

On ne peut pas produire à l’infini ces armes : on a des contraintes sur les ressources.

144 Eric LALLET , Jean-Luc RAFFY

Page 153: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Tout le bois est utilisé pour les arbalètes (25 morceaux par arbalètes), on a donc :25×A ≤ 1000.

Tout le fer ancien est utilisé pour les épées (25 blocs par épée), on a donc :25× E ≤ 1000

Le fer de nain sert aux deux production (20 blocs par arbalète, 20 blocs par épée), on a donc :20×A +20× E ≤ 1000.

Donc en résumé et après simplifications des inégalités on doit résoudre :

A ≤ 40E ≤ 40A + E ≤ 50Trouver le max de :Z = 0, 5×A + EavecA ≥ 0 etE ≥ 0.

Ici deux techniques sont parfaitement adaptées : soit la résolution géométrique, soit le simplexe. Pour cettecorrection je choisis le simplexe.

On a trois inégalités, il faut ajouter trois variables d’écart : E1, E2, E3.

A E E1 E2 E3 SommeE1 1 0 1 0 0 40E2 0 1 0 1 0 40E3 1 1 0 0 1 50∆j 0,5 1 0 0 0 0

Le premier pivot est sur la colonne deE et la ligne deE2. Donc après pivotement deE à la place deE2, on obtient ce second tableau :

A E E1 E2 E3 SommeE1 1 0 1 0 0 40E 0 1 0 1 0 40E3 1 0 0 -1 1 10∆j 0,5 0 0 -1 -40

Le second pivot est sur la colonne deA et la ligne deE3. Après le pivotement deA à la place deE3, onobtient le troisième tableau :

A E E1 E2 E3 SommeE1 0 0 1 1 -1 30E 0 1 0 1 0 40A 1 0 0 -1 1 10∆j 0 0 0 -0,5 -0,5 -45

Tous les∆j sont négatifs ou nuls, l’algorithme s’arrête là. Donc la solutions donneA = 10, E = 40 etZ = 45.

Interprétons ces chiffres : la guilde doit vendre 10 arbalètes et 40 épées. Elle fera un gain de 45 piècesd’or.

Lorsque Gorog prend les commandes de l’opération, la seule chose qui change c’est la fonction à op-timiser. Cette fois ci, on doit optimiser le nombre de chopes: Z = 2 × A + E. Et il nous reste à ré-soudre le problème avec cette nouvelle fonction. Alors soiton refait tous les calculs (pas bien longs vus leschiffres), soit on réfléchit un peu, et on se dit que si on parleen «double chopes» la fonction à optimiserest :Z = A + 0, 5× E.

Donc il faut résoudre :

A ≤ 40E ≤ 40A + E ≤ 50Trouver le max de :Z = A + 0, 5× EavecA ≥ 0 etE ≥ 0

Eric LALLET , Jean-Luc RAFFY 145

Page 154: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

C’est à dire EXACTEMENT le même problème que précédemment sice n’est que lesE remplacentles A et réciproquement. Donc on connaît déjà la solution, il suffit d’inverser leA et leE de la solutionprécédente.

Pour notre nouveau problème :A = 40 etE = 10.

Donc pour satisfaire Gorog, la guilde produit 40 arbalètes et 10 épées. La vente rapporte40×0, 5+10 =30 pièces d’or, soit une perte de 15 pièces d’or par rapport à la solution optimale.

A.10.3 Correction de l’exercice 12.3 de la page 100

Trouver le prix minimal de vente des ressources utiles à la production est en fait le problème dualde celui qui consiste à trouver la vente optimale faite grâceà cette production. Voila pourquoi les deuxproblèmes ont la même solution (45 pièces d’or).

Pour bien montrer que ce problème est le dual du premier on va le formaliser.

Il faut optimiser la vente des ressources. Si on appelleBO le prix d’un morceau de bois,FA celui d’unbloc de fer de ancien, etFN celui d’un bloc de fer de nain, la fonctionZ ′ dont on doit trouver le minimumest :Z ′ = 1000×BO + 1000× FA + 1000× FN .

Chaque arbalète rapporte0, 5 pièce d’or, donc il faut garantir que les ressources venduesrapporte aumoins autant :25×BO + 20× FN ≥ 0, 5

Chaque épée rapporte1 pièce d’or, donc la vente de ressource doit garantir :25× FA + 20× FN ≥ 1

On obtient :

Trouver le min de :Z ′ = 1000×BO + 1000× FA + 1000× FN25×BO + 20× FN ≥ 0, 525× FA + 20× FN ≥ 1avecBO ≥ 0 etFA ≥ 0 etFN ≥ 0

Si on passe à l’expression du dual on obtient :

Trouver le max de :Z = X1 + 0, 5×X2

25×X1 ≤ 100025×X2 ≤ 100020×X1 + 20×X2 ≤ 50avecX1 ≥ 0 etX2 ≥ 0

Ce qui est bien exactement l’expression du premier problèmedont on connaît déjà la solution : 45 piècesd’or.

A.10.4 Correction de l’exercice 12.4 de la page 101

On reconnaît ici un problème de recherche d’arbre de recouvrement minimal. Pour cette correction onva appliquer l’algorithme de Kruskal. Pour le mettre en œuvre on va dessiner le graphe et ordonner lesarêtes par ordre croissant (voir figure A.46).

C

B

O

P

T

u12000

u22000

u33000

u43000

u54000

u66000

u77000

u87000

FIG. A.46 – Les routes triées par ordre de coût

146 Eric LALLET , Jean-Luc RAFFY

Page 155: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Maintenant en appliquant Kruskal on s’aperçoit que l’on peut prendre les 4 premières arêtes sans formerde cycle. Ce sont donc elles qui forment notre arbre de recouvrement minimal (voir figure A.47).

C

B

O

P

T

u12000

u22000

u33000

u43000

u54000

u66000

u77000

u87000

FIG. A.47 – Les routes à reconstruire pour un réseau à moindre coût

Donc les 4 routes à reconstruire en priorité sont : celle entre Coudebolle et Borivage, celle entre Borivageet Ollala, celle entre Ollala et Pompays et celle entre Ollala et Tecuge. Le coût de cette reconstruction serade2000 + 2000 + 3000 + 3000 = 10 000 unités monétaires.

A.10.5 Correction de l’exercice 12.5 de la page 101

Cette fois ci c’est un problème de recherche de plus court chemin. Le graphe servant à cette rechercheest celui de la figure A.48.

C

B

O

P

T

3

7

7

44

4

6

2

2

3

36

8

8

6

8

FIG. A.48 – Graphe des coût de transports

Mais on va plutôt utiliser un tableau pour faire tourner l’algorithme de Ford-Moore.

m λ(C) λ(B) λ(O) λ(P ) λ(T ) changés Γ+

0 0 ��HH∞ ��HH∞ ��HH∞ ��HH∞ C B, O T1 3/C ��HH7/C 7/C B C, O, T

O C, B, P, TT C, B, O, P

2 ��HH7/B 5/B 7/B O C, B, P, T���XXX13/O ���XXX11/O ��HH9/O ���XXX10/O P O, T���XXX15/T ���XXX16/T ���XXX14/T ���XXX16/T

3 ���XXX11/O ��HH9/O 7/O ��HH8/O P O, T���XXX12/P ���XXX15/P

4 ���XXX10/P ���XXX13/P

Depuis Coudebolle, pour aller à :– Borivage, il faut prendre la route directe. Cela coûte 3 unités/tonne– Ollala, il faut passer par Borivage. Cela coûte 5 unités/tonne– Pompays, il faut passer par Borivage et Ollala. Cela coûte 7unités/tonne– Tecuge, il faut soit prendre la route directe soit passer par Borivage. Cela coûte 7 unités/tonne

Eric LALLET , Jean-Luc RAFFY 147

Page 156: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

A.10.6 Correction de l’exercice 12.6 de la page 101

C

B

O

P

T

3

7

42

2

Ou

FIG. A.49 – Routes pour les transports à moindre coût

Si on compare les routes qu’il faudrait utiliser pour un transport à moindre coût (figure A.49) aveccelles qu’il faudrait construire pour une reconstruction àmoindre coût (figure A.47) on trouve beaucoup desimilitudes. La seule différence se trouve sur le chemin allant à Tecuge. Si on garde le réseau de recons-truction à moindre coût, la seule route permettant d’aller àTecuge coûtera 8 unités/tonne à la place des 7possibles par les deux autres routes. Par contre si on décidene remplacer la route Ollala-Tecuge, par la routeBorivage-Tecuge, on aura un transport à moindre coût pour toutes les destinations pour une reconstruction1000 unités plus chère.

Si on envisage de transporter plus de 1000 tonnes vers Tecugel’investissement sera rentabilisé. Alors ilvaudra mieux faire ce choix et reconstruire le réseau de la figure A.50 pour11 000 unités monétaires.

C

B

O

P

T

u12000

u22000

u33000

u43000

u54000

u66000

u77000

u87000

FIG. A.50 – Réseau à reconstruire si on transporte plus de 1000 tonnes vers Tecuge

A.10.7 Correction de l’exercice 12.7 de la page 102

La première question demande de trouver le «plus long chemin» au sens du nombres d’épreuves entrela salle 1 et la salle aux trésors. On peut obtenir ce résultaten trouvant le chemin critique du diagrammepotentiel tâche avec un modèle où les noeuds sont les salles,et la durées le nombre d’épreuves (voir figureA.51).

FIG. A.51 – Le chemin à suivre pour marquer le plus de points

Il font donc faire les salles dans l’ordre 1,2,3,5,4,6 et 8. Il faudra passer 23 épreuves.

148 Eric LALLET , Jean-Luc RAFFY

Page 157: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Par le chemin qui donne le plus de points aux joueurs, le tempsminimal pour y arriver est donc de 230minutes, c’est à dire 3h50. Pour ne pas être éliminé, les joueurs doivent arriver à la salle aux trésors avant4h50 (290 minutes).

Ensuite pour trouver l’heure d’arrivée maximale pour chaque salle du donjon, il faut trouver le cheminle plus court entre les salles et la salle aux trésors et ensuite calculer le temps de ce chemin. Enfin on retirerace temps à l’heure d’arrivée éliminatoire de la salle aux trésors.

On commence par renverser le graphe pour faire une recherchede chemin le plus court entre la salleaux trésors et toutes les autres salles(voir figure A.52).

FIG. A.52 – Graphe avec chemin renversé pour le calcul des chemins les plus courts

Pour calculer ces chemins on va utiliser l’algorithme de Ford-Moore.

m λ(ST ) λ(S8) λ(S7) λ(S6) λ(S5) λ(S4) λ(S3) λ(S2) λ(S1) Sommets Γ+

changés0 0 ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ��ZZ∞ ST S81 3/ST S8 S7, S62 9/S8 5/S8 S7 S5

S6 S43 13/S7 10/S6 S5 S3

S4 S5, S3, S24 ���XXX16/S5 S3 S2, S1

���XXX14/S4 13/S4 14/S4 S2 S15 ���XXX17/S3 15/S3 S1

���XXX16/S2

Le chemin ayant le moins d’épreuves depuis l’entrée de la salle 1 jusqu’à la salle aux trésors passe par15 épreuves. Donc il faut au moins 150 minutes pour le parcourir. Pour avoir une chance d’arriver au boutavant l’heure éliminatoire (4h50 = 290 minutes), il faut entrer dans la salle avant 290-150=140 minutes,c’est à dire avant 2h20.

En faisant le même raisonnement pour les autres salles, voici les heures d’arrivée maximale pour ne pasêtre éliminé :

S1 290-150=140 minutes = 2h20S2 290-140=150 minutes = 2h30S3 290-130=160 minutes = 2h40S4 290-100=190 minutes = 3h10S5 290-130=160 minutes = 2h40S6 290-50=240 minutes = 4hS7 290-90=200 minutes = 3h20S8 290-30=260 minutes = 4h20

A.10.8 Correction de l’exercice 12.8 de la page 102

On reconnaît ici un problème de flot maximal. Et la seconde question sera celui d’un flot maximal àcoût minimal.

Pour résoudre ce problème il faut déjà modéliser le réseau transport par un graphe. Un premier jet donnela figure A.53

Même s’il existe deux moyens de transport différents entre Danlo et Estival, du point de vue du modèle,rien ne les distingue. Ils ont donc été unifiés en un seul arc decapacité 1400.

Eric LALLET , Jean-Luc RAFFY 149

Page 158: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.53 – Réseau de transport entre Aunor et Estival

Mais il est possible d’apporter des simplification à ce graphe :

Lorsqu’un sommet n’a qu’un seul arc entrant et un seul arc sortant, il est possible de le supprimer enremplaçant les deux arcs par un seul arc ayant la capacité minimale des deux arcs.

c1 c2 min(c1, c2)

S1 −→ S2 −→ S3 devient S1 −→ S3

Donc on peut supprimer le sommet «Campagne» pour ne mettre qu’un arc de capacité 700 entre Bor-delot et Estival.

On obtient ainsi le réseau de transport de la figure A.54

FIG. A.54 – Réseau de transport entre Aunor et Estival après simplifications

Il reste à utiliser l’algorithme de Ford-Fulkerson sur ce graphe. Pour cela on commence par un flot initialen envoyant 1000 personnes en bateau jusqu’à Danlo. Ensuiteces 1000 personnes utilisent bateau et avionpour aller à Estival. Cela laisse la possibilité à 400 personnes de voyager en avion depuis Aunor jusqu’àDanlo, où ils peuvent continuer en bateau ou avion. On obtient le flot de la figure A.55.

FIG. A.55 – Flot initial pour commencer l’algorithme de Ford-Fulkerson

Lorsqu’on regarde si ce flot peut être amélioré, le marquage de l’algorithme de Ford-Fulkerson arrivejusqu’au puits (voir figure A.56).

Il existe donc une chaîne améliorante :

1000− 400 = 600 1000 700− 0 = 700Aunor −→ Danlo ←− Bordelot −→ Estival

150 Eric LALLET , Jean-Luc RAFFY

Page 159: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

FIG. A.56 – Ford-Fulkerson : marquage d’une chaîne améliorante

Le gain que l’on peut obtenir sur cette chaîne améliorante est de 600 personnes. On ajoute donc 600personnes sur les trajets entre Aunor et Danlo et entre Bordelot et Estival. On retire ce flot sur l’arc inverse,entre Danlo et Bordelot. On obtient le nouveau flot de la figureA.57. Comme le flot sortant de la source estsaturé, on sait que le flot maximal est atteint. Il est de 2000 personnes.

FIG. A.57 – Flot après amélioration : il s’agit du flot maximal

Les capacités de transports autorisent donc le gouvernement à acheminer 2000 personnes depuis Aunorjusqu’à Estival. Une solution pour obtenir ce flot consiste àfaire partir 1000 personne en bateau depuis Au-nor jusqu’à Bordelot. 600 prennent alors la route pour Estival en passant par Campagne, et 400 continuenten bateau jusqu’à Danlo. Là ils sont rejoints par 1000 autrespersonnes qui arrivent en avion depuis Aunor.Les 1400 personnes arrivées à Danlo continuent jusqu’à Estival en empruntant avion ou bateau.

Maintenant il faut savoir combien de personnes le gouvernement a les moyens de transporter. Il s’agitd’un problème de type «flot maximal à coût minimal». Le figure A.58 illustre le premier jet pour modéliserle réseau de transport en intégrant les coûts. Cette fois ci il va falloir distinguer le moyen de transportentre Danlo et Estival, car le coût va changer suivant que l’on prend l’avion ou le bateau. Pour cela il vafalloir introduire deux sommets artificiels pour séparer les deux routes. On va donc placer un «port» et un«aéroport» sur notre graphe.

FIG. A.58 – Réseau de transport avec coûts entre Aunor et Estival

Lorsqu’un sommet n’a qu’un seul arc entrant et un seul arc sortant, il est possible de le supprimer enremplaçant les deux arcs par un seul arc ayant la capacité minimal des deux arcs et la somme des coûts desdeux arcs :

cap1/coût1 cap2/coût2 min(cap1 ,cap2 )/coût1+coût2

S1 −→ S2 −→ S3 devient S1 −→ S3

Eric LALLET , Jean-Luc RAFFY 151

Page 160: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Donc on peut remplacer les deux arcs adjacents à Campagne parun seul ayant 700 de capacité et 4galets par personne pour coût. On obtient le modèle de le figure A.59. Il n’est pas possible de faire cettesimplification pour les arcs entre Danlo et Estival, car celaplacerait deux arcs différents entre le mêmecouple de sommets (on obtiendrait un «multigraphe»), et lesalgorithmes utilisés par la suite (par exemplela recherche de plus court chemin utilisé pour Busacker et Gowen) ne fonctionne pas sur ce type de graphe.

FIG. A.59 – Réseau de transport avec coûts après simplification

À partir de ce modèle on peut mettre en œuvre l’algorithme de Busacker et Gowen. Mais attention, lacondition d’arrêt sera le coût de transport. Si on atteint lecoût maximal autorisé (5400 galets) avant que leflot maximal ne soit atteint, il faudra s’arrêter.

Il faut commencer par faire circuler un premier flot par le chemin le plus court au sens du coût2 : c’estle transport en bateau de bout en bout qui coûte le moins cher,3 galets par personne :

1000/1 1000/1 ∞/0 700/1

Aunor −→ Bordelot −→ Danlo −→ Port −→ Estival

On peut transporter 700 personnes par ce chemin pour un coût global700×3 = 2100 galets. On reportece flot sur le réseau de transport et on calcule le graphe associé pour trouver le nouveau chemin le plus court(voir figure A.60).

FIG. A.60 – Busacker et Gowen : premier flot et graphe associé

Le chemin le plus court consiste à transporter les personnesen bateau jusqu’à Bordelot pour ensuiteprendre la route jusqu’à Estival pour un coût de 5 galets par personne.

300/1 700/4

Aunor −→ Bordelot −→ Estival

On peut transporter 300 personnes par ce chemin pour un coût global de300× 5 = 1500 galets. Doncen cumulant les deux flots, on peut transporter 1000 personnes pour un coût de 3600 galets. Le budgetmaximal pour le transport n’est pas encore atteint, on peut continuer l’algorithme.

2Pour alléger la correction, les recherches de chemin le pluscourt ne sont pas reportées ici.

152 Eric LALLET , Jean-Luc RAFFY

Page 161: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Après report du nouveau flot sur le graphe, on obtient la figureA.61.

FIG. A.61 – Busacker et Gowen : graphes après ajout du second flot

Le nouveau chemin le plus court part d’Aunor, passe par Danloet Bordelot et arrive à Estival. Il consisteà acheminer par la route une partie des personnes qui prenaient le bateau à Bordelot pour laisser leur placeaux personnes qui arrive en avion à Danlo (et qui peuvent ainsi continuer en bateau). Cela revient à 9 galetspar personne.

1000/6 700/-1 400/4

Aunor −→ Danlo ←− Bordelot −→ Estival

On peut transporter 400 personnes par ce chemin pour un coût global de400 × 9 = 3600 galets. Encumulant ce flot avec les précédents on atteindrait 7200 galets de coût de transport. Ce qui dépasserait lebudget maximal. On ne peut donc pas saturer ce nouveau chemin. Le budget restant après les 3600 galetsutilisés pour les deux premiers flots est de5400 − 3600 = 1800 galets. Avec un coût unitaire de 9 galetspar personne, on peut donc transporter 200 personnes de plus. La figure A.62 illustre le flot maximal (1200personnes) pour le budget fixé (5400 galets).

FIG. A.62 – Flot maximal pour le budget fixé

Pour 5400 galets de budget de transport, le gouvernement peut acheminer 1200 personnes. 1000 pren-dront le bateau depuis Aunor jusqu’à Bordelot. de là 700 continueront par la route jusqu’à Estival. 300autre reprendront le bateau jusqu’à Danlo. Là ils seront rejoints par 200 personnes arrivées en avion depuisAunor. Ces 500 personnes finiront leur voyage en bateau jusqu’à Estival.

Eric LALLET , Jean-Luc RAFFY 153

Page 162: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

A.10.9 Correction de l’exercice 12.9 de la page 104

La question de ce problème ressemble beaucoup à celle du problème précédent. On pourrait donc penserqu’il s’agit encore d’un problème de flot maximal à coût minimal. Mais dès qu’on essaie de le modéliser,on se rend vite compte que le problème s’exprime avec des contraintes qui sont des fonctions linéaires devariables. Il faut combiner dans de bonnes proportions les divers moyens de transport pour gérer au mieuxle budget. Il s’agit donc d’un problème de programmation linéaire.

Le but est d’envoyer le plus possible d’unités de secours surplace. Le nombre d’unités transportées vadépendre des moyens de transports affrétés. Si on nomeU le nombre des unités transportées,A le nombred’avions,B le nombre de bateaux, etC le nombre de camions on obtient le problème suivant :

– Il faut maximiserZ = U .– Il faut assez de moyens de transport pour emporter le personnel. Chaque avion peut transporter 2

unités de personnel, chaque bateau 1 seule, et chaque camion3. DoncU ≤ 2×A + B + 3× C– Il faut assez de transports pour emporter les unités de matériel. Les avions ne peuvent pas en trans-

porter, les bateaux peuvent en transporter 7, et les camions1. DoncU ≤ 7×B + C– Il ne faut pas dépasser le budget de 3500 galets. Chaque voyage en avion coût 250 galets, ceux en

bateau coûtent 150 galets, et ceux en camion 150 galets. Donc: 250×A+150×B+150×C ≤ 3500

En mettant toutes ces équations sous leur forme canonique, et en simplifiant la dernière par 50, onobtient :

Trouver le max de :Z = UU − 2×A−B − 3× C ≤ 0U − 7×B − C ≤ 05×A + 3×B + 3× C ≤ 70avecU ≥ 0,A ≥ 0, B ≥ 0 etC ≥ 0

Il ne reste plus qu’à utiliser le simplexe. Mais comme il n’est pas question d’affréter des morceauxd’avion, de bateau ou de camion il faudra utiliser la méthodeen nombres entiers.

Voici le premier tableau du simplexe :

U A B C E1 E2 E3 SommeE1 1 -2 -1 -3 1 0 0 0E2 1 0 -7 -1 0 1 0 0E3 0 5 3 3 0 0 1 70∆j 1 0 0 0 0 0 0 0

Pour la première itération, deux pivots sont possibles (colonne deU , ligneE1 ouE2), et valent tous lesdeux 1. On va choisir celui de la ligneE1. Comme le pivot vaut 1, il n’y a pas besoin de troncature. Onobtient ce second tableau :

U A B C E1 E2 E3 SommeU 1 -2 -1 -3 1 0 0 0E2 0 2 -6 2 -1 1 0 0E3 0 5 3 3 0 0 1 70∆j 0 2 1 3 -1 0 0 0

Pour la second itération, le pivot est sur la colonne deC et la ligne deE2. Comme le pivot vaut 2, il fautfaire une troncature. La ligne deE2 exprime la contrainte :

2×A− 6×B + 2× C − E1 ≤ 0

Donc en divisant par le pivot et prenant la partie entière, onobtient :

[2

2

]

×A +

[−6

2

]

×B +

[2

2

]

× C +

[−1

2

]

× E1 ≤ 0

154 Eric LALLET , Jean-Luc RAFFY

Page 163: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

C’est à dire :

A− 3×B + C − E1 ≤ 0

Avec une variable d’écartT1, on peut ajouter cette troncature au tableau pour obtenir :

U A B C E1 E2 E3 T 1 SommeU 1 -2 -1 -3 1 0 0 0 0E2 0 2 -6 2 -1 1 0 0 0E3 0 5 3 3 0 0 1 0 70T 1 0 1 -3 1 -1 0 0 1 0∆j 0 2 1 3 -1 0 0 0 0

On pivote sur la ligneT1 colonne deC et on obtient (avec ajout anticipé de la ligne de la troncature del’itération suivante) :

U A B C E1 E2 E3 T 1 T 2 SommeU 1 1 -10 0 -2 0 0 3 0 0E2 0 0 0 0 1 1 0 -2 0 0E3 0 2 12 0 3 0 1 -3 0 70C 0 1 -3 1 -1 0 0 1 0 0T 2 0 0 1 0 0 0 0 -1 1 5∆j 0 -1 10 0 2 0 0 -3 0 0

Attention, pour alléger la correction les lignes et colonnes des troncatures ont été mises de façon anti-cipées dans le tableau. Avant l’ajout de la variableT 2, le pivot était sur la colonne deB et la ligne deE3.Comme le pivot valait 12, il fallait faire une troncature. Celle-ci à été ajoutée avec la variable d’écartT2.On pivote sur la ligneT2 et la colonne deC. On obtient ce quatrième tableau (toujours avec ajout anticipéde la troncature) :

U A B C E1 E2 E3 T 1 T 2 T 3 SommeU 1 1 0 0 -2 0 0 -7 10 0 50E2 0 0 0 0 1 1 0 -2 0 0 0E3 0 2 0 0 3 0 1 9 -12 0 10C 0 1 0 1 -1 0 0 -2 3 0 15B 0 0 1 0 0 0 0 -1 1 0 5T 3 0 0 0 0 0 0 0 1 -2 1 1∆j 0 -1 0 0 2 0 0 7 -10 0 -50

Avant l’ajout de la ligne et colonne de troncature, le pivot était sur la colonne deT1 et la ligne deE3. Ilvalait 9. On a donc ajouté une troncature et sa variable d’écart (T3). Après pivotement sur la ligne deT3 etcolonne deT1, on obtient ce cinquième tableau.

U A B C E1 E2 E3 T 1 T 2 T 3 T 4 SommeU 1 1 0 0 -2 0 0 0 -4 7 0 57E2 0 0 0 0 1 1 0 0 -4 2 0 2E3 0 2 0 0 3 0 1 0 6 -9 0 1C 0 1 0 1 -1 0 0 0 -1 2 0 17B 0 0 1 0 0 0 0 0 -1 1 0 6T 1 0 0 0 0 0 0 0 1 -2 1 0 1T 4 0 0 0 0 0 0 0 0 1 -2 1 0∆j 0 -1 0 0 2 0 0 0 4 -7 0 -57

À ce moment de l’algorithme, la solution entière optimale est trouvée. Mais comme il reste des∆j

strictement positifs, on ne le sait pas encore. Il faut ajouter deux nouvelles itérations pour le prouver. Voiciles deux tableaux de ces itérations sans (presque) aucun commentaire :

Eric LALLET , Jean-Luc RAFFY 155

Page 164: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Le pivot initial (colonneT2, ligneE3) valait 6. On a donc ajouté une troncature et sa variable d’écartT4. Après pivotement on obtient :

U A B C E1 E2 E3 T 1 T 2 T 3 T 4 T 5 SommeU 1 1 0 0 -2 0 0 0 0 -1 4 0 57E2 0 0 0 0 1 1 0 0 0 -6 4 0 2E3 0 2 0 0 3 0 1 0 0 3 -6 0 1C 0 1 0 1 -1 0 0 0 0 0 1 0 17B 0 0 1 0 0 0 0 0 0 -1 1 0 6T 1 0 0 0 0 0 0 0 1 0 -3 2 0 1T 2 0 0 0 0 0 0 0 0 1 -2 1 0 0T 5 0 0 0 0 1 0 0 0 0 1 -2 1 0∆j 0 -1 0 0 2 0 0 0 0 1 -4 0 -57

Le pivot initial (colonneE1, ligneE3) valait 3. On a donc ajouté une troncature et sa variable d’écartT5. Après pivotement on obtient :

U A B C E1 E2 E3 T 1 T 2 T 3 T 4 T 5 SommeU 1 1 0 0 0 0 0 0 0 1 0 2 57E2 0 0 0 0 0 1 0 0 0 -7 6 -1 2E3 0 2 0 0 0 0 1 0 0 0 0 -3 1C 0 1 0 1 0 0 0 0 0 1 -1 1 17B 0 0 1 0 0 0 0 0 0 -1 1 0 6T 1 0 0 0 0 0 0 0 1 0 -3 2 0 1T 2 0 0 0 0 0 0 0 0 1 -2 1 0 0E1 0 0 0 0 1 0 0 0 0 1 -2 1 0∆j 0 -1 0 0 0 0 0 0 0 -1 0 -2 -57

Tous les∆j sont négatifs ou nuls, la solution optimale est donc atteintes :A est hors base, et vaut donc0,B vaut 6 etC 17. Donc avec le budget alloué, on peut transporter 57 unités(1140 personnes, et 57 tonnesde matériels) en utilisant 6 bateaux et 17 camions.

Quelques interprétations supplémentaires :– E2 = 2. E2 est la variable d’écart sur la contrainte du transport du matériel. Donc, la capacité de

transport de matériel n’est pas totalement utilisée. Avec les moyens mobilisés on pourrait transporter2 tonnes de matériel en plus. Mais on n’aurait pas les équipespour l’utiliser.

– E3 = 1. E3 est la variable d’écart sur la contrainte de coût. Donc tout le budget n’est pas utilisé.Comme on avait divisé cette contrainte par 50 pour simplifierl’équation, la somme non utilisée estde50 galets.

156 Eric LALLET , Jean-Luc RAFFY

Page 165: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Index

adjacence, 32algorithme,

arbre de recouvrement minimal, 28, 29, 119Busacker et Gowen, 49, 50, 52, 53, 129, 130,

152dates au plus tôt, 15, 21dates au plus tard, 17, 22Ford-Fulkerson, 45, 52, 128, 150Ford-Moore, 37, 122, 125, 127, 147, 149Kruskal, 28, 147plus court chemin, 37, 49, 122, 125, 127, 147,

149Prim, 29, 30, 32, 119simplexe, 67

arête, 3arête,

boucle, 4cocycle, 4extrémité, 3incidence, 4

arbre, 26, 27, 118, 146arbre de recouvrement minimal, 28, 29, 97arbre,

Kruskal, 28recouvrement (de), 28, 118, 146

arc, 6arc,

extréminité initiale, 6extrémité terminale, 6

Busacker et Gowen, 49, 50, 52, 53, 129, 130, 152

chemin, 7chemin critique, 11, 13, 20, 22, 98, 110, 111, 143,

148cicuit, 7cocircuit, 7cocycle, 4, 29, 32connexité, 5connexité,

forte, 7nombre, 5

date au plus tôt, 14date au plus tard, 17degré, 4, 6degré,

demi-degré, 6demi-degré exterieur, 6demi-degré intérieur, 6

durée de projet, 15, 143, 148

flot max, 42, 97, 128, 149flot max,

Busacker et Gowen, 49, 50, 52, 53, 129coût minimal, 49, 50, 52, 53, 97, 129, 151Ford-Fulkerson, 45, 52, 128

Ford-Fulkerson, 45, 52, 128, 150Ford-Moore, 37, 122, 125, 127, 147, 149forme canonique, 57, 65, 81, 82, 88, 138, 140, 142,

154forme standard, 65, 66, 73, 82, 88, 140

GANTT, 11, 25, 98, 110, 116, 117GANTT,

diagramme, 11graphe, 13, 107graphe

prédécesseur, 7successeur, 6

graphe,Γ+, 7, 17Γ−, 7, 15adjacence, 8arête, 3arc, 6biparti, 4, 110biparti complet, 4boucle, 4chaîne, 4chemin, 7, 107, 110circuit, 7cocircuit, 7cocycle, 4, 29complet, 4connexité, 5couvrant, 28cycle, 5degré, 4, 6demi-degré, 6forte connexité, 7multigraphe, 4, 8multivoque, 7non orienté, 3, 8, 108ordre, 4orienté, 3, 5, 8, 107p-graphe, 7poids, 28simple, 4, 8sommet, 3sous-graphe, 28valué, 37

Eric LALLET , Jean-Luc RAFFY 157

Page 166: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Kruskal, 28, 147

méthode géométrique, 59, 133, 145marge totale, 20, 22, 144matrice,

adjacence, 8, 32multivoque, 7

nombres entiers, voir PLNE

ordonnancement, 11, 110, 111, 116

PERT, 11, 110PLNE, 85, 92, 93, 154PLNE,

troncature, 89–93, 154plus court chemin, 35, 42, 49, 97, 121, 123, 125, 147,

149plus court chemin,

Ford-Moore, 37, 125, 127plus long chemin, 23, 25, 98, 112, 114poids, 28potentiel-tâches, 11, 13, 97, 98, 110, 111, 116, 143,

148potentiel-tâches,

date au plus tôt, 14date au plus tard, 17durée de projet, 15, 143, 148marge totale, 20, 22, 144

prédécesseur, 7Prim, 29programmation linéaire, 57, 59, 63, 80, 85, 98, 132–

134, 137–140, 144, 146, 154nombres entiers (en), voir PLNE

programmation linéaire en nombres entiers, voir PLNEprogrammation linéaire,

dual, 75, 78, 138, 140, 146forme canonique, 57, 65, 81, 82, 88, 138, 140,

142, 154forme standard, 65, 66, 73, 82, 88, 140méthode géométrique, 59, 133, 145simplexe, 63, 80, 84, 85, 134, 137, 139, 140,

145, 154simplexe cas général, 80, 139, 140

simplexe, 63, 84, 85, 88, 98, 99, 134, 137, 145, 154simplexe,

algorithme, 67base, 66, 67cas général, 80, 139, 140dual, 75, 78, 138, 140, 146forme canonique, 57, 59, 65, 81, 82, 88, 138,

140, 142, 154forme standard, 65, 66, 73, 82, 88, 140marge, 70pivot, 67premier critère de Dantzig, 67second critère de Dantzig, 67valeur marginale, 70, 78variable d’écart, 65, 68, 78, 89

sommet, 3sommet,

adjacence, 4prédécesseur, 7successeur, 6

successeur, 6

158 Eric LALLET , Jean-Luc RAFFY

Page 167: OPM3001 - Techniques quantitatives de gestion Eric …epsi/TQG/2010/OPM3001-DocDeCours.pdf · OPM3001 - Techniques quantitatives de gestion Eric LALLET, Jean-Luc RAFFY TELECOM ÉCOLE

Bibliographie

[1] Jean-Claude Papillon.Eléments de recherche opérationnelle. Dalloz-Sirey, 1992.

[2] Roseaux.Exercices et problèmes résolus de recherche opérationnelle : Tome 3 : Programmation li-néaire et extensions - Problèmes classiques. DUNOD, 1985.

[3] Roseaux.Exercices et problèmes résolus de recherche opérationnelle : Tome 1, Graphes : leurs usages,leurs algorithmes. DUNOD, 1998.

[4] Daniel Thiel. Recherche opérationnelle et management des entreprises. Economica, 1990.

Eric LALLET , Jean-Luc RAFFY 159