Académique Documents
Professionnel Documents
Culture Documents
Jean Koudi
Introduction générale.
1 Introduction générale. 1
2 Programmation linéaire 4
3.1 La dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Programmation linéaire
Un programme linéaire est un problème qui consiste à minimiser ou à maximiser une quantité
( qui peut-être traduite par une fonction linéaire) encore appelée fonction-objectif dont les
variables vérifient des contraintes pouvant être traduites par des inéquations affines.
f (X) = c1 x1 + c2 x2 + · · · + cn xn = C T X (2.1)
où X = (x1 , · · · xn )T ∈ Rn et C = (c1 , · · · cn )T ∈ Rn .
a1 x 1 + a2 x 2 + · · · + an x n ≤ b (2.2)
ou
a1 x 1 + a2 x 2 + · · · + an x n ≥ b (2.3)
aX ≤ b ou aX ≥ b
avec
a = (a1 , · · · an )T ∈ Rn et
Tout programme linéaire se présente généralement sous une des deux formes suivantes:
où
est un système d’inéquations de n inconnus et m1 inéquations. Donc Ainq est une matrice de
type m1 × n.
est un système d’équations de n inconnus et m2 équations. Donc Aeq est une matrice de type
m2 × n.
a11 x1 + · · · + a1n ≤ b1
.. .
. ≤ .. (2.6)
am1 x1 + · · · + amn ≤ bm
a11 x1 + · · · + a1n = b1
.. .
. = .. (2.7)
am1 x1 + · · · + amn = bm
On doit transporter une quantité de bien de chaque entrepôt vers des clients. Connaissant le
coût de transport unitaire du bien de chaque entrepôt vers chaque client, on désire connaître
la quantité optimale que chaque entrepôt doit envoyer à chaque client de sorte que le coût
de transport global soit minimisé.
C1 C2 Disponibilités
S1 8 7 80
S2 10 3 50
Demandes 60 70
Désignons par:
x et y les quantité que l’entrepôt S1 doit envoyer respectivement aux clients C1 et C2
En nous basant sur l’hypothèse que toutes les demandes doivent-être satisfaites on obtient
les contraintes suivantes: x + y = 80, z + t = 50; x + z = 60 et y + t = 70 Le programme est
sous la forme:
Il s’agit d’affecter un certain nombre de tâches à des ouvriers de sorte à minimiser le coût
global d’exécution des tâches. Chaque tâche doit-être exécutée par un seul ouvrier et chaque
ouvrier doit exécuter une seule tâche.
O1 O2
T1 98 65
T2 60 60
Les variables ici sont des variables de décision. C’est-à-dire des variables succeptibles de
prendre les valeurs 0 ou 1.
Le coût de réalisation est f (x11 , x12 , x21 , x22 ) = 98x11 + 65x12 + 60x21 + 60x22
Les contraintes sont défies par: x11 + x12 = 1; x21 + x22 = 1; x11 + x21 = 1 et x12 + x22 = 1
Exemple 2.3. Une société produit de la peinture d’intérieur et d’extérieur à partir de deux
produits de base A et B. La production d’une tonne de la peinture d’extérieur nécessite 6
unités de A et 1 unité de B. Une tonne de peinture d’intérieur nécessite 4 unités de A et 2
unités de B.
Une tonne de la peinture d’extérieur donne un profit de 5000 eet celle de la peinture
d’intérieur donne 4000e
On désigne par:
x la quantité en tonne de peinture d’extérieur
y la quantité en tonne de peinture d’intérieur.
L’énoncé de ce fameux problème est simple : « Étant donné n objets possédant chacun un
poids pi et une valeur vi et étant donné un poids maximum P pour le sac, quels objets faut-il
mettre dans le sac de manière à maximiser la valeur totale sans dépasser le poids maximal
autorisé pour le sac?»
Objet i 1 2 3 4
Valeur vi 7 4 3 3
Poids pi 13 12 8 10
3. On exprime en suite les contraintes liées aux variables (les limites et utilisation des
ressources, etc.).
Un programme linéaire est sous la forme canonique mixte s’il s’écrit sous la forme suivante.
n
(PL): Max(Z = C T X = ci x i )
X
i=1
Ainq X ≤ binq
sc Aeq X = beq
X ∈ Rn
Un programme linéaire est sous la forme canonique pure s’il s’écrit sous la forme suivante.
n
n
(PL): Max(Z = C T X = ci x i )
X
(PL): Max(Z = C X = ci x i )
X
T
i=1
i=1 n
≤ bj ; ∀ 1 ≤ j ≤ m
X
AX ≤ b a ji xi
C’est-à-dire
sc sc i=1
X ∈ Rn+ xi ≥ 0, ∀ 1 ≤ i ≤ n
Avec
a11 ··· a1n
.. .. ..
A= . . . , X = (x1 , · · · , xn )T ∈ Rn+ , b = (x1 , · · · , xm )T ∈ Rm et
am1 · · · amn
C = (c1 , · · · , cn )T ∈ Rn+
Un programme linéaire est sous la forme standard s’il s’écrit sous la forme suivante.
n
n
(PL): Max(Z = C T X = ci x i )
X
(PL): Max(Z = C X = ci x i )
X
T
i=1
i=1 n
= bj ; ∀ 1 ≤ j ≤ m
X
AX = b a ji xi
C’est-à-dire
sc sc i=1
X ∈ Rn+ xi ≥ 0, ∀ 1 ≤ i ≤ n
i=1
n
X
≤ bj
n
aji xi
aji xi = bj ⇔ (2.11)
X
i=1
Xn
i=1
aji xi ≥ bj
i=1
n
X
≤ bj
aji xi
⇔ i=1
n
X (2.12)
− aji xi ≤ −bj
i=1
Ainsi on obtient:
n
(PL): Max(Z = C X = ci x i )
X
T
(PL): Max(Z = C T X)
i=1
A b
AX = b
X ≤
sc −A −b
⇔
sc
X≥0
X∈ Rn+
En posant A
−A
= A0 et b
−b
= b0 , on obtient la forme canonique pure.
a1 x1 + a2 x2 + · · · + an xn ≤ b (2.13)
a1 x 1 + a2 x 2 + · · · + an x n + e = b (2.14)
a1 x 1 + a2 x 2 + · · · + an x n ≥ b (2.15)
a1 x 1 + a2 x 2 + · · · + an x n − e = b (2.16)
En utilisant les propositions 2.6 et 2.7 tout programme linéaire sous la forme canonique
peut-être transformé en une forme standard par l’introduction des variables d’écart.
n
(PL): Max(Z = C T X = ci x i )
X
(PL): Max(Z = C T X)
i=1
AX + E = b
AX ≤ b
sc
⇔
sc
X ∈ Rn+ , E ∈ Rm
X ∈ Rn+
+
De manière analogue
n
(PL): Min(Z = C T X = ci x i )
X
(PL): Min(Z = C T X)
i=1
AX − E = b
AX ≥ b
sc
⇔
sc
X ∈ Rn+ , E ∈ Rm
X ∈ Rn+
+
Exercice 2.8. Ecrire les programmes linéaires suivants sous la forme standard
Un élément X de Rn est admissible (ou réalisable) pour un progamme linéaire (PL) s’il vérifie
toutes les contraintes du problème. C’est-à-dire que X est solution de toutes équations et
inéquations dans (PL). L’ensemble de tous les points admissibles de (PL) est appelé ensemble
admissible.
Un élément X ∗ = (x∗1 , · · · , x∗n ) admissible pour un programme linéaire (PL) sature une
contraite d’inégalité a1 x1 + · · · + an xn ≤ b si
a1 x∗1 + · · · + an x∗n = b
La méthode graphique pour résoudre les PLs est valables pour les PLs à deux variables. Le
principa se présente comme suit:
Sans construit les parallèles à la droite (D), on peut aussi projeter orthogonalement
les sommets du domaine admissible sur la droite (D).
On considère un problème sous forme standard (P). On appelle solution réalisable de (P)
tout vecteur x qui satisfait les contraintes de (P). C’est-à-dire que Ax = b et x ≥ 0.
Soit B ⊂ {1, · · · , n} un sous-ensemble d’indices avec card(B) = m tel que les colonnes
Aj , j ∈ B, de A sont linéairement indépendantes. Autrement dit, la matrice carrée AB
formée des colonnes Aj , j ∈ B, est inversible. On dit que l’ensemble B des indices est une
base.
Sous l’hypothèse de rang plein, il existe toujours une base non vide quitte à réorganiser
Ax = b en obtenant la décomposition suivante:
A = (AB |AH ) où AH est la matrice formée des colonnes Aj , j < B de même x = (xB |xH ) et
le système Ax = b est équivalent à AB xB + AH xH = b.
Par la relation précédente et du fait que la matrice AB est inversible, on peut fixer les
variables hors-base et les variables de base sont alors complètement déterminées par
xB = A−1
B (b − AH xH )
xB = A−1
B b et xH = 0
Theorem 2.12. x est une solution de base réalisable si et seulement si x est un sommet de
DR .
Theorem 2.13. L’optimum de la fonction objectif F sur DR , s’il existe, est atteint en au
moins un sommet de DR .
Pour résoudre un PL sous forme standard, il suffit de se restreindre aux solutions de base
réalisables (les sommets de DR ). Tout se passe donc avec les solutions de base.
L’ensemble DR n’est pas nécessairement borné. En fait pour un PL, seulement trois situations
peuvent se produire:
• Phase 1 ( Initialisation): Trouver une solution de base réalisable (ou bien détecter
l’impossibilité).
Pour les problèmes définis sous la forme canonique, une base évidente est déterminée
par les indices des variables d’écart. Les variables d’écart deviennent les variables
duales.
Une fois le pivot est déterminé, on peut passer remplissage du nouveau tableau.
(c) On remplit les autres cellules par la méthode des rectangle suivante:
Soit d l’ancienne valeur de la cellule, a de la cellule d’intersection de sa colonne
avec la ligne du pivot et b la valeur de la cellule d’intersection de sa ligne avec la
colonne du pivot. On a:
ab
d0 = d −
p
(d) Retour à l’étape 2.
A chaque étape de l’algorithme du simplexe (en phase 2), on peut distinguer des cas remar-
quables qui conduisent tous à l’arrêt de l’algorithme.
1. Si les coûts réduits LH < 0, alors la solution de base réalisable courante est l’unique
optimum.
(b) Si (LH )e=0 et xe = 0, alors l’optimum est unique (a priori). Dans ce cas, la base
est dite dégénérée c’est-à-dire qu’il existe une variable de base nulle.
Exercice 3.1. Une boulangerie industrielle produit du pain, de la brioche et des croissants.
Pour cela,elle utilise du beurre, de la farine et de la levure, dont les quantités sont précisées
dans le tableau ci-dessous:
5. Combien d’unités de farine faut-il vendre pour avoir un bénéfice maximal? Justifie.
Exercice 3.2. Une manufacture de piles désire ajouter deux nouveaux produits à son cata-
logue: la Everlast III et la Xeros dry-cells. La Everlast III contient 2g de Cadmium et 4g de
Nickel, alors que la Xeros nécessite 3g de Nickel et 4g de Zinc en poudre. La quantité totale
de Cadmium disponible sur le marché est de une tonne, celle de Nickel est de trois tonnes.
Le Zinc est en quantité illimitée et sa pulvérisation est une formalité. La production de 1000
Everlast III demande 2 heures sur une Presse Glunt II et celle de 1000 Xeros dry-cells de-
mande 3 heures. La presse est disponible 2400 heures cette année. La compagnie escompte
un bénéfice net de 1000 euros par millier d’Everlast et de 1200 euros par millier de Xeros.
Exercice 3.3. Une entreprise pharmaceutique fabrique trois types de médicaments: des som-
nifères, des euphorisants et des analgésiques, dont les bénéfices de production escomptés sont
respectivement de 20, 20 et 10 milliers d’euros par kilo. Pour fabriquer chacun de ces médica-
ments, trois matières premières sont utilisées: de la caféïne, de la valériane et de l a mor-
phine. Les quantités nécessaires de ces produits pour fabriquer un kilo de médicaments sont
résumées dans le tableau suivant:
Par ailleurs les quantités de caféïne, valériane et morphine sont limitées par leur production
à respectivement 2, 4 et 2 unités par jour.
Le but de l’exercice est de planifier les quantités de médicaments à produire afin de maximiser
le bénéfice quotidien.
Exercice 3.4. Une usine fabrique des portes, des tables et des chaises à l’aide de deux types
de machines A et B. Chaque produit passe obligatoirement par les deux machines.
Pour produire:
- une porte, il faut 1.5 unité de madrier, 1 heure de machine A et 1 heure de machine B;
L’entreprise réalise un bénéfice de 3 euros sur une porte, 3 euros par chaise et 4 euros par
table. Les deux machines sont disponibles 12 heures au maximum par jour. L’entreprise reçoit
au maximum 10 unités de madrier par jour.
3.1 La dualité
n i=1
X
a ij xi ≤ bj ∀ j
sc i=1
xi ≥ 0 ∀ i
Supposons qu’une autre entreprise E2 , en rupture de stock, désire racheter les ressources de
la première, le problème qu’elle va se poser et le suivant:
Etant donné un prix unitaire cj pour chacun n biens j et une disponibilité bi pour chacune
des m ressources i, quel doit être le prix unitaire minimum d’achat yi de chaque ressource
i pour que la valeur totale des ressources consommées par chaque bien j soit supérieure ou
égale à cj (pour que cela reste intéressant pour l’entreprise E1 et que le prix total d’achat
des ressources disponible soit minimum?
Ce deuxième problème constitue le problème dual du premier, il peut se mettre sous la forme:
Théorème 3.6. Soit X une solution réalisable d’un (PL) sous forme canonique mixte et Y
une solution réalisable du problème dual (PLD). Alors:
• F (X) ≤ G(Y )
• Si F (x) = G(y) alors x et y sont des solutions optimales de (PL) et (PLD) respective-
ment.
Si le problème primal (PL) admet une solution réalisable optimale X ∗ alors le problème dual
(PLD) admet lui aussi une solution réalisable optimale Y ∗ et on a
F (X ∗ ) = G(X ∗ ).
Théorème 3.8. Etant donnés un problème primal (PL) et son dual (PLD), une et une seule
des trois situations suivantes peut se produire.
• les deux problèmes possèdent chacun des solutions optimales (à l’optimum, les co^uts
sont égaux).
• un des problèmes possède une solution réalisable avec un optimum infini, l’autre n’a
pas de solution.
• Si une contrainte est satisfaite en tant qu’inégalité stricte dans (PL) (resp. dans (PLD))
alors la variable correspondante de (PLD) (resp. de (PL)) est nulle.
• Si la valeur d’une variable dans (PL) ou (PLD) est strictement positive alors la con-
trainte correspondante de l’autre programme est une égalité.
L’analyse optimale permet de déterminer des intervalles de variations des données pour
lesquels la base optimale B n’est pas modifiée. Elle permet de déterminer la sensibilité de
(PL) par rapport aux données. Une faible variation des données entraîne-t-elle un changement
important de la solution optimale?
LTH = CH
T
− CBT AH ≤ 0 (3.1)
On examine à présent l’influence du second membre des contraintes sur la solution de base
optimale.
Soit une base optimale B. A l’optimum, une condition de faisabilité est satisfaite.
XB = A−1
B b ≥ 0 (3.2)
Pour déterminer l’influence d’un coefficient du second membre sur la solution optimale:
Cette condition est une condition nécessaire pour que la base optimale B soit inchangée.
En revanche, les valeurs de la solution de base xB changent, mais xB est toujours une solution
de base réalisable optimale car on maintient les coûts réduits LH ≤ 0 inchangés
Considérons notre exemple introductif en ajoutant la condition supplémentaire que les pro-
duits sont indivisibles. Donc une solution optimale de ce problème doit être en nombres
entiers. Le problème ainsi posé est donc un programme linéaire en nombres entiers.
Le problème initial (PL) dont les variables x1 et x2 peuvent prendre toutes les valeurs de R+
est appelé problème relaxé ou une relaxation de (PLNE).
Méthode d’énumération
On énumère toutes les solutions réalisables puis on détermine le ou les solution(s) optimale(s).
Même si l’ensemble des solutions est fini, il peut être beaucoup trop grand
Par exemple ici, l’ensemble des solutions était décrit par 3 contraintes, et il y a plus de 70
solutions à évaluer. Il aurait pu être encore beaucoup plus grand, même avec 3 contraintes,
si les données avaient été différentes.
Méthode heuristique
Une méthode heuristique cherche une bonne solution en se basant sur le bon sens.
Remarque 4.2. Toute solution réalisable du problème fournit une borne inférieure de (PLNE).
Une méthode de relaxation consiste à relaxer le problème (PLNE) afin de trouver une solution
approchée.
Pour un PLNE dont les variables appartiennent à N le problème relaxé peut être défini avec
des contraintes de positivité du type x ≥ 0.
Pour un PLNE dont les variables sont binaires (x ∈ {0, 1}), une relaxation peut-être définie
par 0 ≤ x ≤ 1 ou x(1 − x) = 0
Proposition 4.3. 1. Toute méthode de relaxation fournie une borne supérieure à la so-
lution optimale d’un PLNE de type maximisation.
2. Toute méthode de relaxation fournie une borne inférieure à la solution optimale d’un
problème PLNE de type minimisation.
3. Si la solution de la relaxation linéaire du programme entier est entière, alors elle est
optimale pour le problème entier.
Elle consiste à arrondir une solution fractionnaire donnée par une méthode de relaxation.
Elle permet parfois d’obtenir une bonne solution réalisable du problème entier, mais souvent
les solutions arrondies ne sont pas réalisables.
meilleures solutions que celle que nous connaissons déjà, il n’est pas nécessaire d’énumérer
ce sous-ensemble.
Etant donné que chaque variable est susceptible de prendre deux valeurs possibles 0 ou 1,
on n’a pas besoin d’une solution de départ donnée par une méthode de relaxation.
La méthode Bransh and Bund va nous permettre d’énumérer intelligemment toutes les so-
lutions possibles. En pratique, seules les solutions potentiellement de bonne qualité seront
énumérées, les solutions ne pouvant pas conduire à améliorer la solution courante ne sont pas
explorées. Pour représenter l’algorithme, nous utilisons un « arbre de recherche » constitué:
Dans notre exemple, les nœuds représentent une étape où un certain nombre d’objets auront
été mis dans le sac, d’autres laissés en dehors du sac, et d’autres objets pour lesquels aucune
décision n’a encore été prise. Chaque arc indique l’action de mettre un objet dans le sac
ou au contraire de ne pas le mettre dans le sac. La figure suivante représente une partie de
l’arbre de recherche.