You are on page 1of 124

REPUBLIQUE DU BENIN

Ministère de l’Enseignement Supérieur et de la


Recherche Scientifique

Université d’Abomey Calavi

Ecole Polytechnique d’Abomey Calavi

MANUEL DE COURS

Notes de Cours :
RECHERCHE OPERATIONNELLE

Enseignant :
Joël M. ZINSALO

1e Edition
Recherche Opérationnelle

CONTENU

Chapitre 1 : INTRODUCTION A LA RECHERCHE OPERATIONNELLE


Chapitre 2 : PROGRAMMATION LINEAIRE : RESOLTION PAR LA MRTHODE
GRAPHIQUE

Chapitre 3 : METHODE DU SIMPLEXE ET DUALITE

Chapitre 4 : UTILISATION DES VARIABLES ARTIFICIELLES


Chapitre 5 : NOTIONS ELEMENTAIRES SUR LES GRAPHES
Chapitre 6 : ORDONNANCEMENT MPM - PERT
Chapitre 7 : PERT PROBABILISTE
Chapitre 8 : PROBLEMES DE TRANSPORT ET D’AFFECTATION

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 2


Recherche Opérationnelle

CHAPITRE 1

INTRODUCTION A LA RECHERCHE OPERATIONNELLE

La recherche opérationnelle (aussi appelée aide à la décision) peut être définie


comme l'ensemble des méthodes et techniques rationnelles orientées vers la
recherche de la meilleure façon d'opérer des choix en vue d'aboutir au résultat
visé ou au meilleur résultat possible. Elle fait partie des «aides à la décision»
dans la mesure où elle propose des modèles conceptuels en vue d'analyser et de
maitriser des situations complexes pour permettre aux décideurs de comprendre
et d'évaluer les enjeux et d'arbitrer et/ou de faire les choix les plus efficaces.
Le domaine fait largement appel au raisonnement mathématique ( logique,
probabilités, analyse de données ) et à la modélisation des processus. Il est
fortement lié à l'ingénierie des systèmes, ainsi qu'au management du système
d'information.

1. Historique
Dès le XVIIe siècle, des mathématiciens comme Blaise Pascal tentent de résoudre
des problèmes de décision dans l'incertain avec l'espérance mathématique.
D'autres, au XVIIIe et XIXe siècle, résolvent des problèmes combinatoires. Au
début du XXe siècle, l'étude de la gestion de stock peut être considérée comme
étant à l'origine de la recherche opérationnelle moderne avec la formule du lot
économique (dite formule de Wilson) proposée par Harris en 1913.
Mais ce n'est qu'avec la Seconde Guerre mondiale que la pratique va s'organiser
pour la première fois et acquérir son nom. En 1940, Patrick Blackett est appelé
par l'état-major anglais à diriger la première équipe de recherche opérationnelle,
pour résoudre certains problèmes tels que l'implantation optimale de radars de
surveillance ou la gestion des convois d'approvisionnement. Le qualificatif
« opérationnelle » vient du fait que la première application d'un groupe de travail
organisé dans cette discipline avait trait aux opérations militaires. La
dénomination est restée par la suite, même si le domaine militaire n'est plus le
principal champ d'application de cette discipline.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 3


Recherche Opérationnelle

Après la guerre, les techniques se sont considérablement développées, grâce,


notamment, à l'explosion des capacités de calcul des ordinateurs. Les domaines
d'application se sont également multipliés.
2. Types de problèmes traités
La recherche opérationnelle peut aider le décideur lorsque celui-ci est confronté à
un problème combinatoire, aléatoire ou concurrentiel.
Un problème est dit combinatoire lorsqu'il comprend un grand nombre de
solutions admissibles parmi lesquelles on cherche une solution optimale ou
proche de l'optimum. Exemple typique : déterminer où installer 5 centres de
distribution parmi 30 sites d'implantation possibles, de sorte que les coûts de
transport entre ces centres et les clients soient minimum. Ce problème ne peut
être résolu par une simple énumération des solutions possibles par l'esprit
humain, puisqu'il en existe (30 x 29 x 28 x 27 x 26) / (1 x 2 x 3 x 4 x 5) =
142 506 (!). Et même si un problème de cette taille peut être résolu par
énumération par un ordinateur, les décideurs sont régulièrement confrontés à
des problèmes infiniment plus complexes, où le nombre de solutions acceptables
se compte en milliards de milliards (voir explosion combinatoire).
Un problème est dit aléatoire s'il consiste à trouver une solution optimale face à
un problème qui se pose en termes incertains. Exemple typique : connaissant la
distribution aléatoire du nombre de personnes entrant dans une administration
communale en une minute et la distribution aléatoire de la durée de traitement
du cas d'une personne, déterminer le nombre minimum de guichets à ouvrir pour
qu'une personne ait moins de 5% de chances de devoir attendre plus de 15
minutes.
Un problème est dit concurrentiel s'il consiste à trouver une solution optimale
face à un problème dont les termes dépendent de l'interrelation entre ses propres
agissements et ceux d'autres décideurs. Exemple typique : fixer une politique de
prix de vente, sachant que les résultats d'une telle politique dépendent de la
politique que les concurrents adopteront.

3. Applications pratiques
Les problèmes que la R.O. peut aider à résoudre sont soit stratégiques (on peut
citer le choix d'investir ou pas, le choix d'une implantation, le dimensionnement

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 4


Recherche Opérationnelle

d'une flotte de véhicules ou d'un parc immobilier…) ou opérationnelles


(notamment l'ordonnancement, la gestion de stock, l'affectation de moyens
(humains ou matériels) à des tâches, les prévisions de ventes…).
La gestion de projets est une composante très importante de la communauté de
recherche opérationnelle. De nombreux travaux traitent de l'ordonnancement et
de la gestion de projets, mais aussi de logistique (tournées de véhicule,
conditionnement…), de planification, et de problèmes d'emploi du temps.
Dans le cadre de l'industrie manufacturière, la recherche opérationnelle permet
notamment de trouver des plans de productions (ordonnancement de
production), de disposer au mieux les machines dans un atelier, de diminuer le
gaspillage des matières premières (problèmes de découpe) ou de l'énergie ou bien
encore d'optimiser le conditionnement et la livraison des produits intermédiaires
ou finis.
Dans le domaine de la finance, les problèmes d'investissement sont des
problèmes classiques de recherche opérationnelle. Ils consistent en général à
maximiser le profit (ou l'espérance de profit) obtenu à partir d'un montant donné
en combinant au mieux les différentes possibilités offertes à l'investisseur.
La recherche opérationnelle a aussi des applications dans le domaine de l'énergie.
Elle est couramment utilisée dans l'industrie pétrolière, principalement dans
l'établissement des plans de production, l'approvisionnement des bruts,
l'utilisation des unités de raffinage, et le choix des canaux de distribution les plus
rentables. De même, les opérateurs du Marché de l'électricité font largement
appel à la recherche opérationnelle tant pour des problèmes stratégiques (par
exemple des investissements sur le réseau) que pour des questions plus
opérationnelles (stabilité du réseau, prévisions…). Pour plus de détails, voir Plans
d'approvisionnement, de production et de distribution du pétrole
Les applications dans le domaine de l'informatique sont très nombreuses elles
aussi. On peut citer, entre autres, le choix de la localisation et du nombre de
serveurs à mettre en place, de la capacité de stockage, de la puissance de calcul
et du débit du réseau, le choix d'une architecture informatique (application
centralisée / distribuée, traitements en temps réel ou en différé, réseau maillé ou
en étoile, etc.), et l'ordonnancement dans les systèmes d'exploitation.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 5


Recherche Opérationnelle

4. Implantation dans le monde des entreprises


Très peu d'entreprises emploient des chercheurs opérationnels pour aider le
décideur à résoudre ses problèmes. Lorsque de tels problèmes se posent, ils sont
généralement soumis à un gros cabinet de conseil ou au département de
recherche opérationnelle d'une université (bien que la tendance actuelle soit à
l'externalisation de ces compétences universitaires via de petites sociétés privées
appelées spin-off, répondant mieux aux besoins du monde industriel). Certains
problèmes simples peuvent être résolus au sein même de l'entreprise, la plupart
des universités ayant intégré des cours d'introduction à la recherche
opérationnelle dans les programmes des ingénieurs, des mathématiciens, des
informaticiens, des contrôleurs de gestion et, moins souvent, des économistes.
Malgré son importance intrinsèque, la R.O. est encore peu utilisée dans le monde
industriel, soit à cause du manque d'(in)formation des décideurs, soit par le
manque de pertinence de l'outil ou sa difficulté de mise en œuvre. Les principales
craintes émises par le décideur quant à l'application de modèles R.O. dans son
entreprise sont :
• Une prise en compte limitée des facteurs
Pour les questions stratégiques, la réponse « pure et parfaite » d'une
solution mathématique semble rarement applicable de facto. Même si la
recherche opérationnelle intègre beaucoup de facteurs, si certains aspects
sont relativement faciles à modéliser au sens mathématique du terme (le
coût, la rentabilité, la distance, la durée, la cadence, par exemple), d'autres
éléments sont en revanche plus difficiles à modéliser : contraintes légales,
volonté commerciale de faire barrage à un concurrent, importance des
relations avec les élus, climat social, etc. Le poids de ces éléments dans la
décision est pourtant important, parfois déterminant.
• Un investissement important
L'outil mathématique lui-même exige un niveau élevé de connaissances
mathématiques, une bonne aptitude à modéliser les problèmes et décrire
les facteurs ; ces contraintes sont consommatrices de temps et d'argent
(que ce soit par développement interne, qui consomme des ressources; ou
par développement externe, qui consomme de l'argent). Il est alors

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 6


Recherche Opérationnelle

nécessaire de trouver un équilibre entre l'investissement nécessaire et les


retombées prévues.
• Pour des événements peu fréquents
L'entreprise ne bénéficie pas de l'effet d'expérience : d'une fois sur l'autre, le
problème concerne un service différent, ou les responsables ont changé
entre deux études. Il est donc difficile d'entretenir les compétences R.O. à
l'intérieur de l'entreprise.
Le décideur devra prendre ces différents aspects en compte lorsqu'il décidera ou
non de mettre en œuvre des modèles de recherche opérationnelle dans son
entreprise.

5. Relations avec d'autres disciplines


La recherche opérationnelle se situe au carrefour de différentes sciences et
technologies. Par exemple, l'analyse économique est souvent nécessaire pour
définir l'objectif à atteindre ou pour identifier les contraintes d'un problème.
Elle est aussi liée à l'ingénierie des systèmes. Par rapport à celle-ci, le champ
d'application de la recherche opérationnelle est historiquement plus axé sur les
événements incertains et l'industrie, et ses méthodes plus particulièrement
mathématiques.
La recherche opérationnelle utilise de nombreuses méthodes issues de théories
mathématiques diverses. En ce sens, une partie de la recherche opérationnelle
peut être considérée comme une branche des mathématiques appliquées. Les
mathématiques, notamment les statistiques, contribuent aussi à poser
efficacement les termes d'un problème.
La théorie des graphes sert de support à la résolution d'un vaste échantillon de
problèmes, notamment certains issus de l'algorithmique classique, tels que les
problèmes de plus court chemin, le problème du voyageur de commerce, les
problèmes d'ordonnancement de tâches, les problèmes de planning ou encore les
problèmes d'optimisation de flux.
Les progrès de l'informatique sont intimement liés à l'accroissement des
applications de la recherche opérationnelle. Une puissance de calcul importante
est nécessaire à la résolution de problèmes de grande taille. Cette puissance est
cependant loin de constituer une panacée : la théorie de la complexité des

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 7


Recherche Opérationnelle

algorithmes nous apprend que certains problèmes ne peuvent pas être résolus de
manière optimale dans un temps raisonnable, même si l'on considère des
ordinateurs un milliard de fois plus puissants que ceux d'aujourd'hui.
Plusieurs méthodes de résolution de problèmes sont issues de l'intelligence
artificielle. Alors que l'approche de l'intelligence artificielle est de proposer des
méthodes de résolution génériques, la recherche opérationnelle utilise ces
méthodes en les spécialisant pour les rendre plus efficaces à résoudre des classes
plus restreintes de problèmes.
On peut aussi citer la théorie des jeux, bien connue des économistes, qui aide à
résoudre les problèmes concurrentiels.

6. Principales (classes de) méthodes


• Algorithmes polynomiaux
Certains problèmes de recherche opérationnelle ne sont pas NP-complets.
Dans ce cas, on utilise un algorithme polynomial pour le résoudre, si le
polynôme est de degré raisonnable.
• Programmation dynamique
Certains problèmes ont de bonnes caractéristiques qui permettent de les
résoudre à l'aide d'une formule de récurrence. Les méthodes de
programmation dynamique peuvent alors éventuellement permettre de
résoudre le problème avec une complexité polynomiale ou pseudo-
polynomiale.
• Processus stochastiques
Les processus stochastiques concernent tous les problèmes aléatoires, en
particulier des problèmes de fiabilité (de systèmes, de composants
électroniques…) et des phénomènes d'attente.
• Simulation informatique
La simulation est souvent employée pour résoudre des problèmes de RO,
notamment dans le milieu non académique.
• Optimisation linéaire et non linéaire
L'optimisation linéaire est très souvent utilisée pour résoudre des
problèmes combinatoires. Elle permet de résoudre très efficacement les
problèmes dans lesquels les variables sont continues. Lorsqu'il y a des

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 8


Recherche Opérationnelle

variables discrètes, optimisation linéaire et méthodes arborescentes (voir ci-


après) peuvent être combinées.
L'optimisation non linéaire peut aussi être utilisée. La possibilité d'utiliser
des contraintes ou des fonctions objectifs non linéaires offre une puissance
de modélisation très importante mais les algorithmes de résolution des
problèmes d'optimisation non linéaire sont significativement moins
efficaces que ceux de l'optimisation linéaire.
• Méthodes de complémentarité linéaire et non linéaire
• Méthodes arborescentes
Les méthodes de type A* ou branch and bound sont couramment utilisées
pour trouver la solution exacte d'un problème de recherche opérationnelle.
Pour une résolution efficace, un soin particulier est apporté au calcul de
bornes supérieures ou inférieures pour la valeur de la solution.
La programmation par contraintes permet de mettre en œuvre rapidement
et efficacement de telles méthodes de recherche arborescente. Plusieurs
bibliothèques (logiciels) d'optimisation commerciales ou non reposent sur
cette approche (ILOG Solver, Chip, Mozart/Oz, FaCiLe). De nombreux
logiciels d'optimisation de problèmes réels utilisent ainsi cette technologie.
• Heuristiques et métaheuristiques
Lorsque la solution optimale ne peut être obtenue en un temps
raisonnable, on a souvent recours à des méthodes approchées de type
heuristique ou métaheuristique.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 9


Recherche Opérationnelle

CHAPITRE 2 :
PROGRAMMATION LINEAIRE : RESOLTION
PAR LA MRTHODE GRAPHIQUE

À partir de la fin de la Seconde Guerre mondiale, de nouvelles méthodes


permirent de résoudre des problèmes complexes là où les méthodes classiques
échouaient. Ces méthodes furent connues sous le nom de programmation
linéaire, développées principalement par George B. Dantzig (né le 8 novembre
1914), mathématicien américain et créateur de la méthode du Simplexe, et L.
Kantorovich (1912-1986).
Danzig, outre la programmation linéaire, étudia entre autres la programmation
mathématique, la prise de décision et les modèles de planification à large échelle.
L’impact de son œuvre fut considérable en gestion et en économie et ses
méthodes restent totalement d’actualité.
De manière générale, la résolution de problèmes de programmation
mathématique vise à déterminer l’allocation optimale (c’est-à-dire la meilleure
combinaison possible) de ressources limitées pour atteindre certains objectifs. Les
allocations doivent minimiser ou maximiser une fonction dite objectif. En
économie, ces fonctions sont par exemple le profit ou le coût. Ces problèmes,
traités par la programmation mathématique, se distinguent des problèmes
d’optimisation classique par le fait que leurs solutions sont d’ordre numérique.
Celles-ci sont obtenues par une technique numérique itérative, alors que les
solutions à un problème classique sont en général données sous forme de
formules fermées.

1. Définitions
On appelle Programmation Linéaire, le problème mathématique qui consiste à
optimiser (maximiser ou minimiser) une fonction linéaire de plusieurs variables
qui sont reliées par des relations linéaires appelées contraintes. Les problèmes de
programmations linéaires sont généralement liés à des problèmes d’allocations de
ressources limitées, de la meilleure façon possible, afin de maximiser un profit ou
de minimiser un coût. Le terme meilleur fait référence à la possibilité d’avoir un
ensemble de décisions possibles qui réalisent la même satisfaction ou le même

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 10


Recherche Opérationnelle

profit. Ces décisions sont en général le résultat d’un problème mathématique. La


programmation linéaire est définie donc comme étant un cas particulier de la
programmation mathématique pour laquelle la fonction objectif et les contraintes
sont linéaires.

2. Formulation d’un programme linéaire

Exercice introductif :
Soit à résoudre le problème suivant :
Une usine fabrique 2 pièces P1 et P2 usinées dans deux ateliers A1 et A2. Les
temps d'usinage sont
pour P1: de 3 heures dans l'atelier A1 et de 6 heures dans l'atelier A2
pour P2: de 4 heures dans l'atelier A1 et de 3 heures dans l'atelier A2.
Le temps de disponibilité hebdomadaire de l'atelier A1 est de 160 heures et celui
de l'atelier A2 de 180 heures.
La marge bénéficiaire est de 1200 F pour une pièce P1 et 1000 F pour une pièce
P2.
Quelle production de chaque type doit-on fabriquer pour maximiser la marge
hebdomadaire?
Le problème peut se formaliser de la façon suivante :
variables économiques ou d'activité: ce sont les inconnues
x1 = quantité de pièces P1 à fabriquer
x2 = quantité de pièces P2 à fabriquer
3 x1 + 4 x2 ≤ 160 contrainte due à l'atelier A1
contraintes économiques
6 x1 + 3 x2 ≤ 180 contrainte due à l'atelier A2
contraintes de signe x1 ≥ 0 ; x2 ≥ 0
fonction économique ou objectif z = 1200 x1 + 1000 x2 à maximiser

Les conditions de formulation d’un Programme Linéaire

La programmation linéaire comme étant un modèle admet des hypothèses (des


conditions) que le décideur doit valider avant de pouvoir les utiliser pour
modéliser son problème. Ces hypothèses sont :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 11


Recherche Opérationnelle

a) Les variables de décision du problème sont positives


b) Le critère de sélection de la meilleure décision est décrit par une
fonction linéaire de ces variables, c’est à dire, que la fonction ne peut
pas contenir par exemple un produit croisé de deux de ces variables. La
fonction qui représente le critère de sélection est dite fonction objectif
(ou fonction économique).
c) Les restrictions relatives aux variables de décision (exemple: limitations
des ressources) peuvent être exprimées par un ensemble d’équations
linéaires. Ces équations forment l’ensemble des contraintes.

Les paramètres du problème en dehors des variables de décisions ont une valeur
connue avec certitude.

Généralement il y a trois étapes à suivre pour pouvoir construire le modèle d'un


programme linéaire :
a) Identifier les variables du problème à valeur non connues (variable de
décision) et les représenter sous forme symbolique (exp. x1, y1 ).
b) Identifier les restrictions (les contraintes) du problème et les exprimer
par un système d’équations linéaires.
c) Identifier l’objectif ou le critère de sélection et le représenter sous une
forme linéaire en fonction des variables de décision. Spécifier si le critère
de sélection est à maximiser ou à minimiser.

Exemple 2 : Problème de médecine


Un spécialiste en médecine a fabriqué un médicament (des pilules) pour guérir les
sujets atteints d’un rhume. Ces pilules sont fabriquées selon deux formats :

• Petite taille : elle contient 2 grains d’aspirine, 5 grains de bicarbonate et 1


grain de codéine.
• Grande taille : elle contient 1 grain d’aspirine, 8 grains de bicarbonate et 6
grains de codéine.
Pour guérir la maladie, le sujet a besoin de 12 grains d’aspirine, 74 grains de
bicarbonate et 24 grains de codéine. Déterminer le nombre de pilules minimales à
prescrire au sujet pour qu’il soit guérit.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 12


Recherche Opérationnelle

Formulation du problème en un PL :

Le problème de médecine présente certaines ressemblances avec le problème de


l’agriculture, dans les deux cas c’est un problème d’allocation de ressources.

Les variables de décision qui représentent des valeurs inconnues par le décideur
qui est dans ce cas le spécialiste en médecine sont :

• x1 : le nombre de pilules de petite taille à prescrire.


• x2 : le nombre de pilules de grande taille à prescrire.
On vérifie bien que les variables de décision x1 et x2 sont positives : x1 ≥ 0, x2 ≥ 0 .

Les contraintes imposées par le problème sur les valeurs possibles de x1 et x2


sont :

• La prescription doit contenir des pilules avec au moins 12 grains d’aspirine.


Sachant qu’une petite pilule contient 2 grains d’aspirine et qu’une grande
pilule contient un seul grain d’aspirine, on obtient la contrainte suivante :
2 x1 + x2 ≥ 12 .
• De la même façon que pour l’aspirine, la prescription du spécialiste en
médecine doit contenir au moins 74 grains de bicarbonate. Ainsi la contrainte
suivante doit être satisfaite : 5 x1 + 8 x2 ≥ 74 .

• Finalement la contrainte imposée par le fait que la prescription doit contenir


