Vous êtes sur la page 1sur 118

Beaujolais BOFOYA KOMBA, Ph.

RECHERCHE OPERATIONNELLE
Cours et Exercices résolus
Préface par le Professeur Vincent NGONGA NZINGA

Avril 2019

1
INTRODUCTION

La Recherche opérationnelle est une discipline carrefour où se rencontrent les


économistes, les mathématiciens et les informaticiens. L’élaboration des schémas
d’intervention (modèles) utilise des ressources conjuguées de l’analyse économique et de la
théorie des systèmes ; elle a besoin aussi des données, fournies par le système informatique
et justiciables de méthodes statistiques.

Plutôt qu’un arsenal de méthodes mathématico-informatiques destiné à


l’optimisation des processus de production et de diffusion des produits, la Recherche
Opérationnelle est l’ensemble des méthodes rationnelles d’analyse et de synthèse des
phénomènes d’organisation utilisables pour élaborer de meilleures décisions.

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, …).

Elle a pour objet la recherche de la solution optimale à un problème de décision, en


mettant en exergue les aspects critiques sur lesquels les responsables focalisent leurs
analyses et les données réelles devant leurs permettre d’assoir leurs opinions (ou
jugements).

Sur le plan strictement chronologique, le terme « Recherche Opérationnelle », en


Anglais « Operational Research », est apparu en Grande-Bretagne en 1938 comme associé à
l’analyse et au traitement rationnel de l’information.
En 1941, en pleine deuxième guerre mondiale et devant les problèmes posés par
l’économie de la guerre, la Grande-Betagne mis en place des équipes multidisciplinaires des
chercheurs (Ingénieurs, Mathématiciens, Economistes, Sociologues, …) pour analyser
scientifiquement les données venant des Etats-majors et d’assurer le lien entre le
commandement supérieur et les organes d’exécution.
Quelques mois plus tard, le même travail s’organisait aux Etats-Unis, à la suite du
Groupe de Manchester réuni autour du Professeur Blackett, pour résoudre les énormes
problèmes d’organisation posés par les opérations militaires. Les questions traitées furent
celles liées à :
- La mise en place de nouveaux moyens de détection des radars ;
- La détermination du maximum d’efficacité de certaines armes ;
- L’organisation des raids aériens ;
- La réduction des pertes militaires ;
- L’organisation rationnelle des transports, et enfin
- L’utilisation efficiente des ressources limitées.

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 :

Vin « Extra » Vin « Super »


x1 x2

Vin de l’Hérault 0.5 0.2

Vin de Bordelais 0.3 0.6

Vin d’Italie 0.2 0.2

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

Le problème de YOANIS consiste dès lors à déterminer les valeurs de x 1 et x2 qui


permettent de maximiser le bénéfice. La fonction-objectif du problème peut s’exprimer
comme suit :

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

 Une seconde catégorie de contraintes concerne la capacité d’absorption


du marché qui s’élève à 20 000 hectolitres pour « Extra » et 16 000
hectolitres pour « Super ». Cette contrainte s’exprimera de la manière
suivante :
x1 ≤ 20 000 et x2 ≤ 16 000
 Etant donné que la capacité d’embouteillage est limitée à 36 000
hectolitres, on définit une nouvelle contrainte comme suit :
x1 + x2 ≤ 36 000
Lorsque toutes les limites ont été traduites en contraintes, il ne reste
qu’à vérifier qu’il n’y a pas de contrainte redondante. Cela se produit lorsque
l’une d’elles peut être déduite d’une ou de plusieurs autres contraintes par
combinaison linéaire. Considérons :
x1 ≤ 20 000 (marché vin Extra)
x2 ≤ 16 000 (marché vin Super)
x1 + x2 ≤ 36 000 (capacité d’installation)
Il est aisé de constater que la dernière est redondante, car la
réalisation des deux premières implique automatiquement le respect de la
troisième.
 Il est nécessaire enfin de mentionner une catégorie particulière de
contrainte, qui n’est rien d’autre que des contraintes de non-négativité ou
contraintes de signes. Cela se traduit par :
x1 ≥0 et x2 ≥ 0
1.2.2. Formulation générale d’un problème de programmation linéaire
De façon générale, le problème de programmation mathématique met en jeu quatre
catégories d’éléments :
- des variables ou activités ;
- des coefficients économiques ;
- des ressources ;
- des coefficients techniques.

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

1 a11 a12 … a1j … a1n

2 a21 a22 … a2j … a2n

⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮

i ai1 ai2 … aij … ain

⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮

m am1 am2 … amj … amn

Un même problème de programmation linéaire peut être traduit sous une forme
canonique ou sous une forme standard.

1.2.2.1. Forme canonique


Elle se caractérise par des contraintes présentées sous la forme d'inéquations. De
façon très générale, le problème de maximisation peut être formulé comme suit :
(1) Max. Z = c1 X1 + c2 X2 + ... + cj Xj + ... + cn Xn
(2) Sous les contraintes :
a11 X1 + a12 X2 + … + a1j Xj + … + a1n Xn ≤ b1
a21 X1 + a22 X2 + … + a2j Xj + … + a2n Xn ≤ b2

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

 Il convient de s’assurer que le système de contrainte est exempt de contrainte


redondante. Une contrainte est dite redondante lorsqu’elle est équivalente à la
combinaison linéaire de plusieurs autres contraintes. Toute contrainte
redondante doit être éliminée.

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 :

Pain Beurre Fromage Chou Poisson

Protéine 10 30 35 5 -

9
Calories 300 1800 800 1500 300

Calcium 50 400 450 750 120

Fer 4 - - 4 15

On voudrait constituer au moindre frais la ration journalière respectant les exigences


