Professional Documents
Culture Documents
MANUEL DE COURS
Notes de Cours :
RECHERCHE OPERATIONNELLE
Enseignant :
Joël M. ZINSALO
1e Edition
Recherche Opérationnelle
CONTENU
CHAPITRE 1
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.
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
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.
CHAPITRE 2 :
PROGRAMMATION LINEAIRE : RESOLTION
PAR LA MRTHODE GRAPHIQUE
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
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 paramètres du problème en dehors des variables de décisions ont une valeur
connue avec certitude.
Formulation du problème en un PL :
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 :
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
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.
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.
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 ?
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 .
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
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
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.
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.
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.
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 :
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).
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.
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
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)
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)
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.
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.
Lot A Lot B
Contraintes
x y
Pains au
12 9 108
chocolat
Croissants 8 12 96
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.
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
CHAPITRE 3
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
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
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
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
* Forme standard
3 x1 + 4 x2 + 1 t1 + 0 t2 = 160
6 x1 + 3 x2 + 0 t1 + 1 t2 = 180
x1 ≥ 0 ; x2 ≥ 0
* 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
- 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 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
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.
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).
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
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
- 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.
- 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.
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
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
- 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 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é).
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".
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.
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
∆) 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
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
é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».
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
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
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
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
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 :
= 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.
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 + + ≤ 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
2 + + + 500! ≤ 1550
Le changement de variable donne le programme suivant :
5 +2 +2 + 500! ≤ 3500
2 + + ≤ 1050
Soit :
5 + 2 + 2 ≤ 3000
2 + + + = 1050
5 + 2 + 2 + = 3000
Tableau 0 :
HB . . C R
B
= 1050
$%$
&'+ ," - . &"
2 1 1 1 0 1050
2500
= 1250
2
5 2 2 0 1 2500
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.
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.
• 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
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
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
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
+2 + ≥ 16.
location des ateliers doit donc générer un gain au moins équivalent, d’où la contrainte :
+ 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
+ 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
= 195
1
1
2 3$
= 80 2 &'+ ," - . &"
2 1 0 1 0 160
∆ 16 10 0 0 0 0
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
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
=0
La solution du primal est donc :
=7
:
=2
= 1360
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 :
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 :
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
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.
CHAPITRE 4 :
UTILISATION DES VARIABLES ARTIFICIELLES
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
Tableau 0 :
HB . . . C R
2 40
B
= 40
1
2 1 -3 1 0 0 40
2 15
= 15
1
1 1 -1 0 0 1 15
. 2
Tableau 1 :
HB . . C R
−
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
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
= 12
La solution du dual est :
=0
:
=0
1 = 1800
=0
La solution du primal est donc :
= 150
:
=0
= 1800
(* = 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 :
(* = 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 15
= 15
1
1 1 1 -1 0 0 1 15
. 2
Tableau 1 :
HB 6 . . C R
−
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
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
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
+ 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 :
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.
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
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.
+ 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
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 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
Tableau 2 :
HB . . . . C R
B
0 6 1 −1 0 0 23 23/6
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 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
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 − − +
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
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
. .
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
. .
Tableau 3
HB C R
1 8 0 1 1 5.000
B
5 0 1 1 3 −5000
− −
2 2 2 3
2.500
.
Tableau 4
HB . C
−2 2 0 1 1
B
1 3 1 1 0
5000
= =0
L’optimum est atteint et on trouve :
> = 10000
= 2 000 000
=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
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 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
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
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.
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
+2 +4 +8 +6
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
+2 +4 +8 +6
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.
. . . .
Tableau 2 :
HB . . C
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
= 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
Tableau 2 :
HB . . . . 6 . C R
∆ 3 0 0 −3 0 0
0 1 0 0 120
4 −1440
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
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
* 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
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
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.
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
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
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.
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
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
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.
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 ?
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.
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 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
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
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
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
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 :
CHAPITRE 6 :
ORDONNANCEMENT MPM - PERT
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)
* 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
Exemple:
Ta = Tc = Td = 0
Tb = Ta + 4 = 4
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
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
mt(i) = T*i - Ti = 34 - 34 = 0
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,
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.
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.
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
Remarques
Remarque 1: il est quelque fois nécessaire d'introduire des tâches fictives de durée nulle
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:
sera
transformé
en
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 :
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.
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
Exercice 2 :
On donne le tableau des tâches et antériorités suivant.
B préparation terrain - 2
C commande matériaux A 1
F livraisons matériaux C 2
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.
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 :
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.
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.
exécuter la tâche : OP
- le temps optimiste qui est le temps le plus court qui serait suffisant pour
tâche : OR
- le temps pessimiste qui est le temps le plus long requis pour exécuter la
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
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
Par ailleurs, on a :
mé_n
1 gehi l
/ aé- ( 1 < OQé^_ < aé- ( 2! = b "e f
j
k
,
mé_n U√2d
aé- ( 2 − O\ aé- ( 1 − O\
avec :
o = " o =
U U
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
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
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
Chapitre 8 :
PROBLEMES DE TRANSPORT ET D’AFFECTATION
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.
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
a
|10}
B |15} |20}
|45} |30}
|5} z
|25} |10}
w
x /
|20}
|15}
|20}
|10} p
y
|20} |30}
|10}
a
|10}
B |15} |20}
|45} |30}
|5} z
|25} |10}
w
x /
|20}
|15}
|20}
|10} p
y
|20} |30}
|10}
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.
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
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
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
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 ∆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
D1 D2 D3 D4 Ai
A1 35 25
A2
A3
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
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
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
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.
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.
É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.
É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'
É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 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 :
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
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
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
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
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
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