au moins 24 grains de codéine est x1 + 6 x2 ≥ 24 .
Etape 3 : Identification de la fonction objectif. On remarque qu’il y a plusieurs
couples de solutions ( x1 , x2 ) qui peuvent satisfaire les contraintes spécifiées à
l’étape 2. La prescription doit contenir le minimum possible de pilules. Donc le
critère de sélection de la quantité de pilules à prescrire est celle qui minimise le
nombre total des pilules z = x1 + x 2 .

Le programme linéaire qui modélise ce problème médical est donc le suivant :

Min x1 + x 2
s .c . 2 x 1 + x 2 ≥ 12
5 x 1 + 8 x 2 ≥ 74
x 1 + 6 x 2 ≥ 24
x1 ≥ 0 , x 2 ≥ 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 13


Recherche Opérationnelle

3. Méthodologie
Cette méthode n'est applicable que dans le cas où il n'y a que deux variables. Son
avantage est de pouvoir comprendre ce que fait la méthode générale du Simplexe,
sans entrer dans la technique purement mathématique.
Les contraintes économiques et de signe sont représentées graphiquement par
des demi-plans dont l'intersection est un ensemble convexe (c.à.d. tout segment
de droite dont les extrémités appartiennent à l'ensemble est entièrement inclus
dans cet ensemble). Les solutions, si elles existent appartiennent donc à cet
ensemble appelé région des solutions admissibles.

Il s'agit donc de chercher à l'intérieur de ce domaine, le couple (x1, x2)


maximisant la fonction objectif.

Or l'équation 1200 x1 + 1000 x2 = z0 est représentée par une droite de pente


constante (-1,2) dont tous les points (x1 , x2) fournissent la même valeur z0 pour
la fonction économique. En particulier, la droite 1200 x1 + 1000 x2 = 0 passe par
l'origine et donne une valeur nulle à la fonction économique. Pour augmenter la
valeur de z0 et donc la fonction économique, il suffit d'éloigner de l'origine (dans
le quart de plan x1 ≥ 0 ; x2 ≥ 0) la droite de pente -1,2. Pour respecter les

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 14


Recherche Opérationnelle

contraintes, cette droite sera déplacée jusqu'à l'extrême limite où il n'y aura plus
qu'un point d'intersection (éventuellement un segment) avec la région des
solutions admissibles.

On remarquera que la solution optimale se trouve nécessairement sur le pourtour


de la région des solutions admissibles.
La solution se trouvant sur les deux droites d'équation
3 x1 + 4 x2 = 160
6 x1 + 3 x2 = 180
la résolution de ce système conduit à la solution x1 =16 , x2 = 28, d'où z = 47200.
Prenons l’exemple 2 relatif au problème de médecine. Le programme linéaire est
le suivant :
Min x1 + x2
s.c. 2 x1 + x2 ≥ 12
5 x1 + 8 x2 ≥ 74
x1 + 6 x2 ≥ 24
x1 ≥ 0, x2 ≥ 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 15


Recherche Opérationnelle

Un bon choix se base sur une lecture des différents paramètres du programme
linéaire. Dans notre cas, on ne peut qualifier de bon, le choix de 20 comme unité
dans les deux axes.
Pour l’exemple, on peut choisir le système d’axes suivant :

x2

12

6
3

x1
6 12 24

Parmi les solutions possibles d’un problème, il y a ceux qui vont satisfaire toutes
les contraintes du programme, appelés solutions réalisables, et ceux qui vont
satisfaire une partie ou aucune de ces contraintes, appelés solutions non
réalisables.
Une représentation graphique des inégalités (des contraintes) va nous permettre
de déterminer l’ensemble des solutions réalisables.
Revenons à l’exemple 2 du problème de médecine.
Une des contraintes de ce problème est celle relative au grain d’aspirine :
2 x1 + x2 ≥ 12 .

L’ensemble des solutions qui vérifient cette inégalité est le même que celui qui
vérifie 2 x1 + x2 = 12 et 2 x1 + x2 > 12 .

x2

12

6
3

x1
6 12 24

L’ensemble des solutions qui correspond à l’équation est l’ensemble des points de
la droite l définie par x2 = −2 x1 + 12 . Cette droite admet une valeur de la pente égale
à –2 et intercepte l’axe des ordonnées en 12 (voir figure ci-dessus).
L’inégalité 2 x1 + x2 > 12 correspond à un demi-plan limité par la droite x2 = −2 x1 + 12
. Or cette droite divise le plan en deux demi-plans ouverts donc quel est le demi-
plan à choisir ?

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 16


Recherche Opérationnelle

x2

12 π1

6
3

x1
6 12 24

Pour ce faire, il suffit de prendre un point de l’un des demi-plans (c’est à dire
n’appartenant pas à la droite x2 = −2 x1 + 12 ) et voir s’il vérifie l’inégalité 2 x1 + x2 > 12 .

Par exemple le point de coordonnées (0,0) ne vérifie pas l’inégalité 2 x1 + x2 > 12

donc le demi-plan π1 au-dessus de la droite est celui recherché (voir figure ci-
dessus).
L’espace hachuré représente le demi-plan fermé des solutions qui vérifient la
contrainte 2 x1 + x2 > 12 .
Si on fait de même pour les deux autres contraintes du problème (voir figures
ci-dessous), on obtient les deux autres demi-plans π2 et π3 relatifs aux solutions
vérifiant respectivement les contraintes 5 x1 + 8 x2 ≥ 74 et x1 + 6 x2 ≥ 24 .

π3 π2
9.25

6
4
3

x1 x1
6 12 24 6 14,8 24

Une solution possible du problème est dite réalisable si et seulement si elle vérifie
toutes les contraintes, c’est à dire si elle appartient aux trois demi-plans relatifs à
chaque contrainte du programme linéaire, en d’autre terme à
π1 ∩ π2 ∩ π3 (voir figure).

x2
E nse m b le d es
12 so lu t io n s
réa lisa b le s

x1
6 12 24

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 17


Recherche Opérationnelle

4. Cas particuliers
Problème à solutions multiples
Max x1 + 3 x 2 x2
(2 )

s.c. 2 x1 + 6 x 2 ≤ 30 (1) (1 )
A (3 )
x1 ≤ 10 (2) B

x2 ≤ 4 (3)
10 x1
x1 ≥ 0, x 2 ≥ 0
Z= 0

L’ensemble des points décrit par le segment [AB] représente les solutions optimales du
problème linéaire
Problème avec solution non bornée
Max - 2 x1 + 3 x 2 x2

s.c. x1 ≤ 5 (1) (2 )

2 x1 − 3x 2 ≤ 6 (2)
x1 ≥ 0, x 2 ≥ 0
5 x1
Z=0
(1 )

On peut augmenter la valeur de la fonction objectif dans la direction des flèches indéfiniment
donc la solution est non bornée
Problème impossible
Min 3 x1 + 2 x 2 x2

s.c. x1 + 2 x 2 ≤ 2 (1)
2 x1 + 4 x 2 ≥ 8 (2)
x1 ≥ 0, x 2 ≥ 0
x1
(2 )
(1)

L’espace des solutions réalisables est vide, il est l’intersection des deux zones grises de la
figure ci-dessus

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 18


Recherche Opérationnelle

Problème de dégénerescence

Max x1 + x 2 x2
(2 )
s.c. 3 x1 + 2 x 2 ≤ 40 (1) (1 )
B (3 )
x1 ≤ 10
A
(2)
x2 ≤ 5 (3)
x1 ≥ 0, x 2 ≥ 0 O C x1

Z=0

La solution optimale B(10,5) est dite dégénérée si trois contraintes concourent en ce point.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 19


Recherche Opérationnelle

TRAVAUX DIRRIGES
Exercice 1 :
a) Déterminer le maximum de (x + 3y) sous les contraintes suivantes :
x > 0 et y > 0
2x + 5y 10
3x + 4y 12
b) Déterminer le maximum de (x - y) sous les contraintes suivantes :
x+y -3
2x + y 10
x + 2y 10
c) Déterminer le minimum de (x + 2y) sous les contraintes suivantes :
x et y 0
x + 6y 12
6x + y 12
d) Déterminer le minimum de (2x + 3y) sous les contraintes suivantes :
2x + y 0
x-y 3
x-y -5
Exercice 2
Le gérant d'un hôtel souhaite renouveler le linge de toilette de son établissement. Il a besoin de : 90
draps de bain, 240 serviettes et 240 gants de toilette. Une première entreprise de vente lui propose
un lot A comprenant 2 draps de bain, 4 serviettes et 8 gants pour 200 francs. Une deuxième
entreprise vend pour 400 francs un lot B de 3 draps de bains, 12 serviettes et 6 gants de toilettes.
Pour répondre à ses besoins, le gérant achète x lots A et y lots B.
1. Traduire par un système d'inéquations les contraintes auxquelles satisfont x et y.

2. On considère un plan P rapporté à un repère orthonormé (O ; i, j ). A tout couple (x ; y) on


associe le point M de P de coordonnées (x ; y), en prenant comme unité 2 cm pour 5 lots.
Représentez dans P l'ensemble des points M(x ; y) satisfaisant aux inéquations :
X ≥ 0 et y ≥ 0
2x + 3y ≥ 90
x + 3y ≥ 60
4x + 3y ≥ 120

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 20


Recherche Opérationnelle

3. a) Exprimez en fonction de x et de y la dépense en francs occasionnée par l'achat de x lots A et


de y lots B.
b) Est-il possible de procéder aux achats nécessaires avec 5 000 francs? Justifiez votre réponse.
4. a) Déterminez graphiquement, en précisant la démarche suivie, le nombre de lots A et de lots B à
acheter pour avoir une dépense minimale.
b) Quelle est cette dépense minimale?

Exercice 3
Dans un lycée, un groupe d'élèves se charge de la distribution de pains au chocolat et de croissants
lors de la récréation de dix heures.
Pour pouvoir satisfaire la demande, ils doivent disposer au minimum de 108 pains au chocolat et
de 96 croissants. Deux boulangers proposent pour le même prix :
* l'un le lot A comprenant 12 pains au chocolat et 8 croissants;
* l'autre le lot B composé de 9 pains au chocolat et 12 croissants.
Le but de l'exercice est de déterminer le nombre de lots A et le nombre de lots B qui doivent être
achetés pour satisfaire la demande au moindre coût. On souhaite d'aider d'un graphique.
Pour cela, on rapporte le plan à un repère orthonormé (unité: graphique = 1cm) et, à l'achat de x
lots A et de y lots B, on associe le point de coordonnées (x, y).
1. Placer
* le point E associé à l'achat de 13 lots A et de 14 lots B;
* Le point F associé à l'achat de 10 lots A et de 1 lot B.
Les achats associés aux points E et F permettent-ils de satisfaire la demande?
2. On s'intéresse à la satisfaction de la demande.
a) Montrer que, pour que l'achat correspondant au point de coordonnées (x, y) permette de
satisfaire la demande, les nombres x et y doivent vérifier le système suivant:
4x + 3y ≥ 36

2x + 3y ≥ 24
b) Colorier ou hachurer la région du plan dans laquelle se trouvent les points dont les
coordonnées (x, y) ne sont pas solutions du système :
x et y f 0

4x + 3y ≥ 36
2x + 3y ≥ 24

3. On cherche à minimiser le coût, c'est à dire le nombre (x + y) de lots achetés. Les points
associés à des achats d'un nombre de n lots sont situés sur la droite Dn d'équation : Dn : x + y = n
Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 21
Recherche Opérationnelle

a) Tracer D9 et D11.
b) D'après le graphique, peut-on satisfaire la demande en achetant au total seulement 9 lots ?
En achetant au total 11 lots ? Expliquer les réponses fournies.
c) En utilisant le graphique, déterminer l'achat qui permet de satisfaire la demande au moindre
coût. On ne demande d'expliquer la réponse fournie.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 22


Recherche Opérationnelle

CORRECTION
Exercice 1 :
a)
On représente l'ensemble des points vérifiant le système.
Pour cela, on trace les droites:
• D1 : "x = 0"
• D2: "y = 0"
• D3: "2x + 5y = 10 "
• D4: "3x + 4y = 12 "
On prend un point test (par exemple le point A de coordonnées : A( 1; 1).
On obtient alors la figure suivante :

Puis, on trace une droite D (a) d'équation : "x + 3y = a" sur cette figure.
Par exemple, on trace D (1) d'équation : " x + 3y = 1"
On a alors la figure suivante :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 23


Recherche Opérationnelle

Puis on trace une autre droite D (a) pour une valeur différente de a.
Par exemple, la droite D (2) :

On constate que le fait d'augmenter la valeur de a déplace la droite D (a) dans le sens croissant des
abscisses.
On cherche alors la droite D (a) passant par un point de l'ensemble des contraintes et
correspondant à la plus grande valeur possible de a.
Graphiquement, c'est le point A d'intersection des droites D1 et D3 de coordonnées A(0;2).

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 24


Recherche Opérationnelle

Le maximum de (x + 3y) sous les contraintes (C) est donc atteint pour (x = 0) et (y = 2).
Ce maximum est : (0 + 2*3) = 6.
b)
On utilise les trois droites :
* D1 : " x + y = -3"
* D2 : " 2x + y =10 "
* D3 : "x + 2y = 10"
pour représenter l'ensembles des contraintes.
Puis, on introduit l'ensemble des droites ∆(a) d'équation :
∆ (a) : x- y = a
On trace alors, par exemple, les droites ∆ (0) et ∆ (5).
On constate si a croit, la droite ∆ (a) se déplace dans le sens des "x" croissant.
On constate alors que le point appartenant à l'ensemble des contraintes et par où passe une droite
D(a) avec a maximum est le point appartenant à l'intersection de D1 et D2.
C'est le point A de coordonnées A(13;-16) que l'on détermine en prenant les équations de ces deux
droites.
Le maximum de (x-y) sous les contraintes (C) est donc atteint pour (x = 13)
et (y = - 16) et ce maximum est : Max = 29.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 25


Recherche Opérationnelle

c)
On représente les contraintes en utilisant les droites suivantes:
* D1 d'équation "x = 0", qui est l'axe des ordonnées
* D2 d'équation "y = 0", qui est l'axe des abscisses
* D3 d'équation "x + 6y = 12"
* D4 d'équation "6x + y =12"

Si on trace deux droites ∆(a) d'équation " x + 2y = a", par exemple , sur la figure, on a tracé ∆(30)
et ∆(10), on constate que la droite ∆(a) qui passe par un point des contraintes et qui donne la plus
petite valeur possible de a est celle passant par le point A d'intersection entre D3 et D4.
Pour déterminer les coordonnées de A, on pose alors le système d'équation suivant :
2x + y =10
x + 2y =10

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 26


Recherche Opérationnelle

62 48
La solution de ce système est: "x = " et " y =
35 35
62 48
Les coordonnées de A sont donc : A( ; ).
35 35
Le minimum de (x + 2y) sous les contraintes (C) est donc :
62 48 158
Min = +2 = .
35 35 35
d)
On représente les contraintes (C) en utilisant les droites :
• D1 :" 2x + y = 0"
• D2 : " x - y = 3"
• D3 : " x - y = -5"
Puis on utilise les droites ∆a d'équation " 2x+ 3y = a".
Sur la figure, on a tracé les droites ∆20 et ∆5.

On constate alors que le point de l'ensemble des contraintes par lequel passe la droite ∆a avec la
valeur "a" minimale est le point A d'intersection entre D1 et D2.
Ce point a pour coordonnées : A(1 ; -2).
Le minimum de (2x + 3y) sous les contraintes (C) est donc :
Min = 2.(1) +3.(-2) = - 4

Exercice 2
1) Faisons un tableau pour résumer les contraintes du gérant de l'hôtel :
2)

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 27


Recherche Opérationnelle

Lot A x Lot B y Contraintes


Draps 2 3 90
Serviettes 4 12 240
Gants de toilette 8 6 240
Prix du lot 200 400 200x + 400y

Comme x et y doivent être positifs, l'ensemble des contraintes du gérant peuvent alors s'écrire :

x et y ≥ 0
2x + 3y ≥ 90

(C) : 
4x + 12 y ≥ 240
8x + 6y ≥ 240

2)

Le système dont on demande la représentation graphique est le système précédent après


simplification.
Considérons les droites suivantes:
• D1 d'équation "x = 0"
• D2 d'équation "y = 0"
• D3 d'équation "2x + 3y = 90"
• D4 d'équation "x + 3y = 60"
• D5 d'équation "4x + 3y = 120"
La représentation graphique de ce système donne alors:

3)
a) Comme le prix d'un lot A est de 200 francs et que le prix d'un lot B est de 400 francs, le prix total
pour x Lots A et y lots B est : (200x + 400y) francs
La dépense est donc : D(x, y) = 200x + 400y.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 28


Recherche Opérationnelle

b) On peut savoir simplement s'il est possible de procéder aux achats nécessaires
avec 5 000 francs en traçant sur la figure précédente la droite D d'équation :
D : 200x + 400y = 5000
On obtient alors la figure suivante :

On constate alors cette droite n'a aucun point commun avec le polygone des contraintes.
Il n'est donc pas possible de procéder aux achats avec 5 000 francs.
4)
Pour une dépense de N francs, les choix de x lots A et y lots B correspondent aux points de la droite
DN d'équation : DN : 200x + 400y = N
Pour N quelconque, cette droite est parallèle à la droite D. On remarque que pour N = 0, la droite
DN passe par l'origine du repère et est située à gauche de D. Donc, la valeur de N sera d'autant
plus grande que la droite DN sera éloignée et à droite de D. On cherche donc la droite DN parallèle
à D, ayant des points communs avec ( C ) et la plus proche possible de D. Graphiquement, on voit
alors que c'est la droite passant par le point A d'intersection des droites D3 et D4.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 29


Recherche Opérationnelle

En utilisant les équations de D3 et D4, on détermine alors les coordonnées du point A.


On trouve alors A(30 ; 10). La dépense minimale du gérant est donc de (200*30 + 400*10) francs,
c'est-à-dire :
Dépense minimale = 10 000 francs
obtenue pour 30 lots A et 10 Lots B
Pour finir, on peut aussi préciser que le gérant, pour cette dépense aura:
• 90 draps de bain,
• 240 serviettes,
• 300 gants de toilettes.
Exercice 3
1) Placer les points E et F ne pose aucun problème.
Le point E a pour coordonnées (13 ; 14) et correspondant à l'achat de 13 lots A et 14 lots B.
Le nombre de pains au chocolat est alors : 13*12 + 14*9 = 282 108.
Le nombre de croissants est alors : 13*8 + 14*12 = 272 96.
L'achat associé au point E permet de satisfaire la demande.
En revanche, le point F a pour coordonnées (10 ; 1).
Le nombre de pains au chocolat est alors : 10*12 + 1*9 = 129 108.
Le nombre de croissants est alors : 10*8 + 1*12 = 92 < 96.
Le nombre de croissants n'est pas suffisant pour satisfaire la demande.
L'achat associé au point F ne permet pas de satisfaire la demande.
2) Formons le tableau des contraintes, en appelant x le nombre de lots A et y le nombre de lot B.

Lot A Lot B
Contraintes
x y

Pains au
12 9 108
chocolat

Croissants 8 12 96

Prix p p Prix Total = p( x + y )

Les contraintes portant sur x et y sont alors :


12x + 9y 108

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 30


Recherche Opérationnelle

8x + 12y 96
Ce système se simplifie et donne :
4x + 3y 36
2x + 3y 24
L'ensemble des points M de coordonnées (x ; y) vérifiant ce système et, de plus les contraintes : x ≥
0 et y ≥ 0 est alors, en considérant les droites :
- D1 : " 4x + 3y = 36 "
- D2 : " 2x + 3y = 24 "
- Le point A est le point d'intersection de ces deux droites.

3)
Comme le prix des lots A et B est identiques, le coût total, en fonction de x et y est :
COUT TOTAL = p(x + y)
Minimiser le coût total revient donc à minimiser (x + y). Le nombre (x + y) est le nombre de lots
achetés au total.
a. Droites ∆9 et ∆11.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 31


Recherche Opérationnelle

On remarque que ∆9 a une intersection vide avec l'ensembles des points qui représentent les
contraintes portant sur x et y.
Donc, on ne peut pas satisfaire à la demande en achetant 9 lots au total.
On remarque que ∆11 a une intersection non vide avec l'ensembles des points qui représentent les
contraintes portant sur x et y.
On peut donc satisfaire à la demande en achetant 11 lots au total.
b)
La droite correspondant à un achat au moindre coût est la droite parallèle aux droites ∆9 et ∆11 et
passant par le point A appartenant aux droites ∆1 et ∆2.
Ce point a pour coordonnées (4 ; 6).
L'achat permettant de satisfaire la demande au moindre coût est donc :
4 lots A
6 lots B

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 32


Recherche Opérationnelle

CHAPITRE 3

METHODE DU SIMPLEXE ET DUALITE

Ce chapitre est consacré à l’étude de la méthode du simplexe. Cette méthode est l’outil principal de
résolution des problèmes de programmation linéaire. Elle consiste à suivre un certain nombre
d’étapes avant d’obtenir la solution d’un problème donné. Il s’agit d’une méthode algébrique
itérative qui permet de trouver la solution exacte d’un problème de programmation linéaire en un
nombre fini d’étapes.
La résolution graphique est inapplicable au-delà de deux variables. Il est aussi nécessaire de
recourir à une autre méthode : la méthode du simplexe dite également méthode des tableaux ou
méthode de Dantzig. Cette méthode, applicable quelque soit le nombre de variables, sera présentée

de type ≤.
pour des problèmes de maximisation dont toutes les contraintes (autres que celles de positivité) sont

1. METHODE DU SIMPLEXE

1.1. Forme canonique d'un Programme Linéaire