de départ. Ecrire le problème sous forme de programme linéaire.
Soient x1, x2, x3, x4 et x5, la quantité (par 100 mg) de pain, beurre, fromage, chou et
poisson que l'on va donner par ration. On aura ainsi le programme suivant :
Min. Z = 3x1 + 7x2 + 7,5x3 + 5x4 + 6x5
Sous les contraintes :
10 x1 + 30 x2 + 35 x3 + 5 x4 ≥ 700
300 x1 + 1 800 x2 + 800 x3 + 1 500 x4 + 300 x5 ≥ 3 000
50 x1 + 400 x2 + 450 x3 + 750 x4 + 120 x5 ≥ 800
4 x1 + 4 x4 + 15 x5 ≥ 12
xj ≥0 (j = 1, 2, …, 5)
1.2.2.2. Forme standard
Certaines techniques de résolution des programmes linéaires nécessitent de
transformer les inégalités subsistant dans les systèmes de contraintes en égalités. On obtient
alors la forme standard du programme linéaire.
La forme standard d’un programme linéaire n’est rien d’autre que la transformation
des inéquations correspondant aux contraintes fonctionnelles en équation. Cette
transformation s’effectue par l’introduction des variables non négatives appelées variables
d'écart, dénommées ei, pour les distinguer des variables réelles x i. D'une manière générale si
le problème comporte m contraintes, il y aura m variables d’écart.
Lorsqu'on introduit des variables d'écart dans toutes les inéquations des systèmes
des contraintes, on obtient un programme linéaire qui contient au total (n + m) variables :
les xj (j = 1, 2, ..., n) auxquelles s’ajoutent les e i (i =1, 2, ..., m). Dans un tel programme
linéaire, on a m contraintes et n + m variables.
L’introduction des variables d’écart permet le passage d’inéquations en équations.
Cependant, il est utile de savoir que certaines techniques de résolution des programmes
linéaires (notamment l'algorithme du simplexe) nécessitent, pour démarrer les itérations,
une première solution de base qui soit admissible.
Ces différents principes sont illustrés par l’exemple de la société Yoanis.
 Forme canonique de la société Yoanis

Max Z(x) = 400 x1 + 500 x2


Sous les contraintes :
0.5 x1 + 0.2 x2 ≤ 13 600

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

 Forme standard de la société Yoanis

Max Z(x) = 400 x1 + 500 x2 + 0 e1 + 0 e2 + 0 e3 + 0 e4 + 0 e5


Sous les contraintes :

0.5 x1 + 0.2 x2 + e1 = 13 600


0.3 x1 + 0.6 x2 + e2 = 12 000
0.2 x1 + 0.2 x2 + e3 = 10 400
x1 + e4 = 20 000
x2 + e5 = 16 000
xi ≥0 et ei ≥0

 Forme matricielle de la société Yoanis

[]
x1
x2
e1
Max Z(x) = [ 400 500 0 0 0 0 0 ] e2
e3
e4
e5

Sous les contraintes :

[]
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

Et sous les contraintes : [ X ] ≥0 et [ E ] ≥0


1.3. Résolution d’un programme linéaire

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.

Sur un système d’axes de coordonnées rectangulaires ne comportant que


des valeurs positives ou nulles, on mesure horizontalement la production
de x1 et verticalement la production de x2 (cfr. graphique 1).
Pour déterminer la frontière imposée par 13 600 hectolitres de vin de
l’Hérault, on raisonne de la façon suivante : si les 13 600 hectolitres
étaient totalement affectés à la production de x 1 (x2 = 0), on pourrait
13 600
produire, toutes choses égales par ailleurs, 27 200 ( ) unités de x1 ; et
0.5
si elles étaient affectées uniquement à la production de x 2 (x1 = 0), on
13 600
produirait 68 000 ( ) unités de x2. En joignant ces deux points, on
0.2
obtient la droite (1) qui est le lieu de toutes les combinaisons de x 1 et x2
pouvant être obtenues avec 13 600 hectolitres de vin de l’Hérault.
De même, pour la droite (2), on obtient les coordonnées (0, 20.000) et
(40.000, 0).

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.

Graphique 3.2. Solution graphique

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.

Il est intéressant de noter que chaque sommet du polyèdre constitue une


solution de base (ici, il y a cinq solution de base : 0, A, B, C et D). La
solution optimale (point B) se trouve parmi les solutions de base.

Les distances entre le point optimal B et les droites associées aux


contraintes (2) et (4) sont nulles. Autrement dit, si dans l’expression des
contraintes (2) et (4), aux variables x 1 et x2 sont substituées leur valeur
respectives (20 000 et 10 000) alors, il y a égalité entre les membres de
gauche et de droite. Les contraintes (2) et (4) sont dites saturées à
l’optimum.

Inversement, les distances entre le point optimal B et les droites associées


aux contraintes (1), (3) et (5) sont non nulles. Ces contraintes sont dites
non saturées à l’optimum.
Si nous considérons la contrainte (1) concernant la ressource en vin de
l’Hérault, par exemple, nous avons la situation suivante à l’optimum :
13 600 – (0.5 x1 + 0.2 x2) = 1 600 .
Cela signifie que si l’Entreprise produit 20 000 hectolitres de vin Extra et
10 000 hectolitres de vin Super, alors il lui restera 1 600 hectolitres de vin
de l’Hérault en stock. La contrainte est donc non saturée.
La méthode graphique est simple mais limitée à des problèmes comportant deux
variables. C’est pourquoi il est nécessaire de maîtriser l’algorithme du simplexe.
1.3.2. Méthode de simplexe
L’algorithme du simplexe est une méthode de résolution générale des programmes
linéaires dont la solution optimale est approchée par étapes ou itérations successives. Une
itération permet le passage d’une solution de base admissible à une solution de base
améliorée.
On appelle solution de base, une solution obtenue en annulant chaque fois n
variables de manière à obtenir un système de Cramer comportant une solution unique
(système de m équations à m variables).
Une solution de base est admissible lorsque toutes les contraintes fonctionnelles et
de non négativité sont respectées. Le tableau ci-dessous donne quelques solutions et leur
nature parmi une infinité se trouvant dans l’ensemble solution (cf. section 1.3.3 pour la
construction de ce tableau).

Solution Valeurs des variables Nature Valeur de Z

0 0 0 13600 12000 10400 2000 16000 SBA Z=0


0
5
Pour obtenir ces coordonnées, on résout un système de deux équations ((équation 2) et (équation 4)) à deux

inconnus ( x1 et x2), soit :


{
0.3 x 1+0.6 x 2=12.000 (droite 2)
x1=20.000(droite 4 )

15
A 20000 0 3600 6000 6400 0 16000 SBA Z=8000000

B* 20000 10000 1600 0 4400 0 6000 SBA Z=13000000

E 10000 0 8600 9000 8400 1000 16000 NSB Z = 4000000


0

D 0 16000 10400 2400 7200 2000 0 SBA Z = 8000000


0

F 5000 10000 9100 4500 7400 1500 6000 NSB Z = 7000000


0

G 10000 25000 3600 -6000 3400 1000 -9000 NSB -


0

H 8000 16000 6400 0 5600 1200 0 SBA Z=11200000


0

SBA = Solution de base admissible SBNA = solution de base non admissible NSB = Non solution de base

1.3.2.1. Principes de base de l’algorithme


Chaque étape de l’algorithme (ou chaque itération) correspond au calcul permettant
d’obtenir la valeur économique d’une solution. La méthode du simplexe n’explorer qu’un
nombre limité de solutions parmi lesquelles se trouve, à coup sûr, la solution optimale.
- Déterminer d’abord une solution de base ;
- Faire subir un test d’optimalité à cette solution de base. Si le test est positif, le
processus s’arrête. Sinon changer de solution de base et reprendre la procédure
jusqu’à la saturation. Chaque changement de solution de base constitue une
itération.

Parmi l’ensemble des solutions admissibles, seules les solutions comportant n


variables nulles sont des solutions de base admissibles (SBA). Pour le cas Yoanis ci-dessus, les
solutions de base comportent deux variables nulles.

Ainsi, toute solution de base comporte deux catégories de variables :


- Des variables ayant une valeur prédéterminée nulle : ces variables nulles sont
dites variables hors base ou exclues. Le nombre de variables hors base est au
moins égal au nombre de variables réelles du problème. Pour le cas Yoanis, En A,
les deux variables hors base sont X2 et e4. En D, c’est X1 et e5
- Des variables ayant une valeur non nulle : ce sont de variables en base ou
retenues. Leur nombre est au plus équivalent au nombre de variables d’écart. En
B, les variables hors base sont : X1, X2, e1, e3 et e5.

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).

(1) → X1 X2 e1 e2 e3 e4 e5 (5) = matrice des


coefficients

(3) (4)↓ 400 500 0 0 0 0 0 ← (2) (6’) ↓ Colonne de calculs


17
e1 0 0,5 0,2 1 0 0 0 0 13 600 13 600/0,2 = 68 000

e2 0 0,3 0,6 0 1 0 0 0 12 000 12 000/0,6 = 20 000

e3 0 0,2 0,2 0 0 1 0 0 10 400 10 400/0,2 = 52 000

e4 0 1 0 0 0 0 1 0 20 000 20 000/0 = ∞

e5 0 0 1 0 0 0 0 1 16 000 ← 16 000/1 = 16 000 (Minimum)

(7)→ 0 0 0 0 0 0 0 (6)↑

(8) Z 400 500 0 0 0 0 0 0


→ ↑ (9)

1.3.3.2. Application de l’algorithme


L’algorithme du simplexe étant un processus itératif, le passage d’un tableau
(solution de base admissible) à un autre (solution de base admissible améliorée) s’opère en
appliquant les règles suivantes :
1°/ Déterminer en colonne la variable qui doit entrer dans la base. Cette valeur
correspond au maximum des éléments de la ligne (8) pour la recherche du
maximum et au coefficient le plus négatif pour la recherche d’un minimum.
2°/ Déterminer en ligne la variable qui doit entrer dans la base. Cette variable est
celle dont la valeur correspond au minimum (resp. maximum) des éléments de la
colonne (6) transformée pour le problème de maximisation (resp. de
minimisation). Cette transformation (6’) s’effectue en divisant, élément par
élément, la colonne (6) et la colonne correspondant à la variable entrant dans la
base. Il est à noter que, pour le problème de maximisation, si la valeur obtenue
dans cette colonne est négative, on la déconsidère.
3°/ A l’intersection de la colonne identifiée en (1°) et de la ligne identifiée en (2°)
figure l’élément pivot (encerclé).
4°/ Modifier la colonne (3) du tableau en remplaçant la variable en ligne avec la
variable entrant dans la base. Les valeurs portées dans la colonne (4) sont celles
reportées dans la ligne (2) du tableau.
5°/ Porter dans le tableau suivant de l’itération les éléments de la matrice (5)
transformé. Cette transformation est réalisée en effectuant les opérations
suivantes :
- diviser les éléments de la ligne du pivot par la valeur du pivot ;
- affecter à chaque variable en base un vecteur colonne unité ;
- appliquer la règle du rectangle aux coefficients des variables hors base
n’appartenant pas à la ligne du pivot. Cette règle est exposée ci-dessous.

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

Pour les autres valeurs, on a :


0.6(1)
-0.6 = 0 –
1
0.2(1)
-0.2 = 0 –
1
0(1)
0 =0–
1
6°/ La colonne (6) du tableau suivant est modifiée en appliquant comme ci-dessus la
« règle du rectangle ».
Dans notre exemple :
0.2(16 000)
10 400 est obtenu en faisant : 13 600 –
1
0.6(16 000)
2 400 est obtenu en faisant : 12 000 –
1
7°/ Effectuer, comme exposé ci-haut, les calculs correspondant aux lignes (7) et
(8), ainsi qu’à la valeur de Z figurant en (9).

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

e2 0 0,3 0,6 0 1 0 0 0 12 000 12 000/0,6 = 20 000

e3 0 0,2 0,2 0 0 1 0 0 10 400 10 400/0,2 = 52 000

e4 0 1 0 0 0 0 1 0 20 000 20 000/0 = ∞

e5 0 0 1 0 0 0 0 1 16 000 16 000/1 = 16 000 ←

0 0 0 0 0 0 0

Z 400 500 0 0 0 0 0 0 ↓ 1e itération

↑ 1e critère

e1 0 0,5 0 1 0 0 0 -0,2 10 400 10 400/0,5 = 20 800



e2 0 0,3 0 0 1 0 0 -0,6 2 400 2 400/0,3 = 8 000

e3 0 0,2 0 0 0 1 0 -0,2 7 200 7 200/0,2 = 36 000

e4 0 1 0 0 0 0 1 0 20 000 20 000/1 = 20 000

X2 500 0 1 0 0 0 0 1 16 000 16 000/0 = ∞

0 500 0 0 0 0 -500

Z 400 0 0 0 0 0 -500 8 000 000 ↓ 2e itération

e1 0 0 0 1 -5/3 0 0 0,8 6 400 6 400/0,8 = 8 000

X1 400 1 0 0 10/3 0 0 -2 8 000 -

e3 0 0 0 0 -2/3 1 0 0,2 5 600 5 600/0,2 = 28 000



e4 0 0 0 0 -10/3 0 1 2 12 000 12 000/2 = 6 000

X2 500 0 1 0 0 0 0 1 16 000 16 000/1 = 16 000

400 500 0 4 000/ 0 0 -300


3

Z 0 0 0 -4 000/ 0 0 300 11 200 ↓ 3e itération


3 000

e1 0 0 0 1 -1/3 0 -0,4 0 1 600 Solution


Optimale
X1 400 1 0 0 0 0 0 0 20 000

e3 0 0 0 0 -1/3 1 -0,1 0 4 400

20
e5 0 0 0 0 -5/3 0 0,5 1 6 000

X2 500 0 1 0 5/3 0 -0,5 0 10 000

400 500 0 2 0 150 0


500/3

Z 0 0 0 -2 500/ 0 -150 0 13 000


3 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

La forme canonique (le primal) du problème est la suivante :


Max Z(x) = 7 x1 + 4 x2
Sous les contraintes :
2 x1 + x2 ≤ 140
x1 + x2 ≤ 104
5 x1 + 3 x2 ≤ 360
xi ≥0 (i = 1, 2).
La forme standard peut s’écrire comme suit :
Max Z(x) = 7 x1 + 4 x2 + 0 e1 + 0 e2 + 0 e3
Sous les contraintes :
2 x1 + x2 + e1 = 140
x1 + x2 + e2 = 104
5 x1 + 3 x2 + e3 = 360
xi ≥0 (i = 1, 2) et ej ≥0 (j = 1, 2, 3)

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.

Solution de base X1 X2 e1 e2 e3 Nature Z

1 0 0 0 140 104 360 A 0

2 0 140 0 -36 -60 NA

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

6 104 0 -68 0 -160 NA

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

A = solution de base admissible NA = solution non admissible

Nous remarquons qu’il existe au total 10 solutions de base ( ∁25). On obtient


immédiatement une première solution de base en posant X 1 = 0 et X2 = 0. Ce sont des
variables hors base. Pour obtenir les valeurs des variables en base (e 1, e2 et e3), il y a lieu de
constater qu’il s’agit d’un système de cramer dont la solution est e 1 = 140, e2 = 104 et
e3 = 360.

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 ←

e2 0 1 1 0 1 0 104 104/1 = 104

e3 0 5 3 0 0 1 360 360/5 = 72

0 0 0 0 0

7 4 0 0 0 Z=0 ↓ 1ère itération

↑ 1e critère

X1 X2 e1 e2 e3

7 4 0 0 0

X1 7 1 1/2 1/2 0 0 70 70/0.5 = 140

e2 0 0 1/2 -1/2 1 0 34 34/0.5 = 68

e3 0 0 1/2 -5/2 0 1 10 10/0.5 = 20 ←

24
7 7/2 7/2 0 0

0 1/2 -7/2 0 0 Z = 490 (B) ↓ 2ème itération


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)

