Académique Documents
Professionnel Documents
Culture Documents
RECHERCHE OPERATIONNELLE
Cours et Exercices résolus
Préface par le Professeur Vincent NGONGA NZINGA
Avril 2019
1
INTRODUCTION
Dans son sens le plus général, l’on considère la Recherche opérationnelle comme
l’application des méthodes, des techniques et d’instruments scientifiques, par des groupes
interdisciplinaires, aux problèmes concernant les systèmes organisés (hommes, machines,
matériels) de façon à obtenir les solutions optimales aux problèmes des organisations
(entreprises, administration publiques, …).
2
A la suite des avancées significatives constatées dans les Sciences Economiques,
notamment le recours à la modélisation mathématique, cette approche systématique et
scientifique des problèmes de décision a été transposée aux entreprises et, plus
généralement, aux organisations.
De manière générale, les problèmes-types posés par la Recherche opérationnelle
peuvent être groupés en trois catégories, à savoir : les problèmes combinatoires, les
problèmes stochastiques et les problèmes concurrentiels.
Les problèmes combinatoires sont celles qui concernant des situations dans
lesquelles il existe plusieurs solutions et dont l’utilisation des algorithmes 1 appropriés
permettent l’obtention de la solution optimale. Les principaux exemples sont : (i) le
problème de choix des investissements ; (ii) les problèmes de production ; (iii) le
problème d’affectation, (iv) le problème de transport, (v) le problème
d’ordonnancement et (vi) le problème de flot de valeur maximale.
Les problèmes stochastiques sont celles dans lesquels le hasard joue un rôle
déterminant et le recours aux instruments spécifiques, notamment les outils
statistiques, conduisent à des choix cohérents. C’est le cas notamment (i) des
problèmes de file d’attente, (ii) des problèmes de choix incertains ; (iii) des
problèmes de gestion de stocks et (iv) des problèmes de réparation et de
renouvellement des équipements.
Les problèmes concurrentiels sont ceux dans lesquels l’entreprise se trouve en face
d’un environnement dont les états sont constitués des décisions d’autres agents
économiques dont les intérêts lui sont, du moins partiellement, opposés . Parmi les
problèmes étudiés, la théorie des jeux occupe une place prépondérante.
Il faut noter que les acquis théoriques de la Recherche Opérationnelle ne seraient
rien sans les moyens de calcul, les ordinateurs, seuls aptes à résoudre les problèmes dans la
pratique. Or, les premiers ordinateurs n’ont été commercialisés qu’en 1955-56.
1
Le terme algorithme renvoie à une séquence d’itérations permettant d’obtenir des valeurs optimales d’un
problème donné. Ce mot résulte de la corruption du nom d’un grand mathématicien arabe Alkhwarizmi qui
vivait au IXème siècle, et qui signifie simplement : procédé permettant de résoudre un problème en un nombre
fini d’opérations (ou itérations).
3
Chapitre 1. LA PROGRAMMATION LINEAIRE
1.1. Généralités
La programmation linéaire recouvre un ensemble de techniques d’optimisation sous
plusieurs contraintes qui permettent de déterminer dans quelles conditions on peut rendre
maximum ou minimum une fonction-objectif Z(x i) de n variables liées par m contraintes de la
forme g(xi) ≤B ou g(xi) ≥ B.
Elle facilite la résolution de problèmes complexes d’utilisation optimale des
ressources disponibles et la réduction du fossé entre la théorie abstraite et les décisions des
chefs d’entreprises.
Beaucoup de problèmes concrets qui se posent dans une entreprise peuvent faire
l’objet d’une telle formulation.
On rencontre de multiples applications de la programmation linéaire dans
pratiquement tous les problèmes de la gestion, notamment :
Dans le gestion de la production : élaboration de plan de production et de
stockage, choix de techniques de production, affectation de moyens de
production, détermination de la composition de produits, …
Dans le domaine de marketing : détermination de la politique de prix,
sélection des caractéristiques de produit, …
Dans le domaine de gestion des ressources humaines : affectation du
personnel, …
En matière financière : choix de programme d’investissements, …
Si les applications de la programmation linéaire sont aussi nombreuses, on doit
l’attribuer, en grande partie, à la souplesse de ses techniques en ce qui concerne leur
formulation, mais aussi à la relative simplicité des méthodes de résolution utilisables dans le
cas les plus courants et pour lesquelles existent des programmes informatiques largement
répandues.
Le programme est dit linéaire car la fonction-objectif (ou fonction économique) et les
contraintes sont des combinaisons linéaires des variables du premier degré.
D’une manière générale, le problème de programmation linéaire consiste à choisir
des valeurs de n variables x1, x2, …, xn de façon à optimiser une fonction-objectif soumise à m
contraintes.
1.2. Formulation d’un programme
La formulation d’un programme est une tâche délicate mais essentielle car elle
conditionne la découverte ultérieure de la bonne solution. Elle comporte les mêmes phases
quelles que soient les techniques requises pour le traitement :
1°/ La détection du problème et l’identification des variables. Les variables doivent
correspondre exactement aux préoccupations du responsable de la décision. En
programmation mathématique, les variables sont des variables décisionnelles.
2°/ La formulation de la fonction économique. Elle traduit les préférences du
décideur exprimées sous forme d’une fonction des variables identifiées (fonction-objectif).
4
3°/ La formulation des contraintes. Ces dernières revêtent la forme d’équations ou
d’inéquations mathématiques traduisant, pour un responsable, des limites à ne pas
dépasser.
Le responsable d’une décision ne dispose que de sa compétence pour réaliser une
formalisation correcte du problème posé, car il n’existe pas de méthodes en la matière. Un
moyen d’acquérir cette compétence est le « learning by doing ».
1.2.1. Formalisation d’un cas simple
a) Enoncé du problème
Considérons le cas de l’entreprise YOANIS qui pratique le négoce en vins et propose à
sa clientèle deux vins de table : l’un est dénommé « Extra », l’autre « Super ». Ces produits
sont obtenus par coupage de crus issus de diverses régions : un vin de l’Hérault, un vin de
Bordelais et un vin d’Italie.
Les coupages sont réalisés selon les proportions suivantes :
Actuellement, la société dispose en stock dans ses cuves des quantités suivantes de
crus d’origine :
- Vin de l’Hérault : 13 600 hectolitres
- Vin de Bordelais : 12 000 hectolitres
- Vin d’Italie : 10 400 hectolitres
Ces quantités constituent les ressources disponibles pour la production de l’année à
venir. En outre, compte tenu des capacités techniques d’embouteillage existantes, cette
production ne peut dépasser 36 000 hectolitres au total dans l’année.
Une étude de marché révèle que celui-ci ne saurait absorber plus de 20 000
hectolitres de vin« Extra » et 16 000 hectolitres de vin « Super ».
Le profit unitaire attendu est de 400 USD pour le vin « Extra » et 500 USD pour le vin
« super ».
b) Formulation de la fonction économique
La fonction économique exprime sous forme mathématique le but poursuivi par
l’entreprise. Ici, il s’agit de maximiser le profit profit :
Profit = 400 x1 + 500 x2
5
Z(x) = 400 x1 + 500 x2
c) Formulation des contraintes
L’ensemble de contraintes constitue le cadre dans lequel devra se situer la solution :
il conditionne les valeurs que peuvent prendre les variables.
Les contraintes peuvent être de différentes natures :
Les contraintes résultant de la technique et de l’existence de quantités de
facteurs (les matières premières) : à chaque catégorie de vin en stock va
donc correspondre une contrainte. Celle-ci exprimera le fait que la
quantité utilisée pour chaque production ne doit pas dépasser la quantité
disponible. Autrement dit, les contraintes techniques suivantes doivent
être respectées :
0.5 x1 + 0.2 x2 ≤ 13 600
0.3 x1 + 0.6 x2 ≤ 12 000
0.2 x1 + 0.2 x2 ≤ 10 400
6
Les activités sont les variables de décision du problème étudié. Il s’agit pour
l’entreprise de sélectionner le meilleur programme d’activités X = (X 1, X2, …, Xj, …, Xn),
c'est-à-dire celui qui est le plus conforme à ses objectifs.
Les coefficients économiques mesurent le degré de réalisation de l’objectif de
l’entreprise, associé à une valeur unitaire cj de chacune des variables. A chaque
variable de décision est ainsi associé un coefficient économique c j. L’évaluation de
ces coefficients dépend du type d’objectif poursuivi : selon le cas, ce sera le prix de
vente, une marge brute, un coût variable unitaire, le profit unitaire, etc.
Les ressources peuvent être de nature diverse selon le problème rencontré. Dans
tous les cas, ce sont les éléments qui limitent le calcul économique du décideur : des
capacités de production limitées, des normes à respecter, des potentiels de vente, …
Dans tout problème, il faudra ainsi prendre en considération un vecteur de
ressources B = (b1, b2, …, bi, …, bm) donné.
Par coefficient technique, on désignera le degré de « consommation » d’une
ressource par une activité. A la ressource i et à l’activité j, correspondra le coefficient
technique aij. Dans la mesure où le problème étudié met en jeu n activités et m
ressources, il faudra considérer (m x n) coefficients techniques que l’on peut
regrouper dans un tableau du type suivant :
Activité
Ressources 1 2 … j … N
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮
Un même problème de programmation linéaire peut être traduit sous une forme
canonique ou sous une forme standard.
7
⋮ ⋮ ⋮ ⋮ ⋮
ai1 X1 + ai2 X2 + … + aij Xj + … + ain Xn ≤ bi
⋮ ⋮ ⋮ ⋮ ⋮
am1 X1 + am2 X2 + … + amj Xj + … + amn Xn ≤ bm
(3) et sous les contraintes Xj ≥ 0, j = 1, 2, …, n
Le programme peut aussi s’écrire sous forme matricielle suivante :
[]
X1
X2
(1) Max. Z = [c1 c2 … cn ]
⋮
Xn
(2) Sous contrainte :
[ ][ ] [ ]
a11 a12 … a 1 n X1 b1
a21 a22 … a 2 n X2 b2
≤
⋮ ⋮ ⋮ ⋮ ⋮ ⋮
am 1 am 2 … amn Xn bm
(3) et X ≥ 0
Sous forme matricielle condensée, ce programme se réduit à :
(1) Max. Z = [C] [X]
(2) S/C [A] [X] ≤ [B]
(3) et [X] ≥ 0
Tout ensemble des variables qui satisfont simultanément aux contraintes
fonctionnelles et de non négativité est une solution possible du problème de programmation
linéaire.
On appelle solution de base admissible ou réalisable d’un programme linéaire un
vecteur X tel que [A] [X] = [B] et [X] ≥ 0. Si l’ensemble solution est non vide, toute solution
de base admissible est un sommet du polyèdre convexe2.
En ce qui concerne le problème de minimisation, le programme peut s’écrire sous la
forme matricielle condensée suivante :
(1) Min. Z = [C] [X]
(2) S/C [A] [X] ≥ [B]
(3) et [X] ≥ 0
2
Un polyèdre convexe est un ensemble convexe qui possède un nombre fini de points extrêmes (ou sommets).
La surface plane d’un triangle est un polyèdre convexe, tandis que celle d’un cercle n’en est pas un.
Un simplexe est un polyèdre, dans l’espace à n dimensions, ayant exactement (n + 1) points extrêmes. Si n = 2,
un simplexe dans un espace à deux dimensions est un triangle (le plus petit ensemble convexe dans un espace
à deux dimensions avec n + 1 = 3 sommets).
8
Avant d’effectuer les calculs permettant de résoudre le programme linéaire, il est
souhaitable ou nécessaire de réaliser certaines transformations :
On sait que si la fonction économique doit être maximisée (ou minimisée), les
signes d'inégalité dans le système de contraintes prendront généralement la
forme canonique ≤ (ou ≥). Si tel n'est pas le cas, on harmonise la notation en
appliquant la règle suivante :
- Si a ≥ b, alors -a ≤ -b. Par exemple 2 X1 + 5 X2 ≥ 8 ↔ -2 X1 – 5 X2 ≤ -8
- Si a ≤ b, alors -a ≥ -b. Par exemple 3 X1 + 4 X2 ≤ 7 ↔ -3 X1 – 4 X2 ≥ -7
Il y a deux sens possibles pour une optimisation : maximisation ou
minimisation. Il est intéressant de savoir que Max. Z équivaut à Min. (-Z) et que
Min. Z équivaut à Max. (-Z).
Lorsqu'une contrainte s'exprime sous la forme d'une égalité, deux solutions
sont envisageables :
- ou bien supprimer une variable. En effet, l’égalité introduit une liaison linéaire
stricte entre les variables, donc la connaissance de (n - 1) variables entraîne la
connaissance de la nième. La suppression de cette variable doit s'accompagner
de l'élimination de la contrainte d'égalité.
- ou bien décomposer la contrainte en deux inéquations de sens inverse. Dans
ce cas :
n
∑ aij X j = bi (i = 1, 2, …, m)
j
devient :
n
∑ aij X j ≤ bi
j
n
∑ aij X j ≥ bi
j
Exercice 1
On se propose de fournir quotidiennement à un malade un minimum de 700
grammes de protéines, 3000 unités de calorie, 800 mg de calcium et 12 mg de fer. Les
produits disponibles sont : le pain, le beurre, le fromage, le chou et le poisson. Les prix par
100 gr de ces produits sont respectivement : 3 €, 7 €, 7,5 €, 5 € et 6 €.
Les quantités de protéines (en gr), de calories (en unités), de calcium (en mg), de fer
(en mg), par 100 grammes de ces aliments, sont données dans le tableau suivant :
Protéine 10 30 35 5 -
9
Calories 300 1800 800 1500 300
Fer 4 - - 4 15
10
0.3 x1 + 0.6 x2 ≤ 12 000
0.2 x1 + 0.2 x2 ≤ 10 400
x1 ≤ 20 000
x2 ≤ 16 000
xi ≥ 0
[]
x1
x2
e1
Max Z(x) = [ 400 500 0 0 0 0 0 ] e2
e3
e4
e5
[]
x1
( ) [ ]
0.5 0.2 1 0 0 0 0 x2 13 600
0.3 0.6 0 1 0 0 0 e1 12 000
0.2 0.2 0 0 1 0 0 e2 = 10 400
1 0 0 0 0 1 0 e3 20 000
0 1 0 0 0 0 1 e4 16 000
e5
11
Résoudre un programme linéaire consiste à déterminer les valeurs des variables qui
permettent d’optimiser la fonction économique.
Il existe diverses techniques de résolutions parmi lesquelles la méthode graphique se
montre à l’évidence la plus rapide et la plus simple mais aussi la plus limitée, car dès lors que
le nombre de variables dépasse deux elle devient impraticable. C’est pourquoi les
chercheurs se sont efforcés de mettre au point une méthode de calcul algorithmique qui
permet de détecter la solution optimale quel que soit le nombre des variables et des
contraintes. Il s’agit de l’algorithme du simplexe qui permet de détecter la solution optimale
quel que soit le nombre des variables et des contraintes, et dont les logiciels correspondants
sont largement répandus.
1.3.1. Solution graphique
Le problème de programmation posé revient à maximiser la fonction économique en
respectant les différentes contraintes. En se référant au cas YOANIS, le problème peut être
présenté sous la forme canonique suivante :
Max Z(x) = 400 x1 + 500 x2
Sous les contraintes :
0.5 x1 + 0.2 x2 ≤ 13 600
0.3 x1 + 0.6 x2 ≤ 12 000
0.2 x1 + 0.2 x2 ≤ 10 400
x1 ≤ 20 000
x2 ≤ 16 000
x1 ≥ 0
x2 ≥ 0
La solution graphique comporte trois étapes :
La première consiste à déterminer la région des solutions possibles. Une
solution est qualifiée de possible lorsqu’elle satisfait toutes les contraintes.
12
En procédant de la même manière pour les autres contraintes, on obtient
les droites3 (3), (4), (5), (6) et (7).
Puisque c’est toujours le facteur le plus rare qui limite la production, la
frontière des possibilités de production est la ligne brisée la plus basse,
soit DCBA. La région des solutions possibles ou admissibles est le polyèdre
0DCBA (la surface hachurée). Mais la solution optimale doit être un des
points de la frontière de DCBA, qui n’est rien d’autre que la frontière de
production techniquement efficiente.
X2
80.000
68.000
60.000
52.000
40.000
20.000
16.000 5
D C
B
A
7
0
56.000
20.000
27.000
40.000
X1
60.000
ZMAX.
4 2 3
1
3
Les 7 droites 6correspondent aux 7 contraintes dans lesquelles les inégalités ont été remplacées par les
égalités.
Z0
13
La seconde étape consiste à représenter la fonction-objectif :
400 x1 + 500 x2 = Z
D’où l’on tire :
4 Z
X2 = - x1 +
5 500
Cette équation est l’équation d’une droite dont la pente est égale au
rapport des prix des deux biens. Cette droite est appelée ligne de prix ou
Z Z
d’iso-profit dont les coordonnées (0, ) et ( , 0) dépendent de la
500 400
valeur de Z. Plus la valeur de Z est grande et plus l’ordonnée à l’origine est
élevée4. En accordant à Z différentes valeurs, on peut dresser une carte de
lignes d’iso-profit qui ont la propriété d’être parallèles entre elles. Plus une
courbe d’iso-profit est éloignée de l’origine des axes, plus elle correspond
à un profit élevé. En d’autres termes, plus la droite Z s’éloigne de l’origine
des axes et plus la valeur économique des combinaisons (x 1, x2)
appartenant à cette droite est importante.
Il reste alors à déterminer la solution optimale. S’agissant de maximiser un
résultat économique (notamment le profit), la solution optimale est une
solution située sur la droite Z dont la distance par rapport à l’origine des
axes est la plus grande possible. Cette solution (l’optimum) correspond au
point de tangence de la frontière des solutions possibles à la ligne d’iso-
profit la plus élevée possible.
La solution optimale se situe sur la frontière puisque tout point locatif à
l’intérieur de la région des solutions possibles 0DCBA, est placé sur une
ligne d’iso-profit plus proche de l’origine que la droite Z MAX. Elle résulte de
la confrontation du souhaitable et du possible, soit le point B
correspondant à l’intersection des droites (2) et (4). La droite (2) est
donnée par l’équation : 0.3 x1 + 0.6 x2 = 12 000 et la droite (4) par
l’équation : x2 = 20.000.
Le graphique indique que la solution optimale correspond aux
coordonnées du point B, soit : x1 = 20 000 et x2 = 10 000. Ce qui signifie
4
Pour trouver la droite d’iso-profit, on prend d’abord un point quelconque comme abscisse à l’origine (ou
éventuellement comme ordonnée à l’origine) afin de trouver la valeur de Z correspondante. L’ordonnée à
l’origine (éventuellement l’abscisse à l’origine) est obtenu par substitution :
Z 800.000
Posons = 20.000 (abscisse à l’origine), alors Z = 800.000 et l’ordonnée à l’origine est = 16.000.
400 500
Z
Dans ce cas la ligne d’iso-profit passe par les point (0, 16.000) et (20.000, 0). De même, si nous posons =
500
1.000.000
20.000 (ordonnée à l’origine), alors Z = 1.000.000 et l’abscisse à l’origine est = 25.000. Dans ce cas
400
la ligne d’iso-profit passe par les point (0, 20.000) et (25.000, 0).
14
que pour maximiser le profit, l’Entreprise doit produire : 20 000 hectolitres
de vin Extra et 10 000 hectolitres de vin Super5.
15
A 20000 0 3600 6000 6400 0 16000 SBA Z=8000000
SBA = Solution de base admissible SBNA = solution de base non admissible NSB = Non solution de base
16
De façon générale, si un problème comprend m contraintes et n variables réelles, il
doit admettre au moins n variables hors base et au plus m variables en base.
Pour amorcer l’algorithme, on commence par la base naturelle : celle dont les
variables réelles sont nulles (Xi = 0). Il s’agit d’annuler les n variables de manière à obtenir un
système de cramer à m inconnues.
Afin de simplifier les calculs, il est conseillé de présenter les différentes itérations
sous forme de tableaux. Un tableau correspond à une solution de base et une itération
représente une modification du tableau.
Dans le cas de l’entreprise YOANIS, le tableau de départ correspond à la solution de
base naturelle (Solution 0).
Avant d’amorcer l’algorithme, il s’avère intéressant de connaître la disposition des éléments
dans ce tableau. Ainsi :
(1) La première ligne du tableau correspond à la liste de toutes les variables du
problème.
(2) La deuxième ligne du tableau est celle des coefficients des variables dans la fonction
économique de la forme standard.
(3) La première colonne du tableau est celle des variables en base (à valeur nulle dans la
fonction économique).
(4) La deuxième colonne du tableau correspond aux coefficients des variables en base.
(5) La matrice (5) est celle des coefficients des variables dans les contraintes. Il s’agit de
la matrice mieux identifiée dans les contraintes fonctionnelles de la notation
matricielle de la forme standard.
(6) Termes constants figurant dans le second membre des contraintes fonctionnelles (cf.
notation matricielle de la forme standard).
(7) Calculs correspondant au critère de simplexe et permettant d’obtenir les éléments de
la ligne (8). Les valeurs figurant sur cette ligne résultent du produit du vecteur
colonne (4) transposé et de la matrice des coefficients des varables dans les
contraintes (5). Il s’agit du produit scalaire de deux vecteurs :
- le premier est la transposée du vecteur colonne (4) ;
- le second correspond à un vecteur colonne appartenant à la matrice (5).
(8) C’est le critère du simplexe qui constitue en même temps un test d’optimalité. Les
éléments de cette ligne sont obtenus en effectuant, élément par élément, la
différence entre (2) et (7). Aussi longtemps qu’un élément positif (dans le cas du
problème de maximisation) figure dans cette ligne, l’algorithme se poursuit en
entrant dans la base la variable se rapportant au coefficient le plus élevé de la ligne.
Lorsque les éléments de cette ligne sont tous inférieurs ou égaux à 0, le processus
s’arrête : c’est l’optimum.
(9) Il s’agit de la valeur de la fonction économique Z. Cette valeur est obtenue par le
produit scalaire du vecteur colonne (4) transposé et du vecteur colonne (6).
17
e1 0 0,5 0,2 1 0 0 0 0 13 600 13 600/0,2 = 68 000
e4 0 1 0 0 0 0 1 0 20 000 20 000/0 = ∞
(7)→ 0 0 0 0 0 0 0 (6)↑
Exemple :
Soit 0 le coefficient de e5 dans la première contrainte du tableau initial. Pour
obtenir -0.2 dans le deuxième tableau, on procède comme suit :
L’élément 0 forme avec le pivot les extrémités de la première diagonale d’un
rectangle. Les extrémités de l’autre diagonale sont alors 0.2 et 1.
18
La nouvelle valeur du coefficient de e 5 dans la première contrainte (-0.2) est
obtenu par :
0.2(1)
-0.2 = ancienne valeur (0) – (le 1 du dénominateur étant le pivot)
1
Tableau initial
X2 e5
0.2(A) 0(B)
0.6 0
0.2 0
0 0
1(P) 1(C)
Première itération
X2 e5
0.2 -0.2
0.6 -0.6
0.2 -0.2
0 0
1 1
AC −PB
-0.2 = (P c’est le pivot)
P
Tableau 1.1. Tableau du simplexe du cas Yoanis : Itérations jusqu’à la solution optimale
X1 X2 e1 e2 e3 e4 e5
400 500 0 0 0 0 0
19
e1 0 0,5 0,2 1 0 0 0 0 13 600 13 600/0,2 = 68 000
e4 0 1 0 0 0 0 1 0 20 000 20 000/0 = ∞
0 0 0 0 0 0 0
↑ 1e critère
0 500 0 0 0 0 -500
20
e5 0 0 0 0 -5/3 0 0,5 1 6 000
L’application des règles qui viennent d’être exposé dans le cas de l’entreprise YOANIS
conduit à la solution optimale en trois itérations (cfr. tableau ci-dessus). Le caractère optimal
des résultats se manifeste par la lecture de la ligne (8). Dans la dernière itération, les valeurs
correspondant à cette ligne sont toutes négatives ou nulles. La solution optimale correspond
à Z = 13 000 000.
Les valeurs des variables, à l’optimum, figurent dans la colonne (6). Ainsi, à l’optimum
les contraintes (1), (3) et (5) sont non saturées car e 1 = 1 600 (il en reste encore 1 600
hectolitres de vin de l’Hérault), e3 = 4 400 (il en reste encore 4 400 hectolitres de vin d’Italie)
et e5 = 6 000. Toutes les autres contraintes sont saturées : e2 = 0 (il ne reste aucun hectolitre
de vin de Bordelais dans les cuves) et e 4 = 0. La solution optimale correspond à X 1 = 20 000 et
X2 = 10 000.
1.3.2.3. Analyse économique de la solution
La solution optimale affecte une valeur à chaque variable réelle. Ces valeurs
correspondent à la quantité de bien X1 (vin « Extra ») et X2 (vin « super ») qui
maximisent le profit. Dans l’itération finale, l’on note X 1 = 20 000 et X2 = 10 000.
Ces valeurs maximisent le profit ( Zmax = 13 000 000).
Les valeurs prises par les variables d’écart fournissent autant d’information sur
l’état résiduel des stocks, le degré de pénétration du marché ou encore le taux
d’utilisation des capacités de production.
Lorsqu’une variable d’écart prend une valeur nulle à l’optimum, cela signifie que
la contrainte correspondante est saturée. Seules ces contraintes sont
véritablement astreignantes. Elles limitent les activités de l’entreprise et, de ce
fait, les gains réalisables.
Ainsi, dans l’itération finale, e2 = 0 signifie que le cru du Bordelais est totalement
utilisé à l’activité de l’entreprise. Cette ressource étant épuisée, l’entreprise ne
peut produire plus. Par conséquent, si YOANIS envisageait de renouveler ses
stocks, il doit acheter en priorité du cru de Bordelais.
Lorsqu’une variable d’écart prend une valeur non nulle, cela signifie que la
contrainte correspondante n’est pas saturée à l’optimum. Ainsi, e 1 = 1 600
signifie qu’il reste encore en stock dans les cuves 1 600 hectolitres de cru de
l’Hérault. De même e3 = 4 400 indique qu’il reste en stock 4 400 hectolitres de
cru d’Italie.
e5 = 6 000 indique que la demande de vin « Super » n’est pas complètement
satisfaite : la production (10 000 hectolitres) est plus faible que la capacité
d’absorption du marché (16 000 hectolitre). Ainsi, YOANIS a intérêt d’accroître la
21
production de vin « super » et non pas de vin « Extra » puisque le marché de ce
dernier est déjà saturé (e4 = 0).
L’analyse des coefficients de la fonction économique à l’optimum permet de
préciser la valeur marginale, que représente pour l’entreprise chaque contrainte.
−2500
Le coefficient indique que si YOANIS n’utilisait pas totalement la
3
ressource « cru de Bordelais » et en conservait une quantité marginale (∆e 2), son
résultat économique diminuerait de :
−2500
∆Z = ∆e2
3
Ainsi, le fait pour YOANIS de ne pas posséder un hectolitre supplémentaire de vin
2500
de Bordelais provoque un manque à gagner de . Ce manque à gagner peut
3
être interprété comme un coût marginal d’opportunité. C’est en quelque sorte le
prix maximum à payer aux fournisseurs pour l’acquisition d’un hectolitre
supplémentaire de cru de Bordelais.
De même le coefficient –150 associé à e 4 (4ème contrainte) indique que si les
débouchés en vin « Extra » diminuait d’un hectolitre (∆e4 = 1), le manque à
gagner serait de ∆Z = –150. En termes de coût d’opportunité, cela traduit l’effort
financier maximum que pourrait consentir YOANIS pour fidéliser sa clientèle (en
pratiquant la publicité, par exemple).
1.3.3. Algorithme de dénombrement
D’autres méthodes existent pour arriver à la solution optimale. Parmi ces méthodes
figure l’algorithme de dénombrement qui consiste à dénombrer toutes les solutions de base,
à déterminer celles qui sont réalisables ou admissibles (SBA) et à calculer la valeur de la
fonction économique en chacune de ces bases.
Le nombre total de solution de base est obtenu par la formule ∁nn+ m, avec m le
nombre de contraintes et n le nombre de variables réelles. Ces solutions sont obtenues en
annulant chaque fois n variables de manière à obtenir une solution unique.
Pour le cas YOANIS, cela conduit à explorer ∁27 = 21 solutions de base, dont quelques
unes figurent dans le tableau de la section 1.3.2. Il est donc évident que l’application de
l’algorithme de dénombrement s’avère longue et fastidieuse.
Nous présentons ci-dessous les principes de la méthode en se servant du cas MILCA
ci-dessous.
Exercice
MILCA produit des tables et des chaises. Chaque table nécessite 2 heures pour
l’assemblage (A), une heure pour le polissage (P) et 5 heures pour l’emballage (E). Chaque
chaise exige 1 heure pour l’assemblage (A), 1 heure pour le polissage (P) et 3 heures pour
l’emballage (E). Milca ne dispose que de 140 heures par semaine pour l’assemblage, 104
heures pour le polissage et 360 heures pour l’emballage. Si la marge bénéficiaire est de 7 €
par table et de 4 € par chaise, trouver la quantité optimale de tables et de chaises qui
permet au fabricant MILCA de maximiser son profit hebdomadaire.
Solution
Le problème du fabricant est résumé dans le tableau suivant :
22
Table chaise Total heures
x1 x2
Assemblage 2 1 140
Polissage 1 1 104
Emballage 5 3 360
Profit unitaire 7 4
Le nombre total des solutions de bases à explorer est donné par : ∁25 = 10. Ces
solutions de bases sont présentées dans le tableau ci-dessous.
3 A 0 104 36 0 48 A 416
4 0 120 20 -16 0 NA
5 B 70 0 0 34 10 A 490
7 72 0 -4 32 0 NA
23
8 36 68 0 0 -24 NA
9 C 60 20 0 24 0 A 500
10 D 24 80 12 0 0 A 488
Parmi ces solutions, seules quatre (0, A, B et C) sont admissibles. Toutes les autres
solutions sont non admissibles, car ne respectant pas les contraintes de non négativité.
De même que l’approche graphique, en dehors des valeurs optimales restituées par
cette méthode, aucune autre information indispensable à la prise de décision n’est fournie.
C’est ainsi que l’algorithme du simplexe s’impose comme meilleure méthode de résolution
des problèmes de programmation linéaire.
L’application de l’algorithme du simplexe conduit au résultat contenu dans les
tableaux ci-après.
Tableau 1.2. Tableau du simplexe : Cas MILCA
X1 X2 e1 e2 e3
7 4 0 0 0
e1 0 2 1 1 0 0 140 140/2 = 70 ←
e3 0 5 3 0 0 1 360 360/5 = 72
0 0 0 0 0
↑ 1e critère
X1 X2 e1 e2 e3
7 4 0 0 0
24
7 7/2 7/2 0 0
X1 X2 e1 e2 e3
7 4 0 0 0
X1 7 1 0 3 0 -1 60
Solution
e2 0 0 0 2 1 -1 24
Optimale
X2 4 0 1 -5 0 2 20
7 4 1 0 1
0 0 -1 0 -1 Z = 500 (C)
25
La Blonde La Brune
X1 X2
Malt 17.5 kg 10 kg
et X1 ≥0, X2 ≥ 0 et X3 ≥ 0
1.6. Solutions
Ex. 2.
a) Il s’agit de :
Max Z = 65 X1 + 115 X2
Sous contrainte :
2.5 X1 + 7.5 X2 ≤ 240
0.125 X1 + 0.125 X2 ≤ 5
17.5 X1 + 10 X2 + e3 ≤ 595
X1 ≥0 et X1 ≥0
26
On peut diviser les deux membres d’une inégalité par un entier positif sans changer le
sens de l’inégalité. De ce fait, le programme linéaire ci-dessus est identique à :
Max Z = 65 X1 + 115 X2
Sous contrainte :
X1 + 3 X2 + e1 ≤ 96 (division par 2.5)
X1 + X2 + e2 ≤ 40 (division par 0.125)
7 X1 + 4 X2 + e3 ≤ 238 (division par 2.5)
Xi ≥0, ei ≥0
b) La forme standard est :
Max Z = 65 X1 + 115 X2 + 0 e1+ 0 e2+ 0 e3
X1 + 3 X2 + e1 = 96
X1 + X2 + e2 = 40
7 X1 + 4 X2 + e3 = 238
xi ≥0, ei ≥0
c) La résolution par l’algorithme du simplexe donne :
X1 X2 e1 e2 e3
65 115 0 0 0
e1 0 1 3 1 0 0 96 96/3 = 32 ←
e2 0 1 1 0 1 0 40 40/1 = 40
e3 0 7 4 0 0 1 238 360/5 = 72
0 0 0 0 0
65 115 0 0 0 Z=0
↑
X1 X2 e1 e2 e3
65 115 0 0 0
0 0 115/3 0 0
27
Z 7 4 -115/3 0 0 3 680
X1 X2 e1 e2 e3
65 115 0 0 0
X1 65 1 0 -1/2 3/2 0 12
e3 0 0 0 3/2 -17/2 1 42
65 115 53/2 40 0
Le test d’optimalité montre que l’optimum est atteint. La production optimale est
donc :
X1 = 28 tonneaux et X2 = 12 tonneaux
A l’optimum, les contraintes (1) et (2) sont saturées tandis qu’il reste encore un stock
résiduel de 42 kg de malt (e3 = 42).
Ex. 3
a) La forme standard du programme est :
Max Z = 10 X1 + 15 X2 + 5 X3 + 0 e1+ 0 e2+ 0 e3
S/C 2 X1 + X2 + 0 X3 + e1+ 0 e2+ 0 e3 =6
3 X1 + 3 X2 + X3 + 0 e1+ e2+ 0 e3 =9
X1 + 2 X2 + 2 X3 + 0 e1+ 0 e2 + e3 =4
et X1 ≥0, X2 ≥ 0 et X3 ≥ 0
Algorithme du simplexe
Première itération
X1 X2 X3 e1 e2 e3
10 15 5 0 0 0
28
e1 0 2 1 0 1 0 0 6 6/1 = 6
e2 0 3 3 1 0 1 0 9 9/3 = 3
e3 0 1 2 2 0 0 1 4 4/2 = 2 ←
0 0 0 0 0 0
Z 10 15 5 0 0 0 0
Deuxième itération
X1 X2 X3 e1 e2 e3
10 15 5 0 0 0
e2 0 3/2 0 -2 0 1 -3/2 3 2 ←
X2 15 1/2 1 1 0 0 1/2 2 4
15/2 15 15 0 0 15/2
Troisième itération
X1 X2 X3 e1 e2 e3
10 15 5 0 0 0
e1 0 0 0 1 1 -1 1 1
X1 10 1 0 -4/3 0 2/3 -1 2
X2 15 0 1 5/3 0 -1/3 1 1
10 15 35/3 0 5/3 5
29
Z 0 0 -20/3 0 -5/3 -5 35
30
Chapitre 2. THEORIE DE GRAPHE
Figure 2.1.
b
d
e
a
31
Г(a) = {b, c, d} ; Г(b) = {d} ; Г(c) = {d, e} ; Г(d) = {e} et Г(e) = ∅ .
Le graphe G de la figure 2.1 ci-dessus est donc défini lorsqu’on connait (i) l’ensemble
X de sommets et (ii) l’application Г, d’où l’écriture : G = (X, Г).
2.1.1.1. Définitions
Soit X = {a b, …, n} un ensemble de points et Г une application multivoque qui fait
correspondre à tout élément x i ∈ X un sous-ensemble Г(xi) de points de X, qui peut
éventuellement comporter x i lui-même.
On appelle « Graphe G », un sous-ensemble de points éventuellement reliés par une
ou plusieurs lignes. Il s’agit du couple formé par l’ensemble X et l’application multivoque Г
de X dans lui-même.
On peut représenter l’application multivoque Г(x i) = xj par des flèches dont le point
extrémité initial est xi et le point extrémité terminal est xj. Par exemple, la flèche ⃗
ab a pour
extrémité initiale a et extrémité terminale b. Cette flèche peut être notée (a, b), pour ainsi
dire l’arc partant de a vers b. Dans ces conditions, le graphe G = (X, Г) devient G = (X, U), U
étant l’ensemble des arcs de G.
Pour le graphe 2.1 ci-dessus :
U = {(a, b), (a, c), (a, d), (b, d), (c, d), (c, e), (d, e)}.
En termes mathématiques, U apparaît comme un ensemble de relations binaires
orientées entre les éléments de X, ou encore une partie du produit cartésien X x X : U C X x X.
Dans certaines applications, on n’a pas besoin de noter (ou de conserver) les
orientations des arcs d’un graphe ; en particulier, à tout graphe orienté correspond un
graphe non orienté. Les arcs d’un graphe non orienté se nomment « des arêtes ».
De manière générale, un graphe G = (X, U) est caractérisé par les données suivantes :
- un ensemble X = {x1, x2, …, xn} de points appelés sommets ou nœuds
- un ensemble U = {u1, u2, …, um} de couples ordonnées (xi, xj) avec (xi, xj)∈ X x X.
C’est un ensemble de lignes reliant chacune deux sommets distincts (ou non),
les éléments de cet ensemble étant appelés « arcs » ou « branches »
32
Dans le graphe G = (X, Г), si l’on remonte les flèches, on obtient les images
−1
réciproques, notées Г (x i). Pour l’exemple 2.1 ci-dessus, on a :
−1 −1 −1 −1 −1
Г (a) = ∅ ; Г (b) = {a} ; Г (c) = {a} ; Г (d) = {a, b, c} et Г (e) = {c, d}
Ainsi, ∀ x i ∈ X, on définit le sous-ensemble de « précédents » ou « antécédents
directs » de x i par l’ensemble des sommets X qui ont x i comme extrémité terminal dans
l’ensemble U.
+¿ ¿ −¿¿
Remarquons que Г (resp. Г −1
❑ ) peuvent être aussi notés : Г ❑ (resp. Г ❑
On définit alors l’arc incident à x i vers l’extérieur comme l’arc d’extrémité initiale x i
et l’arc incident à x i vers l’intérieur comme l’arc d’extrémité terminale x i. Dans la figure 2.1,
les arcs incidents à d vers l’intérieur sont (b, d), (a, d) et (c, d). L’arc (d, e) est incident à d vers
l’extérieur. De même, (c, d) et (c, e) sont des arcs incidents à c vers l’extérieur.
Le degré intérieur (ou extérieur) d’un sommet est le nombre d’arcs incidents
intérieurement ou extérieurement à ce sommet. Ainsi, le degré intérieur du sommet d est 3
et le degré extérieur du sommet c est 2.
2.1.2. Réseau, chemin, chaîne et circuit
On appelle chaîne une suite (ui) des arcs telle que chaque arc ait une extrémité
(initiale ou terminale) commune avec l’arc précédent et sont autre extrémité commune avec
l’arc suivant. Une des extrémités de ces arcs est qualifié de point initial et l’autre de point
terminal. Attention, il n’est pas exigé que l’extrémité terminale de u i coincide avec
l’extrémité terminale de ui+1, ils sont seulement adjacents.
Un chemin est une suite (ou succession ordonnée) d’arcs u 1, u2, …, um dont
l’extrémité terminal de chaque arc, sauf pour le dernier, est l’extrémité initial de l’arc
suivant. Lorsque la condition précédente n’est pas remplie, la succession d’arcs constitue
une chaîne. Ainsi, un chemin n’est rien d’autre qu’une chaîne orientée (avec la direction de
circulation).
Une chaîne est simple si elle ne comporte pas plusieurs fois un même arc, elle est
élémentaire si elle ne « rencontre » pas deux fois le même sommet. Une chaîne qui se ferme
sur elle-même est un cycle.
Exemple 2.2
Considérons les arcs : u1 = (5, 3), u2 = (5, 8), u3 = (8, 2), u4 = (2, 7) et u5 = (3, 8) du
graphe ci-dessous.
Figure 2.2.
5
8
7
33
La suite d’arcs (u1, u2, u3, u4) est une chaîne d’origine le sommet 3 et d’extrémité (terminale)
le sommet 7. La suite d’arc (u1, u2, u5) est un cycle.
Un circuit est un chemin tel que l’extrémité initiale du premier arc coïncide avec
l’extrémité terminal du dernier. Ce donc un chemin qui revient à son point de départ ou un
chemin fini qui se ferme sur lui-même.
Exemple
Soit le graphe 2.3 suivant :
b d f i j k
c e g h
La succession (a, b, d, f, i, j, k) est un chemin formé par les arcs (a, b) ; (b, d) ; (d, f) ; (f, i) ; (i, j)
et (j, k). La succession (e, d, f, i, h, g, e) est un circuit. La succession d’arcs (a, c) ; (c, e) et (e,
d) est une chaîne. La succession (a, b, d, e, c, a) est un cycle.
Un graphe connexe est un graphe où il existe au moins une chaîne qui lie chaque
pair de nœud.
Un chemin est dit simple lorsque les arcs qu’il emprunte sont tous distincts. C’est un
chemin qui n’utilise pas deux fois le même arc.
Un chemin ne passant pas plus d’une fois par chacun des sommets est dit chemin
élémentaire. C’est un chemin qui n’utilise pas deux fois le même sommet.
Exemple
Soit le graphe 2.4 suivant :
b c
h
a
d
La succession (a, d, c, b, d, h) est un chemin simple, car d est un sommet et non un
arc. Ce chemin n’est pas élémentaire parce qu’il passe deux fois par le sommet d. La
succession (a, b, d, c, h) est un chemin élémentaire.
Un chemin est dit hamiltonien s’il passe une fois et une seule par chaque arc du
graphe et contient tous les sommets.
34
On dit qu’un graphe est valué si, à tout arc qui le constitue, correspond une valeur
numérique qu’on écrit seulement, sur la figure, à proximité de cet arc. Ces valeurs peuvent
être des quantités transportées, des débits, des coûts, des durées, etc.
Un réseau est un graphe comportant un flux sur les branches. Ainsi, le réseau est
caractérisé par les éléments suivants : (i) les sommets (ou nœuds), les arcs (ou branches) et
les flux (nombres entiers affectés à chaque arc, comme c’est le cas de nombre de véhicules,
d’avions, .. ou des quantités d’un liquide, …). Le tableau ci-dessous présente les exemples
d’un réseau.
Au sens des arcs, la longueur d’un chemin de n sommets est égale à n-1 ; c'est-à-dire
le nombre des arcs qu’il faut parcourir pour aller de x1 à xn.
2.2. Représentation d’un graphe
On peut représenter un graphe de diverses façons, notamment par :
- une représentation sagittale (par flèche) ;
- une énumération de tous les sommets et arcs qui le composent ;
- des dictionnaires ou tableaux à simple entrée ;
- de matrices appropriées (matrice booléenne ou matrice aux arcs) ;
- une grille.
2.2.1 Représentation sagittale d’un graphe
Cette représentation se caractérise par un schéma pourvu de sommets reliés entre
eux par des lignes orientées.
Figure 2.5. Représentation sagittale d’un graphe
35
(a) Représentation par flèche (b) représentation par points et flèches
a a b c
b b
c c
d
d d a
Exemple :
Soit le graphe 2.6 suivant :
d c
e b
36
Dictionnaire des suivants Dictionnaire des précédents
X S(X) X P(X)
a b a -
b e,f b a,c,f
c b c d
d c d e
e d e b,f
f b,e f b
a 0 1 0 0 0 0
b 0 0 0 0 1 1
Sommets origines
d 0 0 1 0 0 0
e 0 0 0 1 0 0
f 0 1 0 0 1 0
N.B. : Les zéros qui apparaissent sur une ligne entière indiquent que le sommet n’a pas de
suivants. Les zéros qui apparaissent dans une colonne entière indiquent que le
sommet n’a pas de précédents : C’est le cas du sommet a.
37
a b c d E f
a - (a, b) - - - -
b - - - - (b, e) (b, f)
c - (c, b) - - - -
d - - (d, c) - - -
e - - - (e, d) - -
f - (f, b) - - (f, e) -
Arrivés
f
e
c
b
a b c d e f
Départs
2.3. Détermination des niveaux (ou rang) des sommets d’un graphe sans circuit
Dans un graphe sans circuit, il est possible de numéroter les sommets de telle sorte
que le numéro affecté à chaque sommet soit inférieur à celui des suivants et supérieur à
celui des précédents.
Le numéro attribué à chaque sommet est le niveau de génération ou rang du
sommet en question.
Ainsi, le niveau d’un sommet xi est la longueur du plus long chemin ayant pour
extrémité xi. Les sommets de rang (ou niveau) 0 sont ceux qui n’ont aucun précédent. Ceux
de rang 1 sont ceux dont les précédents appartiennent au rang 0. Les sommets de rang 2 ont
de précédent de rang 0 ou 1, et ainsi de suite.
2.3.1 Procédure de détermination des niveaux de générations
Trois méthodes sont couramment utilisées pour déterminer les niveaux de
génération des sommets :
- la méthode du dictionnaire des précédents,
38
- la méthode de la matrice booléenne, et
- la méthode de Demoucron.
a) La méthode du dictionnaire des précédents
Elle consiste à dresser dans un tableau à deux colonnes le dictionnaire des
précédents et d’appliquer la procédure suivante :
Appartiennent au rang 0 (R(0)) les sommets qui n’ont pas de précédents. Une fois
identifiée, on les supprime dans la deuxième colonne (colonne des précédents) ;
Appartiennent à R(1), les sommets dont tous les précédents ont été supprimés. Une
fois identifiée, on les supprime dans la deuxième colonne ;
Appartiennent à R(2), les sommets dont tous les précédents viennent d’être
supprimés à la deuxième étape, ….
On poursuit le processus jusqu’à R(k).
Exemple : Considérons le graphe 2.7 ci-après et son dictionnaire des précédents :
b
g
a f
e
c d
X P(X)
a -
b A
c a,b,e
d c,e
e A
f b,c,d
g b,c
R(0) = { a }
On a donc successivement :
39
X P(X) X P(X) X P(X) X P(X)
a - a a - a -
b a b a b a b a
e a e a e a e a
a b c d e f g a b c d e a b c e
a 0 1 1 0 1 0 0 a 0 1 1 0 1 a 0 1 1 1
b 0 0 1 0 0 1 1 b 0 0 1 0 0 b 0 0 1 0
c 0 0 0 1 0 1 1 c 0 0 0 1 0 c 0 0 0 0
d 0 0 0 0 0 1 0 d 0 0 0 0 0 e 0 0 1 0
e 0 0 1 1 0 0 0 e 0 0 1 1 0 R(k-2) = { c }
40
f 0 0 0 0 0 0 0 R(k-1) = { d }
g 0 0 0 0 0 0 0
R(k) = { f , g }
a b c d e f g
L0 0 1 3 2 1 3 2 R0 = { a }
L1 - 0 2 2 0 3 2 R1 = { b , e }⇒ L1 = L0 – Ligne de a
L2 - - 0 1 - 2 1 R2 = { c } ⇒ L2 = L1 – (Ligne b + Ligne
e)
L3 - - - 0 - 1 0 R3 = { d , g }⇒ L3 = L2 – Ligne de c
L4 - - - - - 0 - R4 = { f }
41
Les sous-ensembles R(j) (j = 0, 1, 2, …, k) forment une partition de X et sont totalement et
strictement ordonnés par la relation R(j) < R(i) tel que j < i.
La fonction φ(xi) décompose l’ensemble X des sommets du graphe sans circuit en sous-
ensemble disjoints et ordonnés de telle sorte que si un sommet x i appartient à l’un de ces sous-
ensembles portant le numéro r, tout arc intérieurement à ce sommet, a son extrémité initiale dans
un sous-ensemble portant un numéro inférieur à r.
Les sous-ensembles R(0), R(1), R(2), …, R(k) sont appelés niveaux de sommets du graphe. La
fonction ordinale est une fonction qui fait correspondre à chaque sommet son niveau de génération.
On peut ressortir, dans notre exemple, deux fonctions ordinales du graphe, selon les
résultats obtenus par les différentes méthodes de détermination des niveaux des sommets.
Fonction ordinale du graphe (Méthode 1 et 3) Fonction ordinale du graphe (Méthode 2)
X φ (xi) X φ (xi)
a 0 a 0
b 1 b 1
c 2 c 2
d 3 d 3
e 1 e 1
f 4 f 4
g 3 g 4
g f a
a c
c g
R0 R1 R3 R4
R1 R2 R3 R4 R0 e R2 d1
1 e d1
1 1
1 1 1 1 1
42
Ces deux graphes étant plus lisibles que le graphe d’origine, l’ordonnancement par niveau
présente de ce fait un intérêt particulier lors de la détermination des chemins optimaux,
particulièrement dans l’application de l’algorithme de marquage des sommets.
2.4. Application des graphes à la recherche opérationnelle
La théorie des graphes s’applique à beaucoup de problèmes de nature séquentielle
dans lesquelles le recours aux algorithmes appropriés conduit à la solution optimale.
Rappelons qu’un graphe séquentiel est un graphe sans circuit possédant une fonction
ordinale φ(xi) tel que les arcs incidents extérieurement du niveau R (j) constituent les arcs
incidents intérieurement du niveau R(j+1) ; le niveau R(0) étant celui pour lequel Г -1(x0 ∈ R(0)) = ∅
.
2.4.1. Recherche des chemins optimaux dans un graphe
Un graphe séquentiel étant un graphe sans circuit, l’application de la l’algorithme de
marquage des sommets à un tel graphe s’avère à la fois simple et aisée.
Soit G = (X,U) un graphe orienté donné que nous supposons sans circuit. Les arcs du
graphe sont, en plus, valués. Un chemin μ permettant d’aller d’un sommet xi du graphe à un
autre sommet xh est optimal si la somme des valeurs l(xi,xj) valuant chaque arc (xi, xj) = μh est
soit minimale, soit maximale. Dans le premier cas, l’optimum est un minimum, et dans le
second, un maximum. La valeur extrémale est donnée par :
l ( μ )= ∑ l(μh )
μ h∈ μ
Plusieurs méthodes sont utilisées pour déterminer les chemins de valeurs optimales
(somme des minimums ou des maximums des arcs) dont les plus populaires sont
l’algorithme de Ford et l’algorithme de Bellman et Kalaba.
2.4.1.1. Algorithme de Ford
Soit G = (X, U) un graphe sans circuit et admettant la fonction ordinale ϕ(x i) avec R0,
R1, R2 …. Rk, les différents niveaux de génération des sommets du graphe, tel que R 0 et Rk sont
des singletons.
Pour un graphe comportant de nombreux sommets, une procédure aussi peu assurée
risquerait de conduire à de longs calculs et sans doute à des oublis. Le mathématicien Ford a
mis en place une méthode simple permettant de déterminer les chemins de valeurs
optimales.
L’algorithme de Ford est une méthode itérative de marquage des sommets allant du
niveau R0 jusqu’au niveau Rk de la manière suivante :
- Numéroter les sommets du graphe valué dans un ordre quelconque, en observant
toutefois que le sommet de départ doit être marquer x 0 et celui d’arrivée xn-1, si n
est le nombre de sommets du graphe ;
- Marquer le sommet du départ x0 d’un indice t0 = 0 ;
- Pour tout sommet xj, trouver la fonction Γ-1(xj) de tous les précédents (ou
ascendants directs) du sommet xj et marquer progressivement les sommets x j
comme suit :
tj = max [ti + V(xi, xj)] avec i < j pour un problème de valeur maximale, les x i
associés à V(xi, xj) étant les précédents du sommet xj.
43
Pour la recherche du chemin de valeur minimale, l’on a :
tj = min [ti + V(xi, xj)] avec i < j.
- La valeur associée au sommet terminal xn-1, soit tn-1, correspond à l’optimum.
Pour retracer le chemin de valeur optimale, on remonte du sommet terminal vers le
sommet initial en sélectionnant les différents sommets ayant conduit à l’optimum.
t1 = 12 t4 = 37
24
x1 x4
12 13 5 21
3
t0 = 0 x2 t5 = 32 t7 = 62
t2 = 25 7 2
x0 x7
x5
10 1 4
14 16 26
x3 x6
t3 = 14 t6 = 36
t0 = 0
t1 = t0 + V x0, x1) = 0 + 12 = 12
t3 = t0 + V (x0, x3) = 0 + 14 = 14
44
t2 = max { t 1 +V ( x1 , x2 )
t 3 +V ( x3 , x 2)
= max
12+13
14+10 {
= 25
t5 = t2 + V (x2, x5) = 25 + 7 = 32 ;
{ {
t 1 +V ( x 1 , x 4) 12+ 24
t4 = max t 2 +V ( x 2 , x 4) = max 25+3 = 37
t 5 +V ( x 5 , x 4 ) 32+5
{ {
t 2 +V ( x 2 , x6 ) 25+1
t6 = max t 3 +V ( x 3 , x6 ) = max 14+16 = 36
t 5 +V ( x 5 , x6 ) 32+ 4
{ {
t 4 +V (x 4 , x7 ) 37+21
t7 = max t 5 +V (x 5 , x 7 ) = max 32+2 = 62
t 6 +V (x 6 , x 7 ) 36+26
t1 = 12 t4 = 27
24
x1 x4
12 13 5 21
3
t0 = 0 x2 t5 = 31 t7 = 33
t2 = 24 7 2
x0 x7
x5
10 1 4
14 16 26
x3 x6
t3 = 14 t6 = 25
t0 = 0
t1 = t0 + V x0, x1) = 0 + 12 = 12
t3 = t0 + V (x0, x3) = 0 + 14 = 14
t2 = min {t 1 +V ( x1 , x2 )
t 3 +V ( x3 , x 2)
= min
12+13
14+10
= 24 {
t5 = t2 + V (x2, x5) = 24 + 7 = 31 ;
{ {
t 1 +V ( x 1 , x 4) 12+ 24
t4 = min t 2 +V ( x 2 , x 4) = min 24+3 = 27
t 5 +V ( x 5 , x 4 ) 31+5
45
{ {
t 2 +V ( x 2 , x6 ) 24+1
t6 = min t 3 +V ( x 3 , x6 ) = min 14+16 = 25
t 5 +V ( x 5 , x6 ) 31+ 4
{ {
t 4 +V (x 4 , x7 ) 27+21
t7 = min 5
t +V (x 5 , x )
7 = min 31+2 = 33
t 6 +V (x 6 , x 7 ) 25+26
{
12+ 24
24+3 = 27
31+5
46
{ {
f (x2 )+V ( x 2 , x 6 ) 24+1
Γ (x6) = {x2, x3, x5} ⇒ f(x4) = f ( x3 )+V ( x 3 , x 6 ) = min 14+16 = 25
-1
f ( x5 )+V ( x 5 , x 6 ) 31+ 4
R5 = {x7} avec Γ-1(x7) = {x4, x5, x6}.
{
27+21
f(x7) = min {
f ( x¿¿ 4)+V ( x 4 , x 7)¿ f ( x5 )+V (x 5 , x 7 )
f (x 6 )+V (x 6 , x 7 )
= min 31+2 = 33
25+26
On observe que les deux méthodes conduisent au même résultat.
47
l’une de quatre points de passage : E, F, G et H. En redescendant la vallée, la voie doit
traverser une rivière par un pont que l’on peut envisager dans deux villages I ou J. De ces
deux villages, l’autoroute peut rejoindre sans obstacle la ville de Kisangani.
AB 8 CE 5 EI 5 HI 9
AC 10 CF 4 EJ 7 HJ 8
AD 6 CG 6 FI 3 IK 7
BE 4 DF 6 FJ 6 JK 6
BF 6 DG 5 GI 6
BG 5 DH 6 GJ 7
Figure 4.1.
E4
4 5
5 7
B 6 I
8 5 3 7
4 F
A 10 6
C K
6
6
6
6 6 G 7
5
J
D 9
6
8
H
48
Ainsi, le système peut se trouver à l’instant A à l’instant initial (niveau R 0). Il peut être dans
l’état B, C ou D dans la « période » 1 (Plaine). Il peut être dans l’état E, F, G ou H à la
« période » 2 (Montagne). Il peut se trouver dans l’état I ou J à la « période 3 (vallée). Enfin,
il peut être dans l’état 4 à la fin de l’étude (niveau R4).
La recherche d’une décision optimale correspond à la recherche d’une suite U T(U0, U1,
U2, U3, U4) qui rend minimal le coût total de réalisation de l’autoroute. Ainsi, les différentes
décisions sont prises de manière séquentielle comme suit :
Etape 1. Comment rejoindre B, C, D
Dans la première étape, rien ne permet de se prononcer sur le choix des cités B, C, D.
a ce stade, toute politique est considérée comme étant optimale.
Pour Politiques Coût Politiques
rejoindre possibles optimales
B AB 8 AB
C AC 10 AC
D AD 6 AD
ABF 14
F ACF 14
ADF 13 ADF
ABG 13
G ACG 16
ADG 11 ADG
H ACG 12 ADH
A ce stade, l’on se rend compte qu’il est encore prématuré de trancher si l’autoroute
doit passer par E, F, G ou H pour atteindre I ou J. Mais, pour atteindre ces quatre points de
passage, les différentes politiques optimales sont dégagées. Les autres politiques sont plus
coûteuses et ne sauraient, d’après le théorème d’optimalité, refléter une politique optimale
globale. On peut donc constater qu’une politique optimale consiste obligatoirement à
passer par B ou D.
49
Etape 3. Il faut se rendre en I ou J en venant de E, F, G ou H
A ce stade, il convient de ne garder que les politiques optimales. Il y en a deux
seulement, à savoir ADFI et ADGJ.
ABEI 17
ADFI 16 ADFI
I ADGI 17
ADHI 21
ABEJ 19
J ADFJ 19
ADGJ 18 ADGJ
ADHJ 20
K ADFIK 23 ADFIK
ADGJK 24
La décision optimale est donnée par ADFIK dont le coût de réalisation des travaux
s’avère le plus faible, soit 23 000 000 USD. Elle est constituée de la suite : UT(U0 = A, U1 = D,
U2 = F, U3 = I, U4 = K).
Notons qu’on peut arriver à ces résultats en faisant recours à l’algorithme de
marquage des sommets.
50
51
Chapitre 3. MODELE D’ORDONNANCEMENT
52
Si nous considérons un projet qui consiste en « l’Etude du marché » d’un projet P que
nous voulons lancer sur le marché, les activités (opérations) suivantes seront envisagées :
- Définition des objectifs de l’étude (A) ;
- Elaboration d’un plan de travail (B) ;
- Réalisation d’une enquête qualitative (C) ;
- Rédaction d’un questionnaire quantitatif (F) ;
- Recrutement des enquêteurs (D) ;
- Formation des enquêteurs (E) ;
- Détermination de l’échantillon (G) ;
- Impression du questionnaire (H) ;
- Administration du questionnaire (I) ;
- Dépouillement et traitement des résultats (J) ;
- Analyse des résultats (K).
Si dans une première approche globale du problème, il est suffisant de fixer la durée
de l’étude du marché à deux mois (approximativement), la gestion du projet à court terme
demandera un niveau d’analyse beaucoup plus précis pour ressortir la durée réelle. D’où
l’évaluation des durées constitue la deuxième étape de l’analyse du projet.
b) Evaluation des durées
Normalement une tâche consomme du temps et des ressources. C’est donc une
activité (ou opération) qui a une certaine durée.
L’évaluation du temps d’une opération n’est pas toujours aisé : la durée d’une
opération peut dépendre d’événements extérieurs à l’organisation, tels que les conditions
météorologiques ou les délais de livraisons.
L’appréciation des temps peut s’effectuer à travers la définition de trois durées :
- Une durée normale de l’opération (m) qui paraît la plus probable,
- Une durée optimiste (a) telle qu’il n’y ait que très peu de chances (en principe
5 %) d’obtenir une durée plus courte ;
- Une durée pessimiste (b) telle qu’un temps de réalisation plus long n’ait
qu’une faible probabilité d’apparaître.
On a alors : a < m < b.
Un des objectifs des modèles d’ordonnancement est donc la détermination de la
durée prévisible (ou prévisionnelle) du projet afin d’en contrôler l’avancement.
c) repérage des contraintes
Les contraintes auxquelles sont soumises les diverses tâches qui concourent à la
réalisation de l’objectif sont de diverses natures. On distingue les contraintes du type
potentiel, les contraintes du type disjonctif et les contraintes du type cumulatif.
Les contraintes de temps, appelées contraintes de type potentiel, concernent les
dates possibles de différentes opérations. Il peut s’agir des contraintes de localisation
temporelle ou des contraintes de succession :
- Les contraintes de localisation temporelle sont celles qui limitent les dates
auxquelles peuvent prendre place le démarrage ou la fin d’une opération.
Elles imposent qu’une tâche j doit absolument commencer à la date ti ou, au
contraire, doit être achevées à telle date.
53
- Les contraintes d’antériorité (ou de succession) imposent à certaines
opérations de ne pouvoir débuter que si certaines autres opérations ont déjà
été réalisées (la tâche j ne peut pas commencer avant que la tâche i ne soit
terminée ou, simplement, parvenue à un degré d’achèvement). Par exemple,
l’administration de questionnaire (E) ne peut débuter qu’après la formation
des enquêteurs (I).
Les contraintes du type disjonctives imposent que deux tâches ne peuvent pas être
réalisé en même temps, parce qu’elles utilisent, par exemple, une ressource
commune qui n’est disponible qu’en un seul exemplaire.
Les contraintes de type cumulatif, ou contraintes de ressources, concernent
l’évolution dans le temps des moyens pour réaliser le projet, et imposent que la
somme des moyens utilisés à une période donnée ne doit pas dépasser la quantité
totale des moyens humains, techniques ou financiers disponible au sein de
l’organisation.
54
- L’activité « Réalisation d’une enquête qualitative » (C) ne peut debuter qu’une
fois le plan de recherche défini ; c’est le cas également de l’activité « Recrutement
des enquêteurs » (D), dont le nombre dépend du plan de recherche choisi ;
- La rédaction d’un questionnaire quantitatif (F) se situe nécessairement après (C) ;
- L’impression du questionnaire (H), comme la formation des enquêteurs (E) se
placent obligatoirement après (F) ;
- La formation des enquêteurs (E) nécessite que l’on ait, préalablement, recruté les
enquêteurs ;
- La détermination de l’échantillon (G) se situera après (F);
- Le passage de l’enquête (I) ne peut être effectué qu’après l’impression du
questionnaire (H), la formation des enquêteurs (E) et la détermination de
l’échantillon (G) ;
- L’analyse des résultats (K) est forcément placée après le traitement des résultats
(J), et (J) nécessairement après (I).
Avant de représenter le graphe PERT, il est conseillé, d’abord, de déterminer les
niveaux de génération des sommets et de ressortir la matrice d’antériorité immédiate.
a) Détermination des niveaux de génération des sommets
La matrice booléenne associée à ce projet est :
A B C D E F E F E F G H I J K
A 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
B 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0
C 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
D 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
E 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
F 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0
G 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
H 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
I 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
J 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
K 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
55
X P(X)
A -
B A
C B
D B
E F, D
F C
G F
H F
I H, E, G
J I
K J
A B C D E F G H I J K
L0 0 1 1 1 2 1 1 1 3 1 1 R0 = { A }
0 1 0 0 0 0 0 0 0 0 0 Somme de la ligne A
L1 - 0 1 1 2 1 1 1 3 1 1 R1 = { B }⇒ L1 = L0 – Ligne de A
0 0 1 1 0 0 0 0 0 0 0 Somme de la ligne B
L2 - - 0 0 2 1 1 1 3 1 1 R2 = { C , D } ⇒ L2 = L1 – Ligne B
0 0 0 0 1 1 0 0 0 0 0 Somme de la ligne C et D
L3 - - - - 1 0 1 1 3 1 1 R3 = { F }⇒ L3 = L2 – (Ligne C + Ligne
D)
0 0 0 0 1 0 1 1 0 0 0 Somme de la ligne F
56
L4 - - - - 0 - 0 0 3 1 1 R4 = { E , G , H }⇒ L4 = L3 – Ligne F
0 0 0 0 0 0 0 0 3 0 0 Somme E + G + H
L5 - - - - - - - - 0 1 1 R5 = { I }⇒ L5 = L4 – (Ligne E + G + H)
0 0 0 0 0 0 0 0 0 1 0 Somme de la ligne I
L6 - - - - 1 0 1 1 3 1 1 R6 = { J }⇒ L6 = L5 – Ligne I
0 0 0 0 0 0 0 0 0 0 1 Somme de la ligne J
L7 - - - - - - - - - - 0 R7 = { K }
A B C D E F G H I J K
57
- Quand une ligne i de la matrice est vide, la tâche correspondante n’est
antérieure à aucune autre : elle se trouve donc à la fin du projet, comme c’est
le cas de l’activité (ou tâche) K ;
- De même, lorsqu’une colonne j est vide, l’activité correspondante n’a pas de
précédent : c’est le cas de l’activité A qui se situe au début du projet ;
- Si une colonne j comprend plusieurs croix, comme c’est le cas de la colonne E
et I, cela signifie que les activités représentatives (en ligne) sont antérieures à
l’activité correspondante.
H
D
E G I
F
E
La figure 3.1 représente le graphe du projet étudié. Les arcs en traits pleins
reproduisent les activités réelles et les arcs en pointillés, les activités fictives (appelées aussi
muettes ou artificielles) qu’il a fallu introduire afin de mieux traduire les liens logiques entre
les tâches.
Figure 3.1a). Représentation d’un graphe PERT
H
F 5 7
Début
A B C 4 Fin
2 G
1 3 I J 10
K
D 8 9 11
E
Début 6 E Fin
A B D
I J K
2 3 8 9 10
1 11
C
4 G
F
5 7
H
58
De ce graphe, il en ressort ce qui suit :
L’activité muette reliant les événements 5 et 6 est nécessaire. Si elle
n’était pas introduite, on aboutirait à une représentation incorrecte où
l’activité E serait présentée comme dépendant seulement de D, alors
qu’elle dépend aussi de F.
L’activité fictive reliant les événements 7 et 8 doit être introduite pour
distinguer les opérations G et H, qui autrement seraient confondues
puisque reliant les mêmes événements.
Notons que les activités fictives sont des tâches qui ne représentent aucune
opération, ne nécessite aucun moyen et ont une durée nulle. Elles ont pour rôle essentielle
de traduire les liaisons logiques entre les tâches.
Il est probable que le premier calcul en vue du tracé d’un réseau PERT comporte un
grand nombre d’activités fictives. Après plusieurs jalonnements aval et plusieurs
jalonnements amont à travers le réseau, il y a moyen de supprimer les activités fictives
redondantes, c’est-à-dire celles qui ne servent qu’à préserver la logique de l’ensemble.
Toutefois, lorsque deux ou plusieurs activités parallèles ont les mêmes nœuds de début et de
fin, l’emploi d’activités fictives est inévitable.
3.1.2.2. Graphe MPM (Potentiel – tâches)
La méthode des potentiels repose sur un graphe différent, dont le tracé est
immédiat : les sommets représentent les opérations (activités à réaliser) et les arcs, les
contraintes d’antériorité entre les tâches.
Contrairement au graphe PERT qui introduit les opérations fictives, le graphe MPM
permet une représentation du projet à la fois simple et rapide. Conceptuellement, elle
repose sur un graphe G = (X, U) dans lequel les sommets représentent les tâches du projet.
Deux sommets supplémentaires représentant une tâche « Début » et une tâche « Fin » sont
insérés dans le graphe.
Il est à noter que la construction du réseau MPM est facilitée par la détermination
des niveaux de génération des sommets à partir du dictionnaire des précédents.
Figure 3.2. Représentation d’un graphe MPM
H
F
C
Début A B G I J K Fin
D E
Comme on peut l’observer sur le graphe, aucune activité fictive n’est utilisée, si ce n’est une
activité « début » et une activité « Fin » qui ne posent aucun problème.
Lorsque les arcs sont valués, le nombre représente l’état d’avancement de la tâche
initiale par rapport à la tâche terminale (c'est-à-dire le nombre d’unité de temps qui doit
s’écouler depuis le début de la tâche (i) formant extrémité initiale et le début de tâche (j)
formant extrémité terminale.
59
3.2. Détermination de la durée optimale d’un projet
Au sens mathématique, résoudre un problème d’ordonnancement, c’est en
déterminer une solution quelconque. Au sens de la recherche opérationnelle, c’est choisir,
parmi toutes les solutions, la solution optimale, par rapport à un critère fixé à l’avance. Dans
la plupart des cas, ce critère consiste à réaliser l’objectif le plus tôt possible.
3.2.1 Evaluation de la durée d’un projet
Jusqu’en 1958, les praticiens de l’ordonnancement ne recouraient qu’au planning à
barre appelé « Diagramme de GANTT » pour réaliser cette opération de manière non
systématique.
Avec le temps, deux nouvelles méthodes, fondées sur la théorie des graphes se sont
imposées. Il s’agit de la méthode américaine CPM (Critical Path Method), avec sa variante ;
incluant d’éventuelles données aléatoires, PERT (Program Evaluation and Review Technique
ou Program Evaluation Researche Task), d’une part, et de la méthode française des
Potentiels(MPM), d’autre part. Désormais, le sigle PERT a supplanté celui de CPM dans la
méthode américaine, même en l’absence des données (durée) aléatoire.
Prenant en compte les contraintes du type potentiel (ou se ramenant à ce type), ces
deux méthodes permettent :
- d’établir un ordonnancement, dès lors qu’aucune contrainte n’est contradictoire
avec un autre ;
- de déterminer le temps minimum nécessaire à la réalisation d’un projet ;
- de déterminer les tâches critiques, c'est-à-dire celles dont la non exécution
allonge la durée du projet. En d’autres termes, ce sont des tâches dont
l’exécution ne peut être ni retardée, ni ralentie sans que la fin de l’ensemble des
travaux ne soit décalée du temps correspondant ;
- d’évaluer les marges des tâches non critiques. Il s’agit des marges de liberté ( en
termes de temps) acceptables sans compromettre l’achèvement dans le délai de
tous les travaux.
Les différentes méthodes d’évaluation de la durée d’un projet sont exposées en se
servant de l’exercice ci-dessous.
Exercice 1
Soit un projet industriel comportant 9 tâches. Les durées de réalisation (en jours)
ainsi que les durées des opérations qui doivent précéder chaque tâche sont données dans le
tableau suivant :
Tâche (i) (a) (b) (c) (d) (e) (f) (g) (h) i
Durée (jours) 3 2 4 7 2 3 4 4 1
Tâche – – – (a), (a), (b) (c) (a), (e), (f) (d), (e), (g), (h)
antérieur (b) (f)
Solution
60
a) Diagramme de GANTT
Le diagramme de GANT est la méthode la plus simple et la plus classique qui permet
de suivre la réalisation dans le temps d’un projet. C’est un instrument qui permet de suivre
le déroulement des opérations dans le temps et résume assez bien l’analyse du projet établi
par les responsables respectifs.
Son inconvénient majeur est qu’il ne permet pas la mise en évidence logique des
liaisons existant entre les différentes tâches. Par ailleurs, il est difficile de rectifier
ponctuellement la durée d’une tâche précise sans avoir à décaler d’autant les suivants et à
redresser, si pas complètement du moins partiellement, l’édifice : si un des maillons de la
chaîne change, c’est tout l’édifice qui s’écroule.
1 2 3 4 5 6 7 8 9 10 11 12 13
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
Selon ce diagramme, la durée optimale des travaux est de 13 mois. Par ailleurs, les
tâches (a), (d) et (h) sont critiques, car tout prolongement de la durée de ces activités ou
tout retard dans leur démarrage se répercute directement sur la durée totale. Ces tâches
n’admettent donc ni retard dans leur mise en exécution, ni allongement de leur durée de
réalisation si on veut que les travaux soient achevés dans 13 mois.
La tâche (b) admet un retard d’un mois. Cela veut dire qu’un retard d’un mois dans la
réalisation de cette tâche n’aura aucun impact sur la réalisation dans le délai du projet. La
tâche (e) admet un retard de 5 mois. Les tâches (c), (g) et (f) admettent un retard de 3 mois.
61
b) Méthodes PERT-CPM (Graphe PERT-TEMPS)
La méthode PERT-CPM nécessite l’emploi d’un graphe appelé Graphe PERT-TEMPS.
D’après cette méthode, la durée d’un projet est conditionnée par la durée la plus longue de
la succession des tâches, de l’événement « début » à l’événement « fin ». Le problème posé
est ainsi similaire à celui de la détermination du trajet le plus court dans un réseau. Ici, il
s’agit de déterminer le plus long ou encore le « chemin critique ».
Pour l’exercice ci-dessus, nous pouvons construire le graphe PERT-TEMPS en
commençant par la détermination des niveaux de génération des sommets. Dans le tableau
ci-dessous, chaque tâche est repérée par ses précédents et par sa durée de réalisation.
Tableau 3.1. Dictionnaire des précédents et niveaux de génération des sommets
A - R(0) 3
B - R(0) 2
C - R(0) 4
D a,b R(1) 7
E a,b R(1) 2
F c R(1) 3
G a,e,f R(2) 2
H d,e,f R(2) 2
I g,h R(3) 1
ti = max (t j +d ij )
j∈ X i
où X i est l’ensemble des sommets-origine des arcs incidents à i vers l’intérieur et d ij la durée
de l’opération (i, j). Cette procédure est appliquée à partir de l’événement 1 (Début), pour
lequel t1 = 0, et de proche en proche sur l’ensemble des sommets. La date de l’événement
« Fin » donne la durée du projet.
62
Figure 3.3. Graphe PERT-TEMPS associé
2 d 6
3 10
7
2 h
a
3
b e i
2 7 Fin
1 2 3 1
g 12 13
0 c 2
4 2
f
4 3
5
4 7
3 e 5
3 5
2
2 g
a
3
b d i
7 7 Fin
1 2 2 1
h 12 13
0 c 2
4 2
f
4 3 6
4 10
i (i, j) j
ti
dij Max(ti+dij)
63
entier ne pourrait jamais se réaliser dans le délai correspondant à la longueur du chemin
critique.
c) Méthodes MPM
Cette méthode fait recours à un tableau de calcul où chaque case est affectée à une
tâche particulière. L’ordre d’affectation n’ayant aucune conséquence sur le résultat final, les
activités peuvent être affectées suivant les rangs auxquels appartiennent ces activités. Pour
l’exercice 1, la première case est affectée à l’activité A, la seconde à l’activité B et ainsi de
suite jusqu’à la tâche fictive « Fin ».
Chacune des cases de ce tableau se présente comme sur le tableau 3.2 ci-dessous :
- Sur la première ligne de la case est indiquée à droite le nom de la tâche
considérée et, à gauche, sa date de début qui sera calculée par la formule « TDi »
pour l’activité « i » :
TDi i
TDj j ∈ X i ; dj
0 a 0 B 0 c 3 D 3 e
4 f 7 G 10 h 12 I 13 Fin
La durée minimale du projet est donnée par TD Fin lue dans la dernière case du
tableau. Cette durée est de 13 mois.
Le graphe MPM illustre l’algorithme de façon parfaite, mais l’on se rend bien compte
qu’il n’est pas du tout nécessaire de le tracer dans la détermination de la durée optimale
d’un projet.
Exercice 2
64
Supposons que dans le projet présenté dans la figure 3.1 les durées des activités
soient les suivants (en mois) :
A:1 D:5 G:1 J:4 B:3 E:3 H:2 K:5 C : 10 F : 3 I : 20
L’utilisation de la procédure de marquage donne une durée totale de 49 mois.
Figure 3.4. Graphe Pert-temps associé
6
A B D 17 E
1 5 3 8 I 9 J 10 K Fin
2 3
1 3 C 20 4 5
G 20 40
0 1 4 10 1 44 49
4 F H
3
5 2
14 7
0 A 1 B 4 C 4 D 17 E
14 F 17 G 17 H 20 I 40 J
44 K 49 FIN
40 J:4 44 K:5
La durée minimale du projet est donnée par TD Fin lue dans la dernière case du
tableau. Cette durée est de 49 mois. Pour ressortir le chemin critique, on remonte du
sommet terminal vers le sommet du départ en retenant les différents sommets ayant
conduit à l’optimum. Ce chemin est donné par la séquence : A – B – C – F – E – I – J – K.
65
CHAPITRE 4. PROBLEMES DE FLOT DE VALEUR MAXIMALE
De nombreux problèmes de gestion présentent une analogie avec l’écoulement d’un
flot dans des canalisations. C’est le cas, notamment, de certains problèmes de transport où
l’on cherche à acheminer, d’un lieu vers un autre, des flux de marchandises donnés, alors
que les voies de communications ont des capacités limitées.
Les problèmes de flot maximal consistent à déterminer le flux maximal que l’on peut
transporter de l’entrée à la sortie d’un réseau, compte tenu du débit à l’entrée, de la
capacité de canalisation et de l’existence ou pas d’engorgement en certains points du
réseau.
X4
(6)
(2)
(8)
(2)
X1 X5 (9) X8
(6) (9)
(1)
(4) (3)
(5)
(6)
X0 (8)
X2 (3)
X9
(6)
X11
(1)
(7) (7)
(14)
(2)
(8) (12)
X3 X6
(8)
(4)
(11)
(2)
X7 X10
(9)
66
Les chiffres entre-parenthèses sont des capacités de l’arc.
4.1.2. Flot dans un réseau
Soit G un graphe dont les arcs sont indicés par i : (1, 2, …, m).
Un flot est un vecteur ϕ = (ϕ1, ϕ2, …, ϕm) tel que chaque ϕj soit un nombre appelé flux
dans l’arc j, et que, pour tout sommet xj, la somme algébrique des flux entrant dans x j est
égale à la somme algébrique des flux sortant.
Si l’on considère le graphe G(X, U) avec U l’ensemble des arcs, le nombre ϕ j sera
représenté par ϕi,j pour ainsi dire qu’il est situé sur l’arc (xi, xj).
Ainsi, mathématiquement, une fonction ϕ(x i,xj) définie sur U est un flot si et
seulement si :
1°/ ∀ (xi, xj) ∈ U, ϕi,j ≥ 0. ϕi,j étant un nombre appelé flux dans l’arc (xi, xj)
2°/ ∀ xi ≠ xn, ∑ −¿
¿= ∑ +¿
¿ : pour tout x , la somme algébrique des flux
j
( x i ,x j ) ∈U (x ) φi , j ¿ ( x j , x k )∈U ( x ) φ j,k ¿
entrant dans xj (∑ φi , j) est égale à la somme algébrique des flux sortant (∑ φ j , k ).
j j
−¿¿ +¿ ¿
U (x ) est l’ensemble des arcs incidents à x j vers l’intérieur et U (x ) est l’ensemble des
j j
c[C*(S)] = ∑ ¿
ci , j
( x i ,x j ) ∈ C (S )
67
Pour notre exemple, c[C*(S)] = 6 + 7 + 8 + … + 9 + 12 = 55
On dit qu’un arc (xi, xj) ∈ U est saturé si : ϕi,j = ci,j.
4.1.4. Flot complet
Un flow φ d’un réseau de transport est dit « complet » si tout chemin allant de
l’entrée x0 à la sortie xn contient au moins un arc saturé. Il s’agit d’un flot dans lequel tous les
chemins du graphe sont saturés (impraticables).
Comme nous le verrons, dans un flow complet, on ne peut plus augmenter le flux de
chacun de ses arcs en considérant un chemin mais seulement, et éventuellement, en
considérant une ou plusieurs chaînes du réseau de transport. Ainsi, un flot complet n’est pas
nécessairement un flot maximal.
4.2. FORMALISATION DU PROBLEME
Le problème à résoudre, dans un réseau de transport, consiste à acheminer une
quantité maximale de x0 à xn, en tenant compte des capacités de transport. La quantité ϕ(u)
transportée sur chaque arc u est nommée « flux sur l’arc u » ; elle vérifie donc 0 ≤ ϕ(u) ≤ c(u).
Mathématiquement, il s’agit de déterminer ϕi,j, ∀ (xi, xj) ∈ U, de telle sorte que ϕn soit
maximal. De manière équivalente, il s’agit de déterminer un flot ϕ 0 (somme des flux sortant
en x0) satisfaisant aux contraintes 0 ≤ ϕi,j ≤ ci,j et rendant maximal l’afflux au sommet x n
(somme des flux entrant dans xn).
Ceci correspond au problème de programmation suivant :
Max ϕ0 = ϕn
S/C ∑ −¿
¿= ∑ +¿
¿
( x i ,x j ) ∈U (x ) φi , j ¿
j
( x j , x k )∈U ( x ) φ j,k ¿
j
Le terme « problème de flot maximal » contenu dans certains ouvrages est donc
impropre ; par suite d’une mauvaise traduction de l’anglais : en fait, on maximise un flux ϕ 0,
composante du vecteur flot. Néanmoins, l’usage l’a consacré.
68
Chapitre 5. MODELE DE TRANSPORT
Destination
Origine E1 E2 … Ej … En Quantité
disponible
… … … … … … … …
… … … … … …
Demand d1 d2 … dj … dn
e
Les Cij représentent le coût d’une unité du bien de l’origine i à la destination j. Si l’on
remplace Cij par les xij représentant la quantité transporté du centre i vers le centre j, le
69
tableau ainsi formé avec les coefficients xij en lieu et place des cij est appelé « matrice des
débits » ou « schéma de transport ».
Connaissant le coût unitaire de Cij de tout point-origine i à tout point destination j,
comment décider des quantités xij à transporter du point-origine i au point-destination j, de
façon à minimiser le coût total de transport ∑ ∑ ¿ ¿ ¿).
De manière générale, le total des quantités disponibles aux points-origine ( ∑ qi)
correspond à celui des demandes aux différents points-destination ( ∑ d j). Si ∑ qi ≠ ∑ d j,
on peut rétablir l’égalité en introduisant soit une demande (ou colonne) fictive ( ∑ qi – ∑ d j
) soit une disponibilité (ou ligne) fictive (∑ d j – ∑ qi ). Dans le premier cas, on affectera des
cij correspondant à cette colonne des valeurs nulles et, dans le second cas, des coûts de
transport unitaire extrêmement élevé, pour ne pas perturber le processus de minimisation
du coût de transport des quantités effectivement transportée.
5.1.1. Formulation mathématique (le primal)
Le problème de transport peut être formalisé à l’aide d’un programme linéaire et
comme tout programme linéaire, il peut être présenté sous une forme primale ou sous une
forme duale.
La formulation primale s’exprime comme la recherche de l’approvisionnement aux
moindres coûts à partir de m points-origine Pi (i = 1, 2, …, m) de n points-destination Ej (j = 1,
2, …, n) tel que :
- La demande de chaque marché soit satisfaite ; et
- L’offre de chaque usine ne soit pas dépassée.
Mathématiquement, le problème de transport peut être présenté sous forme d’un
programme linéaire suivant :
Min C = ∑ ∑ ¿ ¿ ¿)
S/C ∑ x ij ≥ dj (j = 1, 2, …, n) (1)
i
∑ x ij ≤ qj (i = 1, 2, …, m) (2)
j
xij ≥ 0
Lorsque ∑ qi=¿ ∑ d j, les inégalités (1) et (2) deviennent des égalités. Dans ce cas,
le programme devient :
Min C = ∑ ∑ ¿ ¿ ¿)
S/C ∑ x ij ¿ dj (j = 1, 2, …, n) (1)
i
∑ x ij ¿ qj (i = 1, 2, …, m) (2)
j
∑ qi=¿ ∑ d j (3)
xij ≥ 0
Le problème tel que formulé met en présence m x n variables et m + n contraintes
(avec m contraintes associées aux points-origine et n associées aux points-destination. Mais
70
ces m + n équations ne sont pas indépendants à cause de la contrainte (3). Ainsi, tenant
compte de (3), il est aisé de faire apparaître seulement m + n – 1 équations indépendantes
qui sont :
Une équation d’identité :∑ qi=¿ ∑ d j
(m – 1) équations indépendantes :∑j
x ij ¿ qj
(n – 1) équations indépendantes :∑ x ij ¿ dj
i
U1 : 1 000 V1 : 700
U2 : 200 V2 : 100
U3 : 400 V3 : 300
V4 : 500
Tableau 5.1b
V1 V2 V3 V4
U1 64 50 77 14
U2 37 20 48 24
U3 25 14 15 48
Si nous appelons Xij les quantités transportées entre l’usine U i et l’entrepôt Ej, le coût
de transport total supporté par l’entreprise s’écrira :
71
C = 64 X11 + 50 X12 + 77 X13 + 14 X14 + 37 X21 + … + 24 X24 + 25 X31 + 14 X32 + 15 X33 + 48 X34
L’objectif de l’entreprise est de rendre minimum ce coût de transport, tout en tenant
compte des disponibilités du produit et de sa demande. Comme l’offre totale est égale à la
demande, toutes les capacités seront utilisées pour satisfaire la demande. Ceci donne les
contraintes suivantes :
X11 + X12 + X13 + X14 = 1 000
X21 + X22 + X23 + X24 = 200
X31 + X32 + X33 + X34 = 400
X11 + X21 + X31 = 700
X12 + X22 + X32 = 100
X13 + X23 + X33 = 300
X14 + X24 + X34 = 500
et X11, …., X34 ≥ 0.
Si l’on désigne par A, la matrice des coefficients des contraintes fonctionnelles, Celle-
ci peut s’écrire sous la forme suivante :
1 1 … 1 0 … 0 … 0 … 0
0 0 … 0 1 … 1 … 0 … 0
0 0 … 0 0 … 0 … 1 … 1
A
1 0 … 0 1 … 0 … 1 … 0
0 1 … 0 0 … 0 … 0 … 0
0 0 … 0 0 … 0 … 0 … 0
0 0 … 1 0 … 1 … 0 … 1
[ ]
111 10 00 00 00 0
000 01 11 10 00 0
000 00 00 01 11 1
A= 001 01 00 01 00 0
100 00 10 00 10 0
010 00 01 00 01 0
0 0 01 0 00 1 00 0 1
Destination
Origine V1 V2 V3 V4 Quantité
disponible
(Entrepôt 1) (Entrepôt 2) (Entrepôt 3) (Entrepôt 4)
(qi)
U1 (Usine 1) 64 50 77 14 1 000
U2 (Usine 2) 37 20 48 24 200
U3 (Usine 3) 25 14 15 48 400
En ce qui concerne l’exemple ci-dessus, le problème peut être formulé comme suit :
Max R = 1000 U1 + 200 U2 + 400 U3 + 700 V1 + 100 V2 + 300 V3 + 500 V4
Avec U1 + V1 ≤ 64 U2 + V3 ≤ 48
U1 + V2 ≤ 50 U2 + V4 ≤ 24
U1 + V3 ≤ 77 U3 + V1 ≤ 25
U1 + V4 14
≤ U3 + V2 ≤ 14
73
U2 + V1 ≤ 37 U3 + V3 ≤ 15
U2 + V2 ≤ 20 U3 + V4 ≤ 48
A partir de cette formulation duale, il y a lieu d’établir la relation suivante avec
l’écriture primale :
- Si l’une des deux formulations a une solution, l’autre en a une également et la
valeur de la fonction-objectif est la même, à l’optimum pour les deux
formulations. Ainsi :
Min C = C* = Max R = R*,
soit encore :
C* = ∑ ∑ ¿ ¿ ¿) = ∑ qi U i + ∑ d j V
¿
¿
j
i j
- Si la contrainte ij duale n’est pas saturée à l’optimum, cela se matérialise par une
inégalité stricte, la valeur Xij sera nulle dans la solution primale :
¿ ¿ ¿
U i + V j < cij ⇒ X ij = 0
- Il est possible d’assimiler Ui et Vj à des coûts marginaux : ces variables mesurent la
variation marginale de la fonction-objectif primale, c'est-à-dire du coût de
transport, associée respectivement à une variation unitaire des quantités
disponibles en i ou demandées en j :
∆C ∆C
Ui = et Vi =
∆ qi ∆d j
Dans ces conditions, les contraintes duales comparent le coût de transport attaché à
un trajet particulier et la somme des coûts marginaux dus à des variations de l’offre et de la
demande correspondant à ce trajet. Si une unité de produit est envoyé de i en j, c'est-à-dire
Xij = 1, il ne reste plus que q i – 1 unités à expédier du point i et dj – 1 unités à envoyer en j.
Une unité est ainsi « supprimée » en offre et en demande et elle n’a plus à être acheminée
par un autre trajet. Cette suppression entraîne une économie de coût ou encore un coût
marginal égal à Ui + Vj. Cette économie doit être comparée à ce que coûte réellement le
trajet ij. Trois cas sont envisageables :
- Ui + Vj > cij : l’économie réalisée sur l’ensemble du système de transport est
supérieure au coût réel du trajet. Il y a donc avantage à utiliser au maximum le
trajet ij ;
- Ui + Vj < cij : le coût du trajet ij est supérieure à l’économie de coût enregistrée sur
les autres trajets. Le trajet ij n’est pas intéressant et Xij doit rester nul ;
- Ui + Vj = cij : l’équilibre est vérifié pour tous les trajets utilisés, c'est-à-dire pour les
variables Xij positives. C’est à partir de ces trajets que sont déterminées les
valeurs Ui et Vj correspondant à une solution particulière.
74
- Evaluation de l’optimalité de la solution ;
- Passage à une solution de base améliorée ;
- Répétition des points (2) et (3) ci-dessus jusqu’au moment où l’amélioration n’est
plus possible.
Parmi les techniques de résolution utilisables, la plus populaire est l’algorithme de
stepping-stone. Nous étudierons successivement les méthodes de détermination de la
première solution de base admissible, l’algorithme de stepping-stone et, enfin, une
technique utilisant simultanément les deux formulations (primale et duale) avec
l’algorithme primal-dual.
5.2.1. Recherche d’une solution de base admissible (SBA)
De la même façon que dans l’algorithme du simplexe, l’algorithme du stepping-stone
repose sur la détermination d’une solution initiale (SBA) qui est ensuite progressivement
améliorée dans le cadre d’une procédure itérative par intégration de variables hors-base et
l’élimination corrélative de variables en base.
Plusieurs techniques existent pour la recherche de cette première solution de base
admissible ; c'est-à-dire qui respectent les contraintes (disponibilités et demandes). Elles
sont de deux types : le premier ignore les éléments de la fonction-objectif (il s’agit de la
technique du coin Nord-Ouest ou la règle du coin supérieur gauche) ; l’autre en tient déjà
compte, de façon à obtenir dès l’abord une « bonne » solution possible, plus proche de
l’optimum (la règle du MINILI ou minimum de la ligne, la règle du MINICO ou minimum de la
colonne, la règle du MINITAB ou minimum du tableau, la règle de pénalité unitaire ou
méthode de Balas-Hammer et, enfin, la méthode du coût minimum.
5.2.1.1. Technique du coin Nord-Ouest (règle du coin supérieur gauche)
Nous savons de façon générale qu’un programme linéaire non dégénéré ayant pour
contrainte sous sa forme standard k équations indépendantes admet pour solution de base
des combinaisons de k variables positives.
En ce qui concerne notre exemple (où ∑ qi=¿ ∑ d j), la solution de base doit être
constituée au plus de (m + n – 1) variables positives. Etant donné que le système est
constitué par (n x m) variables ou inconnues liées par (m + n – 1) relations indépendantes, il
doit y avoir, dans une solution de base admissible, au moins [(n x m) – (m + n – 1)] variables
nulles : (3 x 4) – (4 + 3 – 1) = 6 variables.
La règle du coin supérieur gauche consiste à construire la matrice des débits en
satisfaisant d’abord la demande exprimée à la première destination par la quantité
disponible à la première origine (ceci correspond au coin Nord-Ouest du tableau) et, ensuite,
satisfaire successivement les autres demandes en épuisant les quantités disponibles de
façon à terminer le processus par la satisfaction de la demande de la dernière destination
avec la quantité disponible à la dernière origine.
De manière concrète, cette méthode consiste, à partir du coin Nord-Ouest de la
matrice des débits (tableau des quantités), à saturer systématiquement les contraintes. La
première case du tableau, correspondant à la variable X 11, se voit affecter un nombre
d’unités égal au minimum de q1 et de d1. Si par exemple d1 < q1, X11 = d1 et la première
contrainte-destination est saturée. Il ne reste plus à envoyer (q 1 – d1) à partir de la première
unité de production. De ce fait, X12 se voit affecter un nombre d’unités égal au minimum de
(q1 – d1) et de d2. Si (q1 – d1) < d2, alors X12 = (q1 – d1) et la première contrainte-origine est
75
saturée ; si (q1 – d1) > d2, X12 = d2 et la seconde contrainte-destination est saturée. Le
processus continue jusqu’à ce que toutes les contraintes soient saturées.
Pour notre exemple, on obtient ainsi le tableau suivant :
E1 E2 E3 E4 qi
U3 0 0 0 400 400
Cette première solution est de base admissible : elle comporte 6 cases occupées par
des 0 (en d’autres termes, il y a 6 variables nulles : X14, X21, X22, X31, X32 et X33). La solution
proposée comporte six trajets retenus : X11 = 700, X12 = 100, X13 = 200, X23 = 100, X24 = 100 et
X34 = 400. Cette solution respecte les contraintes de disponibilité, de même que les
contraintes de demande : on le vérifie par l’addition des cases du tableau respectivement en
lignes et en colonnes.
Le coût de transport pour les trajets retenus est de :
C = 64 (700) + 50 (100) + 77 (200) + 48 (100) + 24 (100) + 48 (400) = 91 600 USD.
Il reste maintenant à étudier s’il n’existe pas de solutions meilleures. Ceci nous
conduit à la deuxième étape qui est celle du test d’optimalité.
5.2.1.2. Méthode de Balas -Hammer
Appelée aussi « méthode de la différence maximale, cette méthode se déroule
comme suit :
- Calculer pour chaque rangée (ligne et colonne) la différence entre le coût le plus
petit et le coût immédiatement supérieur. Ces différences, appelées « pénalités
unitaires », correspondent au différentiel de coût lié au fait que si on n’affecte pas
la quantité la plus grande au coût le plus faible de la rangée ( ligne ou colonne),
on sera obligé, dans la suite, de l’affecter au coût immédiatement supérieur ;
- Retenir la rangée (ligne ou colonne) à laquelle correspond la plus grande pénalité
unitaire, puis affecter à la case contenant le plus petit coût unitaire de la rangée
(ligne ou colonne) la quantité la plus élevée possible tout en respectant les
différentes contraintes (Celles liées à la demande et à l’offre). Ceci aura pour effet
de saturer la ligne ou la colonne ;
- Corriger les contraintes de disponibilité et de demandes affectées par les
quantités décidées et supprimer la rangée (ligne ou colonne) saturée ;
- Reprendre le processus jusqu’à ce que toutes les rangées soient saturées.
Il convient de noter que si l’on sature, à chaque étape (ou pas), une seule rangée,
sauf qu dernier pas où plusieurs rangées sont saturées à la fois, on utilise bel et bien (m + n –
1) relations indépendantes. Ce qui aboutit généralement à une SBA. Mais, s’il arrive que l’on
76
sature à la fois une ligne et une colonne (le dernier pas exclus), alors la solution sera
dégénérescente.
Le principe de la méthode est appliqué, en se servant du tableau des coûts (en USD)
et des contraintes ci-après :
V1 V2 V3 V4 qi
U1 64 50 77 14 1000
U2 37 20 48 24 200
U3 25 14 15 48 400
Première étape
Calculons pour chaque rangée les penalités ∆ ij. Les premières pénalités sont
désignées sur le tableau initial par ∆c et par ∆L suivant qu’elles portent sur les colonnes ou
sur les lignes.
V1 V2 V3 V4 qi ∆C V1 V2 V3 V4 qi
U2 37 20 48 24 200 4 U2 0 200
U3 25 14 15 48 400 1 U3 0 400
dj 700 100 300 500 1600 dj 700 100 300 500 1600
Etape 1. Nous commençons par approvisionner la destination 4
∆L 12 6 33 10 au moyen de 500 unités provenant de l’usine (Min [500, 1000]).
La plus grande pénalité étant 36, nous affectons la valeur la plus élevé à la case
correspondant au coût unitaire le moins élevé ; soit la case C(1,4). La valeur affectée ne doit
pas dépassée la demande exprimée (soit 500) tout en respectant la contrainte de
disponibilité de l’offre de la ligne retenue (pour le cas échéant l’offre disponible étant de
1000, la contrainte est respectée).
En d’autres termes, nous commençons par approvisionner la destination 4 au moyen de 500
unités provenant de l’usine 1. Par cette opération, la colonne 4 est saturée (d’où l’apparition
des zéros).
La colonne 4 étant saturée, nous corrigeons les contraintes de disponibilité et de
demandes affectées par les quantités décidées et supprimons la colonne 4. Ceci nous
conduit à la deuxième itération ci-dessous.
Etape 2
77
V1 V2 V3 qi ∆C V1 V2 V3 V4 qi
U2 37 20 48 200 17 U2 0 0 200
La nouvelle grande pénalité étant 33, nous affectons la valeur la plus élevé à la case
correspondant au coût unitaire le moins élevé de la colonne correspondante ; soit la case
C(3,3). La valeur affectée ne doit pas dépassée la demande exprimée (soit 300) tout en
respectant la contrainte de disponibilité de l’offre de la ligne retenue (pour le cas échéant
l’offre disponible étant de 400, la contrainte est respectée). Nous affectons la valeur 300 à la
case C(3,3) et supprimons la colonne 3 qui devient saturée.
La colonne 3 étant saturée, nous corrigeons les contraintes de disponibilité et de
demandes affectées par les quantités décidées, ceci nous conduit à la troisième itération ci-
dessous.
Etape 3
V1 V2 qi ∆C V1 V2 V3 V4 qi
La nouvelle grande pénalité étant 17, nous affectons la valeur la plus élevé à la case
correspondant au coût unitaire le moins élevé de la ligne correspondante ; soit la case C(2,2).
Nous affectons la valeur 100 à la case C(2,2) et supprimons la colonne 2 qui devient saturée.
La colonne 2 étant saturée, nous corrigeons les contraintes de disponibilité et de
demandes affectées par les quantités décidées, ceci nous conduit à la quatrième itération ci-
dessous.
Etape 4
78
V1 qi ∆C V1 V2 V3 V4 qi
V1 V2 V3 V4 qi
79
L’application de la technique dans le cas de la BRALIMA (exemple 1) amènerait à
sélectionner d’abord le trajet reliant U1 à E4, puisque son coût de transport est de 14
seulement, et à lui affecter 500 unités, ce qui sature la contrainte 4 de la demande. Il ne
reste plus que 500 unités dans U1. Sur les trajets encore possibles, le coût de transport
minimum est repéré, il s’agit du trajet 32 qui se voit affecter le maximum d’unités possibles,
soit 100, ce qui sature la seconde contrainte de la demande. La procédure est poursuivie
jusqu’à la saturation de toutes les contraintes. Le tableau ci-dessous donne le résultat de
l’algorithme.
V1 V2 V3 E4 qi
U2 200 0 0 0 200
E1 E2 E3 E4 E5 E6 qi
U1 12 27 61 49 83 35 18
U2 23 39 78 28 65 42 32
U3 67 56 92 24 53 54 14
U4 71 43 91 67 40 49 9
dj 9 11 28 6 14 5 73
80
Les premières pénalités sont désignées sur le tableau initial ∆c et par ∆L suivant
qu’elles portent sur les colonnes ou sur les lignes.
a) Méthode de Balas-Hammer
Premier pas
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 18 15
U2 0 32 5
U3 6 14 29
U4 0 9 3
dj 9 11 28 6 14 5
∆L 11 12 17 4 13 7 C(3,4) = 6
La plus grande pénalité étant 29, nous affectons la valeur la plus élevé à la case
correspondant au coût unitaire le moins élevé ; soit la case C(3,4). La valeur affectée ne doit
pas dépassée la demande exprimée (soit 6) tout en respectant la contrainte de disponibilité
de l’offre de la ligne retenue (pour le cas échéant l’offre disponible étant de 14, la contrainte
est respectée). En d’autres termes, nous commençons par approvisionner la destination 4 au
moyen de 6 unités provenant de l’origine 3. Nous indiquons 6 au-dessus de la case
correspondante ; soit C(3,4) = 6.
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 0 18 0 0 0 18 15
U2 0 32 16
U3 6 14 1
U4 0 9 3
dj 9 11 28 6 14 5
∆L 11 12 17 - 13 7 C(1,3) = 18
81
La nouvelle grande pénalité étant 17, nous affectons la valeur la plus élevé à la case
correspondant au coût unitaire le moins élevé de la colonne correspondante ; soit la case
C(1,3). La valeur affectée ne doit pas dépassée la demande exprimée (soit 28) tout en
respectant la contrainte de disponibilité de l’offre de la ligne retenue (pour le cas échéant
l’offre disponible étant de 18, la contrainte est respectée). Nous affectons la valeur 18 à la
case C(1,3) et supprimons la ligne 1 qui devient saturée. Nous indiquons 18 au-dessus de la
case correspondante ; soit C(1,3) = 18.
En poursuivant ainsi, on obtient successivement les tableaux ci-après.
Troisième pas
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 0 18 0 0 0 18 -
U2 9 0 32 16
U3 0 6 14 1
U4 0 0 9 3
dj 9 11 28 6 14 5
∆L 44 4 13 - 13 7 C(2,1) = 9
Quatrième pas
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 0 18 0 0 0 18 -
U2 9 0 32 3
U3 0 6 14 1
U4 0 0 0 0 9 0 9 3
dj 9 11 28 6 14 5
∆L - 4 13 - 13 7 C(4,5) = 9
Cinquième pas
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 0 18 0 0 0 18 -
82
U2 9 11 0 32 3
U3 0 0 6 14 1
U4 0 0 0 0 9 0 9 -
dj 9 11 28 6 14 5
∆L - 17 14 - 12 12 C(2,2) = 11
Sixième pas
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 0 18 0 0 0 18 -
U2 9 11 0 5 32 23
U3 0 0 6 0 14 1
U4 0 0 0 0 9 0 9 -
dj 9 11 28 6 14 5
∆L - - 14 - 12 12 C(2,6) = 5
Septième pas
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 0 18 0 0 0 18 -
U2 9 11 0 0 5 32 13
U3 0 0 6 5 0 14 39
U4 0 0 0 0 9 0 9 -
dj 9 11 28 6 14 5
∆L - - 14 - 12 - C(3,5) = 5
Huitième pas
E1 E2 E3 E4 E5 E6 qi ∆c
U1 0 0 18 0 0 0 18 -
83
U2 9 11 7 0 0 5 32
U3 0 0 3 6 5 0 14
U4 0 0 0 0 9 0 9 -
dj 9 11 28 6 14 5
∆L - - 14 - - - C(2,3) = 7, et
C(3,3) = 3
La solution de base admissible obtenue est contenue dans la « matrice de débit » ci-après :
E1 E2 E3 E4 E5 E6 qi
U1 0 0 18 0 0 0 18
U2 9 11 7 0 0 5 32
U3 0 0 3 6 5 0 14
U4 0 0 0 0 9 0 9
dj 9 11 28 6 14 5 73
E1 E2 E3 E4 E5 E6 qi
U1 9 9 0 0 0 0 18
U2 0 2 28 2 0 0 32
U3 0 0 0 4 10 0 14
U4 0 0 0 0 4 5 9
dj 9 11 28 6 14 5 73
84
c) Règle de MINITAB
L’application de la règle MINITAB amène en l’affectation aux relations de coûts
minimaux croissants donnée par le tableau ci-après :
E1 E2 E3 E4 E5 E6
U1 1 3
U2 4 8 6
U3 9 2 7
U4 5
Ce tableau donne l’ordre suivant lequel le transfert d’unités a été opéré dans le tableau suivant.
L’affectation aux relations de coûts minimaux en partant du minimum minimorum est :
E1 E2 E3 E4 E5 E6 qi
U1 9 9 0 0 0 0 18
U2 0 2 25 0 0 5 32
U3 0 0 3 6 5 0 14
U4 0 0 0 0 9 0 9
dj 9 11 28 6 14 5 73
d) Règle de MINILI
E1 E2 E3 E4 E5 E6 qi
U1 9 2 7 0 0 0 18
U2 0 0 21 6 0 5 32
U3 0 0 0 0 14 0 14
U4 0 9 0 0 0 0 9
85
dj 9 11 28 6 14 5 73
e) Règle de MINICO
C’est une méthode correspondante au MINILI en utilisant, cette fois, les coûts
minimaux des colonnes.
La règle MINICO donne le résultat suivant :
E1 E2 E3 E4 E5 E6 qi
U1 9 9 0 0 0 0 18
U2 0 0 28 0 0 4 32
U3 0 2 0 6 5 1 14
U4 0 0 0 0 9 0 9
dj 9 11 28 6 14 5 73
86
Pour améliorer la solution de base, on fait le raisonnement marginaliste suivant :
comment variera le coût total si, tout en respectant les contraintes, on affecte une unité
dans une case vide ? Les étapes à suivre sont les suivantes :
- Choisir une case à évaluer (cette case correspond, en fait, à un trajet
actuellement non utilisé) ;
- A partir de la case-pivot choisie, tracer un chemin fermé (une boucle) en se
déplaçant horizontalement et verticalement en passant par les cases occupées
pour revenir à la case inoccupée de départ. Cette boucle joint quatre cases
occupées au moyen des lignes verticales et horizontales. On obtient ainsi un
rectangle dont deux cotés, correspondant à la diagonale opposée à la case-pivot,
sont non nuls :
A P
(case non nulle) (case-pivot)
B D
(case non nulle)
La case-pivot est celle ayant une valeur nulle dans la solution de base initiale. L’évaluation
porte sur la matrice de coûts associée.
87
Revenons à l’exemple de la société BRALIMA. La solution de base proposée par la
méthode du coin nord-sud respecte les contraintes de disponibilité, de même que les
contraintes de demande. Il faut maintenant étudier s’il n’existe pas de solutions meilleures.
On peut procéder à cette étude en modifiant légèrement la solution actuelle, en
faisant passer une unité dans un trajet actuellement non utilisé : par exemple le trajet 33. Si
x33 = 1, pour respecter les contraintes, il faut réduire d’une unité les quantités envoyées par
les trajets 13 et 34, et augmenter d’une unité les quantités qui transitent par le trajet 14.
Ceci donne : ∆33 = -96 ( C33 + C14 – C13 – C34 = 15 + 14 – 77 – 48)
L’opération est intéressante, puisqu’elle réduit le coût de transport. En d’autres
termes, le fait d’envoyer une unité par le trajet 33 et de procéder aux ajustements pour
respecter les contraintes, permet une économie de 97 USD. Il est évident que si deux unités
avaient été envoyées par ce trajet, l’économie aurait été double ; elle serait multipliée par λ
pour λ unités expédiées. L’entreprise a donc intérêt à expédier le maximum d’unités par ce
trajet. Tenant compte des différentes contraintes, la quantité maximale est de 200 unités ;
ce qui entraine une économie de coût de 19 200 USD. Cette procédure est appliquée par
itération successive suivante.
Tableau 5.2. Algorithme de stepping-stone.
a) E1 E2 E3 E4 qi b) E1 E2 E3 E4 qi
c) E1 E2 E3 E4 qi d) E1 E2 E3 E4 qi
dj 700 100 300 500 1600 dj 700 100 300 500 1600
e) E1 E2 E3 E4 qi f) E1 E2 E3 E4 qi
88
U2 0 100 100 0 200 U2 100 100 0 0 200
dj 700 100 300 500 1600 dj 700 100 300 500 1600
Première itération
A partir de la case inoccupée 14, on peut former 2 rectangles suivants, accompagnés,
chacun, de l’indice d’évaluation (la case-pivot étant P14) :
Rect. P14A13B23D24, avec ∆14 = (P14 + B23) – (A13 + D24) = (14 + 18) – (77 + 24) = -39
Rect. P14A13B33D34, avec ∆14 = (P14 + B33) – (A13 + D34) = (14 + 15) – (77 + 48) = -96
Le chemin P14A13B33D34 paraît intéressant. L’introduction des variables hors-base se
fait à partir de ce chemin. Nous obtenons ainsi le tableau 4.2c.
Deuxième itération
De la case inoccupée 31, on peut former 2 rectangles suivants, accompagnés, chacun,
de l’indice d’évaluation (la case-pivot étant P31) :
Rect. P31A11B13D33, avec ∆31 = (25 + 77) – (64 + 15) = 23
Rect. P31A11B14D34, avec ∆31 = (25 + 14) – (64 + 48) = -73
Le chemin P31A11B14D34 paraît intéressant. Une nouvelle base est formée à partir de ce
chemin, soit le tableau 4.2d.
Troisième itération
De la case-pivot 22, on peut former les rectangles suivants, accompagnés, chacun, de
l’indice d’évaluation :
Rect. P22A12B13D23, avec ∆22 = (20 + 77) – (50 + 48) = -1
Rect. P22A12B14D24, avec ∆22 = (20 + 14) – (50 + 24) = -40
Le chemin P22A12B14D24 est le plus intéressant. Une nouvelle base est formée à partir
de ce chemin, soit le tableau 4.2d.
Quatrième itération
De la case-pivot 21, on obtient quatre rectangles suivants :
Rect. P21A11B12D22, avec ∆21 = (37 + 50) – (64 + 20) = 3
Rect. P21A11B13D23, avec ∆21 = (37 + 77) – (64 + 48) = 2
Rect. P21A31B32D22, avec ∆21 = (37 + 14) – (20 + 25) = 6
Rect. P21A31B33D23, avec ∆21 = (37 + 15) – (25 + 48) = -21
Le transfert d’unités se fait au travers du chemin Le chemin P 22A12B14D24 est le plus
intéressant. Une nouvelle base est formée à partir de ce chemin, soit le tableau 4.2f.
L’application du test d’optimalité au tableau 4.2f indique que tous les indices
d’évaluation sont positifs. C’est l’optimum.
89
La solution optimale est obtenue par itérations successives. A chaque étape de calcul,
nous avons introduit dans la solution le trajet permettant la plus grande économie. Dans
l’étape finale de calcul (tableau 4.2f) aucune autre économie n’est possible.
5.2.2.1. Application de l’Algorithme au départ de la solution de base MINITAB
La solution obtenue par la méthode de coût minimal permet d’arriver rapidement à
la solution optimale en réduisant le nombre d’itération, parce que la solution proposée est
déjà proche de l’optimum.
a) Solution de base initiale (Méthode MINITAB)
E1 E2 E3 E4 qi
U2 200 0 0 0 200
90
b) Algorithme de stepping-stone6
E1 E2 E3 E4 qi
Les indices d’évaluation obtenus de ce tableau sont tous positifs. La solution optimale
est donc atteinte après une seule itération.
Le tableau ci-dessus indique que :
L’entrepôt (E1), dont la demande est de 700 casiers de bières Primus, sera alimenté
par l’usine U1 en raison de 500 casiers, par l’usine U2 en raison de 100 casiers et par
l’usine U3 en raison de 100 casiers.
Le coût de cette opération est : 64 (500) + 37 (100) + 25 (100) = 38 200 USD
L’entrepôt (E2), dont la demande est de 100 casiers sera totalement alimenté par
l’usine U2.
Le coût de cette opération est : 20 (100) = 2 000 USD
L’entrepôt (E3), dont la demande est de 300 casiers sera totalement alimenté par
l’usine U3.
Le coût de cette opération est : 15 (300) = 4 500 USD
L’entrepôt (E4), dont la demande est de 500 casiers sera totalement alimenté par
l’usine U1.
Le coût de cette opération est : 14 (500) = 7 000 USD
Ainsi, le coût de transport pour les trajets retenus est de :
C = 64 (500) + 37 (100) + 25 (100) + 20 (100) + 15 (300) + 14 (500) = 51 700 USD.
5.2.3. Algorithme Primal–Dual et Test d’optimalité
Les calculs nécessités par l’algorithme de stepping-stone sont très simples, mais ils
peuvent être très nombreux lorsque l’on a affaire à des problèmes de grande dimension.
L’algorithme Primal-dual permet de repérer plus facilement le trajet le plus intéressant à
introduire à chaque étape de calcul. Il fournit également un test d’optimalité.
Cette méthode est basée sur l’utilisation des contraintes duales. Après avoir trouvé
une solution de base initiale, on ajoute à la matrice des coûts une ligne V i et une colonne wj.
Pour les trajets actuellement utilisés, la relation suivante est respectée :
vi + wj ≤ cij
6
Seul ∆31 est négatif (25 + 20 – 37 – 14 = -6). Dans ce cas, on réduit de 100 unités les quantités envoyées par les
trajets 21 et 32 au profit des trajets 22 et 31. Le coût global de transport est diminué de -600 USD (-6 USD x
100), après itération. La solution est ainsi améliorée de (52 300 – 600), soit un coût minimal de 51 700 USD
associé à la nouvelle solution. C’est l’optimum.
91
Les valeurs vi et wj sont ainsi évaluées à partir des trajets utilisés, puis appliquées aux
trajets non encore utilisés (les cases vides). A chaque étape, on introduit le trajet pour lequel
l’indice d’évaluation ∆ij = vi + wj – cij est le plus grand possible. La solution optimale est
obtenue lorsque tous les ∆ij sont négatifs ou nuls.
Si nous repartons de la première solution de base obtenue par la méthode du coin
nord-sud, les valeurs vi et wj sont déterminées à l’aide du système d’équations :
v1 + w1 ≤ 64 v2 + w3 ≤ 48
v1 + w2 ≤ 50 v2 + w4 ≤ 24
v1 + w3 ≤ 77 v3 + w4 ≤ 48
L’application de ces valeurs aux trajets inutilisés donne les résultats suivants :
∆14 = v1 + w4 – c14 = 0 + 53 – 14 = 39
∆21 = v2 + w1 – c21 = -29 + 64 – 37 = -2
∆22 = v2 + w2 – c22 = -29 + 50 – 20 = 1
∆31 = v3 + w1 – c31 = -5 + 64 – 25 = 34
∆32 = v3 + w2 – c32 = -5 + 50 – 14 = 31
∆33 = v3 + w3 – c33 = -5 + 77 – 15 = 57
Le trajet le plus intéressant s’avère le trajet 33, qu’il faut introduire dans la nouvelle
solution de base. Cette nouvelle base est obtenue de la même manière que dans
l’algorithme de stepping-stone.
Notons que l’avantage de cette méthode est de limiter le nombre d’itération dans la
procédure itérative de stepping-stone. Pour le dernier tableau fourni par l’algorithme de
stepping-stone, les indices d’évaluation sont les suivants :
∆12 = v1 + w2 – c12 = 0 + 47 – 50 = -3
∆13 = v1 + w3 – c13 = 0 + 54 – 77 = -23
∆23 = v2 + w3 – c23 = -27 + 54 – 48 = -21
∆24 = v2 + w4 – c24 = -27 + 14 – 24 = -37
∆32 = v3 + w2 – c32 = -39 + 47 – 14 = -6
∆34 = v3 + w4 – c34 = -39 + 14 – 48 = -73
Le processus s’arrête donc à ce niveau, et c’est la solution optimale.
Notons que pour réduire le nombre d’itération et éviter une partie de calcul, surtout
pour des problèmes de grande dimension, il est important de déterminer dès le départ une
solution de base initiale la plus proche possible de l’optimum.
5.2.3. Résolution des problèmes particuliers : Inégalité Offre-Demande et Dégénérescence
Les méthodes examinées ci-haut garantissent la détermination d’une solution
optimale en cas d’égalité entre l’offre et la demande. En général, cette égalité n’est toujours
pas assurée. D’où la nécessité d’envisager l’adaptation des procédures à ce type de situation.
92
Il s’agit particulièrement du cas de l’inégalité entre l’offre et la demande et du phénomène
de dégénérescence, caractérisé par un nombre de variables positive inférieur au nombre de
contrainte.
5.2.3.1. Cas d’inégalité entre l’offre et la demande
Lorsque la somme de capacité q i est différente de la somme des demandes d j, la
technique à utiliser consiste à revenir au cas d’égalité par introduction d’une capacité fictive
ou d’une demande fictive selon le cas. Cela revient à l’ajoute d’une ligne fictive lorsque la
demande est supérieure à l’offre, et d’une colonne fictive dans le cas contraire. Les c ij
correspondant aux éléments de cette nouvelle rangée seront très grands si le total des
demandes est supérieur ou égale à celui des disponibilités et nuls dans le cas contraire.
Supposons, par exemple, que le problème de la société BRALIMA les données soient
les suivantes :
- Capacités de production : q1 = 1 000 ; q2 = 200 et q3 = 500 ;
- Demandes des entrepôts : d1 = 700 ; d2 = 100 ; d3 = 300 et d4 = 500
La capacité totale étant supérieure à la demande, une partie de la capacité de
production restera donc inutilisée. La résolution du problème permet de déterminer dans
quelle unité elle se situera.
Le principe de la méthode est appliqué, en réaménageant le tableau des coûts (en
USD) et des contraintes comme suit :
Tableau 5.3. Inégalité entre l’offre et la demande : tableau de coût unitaire affecté des
contraintes
E1 E2 E3 E4 Ef qi
U1 64 50 77 14 - 1 000
U2 37 20 48 24 - 200
U3 25 14 15 48 - 500
Tableau 5.3. Application de l’Algorithme de stepping-stone : Base initiale (a) obtenue par la
méthode de coût minimum
a) E1 E2 E3 E4 Ef qi
U2 200 0 0 0 0 200
93
L’évaluation des cases vide indique que seul l’indice d’évaluation ∆ 22 (20 + 25 – 37 –
14 = -6) est négatif. Dans ce cas, on réduit de 100 unités les quantités envoyées par les
trajets 21 et 32 au profit des trajets 22 et 31. Le nouveau tableau se présente comme suit :
b) E1 E2 E3 E4 Ef qi
E1 E2 E3 qi
U1 4 3 5 19
U2 3 1 6 31
50
dj 12 13 15 40
Solution
Comme la capacité totale est supérieure à la demande, on ajoute une colonne fictive
pour rétablir l’équilibre. L’application de l’algorithme de stepping-stone donne le résultat
suivant :
a) Réaménagement du tableau (étape 1)
E1 E2 E3 Ef qi
U1 4 3 5 - 19
U2 3 1 6 - 31
94
dj 12 13 15 10 50
E1 E2 E3 Ef qi
U1 0 0 15 4 19
U2 12 13 0 6 31
dj 12 13 15 10 50
E1 E2 E3 qi
U1 4 2 5 19
U2 3 1 6 16
35
dj 12 13 15 40
Solution
Comme la capacité totale est inférieure à la demande, on ajoute une ligne fictive
pour rétablir l’équilibre. L’application de l’algorithme de stepping-stone donne le résultat
suivant :
a) Réaménagement du tableau
E1 E2 E3 qi
U1 4 2 5 19
U2 3 1 6 16
95
Uf - - - 5
dj 12 13 15 40
E1 E2 E3 qi
U1 9 0 10 19
U2 3 13 0 16
Uf 0 0 5 5
dj 12 13 15 50
E1 E2 E3 E4 E5 E6 qi
U1 9 12 9 6 9 10 7
U2 6 8 9 11 3 11 6
96
U3 7 3 11 2 3 10 8
U4 6 8 7 10 3 5 10
U5 5 6 9 2 7 3 8
dj 9 6 7 8 4 5 39
Solution
La méthode MINILI donne le résultat suivant :.
E1 E2 E3 E4 E5 E6 qi
U1 0 0 0 7 0 0 7
U2 1 0 1 0 4 0 6
U3 0 6 1 1 0 0 8
U4 0 0 5 0 0 5 10
U5 8 0 0 0 0 0 8
dj 9 6 7 8 4 5 39
E1 E2 E3 E4 E5 E6 qi
U1 0 0 0 6 0 1 7
U2 1 0 0 0 4 1 6
U3 0 6 0 2 0 0 8
U4 0 0 7 0 0 3 10
U5 8 0 0 0 0 0 8
dj 9 6 7 8 4 5 39
E1 E2 E3 E4 E5 E6 qi
U1 7 0 0 0 0 0 7
U2 2 4 0 0 0 0 6
97
U3 0 2 6 0 0 0 8
U4 0 0 1 8 1 0 10
U5 0 0 0 0 3 5 8
dj 9 6 7 8 4 5 39
98
Chapitre 6. PROBLEME DE PRODUCTION, APPROVISIONNEMENT ET COMMERCIALISATION
… … … … … … … … … … … …
1 … … … … … … … … … … …
… 2 … … … … … … … … … … …
… … … … … … … … … … … …
1 Cm111 Cm112 … Cm121 … … … Cm1n1 Cm1n2 … qm1
Um 2 Cm211 Cm212 … Cm221 … … … Cm2n1 Cm2n2 … qm2
… … … … … … … … … … … …
Demande Somme
(dj) … d11 d12 … d21 d22 … … … dn2 …
99
Ainsi, cilji' = Cij + S(l' – l) avec l' ≥ l
Lorsque l ≥ l', cela indique que la demande exprimée à la période l sera satisfaite avec
retard (à la période l), il s’agit donc d’un retard dans l’exécution de la commande pouvant entraîner
des pénalités. Ces pénalités peuvent être incorporées dans le coût de transport.
6.1.2. Formulation mathématique du problème de la production et du stock
Mathématiquement, le problème de production et du stock peut être formulé
comme suit :
Min C =∑ (c ilj j . x ij )
'
'
ilj l
∑ x ilj l ≥ djl''
( ∀ j, j = 1, 2, …, n et ∀ l', l' = 1, 2, …, t) (2)
il
et x ilj l ≥ 0 '
700 1 000
200 100
Total 1 850 2 350
E1 E2 E3
l' = 1 l' = 2 l' = 1 l' = 2 l' = 1 l' = 2
l=1 20 25 15 20 22 27
U1 l=2 ∞ 20 ∞ 15 ∞ 22
l=1 12 19 21 29 23 31
100
U2 l=2 ∞ 12 ∞ 21 ∞ 23
Solution
Les données du problème peuvent être présentées dans le tableau suivant :
E1 E2 E3 qi
l' = 1 l' = 2 l' = 1 l' = 2 l' = 1 l' = 2
l=1 20 25 18 23 21 26 1 200
U1 l=2 ∞ 20 ∞ 18 ∞ 21 1 200
l=1 12 19 15 22 24 31 900
U2 l=2 ∞ 12 ∞ 15 ∞ 24 900
dj 950 1 250 700 1 000 200 100 4 200
Les cases C1112, C1122 et C1132 correspondent aux produits fabriqués par l’usine 1 à la
période 1 et vendus aux entités E 1, E2 et E3 à la période 2. Ce qui entraîne un coût de
stockage de 5.
De même, les cases C2112, C2132 et C2122 correspondent aux produits fabriqués par
l’usine 2 à la période 1 et vendus aux entités E 1, E2 et E3 à la période 2. Ce qui entraîne un
coût de stockage de 7.
Les cases C1211, C1221 et C1231 représentent les produits fabriqués par l’usine 1 à la
période 2 pour satisfaire les demandes exprimées par les entités E 1, E2 et E3 à la période 1.
Cela entraîne un retard dans l’exécution de la commande dont le coût est infini.
L’application de la règle MINITAB aux données ci-dessus donne le résultat suivant :
E1 E2 E3 qi
l' = 1 l' = 2 l' = 1 l' = 2 l' = 1 l' = 2
l=1 50 150 700 0 200 100 1 200
U1
l=2 0 200 0 1 000 0 0 1 200
On commence par affecter 900 unités à la case C 2111 et C2212 dont le coût
d’approvisionnement correspondant s’élève à 12. Cette affectation a pour effet de saturer
les lignes 3 et 4. La même opération est reprise pour les cases C 1121 et C1222 avec les
affectations respectives de 700 et 1 000. Ceci a pour effet de saturer les colonnes 3 et 4. La
procédure est poursuivie jusqu’à la saturation de toutes les contraintes.
Le coût total du programme de production et des stocks s’élève à :
C = 50 (20) + 900 (12) + 150 (25) + 200 (20) + 900 (12) + 700 (18) + 1000 (18) + 200 (21) + 100 (26)
= 67 750 UM.
6.2. Programmation des activités de production, transport et commercialisation
101
Lorsque l’entreprise veut maximiser le profit, il est implicitement admis qu’elle a intérêt à
produire, distribuer et vendre les quantités optimales des produits en question. La programmation
simultanée des activités de production, de transport et de commercialisation va permettre de
déterminer pour chaque période :
- Le niveau d’activité de chaque unité de production, dont la capacité installée est
connue ;
- Le niveau de satisfaction de chaque marché dont la demande est connue ;
- Le niveau d’approvisionnement de chacun de marché, à partit des unités de
production existantes.
Deux éléments sont nouveaux par rapport au problème traditionnel de transport : le
niveau d’activité de chaque unité de production et le niveau d’absorption des entrepôts sont
des inconnues. Ce sont des variables dont il faut déterminer dans le but de maximiser le
bénéfice de l’entreprise.
6.2.1. Formulation du modèle
La structure du modèle est la suivante :
Soit Pi le prix auquel le produit peut être écoulé sur le marché j, c i le coût de
production dans l’unité i et cij, le coût de transport entre l’usine Ui et l’entrepôt Ej. Dans ces
conditions, le bénéfice dégagé par une unité de produit fabriquée par l’usine U i et vendu à
l’entrepôt Ej s’écrit :
Bij = Pj – ci – cij
Ces bénéfices unitaires représentent les coefficients économiques dont il faut en
tenir compte dans le programme de maximisation. Ce programme se présente comme suit :
Max B = ∑ ∑ (¿ Bij . x ij )¿
i j
∑ x ij ≤ qi ( ∀ i, i = 1, 2, …, m) (2)
j
et x ij ≥ 0
6.2.2. Résolution du modèle
Les techniques de résolution sont facilement convertible : la technique de coût
minimal (règle MINITAB) est remplacée par celle de bénéfice maximal (ou règle MAXITAB).
Les étapes de la méthode sont les suivantes :
- Repérer la case dont le profit unitaire est le plus élevé et y placer le maximum
d’unités possibles. Si deux cases ont le même profit, on remplit d’abord celle qui
peut absorber le plus d’unités ;
- Les autres cases sont progressivement remplies en affectant le maximum d’unités
possibles à la case suivante ayant le profit le plus élevé ;
- Répéter l’opération jusqu’à la saturation de toutes les contraintes.
E1 E2 E3 E4
U1 64 50 77 14
102
U2 37 20 48 24
U3 25 14 15 48
Tableau 6b)
Coût de production Prix de vente
U1 : 1 000 UM/Unité E1 : 1 200 UM/Unité
U1 : 1 100 UM/Unité E2 : 1 150 UM/Unité
U1 : 950 UM/Unité E3 : 1 000 UM/Unité
E4 : 1 100 UM/Unité
De la formule Bij = Pj – ci – cij, l’on dégage le tableau 6c) de profit unitaire comme
suit :
B11 = 1 200 – 1 000 – 64 = 136
B12 = 1 150 – 1 000 – 50 = 100
B21 = 1 200 – 1 100 – 37 = 63 ; …
B34 = 1 100 – 950 – 48 = 102
Tableau 6c) : Coefficients économiques (Bénéfice unitaire)
E1 E2 E3 E4 Ci
U1 136 100 -77 86 1 000
U2 63 30 -148 -24 1 100
U3 225 186 35 102 950
Pj 1 200 1 150 1 000 1 100
103
Le test d’optimalité, pour le problème à maximisation, indique que l’optimum est
atteint lorsque tous les indices d’évaluation (∆ij) sont négatifs. L’application de ce test à la
solution de base trouvée donne :
∆32 = (186 + 136) – (225 + 100) = -3 < 0
∆34 = (102 + 136) – (225 + 86) = -73 < 0
La solution trouvée est donc optimale. Le bénéfice maximum de l’entreprise CAE est :
BMax = 300 (136) + 400 (225) + 100 (100) + 500 (86) = 183 800 UM.
104
Chapitre 7. PROBLEME D’AFFECTATION
{
' '
x i , j= 1 , sil activité est exécuté par l entité j
0 , autrement
Mathématiquement, le problème d’affectation peut être formulé comme suit :
Min C = ∑ ∑ ¿ ¿ ¿)
S/C ∑ x ij ¿ 1 ( ∀j, j = 1, 2, …, n) (1)
i
∑ x ij ¿ 1 ( ∀ i, i = 1, 2, …, n) (2)
j
La contrainte (1) exprime qu’il n’y a que « 1 » par colonne ; et la contrainte (2)
exprime qu’il n’y a que « 1 » par ligne.
7.3. Résolution du problème d’affectation
Il existe plusieurs techniques pour la résolution du problème d’affectation dont la
plus populaire et la plus rapide est la méthode hongroise7 (ou l’algorithme de Kuhn).
Cette méthode tire ses racines d’une propriété fondamentale de la matrice des coûts
dans le problème d’affectation. Cette propriété stipule que si l’on diminue (ou augmente)
d’une même quantité δ tous les éléments d’une même ligne (ou d’une même colonne) du
tableau des coûts, le problème d’affectation optimal des ressources ne change pas.
7
Cette méthode est ainsi appelée en souvenir aux mathématiciens hongrois Egervary et König qui en ont
formalisée.
105
En particulier, si une certaine activité (A i) est moins coûteuse qu’une autre (A j), elle
serait également moins couteuse si tous les chiffres d’une quelconque colonne du tableau
des coûts étaient réduits de la même constante w j. De même, si une certaine entité (E i) est
moins chère qu’une autre (Ei), elle serait également moins chère si tous les chiffres d’une
quelconque ligne du tableau étaient réduits de la même constante v i.
Ainsi, si une constante vi est déduite de chaque ligne i du tableau, et une constante w j
de chaque colonne j, ce qui fait apparaître un coût « relatif » cij – vi – wj, le classement de
différentes affectations ne sera pas modifié.
L’application de la méthode hongroise nécessite, d’abord, la transformation du
tableau des coûts de manière à obtenir une première solution de base (apparition des
zéros). Cette solution est progressivement améliorée par itérations successives.
Etape 1. Obtention des zéros
La première étape consiste à faire apparaître des zéros dans la matrice des coûts en
se servant de la propriété ci-haut évoquée :
A tous les éléments d’une ligne, on enlève le plus petit élément de la ligne, on
obtient ainsi un tableau contenant au moins un zéro par ligne;
A partir du tableau obtenu, on enlève le plus petit élément de la colonne, on
obtient un tableau des coûts relatifs sur lequel l’on se doit d’appliquer le test
d’optimalité.
Etape 2. Test d’optimalité
Le test d’optimalité stipule que le nombre maximum de contrats pouvant bénéficier
simultanément d’un coût relatif nul est donné par le nombre minimum de lignes nécessaires
pour rayer tous les zéros du tableau des coûts relatifs.
Ce test est basé sur le théorème de König qui stipule que « si les éléments d’une
matrice sont de deux sortes, ceux qui possèdent la propriété R et ceux qui ne la possèdent
pas, le nombre minimal de rangées (lignes et colonnes) contenant tous les éléments de la
propriété R est égale au nombre maximal d’éléments de propriété R que l’on peut choisir de
manière que deux éléments ne se trouvent pas dans la même rangée (ligne ou colonne).
L’application de ce test se fait de la manière suivante :
Encerclons un de zéro des colonnes (ou des lignes) qui comporte moins de zéros et
rayons par un trait les zéros qui se trouvent sur la même ligne ou la même colonne
que le zéro encerclé ;
Répéter progressivement l’opération pour les autres lignes (et colonnes) jusqu’à ce
qu’il n’y ait plus de zéros à encercler.
Le nombre de lignes tracés (celles ayant servies à rayer les zéros) équivaut au nombre
maximum de contrats pouvant bénéficier simultanément d’un coût relatif nul.
Etape 3. Réaménagement du tableau et Apparition de nouveaux zéros
Pour procéder à une affectation plus complète, l’on soustrait le nombre minimum
non rayé de l’ensemble des cases du tableau, puis l’on ajoute ce nombre à l’ensemble des
chiffres de chaque ligne rayée puis de chaque colonne rayée. Ceci revient à conserver
identiques les chiffres rayés une fois, et à ajouter ce nombre au chiffres rayés deux fois.
Si l’optimum n’est pas atteint, la technique consiste à faire apparaître de nouveaux
zéros, par itérations successives, jusqu’à ce qu’une affectation à coût relatif nul puisse être
établie. En d’autres termes, la même opération est reconduite avec le nombre minimum non
rayé des tableaux apparaissant aux itérations suivantes, une affectation complète étant
obtenue lorsque les lignes nécessaires pour recouvrir tous les zéros est égale à n.
106
Pour procéder aux affectations, on commence par la ligne ou colonne n’ayant qu’un
seul zéro. Le processus est reconduit progressivement, en veillant sur les contraintes de ligne
et de colonne (∑ x ij =¿ 1).
L’application de la méthode hongroise est illustrée en se servant de l’exemple ci-
dessous.
7.4. Exemple d’application de la méthode hongroise
La société GRADEL, spécialisée en travaux publics, veut sous-traiter les activités de
Remblayage (R), Ponts et chaussés (P), Asphaltage (A), Canalisation (C) et Décoration (D) à
cinq sous-traitants. Pour chaque activité, chaque sous-traitant a fourni un devis dont le coût
(en millions de USD) figure dans le tableau suivant.
Sous-traitants
I II III IV V
R 14 10 8 5 11
P 8 7 16 10 9
Activités
A 11 5 10 4 12
C 14 17 10 11 14
D 8 10 4 16 9
A 7 1 6 0 8
C 4 7 0 1 4
D 4 6 0 12 5
A 6 1 6 0 6
C 3 7 0 1 2
D 3 6 0 12 3
107
Le tableau obtenu n’est rien d’autre qu’un tableau des coûts relatifs sur lequel l’on
doit appliquer le test d’optimalité.
Etape 2. Test d’optimalité
Le test d’optimalité stipule que le nombre maximum de contrats pouvant bénéficier
simultanément d’un coût relatif nul est donné par le nombre minimum de lignes nécessaires
pour rayer tous les zéros du tableau des coûts relatifs.
Encerclons un de zéro des colonnes qui comporte moins de zéros et rayons par un
trait les zéros qui se trouvent sur la même ligne ou la même colonne que le zéro
encerclé.
Répéter progressivement l’opération pour les autres lignes jusqu’à ce qu’il n’y ait plus
de zéros à encercler.
Nous obtenons, ainsi, le tableau 5c ci-dessous.
Tableau 5c I II III IV V
R 8 5 3 0 4
P 0 0 9 3 0
A 6 1 6 0 6
C 3 7 0 1 2
D 3 6 0 12 3
L’observation de ce tableau indique que 3 lignes sont nécessaires pour rayer tous les
zéros du tableau des coûts relatifs. Ainsi, seuls trois contrats (IP, IIIC et IVR) peuvent
bénéficier simultanément d’un coût relatif nul.
Comme l’optimum n’est pas atteint, le tableau 5c doit être réaménagé ; c’est la
troisième étape.
Etape 3. Réaménagement du tableau et Apparition de nouveaux zéros
Pour procéder à une affectation plus complète, l’on soustrait le nombre minimum
non rayé de l’ensemble des cases du tableau, puis l’on ajoute ce nombre à l’ensemble des
chiffres de chaque ligne rayée puis de chaque colonne rayée. Ce nombre minimum étant 1,
l’on obtient, ainsi, le tableau réaménagé suivant sur lequel portera le nouveau test
d’optimalité :
Tableau 5d I II III IV V
R 7 4 3 0 3
P 0 0 10 4 0
A 5 0 6 0 5
C 2 6 0 1 1
D 2 5 0 12 2
L’observation du tableau 5d indique que 4 lignes sont nécessaires pour rayer tous les
zéros du tableau des coûts relatifs. Ainsi, seuls quatre contrats (IP, IIIC et IVR) peuvent
maintenant bénéficier simultanément d’un coût relatif nul.
Comme l’optimum n’est pas encore atteint, la même opération (étape 3) est
reconduite avec le nouveau chiffre minimum non rayé. Ce chiffre est 1 ; ce qui donne le
tableau suivant :
Tableau 5e I II III IV V
R 6 4 3 0 2
108
P 0 1 11 5 0
A 4 0 6 0 4
C 1 6 0 1 0
D 1 5 0 12 1
Le test d’optimalité indique que 5 lignes recouvrent tous les zéros. C’est l’optimum.:
Cette dernière itération montre que l’optimum est atteint. Pour procéder aux
affectations, on commence par la ligne R, la colonne I er la ligne II qui ne contiennent qu’un
seul zéro. Le processus est reconduit pour arriver à la solution : RIV, PI, AII, CV et DIII.
Cette solution peut donc se présenter comme dans le tableau 5f suivant, dans lequel
n’apparaissent que des 1 et 0 ; les 1 indiquant l’affectation des sous-traitants aux activités
associées.
Tableau 5f Sous-traitants
I II III IV V
R 0 0 0 1 0
P 1 0 0 0 0
Activités
A 0 1 0 0 0
C 0 0 0 0 1
D 0 0 1 0 0
A 3 0 6 0 3
C 6 12 6 7 5
D 0 5 0 12 0
109
Déduisons, ensuite, de chaque ligne de ce nouveau tableau le chiffre minimum qui y
figure : les chiffres minimum des lignes 1 à 5 sont respectivement 1, 0, 0, 5 et 0. Nous
obtenons ainsi le tableau 5h ci-dessous.
Tableau 5h Sous-traitants
I II III IV V
R 5 4 3 0 1
P 0 2 12 6 0
Activités
A 3 0 6 0 3
C 1 7 1 2 0
D 0 5 0 12 0
On observe que cinq lignes sont nécessaires pour recouvrir tous les zéros. L’optimum
est atteint en une seule itération. L’affectation optimale est la même que celle obtenue
précédemment :
Sous-traitants
I II III IV V
R 0 0 0 1 0
P 1 0 0 0 1
Activités
A 0 1 0 0 0
C 0 0 0 0 0
D 0 0 1 0 0
S 03 17 04 10 09
E 06 06 08 07 16
R 11 02 16 16 11
A 18 15 03 12 09
Quelle est la meilleure affectation possible dans le sens d’optimiser la qualité des
enseignements ?
Solution
Il s’agit d’un problème de maximisation où les notes du tableau sont considérés
comme les rendements (ou gains) attendus par l’ISPALE dans la transmission des
connaissances.
Etape 1. Transformation préalable du tableau
a) Professeurs a) Professeurs
I II III IV V I II III IV V
M -15 -9 -7 -8 -2 M 3 9 11 10 16
S -3 -17 -4 -10 -9 S 15 1 14 8 9
Matières
Matières
E -6 -6 -8 -7 -16 E 12 12 10 11 2
R -11 -2 -16 -16 -11 R 7 16 2 2 7
A -18 -15 -3 -12 -9 A 0 3 15 6 9
Tableau obtenu en multipliant tous les chiffres par -1 Tableau obtenu en soustrayant tous les chiffres par 18
b) Professeurs c) Professeurs
I II III IV V I II III IV V
M 0 6 8 7 13 M 0 6 8 7 13
S 14 0 13 7 8 S 14 0 13 7 8
Matières
Matières
E 10 10 8 9 0 E 10 10 8 9 0
R 5 14 0 0 5 R 5 14 0 0 5
A 0 3 15 6 9 A 0 3 15 6 9
Les zéros sont obtenus en commençant par les lignes Test d’optimalité
L’observation du tableau indique que seules 4 lignes sont nécessaires pour recouvrir
tous les zéros. L’optimum n’est pas atteint et l’on passe à l’étape suivante.
Etape 3. Réaménagement du tableau et Nouveau test d’optimalité
d) Professeurs e) Professeurs
I II III IV V I II III IV V
M 0 3 5 4 10 M 0 3 5 4 10
Matières
Matières
S 17 0 13 7 8 S 17 0 13 7 8
E 13 10 8 9 0 E 13 10 8 9 0
R 8 14 0 0 5 R 8 14 0 0 5
A 0 0 12 3 6 A 0 0 12 3 6
111
Tableau réaménagé : le plus petit nombre ajusté est 3 Nouveau test d’optimalité : 4 lignes recouvrent les 0
Le test d’optimalité renseigne que l’optimum n’est pas encore atteint. On continue la
procédure en réaménageant le nouveau tableau.
Etape 3. Poursuite de l’itération jusqu’à l’optimum
f) Professeurs g) Professeurs
I II III IV V I II III IV V
M 0 3 2 1 7 M 0 3 2 1 7
S 17 0 10 4 5 S 17 0 10 4 5
Matières
Matières
E 16 13 8 9 0 E 16 13 8 9 0
R 11 17 0 0 5 R 11 17 0 0 5
A 0 0 9 0 3 A 0 0 9 0 3
Tableau réaménagé : le plus petit nombre ajusté est 3 Nouveau test d’optimalité : 5 lignes recouvrent les 0
Le test d’optimalité renseigne que l’optimum est atteint. La solution optimale a été
trouvée en commençant par les lignes et colonnes ayant un seul zéro, soit : MI, SII, EV, RIII et
AIV. Ainsi,
Le cours de Mathématiques (M) doit être attribué à I, avec un rendement de 15 ;
Le cours de statistique (S) doit être attribué à II, le rendement attendu est de 17 ;
Le cours de Econométrie (E) doit être attribué à V, avec un rendement de 16 ;
Le cours de Recherche opérationnelle (R) doit être attribué à III, le rendement
attendu est de 16 ;
Le cours d’Analyse des Projets (A) doit être attribué à IV, le rendement attendu est de
12.
7.6. Cas particulier du problème d’affectation : nombre d’activités inférieur au nombre
d’entités (matrice rectangulaire)
Il peut y arriver que le nombre d’activités soient inférieures aux disponibilités et vice-
versant. Dans ce cas, la matrice des coûts (profits) n’est plus carrée mais rectangulaire.
L’application de la méthode hongroise requiert, d’abord, la transformation de la matrice
rectangulaire en une matrice carrée par l’introduction des activités (lignes) ou des entités
(colonnes) fictives.
Ce cas est illustré en se servant de l’exemple ci-après.
Exemple
Quatre postes (A, B, C et D) sont disponibles dans quatre succursales d’une entreprise
multinationale. Cinq personnes-ressources (V, W, X, Y et Z), installées dans cinq pays
différents, disposent des mêmes compétences pour occuper ces postes. Le Directeur
Manager veut minimiser les coûts d’affectation (billets d’avion, …) dans les différents postes
de travail et qui se présentent dans le tableau suivant.
V W X Y Z
A 8 26 17 11 20
B 13 28 4 26 12
C 38 19 18 15 6
D 19 26 24 10 15
Solution
La première chose à faire est celle qui consiste à introduire une activité fictive F,
caractérisé par un coût d’affectation nul. On obtient ainsi la matrice carrée suivante.
112
a) V W X Y Z
A 8 26 17 11 20
B 13 28 4 26 12
C 38 19 18 15 6
D 19 26 24 10 15
F 0 0 0 0 0
Postes vacants
B 9 24 0 22 8 B 9 24 0 22 8
C 32 13 12 9 0 C 32 13 12 9 0
D 9 18 14 0 5 D 9 18 14 0 5
F 0 0 0 0 0 F 0 0 0 0 0
Matrice des coûts relatifs. Les plus petits nombres Test d’optimalité : 5 lignes sont nécessaires pour
des lignes sont, respectivement : 8, 4, 6, 10 et 0 recouvrir tous les zéros
L’observation du tableau indique que l’optimum est atteint en une seule itération. Le
tableau d’affectation rationnelle des personnes-ressources est :
d) V W X Y Z
A 1 0 0 0 0
B 0 0 1 0 0
C 0 0 0 0 1
D 0 0 0 1 0
F 0 1 0 0 0
7.6. Exercices
Ex.1. Le gouvernement congolais veut affecter cinq grues situées dans les villes A, B, C, D
et E dans cinq chantiers localisés dans les villes I, II, III, IV et V. Le tableau suivant donne le
nombre de jours que prendrait le déplacement de chacune de grues d’une ville à une autre.
Ville destination
I II III IV V
A 18 15 9 6 12
Ville origine
B 16 17 11 5 11
C 12 16 15 11 6
D 5 8 14 18 13
E 13 10 8 12 18
Si le gouvernement veut démarrer le plus vite possible les travaux dans les différents
chantiers, quelle est la meilleure affectation possible ?
Ex.2. Une entreprise désire procéder à une affectation de cinq ouvriers A, B, C, D et E à cinq
postes vacants V, W, X, Y et Z. Ces ouvriers, désirant maximiser leur satisfaction, décide
d’effectuer cacun un classement des postes offerts. Le tableau suivant regroupe leurs avis.
Postes
113
V W X Y Z
A 1 2 3 4 5
B 1 4 2 5 3
Ouvriers
C 3 2 1 5 4
D 1 2 3 5 4
E 2 1 4 3 5
Quelle est la meilleure affectation possible ?
Solutions
Ex.1. Il s’agit d’un problème d’affectation optimale des ressources (grues) disponibles. En
d’autres termes, le problème du gouvernement est celui de rendre minimal la durée de
l’exécution des travaux dans les différents chantiers.
L’application de la méthode hongroise amène à considérer les étapes suivantes.
Etape 1. Obtention des zéros
Déduisons de chaque colonne le chiffre minimum qui y figure et répétons la même
opération pour les lignes. Nous obtenons ainsi le tableau a) ci-dessous.
a) Ville destination b) Ville destination
I II III IV V I II III IV V
A 13 7 1 1 6 A 12 6 0 0 5
B 11 9 3 0 5 B 11 9 3 0 5
Ville origine
Ville origine
C 7 8 7 6 0 C 7 8 7 6 0
D 0 0 6 13 7 D 0 0 6 13 7
E 8 2 0 6 12 E 8 2 0 6 12
Les plus petits nombres des colonnes retranchés Les plus petits nombres des lignes retranchés sont,
sont, respectivement : 5, 8, 9, 5 et 6 respectivement : 1, 0, 0, 0 et 0.
Nous obtenons ainsi le tableau des coûts relatifs.
Etape 2. Test d’optimalité et Réaménagement du tableau
c) Ville destination d) Ville destination
I II III IV V I II III IV V
A 12 6 0 0 5 A 10 4 0 0 3
B 11 9 3 0 5 B 9 7 3 0 3
Ville origine
Ville origine
C 7 8 7 6 0 C 7 8 9 8 0
D 0 0 6 13 7 D 0 0 8 15 7
E 8 2 0 6 12 E 6 0 0 6 10
4 lignes sont nécessaires pour rayer tous les zéros du Tableau réaménagé en ajoutant ou en retranchant 2,
tableau. L’optimum n’est pas atteint. suivant le cas.
L’observation du tableau d) indique que cinq lignes sont maintenant nécessaires pour
recouvrir tous les zéros. C’est l’optimum. Cette solution a été trouvée, en commençant par
les lignes et colonnes ayant moins de zéros, comme suit : DI, BIV, CV, AIII et EII.
La solution peut donc se présenter comme dans le tableau suivant.
d) I II III IV V
A 0 0 1 0 0
B 0 0 0 1 0
C 0 0 0 0 1
D 1 0 0 0 0
E 0 1 0 0 0
Méthode alternative
Nous résolvons le même exercice en considérant, cette fois-ci, l’apparition des zéros
dans les lignes comme point de départ.
Ville origine
C 6 10 9 5 0 C 6 8 9 5 0
D 0 3 9 13 8 D 0 1 9 13 8
E 5 2 0 4 10 E 5 0 0 4 10
Les chiffres minimum des lignes 1 à 5 sont Les chiffres minimum des colonnes 1 à 5 sont
respectivement 6, 5, 6, 5 et 8 respectivement 0, 2, 0, 0 et 0.
Le tableau b) indique que 4 lignes sont nécessaires pour rayer tous les zéros du
tableau. L’optimum n’étant pas atteint, ceci nous amène à réaménager le tableau.
Soustrayons le nombre minimum non rayé (3) de l’ensemble des cases du tableau,
puis ajoutons-le à l’ensemble des chiffres de chaque ligne rayée puis de chaque colonne
rayée. L’on obtient, ainsi, le tableau réaménagé suivant :
Ville origine
C 6 8 9 8 0 C 6 8 9 8 0
D 0 1 9 16 8 D 0 1 9 16 8
E 5 0 0 7 10 E 5 0 0 7 10
Le nombre minimum soustrait et ajouté est 3. Les chiffres minimum des colonnes 1 à 5 sont
respectivement 0, 2, 0, 0 et 0.
115
L’observation de ce tableau indique que cinq lignes sont maintenant nécessaires pour
recouvrir tous les zéros. C’est l’optimum. Cette solution peut donc se présenter comme dans
le tableau suivant.
d) I II III IV V
A 0 0 1 0 0
B 0 0 0 1 0
C 0 0 0 0 1
D 1 0 0 0 0
E 0 1 0 0 0
Ex.2. Maximiser la satisfaction des ouvriers revient à choisir le chiffre minimum pour chacun
d’eux, compte tenu de la contrainte Demande/Disponibilité. Cela est identique au problème
de minimisation des coûts, le chiffre 1 indiquant un poste préféré et 5 le moins désiré.
Etape 1. Obtention des zéros et Test d’optimalité
a) Postes b) Postes
V W X Y Z I II III IV V
A 0 1 2 3 4 A 0 1 2 1 2
B 0 3 1 4 2 B 0 3 1 2 0
Ouvriers
C 2 1 0 4 3 C 2 Ouvriers
1 0 2 1
D 0 1 2 4 3 D 0 1 2 2 1
E 1 0 3 2 4 E 1 0 3 0 2
Les plus petits nombres de chaque ligne est 1. On le Les plus petits nombres des colonnes retranchés sont,
retranche dans chaque ligne du tableau. respectivement : 0, 0, 0, 2 et 2.
Quatre lignes seulement sont nécessites pour recouvrir tous les zéros. L’optimum
n’est pas atteint et l’on passe à l’itération suivante
Etape 2. Réaménagement du tableau et nouveau test d’optimalité
L’observation du tableau c) indique qu’il y a trois manières différentes d’arriver à
l’optimum. Les tableaux d), e) et f) donnent trois solutions optimales équivalentes du
problème.
c) Postes d) Postes
V W X Y Z V W X Y Z
A 0 0 1 0 1 A 0 1 0 0 0
B 1 3 1 2 0 B 0 0 0 0 1
Ouvriers
C 3 1 0 2 1 C 0 0 1 0 0
Postes
D 0 0 1 1 0 D 1 0 0 0 0
E 2 0 3 0 2 E 0 0 0 1 0
Réaménagement du tableau : 5 sont nécessaires Solution optimale I : l’optimum est trouvé par la
pour rayer tous les zéros, c’est l’optimum séquence : CX, BZ, DV, AW et EY.
e) Postes f) Postes
V W X Y Z V W X Y Z
A 0 0 0 1 0 A 1 0 0 0 0
B 0 0 0 0 1 B 0 0 0 0 1
Ouvriers
Ouvriers
C 0 0 1 0 0 C 0 0 1 0 0
D 1 0 0 0 0 D 0 1 0 0 0
E 0 1 0 0 0 E 0 0 0 1 0
Solution optimale II : l’optimum est trouvé par la Solution optimale III : l’optimum est trouvé par la
séquence : CX, BZ, DV, AY, et EW. séquence : CX, BZ, EY, AV et DW.
116
Pour trouver la solution optimale, l’on procède de la manière suivante :
(i) CX : la ligne C et la colonne X ne contiennent qu’un seul zéro ;
(ii) BZ : la ligne B ne contient qu’un seul zéro.
Après ces deux affectations, la sous-matrice restante se présente comme suit :
d) V W Y
A 0 0 0
D 0 0 1
E 2 0 0
117
CONCLUSION
La rédaction de cet ouvrage a été motivée par de nombreux échanges avec les
professionnels de la discipline. Tous reconnaissent que la recherche Opérationnelle demeure
l’un des cours le plus indésirables des étudiants et apprenants en Sciences Economiques et
de Gestion. D’une part, le langage utilisé est peu usité dans plusieurs disciplines des sciences
sociales et, d’autre part, les ouvrages à leur disposition manque souvent de clarté et fait
recours à une approche pédagogique utilisant des démonstrations laborieuses et peu
compréhensibles.
Eu égard à de ces difficultés, nous nous sommes résolus d’élaborer ce manuel dans
lequel l’essentiel de ce qu’il est nécessaire de connaitre en Recherche Opérationnelle est
contenu. De nombreux exemples et exercices illustrent les développements théoriques aux
travers des différentes sections. Les solutions aux exercices étant indiquées à chaque étape
de développement théorique, l’étudiant pourrait ainsi parvenir à une bonne assimilation des
concepts et techniques à retenir et un contrôle individuel des connaissances.
En effet, la Recherche Opérationnelle, en tant qu'outil d'analyse et de traitement
systématique de l'information, occupe une place de choix dans la formulation et la mise en
œuvre des décisions crédibles et optimales participant au développement humain durable.
Parmi les causes déterminantes des fluctuations caractérisant les économies
modernes, figure, à n'en point douter, la circulation rapide de l'information. L'analyse et le
traitement de cette dernière revêt une importance cruciale, pour le meilleur et pour le pire.
Pour le meilleur, lorsqu'une exploitation efficiente et optimale de l'information aide à
la prise des décisions idoines contribuant à faire avancer l'agenda de développement des
Nations. Pour le pire, dans le cas où l'exploitation en est hasardeuse, hardie et peu efficiente.
Dans le souci d’apporter notre contribution à la formation des étudiants en Sciences
économiques, cet ouvrage est conçu à la fois comme un instrument de travail et comme un
document de référence.
118