Max z = c1 x1 + c2 x2 + .......... + cn xn
a11 x1 + a12 x2 + .......... + a1n xn ≤ b1
a21 x1 + a22 x2 + .......... + a2n xn ≤ b2
............................................................................
am1 x1 + am2 x2 + .......... + amn xn ≤ bm
x1 ≥ 0 ; x2 ≥ 0 ; .........; xn ≥ 0

type ≤, on dit que le programme linéaire se présente sous une forme canonique.
Si la fonction objectif doit être maximisée et si toutes les contraintes sont des inéquations du

1.2. Forme standard d'un Programme Linéaire

On transforme les inégalités des contraintes économiques en égalités par introduction de variables
supplémentaires positives ou nulles appelées variables d'écart.
ai1 x1 + ai2 x2 + .......... + ain xn ≤ bi devient ai1 x1 + ai2 x2 + .......... + ain xn + ti = bi
d'où la forme standard :
Max z = c1 x1 + c2 x2 + ..........+ cn xn
a11 x1 + a12 x2 + .......... + a1n xn + t1 = b1
a21 x1 + a22 x2 + .......... + a2n xn + t2 = b2
............................................................................
am1 x1 + am2 x2 + .......... + amn xn + tm = bm
x1 ≥ 0 ; x2 ≥ 0 ; .........; xn ≥ 0 ; t1 ≥ 0 ; t2 ≥ 0 ; .........; tm ≥ 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 33


Recherche Opérationnelle

Forme simpliciale : Un programme est dit sous forme simpliciale si :


- elle est sous forme standard
- et les constantes du second membre sont toutes positives.
Le programme doit être mis sous forme simpliciale avant l'utilisation de l'algorithme de simplexe.

1.3.Résolution

Afin de comparer avec la résolution graphique, nous pouvons considérer que nous sommes dans un
espace à n dimensions (nombre de variables d'activité). Les contraintes délimitent un polyèdre
convexe, région des solutions admissibles; la fonction objectif est un hyperplan que l'on va déplacer
le plus loin possible de l'origine, jusqu'à l'extrême limite où il n'y aura plus qu'un point
d'intersection (éventuellement un segment, un plan...) avec la région des solutions admissibles.
La solution se trouvant forcément sur le pourtour du polyèdre admissible, la méthode du simplexe
consiste en itérations qui font passer d'un sommet du polyèdre à un autre en sélectionnant le
sommet adjacent maximisant la fonction objectif. Pour démarrer l'algorithme, il est nécessaire
d'avoir une solution initiale. Dans le cas simple, l'origine est solution, c.à.d. que la première solution
est x1 = 0 ; x2 = 0 ; .........; xn = 0 ; t1 = b1 ; t2 = b2 ; .........; tm = bm (ceci suppose que les bi ne
soient pas négatifs pour satisfaire les contraintes de signe).

L'algorithme, basé sur la méthode du pivot de Gauss pour la résolution des systèmes
d'équations linéaires, est présenté sous forme de tableau.
Soit à résoudre le programme linéaire suivant sous sa forme canonique :

3 x1 + 4 x2 ≤ 160

6 x1 + 3 x2 ≤ 180

Max z = 1200 x1 + 1000 x2


x1 ≥ 0 ; x2 ≥ 0

* Forme standard

3 x1 + 4 x2 + 1 t1 + 0 t2 = 160

6 x1 + 3 x2 + 0 t1 + 1 t2 = 180

Max z = 1200 x1 + 1000 x2 + 0 t1 0 t2

x1 ≥ 0 ; x2 ≥ 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 34


Recherche Opérationnelle

* Tableau 0
en ne conservant que les coefficients des équations ci-dessus, on obtient le tableau de départ

HB x1 x2 t1 t2 C
B
t1 3 4 1 0 160
t2 6 3 0 1 180
∆ 1200 1000 0 0 0

Ce tableau nous donne la première solution admissible :


- Les variables Hors Base (HB) (situées sur la première ligne du tableau) sont nulles : x1 = 0 ;
x2 = 0 (t1 et t2 en rouge ne sont pas hors base; elles ne sont présentes que pour rappeler qu'il s'agit
des colonnes des coefficients de ces deux variables ; lorsqu'on travaille sur papier, il est préférable
d'indiquer la position de ces variables par des points pour bien montrer que seules x1 et x2 sont hors
base). Cela signifie qu'on fabrique 0 pièces P1 et 0 pièces P2.

- Les valeurs des variables dans la Base (B) (apparaissant dans la première colonne) se lisent dans la
colonne C : t1 = 160 et t2 =180. Cela signifie qu'il reste 160 heures d'utilisation possible de l'atelier
A1 et 180 heures de l'atelier A2.

- La dernière cellule (intersection de C et ∆) donne la valeur de -z : -z = 0 donc z = 0. Cela signifie


que la marge est égale à 0.

- La ligne ∆ donne les valeurs marginales ou taux marginal de substitution; elles s'interprètent de la
manière suivante: à ce stade de la solution, une augmentation de 1 unité de x1 ferait croître la
fonction objectif de 1200, et une augmentation de 1 unité de x2 ferait croître la fonction objectif de
1000. Cela signifie qu'à ce stade de la production si on augmente la production de 1 pièce de P1, la
marge va augmenter de 1200 F et si on augmente la production de 1 pièce de P2, la marge va
augmenter de 1000F.
En effet, la solution actuelle est x1 = 0 ; x2 = 0 ; t1 = 160 ; t2 =180
et z =1200 . x1 + 1000 . x2 + 0 . t1 + 0 . t2 = 1200 . 0 + 1000 . 0 + 0 . 160 + 0 . 180 = 0
Si on augmente x1 de 1 unité,
z =1200 . 1 + 1000 . 0 + 0 . 0 . 160 + 0 . 180 = 1200

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 35


Recherche Opérationnelle

Si on augmente x2 de 1 unité,
z =1200 . 0 + 1000 . 1 + 0 . 0 . 160 + 0 . 180 = 1000
* Tableau 1
On augmente la fonction objectif en faisant entrer une variable dans la base, prenant la place d'une
variable qui va sortir de la base.

Critère de sélection de la variable entrant dans la base:


On sélectionne la variable HB ayant le plus grand coefficient
positif dans la ligne ∆ .

x1 entre donc dans la base

HB x1 x2 t1 t2 C R
B
t1 3 4 1 0 160 160/3
t2 6 3 0 1 180 30
∆ 1200 1000 0 0 0

Pour sélectionner la variable sortant de la base, il est nécessaire de rajouter une colonne R au
tableau, obtenue en faisant le rapport membre à membre de la colonne C et de la colonne de la
variable entrant dans la base (x1).

Critère de sélection de la variable sortant de la base:


On sélectionne la variable dans la Base ayant le plus
petit coefficient positif dans la colonne R .

t2 sort donc de la base

HB x1 x2 t1 t2 C R
B
t1 3 4 1 0 160 160/3
t2 6 3 0 1 180 30 variable sortant
∆ 1200 1000 0 0 0

variable entrant

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 36


Recherche Opérationnelle

On appelle pivot (égal à 6) l'intersection de la variable entrante et de la variable sortante


Pour obtenir le tableau 1, on applique les règles suivantes :

- Le pivot est égal à 1


- Les coefficients de la ligne du pivot sont divisés par le pivot
- Les coefficients de la colonne du pivot sont nuls
- Les autres coefficients sont obtenus par la règle du rectangle

La règle du rectangle est la suivante :

Remarque importante : d = d' ⇔ c b = 0 ⇔ b = 0 ou c = 0


En conséquence, si dans la colonne (resp. ligne) du pivot il y a un 0, toute la ligne (resp. colonne)
correspondante reste inchangée.

En appliquant ces règles on obtient le tableau 1 :

HB x1 x2 t1 t2 C
B
t1 0 5/2 1 -1/2 70
x1 1 1/2 0 1/6 30
∆ 0 400 0 -200 -36000

Ce tableau nous donne la deuxième solution admissible :


- Les variables Hors Base (HB) sont nulles: x2 = 0 ; t2 = 0 (x1 et t1 en rouge ne sont pas hors base ;
elles ne sont présentes que pour rappeler qu'il s'agit des colonnes des coefficients de ces deux
variables). Cela signifie qu'on fabrique 0 pièces P2 et qu'il reste 0 heure d'utilisation disponible à
l'atelier A2. La contrainte associée à t2 est dite saturée.

- Les valeurs des variables dans la Base (B) se lisent dans la colonne C: t1 = 70 et x1 =30. Cela
signifie qu'on fabrique 30 pièces P1 et qu'il reste 70 heures d'utilisation disponible à l'atelier A1.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 37


Recherche Opérationnelle

- La dernière cellule (intersection de C et ∆) donne la valeur de -z : -z = -36000 donc z = 36000.


Cela signifie que la marge est égale à 36000 F.

- La ligne ∆ donne les valeurs marginales ou taux marginal de substitution; elles s'interprètent de la
manière suivante: à ce stade de la solution, une augmentation de 1 unité de x2 ferait croître la
fonction objectif de 400, et une augmentation de 1 unité de t2 ferait diminuer la fonction objectif de
200 (il est à noter qu'une augmentation de 1 unité de la variable d'écart t2 revient à diminuer le
second membre de l'équation correspondante de 1 unité).Cela signifie qu'à ce stade de la production
si on augmente la production de 1 pièce de P2, la marge va augmenter de 400 F et si on diminue la
disponibilité de 1 heure à l'atelier A2, la marge va diminuer de 200 F.

En effet, la solution actuelle est x1 = 30 ; x2 = 0 ; t1 = 70 ; t2 = 0 et


z =1200 . x1 + 1000 . x2 + 0 . t1 + 0 . t2 = 1200 . 30 + 1000 . 0 + 0 . 70 + 0 . 0 = 36000.
Si on augmente x1 de 1 unité, on ne peut garder x1 = 30 car la 2° contrainte
6 x1 + 3 x2 + 0 t1 + 1 t2 = 180 est saturée. On doit donc déterminer la valeur de x1 permettant
d'augmenter x2 de 1 unité :
6 . x1 + 3 . 1 + 0 . 70 + 1 . 0 = 180 ⇔ 6 x1 + 3 = 180 ⇔ x1 = 29,5
d'où z =1200 . 29,5 + 1000 . 1 + 0 . 70 + 0 . 0 = 36400, c.à.d. une augmentation de 400 F par
rapport à la solution précédente.
Si on augmente t2 de 1 unité, la contrainte 6 x1 + 3 x2 + 0 t1 + 1 t2 = 180 devient 6 . x1 + 3 . x2 + 0
. 70 + 1 . 1 = 180 ou encore 6 x1 + 3 x2 = 179; on a donc bien 1 heure de disponibilité en moins à
l'atelier A2.
De plus puisque x2 = 0, on aura x1 = 179/6 au lieu de 30
d'où z =1200 . 179/6 + 1000 . 1 + 0 . 70 + 0 . 1 = 35800, ce qui correspond à une baisse de 200 F.
Tableau 2 :

HB x1 x2 t1 t2 C R
B
t1 0 5/2 1 -1 2 70 28 variable sortant
x1 1 1/2 0 1/6 30 60
∆ 0 400 0 -200 - 36000
variable entrant

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 38


Recherche Opérationnelle

d'où le tableau 2

HB x1 x2 t1 t2 C
B
x2 0 1 2/5 -1/5 28
x1 1 0 -1/5 4/15 16
∆ 0 0 -160 -120 - 47200

Ce tableau nous donne la troisième solution admissible :


- Les variables Hors Base (HB) sont nulles: t1 = 0 ; t2 = 0 (x1 et x2 en rouge ne sont pas hors base ;
elles ne sont présentes que pour rappeler qu'il s'agit des colonnes des coefficients de ces deux
variables). Cela signifie qu'il reste 0 heure d'utilisation disponible aux ateliers A1 et A2. Les
contraintes associées à t1 et t2 sont saturées.

- Les valeurs des variables dans la Base (B) se lisent dans la colonne C : x2 = 28 et x1 =16.
Cela signifie qu'on fabrique 16 pièces P1 et 28 pièces P2.

- La dernière cellule (intersection de C et ∆) donne la valeur de -z : -z = - 47200 donc z = 47200.


Cela signifie que la marge est égale à 47200 F.

- La ligne ∆ donne les valeurs marginales ou taux marginal de substitution; elles s'interprètent de la
manière suivante: à ce stade de la solution, une augmentation de 1 unité de t1 ferait diminuer la
fonction objectif de 160, et une augmentation de 1 unité de t2 ferait diminuer la fonction objectif de
120 (il est à noter qu'une augmentation de 1 unité d'une variable d'écart revient à diminuer le second
membre de l'équation correspondante de 1 unité).

Critère d'arrêt des itérations:


Si tous les coefficients de la ligne ∆, relatifs aux variables HB,
sont négatifs ou nuls, la solution trouvée est optimale.
Nous avons donc ici atteint la solution optimale.

Remarques importantes :
- S'il existe une variable HB ayant un coefficient positif dans la ligne ∆ et telle que tous les
coefficients correspondants dans le tableau soient nuls ou négatifs, alors la solution est infinie.
- Si, à la fin des itérations, une variable est HB avec un coefficient nul dans la ligne ∆, alors on a
Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 39
Recherche Opérationnelle

une arête (plan,...) optimale. Les autres sommets solutions sont obtenus en faisant rentrer cette
variable dans la base.
- La résolution du problème à Minimum ne pose pas de difficulté; il suffit, dans le critère de
sélection de la variable entrant dans la base, de remplacer "plus grand coefficient positif "par
"plus grand coefficient négatif" et dans le critère d'arrêt des itérations de remplacer "coefficients
négatifs ou nuls " par "coefficients positifs ou nuls".

Interprétation graphique de la méthode du simplexe :


Les différentes solutions obtenues à chaque tableau correspondent respectivement aux sommets O
(x1 = 0 ; x2 = 0), A (x1 = 30 ; x2 = 0), B (x1 = 16 ; x2 = 28) du graphique. On a cheminé sur le
pourtour du polyèdre des solutions admissibles, en sélectionnant parmi tous les sommets possibles
celui donnant la valeur maximale à la fonction objectif.

RETENONS

positif le plus grand sur la ligne de la fonction économique (appelé ligne ∆ ci-après). Les
1) Pour un maximum, la variable entrante est celle qui, dans le tableau, a l'élément strictement

valeurs des variables de la base étant toujours positives, celle ayant le coefficient positif de Z le

* Si tous les éléments de la ligne ∆ sont négatifs ou nuls, le programme est optimal :
plus élevé augmentera plus que les autres la valeur de la fonction économique.

- si les seuls éléments nuls de la ligne ∆ correspondent aux variables de base (ou d'écart),
alors le maximum est unique. C'est le cas lorsque la ligne de niveau la plus éloignée de
l'origine est tangente en un seul sommet du polyèdre convexe.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 40


Recherche Opérationnelle

la ligne ∆ peut (ou aurait pu) entrer à la place d'une variable de base affectant les valeurs
- sinon, il y a une infinité de solutions, car n'importe quelle autre variable ayant un 0 pour

des autres variables de base tout en gardant constant. C'est le cas lorsque la ligne de
niveau la plus éloignée de l'origine est confondue à tout un segment de la frontière du

* S'il existe un élément de la ligne ∆ strictement positif tel que les éléments de la colonne
polyèdre convexe.

correspondante sont tous négatifs ou nuls, le problème n'a pas de solution optimale finie, car il ne
peut pas avoir de variable sortante. Ce cas "normalement" exclus du fait même de la nature des

* S'il existe un ou plusieurs éléments de la ligne ∆ strictement positifs, on poursuit le processus


programmes économiques se produit quand il y a erreur de modélisation.

itératif, jusqu'à aboutir à l'un des deux cas ci-dessus.

∆) strictement négatif le plus grand en valeur absolue. Les valeurs des variables de la base étant
2) Pour un minimum, la variable entrante est celle qui dans le tableau a le coefficient (sur la ligne

toujours positives, celle ayant le coefficient négatif de ∆ le plus élevé en valeur absolue diminuera

* Si tous les éléments de la ligne ∆ sont positifs ou nul, le programme est optimal :
plus que les autres la valeur de la fonction économique.

- si les seuls éléments nuls de la ligne ∆ correspondent aux variables de base (ou d'écart), alors le
minimum est unique. C'est le cas lorsque la ligne de niveau la plus proche de l'origine est tangente
en un seul sommet du polyèdre convexe.

sur la ligne ∆ peut (ou aurait pu) entrer à la place d'une variable de base affectant les valeurs des
- sinon, il y a une infinité de solutions, car n'importe quelle autre variable ayant un coefficient nul

autres variables de base tout en gardant Z constant. C'est le cas lorsque la ligne de niveau la plus

* S'il existe un élément de la ligne ∆ strictement négatif tel que les éléments de la colonne
proche de l'origine est confondue à tout un segment de la frontière du polyèdre convexe.

correspondante sont tous négatifs ou nuls, le problème n'a pas de solution optimale finie, car il ne
peut pas avoir de variable sortante. Ce cas "normalement" exclus du fait même de la nature des

* S'il existe un ou plusieurs éléments de la ligne ∆ strictement négatifs, on poursuit le processus


programmes économiques se produit quand il y a erreur de modélisation.

itératif, jusqu'à aboutir à l'un des deux cas ci-dessus.

La variable sortante est toujours celle qui correspond à la valeur finie positive la plus petite de la
colonne C/k "colonne entrante", qu'il s'agisse de maximiser ou de minimiser la fonction

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 41


Recherche Opérationnelle

économique. Comme ce rapport doit toujours être strictement positif, on comprend pourquoi il

- dans le cas du maximum, «S'il existe un élément de la ligne ∆ strictement positif tel que les
ne peut avoir de variable sortante :

- dans le cas du minimum, «S'il existe un élément de la ligne ∆ strictement négatif tel que les
éléments de la colonne correspondante sont tous négatifs ou nuls».

éléments de la colonne correspondante sont tous négatifs ou nuls».

Le pivot est la valeur située à l'intersection de la variable entrante et la variable sortante de la base.
Le nouveau tableau est construit en rendant unitaire le pivot et en faisant les transformations de

la ligne ∆ de la fonction économique.


Gauss (méthode du rectangle) nécessaires pour avoir partout 0 dans la colonne pivot y compris sur

Exercice
Une société fabrique trois modèles de meubles : classique, rustique, moderne. Les standards
unitaires de production sont résumés dans le tableau suivant :
Modèle Modèle Modèle Capacités
classique rustique moderne maximales
Bois 5 8 5 900
Main d’œuvre 1 2 3 516
Centre finition 2 2 0 200
Marges sur coûts variables 1000 960 1200

Déterminer les quantités à produire pour maximiser son résultat.


Résolution
• Forme canonique de ce programme
Soit :
le nombre de modèles classiques à produire
le nombre de modèles rustiques à produire

5 + 8 + 5 ≤ 900
le nombre de modèles modernes à produire

+ 2 + 3 ≤ 516
2 + 2 + 0 ≤ 200
= 1000 + 960 + 1200
≥ 0 ; ≥ 0 ; ≥ 0.
• Forme standard

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 42


Recherche Opérationnelle

La méthode du simplexe nécessite une mise sous forme standard : les inégalités sont transformées
en égalités grâce à l’introduction des variables d’écart positives ou nulles notées .
Il y a une variable pour chaque contrainte (autre que contrainte de positivité).
Exemple : Etude de la contrainte relative au facteur bois

5 +8 +5 + = 900

Emploi du facteur bois


pour des niveaux de
production x, y et z Ecart entre la capacité et la consommation du
facteur bois pour une production x, y, z. Cet écart
permet l’égalité entre les deux membres

5 + 8 + 5 + = 900
On obtient donc la forme standard :

+ 2 + 3 + = 516
2 + 2 + 0 + + = 200
= 1000 + 960 + 1200 + 0 + +
≥ 0 ; ≥ 0 ; ≥ 0.

Tableau 0 :
HB . . . C
B
5 8 5 1 0 0 900
1 2 3 0 1 0 516


2 2 0 0 0 1 200
1000 960 1200 0 0 0 0

Interprétation de ce tableau :

= 0 ; = 0 ; = 0! et la valeur de la fonction objectif est égale à


Il s’agit de la solution admissible de départ qui respecte toutes les contraintes : ne rien produire.
La production est donc nulle

= 900 signifie qu’il reste 900 unités


0.

= 516 signifie qu’il reste 516 unités de main d’œuvre, = 200 signifie qu’il reste 200
Les capacités disponibles des facteurs sont intactes. Ainsi
de bois,

Cette solution peut être améliorée puisque les coefficients de la ligne ∆ ne sont pas négatifs ou nuls.
unités de centre finition.

Continuer l’exemple en suivant l’exemple précédent.


On trouve :
Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 43
Recherche Opérationnelle

= 12 ; = 0 ; = 168 " = 213 600.

NB : Quel que soit le tableau, les coefficients de la dernière ligne (ligne ∆) sont appelés taux
marginaux de substitution. Chaque taux marginal de substitution mesure l’apport à la fonction
économique de l’entrée dans la base d’une unité d’une variable hors base.

2. Cas particulier : changement de variable

2 + + ≤ 1550
Soit le programme linéaire suivant :

5 + 2 + 2 ≤ 3500
≥ 500
= 120 + 150 + 100
≥ 0 ; ≥ 0 ; ≥ 0.
≥ 500 montre que la méthode présentée n’est pas applicable (en raison de la contrainte ≥).
La contrainte de signe ≥ 0 est superflue en raison de la contrainte ≥ 500, et peut donc être

≥ 500.
supprimée. Un changement de variable permet de résoudre le problème posé par la contrainte

Cette contrainte peut s’écrire − 500 ≥ 0. Posons = − 500 et = + 500.

2 + + + 500! ≤ 1550
Le changement de variable donne le programme suivant :

5 +2 +2 + 500! ≤ 3500

= 120 + 150 + 100 + 500!


≥ 0 ; ≥ 0 ; ≥ 0.

2 + + ≤ 1050
Soit :

5 + 2 + 2 ≤ 3000

= 120 + 150 + 100 + 50000


≥ 0 ; ≥ 0 ; ≥ 0.
La forme standard de ce programme se présente comme suit :

2 + + + = 1050
5 + 2 + 2 + = 3000

= 120 + 150 + 100 + 50000 + 0 +0


≥ 0 ; ≥ 0 ; ≥ 0.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 44


Recherche Opérationnelle

Tableau 0 :
HB . . C R
B

= 1050
$%$
&'+ ," - . &"
2 1 1 1 0 1050

2500
= 1250
2
5 2 2 0 1 2500

∆ 120 150 100 0 0 -50 000

) "* +" , *& - . &"

Tableau 1 :
HB . . C


B
2 1 1 1 0 1050


1 0 0 -2 1 400
-180 0 -50 -150 0 -207 500

L’optimum est atteint puisque tous les coefficients de la ligne ∆ sont négatifs ou nuls.
La production est = 0 ; = 1050 ; = 0 &'( = 0 + 500 = 500.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 45


Recherche Opérationnelle

3. DUAL
La notion de dualité a été introduite par Von Neumann en 1947, puis développée par Gale, Kuhn et
Tucker en 1951. Les propriétés fondamentales des problèmes de dualité ont été définies par
Goldman and Tucker en 1956.
A tout programme linéaire appelé PRIMAL correspond un programme linéaire appelé DUAL
obtenu de la manière suivante :

PRIMAL DUAL
m contraintes d'infériorité n contraintes de supériorité
n variables d'activité n variables d'écart
m variables d'écart m variables d'activité
écriture en ligne écriture en colonne


celles de positivité des signes) sont de sens ≥.
La dualité permet de résoudre les problèmes de minimisation dont les contraintes (autres que

• Le nombre de variables du dual est égal au nombre de contraintes du primal. Elles doivent être
différenciées de celles du primal.
• Le nombre de contraintes du dual est égal au nombre de variables du primal.
• Les coefficients des colonnes (lignes) du primal sont les coefficients des lignes (colonnes) du
dual.
• Les inégalités du dual sont de sens opposé à celles du primal.
• Les coefficients de la fonction économique du primal sont les contraintes du dual.
• Si le primal est une minimisation, le dual est une maximisation et inversement.
• Les coefficients de la fonction économique du dual sont les contraintes du primal.
• Le dual du dual est le primal.
• Un programme linéaire possède une solution optimale finie si et seulement si lui et son dual
possèdent des solutions réalisables.
• Si le problème primal possède une solution optimale infinie, alors le dual n’a pas de solution
réalisable.
• Si le dual ne possède pas de solution réalisable, alors que le primal en possède, alors la solution
du primal est une solution optimale infinie.
• Une contrainte est dite saturée lorsque la variable d'écart qui lui est associée est nulle à
l'optimum.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 46


Recherche Opérationnelle

• Si pour une solution optimale d'un programme linéaire une contrainte n'est pas saturée, alors la
valeur optimale (duale) correspondante est nulle. La réciproque n'est pas (nécessairement) vraie.
• Si la valeur optimale d'une variable n'est pas nulle, alors la contrainte duale correspondante est
saturée pour la solution optimale. Le corollaire est très utile pour résoudre un programme à
partir de la solution de son dual.
• Si pour une solution optimale d'un programme linéaire une contrainte n'est pas saturée, alors la
valeur optimale (duale) correspondante est nulle. En terme économique, par exemple, si un bien
est abondant (il n'y en a plus qu'on ne peut utiliser efficacement), son coût marginal (une heure
de location supplémentaire) considéré comme son prix d'équilibre (la variable duale associée)
est nul.

Exemple

PRIMAL DUAL
3 x1 + 4 x2 ≤ 160 3 y1 + 6 y2 ≥ 1200
6 x1 + 3 x2 ≤ 180 4 y1 + 3 y2 ≥ 1000
Max z = 1200 x1 + 1000 x2 Min w = 160 y1 + 80 y2
x1 ≥ 0 ; x2 ≥ 0 y1 ≥ 0 ; y2 ≥ 0

A l'optimum, le primal et le dual sont liés par les règles suivantes :


- les fonctions objectifs z et w ont la même valeur optimale
- la valeur marginale d'une variable dans un programme est égale à l'opposé de la valeur
optimale de la variable associée dans l'autre programme et réciproquement.

Exemple

PRIMAL z = 47200 x1 x2 t1 t2
valeurs optimales 16 28 0 0
valeurs marginales 0 0 -160 -120

w = 47200 u1 u2 y1 y2
DUAL
valeurs optimales 0 0 160

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 47


Recherche Opérationnelle

Une société fabrique, entre autres, deux produits / et / dont les marges sur coûts variables sont
Exercice d’application

respectivement de 16kF et de 10 kF. La production de ces produits nécessite le passage dans trois

/ /
ateliers pendant les temps de fabrication exprimés en heures dans le tableau suivant :
Capacité de l’atelier
Atelier 1 1 2,5 195
Atelier 2 2 1 160
Atelier 3 1 1,5 120

Un donneur d’ordres s’adresse à la société pour un contrat de sous-traitance. Déterminer le prix de


location des ateliers pour que le coût soit minimal pour le donneur d’ordres et acceptable pour la
société.
Résolution
Soit :
le prix de location de l’atelier 1
le prix de location de l’atelier 2

La production d’un produit / rapporte une marge sur coûts variables de 16 kF pour une
le prix de location de l’atelier 3

consommation d’une heure de l’atelier 1, de 2 heures de l’atelier 2 et d’une heure de l’atelier 3. La

+2 + ≥ 16.
location des ateliers doit donc générer un gain au moins équivalent, d’où la contrainte :

Le même raisonnement est appliqué au produit / . Et on a :


2,5 + + 1,5 ≥ 10.

+ 2 2 + 3 ≥ 16
D’où le programme linéaire :
1
2,5 1 + 2 + 1,5 3 ≥ 10

(* = 195 1 + 160 2 + 120 3
1 ≥ 0 ; 2 ≥ 0 ; 3 ≥ 0.

variables. La méthode du simplexe n’a été présentée que pour des contraintes ≤.
La résolution graphique n’est pas applicable puisque le programme comporte plus de deux

de positivité des signes) sont de sens ≥.


La dualité permet de résoudre les problèmes de minimisation dont les contraintes (autres que celles

Le dual est obtenu comme suit :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 48


Recherche Opérationnelle

+ 2,5 ≤ 195
2 + ≤ 160
+ 1,5 ≤ 120
1 = 16 + 10
≥ 0 ; ≥ 0 ; ≥ 0.

Il s’agit de résoudre le primal. Il faudra donc déterminer la solution du programme primal à partir
de la résolution du programme dual.

+ 2,5 + 2 = 195
La forme standard se présente comme suit :

2 + + 2 = 160
+ 1,5 + 2 = 120
1 = 16 + 10 + 02 + 02
≥ 0 ; ≥ 0 ; ≥ 0 ; 2 ≥ 0; 2 ≥ 0.
Tableau 0 :
HB . . . C R

2 2,5 1 0 0 195 195


B

= 195
1
1

2 3$
= 80 2 &'+ ," - . &"
2 1 0 1 0 160

2 1,5 0 0 1 120 120


= 120
1
1

∆ 16 10 0 0 0 0

)8 "* +" , *& - . &"

2
Tableau 1 :
HB . . . C R

2 1 0 115
B

− = 57,5
2 2
0 2 1 115

1 0 1 0 80 × 2
= 160
2 2 1
1 80

2 1 1 6$
= 40
− 2 &'+ ," - . &"
2
0 1 0 40

∆ 0 2 0 -8 0 -1280

)9 "* +" , *& - . &"

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 49


Recherche Opérationnelle

2 2
Tableau 2 :
HB . . . C

2 1
B

2
0 0 1 -2 35

1 0 0 3 1

4 2
60

1 1

2
0 1 0 40

∆ 0 0 0 -7 -2 -1360

L’optimum du dual est atteint, mais il s’agit de résoudre le programme primal.

REGLE : SOLUTIONS DU PRIMAL


A l’optimum, la solution du programme primale est, au signe près, lue sur la dernière ligne du
tableau dans les colonnes des variables d’écart.
A l’optimum, la valeur de la fonction économique du dual est égale à celle du primal.

=0
La solution du primal est donc :

=7
:
=2
= 1360

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 50


Recherche Opérationnelle

EXERCICES
Exercice 1 :
Une entreprise de menuiserie envisage de produire des bureaux. Elle peut en faire de deux types :
• un bureau ordinaire qu’elle pourrait vendre avec un profit de 400 euros. Le marché est de
800 unités ;
• un bureau de luxe pour lequel le profit serait de 1000 euros par unité vendue. Elle espère
pouvoir en vendre 700.
Les deux bureaux nécessitent une quantité égale de bois de 0,45 dm3 de pin. Le fournisseur habituel
de l’entreprise ne peut en fournir, dans la qualité habituelle, que 600 dm3. Il faut également utiliser
du latté de 15 mm : 0,5 m2 pour le bureau de luxe et 0,75 m2 pour le bureau ordinaire. Notre
fournisseur peut nous livrer à concurrence de 1 000 m2.
Il faut 12 h de travail pour monter un bureau normal et 24 h pour monter celui de luxe. La capacité
annuelle est de 20 400 h de travail.
1) Vous êtes appelé en consultation pour déterminer le programme de fabrication optimum. Vous
utiliserez une méthode graphique.
2) Les capacités d’absorption du marché restent les mêmes. On envisage d’augmenter la production
pour atteindre un profit de 900 000 euros. Quel est le programme de fabrication permettant
d’obtenir ce résultat ? De combien doivent être augmentées la ou les ressources qui limitaient
précédemment la production ?