Les éléments de la ligne (9) étant ≤ 0, le processus s’arrête à cette étape.


Solution :
X1 = 60 X2 = 20 e1 = 0 e2 = 24 e3 = 0
Il est aisé de constater que, contrairement à l’algorithme de dénombrement,
l’algorithme du simplexe n’explorer qu’un nombre limité de solutions (ici trois : 0, B et C)
parmi lesquelles se trouve à coup sûr la solution optimale (C).
L’analyse économique des résultats conduit au constat ci-après :
 e1 = 0 indique que la contrainte 1 est saturée. En d’autres termes, toutes
les 140 heures consacrées à l’Assemblage dans l’entreprise sont
totalement utilisées.
 e2 = 24 indique que les heures consacrées au polissage ne sont pas
totalement utilisées. L’entreprise dispose encore d’un stock de 24 heures.
∆Z
 = -1. Cela signifie qu’une perte d’une heure dans l’assemblage
∆ e1
occasionnerait un manque à gagner ∆Z = -1. Il appartient donc à Milca
d’être rigoureuse dans l’activité d’Assemblage dont les heures y
consacrées s’avèrent précieuses. Il est de même pour l’activité
∆Z
d’Emballage, car = -1.
∆ e3
Exercice 2
La société GRACE produit 2 types de bières : la Blonde et le Brune. Ces bières sont
obtenues par la combinaison de trois inputs : la maïs, le houblon et le malt.
Le mélange des inputs est réalisé de manière suivante :

25
La Blonde La Brune
X1 X2

Maïs 2.5 kg 7.5 kg

Houblon 0.125 kg 0.125 kg

Malt 17.5 kg 10 kg

La lecture du tableau indique que, pour fabriquer un tonneau de bière « Blonde », il


faut 2.5 kilogrammes de maïs, 125 grammes de houblon et 17.5 kilogrammes de malt. Le
tableau se lit de manière analogue pour la bière « Brune ».
La fabrication d’un tonneau de bière blonde lui rapporte un bénéfice de 65 USD et
celle d’une bière brune rapporte 115 USD. Actuellement, la société dispose en stock les
quantités suivantes de matières premières :
- Maïs : 240 kg
- Houblon : 5 kg
- Malt : 595 kg
Formuler le problème sous forme d’un programme linéaire et trouver les valeurs
optimales de X1 et X2 par la méthode du simplexe.
Exercice 3
Soit le programme suivant de programmation linéaire :
Max Z = 10 X1 + 15 X2 + 5 X3
S/C 2 X 1 + X2 ≤6
3 X 1 + 3 X 2 + X3 ≤ 9
X1 + 2 X2 + 2 X3 ≤ 4

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

X2 115 1/3 1 1/3 0 0 32 32(3) = 96

e2 0 2/3 0 -1/3 1 0 8 24/2 = 12 ←

e3 0 17/3 0 -4/3 0 1 110 330/17 = 19.4

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

X2 115 0 1 1/2 -1/2 0 28

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

0 0 -53/2 -40 0 4 000

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

e1 0 3/2 0 -1 1 0 -1/2 4 8/3

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

Z 5/2 0 -10 0 0 -15/2 30

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

Plusieurs situations concrètes de notre vie quotidienne (vie sociale, économique,


politique, …) peuvent être formalisées au moyen de dessins permettant d’exprimer
commodément le problème et de trouver des solutions en recourant aux algorithmes
appropriés.
Intuitivement, un graphe est un schéma utilisant des points et des flèches (ou des
segments non orientés) reliant ces différents points. Les exemples, dans la vie courante, sont
nombreuses : réseau routier, réseau de voies ferroviaires (métro), de réseau de
communication entre individus, représentations des circuits électriques, schéma des
échanges commerciaux, schéma des rencontres pour une compétition sportive …
La théorie des graphes est très riche et les applications sont nombreuses. Elle est
devenue l’un des instruments les plus efficaces pour représenter (modéliser), puis résoudre
de nombreux problèmes discrets que pose la recherche opérationnelle.
La théorie des graphes utilise un vocabulaire spécifique et permet, grâce à sa
concentration d’écriture, de représenter de façon synthétique un ensemble complexe de
relations. Grâce à cette représentation, il est possible d’appliquer un certain nombre
d’algorithmes qui fournissent des solutions très simples à ces types des problèmes.
2.1. Généralités
Il est impossible de donner une définition unique pour un graphe pour la bonne
raison qu’il y a plusieurs sortes de graphes. Suivant les utilisations et les besoins, un graphe
peut être orienté ou non orienté, valué ou non, simple ou complexe, … Nous allons définir
quelques concepts essentiels à l’étude des graphes simples.
2.1.1 Graphe
Considérons les points a, b, c, d, e et un certain nombre de flèches joignant entre eux
plusieurs couples de ces points (figure 2.1).

Figure 2.1.
b
d

e
a

Au sens mathématique, les flèches peuvent symboliser une application Г dont le


point extrémité initiale est l’argument (ou variable) et le point extrémité terminale, l’image
(ou valeur). A chaque point (ou sommet) de l’ensemble X = {a, b, c, d, e} correspond, par
l’application Г, un sous-ensemble de X noté Г(xi). Ainsi, en suivant les flèches, on voit que :

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 »

Graphiquement, un sommet xi est représenté par un point et l’arc uj, dont la


« valeur » est (xk, xl), par une flèche joignant les deux points x k et xl, appelés extrémités de
l’arc. Du coup, les arcs sont assimilés à des couples des sommets. La flèche étant orientée de
xk vers xl, xk est appelé extrémité initiale et xl, extrémité terminale. Un arc du type (xk, xk) est
appelé une boucle.
Tout couple orienté (xi, xj)∈ U tel que xj ∈ Г(xi) (c'est-à-dire xj vérifie la relation) est
appelé « arc du graphe ». L’ensemble des arcs d’un graphe est désigné par U.
2.1.1.2. Application Г et sa réciproque Г -1
∀ x i ∈ X, les éléments Г(xi), s’ils existent, s’appellent « les suivants ou les
descendants directs » de xi. Ce sont les sommets ou nœuds de X qui ont le sommet x i
comme extrémité initial dans l’ensemble U. Par exemple, sur le graphe de la figure 2.1 ci-
dessus, les suivants du sommet a sont {b, c, d}. On note alors Г(a) = {b, c, d}.

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.

Nœuds Branches flux

Carrefours Routes Véhicules

Aéroports Couloirs Avions

Station métro Rails Métros (ou trains)

Dépôts pétroliers Pipelines Carburant

2.1.3. Longueur d’un chemin


Soit un chemin de n sommets (x1, x2, …, xn) où on a affecté à chaque arc (x i, xj) du
graphe un nombre positif. On distingue la longueur d’un chemin relativement aux valuations
(ou nombres entiers affectés à chaque arc du graphe) et la longueur d’un chemin au sens des
arcs (nombre d’arcs).
Selon la première définition, c’est la somme de toutes les valeurs inscrites sur les arcs
n −1
allant de x1 à xn : V(x1, xn) = ∑ l( x i , xi +1)
i=1

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

2.2.2 Représentation par énumération des sommets et arcs


Le graphe 2.5 peut se traduire par les sommets et arcs ci-après :
X = {a, b, c, d} et U = {u1, u2, u3, u4, u5, u6}
G = (X, U) = {(a, b), (b, a), (b, c), (c, c), (c, d), (d, a)}

2.2.3 Représentation à l’aide de dictionnaire


Soit G = (X,U)
- on appelle « dictionnaire des suivants » du graphe G, un tableau à simple entrée
dont chaque ligne concerne un sommet précis et contient tous les suivants dudit
sommet ;
- on appelle « dictionnaire des précédents » du graphe G, un tableau à simple
entrée dont chaque ligne relève d’un sommet précis et contient tous les
précédents dudit sommet.

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

2.2.4 Représentation matricielle (matrice associé à un graphe ou matrice booléenne )


Une matrice booléenne est une matrice M =mij ; tel que
mij ={ 1 Si(x ¿ ¿ i, x j )∈ U ¿ 0 Sinon }
Pour le graphe 2.6, la matrice booléenne associée est :

Sommets (extrémités) terminales


↓ La lecture ligne par ligne donne le
a b c d e f dictionnaire des suivants

a 0 1 0 0 0 0

b 0 0 0 0 1 1
Sommets origines

→ La lecture colonne par colonne donne


c 0 1 0 0 0 0 le dictionnaire des précédents

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.

La matrice aux arcs associée au graphe 2.6 est :

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) -

2.2.5 Représentation à l’aide d’une grille

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

c a,b,e c a,b,e c a,b,e c a,b,e

d c,e d c,e d c,e d c,e

e a e a e a e a

f b,c,d f b,c,d f b,c,d f b,c,d

g b,c g b,c g b,c g b,c

R(1) = { b , e } R(2) = { c } R(3) = { d , g } R(4) = { f }

on barre le sommet du on barre les sommets on barre (c) on barre (d,g)


niveau 0, c-à-d (a) du niveau 1, c-à-d (b,e)

b) La méthode de la matrice booléenne


Elle consiste à déterminer les niveaux à partir de la matrice booléenne selon le
principe suivant :
- Appartiennent à Rk, les sommets associés à des lignes qui ne contiennent que des
zéros. Une fois identifiés, on les supprime en ligne et en colonne, ce qui conduit à
une matrice booléenne de dimension réduite.
- Appartiennent à Rk-1, les sommets associés à des lignes qui ne contiennent que
des zéros dans la matrice réduite. Une fois identifiés, on les supprime en ligne et
en colonne, ce qui conduit à une matrice booléenne de dimension plus réduite.
- On poursuit le processus jusqu’à R0.

Pour l’exemple du graphe 2.7 ci-dessus, on a :

Matrice booléenne Matrice booléenne réduite Matrice booléenne réduite

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 }

On obtient ainsi le résultat suivant :


R0 = {a} ; R1 = {b, c} ; R2 = {c} ; R3 = {d} et R4 = {f, g}.
c) La méthode de Demoucron
Elle consiste à construire la matrice booléenne associée au graphe et à suivre la
procédure suivante :
- Former la ligne L0 où apparaît la somme des colonnes de la matrice. Les zéros de
L0 donnent les sommets qui n’ont pas de précédents. Ils constituent le niveau R (0) ;
- Soustraire de la ligne L0 la somme des lignes de sommets appartenant à R 0 et
remplacer les zéros par des traits, on obtient ainsi la ligne L 1. Les zéros qui
appartiennent à L1 donnent les sommets du niveau 1, notés R1 ;
- Poursuivre le processus jusqu’à l’épuisement.
Pour notre exemple, on a :

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 }

2.3.2. Fonction ordinale d’un graphe sans circuit


