PolyRo IAP
PolyRo IAP
PolyRo IAP
Abdelkader BELAHCENE
23 avril 2012
Table des matières
1 Contexte de la Recherche Opérationnelle 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Méthodologie de Résolution . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Analyse du Système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Recherche de Solutions et Mise en Oeuvre . . . . . . . . . . . . . . . . . . 9
1.6 Étude de Cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Programmation Linéaire 14
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Méthodes de Résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 La Méthode du Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Recherche d'une Solution de Base Réalisable . . . . . . . . . . . . . . . . 27
2.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 Concepts Avancés de la PL 33
3.1 Modèles Particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 La Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3 Analyse Post Optimale et Sensitive . . . . . . . . . . . . . . . . . . . . . 44
3.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4 Problème du Transport 53
4.1 Position du problème et modélisation . . . . . . . . . . . . . . . . . . . . 53
4.2 Recherche d'une solution de base réalisable . . . . . . . . . . . . . . . . . 55
4.3 Amélioration de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4 Série d'exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2
1 Contexte de la Recherche
Opérationnelle
1.1 Introduction
L'une des raisons majeures de la réussite de R.O est l'immense progrès de l informatique
qui a vu la mise en application des théories mathématiques restées longtemps de l'encre
sur du papier. Les diérentes branches de la R.O (Programmation Mathématique, Gestion
des Stocks, File d'attente ...) qui nécessite des calculs intenses, ont vu l'application dans
l'industrie grâce à l'apport du computer et de l'informatique en général.
SYSTEME EXTRACTION
MODELE
REEL PERCU
3
1.1.2. Méthodologie de Résolution A.Belahcene
En général, lorsque les organisations sollicites l'aide des spécialistes en Recherche Opéra-
tionnelle c'est que, d'une part, celles-ci ont pris conscience du mauvais fonctionnement
de leur organisation et que, d'autre part , elles souhaitent trouver des solutions à leur
problèmes . il est utile pour ces spécialistes d'avoir une démarche à suivre qui inclut aussi
bien l'aspect d'analyse contextuelle du problème que sa résolution.
C'est l'étape la plus dicile d'un problème de Recherche Opérationnelle, le but de cette
analyse est de comprendre l'environnement dans lequel le problème est posé pour mieux
cerner les aspects les plus importants. Souvent le problème posé est vague et les informa-
tions ne sont pas disponibles et quand elles le sont , elles ne sont pas ables. il faut donc
consacrer beaucoup de temps et d'eorts à cette phase en procédant à des interviews
et des séances de concertation pour s'assurer que le problème pose est réellement celui
auquel il faut s'atteler pour le résoudre. il est important d'associer tout les décideurs
ainsi que les acteurs principaux du système à ce stade d'analyse.
Souvent, certains problèmes sont corrigibles de par leur nature, c'est-a-dire, qu' il est
possible, moyennant des corrections, d'améliorer le comportement du système.
Dans ce cas, il faut distinguer entre les symptômes et les causes du problème. Par exemple,
la baisse des ventes, qui est un symptôme, peut être due au fait que le voyageur de
commerce ne dispose pas susamment de temps pour visiter tous les points de vente.
ceci constitue la cause du problème parfois, certains problèmes trouvent leurs solutions
en recherchant leurs causes et en montrant comment les symptômes se présentent.
Contrainte de marché Le potentiel des ventes d'un produit. Le taux d'additif présent
dans la composition d'un carburant.
Dans plusieurs situations les contraintes n'apparaissent pas lors de l'étude et cela en
raison de la mauvaise connaissance du problème ou de la diculté d'obtention de la
précision de durée de vie d'un produit, lorsque l'on considère un problème de gestion des
stocks, ne peut-être connue d'une manière précise.
Parfois, L'objectif ainsi que les contrainte du système sont exprimes par des fonctions
linéaire (cf. programmation linéaire). Dans certains cas, la fonction objective ainsi que las
contraintes sont exprimées par des fonctions non-linéaires. Les techniques de résolution
diérent selon le type d'objectif et de contraintes du système en étude.
1.4 Modélisation
Il s'agit dans ce cas d'extraire une image aussi dèle que possible de la réalité voir gure
1.1 .
Cette image peut prendre plusieurs formes. Elle peut être mathématique, comme en
programmation linéaire, ou sous forme , d'un graphe, comme en théorie des graphes ou
encore sous une forme visuelle comme en simulation.
Reel Percu
Detection Modelisation
d’Anomalies
Resolution
Validation
Non Accepte
Accepte
1.4.1 Données
Cette étape est consacrée à la collecte de toutes sortes d'informations liées au problème,
Il est impératif d'avoir une connaissance détaillée du problème et de son environnement.
Il est important de considérer les données internes et externes au système. Ensuite, on
envisage la possibilité de réduire le volume des informations recueillies en ne gardant que
celles qui sont importantes le choix des données se fait selon les critères suivants :
Lorsque le minimum d'information est obtenu, il est recommandé de répartir les données
en deux classes. La première classe permet d'établir le modèle, la seconde sert à tester
sa qualité.
Le premier modèle est une miniaturisation du système. La carte géographique d'un pays
est un exemple de modèle iconique. Le modèle analogue représente un système physique.
Il ne prend pas la même forme que le système qu'il représente. Le thermomètre est un
exemple de ce type de modèle, il permet de mesurer la température. Un modèle mathé-
matique décrit un système donné par le biais de relations et de symboles mathématiques.
Explication On doit s'assurer que les relations qui existent dans le modèle donnent une
explication satisfaisante du comportement et de l'évolution du système.
Contrôlabilité Un modèle de décision doit monter aux décideurs les actions à entrepren-
dre pour arriver aux résultats désirés. Ce modèle doit inclure aussi bien les facteurs
contrôlables que ceux qui ne le sont pas.
Les facteurs contrôlables sont ceux qui sont contrôlés directement par les décideurs, Par
contre, les facteurs non-contrôlables représentent tout les facteurs imposés par l'environ-
nement. En statistiques, on distingue généralement trois types de modèles : les modèles
descriptifs, les modèle explicatifs et les modèle extrapolatifs.
Les méthodes factorielles d'analyse des données sont des exemples de modèles descriptifs,
Les modèles de régression constituent un exemple de modèles explicatifs. Les modèles de
décomposition, les lissages exponentiels et les modèles de Box-Jenkins sont des modèles
extrapolatifs.
y=R ({X},{C}), où {X} est l'ensemble des facteurs contrôlables que l'on appelle vari-
ables de décision et {C} est l'ensemble des facteurs non contrôlables et des contraintes.
R(., .) représente la forme générale d'une relation fonctionnelle.
Exemple 1.4.1. Une entreprise recrute deux employées pour le nettoyage hebdomadaire
du lieu de travail composé de 12 bureaux, 18 étagères et 5 toilettes. La première employée
ne peut nettoyer qu'une toilette, 3 bureaux et 3 étagères par jour, la seconde peut faire 2
bureaux, 6 étagères et 1 toilette par jour. Le salaire journalier des employées sont respec-
tivement 250 et 220 DA. Quelle est la charge hebdomadaire des employées qui minimise
les coûts de nettoyage ?
Le problème étant bien posé, Ce que nous voulons obtenir est clairement indiqué, nous
passons directement à la phase formulation qui consiste à identier les objectifs et les
contraintes du problème.
L'objectif de l'entreprise est de minimiser le coût total à dépenser pour payer hebdo-
madairement les deux employées. Les contraintes représentent les limites sur le nombre
d'objets (étagères, toilettes et bureaux) à nettoyer par semaine. Nous avons donc 3 con-
traintes dans ce problème.
Les facteurs non-contrôlables sont les prix d'une journée de travail pour chacune, les
limites sur les objets à nettoyer ( contraintes). Il ne faudrait pas oublier la non-négativité
des variables sinon cela n'aurait aucun sens.
Il ne reste plus qu'à traduire tout cela sous forme d'équations. Le coût total est égal au
coût d'une journée par le nombre de journées Évidemment, il faut sommer sur les deux
employées. donc, l'expression mathématique de la fonction objective est :
On notera que Min est l'abréviation du terme minimiser, de même Max pour maximiser.
Pour formuler les contraintes, nous allons procéder de la même manière, nous avons 12
bureaux à nettoyer par semaine, Par ailleurs, nous savons que la première ne peut nettoyer
que 3 bureaux par jour. Par conséquent, si elle travaille x1 journées elle pourrait nettoyer
3x1 bureaux par semaine. De même la deuxième ne peut nettoyer que 3x2 La contrainte
sur le nombre de bureaux à nettoyer par semaine se traduit comme : 3x1 + 2x2 ≥ 12 .
On raisonne de la même façon pour les deux autres contraintes. On obtient alors :
pour les toilettes : x1 + x2 ≥ 5
pour les étagères : 3x1 + 6x2 ≥ 18
Dans le schéma précédant (gure 1.2) , lorsque le modele est refusé, la réctication du
processus doit ce faire a plusieurs niveaux. Il s'agit de savoir où ce trouve l'erreur qui
a donné la ou les anomalies. Cette anomalie peut etre une mauvaise perception de la
realité, ou une mauvaise formulation, de l'imprecision des données ou encore la methode
de résolution est inadéquate.
Exemple de validation
Supposons que l'on dispose d'un historique de 12 années de la consommation en gaz
butane (en bouteille) dans la region de Djelfa bouteille (une donnée représente une con-
sommation mensuelle). On peut diviser cet historique en
10 années de consommation, soit 120 mois de consommation pour les données de mod-
élisation,
le reste, c'est-à-dire, 2 années de consommation, soit 24 mois vont servir pour tester le
modele.
On détermine à partir du modèle les prévisions pour les deux années couvrant la même
période que celle des données test ; ensuite on comparera selon une critère xé, les
données test ou les données simulés avec les prévisions.
On notera qu'il n'existe pas de moyens précis de diviser les données. En général, la
proportion des données qui serve à l'estimation du modelé doit être plus importante.
Parfois, il ne sut pas d exiger du modèle de calquer la réalité, mais plutôt de s'assurer
que les relations qui composent ce modèle aient un sens. Ce type de validation est vu
comme étant un processus continu et qui se fait en parallèle avec la phase de modélisation.
Le but est d'examiner toutes les composantes du modèle au fur et à mesure qu'elles se
développent.
Cette validation se fait en essayant d'apporter des éléments de réponse aux questions
relative à la logique du modèle, ses relations.. etc.
1. Est-ce que la logique du modèle est la même que celle du système réel ?
3. Est ce que les données disponibles ne suivent pas une certaine distributions statis-
tique ?
4. Est ce que les données utilisées sont d'actualitées. Dans notre exemple, si les statis-
tiques de consommation sont antéerieur, par exemple a l'arrivée du gaz de ville sur
la ville de djelfa, elles ne sont plus valables ! ! !.
Techniques d'optimisation Pour une certaine classe de problème, il existe des algo-
rithmes garantissant la solution optimale, si elle existe, (c'est le cas pour la pro-
grammation linéaire), plusieurs chapitres sont consacrées à ces problèmes.
Méthodes heuristiques Pour certains problèmes la solution ne peut être trouvée di-
rectement, ou que le temps de calcul est trop important ou les coûts sont élevés, on
développe alors des heuristiques, des algorithmes approchés. C'est le cas des as-
tuce ou heuristique qu'on ajoute au branch and bound, pour le temps d'exécution
raisonnable.
Simulation Le modèle imite le comportement réel d'un système. On fait varier diérents
paramètres et observer les conséquence jusqu'à obtenir satisfaction ou rejeter le
modèle. Ce type de techniques est utilisée quand la modèle est trop complexe,
et que les méthodes exactes ne sont pas applicables, et les heuristiques ne sont
satisfaisantes.
Les ventes 1 et 2 représentent les ventes annuelles réalisées par les activités (Alimentation
2
et Gastronomie) . Le revenu moyen annuel du citoyen. La deuxième colonne donne le
nombre d'habitants.
Par ailleurs il estime qu'il n'est pas intéressant d'investir sur un local qui ne rapporterait
un prot annuel de moins de 1500.
Il s'agit de déterminer les actions les plus appropriées. La décision dépend du prot
attendu dans chaque site. Il faut donc trouver un moyen d'estimer le prot. Pour cela
nous utilisons les statistiques des ventes des autres sites (table 1.1) et construire un
modèle statistique.
Nous supposons que les ventes se comportent linéairement par rapport à la population
et au revenu moyen. Dans la pratique ce travail de modélisation est plus complexe et
nécessite plus d attention, on se contentera ici, de la forme linéaire.
Notation adoptée :
V 1t ,V 2t ventes de type alimentaire et gastronomie du site t
Pt Taille de la population du site t
Rt Revenu moyen du citoyen du site t
Un modèle mathématique simple qu'on peut utiliser (pour le type 1) est :
V 1t = α + β Pt + γ Rt + et
où α, β, et γ sont des paramètres réels, et est un aléas. P et R sont les moyennes des
populations et des revenues.
10
X
M in Z = (et )2
i=1
α = 319 , β = 0.209 et γ = 2.08. La variable dépendante
Donne pour solution les valeurs :
Z est une fonction quadratique des variables indépendantes α, β et γ . La meme procédure
de calcul est utilisée pour le deuxième cas, on obtient .
4
Site V1 V2
3. Voir pour le détails de la méthode n'importe quel livre d' analyse numérique
4. Voir le programme LeastDiscrete et les données vente1.dat et vente2.dat
1.7 Exercices
1. La composition d'un aliment pour bétail est obtenue par le mélange de 3 matières :
2. Une compagnie pétrolière désire installer une ranerie qui sera alimentée par 3
ports A, B et C. Le port B est à 300km Est, 400km Nord du port A. Le port C
est à 400km Est, 100km Nord du port B. Localiser la ranerie de sorte que la
longueur des pipelines reliant la ranerie aux ports soit minimale. Y a t il d'autres
contraintes implicites non apparentes.
4. Vérier que la solution par arrondi n'est la solution optimal pour le programme
suivant :
5
3x1 +4x2 max Utiliser par exemple lp-solve pour le
2x1 +x2 ≤6 resoudre avec puis sans la contrainte
2x1 +3x ≥9 d'integrite et comparer avec les
x1 , x2 ∈ N + solutions de l'arrondi.
suivant donne le temps de séjour des produits sur les P2 0.5 0.2 0.8
machines.
2.1.1 Dénition :
Un programme linéaire est un problème qui consiste à optimiser (maximiser ou minimiser)
une fonction linéaire à plusieurs variables soumise à un ensemble de contraintes linéaires.
D'une manière générale, un programme linéaire s'écrit sous la forme suivante :
14
2.2.1. Introduction A.Belahcene
max F = c1 x1 +...+ cn xn
a11 x1 ...........+ a1n xn R1 b1
a21 x1 ...........+ a1n xn R2 b2 (2.1)
....
am1 x1 ...........+ amn xn Rm bm
Les relations R1 , R2 , ..., Rm sont soient des égalités ou des inégalités. Les coecients
c1 et cn dans la fonction objective sont des nombres réels. De même que tous les coe-
cients dans le système des contraintes sont des réels. Ce programme général peut aussi
être exprimé sous la forme matricielle suivante :
max F = C x
Ax Rb
où A est la matrice m×n des coecients des variables dans le système des contraintes,
i.e.,
Les vecteurs b et C sont : C = (2, 3) et bt = (40, 40, 40, 0, 0) . Les trois premières relations
R1 , R2 , et R3 sont sous forme ≤ . Par contre, les relations R4 et R5 sont sous la forme
≥ . Ces deux dernières contraintes assurent la non-négativité des variables.
Remarque 2.1.2 . Comme tout programme linéaire peut se ramener à la forme standard
d'un système d'équations voir système, nous allons uniquement nous intéressé à la réso-
lution de ce type de programme.
Identication des variables elles sont souvent connues comme étant des activités et
représentent les facteurs (objets) que nous contrôlons. Par exemple, les activités
de l'usine précédente étant la production des produits P1 et P2 , d'où le choix des
variables x1 et x2 . Il est important de bien dénir les unités de chaque variable.
Les variables sont indépendantes, si une variables dépend d'autres elle est éliminée
pour la taille du programme.
Identication des objets sous contraintes. Dans l'exemple 2.1.1, le temps de séjour de
chaque produit dans chacune des trois machines.
0.25 x1 +0.5 x2 ≤ 40
0.4 x1 +0.2 x2 ≤ 40
0.8 x2 ≤ 40
n
X
max F = cj xj
j=1
n
X
aij xj = bi i = 1, m
j=1
xj ≥ 0
Cette forme impose aussi que les seconds membres des contraintes soient des nombres
réels positifs ou nuls, c'est-à-dire, b1 ≥ 0 , i = 1, 2, ..., m . La traduction matricielle de
la forme standard d'un programme linéaire est :
max F = CX
AX = b X≥0
Lorsque le programme n'est pas donné sous la forme standard, il est utile d'utiliser les
transformations suivantes :
1. La fonction objective consiste à minimiser une fonction linéaire F . Ceci est équiv-
alent à maximiser G = −F et on a la relation suivante : min F = − max (G)
2. Lorsque une contrainte (par exemple la i ème ) n'est pas une égalité, deux cas
peuvent se produire :
Un vecteur de valeurs (x1 , ..., xn ) est dit solution réalisable s'il vérie les contraintes du
système . La solution (−1, −1) n'est pas réalisable car elle ne vérie pas une containte.
Par contre (0, 0) est solution réalisable.
Une solution est dite de base si elle possède m variables de base et n−m variables
hors-base. Les variables hors-base doivent être nécessairement nulles. Une solution de
base réalisable vérie en plus toutes les contraintes. Par exemple (0, 0, 40, 40, 40) est
une solution de base réalisable pour le P.L 1 . Cette dernière est obtenue en annulant les
variables de décision x1 et x2 . Elles sont donc des variables hors-base et les variables
d'écart sont de base. Évidemment cette solution de base réalisable n'est pas unique et on
peut trouver d'autres.
On montre que la solution optimale est nécessairement de base. Un ensemble est convexe
si, tout segment ayant ses extrémités dans l'ensemble, est dans cet ensemble.
L'ensemble de toutes les solutions réalisables forme un polyèdre convexe. Il peut être
vide, borné ou non-borné. Si ce polyèdre convexe est vide cela signie que le système des
contraintes est incompatible, dans ce cas une analyse détaillée doit être envisagée. Lorsque
le polyèdre est borné alors le problème possède au moins une solution optimale. Enn
lorsque ce convexe n'est pas borné alors, soit nous avons omis une ou plusieurs contraintes,
ou que le problème ne possède pas de solution optimale nie. Nous reviendrons en détail
à ces problèmes particuliers dans le prochain chapitre.
Il est important de savoir (la théorie l'a montré) que les sommets du convexe correspon-
dent à des solutions de base réalisable et que si la solution optimale existe elle doit être
forcément un de ces sommets. En d'autres termes la solution optimale est atteinte en un
sommet du convexe.
Méthode algébrique qui est évidemment celle utilisée dans les algorithmes de résolu-
tion. Il faut dire aussi que les méthodes implémentées dièrent quelque peu de
celle présentée ici. Elle a été simpliée pour l'ecacité de l'utilisation de l'outil
informatique.
Reprenons la forme initiale de l'exemple, et donnons les droites correspondant aux iné-
galités voir gure 2.1. Chaque droite (prenons le cas par exemple de la droite D1) divise
le plan en 3 parties :
D0 2x1 +3x2 =z
max F = 2x1 + 3x2
D1 0.25x1 +0.5x2 = 40
0.25x1 +0.5x2 ≤ 40
D2 0.4x1 +0.2x2 = 40
0.4x1 +0.2x2 ≤ 40
D3 +0.8x2 = 40
0.8x2 ≤ 40
x1 ≥ 0 et x2 ≥ 0 D4 x1 =0
D5 x2 =0
Le domaine ainsi représenté est un polyèdre convexe, qui a des propriétés très intéres-
santes que nous allons voir ci après.
Dans le cas de l'exemple 2.1.1, le polyèdre convexe correspondant est représenté sur la
gure 2.1. Ce polyèdre possède 5 sommets O, A, B, C, D de coordonnées respectives
(0,0), (0,50), (60,50), (80,40) et (100,0). Les valeurs de la fonction objective en ces points
sont respectivement 0, 150, 270, 280 et 270. Il est donc évident que le sommet C est la
solution optimale, correspondant aux valeurs : x1 = 80, x2 = 40 et F = 280.
La solution optimale d'un PL (Programme Linéaire) si elle existe, est un sommet : Dans
notre cas un sommet est l'intersection de 2 droites, dans l'espace a 3 dimensions, c'est
l'intersection de 3 plans, en général dans l'espace à n dimensions c'est l'intersection de
n hyperplans.
Considérons le point B(60, 50) sur le graphe, il se trouve sur la droite D1 donc la variable
d'écart correspondante e1 = 0 et sur la droite D3, donc e3 = 0. Ceci est valable pour
tous les sommets. Notons que certains sommets ne sont par réalisables, comme pour le
sommet S(75, 50) intersection D2 et D3. Un sommet peut être l'intersection de plus de 2
droites, c'est alors un sommet dégénéré .
La Signication Algébrique
Algébriquement, un sommet (toujours dans le plan) correspond une solution de base,
c'est a dire, 2 variables (au moins) sont nulles. Si on revient a notre exemple, voir le
système de la section 2.1.3 page 17. La solution optimale est donc une solution de base,
correspondant a 2 variables nulles et les autres sont calculées par résolution du système
d'équations 3X3. Par exemple le point O(0, 0) correspond aux valeurs (x1 = 0 , x2 = 0 ,
e1 = 40, e2 = 40 et e3 = 40). Le point A(0, 50) correspond a la solution ( x1 = 0,
x2 = 50, e1 = 15, e2 = 30 et e3 = 0). On dira que la variable x2 est entrée dans la base,
devenue non nulle et la variable e3 est sortie de la base avec la valeur 0; De plus c'est
deux sommets sont adjacents.
Direction de Déplacement
La procédure d'optimisation est donc de se déplacer d'un sommet à un autre sommet
adjacent en s'assurant de l'amélioration de la solution.
Exercice 2.2.1. Donner pour notre exemple, le nombre de sommets, de sommets réal-
isables et comment trouver leur coordonnées. Généraliser pour un PL avec N variables
principales et M contraintes.
A deux sommets adjacents correspond deux solutions de base qui varient uniquement
par une variable. Les sommets O et A sont adjacents, leur solutions de base (e1 , e2 , e3 )
et ( e1 , e2 , x2 ) varient par les variables e3 et x2 . C'est a dire e3 est sortie de la base et
x2 est entrée.
Ici nous avons choisi de nous déplacer dans la direction x2 , c'est à dire on a choisi de
faire rentrer cette variable dans la base, car on sait qu'elle améliore
1 la solution.
Critère d'arrêt
Lorsqu'il n'y a plus d'amélioration possible, si la solution est réalisable alors
elle est optimale sinon elle n'existe pas.
Cette méthode a été mise au point par Dantzig en 1948. Elle permet de résoudre les
problèmes de la programmation linéaire. Son principe est de passer d'une solution de base
réalisable à une autre solution de base réalisable meilleure (amélioration de la valeur de
la fonction objective). Dans le cas où il n'est pas possible d'améliorer cette valeur alors
la solution optimale est atteinte (si elle existe).
Les diérentes étapes de la résolution du P.L.1 par la méthode du simplexe sont décrites
par la gure 2.2 suivante :
Etape 1 A B Etape 2
C Fin
Debut O D
Figure 2.2: Cheminement de la méthode du simplexe
Cette solution de base (ce tableau) correspond sur le graphe à l'origine O = (0,0). Nous
avons noté par :
XB , XN Variables de base et hors base. Rappelons que les variables hors base sont
toujours nulles
XB CB P1 P2 P3 P4 P5 b
e1 0 0.25 0.5 1 0 0 40
e2 0 0.4 0.2 0 1 0 40
e3 0 0 0.8 0 0 1 40
Cj 2 3 0 0 0
Yj 0 0 0 0 0
∆j 2 3 0 0 0 Z=0
∆j est le gain réduit causé par la variable hors base j si elle rentrait dans la base.
Nous résumons les étapes a suivre, nous verrons plus loin les justications.
1. Une hors base peut rentrer si son coût réduit est positif. Dans notre cas x2 (ou
d'ailleurs x1 ) peut rentrer dans la base, car son delta est positif (∆2 = 3). On
choisit donc la colonne pivot .
2. Parmi les variables de base, prendre celle qui correspond au minimum du rapport
de b et de la colonne pivot. Dans notre cas, on choisit de sortir de la base la variable
e3 qui correspond au minimum :
b 40 40 40
min ( ) = min( , , ) = 50
P2 0.5 0.2 0.8
0.5 est la case colonne pivot ligne une. Ainsi NL1= (e1 , 0.25, 0, 1, 0, 0, 0.625, 25).
On fait de même pour la ligne 2. Notons l'ordre de la soustraction, ne pas détruire
l'identité
Xb Cb P1 P2 P3 P4 P5 b Xb Cb P1 P2 P3 P4 P5 b
1
e1 0 4 0 1 0 − 85 15 x1 2 1 0 4 0 − 25 60
4
e2 0 10 0 0 1 − 14 30 e2 0 0 0 − 58 1 3
4 6
5 5
x2 3 0 1 0 0 4 50 x2 3 0 1 0 0 4 50
Cj 2 3 0 0 0 Cj 2 3 0 0 0
15
Yj 0 3 0 0 4 150 Yj 2 3 8 0 − 54 270
∆j 2 0 0 0 − 15
4 ∆j 0 0 -8 0 5
4
Exercice 2.3.1. Donner le tableau suivant et vérie qu'il est optimal, et correspond au
sommet C sur le graphe 2.1 page 20. La variable d'écart e3 n'est pas nulle à l'optimum.
En pratique, cela signie que la troisième contrainte n'est pas serrée. Ceci veut dire que
l'utilisation hebdomadaire de la troisième machine n'a pas atteint la limite qui est de 40
heures.
X X X
Z= ci xi + ci xi + ck xk = ci xi (2.3)
i∈B i∈N i∈B
X X X
Z= ci x̄i + ci xi + ck xk = ci x̄i + ck xk (2.4)
i∈B i∈N i∈B
Dans la pemiere equation 2.3 toutes les variables de i ∈ N , sont nulles, dans la seconde 2.4
page précédente la variable xk prend une valeur, de meme les variables de base changent
de valeur.
j∈N
Cette equation correspondant à la ligne xi du tableau du simplex est établie car variables
j∈N restent nulles. En d'autres termes la quantité aik xk est la modication de la valeur
de la variable xi (elle était bi ) lorsque xk devient positive. Pour l'ensemble du problème,
faire la somme pour toutes les variables de base. Ainsi l'équation 2.4 page précédente
devient
X X X
Z = ci (bi − aik xk ) + ck xk = ci bi + ck xk − ci aik xk (2.6)
i∈B i∈B i∈B
X
= Z + (ck − ci aik )xk = Z + (ck − CB Pk )xk = Z + ∆k xk (2.7)
i∈B
Critère de sortie
e1 = 40 −0.5x2 ≥ 0
e2 = 40 −0.2x2 ≥ 0 (2.8)
e3 = 40 −0.8x2 ≥ 0
40 40 40
x2 ≤ = 80, x2 ≤ = 200, x2 ≤ = 50, (2.9)
0.5 0.2 0.8
Ceci implique que x2 = min{80, 200, 50} = 50 . Ensuite, on a posé que x2 = 50 . Il
ne faut pas perdre de vue que x2 représente la variable rentrante, c'est-à-dire xr . La
variable xs doit donc satisfaire le critère suivant : min{bi /air , air > 0} = bs /asr ou
air est appelé le pivot. La variable xs est la première variable de base qui s'annule quand
on augmente la valeur de la variable hors base xr et toutes les autres variables de base
b1 b2 b3
restent donc positives. A la première étape on a : = 80 , = 200 , = 50 Par
a12 a22 a32
b3 b1 b2 b3
suite la variable e3 sort de la base car elle vérie bien : = min { ; ; }.
a32 a12 a22 a32
Formellement on peut écrire les formules de passage d'une étape à une autre comme suit :
Soient r et s les indices des variables entrante et sortante, et akij l'élément de la ligne i,
de la colonne j du k
em tableau et aksj l'élément pivot. Nous aurons alors :
aksj
ak+1
sj = j = 1, ..., m + n + 1
aksr (2.10)
ak+1
sj = aksj − aksr ∗ akir i 6= s et j = 1, ..., m + n + 1
Critère d'arrêt
Nous avons vu que la méthode du simplexe dans le cas d'un problème de maximisation
se termine lorsque les coecients des variables hors-base dans le vecteur F sont tous
négatifs ou nuls. En d'autres termes, on doit avoir : ∇j ≤ 0, ∀j ∈ N où N) représente les
indices des variables hors-base.
Résumé
Tous les mécanismes de calculs que nous venons d'eectuer peuvent être résumés dans
un tableau, appelé, tableau du simplexe. Reprenons le programme 2.1.3 page 17
On remarque que tous les coecients ∆j sont négatifs ou nuls, la solution courante est
donc optimale.
Il est impératif d'avoir une solution de base réalisable de départ pour pouvoir utiliser
la méthode du simplexe. Dans plusieurs situations, celle-ci n'est pas toujours facile à
obtenir. La méthode des deux phases que nous allons exposer dans ce paragraphe est une
variante de la méthode du simplexe. La première phase consiste à associer un problème
auxiliaire au programme-standard pour déterminer une solution de base réalisable. La
deuxième phase utilise la méthode du simplexe pour optimiser cette solution obtenue.
max F = cx
(2.11)
Ax = b x≥0
m
X
min ϕ= yi
i=1
Ax +y =b
x≥0 , y≥0
x désigne le vecteur variable du programme d'origine ainsi que les variables d'écarts et y
le vecteur représentant les variables articielles. Le programme auxiliaire 2.4 est obtenu
a partir du programme 2.11 après ajout des variables yi appelées variables articielles.
On rajoute les variables articielles uniquement aux contraintes du programme 2.4 qui
ne contiennent pas de variable de base. La solution de base ne peut être réalisable que si
les valeurs des Y sont nulles. Le principe de la méthode des deux phases est :
min f = x1 + 2x2 0
max f = −x1 −2x2
2x1 + x2 ≤ 6
2x1 +x2 +e1 =6
x1 + x2 = 4
x1 +x2 =4 (2.12)
x1 + 3x2 ≥ 8
x1 +3x2 −e2 =8
x1 , x 2 ≥ 0
x1 , x2 , e1 , e2 ≥ 0
Exercice 2.4.2. Faire la resolution graphique, puis utiliser la méthode du BigM puis
des deux phases pour résoudre ce problème
La première contrainte contient la variable e1 comme variable de base. Par contre, on doit
rajouter une variable articielle à la deuxième et à la troisième contrainte. Le problème
auxiliaire (P.L.A) du problème (P.L 2) s'écrit comme :
min ϕ = y1 +y2
2x1 +x2 +e1 =6
x1 +x2 +y1 =4 (2.13)
x1 +3x2 −e2 + y2 = 8
x1 , x 2 , e 1 , e 2 , y1 , y2 ≥0
A la n de la phase 1, s'il existe une solution optimale nie alors elle doit être néces-
sairement nulle avec yi = 0 ∀ i ∈ I(A), où I(A) représente l'ensemble des indices des
variables articielles. Nous discuterons dans le prochain chapitre le cas où il n'existe pas
de solution optimale nie.
XB CB x1 x2 e1 e2 y1 b
XB CB x1 x2 e1 e2 y1 y2 b 5 1 10
e1 0 0 1 0
e1 0 2 1 1 0 0 0 6 3 3 3
2 1 4
y1 0 1 1 0 0 1 0 4 y1 0 0 0 1
3 3 3
y2 0 1 3 0 -1 0 1 8
1 1 8
x2 4 1 0 − 0
3 3 3
Cj 2 4 0 -1 0 0 Cj 2 4 0 -1 0
Yj 0 0 0 0 0 0 0 4 4 32
Yj 4 0 − 0
3 3 3
∆j 2 4 0 -1 0 0
2 1
∆j 0 0 0
3 3
On remarque que la dernière colonne du tableau initial ne gure plus dans ce tableau cela
est dû au fait que lorsqu'une variable articielle quitte la base, elle ne la réintègre plus,
il est donc inutile de conserver la colonne correspondante. La variable x1 entre en base et
remplace la variable articielle y2 . Remarquant que nous pouvons faire sortir aussi la
variable e1 au lieu de y1 , mais la nouvelle valeur de y1 sera nulle et donc nous l'eliminons
de toute facon. On obtient donc le tableau de la seconde itération.
XB CB x1 x2 e1 e2 b
XB CB x1 x2 e1 e2 b 1
1 e1 0 0 0 1 − 0
e1 0 0 0 1 − 0 2
2 1
1 x1 -1 1 0 0 2
x1 2 1 0 0 2 2
2 1
1 x2 -2 0 1 0 − 2
x2 4 0 1 0 − 2 2
2 Cj -1 -2 0 0
Cj 2 4 0 -1
1
Yj 2 4 0 -1 12
Yj -1 -2 0 -6
2
1
∆j 0 0 0 0 ∆j 0 0 0 -
2
Les coecients des variables dans la fonction objective étant tous négatifs ou nuls, la
solution courante (x1
∗ = 2, x∗2 = 2, e∗1 = e∗2 = 0 et F ∗ = 6) est donc optimale.
2.5 Exercices
5. Démontrer que le choix de la variable entrant est correct, voir section 2.3.3 page 24
L'atelier 1 peut produire jusqu'à 850 cartons en une semaine, l'atelier 2 son niveau
de production maximal atteint 650 cartons en une semaine. La demande au niveau
de chaque dépôt est estimée respectivement à 300, 400 et 500 cartons.
x1 + x2 ≥ 7 et x1 + x2 ≤ 2.
Ce programme est irréalisable, puisque il n'a pas de solution. Lorsqu'un tel cas se présente
la formulation du problème doit être revue. On peut reconnaître un tel cas par la présence
d'une variable articielle dans la base à la n de la phase 1.
33
3.3.1. Modèles Particuliers A.Belahcene
XB CB x1 x2 x3 e1 e2 e3 e4 e5 b
4
x3 0 2 1 -3 0 2 0 0 1
3
e2 0 0 -1 0 3 1 -1 0 0 4
11
x1 − 1 0 0 0 0 2 0 0 3
6
e4 0 0 0 0 1 0 -1 1 0 2
e5 0 0 1 0 -1 0 0 0 1 0
11 23 4
Cj − 0 0 0 0 0
6 3 3
11 8 4
Yj − -4 0 −1 0 0
6 3 3
∆j 0 5 0 4 0 1 0 0
A S2
S1 S1 = S2
B C A C
B
a) Situation normale b) Situation degeneree
Considérons la situation où, lors de la résolution d'un problème par la méthode du sim-
plexe, on passe du sommet S1 au sommet S2 , correspondant à deux solutions de bases
diérentes.
Dans certains cas, voir l exemple de la gure 3.1 (b), S1 et S2 est le même sommet, on
peut ainsi rester au même point après plusieurs itérations.
Cette situation est aussi appelée cycle. Le cycle peut être inni. La convergence de
l'algorithme du simplexe n'est pas assurée dans ce type de problème. Pour éviter le cycle,
on peut utiliser, par exemple, la méthode de perturbation. Elle permet de passer d'une
première solution de base réalisable à la solution optimale, si elle existe, sans retourner
à une solution antérieure. Dans cette méthode le vecteur b est substitué par le vecteur
b(ε), déni comme suit ( on l'appelle représentation lexicographique) :
n
X
j
b(ε) = b + ε Pj
j=1
x2
max F = x1 +x2
x1 −x2 ≤ 1 Domain
(0.3)
(3.1)
−2 x1 +x2 ≤ 3
x1 , x2 ≥ 0
x1
(1.0)
Résoudre ce programme linéaire en utilisant la méthode du simplexe. Retrouver le resultat
en vous inspirant de la gure.
La variable x2 est candidate à entrer dans la base. Mais, le vecteur P2 est négatif. On
ne peut sortir une variable, car la variable x2 peut être augmentée indéniment sans que
l'une des variables de base devienne négative. En eet, la première ligne s'écrit :
x1 − x2 + e 1 = 1 ou encore, x1 = 1 + x2 − e1
x2
max F = 3 x1 + 2 x2
(0.6) (2.6)
3x1 +2 x2 ≤ 18
x1 ≤ 18 (3.2)
(4.3)
2 x2 ≤ 18
x1 , x2 ≥0
x1
droite de F
Montrer , en utilisant la méthode graphique, que ce programme linéaire possède une
innité de solutions Le domaine convexe de ce programme linéaire est donné par la
gure.
Les sommets B = (2.6) et C = (4.3) sont solutions optimales. Donc toute combinaison
convexe de ces deux solutions optimales est aussi optimale.
3.2 La Dualité
Considérons les programmes linéaire duaux : primal et dual suivants. A chaque contrainte
i du primal on associe une variable duale
Associons a chaque contrainte i une variable duale uj . nous obtenons le programme dual :
La façon la plus simple d'obtenir le programme dual à partir du primal est de le mettre
sous l'une des formes standards, on peut passer de l'un à l'autre et inversement.
maxZ =C x min W = ub
(P ) Ax ≤b (D) uA ≥c
x≥ 0 u ≥0
Par exemple les 2 programmes suivant sont duaux :
3. Une variable primale non astreinte correspond à une contrainte-égalité dans le dual..
Exercice 3.2.1. En vous inspirant des regles précédantes, donner les programmes duaux
des programmes linéaires suivants.
min f = x1 + 2 x2 max f = 2 x1 + 3 x2
5x1 +3x2 ≥ 12 x1 +2 x2 ≥5
(3.5) (3.6)
x1 −x2 =2 x1 +x2 =4
x1 ≥ 0 , x2 ∈ R x1 ≥ 0 , x2 ≥ 0
lemme 1 : Si la solution optimale du primal x∗ existe et est nie alors celle du dual u∗
existe aussi et est nie. A l'optimum les valeurs des fonctions objectives sont égales,
c'est-à-dire c x∗ = u∗ b
.
lemme 2 : Si la solution optimale du primal est innie positive, alors le dual n'a pas de
solution. La réciproque n'est pas vraie. (La démonstration de ce lemme est laissée
en exercice).
Si la solution optimale du primal est innie positive, alors le dual n'a pas de solution. La
réciproque n'est pas vraie.
Démonstration :
min Z = C x max W = ub
(P1 ) Ax =b (D1 ) uA ≤c
x≥ 0 u ∈R
Si x∗ est solution réalisable du primal et u∗ solution du dual vériant : u∗ b = c x∗ , alors x∗ et u∗
sont des solutions optimales.
En eet, posons :
P = { x | A x = b et x ≥ 0 }
D={u | uA ≤c}
Soit x∈P alors A x = b. Multiplions cette équation par u on obtient : uAx=ub (1)
Soit u∈D alors uA≤c . Multiplions cette inéquation par x on trouve uAx≤cx (2)
Ax∗ − b = 0 , x∗ ≥ 0 (3.8)
et
c − u∗ A ≥ 0 (3.9)
ξ1 = u∗ (A x∗ − b) = 0 et ξ2 = (c − u∗ A) x∗ ≥ 0
La démonstration reste valable pour le cas d'un programme primal mis sous forme général
car une contrainte inégalité peut être transformée en une contrainte égalité.
2. Vérier que les solutions suivantes respectivement du primal et dual sont optimales.
xt = (1, 0, 0) et u = (0, 0.5, 0)
3. Vérier le théorème des écarts complémentaires c est a dire les conditions 3.7,
Variables
Soit le programme linéaire de l'exemple 3.3 page 37 et son programme dual voir les
programmes 3.5 et 3.6.
Écrire le programme dual qui lui est associé, déduire le dernier tableau du simplexe de
ce programme dual puis donner sa solution optimale.
Les variables de base duale sont donc u1 et u2 . Par contre les variables u3 , v1 , v2 sont
hors-base. Exprimons les variables de base en fonction des variables hors base :
Placer la matrice identité après avoir déterminé les variables de bases, correspon-
dant respectivement ( variable d'ecart primale donne variable principale duale et in-
versement) donne aux variables hors base du primal.
Mettre les coecients en changeant le signe des lignes y compris le Delta et Second
membre.
Compléter la ligne des coecients de la fonction objective. Ne pas oublier que nous
résolvons toujours un problème de maximisation ;
Vérier le calcul des delta en les recalculant à partir du tableau obtenu
D'où les derniers tableaux du simplexe du programme (D) et primal (P) sont : (on note
P les vecteurs colonnes)
Xb Cb x1 x2 e1 e2 e3 b
Xb Cb u1 u2 u3 v1 v2 b
x1 2 1 0 −4/3 10/3 0 80
u1 -40 1 0 2.13 1,33 -8/3 16/3
e3 0 0 0 −32/15 4/3 1 8
u2 -40 0 1 -1,33 -3,33 1,67 5/3
x2 3 0 1 8/3 −5/3 0 40 .
C -40 -40 -40 0 0
C 2 3 0 0 0
Y -40 -40 -32 80 40
Y 2 3 16/3 5/3 0
∆j 0 0 -8 -80 -40
∆i 0 0 −16/3 -5/3 0
max z = nj=1 cj xj
P
Pn
j=1 aij xj ≤ bi i = 1, ..., m
xj ≥ 0 j = 1, ..., n
min w = m
P
i=1 bi ui
Pm
i=1 aij ui ≥ cj j = 1, ..., n
ui ≥ 0 j = 1, ..., m
Les variables duales représentent les contributions unitaires des ressources au prot f
(voir Exercice ). Autrement dit, la variable duale ui représente la variation de la fonction
objective en fonction de la disponibilité de la ressource i (bi ) . Elle est souvent appelée
coût marginal et représente la somme que nous sommes prêts à payer pour augmenter la
disponibilité de la ressource i . Ce qui explique la minimisation de la fonction objective
du dual qui représente le plus faible prix à payer pour augmenter la disponibilité des
ressources et par conséquent augmenter le prot . La contrainte j du dual signie que la
contribution au prot des ressources consommées par une unité de l'activité j doit être
au moins égale au prot unitaire de cette activité.
En particulier si une variable duale ui est nulle, le coût à payer pour l'augmentation
du disponible bi est nul ; ce qui est évident puisque le disponible n'est pas entièrement
consommé car la contrainte primale correspondante est inactive
Tableaux Optimums non réalisables correspondent successivement aux points ( O' sur
GD et A' sur GD )
x2 y2
C
A’
B B’
DR
DR
x1 y1
O A O’
Notons que le changement de signe vient du fait que nous avons résolu le programme Dual
avec la maximisation. Par exemple Le tableau optimale réalisable de (D) correspondant
à B' s'obtient du tableau optimal de (P) correspondant à B.
2 2 5 5
y2 = correspond ∆2 = − et y1 = correspond ∆1 = −
3 3 3 3
4 4 5 5
x2 = correspond ∆02 = − et x1 = correspond ∆01 = −
3 3 3 3
5
Considérons la solution optimale, et la variabley1 = 3 . La valeur 5000/3 DA (rappelons
que l'unité est le Millier de DA) correspond au coût (l'importance) que l'on peut payer
l'augmentation dune unité ( 1m3 ) la capacité du camion. C'est à dire si le coût d'amor-
tissement de la transformation de notre camion ( par exemple atteler une remorque) est
inférieur à 5000/3 DA par m3 il est alors intéressant de faire cette transformation.
Importante : ce coût marginal est une variation unitaire, c'est a dire pas forcément
valable pour une augmentation de plusieurs m3 par exemple. La solution optimale peut
alors changer (Voir la partie : programme linéaire paramétré).
Dans quelles limites de prix, il serait plus intéressant d'acheter un camion, par forcement
de même tonnage et capacité volume ?
Dans les précédents paragraphes notre souci majeur était la recherche de solution op-
timale lorsqu'elle existe. En réalité, certaines valeurs utilisées lors de la formulation du
problème ne sont pas exactes. Il est d'un grand intérêt de savoir si la solution trouvée
reste optimale pour une variation de certaines valeurs du programme et de déterminer un
intervalle pour lequel cette solution reste optimale. Ces problèmes sont appelés "Analyse
sensitive" ou programmation paramètre. Un cas de problème intéressant en pratique est
l'étude de l'eet du changement des coecients de la fonction objective sur la solution.
Ce problème est aussi appelé " Analyse post-optimale".
Dans ce paragraphe, nous nous limitons aux changements dans le second membre des
contraintes et des coecients de la fonction objective. L'exemple 3.3 suivant illustrera ce
paragraphe :
Discuter l'eet sur la solution optimale et sur l'optimum, dun changement du problème
sur :
Base b x1 x2 e1 e2 e3
x1 80 1 0 -1.3 3.33 0
e3 8 0 0 -2.33 1.33 1
x2 40 0 1 2.67 -1.67 0
4j -280-80a 0 0 -5.33+1.33a -1.67-3.33a 0
-5.33 + 1.33a≤0
-1.67 - 3.33a≤0
La résolution de ce système d'inéquations donne a ∈ [−0.5, 4]. Pour a dans cet intervalle
la solution optimale reste la même (x1 = 80, x2 = 40) mais la valeur de la fonction
objective (l'optimum) change et devient égale à 280 + 80 a.
Notons d'abord que pour a = 0, le tableau est optimal. Suivant les valeurs de a, la
variable e1 ou e2 rentre dans la base et la solution présente ne sera plus optimale. Nous
avons les résultats suivants :
−0.5 ≤ a ≤ 4 la solution actuelle est optimale et correspond au point C (cf. g 3.2).
a > 4 la variable e1 rentre dans la base et correspond au point D.
a ≤ −0.5 la variable e2 rentre dans la base mais la solution est optimale uniquement
pour a ≥ −2 ; il faut faire une autre itération pour le cas a < −2.
Nous donnons uniquement pour ce dernier cas le tableau obtenu, pour les autres le lecteur
est invité à faire les calculs et vérier nos résultats.
Base b x1 x2 e1 e2 e3
x1 60 1 0 4 0 -2.5
Pour a < −0.5 e2 6 0 0 -1.6 1 0.75
x2 50 0 1 0 0 1.25
4j -270-60a 0 0 -8-4a 0 1.25+2.5a
Base b x1 x2 e1 e2 e3
x1 150 0.25 0 1 0 -5/8
pour a < −2 e2 6 0.2 0 0 1 -0.25
x2 50 0 1 0 0 1.25
4j -150 2+a 0 0 0 -15
Valeur de a −∞ 2 0.5 4 +∞
Variable entrant e2 e2 aucune e1
CB Base b u1 u2 u3 v1 v2
Le coecient de u2 (variable associée a cette contrainte dans le dual) est donc −40 − b
(le signe est négatif à cause du problème de minimisation ramené à la maximisation).
Rappelons que les coûts réduits ∆j sont obtenus à partir des coecients de la fonction
objective par la transformation suivante ∆j = cj − CB Pj dans laquelle CB représente
les coecients des variables de base et Pj le vecteur colonne du tableau.
La dernière ligne du tableau peut être alors obtenue directement du tableau précédent :
−CB Base b u1 u2 u3 v1 v2
Ce qui donne : −6 ≤ b ≤ 24 .
b ∈ [−6, 24] la solution précédente reste optimale, en d'autres termes pour la contrainte
2 variant de : 0.4x1 + 0.2x2 ≤ 34 à 0.4x1 + 0.2x2 ≤ 64.En dehors de ces valeurs le tableau
doit être changé.
De la même façon que pour le cas du primal, nous faisons les changements de tableau.
Regardons ce que devient le tableau précédant pour le cas b > 24, les autres cas sont
laissés au soin du lecteur, nous donnons cependant le tableau récapitulatif.
b > 24, ce cas correspond au second membre supérieur à 64, de la deuxième contrainte.
Après avoir fait entrer la variable v2 et sortir u2 on obtient le tableau optimal suivant :
CB Base b u1 u2 u3 v1 v2
0 u2 1 0 3/5 -4/5 -2 1
2+a
P =−
3
Quand cette pente est positive, l'optimum est le point A, ( donc pour a ≤ −2 ). Dans
le cas où elle est comprise entre les pentes de AB et BC, l'optimum est le point B, etc...
Notons que, lorsqu'elle est parallèle à une droite- contrainte, tous les points du segment
réalisable sont optimums.
Si b < -6 les point B et C (confondus) glissent vers A. Ce point est atteint pour b= -30,
si la valeur de b continue à diminuer, le point optimal se rapprochera de O.
Notons cependant que pour un problème économique, un coût négatif na pas de sens,
donc doit être supérieur ou égal à -2. De même, b doit être supérieur ou égal à - 40 car
la contrainte, qui dans la pratique, représente une capacité, ne peut être négative.
x2
A B
C
Fonct. Objective
2 ieme contrainte
D x1
3.4 Exercices
a) Modéliser ce problème.
x1
droite de F
L'ensemble des solutions optimales est O = { (x1 , x2 ) | 3 x1 + 2 x2 = 18 . Le
lecteur est invité à montrer algébriquement ce résultat.
max F = x1 + x2 + x3 + x4
a) Faire une analyse graphique
x1 + x2 ≤2
b) Utiliser le Simplex. Que Con- x3 + x4 ≤5
clure ? x1 , x2 , x3 ,x4 ≥0
a) Résoudre graphiquement ce programme linéaire. Que peut-on conclure ?
Base x1 x2 x3 e1 e2 e3 b Base x1 x2 x3 e1 e2 a1 b
x1 1 0 1.5 4 1 0 10 x1 1 0 3 2 -1 0 1
x2 0 1 2 1 -3 0 5 x2 0 1 2 1 -3 0 5
e3 0 0 3 0 2 1 7 a1 0 0 -1 0 0 1 4
∆ 0 0 -4.5 -13 0 0 ∆ 0 0 M-9 0 6 0
max X1 + X2 0 ≤ X1 ≤ 1 0 ≤ X2 ≤ 1
11. Soit le programme linéaire (P) avec son dernier tableau du simplexe :
12. Une entreprise fabrique 4 types de bureau. Chaque bureau est fabriqué dans l'ate-
lier 1 de menuiserie puis envoyé à l'atelier 2 pour les travaux de nition (peinture,
vernissage...). Le nombre d'heures de main-d'oeuvre dans chaque atelier et les prof-
its unitaires sont donnés dans le tableau :
Bureau 1 2 3 4
La disponibilité en heures de main-
Atelier 1 4 9 7 10
d'oeuvre pour l'atelier 1 est de 6000 h.
Atelier 2 1 1 3 40
Elle est de 4000 h pour l'atelier 2.
Prot 12 20 18 40
Base x1 x2 x3 x4 e1 e2 b
4 −1 4000
x1 1 2.3 1.6 0
15 15 3
1 1 1 2 200
x4 0 − 30 30 1 − 150 75 3
20 10 44 4 56000
∆ 0 − − 0 − − f=
3 3 15 15 3
X = X1 ∪ X2 et X1 ∩X2 =
l'application C : U → R+
C(u) représente le coût de l'arc u ou encore le coût de transport d'une matière du sommet
i au sommet j avec u = (i, j).
Soient X1 = {x1 , x2 , ..., xm }
X2 = {y1 , y2 , ..., yn }. On désignera par origine un sommet
et
de X1 et destination un sommet X2 . Supposons qu'une matière est disponible au niveau
de chaque sommet origine xi en quantité ai ;i = 1, m . Une demande bj j = 1, n est
formulée par chaque sommet destination yj .
Le problème de transport consiste à transporter une matière des m origines pour couvrir
la demande des n destinations en respectant les contraintes suivantes :
Disponibilité de la matière en chacune des origines.
Satisfaction d'une demande en chacune des destinations.
L'objectif étant, bien entendu, la minimisation du coût global de transport sur tout le
réseau. Si on désigne par xij la quantité acheminée de l'origine i à la destination j. Ce
problème se modélise comme suit :
min f = m
P Pn
i=1 j=1 cij xij
Pm
i=1 xij ≥ bj j = 1, ..., n
Pn
j=1 xij ≤ ai i = 1, ..., m
xij ≥ 0
53
4.4.1. Position du problème et modélisation A.Belahcene
Le problème de transport
Pm Pn
max W = i=1 ai ui + j=1 bj vj
ui + vj ≤ cij ∀i, j
ui , vj ≥0 ∀i, j
Les variables ui et vj seront dites respectivement coût d'envoi et coût de réception. Ces
variables sont ctives mais joueront un rôle important dans les prochaines considérations.
Remarques : P P
Dans le cas où ai > bj , on crée une destination ctive, yn+1 et on rajoute un arc
de coût inni entre chaque sommet de
P P X1 et yn+1 .
Lorsque ai < bj , on crée une origine ctive xm+1 et rajoute un arc de coût inni
entre xm+1 et chaque sommet de X2 .
Exemple 4.1.1. Une entreprise fabrique et vend un produit alimentaire possède deux
(2) ateliers de fabrication et trois (3) dépôts pour stocker le produit ni. La production
journalière dans chaque atelier est respectivement de 400 et 500 caisses.
La demande journalière est la même pour chaque dépôt et est estimée à 300 caisses. Les
coûts sont donnés en milliers de dinars. Le problème est d'établir un plan de transport
du produit des deux ateliers aux trois dépôts qui minimise le coût total de transport.
Il existe plusieurs méthodes qui permettent de déterminer une solution de base réalisable.
Les principales méthodes sont : Ballas-Hammer, la méthode du coin "Nord-Ouest", la
méthode du minimum en ligne. Parmi toutes les méthodes existantes celle de Ballas-
Hammer est la plus utilisée car la solution de base réalisable oerte par cette méthode
est proche de la solution optimale. Dans certaines situations, cette solution de base
réalisable est optimale.
Nous allons exposer la principale méthode à savoir celle de Ballas-Hammer. Elle est basée
sur la notion de regret.
On commence par calculer pour chaque rangée de la matrice coût, la diérence entre
le plus petit élément avec l'élément immédiatement supérieur (ou égal) dans la même
rangée. On choisit parmi les diérences obtenues, tant en ligne qu'en colonne, celle qui
est la plus grande. Deux cas peuvent se présenter :
On recommence cette procédure jusqu'à l'obtention d'une matrice à deux éléments. Les
deux relations restantes sont retenues automatiquement. On calcule ensuite le coût total
de cette solution.
L'écart maximal est égal à 0.4, il est atteint par la ligne correspondant à l'atelier A2 . Le
minimum des coûts sur cette ligne est 1.4. On aecte alors à la case (A2 , D3 ) la quantité
300 car
A2 −→ D3
Le dépôt D3 étant entièrement satisfait par l'atelier A2 . La disponibilité dans cet atelier
devient alors a2 = 500 − 300 = 200. On raye la colonne D3 et on obtient la nouvelle
matrice (voir table4.2)
∆j 0.3 0.1
L'écart maximal est égal à 1, il est atteint par la ligne correspondant à l'atelier A2 . Le
minimum des coûts sur cette ligne est 1.8. On aecte alors à la case (A2 , D3 ) la quantité
200 car :
A2 −→ D2
Le dépôt D2 étant partiellement satisfait alors que l'atelier A2 est pourvu du produit.
La disponibilité dans cet atelier devient alors a2 = 500 − 300 = 200. On raye la ligne A2
et on obtient la nouvelle matrice (voir table4.2 :)
Cette table contient deux éléments, on retient les relations qui restent, à savoir :
Le dépôt D1 sera alimenté par l'atelier A1 , ϕ(A1 , D1 ) = 300
Le dépôt D2 sera complété par A1 , ϕ(A1 , D2 ) = 100
Le coût de cette transaction est de 100 ∗ 1.7 + 300 ∗ 2.5 = 920.
A2 −→ D3 , A2 −→ D2 , A1 −→ D1 , A1 −→ D2
Si Xij > 0, c'est-à-dire que cette variable est de base, alors la variable d'écart associée à
la contrainte du dual est nulle. En d'autres termes : ui + vj = cij
Si Xij = 0, cette variable étant hors-base, alors la variable associée à la contrainte
correspondante du dual est positive, c'est-à-dire, ui + vj < cij
Les conditions 4.3 et 4.3 dénissent un critère d'optimalité d'une solution de base réal-
isable. En d'autres termes, une solution de base réalisable est optimale si le coût de
transport, pour les cases représentant les variables hors-base, est supérieur à la somme
des deux coûts.
La vérication commence par supposer que, pour les cellules représentant les variables
de base, le coût de transport est égal à la somme du coût d'envoi et du coût de réception.
On xe arbitrairement un de ces deux coûts égal à 0, soit l'un des coûts d'envoi puis on
évalue les autres en ne considérant que les cellules des variables de base. Par exemple le
tableau 4.1, la variable X12 = 100 est dans la base ( puisque positive), on choisit par
exemple u1 = 0, donc on calcule le reste, v2 = 1.7, car c12 = u1 + v2 = 1.7, puis les autres
valeurs ui et vj , ainsi v1 = 2.5, v3 = 1.8 et u2 = 0.1.
Dans le cas de l'exemple 4.1, on obtient :
D1 D2 D3 aj
uj
A1 300 100 400
2.5 1.7 1.8 0
A2 200 300 500
2.8 1.8 1.4 0.1
bj 300 300 300
vj 2.5 1.7 1.3
On notera que le chire gras donné en haut à gauche d'une cellule représente la valeur de
la variable de base qui est la quantité à transporter. Par contre le chire en bas à droite
de cette cellule est le coût de transport. La dernière colonne (ligne) de cette matrice
résume la disponibilité (demande) en haut et le coût d'envoi (coût de réception) en bas
de chaque cellule.
On remarque que le critère d'optimalité est vérié car pour les cellules des variables hors-
base, à savoir (A1 , D3 ) et (A2 , D1 ), la condition ui + vj < cij est vériée. La solution de
base réalisable oerte par Ballas-Hammer, dans cet exemple, est optimale.
Dans le cas où nous avons plusieurs cellules des variables hors-base ne vériant pas le
critère d'optimalité alors on ramène dans la base la cellule ayant la plus grande diérence,
en valeur absolue, entre le coût de transport et la somme des coûts d'envoi et de réception.
On augmente d'une quantité α cette cellule puis on observe l'eet d'un tel changement
sur les autres variables de base. Ces changements successifs doivent décrire un cycle, qui
commence et se termine par cette cellule hors-base, et dont les sommets sont des variables
de base.
Exemple 4.2 Supposer que l'atelier A1 alimente le dépôt D1 d'une quantité égale à 100
caisses et le dépôt D2 d'une quantité égale à 300 caisses. Par contre, l'atelier A2 alimente
les dépôts D1 et D3 d'une quantité respectivement égale à 200 et 300 caisses. Optimiser
cette solution de base réalisable en utilisant la procédure décrite ci-haut.
Reportons cette solution de base réalisable sur le tableau de transport et calculons les
diérents coûts :
D1 D2 D3 aj
uj
A1 100 300 400
2.5 1.7 1.8
A2 200 300 500
2.8 1.8 1.4 0
bj 300 300 300 900
vj 2.5 1.1
La cellule hors-base (A2 , D2 ) ne vérie pas le critère d'optimalité car son coût de transport
(1.8) est inférieur à la somme de son coût d'envoi ( 0.3) et de son coût de réception (1.7)
qui est de (2.0). Cette cellule est donc candidate à entrer en base. La quantité à aecter
à cette cellule est obtenue par le cycle suivant4.1 :
La quantité maximale que peut prendre α est 200 ; sinon la solution ne serait plus réal-
isable. La nouvelle solution est :
1. Vérier que cette solution est réalisable ? Vérier si elle optimale ? Si non, déter-
miner la solution optimale ?
100 + a 300 − a
200 − a a
D1 D2 D3 ai
uij
A1 300 100 400
2.5 1.7 1.8 0
A2 200 300 500
2.8 1.8 1.4 0.3
bj 300 300 300 900
vj 2.5 1.7 1.1
A B C D Ore
Le tableau suivant ré-
D1 4 6 6 2 18
sume les informations con-
21 36 43 20
cernant un problème de
D2 5 5
transport de 3 dépôts à 4
60 30 50 43
clients. Dans ce tableau on
D3 7 7
trouvera aussi une solution
18 10 48 72
à ce problème.
Dem 4 18 6 2 30
2. Suite aux récentes restrictions sur ses importations, une usine métallurgique peut
disposer des quantités maximales de minerais A, B, C, D et E respectivement égales
à 150t, 100t, 75t, 250t et 200t.
Quatre fournisseurs étrangers peuvent ex-
Minerais
porter, dans le cadre de la réglementation
A B C D E
de leurs pays, les quantités totales respec-
Four 1 2 3 2 4 1
tivement égales à 300t, 250t, 150t et 200t.
nis- 2 3 4 1 2 4
Les teneurs en métal des diérents minerais
seur 3 2 3 4 1 2
de chacun des fournisseurs sont données par
4 3 4 2 3 2
la table suivante :
On vous demande d'établir le programme de commande de manière à maximiser la
P1 P2 P3 P4 P5
Les coûts de transports entre les usines
U1 8 25 17 14 9
et les points de ventes sont donnés par la
U2 8 5 10 2 10
table suivante. Etablir le plan de trans-
U3 7 21 18 14 10
port qui minimise le coût total.
U4 23 9 12 18 25
4. Une rôtisserie possède 4 comptoirs de livraison dans une importante ville dont les
capacités de livraison sont respectivement de 150, 100, 80 et 140 repas par jour.
Cette ville est divisée en 6 secteurs : Est, Ouest, Nord, Sud, Centre et Banlieue.
Le nombre moyen de commande de chaque secteur est respectivement de 75, 50,
75, 125, 50 et 25 repas par jour. Les coûts unitaires de livraison des comptoirs aux
régions sont :