Exercice 2 :

M. Martin, qui tient une boulangerie haut de gamme sur les Champs élysées vous signale qu’il est
réoccupé par la commercialisation des pains et des baguettes. Il souhaite savoir quel est le nombre
optimum à fabriquer chaque jour de chacun de ces deux produits, qui constituent l’essentiel de son
chiffre d’affaires. Il vous a communiqué les informations suivantes :
Prix de vente hors taxe d’un pain de 400 g : 3,25 euros
Prix de vente hors taxe d’une baguette de 250 g : 2,20 euros
On admettra que le coût variable du pain (quelle que soit la présentation, pain ou baguette) s’établit
à 3euros le kg. Le maximum de pâte à pain fournie est de 225 kg. Le four permet de cuire en une
heure 100 baguettes ou 75 pains, et peut fonctionner 8 h au maximum.
Enfin, M. Martin estime qu’il ne peut pas vendre en une journée plus de 500 pains et plus de 500
baguettes.
1) Ecrire le programme linéaire qui permet de maximiser le bénéfice " Boulangerie " de M. Martin.
2) Donner une solution graphique
Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 51
Recherche Opérationnelle

Exercice 3 :

Reprendre l'exercice n°1 et utiliser la méthode du simplexe.

Exercice 4 :

Un agriculteur dispose d’une superficie cultivable de 50 ha. Il peut écouler, au prix du marché, tous
les produits qu’il obtient et qui sont essentiellement des tomates, des laitues et des radis. Les
tomates se vendent 5 F le kg, la laitue se vend 3,5 F le pied et la livre de radis 2,5 F. Les rendements
moyens par ha sont respectivement de 2 tonnes, 4 000 pieds et 1 tonne, pour les tomates, la laitue et
les radis. Pour obtenir ces résultats, il faut employer des engrais à raison de100 kg/ha pour les
tomates et pour les laitues et à raison de 50 kg/ha pour les radis. D’autre part, les travaux
d’aménagement du sol, de semence et de récolte demandent l’emploi de dix hommes/jour par
hectare pour les tomates, de six hommes/jour par hectare pour les radis et de vingt hommes/jour par
hectare pour la laitue. Compte tenu des disponibilités locales en main-d’œuvre, le cultivateur ne
peut employer que 400 hommes/jour. L’engrais revient à 50 F le kg, le coût d’un homme/jour est de
350 F. Il s’agit de déterminer le meilleur programme de production.
Poser le problème sous forme de programme linéaire.
1) Déterminer la solution optimale à l’aide de la méthode du simplexe.
2) Peut-on améliorer le programme si on peut disposer de 200 hommes/jour de main d’œuvre
supplémentaire au prix de 400 F par homme/jour ?

Exercice 5 :

Résoudre le programme linéaire suivant :

Exercice 6 :

Une société des carrières a pour objet l’extraction et la distribution de matériaux de carrière. Elle
doit assurer, pour des travaux routiers, la fourniture aux Ponts et Chaussées de graviers en divers
calibres.
Un marché portant sur les quantités suivantes :
Graviers calibre 1___________________13 500 tonnes

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 52


Recherche Opérationnelle

Graviers calibre 2___________________11 200 tonnes


Graviers calibre 3___________________ 5 000 tonnes
a été adjugé pour un prix global de facturation.
La société exploite deux carrières P1 et P2 louées à une société civile qui perçoit une redevance par
tonne de pierre extraite. Celle-ci est la suivante :
Pour P1____________19,40 euros par tonne
Pour P2____________20,00 euros par tonne
Après extraction la pierre et concassée. Les graviers ainsi obtenus sont triés selon leur calibre.
Chaque tonne de pierre fournit les quantités suivantes de gravier (exprimées en tonnes) :
Pierre de P1 : Pierre de P2 :
Graviers calibre 1 : 0,36 t Graviers calibre 1 : 0,45 t
Graviers calibre 2 : 0,40 t Graviers calibre 2 : 0,20 t
Graviers calibre 3 : 0,16 t Graviers calibre 3 : 0,10 t
(Le complément à une tonne représente du sable, actuellement considéré comme déchet sans valeur
marchande).
La direction souhaite définir son programme d’extraction de pierre de P1 et de P2 de façon à
minimiser le coût de redevances à la société civile.
1) Présenter le programme linéaire correspondant sous la forme canonique.
2) Donner la formulation du programme dual.
3) Résoudre le programme dual par la méthode du simplexe. L’optimisation du programme
conduit-elle à produire des graviers en excédent par rapport aux tonnages adjugés ?
Exercice 7 :
Reprendre l'exercice 2 et utiliser la méthode du simplexe.
Exercice 8 :
L’entreprise Duralumin fabrique pour des entreprises de quincaillerie, des pièces en inox.
Ces pièces sont de trois types : A,B,C. Elles sont fabriquées par lots de 50 dans un grand atelier où
sont rassemblées deux machines pour la découpe de l’inox, une machine pour l’emboutissage, deux
machines pour le polissage et la finition. Chaque machine fonctionne 120 heures par mois.
Les caractéristiques de fabrication sont rassemblées dans le tableau suivant :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 53


Recherche Opérationnelle

Coût de Lot A Lot B Lot C


l’heure
Découpe 20 euros 1h 1,5 h 1,5 h
Emboutissage 30 euros 0,5 h 1h
Polissage et finition 40 euros 2h 1h 1h
Inox 50 euros 85 euros 68 euros
Prix de vente (hors 200 euros 200 euros 210 euros
taxe)

Quel est le programme de production optimal ? On utilisera la méthode du simplexe.

Exercice 9 :
Une entreprise chimique utilise la matière première M. Lors de la première transformation chimique
T1, on obtient 75% de produit fini B et 25 % de produit C. On peut retraiter tout ou partie des
produits C. On obtient à l’issue de cette transformation T2, 40% de produits B, 20% de produits C
et 20% de produits D.
L’entreprise utilise un minimum de 3 000 tonnes de produits B, de 500 tonnes de produits C et de
500 tonnes de produits D. La transformation T1 coûte 100 euros par tonne. T2 coûte 200 euros par
tonne.
1) Ecrire le programme linéaire qui permet de minimiser le coût, en fonction de la quantité de
matière M qui est passée par T1, et de la quantité de produits C que l’on transforme par T2.
2) Ecrire le programme dual et le résoudre par la méthode du simplexe.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 54


Recherche Opérationnelle

CHAPITRE 4 :
UTILISATION DES VARIABLES ARTIFICIELLES

1.1. Apparition de signe ≤ dans les contraintes


1. Minimisation d’une fonction objectif avec mélange de signes

Dans un programme linéaire classique de minimum, les contraintes sont toutes avec le signe ≥. Que
faire donc lorsqu’un signe caractéristique des programmes linéaires classiques de maximisation
apparaît dans les contraintes ?

(* = 40 + 12 + 15
Exemple : Résoudre

2 + + ≥ 150 1!
+ 2 + ≥ 200 2!
3 + + ≤ 180 3!
≥ 0; ≥ 0 ; ≥ 0
Dans ce cas, il faut ramener tous les signes à ≥ avant d’écrire le dual. Pour ce faire, il faut
multiplier d’abord la troisième contrainte par (-1) pour la ramener à ≥ 0, &'( ∶
(* = 40 + 12 + 15
2 + + ≥ 150 1!
+ 2 + ≥ 200 2!
−3 − − ≥ −180 3!
≥ 0; ≥ 0 ; ≥ 0

2 + − 3 ≤ 40
A partir de là on peut écrire le dual, soit :

+ 2 − ≤ 12
+ − ≤ 15
1 = 150 + 200 − 180
≥ 0; ≥ 0 ; ≥ 0

2 + − 3 + 2 = 40
La forme standard se déduit :

+ 2 − + 2 = 12
+ − + 2 = 15
1 = 150 + 200 − 180 + 02 + 02 + 02
≥ 0; ≥ 0 ; ≥ 0 ; 2 ≥ 0 ; 2 ≥ 0 ; 2 ≥ 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 55


Recherche Opérationnelle

Tableau 0 :
HB . . . C R

2 40
B

= 40
1
2 1 -3 1 0 0 40

2 =6 2 &'+ ," - . &"


1 2 -1 0 1 0 12

2 15
= 15
1
1 1 -1 0 0 1 15

∆ 150 200 -180 0 0 0 0

)9 "* +" , *& - . &"

. 2
Tableau 1 :
HB . . C R

2 3/4 0 −5/2 1 1 136/4 = 45,3


B


2
0 34

8 1 1 12
− &'+ ," - . &"
9 2 2
1 0 0 6

2 1 −1 1 18

2 2 2
0 0 1 9

∆ 50 0 -80 0 -100 0 -1200

)8 "* +" , *& - . &"

2
Tableau 2 :
HB . . . C

2 0 3 −7/4 1 5
B

− −
2 4
0 25

1 1 −1 1
2
0 0 12

2 0 −1 0 −1 0
∆ 0 −100
0 3
-30 0 -150 0 -1800

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 56


Recherche Opérationnelle

REGLE : SOLUTIONS DU PRIMAL


A l’optimum, la solution du programme primale est, au signe près, lue sur la dernière ligne du
tableau dans les colonnes des variables d’écart.
A l’optimum, la valeur de la fonction économique du dual est égale à celle du primal.

= 12
La solution du dual est :

=0
:
=0
1 = 1800

=0
La solution du primal est donc :

= 150
:
=0
= 1800

1.2. Apparition du signe (=)

classique ≥ avant d’écrire le dual.


Presque de la même manière que précédemment, il faut ramener toutes les contraintes au signe