Considérons un graphe sans circuit G = (X, U) et définissons les sous-ensembles R (0), R(1), R(2),
…, R(k) tel que R(j) est le niveau de génération des sommets en question.

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

2.3.3. Utilité de notion de niveau


L’ordonnancement par niveau permet souvent une représentation plus commode du
graphe, les sommets étant disposés par ordre croissant de niveau.
Selon les résultats fournis par les différentes méthodes, on peut représenter plus
lisiblement et plus facilement le graphe 2.7 comme suit :
Figure 2.8. Graphes séquentielles associés au graphe 2.7.
b
b f

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.

L’application de l’algorithme de Ford est faite en se servant de l’exemple ci-dessous.


Exemple
Soit le graphe 2.9 ci-après dont les valeurs portées sur les arcs représente la distance
entre deux sommets.
24
x1 x4
12 13 5 21
3
x2
7 2
x0 x7
x5
10 1 4
14 16 26
x3 x6

On a : R0 = {x0} avec Γ-1(x0) = ∅


R1 = {x1, x3} avec Γ-1(x1) = {x0} ; Γ-1(x3) = {x0} ;
R2 = {x2} avec Γ-1(x2) = {x1, x3} ;
R3 = {x5} avec Γ-1(x5) = {x2} ;
R4 = {x4, x6} avec Γ-1(x4) = {x1, x2, x5} ; Γ-1(x6) = {x2, x3, x5}
R5 = {x7} avec Γ-1(x7) = {x4, x5, x6}.

a) Recherche du chemin de valeur maximale

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

En remontant du sommet terminal (t7) au sommet initial (t1), on reconstitue le


chemin le plus long par :
x0 – x1– x2 – x5 – x6 – x7. La valeur de ce chemin est 62 (12 + 13 + 7 + 4 + 26).
b) Recherche du chemin de valeur minimale

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

On retrace ainsi le chemin de valeur minimale :


x0 – x3– x2 – x5 – x7. La valeur de ce chemin est 33 (14 + 10 + 7 + 2).
2.4.1.2. Algorithme de Bellman et Kalaba (B-K)
L’algorithme de Bellman et Kalaba reprend le principe de l’algorithme de Ford, en
ajoutant une règle supplémentaire déterminant un ordre d’examen des arcs du graphe.
Soit G = (X, U) un graphe sans circuit et admettant la fonction ordinale φ(xi) avec
R0, R1, R2 …. Rk les différents niveaux du graphe, tel que R0 et Rk sont des singletons.
Notons par f(xi) la valeur optimale des chemins allant du sommet x0 ∈ R0 à xk ∈ Rk
L’algorithme de B-K part du niveau R0 jusqu’au niveau Rk de la manière suivante :
 Niveau R0 : f(x0) = 0
 Niveau R1 : f(xi) = V(x0, xi) où V(.) est la valeur optimale (max. ou min.) et x i,