(* = 40 + 12 + 15
Exemple : Résoudre

2 + + ≥ 150 1!
+ 2 + ≥ 200 2!
3 + + = 180 3!
≥ 0; ≥ 0 ; ≥ 0
La 3e contrainte devra être transformée en double inégalité, sachant qu’une égalité peut s’écrire en

≥.
double inégalité.

= . ⇔ >
≤.

3 + + ≥ 180
La 3e contrainte devient donc :

3 + + = 180 ⇔ >
3 + + ≤ 180
Le programme linéaire complet donne :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 57


Recherche Opérationnelle

(* = 40 + 12 + 15
2 + + ≥ 150 1!
+ 2 + ≥ 200 2!
3 + + ≥ 180 3!
3 + + ≤ 180 4!
≥ 0; ≥ 0 ; ≥ 0
La 4e contrainte devra être multipliée par (-1) pour être ramenée à ≥ et on pourra écrire le dual.

(* = 40 + 12 + 15
Soit :

2 + + ≥ 150 1!
+ 2 + ≥ 200 2!
3 + + ≥ 180 3!
−3 − − ≥ −180 4!
≥ 0; ≥ 0 ; ≥ 0

2
+ + 3 − 3 6 ≤ 40
Et le dual est le suivant :

+ 2 + − 6 ≤ 12
+ + − 6 ≤ 15
1 = 150 + 200 + 180 − 180 6
≥ 0 ; ≥ 0 ; ≥ 0 ; 6 ≥ 0

2 + + 3 − 3 6 + 2 = 40
La forme standard se présente comme suit :

+ 2 + − 6 + 2 = 12
+ + − 6 + 2 = 15
1 = 150 + 200 + 180 − 180 6 + 02 + 02 + 02
≥ 0 ; ≥ 0 ; ≥ 0 ; 6 ≥ 0 ; 2 ≥ 0 ; 2 ≥ 0 ; 2 ≥ 0.

Tableau 0 :
HB 6 . . . C R

2
B

= 40
2 1 3 -3 1 0 0 40 6$

2 =6 2 &'+ ," - . &"


1 2 1 -1 0 1 0 12

2 15
= 15
1
1 1 1 -1 0 0 1 15

∆ 150 200 180 -180 0 0 0 0

)9 "* +" , *& - . &"

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 58


Recherche Opérationnelle

. 2
Tableau 1 :
HB 6 . . C R

2 3/4 0 5/2 −5/2 1 1 68/5 = 13,6


B


2
0 34

1 1 1 1 12
− &'+ ," - . &"
2 2 2 2
1 0 0 6

2 1 1 −1 1 18

2 2 2 2
0 0 1 9

∆ 50 0 80 -80 0 -100 0 -1200

)? "* +" , *& - . &"

2
Tableau 2 :
HB . 6 . . C

2 −7/4 −3
B

1 1 −1 0 1
-5 0 0 1 0 4

2 0 −1
2 0 12


0 -1 0 0 0 3
-30 -160 0 0 0 -180 0 - 2160

A l’optimum, la solution du programme primale est, au signe près, lue sur la dernière ligne du
tableau dans les colonnes des variables d’écart.
A l’optimum, la valeur de la fonction économique du dual est égale à celle du primal.

=0
La solution du dual est :

=0
= 12
6 =0
1 = 2160

= 0
La solution du primal est donc :

= 180
:
= 0
= 2160

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 59


Recherche Opérationnelle

2. Les programmes linéaires de maximisation avec mélanges de signes : notions de variables


artificielles

par le fait que toutes les contraintes sont avec l’inégalité ≤. Dans la pratique, cette forme classique
Dans les exemples traités jusqu’ici, un programme linéaire de maximum classique est caractérisé

n’est pas toujours donnée. Dans le système des contraintes, il peut apparaître le signe ≥ ou = à côté
des signes ≤.
De plus la formulation de certains programmes est telle qu'il n'y a pas de solution de base évidente.
C'est le cas surtout pour les problèmes de minimisation et de façon générale, quand des contraintes
sont sous forme soit d'égalité, soit sous forme de supériorité. Les programmes de maximisation
peuvent donc aussi être concernés.

L’introduction de variables artificielles permet de résoudre le problème posé par les contraintes ≥.
2.1. Définition des variables artificielles

Quand un programme linéaire comporte une contrainte ≥, la contrainte de positivité liée à la


variable d’écart n’est pas respectée pour la forme standard.

+ 2 + ≥ 16.
Exemple : Soit la contrainte :

Prenons une solution qui respecte la contrainte. Par exemple 5,5,5! donne 5+10+5 20. Dans la
qui permet l’égalité est telle que : 20 + = 16, soit = −4
≥ 0.
forme standard, la variable d’écart
ce qui ne respecte pas la contrainte

+2 + − = 16.
La forme standard de la contrainte est donc :

La variable est alors mise hors base et l’introduction dans la base d’une variable artificielle ,

+2 + − + = 16.
positive ou nulle, affectée du coefficient 1 permet d’obtenir une solution de départ admissible :

= = = =0
Les variables hors base sont :

et en base = 16 ce qui respecte ≥ 0.

Remarque : cas où le second membre négatif


Le problème qui peut se poser est que l’une des variables du second membre soit négative. Par
exemple supposons que lors de la formulation on trouve une contrainte de ce type :
x1 - x2 ≥ -4

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 60


Recherche Opérationnelle

La condition qu’il faut vérifier avant de se lancer dans la réécriture de cette contrainte, en vue de
construire le programme standard, est la non-négativité du second membre. Si un second membre
est négatif il suffit de multiplier la contrainte par -1. Ceci a pour effet de changer le sens de
l'inégalité.
Ainsi, on doit modifier la contrainte avant de commencer la standardisation et la réécrire comme
suit :
-x1 + x2 ≤ 4.

REGLE
Il n'est nécessaire d'introduire de variable artificielle (toujours positive) que dans les cas où la
contrainte est sous forme d'égalité (=) ou de supériorité (≥). Dans la nouvelle équation, la

1) Introduire une variable artificielle par contrainte ≥. La variable d’écart de la contrainte affectée
variable artificielle est affectée du signe du second membre.

du coefficient −1 est mise hors base.


2) Elles permettent simplement l’égalité dans la forme standard et ne sont pas une donnée du
problème. En conséquence, elles doivent être nulles à l’optimum. Pour cela, il faut les faire
sortir de la base en leur donnant un coefficient fortement pénalisant dans la fonction
économique :

négatif : −@ où M est une constante positive arbitrairement grande qui tend à réduire
a- S’il s’agit d’une maximisation, le coefficient affecté à la variable artificielle est très

la fonction économique, tant que les variables artificielles sont dans la base. On dit
qu'on pénalise la fonction objectif, d'où le nom de la méthode dite méthode des
pénalités

positif : +@ où M est une constante positive arbitrairement grande qui tend à


b- S’il s’agit d’une minimisation, le coefficient affecté à la variable artificielle est très

augmenter la fonction économique, tant que les variables artificielles sont dans la base.
On dit qu'on pénalise la fonction objectif d'où le nom de la méthode dite méthode des
pénalités.

NB :
La variable artificielle sortant de la base, va se trouver dans la ligne ∆ avec un fort coefficient
positif et ne pourra donc plus y entrer ; on peut donc supprimer la colonne correspondante dans
la suite des itérations.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 61


Recherche Opérationnelle

2.2.1. Présence de ≥ dans un programme linéaire classique de maximisation


2.2. Résolution d’une maximisation

Soit le programme linéaire suivant :


Maximiser :
=3 +2
+4 ≤ 36
−2 ≤ 13
:
3 + ≤ 53
+ ≥4

+ 4 + = 36 1!
Forme standard

− 2 + = 13 2!
3 + + = 53 3!
+ − 6 + = 4 4!
=3 +2 +0 +0 +0 +0 6−

4! ⟹ 1 =4− 1 − 2 + 4

=3 +2 − 4− − + 6!

B-'+& = 3 + ! + 2+ ! +0 +0 +0 − 6 −4

. . .
Tableau 0 :
HB 6 . C R

1 0 0 0 36
B

1 0 1 0 0 13
1 4 0 36
-2 0 13
1 0 0 1 0 0 53 53/3
1 0 0 0 −1
3

&'+ ," - . &"


∆ 3+ 2+ 0 0 0 − 0 +4
1 1 4 4

"* +" , *& -


. &"

La variable artificielle sortant de la base, va se trouver dans la ligne ∆ avec un fort coefficient
positif et ne pourra donc plus y entrer ; on peut donc supprimer la colonne correspondante dans
la suite des itérations.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 62


Recherche Opérationnelle

. . . .
Tableau 1 :
HB 6 C R

1 0 0
B

0 1 0 1
0 3 1 -1 32 32
0 -3 -1 9 9 &'+ ," - . &"

-2 0 0 1 3 -3 41 41/3
1 0 0 0 −1 −4
0

∆ 0 −1 0 0 0
1 1 4
3 −3 − −12

6 "* +" , *& -


. &"

Tableau 2 :
HB . . . . C R
B
0 6 1 −1 0 0 23 23/6

6 0 -3 0 1 0 1 9 −3 &'+ ," - . &"

0 7 0 -3 1 0 14 2
1 −2 0 0 0 −13/2
∆ 8
1 13
0 0 −3 0 0 −39

"* +" , *& -


. &"
Tableau 3 :
HB . . . . C R
B
1 −11/7 −6/7
&'+ ," - . &"
0 0 0 11 7

6 0 -3 0 −2/7 3/7 1 15 −105/2


0 1 0 −3/7 1/7 0 2 −14/3
1 0 0 1/7 2/7 0 119
∆ 0
17
0 0 3/7 −8/7 0 −55

"* +" , *& -


. &"

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 63


Recherche Opérationnelle

. . . .
Tableau 4 :
HB C

7/11 1 −6/11
B

2/11 0 3/11 1
0 0 0 7

−1C
0 17
3/11 0
0

11
0 1 0 5

1 0 −1C 0 4C 0
11 11
16

∆ 0 −3C 0 −10C −58


11 11
0 0

On trouve = 16 ; = 5" = 58

Exercice
Soit le programme linéaire suivant :

+ 3 + ≤ 10 000
2 + + ≥ 5 000
:
= 100 + 500 + 200
≥ 0; ≥0; ≥0

+ 3 + + = 10 000
La forme standard se présente comme suit :

2 + + − + = 5 000
:
= 100 + 500 + 200 + 0 + 0 −
≥ 0; ≥ 0; ≥ 0; ≥0; ≥0; ≥ 0.
D’après la 2e contrainte, on a :
= 5000 − 2 − − +

= 100 + 500 + 200 + 0 +0 − 5000 − 2 − − + !


D’où :

= 100 + 2 ! + 500 + ! + 200 + ! +0 − − 5 000 .


Soit

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 64


Recherche Opérationnelle

Tableau 0 :
HB . . C R
B

= 10 000
1 3 1 1 0 0 10 000 $ $$$

% $$$
= 2500 &'+
," - . &"
2 1 1 0 -1 1 5 000

∆ 100 500 200 0 0 0 0


+2M +M +M -M +5000 M

F "* +" , *& - . &" G + 2


"& -" H-2& I'+ G'"II(G("*

Tableau 1 :
HB . . C R

D 1 1 1
B
E %$$
= 3 000 &'+
− ," - . &"
9 2 2 2
,%
1 1 7500

1 1 1 1 2 500
− = 5 000
2 2 2 2 0,5
1 0 2500

∆ 0 450 150 0 50 -50 -250 000


+0M +0M +0M +0M +0 M

) "* +" , *& - . &" G + 450


"& -" H-2& I'+ G'"II(G("* H'&( (I

. .
Tableau 2 :
HB C R

0 8 1 2 1 15.000
B

5 5 5
3000

1 0 2 1 3 2.500
− − &'+
5 5 5
1000

," - . &"
∆ 0 0 60 −180 −40 −1.600.000

"* +" , *& - . &"

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 65


Recherche Opérationnelle

. .
Tableau 3
HB C R

1 8 0 1 1 5.000
B

− &'+ ," - . &"


2 2 2
2.500

5 0 1 1 3 −5000
− −
2 2 2 3
2.500

∆ −150 0 0 −150 50 −1.750.000

"* +" , *& - . &"

.
Tableau 4
HB . C

−2 2 0 1 1
B

1 3 1 1 0
5000

∆ 0 -100 0 −200 0 −2.000.000


10000

= =0
L’optimum est atteint et on trouve :

> = 10000
= 2 000 000

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 66


Recherche Opérationnelle

2.2.2. Exemples avec le signe d’égalité


Soit le programme linéaire :
Maximiser :
=5 +6

=5 +6
− + ≤4
5 + 3 = 60
≥5
≥ 0 , ≥ 0

− + + = 4 1!
Forme standard

5 + 3 + = 60 2!
− + = 5 3!
=5 +6 +0 +0 − −

2! ⟹ 1 = 60 − 5 1 −3 2

3! ⟹ 2 =5− 2 + 2

B-'+& = 5 + 5 ! + 6+2 ! +0 − − 65

. .
Tableau 0 :
HB . C R

1 0 0 0 −4
B

5 0 0 1 0 12
-1 1 4
&'+ ," - . &"
0 0 −1 0 1 +∞
3 60

∆ 5+5 6+4 0 − 0 0 +65


1 5

"* +" , *& -


. &"

La variable artificielle sortant de la base, va se trouver dans la ligne ∆ avec un fort coefficient
positif et ne pourra donc plus y entrer; on peut donc supprimer la colonne correspondante dans la
suite des itérations.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 67


Recherche Opérationnelle

. . .
Tableau 1 :
HB C R

0 8/5 1 0 0 10
B

3/5 20
16

0 0 −1 1 5
1 0 0 0 12

&'+ ," - . &"


∆ 0 3+ 0 −
1 5
0 −60 + 5

"* +" , *& - . &"

La variable artificielle sortant de la base, va se trouver dans la ligne ∆ avec un fort coefficient
positif et ne pourra donc plus y entrer; on peut donc supprimer la colonne correspondante dans la
suite des itérations.

Tableau 2 :
HB . . . C R

&'+ ," - . &"


B
0 0 1 8/5 −8/5 8 5
1 0 0 3/5 −3/5 9 15
0 0 −1 1 −5
∆ 0 0
1 5
0 3 −5 − 3 −75

"* +" , *& - . &"


Tableau 3 :

HB . . . C
B
0 0 5/8 1 5
1 0 −3/8 0 6
0 5/8 0
∆ 0 −15/8 0
1 10
0 −90

Tous les coefficients sur la ligne ∆ sont négatifs ou nuls. L’optimum de maximisation est ainsi
atteint.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 68


Recherche Opérationnelle

F8 = K
On trouve donc :

>
F9 = 8L

Exercice

= 20 − 20 − 10 + 10 6 = 20 − 20 − 10 + 10 6
Soir à résoudre le programme linéaire de maximisation suivant :

4+ 8 + 2 ≤ 200 1! 4 + 8 + 2 ≤ 200 1!
2 + 10 + 2 6 ≤ 400 2! 2 + 10 + 2 6 ≤ 400 2!
&'(
2 + 8 + 4 6 = 400 3! 2 + 8 + 4 6 = 400 3!
2 + 2 + 2 6 = 300 4! 2 + 2 + 2 6 = 300 4!
≥ 0; ≥ 0 ; ≥ 0; 6 ≥ 0 ≥ 0; ≥ 0 ; ≥ 0; 6 ≥ 0

Par introduction des variables d’écart et au niveau des contraintes (1) et (2), et des variables
artificielles au niveau des contraintes (1), (2), (3) et (4), nous avons :

= 20 − 20 − 10 + 10 6 + 0 + 0 − −
Forme standard

4 + 8 + 2 + = 200 1!
2 + 10 + 2 6 + = 400 2!

2 + 8 + 4 6 + = 400 3!
2 + 2 + 2 6 + = 300 4!
≥ 0; ≥ 0 ; ≥ 0; 6 ≥ 0 ; ≥ 0 ; ≥ 0 ; ≥ 0 ; ≥ 0
3! ⟹ 1 = 400 − 2 2 −8 3 −4 4

3! ⟹ 2 = 300 − 2 1 −2 2 − 2 4
B-'+& = 20 + 2 ! + −20 + 4 ! + −10 + 8 ! + 10 + 6 ! 6 − 700

. .
Tableau 0 :
HB 6 . . C R

1 0 0 0 100
B
4 8 2 0 200
&'+ ," - . &"
0 0 0 1 0 50
2 0 10 2 0 1 0 0 400 40

2 0 0 0 1 +∞
2 8 4 400

∆ 20 −20 −10 10 0 0 0 0 +700


2 0 2 300

+2 +4 +8 +6

"* +" , *& -


. &"

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 69


Recherche Opérationnelle

grand coefficient positif qui est ici −10 + 8 . Ce qui ne


L’objectif étant de sortir d’abord les variables artificielles. En règle générale, nous partons du plus
ce qui fait sortir une variable d’écart

plus grand coefficient positif immédiatement inférieur soit −10 + 6 .


nous arrange pas car il faut faire sortir d’abord les variables artificielles. Pour cela nous passons au

Tableau 0M :
HB 6 . . . . C R

1 0 0 0 +∞
B
4 8 2 0 200

0 0 0 1 0 100
2 0 10 2 0 1 0 0 400 200
&'+ ," - . &"

2 0 0 0 1
2 8 4 400

∆ 20 −20 −10 10 0 0 0 0 +700


2 0 2 300 150

+2 +4 +8 +6

6 "* +" , *& -


. &"
La variable artificielle sort de la base. Il faudra supprimer sa colonne dans le tableau suivant.
Tableau 1 :
HB . . . . . C R
B
4 8 2 0 1 0 0 200 50
2 −1 6 0 0 1 0 200 100

6 0 1/2 2 1 0 0 0 100 +∞
2 −4 0 0 0 1 &'+ ," - . &"
∆ 20 −25 −30 0 0 0
1 100 50
0 −1000
+2 + −4 +100M

"* +" , *& -


. &"

La variable artificielle sort de la base. Il faudra supprimer sa colonne dans le tableau suivant.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 70


Recherche Opérationnelle

. . . .
Tableau 2 :
HB . . C

1 0 0 &'+ ," - . &"


B

0 −2 10 0
0 6 10 0 0

0 1/2 0 0 0
0 1 0 100
6
1 1/2 − 2 0 0 0 1
2 1 100

∆ 0 −35 10 0 0 0 0 −2000
50

"* +" , *& - . &"

. . . .
Tableau 3 :
HB . . C

0 3/5 1 0 1/10 0 0
B

−8 0 −1
0

0 -7/10 0 1 −1/5 0 0
0 0 1 0 100
6
1 17/10 0 0 1/5 0 1
100

∆ 0 −41 0 0 −1 0 0 −2000
50

= 50
L’optimum est ainsi atteint. On trouve :

=0
=0
6 = 100
= 2000

Exercice :

= 6 + 10 + 12
Soit le programme linéaire suivant :

+ 2 + 4 ≤ 320
2 + + 2 ≤ 200
3 + 2 + 2 ≤ 300
≥ 120
≥ 0; ≥ 0 ; ≥ 0
Forme standard :

+ 2 + 4 + = 320
2 + + 2 + = 200
3 + 2 + 2 + = 300
− 6 + = 120
= 6 + 10 + 12 −
≥ 0; ≥ 0 ; ≥ 0 ; ≥ 0 ; ≥ 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 71


Recherche Opérationnelle

La variable 6 doit être mise hors base.

= 120 − +
On tire :
6

=6 + 10 + ! + 12 − − 120
Et :
6

Tableau 0 :
HB . . . 6 . C R

1 0 0 0 160
B
1 2 4 0 320

0 0 1 0 150
2 1 2 0 1 0 0 0 200 200

0 0 0 −1 1
3 2 2 0 300
&'+ ," - . &"

∆ 6 10 12 0 0 0 −
0 1 0 120 120
0 +120
+

"* +" , *& - . &"

La variable artificielle sort de la base. Il faudra supprimer sa colonne dans le tableau suivant.
Tableau 1 :
HB . . . . 6 . C R
B
1 0 4 1 0 0 2 80 20 &'+ ," - . &"
2 0 2 0 1 0 1 80 40
3 0 2 0 0 1 2 60 30
0 0 0 −1 +∞
∆ 6 0 12 0 0 0
0 1 0 120
10 −1200

"* +" , *& - base

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 72


Recherche Opérationnelle

Tableau 2 :
HB . . . . 6 . C R

1/4 0 1 1/4 0 0 1/2 40


B
20
3/2 0 0 −1/2 1 0 +∞
5/2 0 0 −1/2 0 1 20
0 40

&'+ ," - . &"


0 0 −1 −120
1 20

∆ 3 0 0 −3 0 0
0 1 0 0 120
4 −1440

6 "* +" , *& -


. &"

Tableau 3 :
HB . . . . . C
B
−1 0 1 1/2 0 −1/2 0 10
3/2 0 0 −1/2 1 0 0 40

6 5/2 0 0 −1/2 0 1 1 20
5/2 1 0 −1/2 0 1 0
∆ −7 0 0 −1 0
140
−4 0 −1520

=0
L’optimum est ainsi atteint. On trouve :

= 140
= 10

= 1520

2.3. Résolution d’une minimisation

Les principes de résolution sont les mêmes à l’exception du choix de la variable qui entre dans la
base : la variable entrante est celle dont le taux marginal de substitution sont positifs ou nuls.
Soit à résoudre le programme linéaire suivant sous sa forme canonique
5 x1 + 6 x2 ≥ 10
2 x1 + 7 x2 ≥ 14
Min z = 3 x1 + 10 x2
x1 ≥ 0 ; x2 ≥ 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 73


Recherche Opérationnelle

* Forme standard
5 x1 + 6 x2 - 1 t1 + 1 a1 + 0 a2 = 10
2 x1 + 7 x2 - 1 t2 + 0 a1 + 1 a2 = 14
Min Z = 3 x1 + 10 x2 + 0 t1 + 0 t2 + M a1 + M a2
x1 ≥ 0 ; x2 ≥ 0 ; t1 ≥ 0 ; t2 ≥ 0; e1 ≥ 0 ; e2 ≥ 0

On tire :

= 10 − 5 −6 +

= 14 − 2 −7 +

Et on a :

= 3−7 ! + 10 − 13 ! + + + 24

* Tableau 0

HB x1 x2 t1 t2 . . C
B
5 6 -1 0 1 0 10

2 7 0 -1 0 1 14

∆ 3-7M 10-13M M M 0 0 -24 M

Puisqu'on recherche un minimum, la variable entrante est celle qui a le plus grand coefficient
négatif, c.à.d. x2. En fait il suffit de regarder le coefficient de M car M est très grand ; le coefficient
indépendant de M n'intervient que dans le cas où plusieurs variables ont le même coefficient pour
M.

HB x1 x2 t1 t2 . . C R
B
e1 5 6 -1 0 1 0 10 5/3 variable sortant

e2 2 7 0 -1 0 1 14 2

∆ 3-7M 10-13M M M 0 0 -24M

variable entrant

La variable artificielle sortant de la base, va se trouver dans la ligne ∆ avec un fort coefficient
positif et ne pourra donc plus y entrer; on peut donc supprimer la colonne correspondante dans la
suite des itérations, d'où le tableau 1.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 74


Recherche Opérationnelle

Tableau 1 :

HB x1 . t1 t2 . C
B
x2 5/6 1 -1/6 0 0 5/3
e2 -23/6 0 7/6 -1 1 7/3
∆ -16/3+(23/6)M 0 5/3-(7/6)M M 0 -50/3-(7/3)M

HB x1 . t1 t2 . C R
B
x2 5/6 1 -1/6 0 0 5/3 -10

e2 -23/6 0 7/6 -1 1 7/3 2


variable sortant
- 0 5/3- M -50/3-
∆ 0
16/3+(23/6)M (7/6)M (7/3)M
variable entrant

d'où le tableau 2.

Tableau 2 :

HB x1 . . t2 C
B
x2 6/21 1 0 -1/7 2
t1 -23/7 0 1 -6/7 2
∆ 1/7 0 0 30/21 -20

On a atteint la solution optimale qui est x1 = 0; x2 = 2; t1 = 2; t2 = 0; Z = 20.


Remarque: Dans le cas particulier de cet exemple qui était sous forme standard, il aurait été plus
rapide de traiter le problème dual et d'en déduire la solution du problème primal initial.

REMARQUE
Avec la méthode de simplexe, on reconnaît que le problème est impossible si une ou plusieurs
variables artificielles sont présentes dans la base dans le tableau de simplexe optimal, ce qui
signifie que la solution donnée par ce tableau n’est pas réellement réalisable.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 75


Recherche Opérationnelle

Exemple:
Vérifier à l’aide de la méthode de simplexe, que le problème suivant est réellement impossible :
Max 4 x1 + 3x2
Sc x1 + x2 ≤ 2
3x1 + x2 ≥ 10
x1 , x2 ≥ 0

REMARQUE

Les problèmes à solutions multiples


Graphiquement, ce problème est caractérisé par le fait que la pente de la droite représentant la
fonction objectif (z = 0) est égale à la pente de l’une des contraintes restrictives. Lorsqu’on utilise la
méthode de simplexe, on identifie ce problème lorsqu’un des effets nets (relatif à une variable hors
base) est nul.

Les problèmes à solution infinie


Graphiquement, ce problème est caractérisé par le fait qu’on peut déplacer la droite de la fonction
objectif indéfiniment de manière à accroître la valeur, en gardant toujours une intersection non vide
avec l’ensemble des solutions réalisables.
Avec la méthode de simplexe, on reconnaît ce problème lorsque la variable entrante n’admet
aucune limite sur sa valeur d’entrée, c’est à dire que tous les ratios Qi/aijo sont négatifs ou nuls.
Exemple
Max x1 + 2x2
Sc x1 + x2 ≥ 2
x2 ≤ 3
x1 , x2 ≥ 0

Les problèmes à solution dégénérée


Graphiquement, on appelle solution dégénérée le point où plusieurs contraintes concourent (un
nombre supérieur ou égale à trois contraintes). Un programme linéaire est dit dégénéré si une ou
plusieurs variables dans la base optimale sont nulles. Dans la résolution graphique ce problème
n’est pas difficile à résoudre, mais avec la méthode de simplexe il peut causer des difficultés.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 76


Recherche Opérationnelle

Exemple
Max z = 2x1 + 0 x2 + 3/2 x3
s.c. x 1 - x2 ≤ 2
2x1 + x3 ≤ 4
x1 + x2 + x3 ≤ 3
x1, x2, x3 ≥ 0

=6 + 3 , soumis aux contraintes suivantes :


Exercice
Minimiser

5 + ≥ 10
> 9 + 13 ≥ 74
+ 3 ≥ 9

= 1 ; = 5 ; = 21
Réponse :
∗ ∗ ∗

Exercice
Min Z = x1 + x2
Sc 2x1 + x2 ≥ 12
5x1 + 8x2 ≥ 74
x1 + 6x2 ≥ 24
x1 ≥ 0 , x2 ≥ 0
Réponse :
x1 = 8
x2 = 2
Z = 10
Exercice
Résoudre le programme linéaire suivant :
Min Z = 3x1 + 2x2 + 5 x 3
sous les contraintes
x 1≥0 , x 2≥0 , x 3≥0
x 1 + x 2 + 2 x 3 ≥ 15
x 1 + 3 x 2 + x 3 ≥ 10
Réponse : x1=x3=0 et x2=15 et Z = 30.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 77


Recherche Opérationnelle

EXERCICES
Exercice 1
Résoudre le programme linéaire suivant :
Maximiser z = +

≤ 25
sous contraintes

≤ 43
-5 +6

≥8
9 -2

≥8
+

≥0
3 +
et ,

Exercice 2
Dans une exploitation agricole, on élève des vaches et des moutons. Les étables peuvent contenir un
maximum de 50 vaches et 200 moutons. De plus, 72 arpents de pâturages sont disponibles. On a
besoin de 1 arpent par vache et de 0,2 arpent par mouton. Pour s’occuper du bétail, on dispose de
10000 heures de travail par année. On estime qu’une vache nécessite 150 heures de travail par
année et un mouton 25 heures. Le gain annuel net s’élève à 250 kF par vache et à 45 kF par mouton.
Combien doit-on élever de vaches et de moutons pour que le gain net soit maximal ?

Exercice 3
On nourrit des lapins exclusivement de carottes et de pommes de terre. Une mesure de carottes
fournit 1 kcal, 4 mg de vitamine B et 3 mg de vitamine A. Une mesure de pommes de terre fournit 2
kcal, 3 mg de vitamine B et 1 mg de vitamine A. Les besoins du lapin sont d’au moins 2 kcal, 6 mg
de vitamine B et 3 mg de vitamine A. Une mesure de carottes coûte autant que deux mesures de
pommes de terre. Quel menu coûte le moins cher ?

Exercice 4
Une usine fabrique les produits P1 et P2. Elle utilise les matières premières M1, M2 et M3, à raison
de 2 tonnes de M1, 1 tonne de M2 et 3 tonnes de M3 par unité produite de P1 et de 1 tonne de M1,
3 tonnes de M2 et 4 tonnes de M3 par unité produite de P2. Elle dispose mensuellement de 50
tonnes de M1, 25 tonnes de M2 et 60 tonnes de M3.
Le bénéfice net est de 5 000 FCFAF par unité de P1 et de 2 000 FCFA par unité de P2.
Quelle quantité de chacun des deux produits l’entreprise doit-elle fabriquer pour que le bénéfice soit
maximal ?
Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 78
Recherche Opérationnelle

Exercice 5
Un industriel doit livrer trois biens A, B et C à raison de 6 unités de A, 11 unités de B et 23 unités
de C. ll dispose de deux facteurs de production X1 et X2. L’emploi d’une unité de X1 permet de
réaliser une unité de A, une de B et une de C. Une unité de X2 permet de réaliser une unité de A, 2
de B et 5 de C. Le prix du facteur X1 est de 100 kF l’unité, celui du facteur X2 de 400 kF.
Quelle quantité de chaque facteur l’industriel doit-il utiliser pour satisfaire la demande à un coût
minimal ?

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 79


Recherche Opérationnelle

CHAPITRE 5 :
NOTIONS ELEMENTAIRES SUR LES GRAPHES

1. GRAPHE ORIENTÉ
Un graphe orienté G est un couple (X,R) où X est un ensemble de sommets {x1,...,xn} et R un
ensemble de couples orientés (xi,xj) appelés arcs.
Pour un arc (xi,xj) d'origine xi et d'extrémité xj, xi est un précédent de xj, et xj est un suivant de xi .
Un chemin est une suite ordonnée (x1,...,xn) de sommets reliés par des arcs. La longueur du chemin
est le nombre d'arcs qu'il contient.
Un circuit est un chemin (x1,...,xn) tel que x1 = xn.

2. REPRESENTATION D'UN GRAPHE


2.1. Représentation sagittale
Les sommets sont représentés par des points et les arcs par des flèches.

2.2. Représentation par un dictionnaire


Outre une représentation graphique sagittale, un graphe peut être représenté par un tableau, appelé
dictionnaire, qui à chaque sommet énumère les suivants et les précédents :

Sommets Précédents Suivants


x P(x) S(x)
x1 - x2 , x3
x2 x1 , x3 x4
x3 x1 x2 , x4
x4 x2 , x3 x5 , x6
x5 x4 x6
x6 x4 , x5 -

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 80


Recherche Opérationnelle

L'existence d'un arc entre 2 sommets est représentée par : ×

sommets extrémités

x1 x2 x3 x4 x5 x6

× ×
Sommets
x1

×
origine
x2

x3 × ×
x4 × ×
x5 ×
x6

3. NIVEAUX
Dans un graphe sans circuit, le niveau d'un sommet x est la longueur du plus long chemin
d'extrémité x. La détermination des niveaux de l'exemple précédent se fait à partir du dictionnaire
des précédents :

Sommets Précédents P(x)


x
x1 - C0 = {sommets de niveau 0}
= {sommets n'ayant pas de précédent}= { x1}
x2 x1 , x3
Tous les sommets x1 sont barrés (en rouge ici), d'où le tableau
x3 x1
ci-dessous
x4 x2 , x3
x5 x4
x6 x4 , x5

Sommets Précédents Les sommets barrés (en rouge) sont considérés comme
x P(x) n'existant plus.
x1 - C1 = {sommets de niveau 1}
= {sommets n'ayant pas de précédent}= { x3}
x2 x1 , x3
Tous les sommets x3 sont barrés (en rouge ici), d'où le tableau
x3 x1
ci-dessous
x4 x2 , x3
x5 x4
x6 x4 , x5

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 81


Recherche Opérationnelle

Sommets Précédents Les sommets barrés (en rouge) sont considérés comme
x P(x) n'existant plus.
x1 - C2 = {sommets de niveau 2}
x2 x1 , x3 = {sommets n'ayant pas de précédent}= { x2}
x3 x1 Tous les sommets x2 sont barrés (en rouge ici), d'où le tableau
x4 x2 , x3 ci-dessous.
x5 x4
x6 x4 , x5

Sommets Précédents
x P(x) Les sommets barrés (en rouge) sont considérés comme
x1 - n'existant plus.
x2 x1 , x3 C3 = {sommets de niveau 3}
x3 x1 = {sommets n'ayant pas de précédent}= { x4}
x4 x2 , x3 Tous les sommets x4 sont barrés (en rouge ici), d'où le tableau
x5 x4 ci-dessous
x6 x4 , x5

Sommets Précédents Les sommets barrés (en rouge) sont considérés comme
x P(x) n'existant plus.
x1 - C4 = {sommets de niveau 4}
x2 x1 , x3 = {sommets n'ayant pas de précédent}= { x5}
x3 x1 Tous les sommets x5 sont barrés (en rouge ici), d'où le tableau
x4 x2 , x3 ci-dessous
x5 x4
x6 x4 , x5

Sommets Précédents
x P(x) Les sommets barrés (en rouge) sont considérés comme
x1 - n'existant plus.
C5 = {sommets de niveau 5}
x2 x1 , x3
= {sommets n'ayant pas de précédent}= { x6}
x3 x1
Tous les sommets x6 sont barrés (en rouge ici), d'où le tableau
x4 x2 , x3 ci-dessous
x5 x4
x6 x4 , x5

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 82


Recherche Opérationnelle

Tous les sommets ayant été barrés, l'algorithme est terminé.


Sommets Précédents Les niveaux sont donc
x P(x) C0 = { x1}
x1 - C1 = { x3}
x2 x1 , x3 C2 = { x2}
x3 x1 C3 = { x4}
x4 x2 , x3 C4 = { x5}
x5 x4 C5 = { x6}
x6 x4 , x5

Pratiquement, il n'est pas indispensable de reproduire à chaque fois le dictionnaire; il suffit de barrer
au fur et à mesure les différents sommets sur le même tableau du dictionnaire des précédents.
La recherche des niveaux permet de construire le graphe ordonné par niveaux. Les axes verticaux et
les niveaux n'ont pas à être représentés; ils apparaissent ci-dessous pour mettre en évidence le fait
que les sommets de même niveau doivent être alignés sur la même verticale.

4. CHEMINS EXTREMAUX
A chaque arc (x,y) est associé un nombre positif V(x,y) appelé la valeur de l'arc. L'algorithme de
Ford va nous permettre de déterminer le chemin de valeur maximale entre un sommet D (Départ) et
un sommet F (Fin).
a) On ordonne le graphe par niveaux
b) On fait la représentation du graphe par niveaux.
A partir de cette représentation, on supprime les sommets et les arcs par lesquels on ne peut pas
passer pour aller de D à F.
c) En partant du sommet D de niveau le plus faible (le plus à gauche) jusqu'au sommet F de niveau
le plus fort (le plus à droite), on associe à chaque sommet x une marque m(x) correspondant à la
valeur du chemin de valeur maximale aboutissant à x.
m(D) = 0
m(x) = max [m(y) + V(y,x)] , le max étant pris sur tous les précédents
y de x

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 83


Recherche Opérationnelle

La marque de F donnera donc la valeur du chemin le valeur maximale entre D et F. Le chemin de


valeur maximale est le chemin qui a permis d'aboutir à la marque de F. Il est obtenu en partant de F
et en regardant quel est le sommet précédent qui a permis d'obtenir m(F), et ainsi de suite jusqu'à
revenir en D.
Exemple : Considérons le graphe suivant ordonné par niveaux

On désire chercher le chemin de valeur maximale entre le sommet 4 et le sommet 7. On supprime


donc les sommets et les arcs par lesquels on ne peut pas passer pour aller de 4 à 7, c.à.d.
• les sommets 1 et 2, ainsi que les flèches issues de ces sommets
• les sommets 8 et 9, ainsi que les flèches aboutissant à ces sommets

m(4) = 0
m(3) = m(4) + V(4,3) = 0 + 5 = 5
m(5) = m(4) + V(4,5) = 0 + 2 = 2
m(6) = Max { m(3) + V(3,6) ; m(5) + V(5,6) } = Max { 5 + 5 ; 2 + 1 }= Max { 10 ; 3 } = 10
m(7) = Max { m(3) + V(3,7) ; m(6) + V(6,7) } = Max { 5 + 3 ; 10 + 6 }= Max { 8 ; 16 } =16
Le chemin de valeur maximale entre 4 et 7 a donc pour valeur 16. Pour déterminer quel est ce
chemin, en partant du sommet final, on regarde quel est le sommet précédent qui a permis d'obtenir
la marque retenue. Ci-dessous est repris l'algorithme précédent où le cheminement suivi est surligné
en rouge en partant du sommet final 7 :
m(7) = Max { m(3) + V(3,7) ; m(6) + V(6,7) } = Max { 5 + 3 ; 10 + 6 }= Max { 8 ; 16 } =16
Pour aboutir à 7, on est passé par 6

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 84


Recherche Opérationnelle

m(6) = Max { m(3) + V(3,6) ; m(5) + V(5,6) } = Max { 5 + 5 ; 2 + 1 }= Max { 10 ; 3 } = 10


Pour aboutir à 6, on est passé par 3
m(3) = m(4) + V(4,3) = 0 + 5 = 5
Pour aboutir à 3, on est passé par 4
m(4) = 0
4 est le sommet initial; d'où le chemin de valeur maximale (4,3,6,7).

5. RECHERCHE D'UN CHEMIN DE VALEUR MINIMALE


Pour un chemin de valeur minimale, il suffit de remplacer "max" par "min" dans l'algorithme.

EXERCICES
Exercice 1 :
Soit le dictionnaire des suivants:
Sommets A B C D E F G
Sommets suivants C,D E B,E,F F E B,C
Déterminer le dictionnaire des précédents et représenter le graphe associé.
Exercice 2 :
Soit le graphe valué suivant :

1) Ecrire le dictionnaire des précédents.


2) Déterminer le niveau de chaque sommet.
3) Présenter le graphe par niveaux.
4) Calculer les chemins extrémaux.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 85


Recherche Opérationnelle

CHAPITRE 6 :
ORDONNANCEMENT MPM - PERT

Un problème d'ordonnancement consiste à ordonner dans le temps un ensemble de tâches


contribuant à la réalisation d'un même projet. L'objectif est de minimiser la durée de réalisation du
projet compte tenu des contraintes d'antériorité reliant les différentes tâches. De plus, on détermine
les calendriers de réalisation de chacune de ces tâches ainsi que les marges de manœuvre associées.
Exemple : Les opérations mises en jeu dans la construction d'un ensemble hydro-électrique sont les
suivantes :
a) Construction des voies d'accès
b) Travaux de terrassement
c) Construction des bâtiments administratifs
d) Commande du matériel électrique
e) Construction de la centrale
f) Construction du barrage
g) Installation des galeries et conduites forcées
h) Montage des machines
i) Essais de fonctionnement

Les contraintes d'antériorité sont les suivantes :


opérations durée (mois) opérations prérequises
A 4 -
B 6 a
C 4 -
D 12 -
E 10 b,c,d
F 24 b,c
G 7 a
H 10 e,g
I 3 f,h

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 86


Recherche Opérationnelle

Deux méthodes sont classiquement utilisées : la Méthode des Potentiels Metra (MPM), et la
méthode PERT (Programm Evaluation and Research Task). Toutes les deux utilisent des graphes
pour résoudre le problème.

1. MPM
1.1. Construction du graphe
- un sommet correspond à une tâche
- un arc définit une relation d'antériorité
- la valeur de l'arc définit le temps minimum séparant deux tâches successives.
- Chaque sommet de la représentation graphique est figuré par un rectangle :

Tx T*x
X
où :
x = nom de la tâche
Tx = date de début au plus tôt de la tâche
T*x = date de début au plus tard de la tâche.

- Un sommet terminal permettant de dater la fin des travaux est rajouté au graphe.
- La représentation graphique est ordonnée par niveaux des sommets, c.à.d. des tâches.
Exemple:
* Détermination des niveaux des sommets ou tâches (voir chapitre sur les graphes)

x P(x) x P(x) X P(x) x P(x) x P(x)


a - a - A - a - a -
b A b a B a b a b a
c - c - C - c - c -
d - d - D - d - d -
e b,c,d e b,c,d E b,c,d e b,c,d e b,c,d
f b,c f b,c F b,c f b,c f b,c
g A g a G a g a g a
h e,g h e,g H e,g h e,g h e,g
i f,h i f,h I f,h i f,h i f,h
niveaux C0={a,c,d} niveaux C1={b,g} niveaux C2={e,f} niveaux C3={h} niveaux C4={i}

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 87


Recherche Opérationnelle

* Représentation graphique
opérations durée opérations
(mois) prérequises
a 4 -
b 6 a
c 4 -
d 12 -
e 10 b,c,d
f 24 b,c
g 7 a
h 10 e,g
i 3 f,h

1.2. Calendrier au plus tôt


Une tâche x ne pouvant débuter que lorsque toutes les tâches qui y aboutissent sont terminées, Tx
correspond à la valeur du chemin de valeur maximale aboutissant à x. Ceci sera obtenu en utilisant
l'algorithme de Ford (voir chapitre sur les graphes), après avoir ordonné le graphe par niveaux des
tâches.
Tx = max [Ty + V(y,x)] , le max étant pris sur les précédents y de x.

Exemple:
Ta = Tc = Td = 0
Tb = Ta + 4 = 4

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 88


Recherche Opérationnelle

Tg = Ta + 4 = 4
Tf = Max (Tb + 6 ; Tc + 4) = Max (10 ; 4) = 10
Te = Max (Tb + 6 ; Tc + 4 ; Td + 12 ) = Max (10 ; 4 ; 12) = 12
Th = Max (Te + 10 ; Tg + 7) = Max (22 ; 11) = 22
Ti = Max (Tf + 24 ; Th + 10) = Max (34 ; 32) = 34
Tz = Ti + 3 = 37
Ces résultats peuvent être reportés sur le graphe

Pour le sommet terminal z, Tz correspond à la durée minimale du projet (qui correspond au chemin
de valeur maximale aboutissant à z). Le chemin de valeur maximale associé est appelé chemin
critique, constitué de tâches critiques : un retard sur l'une de tâches critiques entraînerait un
allongement de la durée du projet.
Exemple :
Le chemin de valeur maximale est le chemin a, b, f, i. (voir chapitre sur les graphes) et a pour durée
37.
1.3. Calendrier au plus tard
Il s'agit de la date au plus tard à laquelle peut commencer une tâche sans remettre en cause la date
de fin des travaux. Ceci sera obtenu en commençant par les sommets de niveau les plus élevés
jusqu'aux sommets de niveau les plus faibles.
T*z = Tz pour le sommet terminal
T*x = min [T*y - V(x,y)] , le min étant pris sur les suivants y de x.
Exemple :
T*i = T*z - V(i,z) = 37 - 3 = 34
T*h = T*i - V(h,i) = 34 - 10 = 24
T*f = T*i - V(f,i) = 34 - 24 = 10

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 89


Recherche Opérationnelle

T*e = T*h - V(e,h) = 24 - 10 = 14