les descendants de x0.

 Niveau Rk : f(xj) = opt. {f[(Γ-1(xj)] + V[Γ-1(xj), xj)]}, avec [Γ-1(xj) les précedents
de xj.
L’application de l’algorithme de Bellman et Kalaba à l’exemple ci-dessus, pour la
recherche du chemin de longueur minimal, donne :
 R0 = {x0} ⇒ f(x0) = 0
 R1 = {x1, x3}
Γ-1(x1) = {x0} ⇒ f(x1) = V(x0, x1) = 12
Γ-1(x3) = {x0} ⇒ f(x3) = V(x0, x3) = 14
-1
 R2 = {x2} avec Γ (x2) = {x1, x3}
f(x2) = min { f (x ¿¿ 1)+V (x1 , x 2) ¿ f ( x 3 )+ V (x 3 , x 2) = min {12+13
14+10
= 24

 R3 = {x5} avec Γ-1(x5) = {x2}


f(x5) = f(x2) + V(x2, x5) = 31
 R4 = {x4, x6}

Γ-1(x4) = {x1, x2, x5} ⇒ f(x4) = {


f ( x¿¿ 1)+V (x 1 , x 4 )¿ f (x 2 )+V (x 2 , x 4 )
f (x 5)+V (x 5 , x 4)
= min

{
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.

2.4.2. La programmation dynamique


Nous présentons dans ce paragraphe, l’une des applications les plus simples de la
théorie des graphes, tout en rappelant aussi que la programmation dynamique peut aussi
apporter une solution adéquate à des problèmes plus complexes.
La programmation dynamique s’adapte à beaucoup de problèmes de nature
séquentielle, les séquences n’étant pas forcément en lien direct avec le temps, mais c’est
néanmoins le langage des systèmes dynamiques qui est utilisé.
2.4.2.1. Critère d’optimalité
Implicitement contenu dans l’œuvre de P. de Fermat, auteur du principe
fondamental de l’optique, le principe d’optimalité a été utilisé en recherche opérationnelle
par P. Masse (1944), puis R. Bellman (1952).
Ce principe s’énonce comme suit : « une décision optimale est telle que, quels que
soient l’état initial et la décision initiale, les décisions suivantes doivent constituer une
politique optimale par rapport à l’état résultant de la première décision ».
En d’autres termes, toute partie d’un chemin optimal est, elle-même, optimale. En
effet, s’il n’en était pas ainsi, on pourrait lui substituer une partie « meilleurs », ce qui
améliorerait la valeur de l’ensemble du chemin, préalablement supposé optimal, d’où
l’absurdité.
En effet, considérons une politique optimale reliant les séquences de 0 à T (il ne s’agit
pas forcément de déroulement du temps au cours de ces séquences) ; elle est constituée
d’une suite de décisions {A0, A1, …, Ak, …., AT-1} qui conduit le système à passer par l’état X k à
la séquence k. Si la suite des décisions (sous-politique) {A k, Ak+1, …., AT-1} n’est pas elle-même
optimale, c’est-à-dire rendant optimal l’objectif limité aux séquences ultérieures à k, on peut
lui substituer une autre sous-politique { A'k, A'k+1, …., A'T −1} qui sera, elle, optimale.

2.4.2.2. Détermination d’un trajet optimal


L’application de la théorie de graphe dans la résolution d’un programme dynamique
s’appuie sur le principe d’optimalité à partir de l’exemple suivant.
La République Démocratique du Congo envisage de construire une autoroute reliant
ARU (A) et Kisangani (K). Cette autoroute doit traverser une zone de plaine où sont situées
trois cités (B, C, D). Une seule de ces cités peut être desservie pour des raisons économiques.
L’autoroute doit traverser ensuite une région de montagnes qu’elle ne peut franchir que par

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.

Le coût de réalisation (coûts des chaussées, ouvrages d’art, main-d’œuvre, coûts


sociaux …) de chaque tronçon est donnée dans le tableau suivant :

Coût (en Coût (en Coût (en Coût (en


million million million million
Tronçon Tronçon Tronçon Tronçon
de USD de USD de USD de USD

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

Le gouvernement se propose de réaliser au moindre coût l’autoroute joignant ARU à


KISANGANI. Quelle est la politique optimale ?
Le problème du gouvernement congolais peut être représenté par le graphe suivant.
Dans ce graphe, les différents niveaux de génération des sommets peuvent être assimilés
aux différents états du système, si l’on utilise le vocabulaire usuel des systèmes dynamiques.

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

Etape 2. Il faut se rendre en E, F, G et H en venant de B, C ou D


Il y a quatre politiques optimales pour franchir la zone des montagnes. Ces politiques
sont identifiées dans le tableau suivant.
Pour Politiques Coût Politiques
rejoindre possibles optimales
E ABE 12 ABE
ACE 15

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.

Pour Politiques Coût Politiques


rejoindre possibles optimales

ABEI 17

ADFI 16 ADFI

I ADGI 17

ADHI 21

ABEJ 19

J ADFJ 19

ADGJ 18 ADGJ

ADHJ 20

Etape finale. Il faut se rendre en K en venant de I ou J

Pour Politiques Coût Politiques


rejoindre possibles optimales

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

Il ya un problème d’ordonnancement lorsque, en vue de la réalisation d’un objectif


quelconque, il faut accomplir un ensemble de tâches (appelées activités ou opérations),
elles-mêmes soumises à un ensemble de contraintes.
Les modèles d’ordonnancement, que sont une application directe des méthodes de
recherche de chemins optimaux dans la théorie de graphe, ont pour objectif la
programmation des activités nécessaires à la réalisation d’un certain objet (projet). Ce qui
permet de déterminer la durée prévisible d’un projet et d’en contrôler l’avancement.
Leur utilisation est particulièrement indispensable dans le cadre de la gestion des
projets qui supposent la mise en œuvre d’activités multiples et variées, sur une période de
temps relativement longue et permettant d’aboutir à un résultat d’importance majeure pour
l’organisation.
3.1. Représentation d’un projet
La représentation d’un projet à l’aide d’un graphe peut revêtir deux formes
différentes, selon que l’on a recours à la méthode PERT-CPM ou la méthode MPM. Dans les
deux cas, une phase d’analyse préalable est nécessaire afin de déterminer les tâches à
effectuer, évaluer leur durée et repérer les diverses contraintes qui pèsent sur leur
réalisation.
3.1.1 Analyse du projet
Il existe trois opérations à accomplir dans le cadre de l’analyse d’un projet :
- lister les tâches ;
- évaluer les durées ;
-repérer les contraintes.
a) Liste des tâches
Cette opération consiste à dresser la liste des tâches qui ne sont rien d’autre que les
activités nécessaires à la réalisation du projet. L’ensemble des tâches forment le projet.
Le découpage d’un projet en tâche peut être effectué avec un degré de détail très
variable selon le niveau de planification envisagé. Dans le cadre d’un projet de lancement de
produit nouveau, les activités suivantes doivent être envisagées :
- Mise au point d’un prototype ;
- Test auprès d’utilisateurs (ou des consommateurs) ;
- Dépôt du brevet ;
- Etude du marché (afin de ressortir le niveau de la demande) ;
- Choix des éléments du marketing-mix ;
- Mise au point du système de production ;
- etc…
Chacune de ces tâches constitue en elle-même un mini-projet composé de plusieurs
opérations élémentaires.

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.

Lorsque le processus de réalisation d’un objectif est décomposable en tâches, ces


tâches étant soumises à des contraintes diverses, il importe de déterminer un calendrier
d’exécution des tâches, compatible avec les contraintes. Trouver un tel calendrier, c’est
obtenir une solution au problème d’ordonnancement.
3.1.2 Modes de représentation
Deux outils sont indispensables pour résoudre un problème d’ordonnancement : le
graphe PERT (Program Evaluation and Review Technique) et le graphe MPM (Méthode des
Potentiels Métra). La représentation d’un projet à l’aide de ces outils fait souvent recourt à
la matrice d’antériorité afin de faciliter la tâche d’ordonnancement.
3.1.2.1. Graphe PERT (Potentiel – étapes)
Dans un graphe PERT d’ordonnancement, les activités (ou tâches) sont représentées
par des arcs dans un réseau. Les sommets de ces arcs sont des événements qui matérialisent
soit le début soit la fin d’une opération donnée. Ils représentent donc les étapes à franchir
dans la réalisation du projet. Et, lorsque les valeurs sont portées sur un arc, elle représente la
durée de réalisation de la tâche.
La construction du réseau représentatif du projet est une tâche complexe : la
disposition des arcs doit respecter les diverses contraintes temporelles repérées au cours de
la phase d’analyse. Ainsi, dans des cas présentant plus d’activités ou de contraintes, la
représentation du réseau est facilitée par l’emploi d’une matrice d’antériorité. Une telle
matrice indique les conditions d’antériorité entre les activités. Chaque fois qu’une activité i
apparaît, au cours de la phase d’analyse du problème, antérieure à une autre activité j, une
croix est inscrite dans la case (i, j) de la matrice. Par élimination successive des croix inutiles
(correspondant à des contraintes redondantes), on arrive à définir une matrice d’antériorité
immédiate.
Pour l’exemple ci-dessus, on a onze tâches qui doivent manifestement respecter un
certain nombre de contraintes temporelles. Si l’on considère que des contraintes
d’antériorité, on a la situation suivante :
- L’élaboration du plan de recherche (tâche B) nécessite la définition des objectifs
de l’étude (tâche A) ;

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

L’application de la méthode de la matrice booléenne donne :


R0 = {A} ; R1 = {B} ; R2 = {C} ; R3 = {D, F} ; R4 = {E, G, H} ; R5 = {I} ; R6 = {J} et R7 = {K}.

 Le dictionnaire de précédents associé est :

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

L’application de la méthode de précédents donne :


R0 = {A} ; R1 = {B} ; R2 = {C, D} ; R3 = {F} ; R4 = {E, G, H} ; R5 = {I} ; R6 = {J} et R7 = {K}.

 La méthode de Demoucron donne les résultats suivants :

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 }

R0 = {A} ; R1 = {B} ; R2 = {C, D} ; R3 = {F} ; R4 = {E, G, H} ; R5 = {I} ; R6 = {J} et R7 = {K}.

b) Matrice d’antériorité immédiate


La matrice d’antériorité associée à l’exemple ci-dessus est la suivante :

A B C D E F G H I J K

c) Construction du graphe PERT


A partir des informations ci-dessus, le graphe PERT peut être construit en adoptant
les règles suivantes :

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

- Si une ligne i comprend plusieurs croix, comme c’est le cas de la ligne B et F,


cela signifie que les activités représentatives (en colonnes) sont descendants
de l’activité en question.
H
C
F G
B
D
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

Figure 3.1b). Représentation alternative d’un graphe PERT

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)

Ressortir la durée optimale de réalisation de ce projet par les trois méthodes.

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.

Pour pallier à ces insuffisances, on recourt à la méthode PERT-CPM et/ou la méthode


MPM. Ces deux méthodes exigent, au préalable, l’ordonnancement par niveau de
différentes activités.

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

Tâche P(X) R(k) Durée

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

Pour obtenir le chemin critique, on utilise la procédure de marquage progressif des


sommets, c'est-à-dire des événements. Ces derniers sont repérés par les « dates au plus
tôt » de leur réalisation. Et, comme toutes les tâches antérieures doivent être réalisées, la
date ti de réalisation au plut tôt d’un événement i est donnée, de façon générale, par :

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

Le même réseau PERT peut aussi être construit comme suit :

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

Les différents sommets sont ainsi marqués de la manière suivante :

i (i, j) j

ti
dij Max(ti+dij)

L’utilisation de cette procédure de marquage des sommets, dans l’exemple 1, permet


de déterminer une durée minimale de 13 mois. Le chemin le plus long (chemin critique)
entre le début et la fin du projet est constitué des arcs a – d – h – i. Ce chemin critique passe
par les sommets dont les dates au plus tôt et les dates au plus tard coïncident.
La date au plus tôt (DTO) est la date avant laquelle un événement ne peut se réaliser.
Si nous prenons l’événement (5) qui marque la fin des tâches (e) et (f), la date au plus tôt est
de 7 mois, en d’autres termes cette tâche ne peut pas commencer avant 7 mois.
L’événement (6) qui marque la fin de la tâche (d) doit être réalisée au plus tôt dans 10 mois,
à dater du début des travaux. L’événement (7) qui marque la fin des tâches (h) et (g) et le
début de la tâche (i) doit nécessairement commencer dans 12 mois.
La date au plus tard (DTA) est la date limite de réalisation d’un événement ou la date
à laquelle il faut nécessairement réaliser un événement pour terminer le projet dans une
durée minimale. Si l’événement venait, en effet, à se réaliser après ladite date, le projet tout

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

- Au-dessous de cette première ligne sont indiquées les tâches j immédiatement


antérieures, soit celles qui appartiennent à X i (ensemble des sommets-origine
des arcs incidents à i vers l’intérieur). Le nom de chaque tâche est précedé de sa
date de début TDj et suivi de sa durée dj, portée sur les arcs du réseau MPM.
- Les valeurs TDi sont calculées progressivement à partir de la tâche fictive
« Début », pour laquelle TD = 0 et d = 0, à l’aide de la formule :
TDi = max (TD j +d j)
j ∈ Xi
Pour l’exercice 1, on obtient le tableau ci-dessous :
Tableau 3.2. Evaluation de la durée optimale d’un projet

0 a 0 B 0 c 3 D 3 e

0 Déb : 0 0 Déb : 0 0 Déb : 0 0 a:3 0 a:3


0 b:2 0 b:2

4 f 7 G 10 h 12 I 13 Fin

0 c:4 3 c:2 3 d:7 10 h:2 12 i:1


4 f:3 3 e:2 7 g:2

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

Il ressort de ce graphe que le chemin 17


critique 19est constitué des tâches critiques, c'est-
à-dire A – B – C – F – E – I – J – K. Il s’agit des tâches dont l’exécution ne doit être ni retardée
ni ralentir, sous peine d’augmenter d’autant la réalisation de l’ensemble du projet.
Le recours à la méthode MPM donne le résultat suivant :

0 A 1 B 4 C 4 D 17 E

0 Déb : 0 0 A:0 1 B:3 1 B:3 4 D:5


14 F:3

14 F 17 G 17 H 20 I 40 J

4 C : 10 14 F:3 14 F:3 17 E:3 20 I : 20


17 G:1

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.

4.1. DEFINITION DE QUELQUES NOTIONS IMPORTANTES


La formulation du problème de flot maximal demande tout d’abord la
compréhension de certaines notions, à savoir : le réseau de transport, le flot dans un réseau
et coupe du réseau.
4.1.1. Réseau de transport
On appelle réseau de transport un graphe sans boucle, comportant une entrée x 0 et
une sortie xn telles que : depuis x0 il existe un chemin vers tout autre sommet x k et de tout
sommet xk il existe un chemin vers xn (on dit alors que x0 est la source et xn, un puits). Tout
arc u est valué par un nombre entier positif c(u) nommé « capacité » de l’arc u, qui
représente » une capacité de transport associée à la liaison figurée par cet arc : ces
capacités de transport peuvent être des tonnages autorisés sur la route, des tonnages
disponibles sur des bateaux, des camions ou des wagons assurant la liaison entre les
différents trajets. Il peut aussi s’agir des débits dans des canalisations, oléoducs, pipelines, …
où circule un fluide (liquide, gaz).

La figure 4.1 ci-dessous est un exemple d’un réseau de transport.

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

arcs incidents à xj vers l’extérieur.


3°/ ∀ (xi, xj) ∈ U, φ i,j ≤ ci,j : la quantité de matière qui traverse un arc ( φ i,j), comme c’est
le cas d’un flux de marchandise, ne doit pas être supérieur au tonnage (ou à la
capacité) autorisé (ci,j).
La condition 2°/ s’appelle équation de nœud, par analogie aux modèles physiques qui
stipulent que : « dans un système de tuyaux, en un point de jonction (nœud), la quantité de
liquide qui arrive est égale à la quantité de liquide qui repart ». On l’appelle aussi condition
(ou relation) de conservation de flot.
Cette égalité fait partie des lois de Kirchhoff en électricité. La loi de Kirchhoff stipule
que « en tout nœud d’un réseau de transport, la somme des flux entrants (par unité de
temps) est égale à la somme des flux sortants (par unité de temps) en ce même nœud ».
La condition 3°/ s’appelle condition de capacité de flot.
Un flot φ est déterminé par la donnée du flux pour tout arc du réseau de transport ;
la « valeur » V(φ ) d’un flot est, par définition, la somme des flux partant de la source x 0 (on
montre aisément que V(φ ) est aussi égale à la somme des flux des arcs arrivant sur le puits
xn).
4.1.3. Coupe dans un réseau
Soit G = (X, U) un réseau de transport. Considérons un sous-ensemble S C X tel que
x0 ∉ S et xn ∈ S. L’ensemble C*(S) des arcs incidents à si vers l’intérieur est appelé une coupe
du réseau.
Exemple : Considérons le graphe de la figure 4.1 avec S = {x4, x6, x9, x11}.
C*(S) = {(x1, x4), (x2, x6), (x3, x6), (x2, x9), (x5, x9), (x7, x9), (x8, x9), (x7, x11), (x8, x11), (x10, x11)}
On appelle capacité de la coupe C*(S), la capacité c telle que :

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

et 0 ≤ ϕi,j ≤ ci,j , ∀ (xi, xj) ∈ U

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

Les modèles de transport englobent tout problème d’optimisation du transfert entre


des points-origine et des points-destination. Lorsque ces points matérialisent des lieux
géographiques et lorsque l’objet du transfert est un ensemble de marchandises, il s’agit du
problème de transport au sens strict. Mais il peut s’agir, également, de personnels jouant le
rôle de points-origine, que l’on désire affecter dans les meilleures conditions à des fonctions
vacantes jouant le rôle de points-destination.
Ainsi, le modèle strict de transport rend son extension à d’autres domaines de la
gestion, comme c’est le cas du problème d’affectation ou celui de planification des activités
de production, de transport et de commercialisation.
5.1. Formulation d’un modèle de transport
Selon G. Hadley, le problème de transport peut être formulé ainsi : « des quantités
données d’un même produit sont disponibles en plusieurs points-origine ; des quantités
données de ce même produit doivent être expédiées vers différents points-destination. Le
coût de transport unitaire entre chacun des points-origine et chacun des points-destination
étant connu, il s’agit de déterminer le meilleur programme de transport, c'est-à-dire celui
qui minimise le coût total d’approvisionnement. Plus précisément, il convient de déterminer
à partir de quel point-origine, chaque point-destination doit être alimenté, et ceci en quelles
quantités ».
La présentation des données se fait d’habitude sous forme du tableau ci-après :

Destination

Origine E1 E2 … Ej … En Quantité
disponible

P1 C11 C12 … C1j … C1n q1

P2 C21 C22 … C2j … C2n q2

… … … … … … … …

Pi Ci1 Ci2 … Cij … Cin qi

… … … … … …

Pm Cm1 Cm2 … Cmj … Cmn qm

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

Il serait, bien entendu, possible de résoudre ce problème à l’aide des techniques


étudiées au chapitre 1, mais la structure très spécifique des problèmes de transport permet
de recourir à des techniques particulières beaucoup plus légères.
Cette structure est caractérisée par le fait que les éléments de la matrice des
coefficients des contraintes fonctionnelles ne consistent qu’en 0 et en 1. Ceci est visualisé en
se servant de l’exemple ci-dessous.
Exemple
La société BRALIMA possède en République Démocratique du Congo trois unités de
production où elle fabrique, entre autres, la bière PRIMUS. Elle commercialise ses produits à
travers quatre entrepôts (Vj) situés dans les principaux centres de consommation. Le tableau
4.1a) indique pour chaque unité Ui la capacité de production (en nombre de casiers de la
bière PRIMUS), et pour chaque entrepôt V j la demande (en nombre de casiers de la bière
PRIMUS) émanant du centre de commercialisation correspondant. Le tableau 4.1b donne les
coûts de transport unitaires (en USD) entre chaque usine et chaque entrepôt (c ij).
Tableau 5.1a

Capacités de production Demandes

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 :

X11 X12 … X14 X21 … X24 … X31 … X34

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

Pour l’exemple étudié, la matrice A est la suivante :

[ ]
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

m = 3 rangées n = 4 rangées m x n = 12 colonnes


72
5.1.2. Formulation duale
Présentons le problème ci-dessus sous forme du tableau à double entrée suivant :

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

Demande (dj) 700 100 300 500 600

A la formulation primale du modèle de transport, il est possible de faire correspondre


une formulation duale. Dans le cas du modèle de transport, la formulation duale est
intéressante, car elle fournit une technique de résolution intéressante et l’interprétation
économique de ses résultats est riche d’enseignement.
Compte tenu des résultats obtenus, nous pouvons procéder comme suit :
- A chacune des contraintes primales, nous associons une variable duale : la
variable Ui est associé à la contrainte origine i, et la variable V j à la contrainte
destination j ;
- L’objectif du problème dual est de rendre maximum une fonction linéaire de m
variables Ui et des n variables Vj ;
- Les coefficients associés aux variables Ui et Vj dans la fonction économique sont
respectivement les disponibilités qi et les demandes dj du problème primal ;
- La matrice des coefficients des variables dans les contraintes duales est la
transposée de la matrice utilisée dans le problème primal. Compte tenu de la
structure spécifique de la matrice [A], dans chacune des contraintes duales
n’interviendront que deux variables. De façon plus précise, dans la contrainte
associée à la variable primale Xij, seules les variables Ui et Vj apparaîtront.

L’écriture duale du problème de transport se présente alors de la façon suivante :


Max R = ∑ qi Ui + ∑ d j Vj
i j
Sous contrainte Ui + Vj ≤ cij i = 1, 2, …, m et j = 1, 2, …, n.

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.

A l’optimum, seules les deux dernières situations peuvent être rencontrées.


L’existence d’un trajet relevant du premier cas montrerait que la solution la moins coûteuse
n’est pas encore obtenue puisqu’une économie peut encore être réalisée.
5.2. Résolution du problème de transport
Compte tenu de la structure particulière du problème, il est possible de résoudre le
problème de transport en recourant à des techniques légères issues d’une adaptation de
l’algorithme du simplexe :
- Recherche d’une solution de base admissible ;

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

U1 700 100 200 0 1 000

U2 0 0 100 100 200

U3 0 0 0 400 400

dj 700 100 300 500 1 600

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

dj 700 100 300 400 1600

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

U1 64 50 77 14 1000 36 U1 500 1000

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

U1 64 50 77 500 14 U1 0 500 1000

U2 37 20 48 200 17 U2 0 0 200

U3 25 14 15 400 1 U3 300 0 400

dj 700 100 300 dj 700 100 300 500 1600


Etape 2. Nous affectons la valeur 300 à la case C(3,3) et
∆L 12 6 33 supprimons la colonne 3 qui devient saturée.

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

U1 64 50 500 14 U1 0 0 500 1000

U2 37 20 200 17 U2 100 0 0 200

U3 25 14 100 11 U3 0 300 0 400

dj 700 100 dj 700 100 300 500 1600


Etape 3. Nous affectons la valeur 100 à la case C(2,2) et
∆L 12 6 supprimons la colonne 2 qui devient saturée.

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

U1 64 500 U1 500 0 0 500 1000

U2 37 100 U2 100 100 0 0 200

U3 25 100 U3 100 0 300 0 400

dj 700 dj 700 100 300 500 1600


Etape 3. Nous affectons la valeur 100 à la case C(2,2) et
∆L 12 supprimons la colonne 2 qui devient saturée.

La solution finale de l’algorithme est la suivante :

V1 V2 V3 V4 qi

U1 500 0 0 500 1 000

U2 100 100 0 0 200

U3 100 0 300 0 400

dj 700 100 300 500 1 600

5.2.1.3. Technique du coût minimum (règle du MINITAB)


La méthode du coin nord-ouest garantit l’obtention d’une solution de base en
l’absence de dégénérescence. Mais, elle ne garantit pas l’obtention d’une bonne solution de
départ. La méthode de Balas-Hammer garantie une meilleure solution de base initiale
proche de l’optimum. Mais, elle comporte plusieurs itérations qui, à l’extrême, peuvent
s’avérer ennuyeuses.
Pour éviter d’avoir trop d’itérations à réaliser pour l’obtention d’une première
solution proche de l’optimum, certaines techniques sont disponibles et permettent
généralement de déterminer une solution initiale meilleure que celle obtenue par la
méthode du coin nord-ouest.

La méthode du coût minimum consiste à repérer la case du tableau des quantités


correspondant au coût de transport le plus faible et à y faire transiter le maximum d’unités
possibles en saturant soit en offre soit en demande.
Les étapes de la méthode sont les suivantes :
- Localiser la case dont le coût est le plus bas et y placer le maximum d’unités
possibles. Si deux cases ont le même coût, on remplit d’abord celle qui peut
absorber le plus d’unités, ensuite les autres cases sont progressivement remplies
si cela est possible ;
- Affecter le maximum d’unités possibles à la case suivante ayant le coût le plus
bas ;
- Répéter l’opération jusqu’à la satisfaction de l’offre et de la demande.

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

U1 500 0 0 500 1 000

U2 200 0 0 0 200

U3 0 100 300 0 400

dj 700 100 300 500 1 600

Le coût de transport pour les trajets retenus est de :


C = 64 (500) + 37 (200) + 14 (100) + 15 (300) + 14 (500) = 52 300 USD.
On peut constater tout d’abord que cette solution est très proche de l’optimum
(51 700 USD). On remarque également que cette solution ne contient que cinq cases
remplies, donc cinq variables positives, alors qu’une solution de base devrait en contenir six,
puisque ce problème comporte apparemment six contraintes indépendantes. Ceci illustre le
phénomène de dégénérescence qui sera abordé dans les pages suivantes.
Exercice
Nous examinons le problème suivant par les différentes techniques : assurer, au
moindre coût, les transports des quantités demandées aux dépôts numérotés de 1 à 6, à
partir des usines numérotées de 1 à 4, connaissant les disponibilités de ces usines et les
coûts de transport unitaires de toute origine à toute destination.

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.

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.
Deuxième pas

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

Le coût total de transport est égal à :


C = 61 (18) + 23 (9) + 39 (11) + 78 (7) +… + 40 (9) = 3 535 USD.

b) Technique du coin Nord-Ouest


La résolution par la technique du coin nord-ouest donne le tableau ci-après :

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

Le coût total de transport est égal à :


C = 12 (9) + 27 (9) + 39 (2) + 78 (28) + … + 49 (5) = 3 700 USD.

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

Le coût total de transport est égal à :


C = 12 (9) + 27 (9) + 39 (2) + 78 (25) + … + 40 (9) = 3 634 USD.

d) Règle de MINILI

Cette technique consiste à affecter la quantité maximale à la relation de coût minimal


dans la première ligne, puis à la relation de coût minimal, parmi celles qui subsistent, dans la
seconde, … en respectant les différentes contraintes. L’algorithme est repris de manière
séquentielle en revenant à la première ligne, puis la seconde, … jusqu’à l’épuisement.
Le résultat de l’algorithme donne :

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

Le coût total de transport est égal à :


C = 12 (9) + 27 (2) + 61 (7) + 78 (21) + … + 40 (9) = 3 734 USD.

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

Le coût total de transport est égal à :


C = 12 (9) + 27 (9) + 78 (28) + 42 (4) + … + 40 (9) = 3 638 USD.
Il est nécessaire de noter que, dans la pratique, seules les trois premières techniques
sont utilisées pour la détermination de la première solution de base admissible. La solution
de base admissible doit avoir au plus (m + n – 1)] variables non nulles ou en base.
Pour notre exercice, nous avons : (4 + 6 – 1) = 9 variables. Ainsi, les solutions
obtenues par les différentes méthodes sont des solutions de base admissible. Elles
comportent au moins 15 variables hors base : (m x n) – (m + n – 1).
5.2.2. Test d’optimalité et Algorithme de stepping-stone
La solution de base obtenue par les méthodes précédentes peut être améliorée de
différentes façons. Cette amélioration se fait soit par l'algorithme du Stepping-Stone
(méthode des pierres de gué ou de marchepied-escalier). Toutefois le recours à l’algorithme
primal-dual, permet de réduire le nombre d’itérations dans l’application de l'algorithme du
Stepping-Stone.
Le test d’optimalité consiste en l'évaluation des cases vides. L'évaluation d'une case
est la variation du coût global due à l'introduction d'une unité de transport dans la case, avec
réarrangement de la répartition des quantités transportées dans les cases déjà occupées.
5.2.2.1. Principes de l’algorithme de stepping-stone
L’algorithme de stepping-stone repose sur la détermination d’une solution de base
initiale 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 de base.

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.

La notion de «boucle» est importante dans la résolution des programmes de


transport. Dans le tableau d'une solution de base, une boucle partant d'une case
vide correspond au chemin suivant lequel doivent s'effectuer les transferts
d'unités si l'on veut introduire une unité dans la case envisagée en respectant les
restrictions des quantités demandées et des disponibles.
- Affecter un signe positif et un signe négatif alternativement aux angles de la
boucle fermée, en commençant par un signe positif à la case inoccupée. Les
signes positif et négatif représentent l'ajoute ou la soustraction d'une unité à la
case vide (ou case-pivot) à évaluer ;
- L'évaluation de la case-pivot se fait par l'indice d'évaluation ou d'amélioration,
donnée par Δij = (Pij + B) – (A + D) dans la matrice de coût associée. Il s’agit de
l'addition algébrique des coûts additionnels et des coûts réduits correspondant
aux angles de la boucle. Chaque indice négatif représente la quantité par laquelle
le coût total de transport sera réduit si une unité était expédiée du centre i vers le
centre j.
- Répéter les étapes 1 à 4 pour toutes les cases vides, par itérations successives ;
- L’optimum est atteint si aucun trajet inutilisé ne permet de réduire le coût de
transport (dans ce cas, tous les indices d'amélioration Δ ij sont supérieurs ou égaux
à zéro).
Le coût global de transport à cette étape est diminué de (n unités transférées) x
(∆ij correspondant).
5.2.2.2. Application de l’Algorithme au départ de la solution de base « Coin Nord-Ouest »

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