T*g = T*h - V(g,h) = 24 - 7 = 17
T*b = Min [T*e - V(b,e); T*f - V(b,f) = Min [14 - 6; 10 - 6 ] = 4
T*a = Min [T*b - V(a,b); T*g - V(a,g) = Min [4 - 4; 17 - 4 ] = 0
T*c = Min [T*f - V(c,f); T*e - V(c,e) = Min [10 - 4; 14 - 4 ] = 6
T*d = T*e - V(d,e) = 14 - 12 = 2
Ces résultats peuvent être reportés sur le graphe

Remarque: sur les tâches critiques a, b, f, i, on a T*x = Tx

1.4. Marges totales


C'est le retard maximum que l'on peut prendre dans la mise en route d'une tâche sans remettre en
cause les dates au plus tard des tâches suivantes (donc sans retarder la fin des travaux).

mt(x) = T*x - Tx

Exemple :
mt(a) = T*a - Ta = 0 - 0 = 0
mt(b) = T*b - Tb = 4 - 4 = 0
mt(c) = T*c - Tc = 6 - 0 = 6
mt(d) = T*d - Td = 2 - 0 = 2
mt(e) = T*e - Te = 14 - 12 = 2
mt(f) = T*f - Tf = 10 - 10 = 0
mt(g) = T*g - Tg = 17 - 4 = 13
mt(h) = T*h - Th = 24 - 22 = 2

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 90


Recherche Opérationnelle

mt(i) = T*i - Ti = 34 - 34 = 0

1.5. Marges libres


C'est le retard maximum que l'on peut prendre dans la mise en route d'une tâche sans remettre en
cause les dates au plus tôt des tâches suivantes (donc sans retarder la fin des travaux).

mL(x) = min [Ty - Tx - V(x,y)] , le min étant pris sur les suivants y de x.
Exemple :
mL(a) = Min [Tb - Ta - V(a,b) ; Tg - Ta -
V(a,b)] = Min (0 ; 0) = 0
mL(b) = Min [Tf - Tb - V(b,f) ; Te - Tb -
V(b,e)] = Min (0 ; 2) = 0
mL(c) = Min [Tf - Tc - V(c,f) ; Te - Tc -
V(c,e)] = Min (6 ; 8) = 6
mL(d) = Te - Td - V(d,e) = 0
mL(e) = Th - Te - V(e,h) = 0
mL(f) = Ti - Tf - V(f,i) = 0
mL(g) = Th - Tg - V(g,h) = 11
mL(h) = Ti - Th - V(h,i) = 2
mL(i) = Tz - Ti - V(i,z) = 0

2. PERT
Le PERT (Programm of Evaluation and Review Technic) est, comme la MPM, une technique
d'ordonnancement basée sur la théorie des graphes, visant à optimiser la planification des tâches
d'un projet. Le P.E.R.T. est une méthode consistant à mettre en ordre sous forme de réseau plusieurs
tâches qui grâce à leur dépendance et à leur chronologie concourent toutes à l’obtention d’un
produit fini.
Cette technique aurait été conçue sous l'appellation initiale de méthode CPM (Critical Method Path)
par la marine américaine, en 1958, pour coordonner les tâches des milliers d'entreprises impliquées
dans son projet "Polaris" (programme de développement de missiles à ogive nucléaire).
Compte tenu de son efficacité (elle aurait permis de réduire de 14 à 7 ans la durée globale de
réalisation du projet Polaris) elle s'est rapidement imposée dans les organisations, gouvernementales
ou non, ayant à gérer des projets importants (programme Apollo de la NASA, construction
d'autoroute, etc.) au détriment du diagramme de Gantt. L'utilisation du PERT permet, notamment,

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 91


Recherche Opérationnelle

de déterminer la durée minimum nécessaire pour mener à bien un projet et les dates auxquelles
peuvent ou doivent débuter les différentes tâches nécessaires à sa réalisation pour que cette durée
minimum soit respectée.

2.1. Construction du graphe


Le recours au PERT suppose qu'aient préalablement été identifiées les différentes tâches nécessaires
à la réalisation d'un projet, leur durée et leurs relations d'antériorité. Généralement ces informations
sont synthétisées dans un tableau du type suivant dit tableau des tâches et antériorité.

Tâches Durée Antériorité(s)

Le PERT permet de représenter l'ensemble des tâches sur un graphe orienté, à partir duquel il sera
possible d'identifier leurs dates au plus tôt et au plus tard et de calculer leurs marges. Un graphe
orienté est un réseau composé d'une entrée et d'une sortie, ainsi que de points (appelés "sommets")
reliés entre eux par des flèches (appelées "arcs").
Les principales conventions d'un réseau PERT sont les suivantes :
- chaque tâche est symbolisée par un arc, auquel est associé une valeur numérique
correspondant à sa durée.
- les sommets auxquels aboutissent les arcs correspondent donc à des étapes, qui marquent
l'aboutissement d'une ou plusieurs tâches.
- chaque étape est identifiée par un numéro d'ordre et renseignée sur la date à laquelle elle
peut être atteinte au plus tôt ("date au plus tôt") et au plus tard ("date au plus tard") pour
respecter le délai optimal de réalisation du projet.
- le graphe possède une entrée (sommet sans antécédent) et une sortie (sommet sans
descendant) qui correspondent respectivement aux étapes "Début des opérations" et "Fin des
opérations".
Du fait de ses conventions, il est parfois nécessaire d'introduire des "tâches fictives" de durée nulle
pour traduire correctement sur un graphe les relations d'antériorité de certaines tâches, notamment
lorsque celles-ci partagent avec d'autres une partie de leurs antécédents.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 92


Recherche Opérationnelle

- Un arc correspond à une tâche


- la valeur de l'arc représente la durée de la tâche.
- un sommet est une étape signifiant que :
toutes les tâches qui y arrivent sont terminées
toutes les tâches qui en partent peuvent commencer
Un réseau est constitué par des étapes et des tâches. On appelle étape le commencement ou la fin
d’une tâche symbolisé par :
On appelle tâche le déroulement dans le temps d’une opération symbolisé par
sur laquelle seront indiqués l’action à effectuer et le temps de réalisation de cette tache.
Pour alléger le réseau PERT on attribut à chaque définition une lettre alphabétique.
Les tâches suivant leur disposition dans un réseau peuvent être :
- successives
- simultanées
- convergentes
• Les tâches sont successives lorsqu’elles se déroulent les unes après les autres, séparées par des
étapes.

A B
0 1 2

• Les tâches (A et B) sont simultanées lorsque plusieurs d’entre elles peuvent commencer en
même temps en partant d’une même étape.

1
A
0 I (tâche fictive ou contrainte de liaison)
B
C
2 3
• Les taches (A et B) sont convergentes lorsque plusieurs d’entre elles aboutissent à une même
étape.

0 A
C
2 3
B
1

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 93


Recherche Opérationnelle

Remarques

Remarque 1: il est quelque fois nécessaire d'introduire des tâches fictives de durée nulle

a et b doivent être terminées pour


que c et d puissent commencer

Remarque 2 : Deux arcs ne peuvent avoir à la fois la même origine et la même extrémité. Il est
nécessaire de rajouter une tâche fictive dans ces conditions:

a et b doivent être terminées pour


que c puisse commencer et
uniquement b doit être terminée
pour que d commence

sera
transformé
en

- Chaque sommet de la représentation graphique est figuré par un cercle

où n = nom ou numéro de l'étape


tn = date de début au plus tôt de l'étape
t*n = date de début au plus tard de l'étape

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 94


Recherche Opérationnelle

- Un sommet terminal et un sommet initial sont rajoutés au graphe.


- La représentation graphique est ordonnée par niveaux des sommets, c.à.d. des étapes.
Les tâches n’ayant aucune antériorité sont représentées en première position. L’utilisation de la
matrice des antériorités facilite la détermination des niveaux d’exécution des tâches.
Le graphe se lit de gauche à droite (de l'étape "DÉBUT" à celle de "FIN").
Chaque arc symbolise une tâche qui permet d'atteindre une nouvelle étape dans la réalisation du
projet. Une nouvelle tâche ne peut commencer que lorsque toutes les tâches préalables à sa
réalisation sont terminées. Chaque sommet correspond à une étape qui est identifié par une
cartouche où sont précisés : son "numéro d'ordre", la date à laquelle elle peut être atteinte au plus tôt
("date au plus tôt") et la date à laquelle elle doit être atteinte au plus tard pour respecter le délai
optimal de réalisation du projet ("date au plus tard").
Le chemin de valeur maximale associé est appelé chemin critique, constitué de tâches critiques: un
retard sur l'une de tâches critiques entraînerait un allongement de la durée du projet.

2.2. Calcul des différentes marges d'une tâche dans un réseau PERT
On appelle "marge" d'une tâche le retard qu'il est possible de tolérer dans la réalisation de celle-ci,
sans que la durée optimale prévue du projet global en soit affectée. Il est possible de calculer trois
types de marges : la marge totale, la marge certaine et la marge libre.
La marge totale d'une tâche indique le retard maximal que l'on peut admettre dans sa réalisation
(sous réserve qu'elle ait commencé à sa date au plus tôt) sans allonger la durée optimale du projet.
Elle se calcule en retirant la durée de la tâche en question à l'écart qu'il peut y avoir entre sa date de
au plus tôt de début et sa date au plus tard de fin :
Marge totale tâche "ij" = Date au plus tard "étape j" - Date au plus tôt "étape i" - Durée tâche
"ij"
Sauf cas particulier, un retard correspondant à la marge totale d'une tâche se traduit par une
modification des dates au plus tôt des tâches qui lui succèdent et entraîne, généralement, l'apparition
d'un second chemin critique.
Il n'est donc pas possible de cumuler des retards correspondant à leur marge totale sur plusieurs
tâches successives, sans remettre en cause la durée optimale prévue pour le projet.
La marge libre d'une tâche indique le retard que l'on peut admettre dans sa réalisation (sous réserve
qu'elle ait commencé à sa date au plus tôt) sans modifier les dates au plus tôt des tâches suivantes et
sans allonger la durée optimale du projet.
Elle se calcule en retirant la durée de la tâche en question à l'écart qu'il peut y avoir entre ses dates
au plus tôt de début et de fin :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 95


Recherche Opérationnelle

Marge libre tâche "ij" = Date au plus tôt "étape j" - Date au plus tôt "étape i" - Durée tâche "ij"

Un retard correspondant à la marge libre d'une tâche reste sans conséquence sur les marges des
tâches qui lui succèdent. Il est donc possible de cumuler des retards, s'inscrivant dans leur marge
libre, pour plusieurs tâches successives, sans remettre en cause la durée optimale prévue pour le
projet.
La marge certaine d'une tâche indique le retard que l'on peut admettre dans sa réalisation (quelle
que soit sa date de début) sans allonger la durée optimale du projet.
Elle se calcule en retirant la durée de la tâche en question à l'écart qu'il peut y avoir entre sa date au
plus tard de début et sa date au plus tôt de fin :
Marge certaine tâche "ij" = Max [ 0 , (Date au plus tôt "étape j" - Date au plus tard "étape i" -
Durée tâche "ij") ]

D'après cette formule, la marge certaine est considérée comme nulle lorsque son calcul donne un
nombre négatif
Un retard correspondant à la marge certaine d'une tâche reste sans conséquence sur les marges des
tâches qui lui succèdent, même si elle commence à sa date au plus tard. Il est donc possible de
cumuler des retards, s'inscrivant dans leur marge certaine, pour plusieurs tâches successives, même
si elles commencent à leur date au plus tard, sans remettre en cause la durée optimale prévue pour le
projet. On remarque que l'ensemble des marges des tâches composant le chemin critique sont
nécessairement nulles, puisqu'il s'agit de tâches pour lesquels, par définition, aucun retard n'est
possible sans remettre en cause la durée optimale prévue pour le projet.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 96


Recherche Opérationnelle

Exercice d’application (Montrer par cet exercice la matrice des antériorités)


Le service de marketing de la Société des Huileries du Bénin a projeté entretenir les différents
appareils utilisés dans la production d’huile de coton. Cet entretien consiste à exécuter un certain
nombre d’activités qu’il faut planifier. A cet effet, le tableau suivant a été dressé :

Opérations Antériorités durée


(mois)
A J 2
B I, G, J 4
C H 1
D C, H, E 2
E A, F 5
F H 3
G J 1
H - 2
I A, F, H 4
J - 2

1. Tracer une esquisse du réseau PERT de la planification du projet d’entretien (matrice des
antériorités et niveaux d’exécution des tâches).
2. Identifier le chemin critique et la durée du projet.
3. Dresser le tableau du programme du projet en y indiquant les marges totale, libre et liée de
chaque tâche. Achever le tracé du réseau PERT.
Exercice 1 :
Reprendre les questions de l’exercice d’application pour les contraintes suivantes :
Opérations durée Opérations
(mois) pré-requises
A 4 -
B 6 A
C 4 -
D 12 -
E 10 B,C,D
F 24 B,C
G 7 A
H 10 E,G
I 3 F,H

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 97


Recherche Opérationnelle

Exercice 2 :
On donne le tableau des tâches et antériorités suivant.

Tâches activité Antériorités durée (jours)

A acceptation des plans - 4

B préparation terrain - 2

C commande matériaux A 1

D creusage fondations A,B 1

E commande portes, fenêtres A 2

F livraisons matériaux C 2

G coulage fondations D,F 2

H livraison portes, fenêtres E 10

I pose des murs, du toit G 4

J mise en place portes, fenêtre H,I 1

1. Construire la matrice des antériorités. Vérifier que cette matrice est antisymétrique.
2. Utiliser cette matrice des antériorités pour déduire les niveaux du réseau PERT et tracer ce
réseau PERT.
3. Calculer le temps minimum de réalisation du projet.
4. Finaliser le tracé du réseau PERT.
5. Dresser le tableau des marges des tâches ou le programme du projet.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 98


Recherche Opérationnelle

Exercice 3 :
Un programme de construction comporte les opérations suivantes :
Tâches Tâches antérieures Durée (en jours)
A J,K 14
B - 4
C G,M 7
D - 10
E - 12
F C,L 18
G E 5
H J 11
I A,B,H 13
J B 9
K B 3
L B,K 15
M D,E 6

En utilisant les méthodes PERT et MPM, déterminez la durée totale du projet, ainsi que, pour
chaque tâche, la date de début au plus tôt, la date de début au plus tard, la marge libre, la marge
totale. Quelles sont les tâches critiques pour la réalisation du projet ?
La tâche D est retardée de 3 jours. Cela implique-t-il un retard sur le délai d’exécution du
programme ?

Exercice 4 :
Lors d’un stage, votre responsable en entreprise vous demande d’exécuter un travail.
Après avoir recensé les différentes tâches que vous aurez à réaliser, vous estimez leur durée
d’exécution et disposez du tableau suivant :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 99


Recherche Opérationnelle

Tâches Tâches antérieures durée (en


jours)
A H 4
B A,G,J 8
C E 14
D - 12
E - 8
F E 6
G D,K,J 6
H - 8
I J,K 10
J H 6
K E,D,F 8

A partir de la représentation MPM ou PERT, définir le calendrier au plus tôt, au plus tard, les
marges totales et libres, ainsi que les tâches critiques.
En fait vous ne disposez que de 30 jours effectifs de stage. Vous informez votre responsable que le
travail ne pourra être achevé pendant le stage.
Il examine votre planning et estime que la durée de certaines tâches peut être réduite (vos
estimations étaient trop larges et on vous aidera dans la réalisation de certaines opérations).
Voici les réductions possibles :

Tâches A B C D E F G H I J K
Réduction 0 2 0 0 4 0 2 0 1 2 0

Quelles sont les tâches que vous réduirez pour que le projet ne dure que 30 jours ? Dressez la liste
des tâches critiques. (On s’attachera à réduire les tâches critiques en commençant par les tâches
finales.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 100


Recherche Opérationnelle

Chapitre 7
PERT probabiliste

1. Définitions
Dans l’exécution d’une tâche beaucoup de difficultés peuvent être rencontrées :
maladies – grèves – approvisionnements, instabilité politique ou climatique, etc.
C’est pour cette raison que la durée d’exécution d’une tâche devient une variable
aléatoire.
Compte tenu du fait que beaucoup de paramètres sont pris en compte dans la
définition de la durée d’exécution d’une tâche, l’utilisation de la loi normale est
bien justifiée.

2. Différents temps utilisés


Trois différents temps sont à définir pour chaque tâche :

exécuter la tâche : OP
- le temps optimiste qui est le temps le plus court qui serait suffisant pour

pour exécuter la tâche : OQ


- le temps réel ou temps normal qui est le temps le plus probable nécessaire

tâche : OR
- le temps pessimiste qui est le temps le plus long requis pour exécuter la

A partir de ces trois données, on détermine :

1
- le temps moyen d’exécution de l’activité ou la tâche :

O = SO + 4OQ + OR T
6 P

1
- l’écart type de la tâche :

U = SO − OP T
6 R
Le chemin critique est déterminé à partir des durées moyennes en sommant les
durées moyennes de toutes les tâches critiques.
La durée du projet est la durée du chemin critique et son écart type est :

U = VW UX
XZ

où [ est l’indice de la tâche critique.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 101


Recherche Opérationnelle

3. Probabilité de tenir le délai

Gauss) de paramètres O\ la durée du projet déterminée à partir du chemin


On suppose usuellement que la durée des chemins obéit à la loi normale (de

critique et l’écart type U.

1
La probabilité ou les chances sur 100 de tenir le délai est :
mé_n gehi l
/ OQé^_ < aé- (! = b " ,
e f k
j
$ U√2d

aé- ( − O\
On fait un changement de variable t en une variable centrée réduite :

o=
U

/ OQé^_ < aé- (! = p o!


F(U) est lu dans la table de Gauss.

Par ailleurs, on a :
mé_n
1 gehi l
/ aé- ( 1 < OQé^_ < aé- ( 2! = b "e f
j
k
,
mé_n U√2d

/ aé- ( 1 < OQé^_ < aé- ( 2! = p o ! − p o !


On a :

aé- ( 2 − O\ aé- ( 1 − O\
avec :

o = " o =
U U

Notez que lorsque o = − 'ù > 0 on a :


p o! = p − ! = 1 − p !
La table de Gauss utilisée après avoir calculé la variable centrée réduite est la
suivante :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 102


Recherche Opérationnelle

Table de Gauss
U 0,00 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09
0,0 0,50000 0,50399 0,50798 0,51197 0,51595 0,51994 0,52392 0,52790 0,53188 0,53586
0,1 0,53983 0,54380 0,54776 0,55172 0,55567 0,55962 0,56356 0,56749 0,57142 0,57535
0,2 0,57926 0,58317 0,58706 0,59095 0,59483 0,59871 0,60257 0,60642 0,61026 0,61409
0,3 0,61791 0,62172 0,62552 0,62930 0,63307 0,63683 0,64058 0,64431 0,64803 0,65173
0,4 0,65542 0,65910 0,66276 0,66640 0,67003 0,67364 0,67724 0,68082 0,68439 0,68793
0,5 0,69146 0,69497 0,69847 0,70194 0,70540 0,70884 0,71226 0,71566 0,71904 0,72240
0,6 0,72575 0,72907 0,73237 0,73565 0,73891 0,74215 0,74537 0,74857 0,75175 0,75490
0,7 0,75804 0,76115 0,76424 0,76730 0,77035 0,77337 0,77637 0,77935 0,78230 0,78524
0,8 0,78814 0,79103 0,79389 0,79673 0,79955 0,80234 0,80511 0,80785 0,81057 0,81327
0,9 0,81594 0,81859 0,82121 0,82381 0,82639 0,82894 0,83147 0,83398 0,83646 0,83891
1,0 0,84134 0,84375 0,84614 0,84849 0,85083 0,85314 0,85543 0,85769 0,85993 0,86214
1,1 0,86433 0,86650 0,86864 0,87076 0,87286 0,87493 0,87698 0,87900 0,88100 0,88298
1,2 0,88493 0,88686 0,88877 0,89065 0,89251 0,89435 0,89617 0,89796 0,89973 0,90147
1,3 0,90320 0,90490 0,90658 0,90824 0,90988 0,91149 0,91309 0,91466 0,91621 0,91774
1,4 0,91924 0,92073 0,92220 0,92364 0,92507 0,92647 0,92785 0,92922 0,93056 0,93189
1,5 0,93319 0,93448 0,93574 0,93699 0,93822 0,93943 0,94062 0,94179 0,94295 0,94408
1,6 0,94520 0,94630 0,94738 0,94845 0,94950 0,95053 0,95154 0,95254 0,95352 0,95449
1,7 0,95543 0,95637 0,95728 0,95818 0,95907 0,95994 0,96080 0,96164 0,96246 0,96327
1,8 0,96407 0,96485 0,96562 0,96638 0,96712 0,96784 0,96856 0,96926 0,96995 0,97062
1,9 0,97128 0,97193 0,97257 0,97320 0,97381 0,97441 0,97500 0,97558 0,97615 0,97670
2,0 0,97725 0,97778 0,97831 0,97882 0,97932 0,97982 0,98030 0,98077 0,98124 0,98169
2,1 0,98214 0,98257 0,98300 0,98341 0,98382 0,98422 0,98461 0,98500 0,98537 0,98574
2,2 0,98610 0,98645 0,98679 0,98713 0,98745 0,98778 0,98809 0,98840 0,98870 0,98899
2,3 0,98928 0,98956 0,98983 0,99010 0,99036 0,99061 0,99086 0,99111 0,99134 0,99158
2,4 0,99180 0,99202 0,99224 0,99245 0,99266 0,99286 0,99305 0,99324 0,99343 0,99361
2,5 0,99379 0,99396 0,99413 0,99430 0,99446 0,99461 0,99477 0,99492 0,99506 0,99520
2,6 0,99534 0,99547 0,99560 0,99573 0,99585 0,99598 0,99609 0,99621 0,99632 0,99643
2,7 0,99653 0,99664 0,99674 0,99683 0,99693 0,99702 0,99711 0,99720 0,99728 0,99736
2,8 0,99744 0,99752 0,99760 0,99767 0,99774 0,99781 0,99788 0,99795 0,99801 0,99807
2,9 0,99813 0,99819 0,99825 0,99831 0,99836 0,99841 0,99846 0,99851 0,99856 0,99861
3,0 0,99865 0,99869 0,99874 0,99878 0,99882 0,99886 0,99889 0,99893 0,99896 0,99900
3,1 0,99903 0,99906 0,99910 0,99913 0,99916 0,99918 0,99921 0,99924 0,99926 0,99929
3,2 0,99931 0,99934 0,99936 0,99938 0,99940 0,99942 0,99944 0,99946 0,99948 0,99950
3,3 0,99952 0,99953 0,99955 0,99957 0,99958 0,99960 0,99961 0,99962 0,99964 0,99965
3,4 0,99966 0,99968 0,99969 0,99970 0,99971 0,99972 0,99973 0,99974 0,99975 0,99976
3,5 0,99977 0,99978 0,99978 0,99979 0,99980 0,99981 0,99981 0,99982 0,99983 0,99983
3,6 0,99984 0,99985 0,99985 0,99986 0,99986 0,99987 0,99987 0,99988 0,99988 0,99989
3,7 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999
3,8 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999 0,99999
3,9 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 103


Recherche Opérationnelle

Exercice 1
Soit à réaliser un projet qui répond aux contraintes d’antériorités suivantes :
Tâches Antériorités Durée (j)
T0 Tr Tp
A - 2 5 8
B A 6 9 12
C A 5 14 17
D B 5 8 11
E C, D 3 6 9
F - 3 12 21
G E, F 1 4 7

1) Calculer le temps moyen d’exécution et l’écart type de chaque tâche.


2) Représenter le réseau PERT et déterminer la durée du projet et son écart type.
3) Calculer la probabilité pour que le projet se termine 3 jours plus tôt qu prévu.

Exercice 2
Une société d’élevage décide de construire un laboratoire pour son exploitation.
Les tâches et antériorités sont regroupées dans le tableau suivant :
Tâches Antériorités Durée (j)
T0 Tr Tp
A F, E 1 2 3
B A, G 1 3 5
C B 1 3 4
D E 12 13 14
E J 3 5 8
F I, J 2 6 8
G H 7 8 10
H I 6 9 12
I L 1 2 3
J L, K 4 5 6
K - 3 6 9
L - 1 3 5

1. Représentez le graphe PERT de ce projet.

2. Calculez la durée moyenne du projet.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 104


Recherche Opérationnelle

3. Trouvez la probabilité pour que ce projet soit terminé en 32 jours (on


considérera que le nombre de tâches est très grand).

4. Déterminez la durée avec une probabilité de 98%.

5. Les durées de la tâche H sont modifiées. Des informations plus précises


indiquent que la moyenne est 9 et l'écart type 5. Cette modification a-t-elle des
conséquences sur les résultats des questions 3 et 4 ?

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 105


Recherche Opérationnelle

Chapitre 8 :
PROBLEMES DE TRANSPORT ET D’AFFECTATION

1. Flot dans un réseau de transport


On appelle réseau de transport un graphe fini, sans boucle comportant une
entrée et une sortie R telles que : depuis il existe un chemin vers tout autre
sommet s et de tout sommet s il existe un chemin vers R. On dit que est une
source et R est un puits.
Tout arc 2 est valué par un entier positif G 2! nommé « capacité » de l’arc 2, 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 disponibles sur des bateaux,
des camions, des wagons, ou encore des débits dans des canalisations,
oléoducs, voies de transmission, etc.
Etant donné un réseau de transport. Le problème à résoudre consiste à
acheminer une quantité maximale de à R en tenant compte des capacités de
transport. La quantité t 2! transportée sur chaque arc 2 est nommée flux sur
l’arc. Elle vérifie donc 0 ≤ t 2! ≤ G 2!.
En tout sommet différent de la source et du puits R, on a une loi de

La somme des flux arrivant sur le sommet F est égale à la somme des flux
conservation :

partant du sommet F.
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 ou bien elle égale à la somme des flux des arcs arrivant sur le
puits R.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 106


Recherche Opérationnelle

Exercice
On considère trois châteaux d’eau A, B et C gérés par un syndicat
intercommunal, alimentant quatre villages D, E, F et G. Le château d’eau A
bénéficie d’une alimentation et d’une réserve capables de débiter 45 l/s ; le
château B peut seulement débiter 25 l/s et le château d’eau C, 20 l/s. Plusieurs
canalisations existent et leur débit en l/s, est mentionné pour chacune sur la
figure ci-après.
Le village D aurait besoin d’un débit de 30 l/s, le village E, 10 l/s, le village F,
20l/s et enfin le village G, 30 l/s.
On demande d’établir la meilleure alimentation possible.

a 30!
10
45! B 20
15

5 z 10!

25! x
15
10 p 20!
20! y
10 20

{ 30!

Solution
Constatons d’abord que, si nous ajoutons au graphe représentant les

deux fictives, on obtient un réseau de transport. On value les arcs w, B!, w, x! et


canalisations avec leur débit, une entrée (source) O et une sortie (puits) P, toutes

w, y! leur attribuant comme capacités les disponibilités respectives en A, B et C.


De même, on value les arcs a, /!, z, /! et p, /! et {, /! par les besoins respectifs
en D, E, F et G.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 107


Recherche Opérationnelle

a
|10}
B |15} |20}
|45} |30}
|5} z
|25} |10}
w
x /
|20}
|15}
|20}
|10} p
y
|20} |30}
|10}

Le problème se ramène alors à passer un flot de valeur maximale de O vers P (ou

Voici un flot Φ sur ce réseau de transport :


si l’on veut, sur un arc imaginaire, dit de »retour », qui reviendrait de P vers O.

a
|10}
B |15} |20}
|45} |30}
|5} z
|25} |10}
w
x /
|20}
|15}
|20}
|10} p
y
|20} |30}
|10}

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 108


Recherche Opérationnelle

2. Problème de transport
La gestion du problème de transport est parmi les préoccupations majeures des
entreprises. La solution du problème de transport est celle qui permet de
transporter les flux du point de départ au point d’arrivée. La solution doit
également être la plus économique.

2.1. Algorithme de Balas-Hammer


L’algorithme de Balas-Hammer, aussi appelé méthode des différences
maximales ou méthode des regrets, est un algorithme permettant d'optimiser
un programme de transport (cas particulier d'un problème d'optimisation
linéaire).
Le but de cet algorithme est d'assurer les transports à moindre coût.
Principe
A partir d'une matrice des coûts de transports entre sources et destinataires :
1. Calculer pour chaque ligne et chaque colonne la différence entre le coût le
plus faible et le coût immédiatement supérieur. Cette différence est appelée
"regret".
2. Choisir l'affectation correspondant à la rangée présentant le regret
maximum (lignes et colonnes confondues), pour remplir une matrice de
transports.
3. Réitérer le processus.
Exemple
Données initiales
Tableau représentant les coûts entre des sources et des destinataires, ainsi que
les stocks disponibles pour les sources et les demandes des destinataires :
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 49
2 5 2 6 12 5 30
Demandes 15 20 5 25 14

Calcul des regrets

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 109


Recherche Opérationnelle

Coûts / Besoins / Stocks / Regrets


Sources/Destinataires 1 2 3 4 5 Stocks Regrets
1 10 6 3 5 25 49 5-3=2
2 5 2 6 12 5 30 5-2=3
Demandes 15 20 5 25 14
Regrets 10- 6- 6- 12- 25-
5=5 2=4 3=3 5=7 5=20

Le regret le plus important est celui de la colonne 5 : 20. Dans cette rangée, on
repère le coût minimal : C(2,5) = 5.
Remplissage de la matrice des transports
Transports
Sources/Destinataires 1 2 3 4 5
1 0
2 14

Réitération du principe

Coûts / Besoins / Stocks / Regrets


Sources/Destinataires 1 2 3 4 Stocks Regrets
1 10 6 3 5 49 5-3=2
2 5 2 6 12 30-14=16 5-2=3
Demandes 15 20 5 25
Regrets 10-5=5 6-2=4 6-3=3 12-5=7

ETC...
Résultat
On en arrive à établir le tableau des transports :
Transports
Sources/Destinataires 1 2 3 4 5
1 0 19 5 25 0
2 15 1 0 0 14

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 110


Recherche Opérationnelle

Le coût total se calcule par un produit scalaire entre les matrices des coûts et des
transports.
Ici, le coût optimal est donc : 0*10 + 19*6 + 5*3 + 25*5 + 0*25 + 15*5 + 1*2 + 0*6
+ 0*12 + 14*5 = 401

Méthode de Balas-Hammer
Autre formulation
On calcule pour chaque rangée, ligne ou colonne, la différence entre le coût le
plus petit avec celui qui lui est immédiatement supérieur. Affecter à la relation de
coût le plus petit correspondant à la rangée présentant la différence maximale la
quantité la plus élevée possible. Ce qui sature une ligne ou une colonne.
Reprendre le processus jusqu’à ce que toutes les rangées soient saturées.

a- : différence entre le coût mini et celui immédiatement supérieur sur une ligne
Algorithme

aG : différence entre le coût mini et celui immédiatement supérieur sur une

1. Calculer les différences a- et aG pour chaque ligne et colonnes


colonne :

2. Sélectionner la ligne ou la colonne ayant le a- ou aG maximum


3. Choisir dans cette ligne ou colonne le coût le plus faible
4. Attribuer à la relation (i,j) correspondante le maximum possible de matière
transportable de façon à saturer soit la destination soit la disponibilité
5. calculer la quantité résiduelle soit demande soit en disponibilité.
6. Eliminer la ligne ou la colonne ayant sa disponibilité ou demande satisfaite
7. SI nombre de lignes ou colonnes> 2 retour en 2. SINON affecter les
quantités restantes aux liaisons.
FIN

Exemple : Schéma de départ :


Tableaux des coûts de chaque trajet :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 111


Recherche Opérationnelle

D1 D2 D3 D4 ai ∆i
A1 11 12 10 10 60 1
A2 17 16 15 18 30 1
A3 19 21 20 22 90 1
Bj 50 75 30 25 180
∆c 6 4 5 8

A1 vers D2 coute 12 unités (par exemple 8 mille francs).


aj correspond aux capacité de production
bj correspond aux besoins
On calcule les deltaL et deltaC donc les regrets.
Les deltas :
∆c= différence entre les deux valeurs minimums
∆cD1=17-11
∆cD2=16-12
∆cD3=15-10
∆cD4=18-10
La meilleure solution coute 10 mais si je prends la seconde meilleure solution,
cela ne me coutera que 11.
∆i= 11-10 sur la ligne 1
donc le second choix me fait perdre 1
Le choix se fait en prenant le plus gros de tous les deltas, Ligne et colonne.
Dans cet exemple, c’est D4 avec un delta de 8.

Maintenant on sature D4. D4 a besoin de 25 unités. On choisi la ligne avec le


deltaL le plus haut. Ici ils sont tous égaux a 1 on prend au hasard, par exemple,
je mets 25 unités sur A1 D4, on a saturé D4 A1 qui produit 60 ne compte plus
que pour 60-25=35 et on recalcule les deltas.
Ce qui nous donne ce nouveau tableau :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 112


Recherche Opérationnelle

D1 D2 D3 D4 ai ∆i
A1 11 12 10 10 60 1
A2 17 16 15 18 30 1
A3 19 21 20 22 90 1
Bj 50 75 30 25 180
∆c 6 4 5 8

D1 D2 D3 D4 Ai
A1 25
A2
A3

On recommence, on prend le plus grand delta (Ligne et colonne). C’est en D1 qui


est égale 6.
On sature D1 avec le plus petit coût qui est A1D1. A dispose encore de 35. On
met 35 dans A1D1,
On recalcule les deltas
D1 D2 D3 D4 ai ∆i
A1
A2 17 16 15 30 1
A3 19 21 20 90 1
Bj 15 75 30 180
∆c 2 5 5

D1 D2 D3 D4 Ai
A1 35 25
A2
A3

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 113


Recherche Opérationnelle

On recommence, on prend le plus grand delta (Ligne, colonne). C’est en D2 qui


est égale à 5. On sature A2D2 qui est moins cher. A2 produit 30. On met 30 dans
A2D2.
D1 D2 D3 D4 ai ∆i
A1
A2
A3 19 21 20 90 1
Bj 15 45 30 180
∆c 19 21 20

D1 D2 D3 D4 Ai
A1 35 25
A2 30
A3

Avec A3, il ne reste plus qu’a saturé le moins cher, cela revient à mettre les
restes.
D1 a encore besoin de 15, on lui donne
D2 a besoin de 45, on lui donne
D3 a besoin de 30, on lui donne
et voilà on a gagné

Solution final
D1 D2 D3 D4 ai
A1 35 25
A2 30
A3 15 45 30

Coût de la solution= 2945

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 114


Recherche Opérationnelle

2.2. Méthode du coin Nord-Ouest


La méthode du coin Nord-Ouest, ou MCNO (North-west Corner Method,
NWCM), est utilisée pour trouver une solution à un programme de transport
sans prise en compte du coût.
Il existe des algorithmes permettant de trouver une solution optimale en termes
de coûts, comme l'algorithme de Balas-Hammer.
Principe
Cette méthode s'applique sur une matrice de coûts de transports entre sources et
destinataires.
Elle consiste à remplir une matrice de transports en parcourant linéairement la
matrice des coûts.
Exemple
Initialement
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 49
2 5 2 6 12 5 30
Demandes 15 20 5 25 14

Transports
Sources/Destinataires 1 2 3 4 5
1
2

Etape 1
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 49
2 5 2 6 12 5 30
Demandes 15 20 5 25 14

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 115


Recherche Opérationnelle

Transports
Sources/Destinataires 1 2 3 4 5
1 15
2 0

Etape 2
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 49-15= 34
2 5 2 6 12 5 30
Demandes 0 20 5 25 14

Transports
Sources/Destinataires 1 2 3 4 5
1 15 20
2 0 0

Etape 3
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 34-20= 14
2 5 2 6 12 5 30
Demandes 0 0 5 25 14

Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5
2 0 0 0

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 116


Recherche Opérationnelle

Etape 4
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 14-5= 9
2 5 2 6 12 5 30
Demandes 0 0 0 25 14

Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5 9
2 0 0 0 16

Etape 5
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 0
2 5 2 6 12 5 30-16= 14
Demandes 0 0 0 0 14

Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5 9 0
2 0 0 0 16 14

Coût de la solution
La solution trouvée avec cette méthode n'est pas optimale en termes de coût.
On trouve ici :
15*10 + 20*6 + 5*3 + 9*5 + 0*25 + 0*5 + 0*2 + 0*6 + 16*12 + 14*5 = 592.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 117


Recherche Opérationnelle

3. Problème d’affectation
Le problème d'affectation est un problème classique de recherche
opérationnelle. L'objectif est de déterminer un couplage maximum dans un graphe
biparti valué. Le problème d'affectation peut être résolu en temps polynomial par
l'algorithme hongrois.

Algorithme hongrois
L'algorithme hongrois ou méthode hongroise (parfois appelé aussi algorithme
de Kuhn) est un algorithme d'optimisation combinatoire, qui résout le problème
d'affectation en temps polynomial. Il a été proposé en 1955 par le mathématicien
américain Harold Kuhn, qui l'a baptisé « méthode hongroise » parce qu'il
s'appuyait sur des travaux antérieurs de deux mathématiciens hongrois : Dénes
Kőnig et Jenő Egerváry .

Description de l'algorithme
Soit n projets et n équipes, et une matrice n×n contenant le temps nécessaire à
chaque équipe pour réaliser chaque tâche. On souhaite affecter chaque tâche à
une équipe afin de minimiser le temps total de réalisation.
La matrice est de la forme suivante :

Étape 0
Pour chaque ligne de la matrice, on retire l'ensemble de la ligne la valeur
minimale de celle-ci. On obtient alors un problème équivalent au problème initial.
La matrice a au moins un zéro par ligne. On répète la même opération sur les
colonnes. On obtient alors un problème équivalent avec une matrice ayant un
zéro par ligne et par colonne.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 118


Recherche Opérationnelle

0 a2' a3' a4'


b1' b2' b3' 0
c1' c2' c3' 0
d1' 0 0 d4'

Étape 1
Sélectionnez le maximum de zéros possible de façon à ce qu'il n'y ait qu'un zéro
sélectionné par ligne et par colonne. Si l'on a sélectionné n zéros alors on a trouvé
l’affectation optimale, on arrête l'algorithme.

0 a2' a3' a4'


b1' b2' b3' 0
c1' c2' c3' 0
d1' 0 0 d4'

Étape 2
Marquez chaque ligne n'ayant pas de zéro sélectionné. Marquez chaque colonne
ayant un zéro sur une ligne marquée. Marquez chaque ligne ayant un zéro
marqué dans une colonne marquée. Répétez cette opération jusqu'à un état
stable.
×
0 a2' a3' a4'
b1' b2' b3' 0 ×
c1' c2' c3' 0 ×
d1' 0 0 d4'

Sélectionnez alors la sous-matrice formée par les lignes marquées et par les
colonnes non marquées.
×
0 a2' a3' a4'
b1' b2' b3' 0 ×
c1' c2' c3' 0 ×
d1' 0 0 d4'

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 119


Recherche Opérationnelle

Cette étape permet de sélectionner la plus grande sous-matrice n'ayant aucun


zéro.

Étape 3
Trouvez la valeur minimum de la sous-matrice trouvée à l'étape 2. Il faut alors
soustraire cette valeur à toutes les lignes marquées, et l'ajouter à toutes les
colonnes marquées.
Retournez à l'étape 1.
Exercice :
Affecter 4 personnes à 4 tâches comment faire ? Soit 4 personnes A, B, C, D et 4
tâches a, b, c, d.

La méthode hongroise : Autre formulation


Le tableau représentant les coefficients de préférence des différentes personnes se
présente comme suit :
A B C D E
a 9 6 7 3 4
b 2 1 9 1 8
c 4 3 2 2 7
d 9 1 8 8 3
e 1 7 8 9 5

La personne ’a’ veut vraiment aller sur le poste A éventuellement C voir B mais ne
veut pas aller en E ou D, etc...
La méthode hongroise est un algorithme de minimisation donc la première étape
est de transformer la formulation du problème en introduisant _ la notion de
regret.
Le regret est égal au max moins chaque note sur tout le tableau.
Exemple de la ligne 1
Le max égale 9
Les valeurs d’origine : 9 6 7 3 4
On fait 9- a chaque valeur, ce qui nous donne :

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 120


Recherche Opérationnelle

A B C D E
a 9-9 9-6 9-7 9-3 9-4
b 9-2 9-1 9-9 9-1 9-8
c 9-4 9-3 9-2 9-2 9-7
d 9-9 9-1 9-8 9-8 9-3
e 9-1 9-7 9-8 9-9 9-5

Ce qui nous donne le tableau final :


A B C D E
a 0 3 2 6 5
b 7 8 0 8 1
c 5 6 7 7 2
d 0 8 1 1 6
e 8 2 1 0 4

Ensuite pour les colonnes, il faut avoir un 0 dans chaque colonne :


Colonne B, on enlève 2 (le min sur cette colonne)
Colonne E, on enlève 1 (le min sur cette colonne)

A B C D E
a 0 3 2 6 5
b 7 8 0 8 1
c 5 6 7 7 2
d 0 8 1 1 6
e 8 2 1 0 4
vi 0 2 0 0 1

A B C D E
a 0 1 2 6 4
b 7 6 0 8 0
c 5 4 7 7 1
d 0 6 1 1 5
e 8 0 1 0 3

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 121


Recherche Opérationnelle

Vi correspond au minimum de chaque colonne.


Idem pour les lignes :
A B C D E Vi
a 0 1 2 6 4 0
b 7 6 0 8 0 0
c 5 4 7 7 1 1
d 0 6 1 1 5 0
e 8 0 1 0 3 0

A B C D E
a 0 1 2 6 4
b 7 6 0 8 0
c 4 3 6 6 0
d 0 6 1 1 5
e 8 0 1 0 3

Vi correspond au minimum de chaque colonne.


Au final on doit avoir un 0 pour chaque ligne et chaque colonne
Algorithme d’affectation des zéros.
Considérer les lignes ayant le nombre minimum de zéro (lignes a, c, d, dans notre
exemple comportent un zéro)
1. Choisir la ligne ayant un nombre minimum de zéros, affecter le zéro à la
liaison correspondante. Le zéro est dit encadré.
Ex : Ligne, a, et affectons le zéro correspondant à la liaison aA, zéro (aA)
encadré.
2. Du fait ce choix, il n’est plus possible d’utiliser le(s) zéro(s), s’il en existe, de
la colonne ou de la ligne correspondant à ce zéro encadré nous dirons que
ce(s) zéro(s) est (sont barré(s). ex : zéro (dA).
3. Retour en 1 tant qu’il existe des zéros non encadrés ou non barrés.
Pour des raisons d’affichage :
les valeurs encadrées sont remplacées par du gras
Ligne a : aA, zéro (aA) encadré
Les 0 de la ligne a et de la colonne A sont barrés

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 122


Recherche Opérationnelle

A B C D E
A 0 1 2 6 4
B 7 6 0 8 0
C 4 3 6 6 0
D 6 1 1 5
E 8 0 1 0 3

Ligne c : cE, zéro (cE) encadré Les 0 de la ligne c et de la colonne E sont barrés
A B C D E
A 0 1 2 6 4
B 7 6 0 8 0B
C 4 3 6 6 0
D 6 1 1 5
E 8 0 1 0 3

Ligne b : bC, zéro (bC) encadré


les 0 de la ligne b et de la colonne C sont barrés.
A B C D E
a 0 1 2 6 4
b 7 6 0 8
c 4 3 6 6 0
d 6 1 1 5
e 8 0 1 0 3
Ligne e : eB, zéro (eB) encadré
Les 0 de la ligne e et de la colonne B sont barrés.

A B C D E
a 0 1 2 6 4
b 7 6 0 8
c 4 3 6 6 0
d 6 1 1 5
e 8 0 1 3

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 123


Recherche Opérationnelle

Exercice
Une fabrique M a 4 machines et 4 tâches à compléter. Chaque machine doit lui
voir assigner une tâche. Le temps de mise en œuvre est donné par la table
suivante :
T1 T2 T3 T4
Machine 1 14 5 8 7
Machine 2 2 12 6 5
Machine 3 7 8 3 9
Machine 4 2 4 6 10

La fabrique veut minimiser le temps total de mise en œuvre.


Formuler et résoudre.

Professeur : Joël Mètogbé ZINSALO/EPAC-UAC Page 124

You might also like