U1 700 100 200 0 1000 U1 700 10 200 (–) 0 (+) 1000


0

U2 0 0 100 100 200 U2 0 0 100 100 200

U3 0 0 0 400 400 U3 0 0 0 (+) 400 (–) 400

dj 700 100 300 500 1600 dj 700 10 300 500 1600


0

c) E1 E2 E3 E4 qi d) E1 E2 E3 E4 qi

U1 700 100 0 200 1000 U1 500 100 0 400 1000

U2 0 0 100 100 200 U2 0 0 100 100 200

U3 0 0 200 200 400 U3 200 0 200 0 400

dj 700 100 300 500 1600 dj 700 100 300 500 1600

e) E1 E2 E3 E4 qi f) E1 E2 E3 E4 qi

U1 500 0 0 500 1000 U1 500 0 0 500 1000

88
U2 0 100 100 0 200 U2 100 100 0 0 200

U3 200 0 200 0 400 U3 100 0 300 0 400

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

U1 500 0 0 500 1 000

U2 200 0 0 0 200

U3 0 100 300 0 400

dj 700 100 300 500 1 600

Le test d'optimalité est fait de la manière suivante :


 Calculons, pour chacune de six cases vides, les indices d’évaluation :
 Case 12 : i) P12A11B31D32 → ∆12 = (50 + 25) – (64 + 14) = -3
ii) P12A14B34D32 → ∆12 = (50 + 48) – (14 + 14) = 70
 Case 13 : i) P A B D
13 11 31 33
→ ∆13 = (77 + 25) – (64 + 15) = 21
13 14 34 33
ii) P A B D → ∆13 = (77 + 48) – (14 + 15) = 96
 Case 22 : P A B D
22 21 31 32
→ ∆22 = (20 + 25) – (37 + 14) = -6
 Case 23 : P23A21B11D14 → ∆23 = (48 + 25) – (37 + 15) = 21
 Case 24 : P A B D
24 21 31 32
→ ∆24 = (24 + 64) – (37 + 14) = 37
 Case 34 : i) P A B D
34 32 12 14
→ ∆34 = (48 + 50) – (14 + 14) = 70
34 33 13 14
ii) P A B D → ∆34 = (48 + 77) – (15 + 14) = 96
 De l’observation des indices d’évaluation, l’on observe que certains indices sont
négatifs ; l’optimum n’est donc pas atteint.
 Pour améliorer la solution de base, l’on choisit le chemin affecté de l’indice
d’évaluation suffisamment négatif, soit le chemin P 22A21B31D32. Le transfert d’unité se
fait donc au travers de ce chemin (cf. tableau b). Ainsi, l’on ajoute 100 aux cases 22 et
31, puis l’on retranche 100 aux cases 21 et 32 afin de respecter les contraintes de
lignes et de colonnes.
En effet, les cases 22, 21, 31 et 32 forment la chaîne de substitution (boucle fermée).
Chaque fois que nous ajoutons une unité dans la case 22 – ce qui fait gagner 6 USD
sur le coût de transport – nous en ajoutons aussi dans la case 31 mais en retranchant
la même unité dans les cases 21 et 32 eu égard aux différentes contraintes. Le
nombre maximal d’unités que nous devons transférer est égal au minimum des
affectations contenues dans les cases 21 et 32, soit 100 unités. Ainsi, l’économie de
coût est de 600 USD. Le coût lié à la nouvelle solution de base sera donc égal au coût
lié à la base initiale déduite de 600 USD (52 300 – 600).

90
b) Algorithme de stepping-stone6

E1 E2 E3 E4 qi

U1 500 0 0 500 1 000

U2 100 100 0 0 200

U3 100 0 300 0 400

dj 700 100 300 500 1 600

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

Il s’agit d’un système de 6 équations à 7 inconnues. Comme v i est prédominant, on


pose v1 = 0, ce qui permet de déterminer les autres variables par substitution. Ainsi :

w1 = 64, w2 = 50, w3 = 77, v2 = -29, w4 = 53 et v3 = -5

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

dj 700 100 300 500 100 1 700

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

U1 400 0 0 500 100 1 000

U2 200 0 0 0 0 200

U3 100 100 300 0 0 500

dj 700 100 300 500 100 1 700

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

U1 400 0 0 500 100 1 000

U2 100 100 0 0 0 200

U3 200 0 300 0 0 500

dj 700 100 300 500 100 1 700

En appliquant le test d’optimalité, on peut constater que l’optimum est atteint. Le


résultat final indique que c’est l’unité de production U 1 qui sera affectée par la capacité
excédentaire.
5.2.4. Exercices de récapitulation
Exercice 1
Trouver la solution optimale au problème de transport dont la matrice de coût
affectée de contraintes est donnée comme suit :

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

b) Recherche de la première solution de base admissible


L’application de la méthode MINITAB donne le résultat suivant :

E1 E2 E3 Ef qi

U1 0 0 15 4 19

U2 12 13 0 6 31

dj 12 13 15 10 50

Le test d’optimalité indique que tous les ∆ij sont négatifs :


∆11 = (4 + 6) – (3 + 5) = 2 ; ∆12 = (3 + 6) – (1 + 5) = 3, …

Cette solution est optimale. Le coût total minimum est :


C = 12 (3) + 13(1) + 15(5) = 124 unités de compte.
Exercice 2
Trouver la solution optimale au problème de transport dont la matrice de coût
affectée de contraintes est donnée comme suit :

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

b) Solution de base initiale : Méthode de coût minimum

E1 E2 E3 qi

U1 9 0 10 19

U2 3 13 0 16

Uf 0 0 5 5

dj 12 13 15 50

Le test d’optimalité indique que la solution est optimale :


v1 + w1 ≤ 4 v2 + w2 ≤ 1
v1 + w3 ≤ 5 vf + w3 ≤ 10
v2 + w1 ≤ 3

Il s’agit d’un système de 5 équations à 6 inconnues. Comme il n’y a pas de variables


prédominantes, on choisit v1 = 0, ce qui permet de déterminer les autres variables par
substitution. Ainsi :
w1 = 4, w3 = 5, v2 = -1, w2 = 2 et vf = 5
L’application de ces valeurs aux trajets inutilisés donne les résultats suivants :
∆12 = v1 + w2 – c12 = 0 + 2 – 2 = 0
∆23 = v2 + w3 – c23 = -1 + 5 – 6 = -2
∆f1 = vf + w1 – cf1 = 5 + 4 – 10 = -1
∆f2 = vf + w2 – cf2 = 5 + 2 – 10 = -3
Tous les ∆ij ≤ 0, le processus s’arrête donc à ce niveau. Cette solution est optimale. Il
en découle de cette solution que la demande exprimée par l’entrepôt n°3 ne sera pas
complètement satisfaite.
Le coût total de transport associé à cette solution est :
C = 9 (4) + 10 (5) + 3 (3) + 13 (1) = 108 unités de compte.
Exercice 3
Appliquer les méthodes MINILI, MINICO et la technique du coin Nord-Ouest aux
données du tableau suivant :

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

 La méthode MINICO donne :

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

 La méthode Coin Nord-Ouest donne :

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

Le modèle de transport rend son extension possible à d’autres domaines de la


gestion assimilables au problème de transport au sens strict, et qui mettent en relation des
points-origine et des points-destination.
Il s’agit d’optimiser toute la succession des opérations de production,
d’approvisionnement et de commercialisation. L’optique n’est plus seulement de minimiser
le coût de transport, mais de maximiser la rentabilité de l’ensemble de ces activités.
6.1. Planification de la production, du stockage et du transport
Le problème de planification de la production, du stockage et de transport est un cas
particulier des modèles de transport dans lequel le transfert des quantités données d’un
produit de points-origines au points-destinations s’effectuent non seulement dans deux
espaces géographiques (les usines et les entrepôts), mais aussi en des périodes différentes
(date de production et date de vente ou de livraison). Bien entendu, entre les deux périodes,
il y a le stockage du produit qui entraîne un coût supplémentaire.
6.1.1. Formulation du problème
La planification de la production et des stocks se pose en ces termes : le coût de
transport d’un produit fabriqué par chaque usine U i dans la période l et vendu aux différents
marchés Ej à la période l' étant connu, il s’agit de déterminer les quantités x iljl' produites par
chaque usine Ui à la période l et acheminée vers le marché Ei à la période l’.
Le modèle permet ainsi d’établie le planning de production, de stockage et des
opérations de transport. La présentation des données se fait sous forme de tableau ci-après :
Entités Quantité
E1 E2 … En disponible
1 2 … 1 2 … … 1 2 … (qi)
1 C1111 C1112 … C1121 … … … C11n1 C11n2 … q11
U1 2 C1211 C1212 … C1221 … … … C12n1 C12n2 … q12
… … … … … … … … … … … …
1 C2111 C2112 … C2121 … … … C21n1 C21n2 … q21
U2 2 C2211 C2212 … C2221 … … … C22n1 C22n2 … q22
Usines

… … … … … … … … … … … …
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 …

Les cilji' représentent le coût d’approvisionnement du produit fabriqué par l’usine i à la


période l et vendu à l’entité j à période l'. Ces cilji' incluent deux éléments : le coût de
transport cij et le coût de stockage qui va dépendre de l’écart entre la date de production et
la date de vente. Si S est le coût de stockage (mensuel), S(l' – l) indiquera le stockage d’un
produit fabriqué en i et vendu en j.

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

S/C ∑ x ilj l ≤ qil


'
'
( ∀ i, i = 1, 2, …, m et ∀ l, l = 1, 2, …, t) (1)
jl

∑ x ilj l ≥ djl''
( ∀ j, j = 1, 2, …, n et ∀ l', l' = 1, 2, …, t) (2)
il

et x ilj l ≥ 0 '

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).
6.1.3. Résolution du modèle de la production et du stock
La méthode couramment utilisé pour résoudre le problème de planification de la
production et du stock est la méthode MINITAB. Il s’agit de la méthode itérative de
satisfaction des demandes exprimées par les différentes entités en partant du minimum
minimorum ou l’affectation aux relations de coûts croissants du tableau.
L’application de la méthode est faite en se servant du programme de stockage et de
transport de l’exemple ci-dessous.
Exemple
L’entreprise GAE dispose de deux unités de production dont les capacités s’élèvent
respectivement à 1200 et 900, pour chacune de deux périodes sur lesquelles porte la
planification. Elle doit approvisionner trois marchés dont les demandes par période figurent
dans le tableau 6a). Les coûts de transport figurent dans le tableau 6b et le coût de stockage
par période est évalué à 5, pour l’usine 1 et à 7, pour l’usine 2. Le retard dans
l’approvisionnement d’un marché entraîne un coût infini.

Période ( l') 5b) J =1 J =2 J =3


6a) 1 2 i=1 20 15 22
950 1 250 i=2 12 21 23
March
é (j)

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

l=1 900 0 0 0 0 0 900


U2
l=2 900 0 0 0 0 900

dj 950 1 250 700 1 000 200 100 4 800

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

S/C ∑ x ij ≥ dj ( ∀j, j = 1, 2, …, n) (1)


i

∑ 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.

L’application de la technique est faite en se servant du cas de la BRALIMA (exemple 1)


et dont le coût de transport figure dans le tableau 6a). Les coûts de production dans chaque
unité et le prix de vente dans chaque zone commerciale sont donnés dans le tableau 6b).
Tableau 6a)

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

L’application de la règle MAXITAB aux données du problème donne le tableau


suivant :
E1 E2 E3 E4 qi
U1 300 100 0 500 ? 1 000
U2 0 0 0 0 ? 200
U3 400 0 0 0 400
?
dj 700 100 300 500 1600
Compte tenu de l’ensemble des données, il y a lieu d’introduire une usine fictive U F et
un marché fictif EF destiné à équilibrer les données (en langage économique, l’usine fictive et
le marché fictif sont destinés respectivement à produire pour le marché non rentable (E 3) et
à absorber les productions des unités (U1 et U2) peu efficaces).
Ainsi, la solution du problème est donc présentée dans le tableau suivant :
E1 E2 E3 E4 EF qi
U1 300 100 0 500 100 1 000
U2 0 0 0 0 200 200
U3 400 0 0 0 0 400
UF 0 0 300 0 0 300
dj 700 100 300 500 300 1600

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

Le problème d’affectation représente un cas particulier des modèles de


transport dans lequel chaque ressource disponible est affectée à une et une seule
destination. Ainsi, toutes les disponibilités aux points-origine (Σq i) et toutes les demandes
aux différents points-destination ((Σdj) sont égales à 1.
7.1. Formulation du problème d’affectation
Le problème d’affectation prend souvent la forme suivante : on désire exécuter à
moindre coût n activités (A) par n entités (E). Pour chaque activité, chaque entité a fourni un
devis dont les informations sont condensées dans un tableau des coûts ayant la forme
suivante :
Entités
E1 E2 … Ej … En Disponibilité

A1 C11 C12 … C1j … C1n 1


A2 C21 C22 … C2j … C2n 1
… … … … … … … …
Activités

Ai1 Ci1 Ci2 … Cij … Cin 1


… … … … …
An Cn1 Cm2 … Cmj … Cmn 1
Demande 1 1 … 1 … 1 n

Les Cij représentent le coût d’affectation de l’activité i à l’entité j. Dans la mesure où


une entité ne peut réaliser une et une seule activité et où toutes les activités doivent être
réalisées, quelle est la meilleure affectation de ces activités aux différentes entités.
7.2. Formulation mathématique du problème d’affectation
Soit cij le coût de réalisation de l’activité i par l’entité j. L’on définit xij comme suit :

{
' '
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

Si l’entreprise veut minimiser le coût total d’affectation, quelle est la meilleure


affectation possible de ces activités aux sous-traitants ?
Résolution
Nous résolvons cet exercice en prenant comme point de départ l’apparition des zéros
dans les lignes. Le même exercice sera résolu en considérant aussi l’apparition des zéros
dans les colonnes comme point de départ.
Etape 1. Obtention des zéros
Déduisons de chaque ligne le chiffre minimum qui y figure : les chiffres minimum des
lignes 1 à 5 sont respectivement 5, 7, 4, 10 et 4. Nous obtenons ainsi le tableau 5a ci-
dessous.
Tableau 5a Sous-traitants
I II III IV V
R 9 5 3 0 6
P 1 0 9 3 2
Activités

A 7 1 6 0 8
C 4 7 0 1 4
D 4 6 0 12 5

Déduisons, ensuite, de chaque colonne de ce nouveau tableau le chiffre minimum qui


y figure : les chiffres minimum des colonnes 1 à 5 sont respectivement 1, 0, 0, 0 et 2. Nous
obtenons ainsi le tableau 5b ci-dessous.
Tableau 5b Sous-traitants
I II III IV V
R 8 5 3 0 4
P 0 0 9 3 0
Activités

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

Le tableau 5f indique que :


 Le contrat de Remblayage (R) doit être affecté au sous-traitant IV, dont le coût est 5 ;
 Le contrat de Ponts et Chaussées (P) doit être affecté au sous-traitant I, dont le coût
s’élève à 8 ;
 Le contrat d’Asphaltage (A) doit être affecté au sous-traitant II, dont le coût est 5 ;
 Le contrat de Canalisation (C) doit être affecté au sous-traitant V, dont le coût revient
à 14 ; et
 Le contrat de Décoration (D) doit être affecté au sous-traitant III, dont le coût s’élève
à 4.
Ainsi, par cette affectation, économiquement rationnelle, le coût total d’exécution de
ces différentes activités par les cinq sous-traitants se chiffre à 36 millions USD. C’est le coût
total minimum.
Méthode alternative
Nous résolvons le même exercice en considérant l’apparition des zéros dans les
colonnes comme point de départ.
Etape 1. Obtention des zéros
Déduisons de chaque colonne le chiffre minimum qui y figure : les chiffres minimum
des colonnes 1 à 5 sont respectivement 8, 5, 4, 4 et 9. Nous obtenons ainsi le tableau 5g ci-
dessous.
Tableau 5g Sous-traitants
I II III IV V
R 6 5 4 1 2
P 0 2 12 6 0
Activités

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

Etape 2. Test d’optimalité


 Encerclons, successivement, un de zéro des colonnes (ou des lignes) qui comporte 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é.
Nous obtenons, ainsi, le tableau 5c ci-dessous.
Tableau 5i I II III IV V
R 5 4 3 0 1
P 0 2 12 6 0
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

7.5. Application de la méthode hongroise dans le cas de maximisation


S’agissant d’un problème de maximisation, la méthode hongroise est appliquée en
suivant les mêmes étapes ci-haut exposées, moyennant les transformations suivantes :
- changer les signes de la matrice des profits associés, ce qui revient à multiplier
par (-1) tous les éléments de cette matrice ; ou alors
- retrancher tous les éléments de cette matrice par le nombre le plus élevé de cette
matrice.
Ainsi, le problème de maximisation de profit devient similaire à celui de minimisation
des coûts.
Exemple
Le Secrétaire Général Académique de l’ISPALE veut affecter cinq professeurs pour
dispenser les cours de Mathématiques (M), Statistique (S), Econométrie (E), Recherche
opérationnelle (R) et Analyse des Projets (A). Les aptitudes des professeurs à dispenser ces
110
enseignements sont évalués par les notes obtenues dans ces différentes matières et
consignées dans le tableau ci-dessous.
Professeurs
I II III IV V
M 15 09 07 08 02
Matières

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

Etape 2. Obtention des zéros et test d’optimalité

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

Etape 1. Obtention des zéros et test d’optimalité


b) Personnes-ressources c) Personnes-ressources
V W X Y Z I II III IV V
A 0 18 9 3 12 A 0 18 9 3 12
Postes vacants

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

Le tableau d) indique que :


114

La grue en A doit être affecté dans la ville III, dont le temps d’acheminement est de 9
jours ;
 La grue en B doit être affecté dans la ville IV, dont le temps d’acheminement est de 5
jours ;
 La grue en C doit être affecté dans la ville V, dont le temps d’acheminement est de 6
jours ;
 La grue en D doit être affecté dans la ville I, dont le temps d’acheminement est de 5
jours ; et
 La grue en E doit être affecté dans la ville II, dont le temps d’acheminement est de
10 jours ;
Ainsi, par cette affectation, économiquement rationnelle, le coût total d’exécution de
ces différentes activités par les cinq sous-traitants revient à 36 millions USD. C’est le coût
total minimum.

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.

Etape 1. Obtention des zéros et test d’optimalité


a) Ville destination b) Ville destination
V W X Y Z I II III IV V
A 12 9 3 0 6 A 12 7 3 0 6
B 11 12 6 0 6 B 11 10 6 0 6
Ville origine

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.

Etape 2. Réaménagement du tableau et Nouveau test d’optimalité

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 :

c) Ville destination b) Ville destination


V W X Y Z I II III IV V
A 9 4 0 0 3 A 9 4 0 0 3
B 8 7 3 0 3 B 8 7 3 0 3
Ville origine

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

La ligne D, E et la colonne Y contiennent moins de zéros (2 chacune), la solution sera


trouvée en exploitant ces 3 entrées :
 Entrée par D : il y a 2 alternatives (DV et DW) ; ceci donne :
DV, AW et EY (Tableau d)
DV, AY et EW (Tableau e)
DW, AV et EY (Tableau f)
 Entrée par E : il y a 2 alternatives (EW et EY) ; ceci donne :
EW, AY et DV (Tableau e)
EY, AV et DW (Tableau f)
EY, AW et DV (Tableau d)
 Entrée par Y : il y a 2 alternatives (AY et EY) ; ceci donne :
AY, DV et EW (Tableau e)
EY, AV et DW (Tableau f)
EY, AW et DV (Tableau d)
On aboutit au même résultat, soit trois tableaux d’affectation optimale. Le tableau ci-
après indique que la valeur de la solution (l’optimum) est identique dans les trois cas.
I II III
Affectation Niveau de Affectation Niveau de Affectation Niveau de
satisfaction satisfaction satisfaction
C → X 1 C → X 1 C → X 1
B → Z 3 B → Z 3 B → Z 3
D → V 1 D → V 1 D → V 3
A → W 2 A → W 4 A → W 1
E → Y 3 E → Y 1 E → Y 2
Total 10 Total 10 Total 10

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

Vous aimerez peut-être aussi