Opt Lin

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 209

3

1 2 3

Université de Sherbrooke

Optimisation linéaire
Jean-Pierre Dussault

27 novembre 2019
2
Optimisation linéaire1

Jean-Pierre Dussault2

27 novembre 2019

1. Jean-Pierre
c Dussault 2019. Ce manuscrit est mis à disposition selon les termes de la Li-
cence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes
Conditions 4.0 International.
2. Professeur titulaire, département d’Informatique, Université de Sherbrooke, Sherbrooke, Ca-
nada J1K 2R1
2
Table des matières

Préface xi

Notation 1

Introduction 3

1 Modélisation 5
1.1 Premier modèle simple détaillé. . . . . . . . . . . . . . . . . . . . . 6
1.2 Modèles variés de recherche opérationnelle . . . . . . . . . . . . . . . . 10
1.2.1 Diète. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.2 Modèle de production . . . . . . . . . . . . . . . . . . . . . 15
1.2.3 Problème de transport . . . . . . . . . . . . . . . . . . . . . 21
1.2.4 Problème d’entreposage . . . . . . . . . . . . . . . . . . . . . 24
1.2.5 Problème du barman . . . . . . . . . . . . . . . . . . . . . . 26
1.2.6 Situation plus complexe . . . . . . . . . . . . . . . . . . . . . 29
1.3 Modèles déguisés . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.3.1 Min-max . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.3.2 Normes polyédrales. . . . . . . . . . . . . . . . . . . . . . . 42
1.3.3 Modèles pour la compression d’images . . . . . . . . . . . . . . 44
1.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.5 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 45

2 Introduction et intuition géométrique 47


2.1 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . 48
2.1.1 Intuition géométrique en 2D . . . . . . . . . . . . . . . . . . . 48
2.1.2 Résolution graphique d’un problème en deux dimensions . . . . . . . 52
2.1.3 Solutions multiples . . . . . . . . . . . . . . . . . . . . . . . 53
2.1.4 Domaine réalisable non borné . . . . . . . . . . . . . . . . . . 53

i
ii TABLE DES MATIÈRES

2.1.5 Domaine réalisable vide . . . . . . . . . . . . . . . . . . . . . 54


2.2 Résultat de la résolution d’un modèle d’optimisation linéaire . . . . . . . . 55
2.3 Formes standard . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3.1 Forme standard avec inégalités . . . . . . . . . . . . . . . . . . 57
2.3.2 Forme standard du simplexe . . . . . . . . . . . . . . . . . . . 58
2.3.3 Passage d’une forme à l’autre . . . . . . . . . . . . . . . . . . 58
2.4 Parenthèse calculatoire : pivots . . . . . . . . . . . . . . . . . . . . 65
2.5 Quelques propriétés des contraintes linéaires . . . . . . . . . . . . . . . 67
2.5.1 Propriétés des solutions de base réalisables. . . . . . . . . . . . . 69
2.6 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.7 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 72

3 Algorithme du simplexe 79
3.1 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . 80
3.2 Solutions de base réalisables . . . . . . . . . . . . . . . . . . . . . . 80
3.3 Condition d’optimalité . . . . . . . . . . . . . . . . . . . . . . . . 82
3.3.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3.2 Équations des conditions d’optimalité . . . . . . . . . . . . . . . 84
3.4 Algorithme du simplexe. . . . . . . . . . . . . . . . . . . . . . . . 85
3.4.1 Organisation calculatoire : forme canonique d’un problème . . . . . . 86
3.4.2 Organisation calculatoire : pivots et tableaux. . . . . . . . . . . . 86
3.4.3 Organisation calculatoire : dictionnaires . . . . . . . . . . . . . . 91
3.5 Comment obtenir la première solution de base réalisable . . . . . . . . . . 92
3.5.1 Contraintes ď avec b ě 0 . . . . . . . . . . . . . . . . . . . . 92
3.5.2 Cas général . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.5.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.6 Simplexe révisé . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.6.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.7 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.8 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 101
3.9 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 102

4 Dualité 105
4.1 Théorie de la dualité . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.1.1 Exemple du triangle . . . . . . . . . . . . . . . . . . . . . . 108
4.1.2 Diverses formulations de problèmes duaux . . . . . . . . . . . . . 109
4.1.3 Interprétations et conséquences du théorème de dualité . . . . . . . 112
4.1.4 Écarts complémentaires . . . . . . . . . . . . . . . . . . . . . 113
TABLE DES MATIÈRES iii

4.2 Algorithme dual du simplexe . . . . . . . . . . . . . . . . . . . . . 115


4.2.1 Exemple simple . . . . . . . . . . . . . . . . . . . . . . . . 115
4.2.2 Notre problème (2.7) . . . . . . . . . . . . . . . . . . . . . . 117
4.2.3 Un autre exemple . . . . . . . . . . . . . . . . . . . . . . . 118
4.2.4 Deux phases. . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.3 Un lien avec la théorie des jeux . . . . . . . . . . . . . . . . . . . . 123
4.3.1 Un exemple simpliste . . . . . . . . . . . . . . . . . . . . . . 123
4.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.5 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 133

5 Convergence de l’algorithme du simplexe 139


5.1 Dégénérescence . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.2 Un exemple de cyclage dans l’algorithme du simplexe . . . . . . . . . . . 141
5.3 Règles d’anti-cyclage . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.4 Convergence finie de l’algorithme du simplexe . . . . . . . . . . . . . . 144
5.4.1 Dualité forte . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.5 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.6 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 146

6 Analyse de sensibilité 149


6.1 Un exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.2 Algorithme auto-dual paramétrique. . . . . . . . . . . . . . . . . . . 157
6.2.1 Idée générale . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.2.2 Exemple détaillé . . . . . . . . . . . . . . . . . . . . . . . . 157
6.3 Anti-cyclage probabiliste . . . . . . . . . . . . . . . . . . . . . . . 161
6.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.5 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 163
6.6 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 163

7 Quelques extensions 169


7.1 Un algorithme de décomposition . . . . . . . . . . . . . . . . . . . . 170
7.2 Introduction aux algorithmes de point intérieur . . . . . . . . . . . . . 172
7.3 Traitement de variables entières . . . . . . . . . . . . . . . . . . . . 176
7.3.1 Séparation et évaluation progressive . . . . . . . . . . . . . . . 177
7.3.2 Coupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
7.3.3 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.4 Implantation numérique de l’algorithme du simplexe . . . . . . . . . . . 182
7.4.1 Utilisation de la décomposition LU . . . . . . . . . . . . . . . . 183
7.4.2 Utilisation de la décomposition QR . . . . . . . . . . . . . . . . 184
7.4.3 Dégénérescence numérique. . . . . . . . . . . . . . . . . . . . 184
iv TABLE DES MATIÈRES

7.5 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185


7.6 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 185
7.7 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 185

A Rappels mathématiques 187


A.1 Rappels d’analyse mathématique : optimisation en une dimension . . . . . . 187
A.2 Rappels d’algèbre linéaire . . . . . . . . . . . . . . . . . . . . . . . 188
A.2.1 Matrices inversibles . . . . . . . . . . . . . . . . . . . . . . 188

B Solutions de quelques exercices 191


Table des figures

2.1 Exemple de droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49


2.2 Exemple simple bi-dimensionnel . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.3 Exemple en 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.4 Exemple en 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.5 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.7 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.8 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.9 Exemple simple bi-dimensionnel . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.10 Ensemble convexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.11 Illustration de tmin et tmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

7.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176


7.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.4 Arbre des séparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

v
vi TABLE DES FIGURES
Table des algorithmes

3.1 Simplexe révisé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98


4.1 Simplexe dual révisé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.1 Simplexe auto-dual paramétrique. . . . . . . . . . . . . . . . . . . . . . . . . 160

vii
viii TABLE DES ALGORITHMES
Listings

1.1 Premier modèle avec AMPL ; fichier : AMPL/premiermodele.mod . . . . . . 8


1.2 Premier modèle avec AMPL – données ; fichier : AMPL/premiermodele.dat . 8
1.3 Modèle avec AMPL ; fichier : AMPL/ex1.1.mod . . . . . . . . . . . . . . . . 9
Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Modèle de diète ; fichier : AMPL/diet.mod . . . . . . . . . . . . . . . . . . . 11
1.5 Données pour le modèle de diète ci-haut ; fichier : AMPL/dietH.dat . . . . . 12
1.6 Données pour le modèle de diète AMPL ; fichier : AMPL/diet.dat . . . . . . 13
1.7 Modèle de production générique ; fichier : AMPL/ex1.2b.mod . . . . . . . . . 16
1.8 Données du modèle de production spéfifique ; fichier : AMPL/ex1.2b.dat . . 17
1.9 Instructions pour résoudre le modèle ; fichier : AMPL/ex1.2.cmd . . . . . . . 18
1.10 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.11 Modèle de production générique — solution entière ; fichier : AMPL/ex1.2bInt.mod 19
1.12 Instructions pour résoudre le modèle avec solution entière ; fichier : AM-
PL/ex1.2Int.cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.13 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.14 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.15 Session Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Session Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.16 Modèle de transport générique ; fichier : AMPL/transp.mod . . . . . . . . . 22
1.17 Données du modèle de trsansport générique ; fichier : AMPL/transpH.dat . . 23
1.18 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.19 Modèle d’entreposage générique ; fichier : AMPL/ex1.4.mod . . . . . . . . . 25
1.20 Données du modèle d’entrepôt générique ; fichier : AMPL/ex1.4.dat . . . . . 25
1.21 Modèle de barman générique ; fichier : AMPL/barman1.mod . . . . . . . . . 27
1.22 Données de barman spécifiques ; fichier : AMPL/barman1.dat . . . . . . . . 27
1.23 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.24 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.25 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

ix
x LISTINGS
Préface

L’optimisation mathématique, également nommée «programmation mathématique» re-


groupe un ensemble de sujets dans l’étude de problèmes d’optimisation. Une fonction objectif,
parfois nommée critère, est donnée, et le problème consiste à trouver —caractériser— calcu-
ler un point minimisant (ou maximisant) cette fonction. Parfois, tous les points de l’espace
sont candidats, parfois, des contraintes limitent le domaine de recherche.
En optimisation linéaire, les fonctions utilisées (fonction objectif, contraintes) sont li-
néaires. Les outils qui soutiennent l’optimisation linéaire sont donc essentiellement ceux de
l’algèbre linéaire et du calcul matriciel.
Avant d’attaquer la théorie et les algorithmes de résolution de modèles d’optimisation
linéaire, un chapitre de modélisation regroupe plusieurs exemples tirés de champs d’appli-
cation variés. Une démarche est proposée pour effectuer le passage d’une problématique
concrète vers un modèle mathématique d’optimisation linéaire. Nous apprendrons également
à utiliser un logiciel pour obtenir les solutions des différents modèles que nous aborderons.
Depuis ses débuts dans les années 1940 jusqu’en 2010, l’optimisation mathématique a été
nommée “programmation mathématique”, et l’optimisation linéaire “programmation linéai-
re” ; la société savante “Mathematical Programming Society” a adopté un changement de
nom visant à mieux décrire la discipline et depuis 2010, c’est la “Mathematical optimization
society”. En effet, “programmation” ne fait aucunement référence à la programmation des or-
dinateurs. On réfère plutôt à l’étude d’une situation que l’on souhaite optimiser, par exemple
déterminer une structure de prix permettant de programmer des activités pour minimiser les
coûts de production. Les pionniers de la discipline on mis l’accent sur la “programmation”
alors que nous préférons aujourd’hui mettre l’accent sur l’aspect “optimisation” du domaine.

xi
xii PRÉFACE
Notation

Nous adoptons la convention que Rn consiste en des vecteurs colonnes. On dénote la


transposition d’un vecteur par v t . Le produit scalaire entre deux vecteurs colonnes v t v.
Nous étudierons la notion de dualité et nous adopterons la convention que le vecteur de
coût et les varibles duales sont des vecteurs lignes. Ces vecteurs appartiennent à l’espace
dual de Rn qui est isomorphe à Rn , ce qui motive la convention de les représenter par des
lignes.
Les intervalles, ouverts ou fermés, sont dénotés par les crochets r et s comme suit :
‚ ra, bs “ tx : a ď x ď bu ;
‚ ra, br“ tx : a ď x ă bu ;
‚ sa, bs “ tx : a ă x ď bu ;
‚ sa, br“ tx : a ă x ă bu.
Les vecteurs — ligne ou colonne — peuvent se mesurer à l’aide de normes, }v} ; plusieurs
normes pourront être utilisées, la norme Euclidienne étant la norme “par défaut” :
ařn ?
2
‚ }v} “ }v}2 “ i“1 vi “ vtv ;
řn
‚ }v}1 “ i“1 |vi | ;
‚ }v}8 “ maxni“1 t|vi |u.
Une matrice mˆn A est habituellement dénotée par une majuscule. Ses lignes sont notées
ai , i “ 1, 2, . . . , m alors que ses colonnes sont notées Aj , j “ 1, 2, . . . , n. Donc
¨ ˛
a1
˚ a2 ‹ ` ˘
A “ ˚ .. ‹ “ A1 A2 . . . An .
˚ ‹
˝ . ‚
am
Les symboles de logique habituels sont p , nonq, p ^ , etq et p _ , ouq.
Puisque le sujet de ce texte concerne l’optimisation, en mémoire aux origines de la langue
Française, j’utilise les pluriels latinisés pour maximum, minimum, optimum : maxima, mi-
nima, optima.

1
2 NOTATION
Introduction

Ce texte est un document pédagogique pour introduire l’optimisation linéaire. Les sujets
sont présentés de manière élémentaire et ne nécessitent qu’une connaissance de l’algèbre
linéaire.
Dès que l’on utilise un des mots minimum, minimiser, minimal, maximal, maximum,
maximiser pour décrire une situation, il devient possible de formuler sous forme mathéma-
tique un problème d’optimisation. On parle de caractérisation ou de calcul d’un optimum,
d’une solution optimale, le terme optimum signifiant minimum ou maximum selon les cas.
La démarche permettant de décrire une situation donnée sous forme d’un problème d’opti-
misation mathématique se nomme modélisation.
Ce texte vise deux objectifs principaux : initier à la démarche de modélisation. Les mo-
dèles proviennent de plusieurs champs d’application. La recherche opérationnelle fournit une
grande variété de tels modèles.
L’autre objectif est d’étudier un algorithme célèbre, l’algorithme du simplexe, pour ré-
soudre les modèles d’optimisation linéaire. Cet algorithme fait partie de la liste des “top ten
algorithms in the twentieth century”.
En complément, nous esquisserons une autre famille d’algorithmes importants, les algo-
rithmes de points intérieurs. Ce texte d’introduction ne permet pas d’étudier ces algorithmes
en profondeur mais seulement d’en comprendre le fonctionnement sans pouvoir en étudier
les fondements. En effet, ces algorithmes relèvent d’algorithmes numériques s’appuyant sur
l’analyse mathématique vectorielle et l’analyse numérique, sujets que nous ne supposons pas
prérequis pour le présent texte.
Également en complément, nous introduirons la problématique résultant de quantités qui
doivent absolument prendre des valeurs entières et deux solutions algorithmiques simplistes
pour les résoudre.

3
4 INTRODUCTION
Chapitre 1
Modélisation

Sujets du chapitre
‚ Formalisation de modèles à partir de situations informelles.
‚ Description de modèles dans le langage AMPL.
‚ Utilisation naïve de logiciels de résolution.

5
6 MODÉLISATION

Introduction
On appelle modélisation la démarche qui considère une situation informelle et se pro-
pose de la traduire dans un langage mathématique approprié à l’obtention d’une solution
au problème sous-jacent à la situation informelle. Une partie de la démarche est de faire
abstraction d’aspects de détails au profit d’une représentation de l’essentiel de la situation.
La distinction entre l’essentiel et les détails moins pertinents relève de l’expérience.
Pour fixer les idées, nous considérons d’abord une situation informelle simple. Dans la
suite du chapitre, nous aborderons des patrons fréquents de modélisation. Ce premier chapitre
ne présuppose pas de connaissance avancée, mais tout de même un minimum d’algèbre
linéaire tel que rappelé à l’appendice A.

1.1 Premier modèle simple détaillé


Voici une premiere situation très simple qui nous conduira à un problème jouet que nous
utiliserons pour introduire le vocabulaire des modèles d’optimisation linéaire.

Situation à modéliser

Une entreprise utilise trois machines dénotées A, B, C pour fabriquer deux produits P1
et P2 . Chaque unité de P1 requiert une heure de la machine A et deux heures de la machine
B. Chaque unité de P2 requiert une heure de chacune des trois machines.

Les disponibilités mensuelles des machines A, B et C sont de 400, 600 et 300 heures respec-
tivement.

Si le profit unitaire est de 1, 50$ pour P1 et 1, 00$ pour P2 , combien l’entreprise doit-elle
fabriquer de chacun des produits pour maximiser ses profits ?

Modèle spécifique

Bien entendu, si aucune restriction n’était spécifiée, la solution serait de produire une
infinité de chacun des produits puisque le critère à optimiser (maximiser) est 32 x1 ` x2 où x1
et x2 représentent les quantités de P1 et P2 produites.
On formule trois contraintes pour représenter les restriction de disponibilité de chacune
des machines. Chaque contrainte stipule que la somme du temps requis par une machine
1.1. PREMIER MODÈLE SIMPLE DÉTAILLÉ 7

donnée pour les deux produits doit être inférieure ou égale à la disponibilité de la machine.
x1 ` x2 ď 400 (1.1)
2x1 ` x2 ď 600 (1.2)
x2 ď 300 (1.3)
On doit ajouter à nos restrictions le fait que la quantité produite e doit pas être négative, ce
qui nous amène à formuler le modèle complet suivant :
max2 1.5x1 ` x2 (1.4)
xPR
sujet à x1 ` x2 ď 400 (1.5)
2x1 ` x2 ď 600 (1.6)
x2 ď 300 (1.7)
x1 , x2 ě 0 (1.8)
La fonction qui sert de critère, ici 1.5x1 ` x2 se nomme critère, ou encore fonction objec-
tif, parfois fonction économique, également simplement “objectif”. Les autres inégalités sont
nommées contraintes. Les contraintes auraient aussi pu être des égalités, comme nous le
verrons plus tard.
Il faut faire attention, en anglais, le terme fonction objectif se traduit objective function
et c’est une faute (anglicisme) en français de dire “fonction objective”.
Les x qui satisfont à toutes les contraintes sont dits solution réalisables et l’ensemble
réalisable aussi nommé domaine réalisable est composé de toutes les solutions réalisables.
Parmi celles-ci, la solution recherchée se nomme solution optimale.

Modèle générique
Notre situation aurait fort bien pu comporter plus de deux produits, disons n. Similai-
rement, leur fabrication aurait pu nécessiter plus de trois machines, disons m. Dans ce cas,
il est commode de définir un vecteur de coûts c “ pc1 c2 . . . cn q qui regroupe tous les coûts
(profits) des n produits. Similairement, leur quantité est exprimée dans un vecteur x de n
composantes. Pour ce qui est des contraintes, nous aurons m expressions impliquant les n
quantités de produits, il est naturel de les spécifier dans une matrice m ˆ n, disons A. Enfin,
les limites de temps des machines auraient avantage à être regroupé dans un vecteur de
dimension m, disons b. Habituellement, les contraintes de non négativité sur les variables
x sont conservées telles quelles plutôt que d’être incorporées dans la matrice A. Le modèle
générique s’écrit alors comme suit.
ÿn
maxn cx “ ci x i (1.9)
xPR
i“1
sujet à Ax ď b (1.10)
x ě 0. (1.11)
8 MODÉLISATION

Pour un vecteur x ě 0 signifie que toutes ses composantes sont non-négatives, c’est-à-dire
xi ě 0, @i P t1, 2, . . . , nu. Similairement, une relation Ax ď b signifie pAxqj ď bj , @j P
t1, 2, . . . , mu.
On peut retrouver le modèle spécifique qui¨a débuté
˛ cette
¨ discussion
˛ en fixant les valeurs
` ˘ 400 1 1
appropriées n “ 2, m “ 3, c “ 1, 5 1 , b “ ˝600‚, A “ ˝2 1‚.
300 0 1

Langage de modélisation
Attardons-nous maintenant à transcrire le modèle dans un langage de modélisation,
AMPLTM ou de la version logiciel ouvert GLPK.
AMPLTM (A Mathematical Programming Language) est un langage algébrique de mo-
délisation très répandu. Ce langage peut être connecté sur des logiciels de résolution afin
d’obtenir effectivement la solution des modèles. GLPK (GNU Linear Programming toolKit)
offre l’essentiel des fonctionnalités de AMPLTM mais n’est lié à aucune contrainte commer-
ciale.

1 set machine ;
2 set produit ;
3

4 param A { machine , produit } >=0;


5

6 param b { machine };
7

8 param c { produit };
9

10 var x { produit } >= 0 ;


11

12 maximize profit_total : sum { i in produit } c [ i ] * x [ i ];


13

14 subject to temps_requis { j in machine }:


15 sum { i in produit } A [j , i ]* x [ i ] <= b [ j ];

Listing 1.1 – Premier modèle avec AMPL; fichier: AMPL/premiermodele.mod

Le modèle a donc été spécifié sans tenir compte des données, c’est le modèle génériqe. Exac-
tement le même modèle pourrait servir avec cent produits et 2000 machines, les données
seulement seraient différentes. Les données se retrouvent dans le fichier suivant.
1 data ;
2

3 set machine := A B C ;
1.1. PREMIER MODÈLE SIMPLE DÉTAILLÉ 9

4 set produit := P1 P2 ;
5

6 param b := A 400 B 600 C 300;


7

8 param c := P1 1.5 P2 1;
9

10 param A : P1 P2 :=
11 A 1 1
12 B 2 1
13 C 0 1;

Listing 1.2 – Premier modèle avec AMPL – données; fichier: AMPL/premiermodele.dat

J’ai choisi une notation proche de la formulation vectorielle–matricielle. On peut aussi


formuler le modèle avec des identificateurs plus proches de l’application. Par exemple, le
modèle suivant est complètement équivalent. Évidemment, il faut ajuster le fichier “.dat”
pour que les données soient affectées aux bons identificateurs.
1 set machine ;
2 set produit ;
3

4 param t _ m a c h i n e _ p a r _ p r o d u i t { machine , produit } >=0;


5

6 param dispo { machine };


7

8 param profit { produit };


9

10 var x { produit } >= 0 ;


11

12 maximize profit_total : sum { i in produit } profit [ i ] * x [ i ];


13

14 subject to temps_requis { m in machine }: sum { p in produit }


15 t _ m a c h i n e _ p a r _ p r o d u i t [m , p ]* x [ p ] <= dispo [ m ];

Listing 1.3 – Modèle avec AMPL; fichier: AMPL/ex1.1.mod

Maintenant, pour résoudre notre modèle, nous allons utiliser un outil en ligne de com-
mande. Avant d’examiner le résultat, tentez tout de même de résoudre le problème pour
identifier la production qui maximise les profits. Même pour un modèle jouet, cela nécessite
un peu de réflexion et d’habileté calculatoire.

1 PROMPT > ampl


2 ampl : model ex1 .1. mod ;
3 ampl : data ex1 .1. dat ;
10 MODÉLISATION

4 ampl : solve ;
5 MINOS 5.51: optimal solution found .
6 2 iterations , objective 500
7 ampl : display x ;
8 x [*] :=
9 P1 200
10 P2 200
11 ;
12 ampl : quit
13 PROMPT >

On lit donc que la solution optimale est x1 “ x2 “ 200 et que la valeur de l’objectif est
500. Rappelons qu’en anglais, on dit “objective function” alors qu’en français, l’expression
correcte est “fonction objectif”.
Dans la suite du chapitre, nous allons traiter plusieurs exemples de moins en moins
simplistes. Nous utiliserons l’outil AMPL en ligne de commande pour en obtenir les solutions.
Plusieurs exercices seront proposés pour devenir efficaces dans la démarche de modélisation
de situations décrites informellement.

1.2 Modèles variés de recherche opérationnelle


Le champ d’application probablement le plus répandu de l’optimisation linéaire provient
de la recherche opérationnelle. Selon 1 , la recherche opérationnelle est cette discipline des
mathématiques qui peut être définie comme l’ensemble des méthodes et techniques ration-
nelles orientées vers la recherche du meilleur choix dans la façon d’opérer en vue d’aboutir
au résultat visé ou au meilleur résultat possible.

1.2.1 Diète
Situation à modéliser

Un éleveur dispose de trois types de grains pour nourrir ses animaux. Chaque type de
grain comporte différentes quantités de quatre éléments nutritifs. L’éleveur connaît la quan-
tité de chaque élément nutritif requis pour nourrir ses animaux ainsi que le coût au kilo de
chacun des grains, données résumées dans le tableau suivant.
L’éleveur veut déterminer la quantité de chaque grain pour constituer un mélange qui, na-
turellement, comblera tous les besoins en nutriments et ce, en minimisant le cout total.

1. https://fr.wikipedia.org/wiki/Recherche_opérationnelle
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 11

grain 1 grain 2 grain 3 besoins hebdomadaires


nutriment A 2 3 7 1250
nutriment B 1 1 0 250
nutriment C 5 3 0 900
nutriment D 1.2 1.2 1 232.5
Coût/kg 41 35 96

Table 1.1 – Données du problème de diète

Modèle générique
La situation est déjà décrite dans une forme très proche du modèle générique. Considérons
n sortes de grains, m nutriments, Une matrice A de n colonnes et m lignes décrivant l’apport
de chaque grain à un nutriment donné, un vecteur b de besoins en nutriments et un vecteur
c de coûts des grains. Le modèle générique s’écrit alors comme suit.

min cx (1.12)
sujet à Ax ě b (1.13)
x ě 0. (1.14)

La différence avec notre premier modèle jouet est que l’objectif est ici de minimiser plutôt
que de maximiser et les contraintes sont de type “plus grand ou égal” plutôt que “plus petit
ou égal”.
On peut retrouver le modèle¨ spécifique
˛ ci-haut
¨ en fixant
˛ les valeurs appropriées n “ 3,
1250 2 3 7
` ˘ ˚ 250 ‹ ˚1 1 0‹
m “ 4, c “ 41 35 96 , b “ ˚ ˝ 900 ‚, A “ ˝ 5
‹ ˚ ‹.
3 0‚
232.5 1.5 1.2 1

Langage de modélisation
Ce modèle est tellement répandu que sa version générique fait partie des exemples de
AMPL. En fait, le modèle est un petit peu plus général car il incorpore des bornes des deux
côtés f_min ď x ď f_max et n_min ď Ax ď n_max.

1 set NUTR ;
2 set FOOD ;
3

4 param cost { FOOD } > 0;


5 param f_min { FOOD } >= 0;
6 param f_max { j in FOOD } >= f_min [ j ];
7
12 MODÉLISATION

8 param n_min { NUTR } >= 0;


9 param n_max { i in NUTR } >= n_min [ i ];
10

11 param amt { NUTR , FOOD } >= 0;


12

13 var Buy { j in FOOD } >= f_min [ j ] , <= f_max [ j ]; # Buy est le x ...
14

15 minimize total_cost : sum { j in FOOD } cost [ j ] * Buy [ j ];


16

17 subject to diet { i in NUTR }:


18 n_min [ i ] <= sum { j in FOOD } amt [i , j ] * Buy [ j ] <= n_max [ i ];

Listing 1.4 – Modèle de diète; fichier: AMPL/diet.mod

Exercice 1.2.1 [Diète de AMPL] Adaptez les fichiers diet.mod et diet.dat aux no-
tations utilisées ci-haut, les vecteurs b et c, la matrice A. Validez votre adaptation en
résolvant les modèles à l’aide de l’outil AMPL en ligne de commande.

En ajustant les identificateurs, voici les données du modèle spécifique. Nous avons spécifié
des bornes infinies pour représenter notre modèle qui ne comporte aucune borne supérieure.
1

2 set NUTR := A B C D ;
3 set FOOD := grain1 grain2 grain3 ;
4

5 param : cost f_min f_max :=


6 grain1 41 0 Infinity
7 grain2 35 0 Infinity
8 grain3 96 0 Infinity ;
9

10 param : n_min n_max :=


11 A 1250 Infinity
12 B 250 Infinity
13 C 900 Infinity
14 D 232.5 Infinity ;
15

16 param amt :
17 grain1 grain2 grain3 :=
18 A 2 3 7
19 B 1 1 0
20 C 5 3 0
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 13

21 D 1.5 1.2 1;

Listing 1.5 – Données pour le modèle de diète ci-haut; fichier: AMPL/dietH.dat

La solution est :
14 PROMPT > ampl
15 ampl : model diet . mod ;
16 ampl : data dietH . dat ;
17 ampl : solve ;
18 MINOS 5.51: optimal solution found .
19 4 iterations , objective 14583.33333
20 ampl : display Buy ;
21 Buy [*] :=
22 grain1 0
23 grain2 416.667
24 grain3 0

Voici maintenant un fichier de données tel que l’exemple classique de AMPL.


1

2 set NUTR := A B1 B2 C ;
3 set FOOD := BEEF CHK FISH HAM MCH MTL SPG TUR ;
4

5 param : cost f_min f_max :=


6 BEEF 3.19 0 100
7 CHK 2.59 0 100
8 FISH 2.29 0 100
9 HAM 2.89 0 100
10 MCH 1.89 0 100
11 MTL 1.99 0 100
12 SPG 1.99 0 100
13 TUR 2.49 0 100 ;
14

15 param : n_min n_max :=


16 A 700 10000
17 C 700 10000
18 B1 700 10000
19 B2 700 10000 ;
20

21 param amt ( tr ):
22 A C B1 B2 :=
23 BEEF 60 20 10 15
24 CHK 8 0 20 20
14 MODÉLISATION

25 FISH 8 10 15 10
26 HAM 40 40 35 10
27 MCH 15 35 15 15
28 MTL 70 30 15 15
29 SPG 25 50 25 15
30 TUR 60 20 15 10 ;

Listing 1.6 – Données pour le modèle de diète AMPL; fichier: AMPL/diet.dat

et sa solution

25 MINOS 5.51: optimal solution found .


26 6 iterations , objective 88.2
27 ampl : display Buy ;
28 Buy [*] :=
29 BEEF 0
30 CHK 0
31 FISH 0
32 HAM 0
33 MCH 46.6667
34 MTL 1.57618 e -15
35 SPG 8.42982 e -15
36 TUR 0

Les quantités bizarres de MTL et SPG sont dûes à des erreurs d’arrondi dans les calculs
numériques. Les ordinateurs calculent en général avec environ 16 décimales de précision et
des quantités de l’ordre de 10´15 sont en fait des 0 pollués d’erreurs d’arrondi. Donc, la
diète optimale ne comporte que des MCH (“Mac & Cheese”). Remarquons que dans les
deux exemples, la diète optimale ne comporte qu’un seul aliment. On pourrait qualifier
cette solution d’extrême. Le premier à s’intéresser à un tel modèle de diète fut Stigler [5].
Sa liste d’aliments comportait 77 items et il avait minimisé le coût d’alimentation annuelle
d’un homme de corpulence moyenne en assurant de combler ses besoins nutritionnels décrits
par les neuf nutriments calories, protéines, calcium, fer, vitamine A, thiamine, riboflavine,
niacine et acide ascorbique. Stigler a effectué son étude avant l’invention de l’algorithme du
simplexe, aussi avait-il utilisé des calculs intuitifs pour estimer le coût minimal de 39.93$.
Vous avez le modèle AMPL, la solution optimale est la suivante :
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 15

Diète annuelle à coût minimum


Aliment Unité Quantité/an coût unitaire ($) Coût total ($)
Farine de blé enrichie 10 lb. 29.95 0.36 10.78
Foie de boeuf 1 lb. 2.58 0.268 0.69
Chou 1 lb. 110.70 0.037 4.10
Épinards 1 lb. 22.58 0.081 1.83
Haricots blancs, séchés 1 lb. 377.81 0.059 22.29
Total : 39.69
Comme on peut l’observer, le menu annuel est “extrême”, ne comportant que cinq aliments à
consommer toute l’année ! Nous verrons que c’est une caractéristique des problèmes d’optimi-
sation linéaire, il existe toujours une solution optimale point extrême de l’ensemble réalisable
et l’algorithme du simplexe détermine un tel point extrême optimal.

1.2.2 Modèle de production


Situation à modéliser

Une entreprise fabrique trois produits : P1 , P2 et P3 . Chaque unité des produits P1 , P2 et


P3 doit être réalisée à l’aide de trois machines, M1 , M2 et M3 . Les disponibilités annuelles de
chaque machine et les temps opératoires, en minutes, pour la réalisation de chaque produit
sont résumés dans le tableau suivant.
Machine Disponibilité Temps requis
(en minutes) P1 P2 P3
M1 90 000 2 4 3
M2 84 000 3 6 —
M3 52 000 1 3 2
Les coûts de fabrication d’une unité de chacun des produits P1 , P2 et P3 comportent les
coûts de main d’œuvre de 0.25 $, 0.50 $ et 0.25$ et les coûts de matière première 2.00 $,
2.50 $ et 2.25$.
Le gérant de l’entreprise a approuvé un budget d’une valeur maximale de $10 000 pour
la main d’oeuvre et $80 000 pour les matières premières. Pour répondre à la demande d’un
client l’entreprise doit fabriquer au moins 4 000 unités du produit P3 . Les prix de vente par
unité sont de $10.75 pour P1 , $15.00 pour P2 et $10.00 pour P3 . On demande de formuler le
modèle linéaire qui permettrait d’obtenir le programme optimal de fabrication.

Modèle générique

Ce modèle est très semblable à notre premier modèle que nous avions détaillé. Profitons
en pour introduire un peu de terminologie.
16 MODÉLISATION

Objectif Tout d’abord, il nous faut établir quelle est la fonction objectif. Ce n’est pas
mentionné explicitement, on dit simplement “obtenir le programme optimal de fabrication”.
Doit-on réduire les coûts ? Non, car une valeur budgétaire sur les coûts a été pré-approuvée.
On doit donc maximiser les recettes de vente. Ceci dit, même si les coûts (main d’œuvre et
matière première) ont été pré-approuvés, il n’est pas certain que la meilleure solution utilise
la totalité du budget pré-approuvé. S’il reste du budget, ce sera encore mieux. On arrive
donc à une fonction objectif qui calcule les recettes et qui en déduit les coûts effectifs.
On pourrait imaginer que le décideur souhaite épuiser le budget pré-approuvé. On pour-
rait également imaginer que peu importe ce qui n’est pas dépensé du budget pré-approuvé,
seuls les revenus de vente doivent être maximisés. Nous avons opté pour l’interprétation qui
maximise les revenus de vente desquels on déduit les dépenses sans dépasser les montants
pré-approuvés.

Variables de décision Maintenant, sur quoi avons-nous le contrôle pour atteindre notre
objectif ? Ces quantités, dans notre exemple les quantités produites de chacun des produits,
sont nommées variable de décision. Les variables de décision sont au nombre de n “ 3 dans
notre exemple comportant la production de trois produits. Il est à noter que ces variables de
décision ne doivent pas être négatives, impliquant une borne de non-négativité. De plus, on
apprend qu’il faut produire au moins 4 000 items de P3 , donc les bornes inférieures sont soit
zéro, soit la quantité spécifiée.

Contraintes En plus des bornes notre situation fait état de limites sur l’utilisation de res-
sources. Quelles sont donc les ressources dont nous avons besoin pour réaliser la production ?
Il s’agit de temps sur m1 “ 3 machines, de limite de m2 “ 2 types de coûts :
1. de main d’œuvre
2. de matières premières.
Ceci totalise m “ m1 ` m2 “ 5 contraintes dans l’exemple.

AMPL
Examinons directement une formulation AMPL du modèle générique.
1 set machine ; # 3 machines dans notre exemple spécifique
2 set produit ; # 3 produits dans notre exemple spécifique
3

4 set frais ; # deux types de frais


5

6 param prix { produit } >0; # prix de vente des produits


7 param qmin { produit } >= 0; # quantité minimale à produire
8

9 param temps { machine , produit }; # temps machine / produit


1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 17

10 param tdisponible { machine }; # disponibilité des machines


11 param budget { frais }; # budget pré - approuvé
12

13 param fp { frais , produit }; # frais par produit


14

15 # variables de décisions , quantités produites


16 var qte { j in produit } >= qmin [ j ];
17

18 maximize profit_total :
19 sum { j in produit }( prix [ j ] - sum { i in frais } fp [i , j ])* qte [ j ];
20

21 subject to
22 tempsTot { i in machine }:
23 sum { j in produit } temps [i , j ] * qte [ j ] <= tdisponible [ i ];
24 depense { i in frais }:
25 sum { j in produit } fp [i , j ] * qte [ j ] <= budget [ i ];

Listing 1.7 – Modèle de production générique; fichier: AMPL/ex1.2b.mod

Il suffit maintenant de préciser les valeurs du modèle spécifique dans le fichier approprié.
1 set machine := M1 M2 M3 ;
2 set produit := P1 P2 P3 ;
3

4 set frais := MOeuvre Mpremiere ;


5

6 param temps : P1 P2 P3 :=
7 M1 2 4 3
8 M2 3 6 0
9 M3 1 3 2;
10

11 param fp : P1 P2 P3 :=
12 MOeuvre 0.25 0.50 0.25
13 Mpremiere 2.00 2.50 2.25;
14

15 param prix :=
16 P1 10.75
17 P2 15.00
18 P3 10.00;
19

20 param qmin :=
21 P1 0.0
22 P2 0.0
23 P3 4000.0;
18 MODÉLISATION

24

25 param budget :=
26 MOeuvre 10000
27 Mpremiere 80000;
28

29 param tdisponible :=
30 M1 90000
31 M2 84000
32 M3 52000;

Listing 1.8 – Données du modèle de production spéfifique; fichier: AMPL/ex1.2b.dat

On spécifie dans un fichier les commandes pour résoudre le modèle, ici le fichier ex1.2.cmd.

1 model ex1 .2 b . mod ;


2 data ex1 .2 b . dat ;
3 solve ;
4 display qte ;

Listing 1.9 – Instructions pour résoudre le modèle; fichier: AMPL/ex1.2.cmd

La solution optimale telle que calculée est la suivante.


1 PROMPT > ampl ex1 .2. cmd
2 MINOS 5.51: optimal solution found .
3 2 iterations , objective 318000
4 qte [*] :=
5 P1 28000
6 P2 0
7 P3 10666.7

Listing 1.10 – Session AMPL

Solution entière
Cette solution n’est pas complètement satisfaisante ; en effet, la quantité optimale de P3
n’est pas entière. Pour un tel modèle jouet, on peut imaginer “arrondir” la solution, par
exemple produire 10 667 de P3 . Cependant, ce n’est pas mathématiquement rigoureux. Les
techniques pour aborder cette restriction supplémentaire que la solution doit être entière
seront survolées à la section 7.3.
On peut spécifier dans le modèle AMPL que la solution doit être entière. Remarquez que
l’unique différence est l’ajout du mot clef integer à la ligne de définition de la variable qte,
ligne 16 dans le listing suivant.
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 19

1 set machine ; # 3 machines dans notre exemple spécifique


2 set produit ; # 3 produits dans notre exemple spécifique
3

4 set frais ; # deux types de frais


5

6 param prix { produit } >0; # prix de vente des produits


7 param qmin { produit } >= 0; # quantité minimale à produire
8

9 param temps { machine , produit }; # temps machine / produit


10 param tdisponible { machine }; # disponibilité des machines
11 param budget { frais }; # budget pré - approuvé
12

13 param fp { frais , produit }; # frais par produit


14

15 # variables de décisions , quantités produites


16 var qte { j in produit } integer >= qmin [ j ];
17

18 maximize profit_total :
19 sum { j in produit }( prix [ j ] - sum { i in frais } fp [i , j ])* qte [ j ];
20

21 subject to
22 tempsTot { i in machine }:
23 sum { j in produit } temps [i , j ] * qte [ j ] <= tdisponible [ i ];
24 depense { i in frais }:
25 sum { j in produit } fp [i , j ] * qte [ j ] <= budget [ i ];

Listing 1.11 – Modèle de production générique — solution entière; fichier: AM-


PL/ex1.2bInt.mod

On doit alors utiliser un logiciel de résolution capable de traiter ces nouveaux problèmes.
MINOS, le logiciel que AMPL utilise par défaut n’en est pas capable. Nous allons utiliser
“gurobi”.
1 model ex1 .2 bInt . mod ;
2 data ex1 .2 b . dat ;
3 option solver ’/ home / dussault / import / amplide . linux64 / gurobi ’;
4 solve ;
5 display qte ;

Listing 1.12 – Instructions pour résoudre le modèle avec solution entière; fichier: AM-
PL/ex1.2Int.cmd

La solution optimale telle que calculée est la suivante.


20 MODÉLISATION

1 PROMPT > ampl ex1 .2 Int . cmd


2 Gurobi 8.0.0: optimal solution ; objective 317995
3 3 simplex iterations
4 1 branch - and - cut nodes
5 qte [*] :=
6 P1 28000
7 P2 0
8 P3 10666

Listing 1.13 – Session AMPL


L’idée naïve d’arrondir à P3 = 10 667 ne fonctionnait pas, cette solution impose alors que
P1 = 27 999 et le profit en est 317 994$, un de moins que la solution optimale. Dans
d’autres situations moins simplistes, arrondir peut produire une solution qui ne satisfait
pas les contraintes.

Exercice 1.2.2 [Variantes de modèle de production] Adaptez les fichiers ex1.2b.mod et


ex1.2b.dat pour y implémenter deux variantes de fonction objectif selon les choix évoqués
au début de la présentation.
a) choix de négliger les surplus budgétaires pré-alloués ;
b) choix de contraindre les budgets à être exactement égaux aux montants pré-approuvés.
Exécutez AMPL sur les modèles ainsi modifiés et interprétez les résultats.

Inspecter le modèle AMPL


Il est parfois bien commode de pouvoir avoir une vue complète de la matrice A qui re-
groupe toutes les contraintes. Ici, nous avons des contraintes de temps et des contraintes
budgétaires qui ont été énumerées séparément. Quel est le portrait global ? Voici une marche
à suivre pour examiner tout modèle AMPL. Notre modèle est spécifié dans les fichiers
ex1.2b.mod et ex1.2b.dat.
1. Produire un fichier ex1.2b.nl.
1 ampl : model ex1 .2 b . mod ;
2 ampl : data ex1 .2 b . dat ;
3 ampl : write gex1 .2 b ;

Listing 1.14 – Session AMPL


2. Utiliser Scilab pour charger le modèle à l’aide du fichier ex1.2b.nl.
1 - - >[ asl ,x , bl , bu ,v , cl , cu ] = ampl_init ( " ex1 .2 b . nl " );

Listing 1.15 – Session Scilab


1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 21

Ceci charge le modèle dans asl et retourne


‚ x une valeur initiale pour x ; inutilisé dans notre cas ;
‚ bl et bu les bornes inférieures et supérieures des contraintes ;
‚ v une valeur initiale pour les variables duales ; nous apprendrons plus tard ce que ça
signifie, inutilisé dans notre cas ;
‚ cl et cu les bornes inférieures et supérieures des variables.
3. Utiliser Scilab pour interroger le modèle asl.
1 - - >[c , At ] = ampl_eval_sp_g ( asl , x );
2 -->A = full ( At );
3 -->A ’
4 ␣A’ =
5 2. 4. 3.
6 3. 6. 0.
7 1. 3. 2.
8 0.25 0.5 0.25
9 2. 2.5 2.25

Remarquons que tel que décrit dans la documentation, la matrice produite est la transpo-
sée de la matrice des contraintes dans une représentation de matrices creuses. full(At)
la converti dans le format usuel pour lecture par un humain.
On peut aussi voir le vecteur de coûts résultant de l’escompte des budgets pré-approuvés.
Ce vecteur est un vecteur colonne, sa transposée est la ligne.
10 -->c ’
11 c’ =
12 8.5 12. 7.5

1.2.3 Problème de transport


Une entreprise dispose de deux entrepôts A1 et A2 pour un produit destiné à satisfaire la
demande de trois clients B1 , B2 et B3 . La quantité du produit, disponible à chaque entrepôt
et les demandes des clients sont spécifiés dans le tableau suivant, qui contient également le
coût de transporter une unité du produit d’un entrepôt à chaque client.

B1 B2 B3 disponibilité
A1 1 4 9 200
A2 6 8 4 500
demande 200 400 100 700
22 MODÉLISATION

On désire déterminer quelle quantité chaque client reçoit de chaque entrepôt pour minimiser
le coût total de transport tout en satisfaisant les demandes. Remarquons que ce modèle
simpliste équilibre la quantité totale entreposée avec la demande totale des clients.

Modèle générique
Cette situation est tellement répandue que l’on peut trouver une solution AMPL parmis
les exemples de la documentation de AMPL.
On nomme habituellement origine les points de départ du transport, les entrepôts dans
notre exemple et destination les points d’arrivées, les clients de notre exemple. Il est avan-
tageux d’utiliser deux indices pour les variables de décision, xi,j qui représente la quantité
transportée de l’origine i vers la destination j. De même les coûts ci,j comportent deux in-
dices. On considère n1 origines et n2 destinations. On ajoute un vecteur de demande d P Rn1
et un vecteur de disponibilité b P Rn2 et le modèle complet s’écrit comme suit.
n1 ÿ
ÿ n2
min
n ˆn
cx “ ci,j xi,j (1.15)
xPR 1 2
i“1 j“1
n1
ÿ
sujet à xi,j “ dj , @j P t1 : n2 u (1.16)
i“1
ÿn2
xi,j “ bi , @i P t1 : n1 u (1.17)
j“1
x ě 0. (1.18)

AMPL
Ce modèle classique est un des exemple de AMPL.
1 set ORIG ; # origins
2 set DEST ; # destinations
3

4 param supply { ORIG } >= 0; # amounts available at origins


5 param demand { DEST } >= 0; # amounts required at destinations
6

7 check : sum { i in ORIG } supply [ i ] = sum { j in DEST } demand [ j ];


8

9 param cost { ORIG , DEST } >= 0; # shipment costs per unit


10 var Trans { ORIG , DEST } >= 0; # units to be shipped
11

12 minimize total_cost :
13 sum { i in ORIG , j in DEST } cost [i , j ] * Trans [i , j ];
14
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 23

15 subject to Supply { i in ORIG }:


16 sum { j in DEST } Trans [i , j ] = supply [ i ];
17

18 subject to Demand { j in DEST }:


19 sum { i in ORIG } Trans [i , j ] = demand [ j ];

Listing 1.16 – Modèle de transport générique; fichier: AMPL/transp.mod

Pour notre situation, il suffit de spécifier les données. Remarquons que les variables du modèle
sont nommées Trans plutôt que x, x Ø Trans.
1

2 param : ORIG : supply := # defines set " ORIG " and param " supply "
3 A1 200
4 A2 500;
5

6 param : DEST : demand := # defines " DEST " and " demand "
7 B1 200
8 B2 400
9 B3 100 ;
10

11 param cost :
12 B1 B2 B3 :=
13 A1 1 4 9
14 A2 6 8 4 ;

Listing 1.17 – Données du modèle de trsansport générique; fichier: AMPL/transpH.dat

On obtient la solution de la manière habituelle.


1 ampl : model transp . mod ;
2 ampl : data transpH . dat ;
3 ampl : solve ;
4 MINOS 5.51: optimal solution found .
5 3 iterations , objective 3800
6 ampl : display Trans ;
7 Trans :=
8 A1 B1 200
9 A1 B2 0
10 A1 B3 0
11 A2 B1 -2.77556 e -14
12 A2 B2 400
13 A2 B3 100

Listing 1.18 – Session AMPL


24 MODÉLISATION

1.2.4 Problème d’entreposage


On considère entreposer un produit pour vente future. Notre situation s’échelonne sur
trois périodes successives. À chaque période, on peut acheter et/ou vendre et le prix unitaire
de vente est égal au prix d’achat tel que spécifié dans le tableau suivant. De plus, l’entreposage
coûte 1.00$ par période et la capacité de l’entrepôt est de 60 unités. L’idée est donc d’acheter
aux périodes de faible prix pour revendre à celles où les prix sont élevés.

Période (t) Prix unitaire ($)


1 4
2 9
3 6

On a 30 unités au départ. On veut déterminer une stratégie d’achat/vente pour maximiser


les profits totaux sur les trois périodes.

Modèle générique
On peut formuler directement le modèle pour un nombre de périodes arbitraire, disons
n. Quelles sont nos variables de décision ? Pour chaque période i P t1 : nu, les quantités
à entreposer ei , à acheter ai et à vendre vi . On a également une quantité initiale imposée,
nommons la e0 . Nous sommes en présence d’un modèle dynamique qui décrit ei “ ei´1 `ai ´vi ,
en mots, la quantité entreposée à la période i est celle entreposée à la période précédente
à laquelle on ajoute la quantité achetée à la période courante et de laquelle on retranche
la quantité vendue à la période courante. Par exemple, à la première période, la quantité
entreposée e1 est cette quantité imposée e0 “ 30 moins ce qu’on a vendu v1 plus ce qu’on a
acheté a1 .
Qu’est-ce que ces quantités changent à notre profit ? À la période i, on vend vi avec profit
ci mais on achète ai au coût ci , pour un bénéfice net ci pvi ´ ai q. Également, on doit payer
ei d’entreposage. Généralisons et nommons les frais d’entreposage fi , dans notre cas, fi “ 1.
Nous pouvons donc formuler le modèle complet. Les coût d’entreposage à la période “0” ne
font pas partie du modèle car nous n’avons aucune décision à prendre à leur sujet.
n
ÿ
max cpv ´ aq ´ f e “ pci pvi ´ ai q ´ fi ei q (1.19)
a,v,ePRn
i“1
sujet à ei “ ei´1 ` ai ´ vi , @i P t1 : nu (1.20)
e ď 60, (1.21)
e, a, v ě 0. (1.22)

Une simplification Remarquons que les variables a (achats) et v (ventes) sont toujours
utilisées ensemble selon la formule a ´ v. On pourrait définir une variable t (transaction)
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 25

telle que ti représente la quantité transigée à la période i, si positive, il s’agit d’une vente et
autrement, d’un achat. Donc, dans les faits, ti “ vi ´ ai et on peut reformuler notre modèle
comme suit, la variable t est libre, c’est-à-dire d’est pas contrainte à être positive.
n
ÿ
maxn ct ´ f e “ pci ti ´ fi ei q (1.23)
t,ePR
i“1
sujet à ei “ ei´1 ` ti , @i P t1 : nu (1.24)
e ď 60, (1.25)
e ě 0. (1.26)

AMPL

1 param N >0;
2

3 set periodes := 0.. N ;


4

5 param Cap > 0;


6

7 param c { i in periodes : i >0};


8 param f { i in periodes : i >0};
9

10 var e { periodes } >= 0 , <= Cap ;


11

12 var t { i in periodes : i >0} ;


13

14 maximize profit : sum { i in periodes : i >0} ( c [ i ]* t [ i ] - f [ i ]* e [ i ]);


15

16 subject to equilibre { i in periodes : i >0}: e [ i ] = e [i -1] - t [ i ];


17 initiale : e [0] = 30;

Listing 1.19 – Modèle d’entreposage générique; fichier: AMPL/ex1.4.mod

Pour notre situation, il suffit de spécifier les données. Remarquons que la capacité de l’en-
trepôt est représentée par le paramètre Cap.
1 param N := 3;
2

3 param Cap := 60;


4

5 param c := 1 4
6 2 9
7 3 6;
26 MODÉLISATION

9 param f := 1 1
10 2 1
11 3 1;

Listing 1.20 – Données du modèle d’entrepôt générique; fichier: AMPL/ex1.4.dat

On obtient la solution de la manière habituelle.

1.2.5 Problème du barman


Situation à modéliser
Adapté plutôt librement de 2 . Le contexte est la préparation d’un 5 à 7 spécial pour
la faculté. En plus des boissons santé et du choix habituel de bières artisanales, un des
organisateurs voudrait offrir des cocktails. Comme il est hors de question de les préparer sur
place selon la demande, il voudrait préparer à l’avance une certaine quantité de mélanges
pour maximiser le montant de ses ventes de la soirée. Il se dit que tout devrait se vendre,
quand il n’y aura plus d’un mélange donné, les participants en choisiront un autre. Pour
cette première expérience avec de tels mélanges, il dispose de
‚ 1 litre de whisky écossais (42$/l)
‚ 1 litre de whisky américain (37$/l)
‚ 1 litre de vermouth (23$)
‚ 2 litres de Gin (33$/l)
Pour cette première expérience, on se limite aux mélanges suivants. On ne mentionne que les
alcools dans les ingrédients, mais d’autres ingrédients secrets entrent dans le mélange mais
coûtent presque rien.

Mélange ingrédients prix


Whiskey sour 30 ml whisky 7$
Manhattan 30 ml whisky 10$
15 ml vermouth
Martini 30 ml gin 10$
15 ml vermouth
Spécial maison 30 ml gin 14$
30 ml whisky

Quelle quantité de ces mélanges maximisera le montant des ventes de la soirée ?


2. http ://web.mit.edu/15.053/www/AMP.htm, exercice 5 du chapitre 2
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 27

Modèle générique en AMPL


Exprimons le modèle générique directement en utilisant AMPL. Nous avons à notre
disposition un certain nombre d’alcools et un certain nombre de recettes. On considère qu’une
recette vaut une unité, donc le profit total sera le prix d’une recette multiplié par le nombre
de recettes vendues. Puisqu’on suppose que toutes les recettes préparées à l’avance seront
vendues, le profit sera la somme des prix multiplié par la quantité des recettes préparées.
Les contraintes limitent la quantité utilisable de chacun des alcools, notre réserve. La
somme des quantités d’un alcool donné utilisé pour toutes les recettes ne doit pas dépasser
notre réserve de cet alcool.
Puisqu’on présume que tout sera vendu, le coût d’un litre d’alcool n’est pas utile pour
notre modèle.
Donc, notre modèle générique est le suivant.
1 set alcool ; # Nos choix d ’ alcools
2 set recette ; # Nos recettes à produire
3

4 param qdisponible { alcool } >0 ; # Notre réserve d ’ alcools


5 param prix { recette } >0; # prix de vente des produits
6

7 param ingredient { recette , alcool } ;


8

9 # variables de décisions , quantités produites


10 var qte { j in recette } ;
11

12 maximize profit_total :
13 sum { j in recette } prix [ j ]* qte [ j ];
14

15 subject to
16 Réserve { i in alcool }:
17 sum { j in recette } ingredient [j , i ] * qte [ j ] <= qdisponible [ i ];

Listing 1.21 – Modèle de barman générique; fichier: AMPL/barman1.mod

Maintenant, observons que les recettes ne spécifient pas la sorte de whisky, donc on peut
considérer un seul alcool de type whisky W dont on a deux litres, un litre de Ve et deux litres
de Gi. Les unités du modèle sont des millilitres et notre instance donne les données suivantes.
1 set alcool := W Ve Gi ;
2 set recette := WS Man Mar Sp ;
3

4 param ingredient : W Ve Gi :=
5 WS 30 0 0
6 Man 30 15 0
28 MODÉLISATION

7 Mar 0 15 30
8 Sp 30 0 30 ;
9

10 param prix :=
11 WS 7
12 Man 10
13 Mar 10
14 Sp 14;
15

16 param qdisponible :=
17 W 2000
18 Ve 1000
19 Gi 2000;

Listing 1.22 – Données de barman spécifiques; fichier: AMPL/barman1.dat

Nous connaissons maintenant deux logiciels, Minos et Gurobi pour résoudre notre modèle.
Voyons voir ce que ça donne.
1 MINOS 5.51: optimal solution found .
2 3 iterations , objective 1133.333333
3 qte [*] :=
4 Man 33.3333
5 Mar 33.3333
6 Sp 33.3333
7 WS 0

Listing 1.23 – Session AMPL


Tiens, il faudrait bien spécifier que les quantités doivent être des entiers, on ne pourra pas
vendre une fraction de mix. Avant, voyons voir ce que Gurobi nous trouve
1 Gurobi 8.0.0: optimal solution ; objective 1133.333333
2 qte [*] :=
3 Man 0
4 Mar 66.6667
5 Sp 0
6 WS 66.6667

Listing 1.24 – Session AMPL

Ah, une autre solution, toujours fractionnaire, mais avec le même profit total. De plus, on
observe dans les deux solutions que au moins une recette n’est pas du tout produite. Ça n’a
pas de sens, on ne peut pas dire qu’il ne reste plus de Manhattan dès le début de la soirée !
Imposons donc que les solutions soient des entiers, et qu’au moins qmin = 10 de chacune
des recettes soit produite. Cette fois, nous devons utiliser Gurobi.
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 29

Exercice 1.2.3 [Solution entière avec seuil minimum] Modifiez le code barman1.mod et
barman1.dat pour incorporer les changements de spécifier des solutions entières avec au
moins qmin de chacune des recettes

1 Gurobi 8.0.0: optimal solution ; objective 1122


2 qte [*] :=
3 Man 10
4 Mar 56
5 Sp 10
6 WS 46

Listing 1.25 – Session AMPL

1.2.6 Situation plus complexe


Une famille possède une ferme de 100 acres de terre et $30 000 pour investir. Les membres
de la famille peuvent ensemble fournir 3 500 homme–heures de travail pendant l’hiver et 4 000
homme–heures pendant l’été. Les homme–heures de travail non utilisées seront vendus aux
différentes fermes de la région au taux de $4/heure durant l’hiver et $4,50/heure, durant l’été.
Les revenus de la ferme proviennent de 3 types de culture et de 2 types d’élevage : des vaches
à lait et des poules de production d’oeufs. La culture ne demande aucun investissement, alors
que chaque vache demande 1 investissement de $700 et chaque poule de $8. On estime que
chaque vache requiert 1.5 acre de terrain, et 100 homme–heures de travail pendant l’hiver
et 50 homme–heures durant l’été et rapporte un revenu net de $800, alors que chaque poule
requiert 5 homme–heures durant l’hiver, 2 homme–heures durant l’été et rapporte un revenu
net de 5$. Le poulailler possède une capacité de 3 000 poules, et la taille de l’étable limite le
nombre de vaches à 32. On a aussi estimé la main d’oeuvre et le revenu par acre de culture
comme suit :
avoine maïs fève-soya
homme–heures hiver 10 35 15
homme–heures été 40 75 55
revenu annuel net ($) 250 550 375
On veut déterminer la surface de terre consacrée à chaque type de culture, la taille du
bétail et le nombre de poules maximisant le revenu annuel net de la famille.

Modèle spécifique
1. Variables de décision
30 MODÉLISATION

x1 : nombre d’acres consacrés à la culture de l’avoine,


x2 : nombre d’acres consacrés à la culture du mais,
x3 : nombre d’acres consacrés à la culture des fèves–soya,
x4 : nombre de vaches constituant le troupeau,
x5 : nombre de poules,
y1 : nombre d’homme–heures vendus en hiver,
y2 : nombre d’homme–heures vendus en été.
Remarque 1.2.1 y1 et y2 sont des variables supplémentaires qui rendent la modélisa-
tion plus facile, mais qui ne sont pas nécessaires pour la construction du modèle.

2. Contraintes
(a) non-négativité des variables :
x, y ě 0;
(b) budget :
700x4 ` 8x5 ď 30000;
(c) disponibilité des homme–heures pour l’hiver :
10x1 ` 35x2 ` 15x3 ` 100x4 ` 5x5 ď 3500;

(d) disponibilité des homme–heures pour l’été :


40x1 ` 75x2 ` 55x3 ` 50x4 ` 2x5 ď 4000;

(e) superficie totale de la ferme :


x1 ` x2 ` x3 ` 1.5x4 ď 100;

(f) taille de l’étable :


x4 ď 32;
(g) capacité du poulailler :
x5 ď 3000;
(h) relation entre les variables supplémentaires et les variables de décision
y1 “ 3500 ´ 10x1 ´ 35x2 ´ 15x3 ´ 100x4 ´ 5x5 (1.27)
y2 “ 4000 ´ 40x1 ´ 75x2 ´ 55x3 ´ 50x4 ´ 2x5 (1.28)

3. Fonction objectif
Z “ 250x1 ` 550x2 ` 375x3 ` 800x4 ` 5x5 ` 4y1 ` 4.5y2 .
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 31

Exercice 1.2.4 [Modèle générique et solution] Proposez un modèle générique du pro-


blème, codez-le dans Ampl (fichier “.mod”) ainsi qu’un fichier de données représentant le
modèle spécifique, puis obtenez-en la solution.

Exercice 1.2.5 [Production de café] Une compagnie dispose de 1000 kg de café Africain,
2000 kg de café Brésilien et 500 kg de café Colombien. Elle met en sachet (de 1 kg) deux
sortes de café : la 1ère sorte est un mélange à parties égales de café africain et brésilien et
se vend 16$ le kg. La 2e sorte est un mélange de trois parties de café brésilien pour une
partie de café colombien et se vend 19$ le kg.
Quelle quantité de chaque sorte de café la compagnie devrait-elle ensacher pour maximiser
son profit ?

Exercice 1.2.6 [Fabrication et transport] Une entreprise a deux usines U1 et U2 et trois


entrepôts E1 , E2 et E3 . La demande des entrepôts E1 et E2 est de 25 et 30 unités. E3 exige
au moins 12 unités dont au moins 5 qui sont fabriquées à l’usine U2 .
Des informations supplémentaires sont fournies par les tableaux suivants.

coût unitaire de
Usine Coût unitaire Capacité
transport E1 E2 E3
U1 17$ 42 unités
U1 1 1 2
U2 15$ 37 unités
U2 1 2 4

On veut déterminer un programme de production et de transport des usines aux entrepôts


qui minimiserait la somme des coûts de fabrication et de transport.

Exercice 1.2.7 [Mélanges de noix] La compagnie Pinotte dispose de 550 kg d’arachide,


150 kg de noix d’acajou, 90 kg de noisettes et 170 kg de noix de pacanes. La mise sur
marché est faite dans des boîtes de 500 g. Le profit net pour chacun des produits de
32 MODÉLISATION

l’entreprise est :

Arachides de luxe : $0.26 la boîte. Ne contient que des arachides.


Variété "Pinotte" : Contient 50% d’arachides
20% de noix d’acajou
15% de noisettes
15% de noix de pacanes.
Profit net : $0.38 la boîte.
Acajou de luxe : $0.51 la boîte. Ne contient que des noix d’acajou.
Grand luxe : Contient 40% de noix d’acajou
25% de noisettes
35% de noix de pacanes
Profit net : $0.54 la boîte.

L’entreprise désire connaître le volume de vente qui maximiserait son profit.

Exercice 1.2.8 [Constructeur d’automobile] Un constructeur d’automobiles a décroché


un contrat pour exporter outre-mer 400 voitures d’un modèle V1 et 500 d’un modèle V2 .
Pour livrer ses voitures, le constructeur peut utiliser trois bateaux B1 , B2 et B3 qui arrivent
respectivement à destination au début du mois de janvier (B1 ), mi-février (B2 ) et fin mars
(B3 ).
Une voiture du modèle V1 occupe un volume de 12 m3 et une du modèle V2 occupe 15 m3 .
B1 ne peut transporter que le modèle V1 au coût de 450 $ l’unité. De plus, il a une capacité
maximale de 200 voitures. B2 et B3 peuvent transporter les deux modèles aux coûts de
35 $ et 40 $ le m3 respectivement. Leurs disponibilités respectives sont de 4 500 m3 et
6 000 m3 .
Le contrat stipule que le constructeur doit livrer au plus tard à la mi-février 250 voitures
du modèle V1 et 200 du modèle V2 , le reste devant être livré fin mars.
a) Donnez le modèle particulier de ce problème.
b) Donnez un modèle général pour cette mise en situation.

Exercice 1.2.9 [Problème des policiers] La municipalité a estimé le nombre de policiers


requis par tranches de 4 heures dans une journée :
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 33

Période Nombre de policiers


0h — 4h 24
4h — 8h 56
8h — 12h 90
12h — 16h 116
16h — 20h 40
20h — 24h 60

Un policier prend son service une fois par jour, et travaille 8 heures d’affilée. Les heures
de prise de service sont 0h, 4h, 8h, 12h, 16h et 20h.
a) Formulez le problème de déterminer le nombre de policiers minimal que la municipalité
doit embaucher pour satisfaire à ses besoins.
b) Supposons maintenant que tout policier peut se voir exiger d’effectuer, immédiatement
après ses 8 heures normales, un bloc de 4 heures de temps supplémentaire à temps
et demie. Formulez cette variante avec objectif de minimiser les salaires versés par la
municipalité.
c) Supposons maintenant que nous traitons la situation extrêmement simplifiée suivante
de planification pour une semaine : chaque policier prend son service 7 jours sur 7 à la
même heure, mais une contrainte oblige un policier à faire du temps supplémentaire un
jour sur trois au maximum. Formulez cette variante, toujours en minimisant les salaires
versés. On suppose que les besoins par tranche d’heure sont les mêmes à chaque jour de
la semaine.

Exercice 1.2.10 [Excédent de production] Une entreprise a un excédent de capacité de


production qu’elle veut utiliser pour fabriquer trois types de produits que l’on appellera
P1 , P2 et P3 . Pour fabriquer ces produits, on doit leur faire subir, dans un ordre indifférent,
des opérations sur les trois (3) machines M1 , M2 et M3 . Le temps disponible (en heures–
machine par semaine) et le nombre d’heures–machine requis pour chaque unité des trois
produits est donné dans le tableau suivants :
Type de machine Temps disponible Temps requis
(en minutes) P 1 P2 P3
M1 200 8 2 3
M2 100 4 3 1
M3 50 2 1 1
D’après le gérant des ventes, le potentiel des ventes pour les produits P1 et P2 excède la
production maximale de production, mais il n’est que de 20 unités par semaine pour le
34 MODÉLISATION

produit P3 . Le profit unitaire est de $20, $6 et $8 pour les produits P1 , P2 et P3 . Quel


niveau de production maximiserait le profit ?

Exercice 1.2.11 [Production encore] Une entreprise fabrique trois produits : P1 , P2 et


P3 . Pour fabriquer chacun de ces produits, elle doit utiliser deux centres de fabrication ; la
main d’oeuvre requise, en heures par unité, est la suivante :

Centre I Centre II
P1 3 2
P2 4 3
P3 2 5

Les trois produits sont fabriqués avec les mêmes matières premières mais la quantité requise
pour chaque produit est différente :

Quantité en unités
P1 8
P2 10
P3 12

Les matières premières coûtent $2 l’unité ; la main d’oeuvre est rémunérée au taux de $4
l’heure. De plus, chaque produit doit assumer une partie des frais d’administration ; chaque
unité (d’un produit) exige un nombre fixe d’heures d’administration égales à la somme du
nombre d’heures exigées par la main–d’oeuvre pour la fabriquer. Les coûts d’administration
sont évalués à $1 l’heure pour chaque produit. Les prix de vente sont de $60 l’unité pour P1 ,
$70 l’unité pour P2 et $75 l’unité pour P3 . Les disponibilités concernant la main d’oeuvre
sont de 2 500 heures pour le Centre I et de 3 000 heures pour le Centre II. De plus, la
quantité des matières premières est limitée à 2 000 unités et le nombre d’heures allouées à
l’administration ne doit pas excéder 5 000 heures.
On demande de formuler le programme linéaire qui permettrait d’obtenir le programme
de fabrication qui maximise le profit total.

Exercice 1.2.12 [Problème des skis] Une entreprise décide de se lancer dans la fabri-
cation de skis. D’après l’analyse du marché, plusieurs modèles de skis sont actuellement
en demande, entre autres, des skis de ran–donnée (plaisir et compétition ) et des skis al-
pins (plaisir et compétition ). La part du marché que l’entreprise pense atteindre serait
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 35

d’environ 15 000 paires de skis par année avec la répartition maximale suivante :

Modèles Paires
Ml : randonnée–plaisir 6 000
M2 : randonnée–compétition 2 500
M3 : alpin–plaisir 4 500
M4 : alpin–compétition 2 000

La fabrication de ces skis comporte principalement les phases suivantes : menuiserie, pein-
ture et pose de l’attelage. Le tableau suivant indique les temps requis, en minutes, par
paire, pour ces différentes phases :

Modèles Menuiserie Peinture Attelage


M1 70 20 30
M2 85 25 45
M3 75 20 40
M4 90 30 50

Toutes les opérations sont, en grande partie, manuelles. L’entreprise a à sa disposition :


8 employés pour la menuiserie, 3 employés pour la peinture et 4 employés pour la pose
de l’attelage. Les employés travaillent 8 heures par jour, on considère 260 jours ouvrables.
Les employés de la menuiserie sont rémunérés au taux horaire de 6,00$, Les employés de
la peinture sont rémunérés au taux horaire de 5,40$ et ceux utilisés à la pose de l’attelage
sont " rémunérés au taux horaire de 4,20$. Les autres coûts sont :

Modèles Attelage/paire Bois


M1 15 $ 5$
M2 23 $ 9$
M3 35 $ 7$
M4 48 $ 10 $

Les prix de vente, par paire sont : 60 $ pour M1 , 75 $ pour M2 , 285 $ pour M3 et 100 $ pour
M4 . L’entreprise désire connaître les quantités de chaque modèle qu’elle doit fabriquer de
façon à maximiser ses bénéfices. Formuler le modèle linéaire associé à ce problème.

Exercice 1.2.13 [Aide humanitaire] L’Agence Internationale, F.A.O. (Food and Agri-
culture Organization) a décidé d’envoyer des experts en agriculture dans deux pays en voie
de développement. Le besoin le plus urgent de ces deux pays étant l’accroissement de leur
production alimentaire qui peut se faire en améliorant les techniques agricoles utilisées.
36 MODÉLISATION

Aussi, le rôle des experts consiste à développer un certains nombre de projets pilotes 0
de nouvelles techniques sont mises en pratique. Cependant, le nombre de tels projets est
déterminé par les disponibilités de trois ressources : l’équipement, les experts, l’enveloppe
budgétaire. La question qui se pose est la suivante : Combien de projets peut-on réaliser
dans chacun des deux pays de façon à utiliser le mieux possible les ressources disponibles.
On a estimé qu’un projet réalisé dans le pays 1 permettra d’augmenter suffisamment la
production pour nourrir 2 000 personnes additionnelles. De même un projet réalisé dans
le pays 2 permettra de nourrir 3 000 personnes additionnelles. Seulement, les ressources
nécessaires pour chaque projet différent d’un pays à l’autre. Les données pour chaque pays
sont résumées dans le tableau suivant :
quantité nécessaire par projet
Ressources pays 1 pays 2 disponibilité totale
Équipement 0 5 20
Experts 1 2 10
Budget $60 000 $20 000 $300 000

étant donné que la situation est dramatique pour les deux pays, la FAO a décidé d’ac-
croître la production le plus possible dans les deux pays. Ainsi, elle a opté pour maximiser
l’accroissement minimum de la production alimentaire dans les deux pays.
Formuler le problème comme un modèle d’optimisation linéaire.

Exercice 1.2.14 [Diète animale] Une société produit de la nourriture pour chiens et
chats. La demande hebdomadaire est d’au moins 600 livres pour les chiens et 250 livres pour
les chats. La nourriture produite pour chaque type d’animal doit contenir un pourcentage
minimal de quatre éléments nutritionnels A, B, C et D, comme l’indique le tableau ci-
dessous.
% minimal d’élément nutritionnel
A B C D
nourriture pour chiens 10 5 8 8
nourriture pour chats 8 16 5 12
La société dispose de six sortes de viande qu’elle peut combiner pour produire les deux types
de nourriture. La disponibilité, le coût et le pourcentage de chaque élément nutritionnel
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 37

contenu dans chaque sorte de viande sont résumés dans le tableau suivant :

Sorte de viande disponibilité coût/livre % d’élément nutritionnel


(livre/semaine) A B C D
1 illimitée 33 10 0 5 8
2 300 29 8 20 6 10
3 500 30 15 14 8 10
4 400 28 6 12 10 15
5 illimitée 37 0 18 13 20
6 200 23 12 10 4 6

La société désire connaitre la quantité de chaque sorte de viande qui compose chaque type
de nourriture (nourriture pour chien et nourriture pour chat) afin de minimiser ses coûts.
Modéliser le problème (on prendra soin de bien définir les variables, la fonction économique
et de donner la signification de chaque contrainte).

Exercice 1.2.15 [Excédent de production] Une firme a trois filiales ayant chacune un
excédent de capacité de production. La direction a décidé d’utiliser une partie de cet excé-
dent à la fabrication d’un nouveau produit de la façon suivante. Le produit peut être fait
en trois formats : grand, moyen et petit, qui donne un profit net unitaire de 12, 10 et 9$
respectivement.
Les filiales 1, 2 et 3 disposent d’un excédent d’heure–hommes et d’heure–machines pour
produire respectivement 500, 600 et 300 unités par jour de ce produit sans égard au format
ou à la combinaison de formats impliqués. Cependant l’espace d’entreposage dis- ponible
impose également une certaine limite sur le taux de production ; les filiales 1, 2 et 3 ayant 9
000, 8 000 et 3 500 pieds carrés d’espace d’entreposage disponible pour ce produit. Chaque
unité du grand format, du moyen format et du petit format, produite par jour, nécessite
20, 15 et 12 pieds carrés respectivement. La prévision des ventes indique que 600, 800 et
500 unités du grand, moyen et petit formats peuvent être vendues par jours.
Afin de maintenir une charge de travail uniforme entre les filiales et pour conserver une cer-
taine flexibilité, la direction a décidé que toute production additionnelle assignée à chaque
filiale doit utiliser le même poucentage d’excédent d’heure–hommes et d’heure–machines.
La direction désire connaître le nombre de chacun des formats devant être produit par
chaque filiale de façon à maximiser les profits.
Proposez à la direction un modèle qui pourrait lui permettre d’atteindre ses objectifs.
38 MODÉLISATION

Exercice 1.2.16 [Problème des hôtesses de l’air] M. Duvol est en charge de la formation
des hôtesses de l’air de la compagnie aérienne Air Voyage. La compagnie estime que
ses besoins en heures de vol d’hôtesses de l’air pour les a cinq prochains mois sont les
suivants : 8 000 heures en décembre, 9 000 en janvier, 8 000 en février, 10 050 en mars et
9 000 en avril. Au début du mois de décembre, soixante hôtesses de l’air sont employées
par Air Voyage. Chaque hôtesse de l’air peut travailler jusqu’à 150 heures par mois. Si
les besoins pendant un mois donné sont inférieurs au nombre maximum d’heures de vol
disponibles, chaque employée travaille moins d’heures pendant le mois et personne n’est
mis à pieds. L’expérience de la compagnie montre qu’en général a la fin du mois 10% des
hôtesses quittent Air Voyage. La compagnie peut engager du personnel, mais une nouvelle
employée doit suivre un stage de formation d’un mois avant qu’elle ne puisse devenir hô-
tesse de l’air. 80% des stagiaires réussissent la période de formation et deviennent hôtesses.

M. Duvol doit décider du nombre de stagiaires à engager au début de chaque mois


pendant la période considérée. La rémunération mensuelle d’une hôtesse est de $1 000,
celle d’une stagiaire de $600. La compagnie cherche, bien entendu, à effectuer la gestion
de son personnel de façon aussi économique que possible.
Proposez à M. Duvol un modèle qui pourrait lui être utile.

Exercice 1.2.17 [Problème des radios] Une entreprise d’électronique s’est engagée à faire
la livraison de 20 000 radios au cours des 4 prochaines semaines. Le client paiera
‚ 20$ chaque radio livrée à la fin de la première semaine,
‚ 18$ chaque radio livrée à la fin de la deuxième semaine,
‚ 16$ chaque radio livrée à la fin de la troisième semaine,
‚ 14$ chaque radio livrée à la fin de la quatrième semaine.
L’entreprise ne dispose que de 40 travailleurs, chacun capable de produire 50 radios par
semaine. Elle est donc dans l’obligation d’engager et d’entraîner des sumuméraires. N’im-
porte quel travailleur expérimenté (régulier ou sumuméraire) peut participer a la formation
de nouveaux sumuméraires. Après une semaine de formation chaque stagiaire devient soit
travailleur à la chaîne de production, soit entraîneur de nouveaux stagiaires. Un travailleur–
entraîneur peut assumer la formation de 3 stagiaires à la fois.
Puisque l’entreprise n’a qu’un contrat, il se peut que des travailleurs deviennent non pro-
ductifs une fois la livraison complétée. Tous les employés, réguliers ou surnuméraires,
doivent rester à l’emploi de la compagnie jusqu’à la fin de la quatrième semaine. Le salaire
hebdomadaire d’un travailleur, en production ou comme entraîneur, est 200$. Le salaire
hebdomadaire d’un stagiaire et de 100$. Les coûts de production, excluant les salaires,
1.2. MODÈLES VARIÉS DE RECHERCHE OPÉRATIONNELLE 39

sont de 5$ par radio.


Formuler ce problème comme un programme linéaire.

Exercice 1.2.18 [Problème de découpe] Un problème survenant fréquemment dans l’in-


dustrie du papier est celui des procédés découpage des rouleaux de papier (ce problème
peut se présenter dans d’autres secteurs de façon plus compliquée : par exemple le coupage
des feuilles de tôle). Le problème se présente comme suit : une machine produit des rou-
leaux de papier de 630 cm de longueur, et on veut couper ces rouleaux de façon à obtenir
trois différentes sortes de rouleau : 30 rouleaux de 186 cm de long, 60 rouleaux de 165 cm
de long, 60 rouleaux de 120 cm de long.
a) Déterminer tous les procédés de coupage ainsi que leur déchet (un procédé de » coupage
peut être de couper un rouleau de 630 cm en 3 rouleaux de 186 cm et avoir un déchet
de 72 cm).
b) Formuler le problème de façon à minimiser les pertes si on considère que les rouleaux de
186 cm, 165 cm et 120 cm coupés en surplus peuvent être réutilisés.
c) Que devient la fonction économique si l’on considère que les rouleaux coupés en surplus
ne peuvent être réutilisés.

Exercice 1.2.19 [Écologie] Le ministère de l’environnement veux restreindre les quanti-


tés de polluants qu’une industrie ajoute à l’eau de la rivière où elle opère. La concentration
de phénol et d’azote dans l’eau de la rivière devront désormais être limités à P et N Kg
par ML (millions de litres) par jour. La rivière a un débit de M ML par jour. La compagnie
détourne une portion du courant de la rivière, et dans son processus, ajoute des polluants,
et retourne l’eau (usée) à la rivière. La norme gouvernementale concerne la concentration
de polluant dans la rivière, dont une partie de l’eau est usée par l’industrie et une partie
maintenue propre.
L’industrie a 4 choix technologiques pour décontaminer l’eau usée avant de la retourner
à la rivière. Les caractéristiques de chacun des traitements sont résumées dans le tableau
suivant.
(Kg de polluant)/ML après traitement
Traitement 1 2 3 4
Phénol P1 P2 P3 P4
Azote N1 N2 N3 N4
Coût/ML c1 c2 c3 c4
Sous les hypothèses que
40 MODÉLISATION

‚ l’eau arrive sans polluant,


‚ l’ajout de polluants par l’industrie ne modifie pas le débit d’eau de la rivière,
‚ l’industrie a besoin d’au moins K ML par jour pour sa production,
a) construisez un problème linéaire pour décider de la quantité d’eau à traiter selon chacun
des traitements afin d’en minimiser les coûts. Plus spécifiquement, portez une attention
particulière aux unités des différents éléments du modèle, et
i) présentez les variables de décision du modèle ;
ii) expliquez les contraintes ;
iii) formulez une fonction objectif (ça, ça devrait être facile).
b) Expliquez comment modifier votre modèle si les restrictions gouvernementales
concernent la concentration de polluant réinjectée dans la rivière plutôt que la concen-
tration dans la rivière.

1.3 Modèles déguisés


Voyons dès maintenant quelques astuces pour convertir un modèle qui n’a pas du tout
l’air d’un modèle linéaire sous la forme d’optimisation linéaire tels que nous venons d’en
examiner plusieurs exemples.

1.3.1 Min-max
Un cas typique de minimiser une fonction qui n’est pas linéaire est de minimiser le
maximum de deux fonctions affines. Par exemple, f pxq “ maxp1 ´ 2x, x ` 1q. Il n’est pas
difficile de se convaincre que le minimum de f pxq est atteint en x “ 0 et la valeur f p0q “ 1.
Or, 1 ´ 2x et x ` 1 sont des fonctions affines, c’est-à-dire des fonctions linéaires plus un terme
constant. On peut transformer le problème min f pxq sous une forme d’optimisation linéaire.
En effet, il suffit d’utiliser une variable de plus, disons u et de restreindre u à à la fois plus
grande ou égale aux deux fonctions affines et ensuite de minimiser u. On se retrouve donc
avec le problème d’optimisation linéaire suivant qui comporte deux variables.

min u (1.29)
u,x
sujet à u ě maxp1 ´ 2x, x ` 1q. (1.30)

On ne semble pas avoir gagné grand chose puisque le “max” est encore là. Maintenant, une
contrainte plus grande ou égale au max de quantités peut se récrire comme plus grande ou
1.3. MODÈLES DÉGUISÉS 41

égale à chacune des quantités comme suit.


# +
sujet à u ě 1 ´ 2x
min maxp1 ´ 2x, x ` 1q ðñ min u
x u,x uě x`1

Si l’on retrouve un minimum de quantités dans les contraintes, il est possible de les trans-
former en contraintes linéaires
# +
u ď a1
u ď minpa1 , a2 q ðñ (1.31)
u ď a2 .

Les signes des inégalités sont très importants, on peut transformer un


‚ plus petit ou égal au min de quantités
‚ plus grand ou égal au max de quantités
en contraintes linéaires, mais pas un plus petit ou égal au max de quantités ni plus grand
ou égal au min de quantités.
On peut généraliser pas mal cette astuce de transformer une fonction “max”. En par-
ticulier, si f1 “ maxpa1 pxq, a2 pxqq et f2 “ maxpb1 pxq, b2 pxqq sont des fonctions “max” de
fonctions affines a1 , a2 , b1 , b2 , le problème min f1 pxq ` f2 pxq peut se ramener à un modèle
d’optimisation linéaire.
$ ,
min u1 ` u2


’ u,x /
/
/
’ /
& sujet à u1 a1 pxq/
’ /
’ ě .
min pmaxpa1 pxq, a2 pxqq ` maxpb1 pxq, b2 pxqqq ðñ u1 ě a2 pxq/

’ /



’ u2 ě b1 pxq/
/
/
/
% -
u2 ě b2 pxq

Remarquons que x peut être un vecteur de dimension arbitraire, pas forcément un scalaire.
Ici encore, les signes sont super importants, pas question de considérer “moins” un max, ni
un max de max...

Valeur absolue
Si une expression comporte un terme de valeur absolue, observons que

|x| “ maxpx, ´xq.

Donc, le truc du min-max s’applique aux valeurs absolues.


42 MODÉLISATION

1.3.2 Normes polyédrales


Une norme est une fonction d’une variable vectorielle qui généralise la fonction valeur
absolue d’un scalaire. La valeur absolsue d’un scalaire représente sa “grandeur” et la norme
d’un vecteur représente sa longueur. Il y a plusieurs manières de généraliser la valeur absolue.
La norme dite Euclidienne et notée } ¨ }2 correspond à la notion habituelle de longueur
ařn ou
2
bien distance, généralisée dans un espace Euclidien de dimension arbitraire : }v}2 “ i“1 vi
représente la longueur du vecteur v. La distance entre deux points x et y est donnée par
n

2
}y ´ x}2 “ i“1 pyi ´ xi q .
Une norme } ¨ } est une abstraction algébrique qui généralise cette notion de longueur
d’un vecteur ou distance entre deux points. C’est une fonction qui possère trois propriétés :
1. }~v } “ 0 ðñ ~v “ ~0 ;
2. }α~x} “ |α| }~x} ;
3. }~x ` ~y } ď }~x} ` }~y } (inégalité du triangle).
On vérifie directement que la valeur absolue satisfait à chacune de ces trois conditions.
Dans le cadre de l’optimisation linéaire, nous serons intéressés par des normes dites
polyédrales qui permettront d’utiliser les outils de l’optimisation linéaire grâce à une astuce
de reformulation, comme nous le verrons à l’instant.

Norme `8 Une généralisation de la valeur absolue pour des vecteurs ~x P Rn est la suivante :
}~x}8 “ maxi“1,2,...,n |xi |. Vérifions qu’il s’agit bien d’une norme.
1. }~0}8 “ maxi“1,2,...,n |0| “ 0 ;
2. }α~x}8 “ maxi“1,2,...,n |αxi | “ |α| maxi“1,2,...,n |xi | “ |α|}~x}8 ;
3. }~x ` ~y }8 “ maxi“1,2,...,n |xi ` yi | ď maxi“1,2,...,n p|xi | ` |yi |q ď }~x}8 ` }~y }8 .
Nous avons déjà vu comment exprimer |x| “ maxpx, ´xq de sorte que }x}8 “ maxi maxpxi , ´xi q.
Nous savons déjà comment convertir un problème du type min }x}8 par l’astuce d’ajouter
une variable u et de la contraindre à être plus grande ou égale à tous les termes du max.

ř
Norme `1 La norme dite `1 s’écrit }~x}1 “ i |xi |. Vérifions qu’il s’agit bien d’une norme.
1. }~0}1 “ i |0| “ 0 ;
ř
ř ř ř
2. }α~x}1 “ i |αxi | “ i |α||xi | “ |α| i |xi | “ |α|}~x}1 ;
ř ř ř ř
3. }~x ` ~y }1 “ i |xi ` yi | ď i p|xi | ` |yi |q “ i |xi | ` i |yi | “ }~x}1 ` }~y }1 .
Nous avons déjà vu comment transformer un objectif d’une somme de max, la transformation
peut s’appliquer ici.
1.3. MODÈLES DÉGUISÉS 43

Exercice 1.3.1 [Ajustement aux données] Dans cet exercice, nous explorons un problème
d’ajustement de fonction. Les valeurs suivantes de x et y sont données :

x 0 1 2 3
y 0 0 3 9

On soupçonne qu’une relation d’ordre 3 relie x à y, et on envisage un modèle du type


φpxq “ a0 ` a3 x3 .
a) Une manière de choisir a0 et a3 consiste à minimiser la somme des erreurs du modèle
φpxi q comparativement aux vraies valeurs yi , ce qui donne un problème de minimisation :
4
ÿ 4
ÿ
min |yi ´ φpxi q| “ min |yi ´ pa0 ` a3 x3i q|.
a0 ,a3 a0 ,a3
i“1 i“1

Formulez ce problème sous forme d’optimisation linéaire.


b) Une autre manière de choisir a0 et a3 consiste à minimiser le maximum des erreurs
du modèle φpxi q comparativement aux vraies valeurs yi , ce qui donne un problème de
minimisation :
4 4
min max |yi ´ φpxi q| “ min max |yi ´ pa0 ` a3 x3i q|.
a0 ,a3 i“1 a0 ,a3 i“1

Formulez ce problème sous forme d’optimisation linéaire.


c) Pour éviter que l’ajustement soit très bon sur la plupart des points au détriment d’un
ou 2 points, on envisage de remplacer |v| par maxp|v|, 3p|v| ´ 1q.
i) Tracez le graphe de la fonction f pvq “ maxp|v|, 3p|v| ´ 1qq.
ii) Ramenez le problème mina0 ,a3 4i“1 f pyi ´ φpxi qq sous forme d’optimisation lineaire.
ř

Exercice 1.3.2 [Statistiques d’efficacité d’un algorithme] Un problème courant est


d’ajuster une formule à des observations. Par exemple, on a observé que l’algorithme du
simplexe nécessite environ 12 pm ` nq itérations en moyenne. On se propose d’effectuer une
expérience pour valider cette affirmation. On résout donc un grand nombre de problèmes
pour différentes valeurs de m et n, et on compte le nombre d’itérations. On s’attend à
ce que la relation soit approximativement T “ 2α pm ` nqβ où T représente le nombre
d’itérations ; on s’attend à ce que α et β valent environ -1 et 1. Pour rendre cette relation
linéaire, prenons-en le logarithme : logpT q “ α logp2q ` β logpm ` nq. Soit Ni le nombre
d’itération requis pour le ième problème, ni et mi ses dimensions. Alors, le modèle prédit
logpTi q “ α logp2q`β logpmi `ni q ; généralement, cependant, logpTi q (prédiction du modèle)
44 MODÉLISATION

est différent de logpNi q (réalité, logarithme du véritable nombre d’itérations pour le iième
problème). Nous voulons maintenant trouver des valeurs de α et β qui minimisent, dans
un certain sens, les erreurs de prédiction du modèle. On peut formuler cette minimisation
de plusieurs manières ; voici deux suggestions :
‚ minimiser la somme des valeurs absolues des différences entre les logpNi q et les logpTi q ;
c’est minimiser la somme des erreurs de la prédiction ;
n
ÿ
min | logpNi q ´ pα logp2q ` β logpmi ` ni qq|;
α,β
i“1

‚ minimiser le maximum sur les valeurs absolues des différences entre les logpNi q et les
logpTi q ; c’est minimiser la pire des erreurs de la prédiction ;
´ ¯
min max t| logpNi q ´ pα logp2q ` β logpmi ` ni qq|u .
α,β 1ďiďn

Formulez ces deux problèmes de minimisation sous la forme d’un modèle d’optimisation
linéaire.

1.3.3 Modèles pour la compression d’images


L’optimisation linéaire est un outil de modélisation devenu incontournable dans le traite-
ment de signaux en général et en particulier d’images. L’article Decoding by linear program-
ming [2] est consacré à de nouveaux résultats très influents. Nous nous limiterons à examiner
le type de modèle d’optimisation linéaire mis en cause dans ces travaux.
En fait, un outil clef pour ces modèles est la norme `1 (voir section 1.3.2). Le contexte est
de retrouver une donnée (codage d’une image selon une certaine base) x à partir de mesures
y (image) sachant que les mesures et l’image originale obéissent à l’équation y “ Ax ` e
où A décrit l’encodage de l’image. Nous avons discuté de situations similaires à la section
précédente.
Voilà pour le contexte, examinons maintenant différentes variantes de modèles et les
équivalences entre elles.
Le résultat remarquable de [2] est que la vraie représentation x̄ peut-être retrouvée exac-
tement en minimisant
min }Ax ´ y}1 (1.32)
x

lorsque A et e satisfont à certaines hypothèses, en particulier que e comporte peu de com-


posantes non-nulles.
1.4. RÉSUMÉ 45

Exercice 1.3.3 [PL équivalent] Considérez le problème minx }Ax ´ y}1 . Reformulez-le
sous la forme d’un modèle d’optimisation linéaire.

Si l’on suppose que A P Rmˆn avec m ą n, on peut constituer une matrice Z P Rpm´nqˆm
def
dont les lignes forment une base du noyau à gauche de A défini comme kerg A “ tz : zA “ 0u,
donc ZA “ 0. Par conséquent, ỹ “ Zy “ ZpAx ` eq “ Ze. Après analyse, on en arrive à la
formulation suivante, connue en anglais sous le nom basis pursuit.

min }e}1
e
(1.33)
sujet à Ze “ ỹ

Exercice 1.3.4 [PL équivalent] Considérez le problème minZe“ỹ }e}1 . Reformulez-le sous
la forme d’un modèle d’optimisation linéaire.

1.4 Résumé
La modélisation consiste en la traduction et adaptation d’une situation concrète plus
ou moins formelle en un ensemble de relations mathématiques propices à l’obtention d’une
solution. Nous avons examiné plusieurs exemples de situations et leur modélisation

1.5 Extensions et références


Les modèles de la recherche opérationnelle sont étudiés depuis le tout début de la dis-
cipline et les modèles d’optimisation linéaire sont très répandus. La plupart des modèles
présentés proviennent des notes de cours de Abdelhamid Benchakroun.
46 MODÉLISATION
Chapitre 2
Introduction et intuition géométrique

Sujets du chapitre
‚ Observations sur la géométrie du problème.
‚ Formulations standard.
‚ Quelques propriétés théoriques.

47
48 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

Introduction
L’optimisation, aussi nommée programmation, linéaire constitue l’origine de l’optimisa-
tion mathématique moderne. Son étude a été menée par George Bernard Dantzig à partir de
1947. L’algorithme du simplexe, que nous présentons dans ce chapitre, est considéré comme
un des dix algorithmes les plus importants du vingtième siècle. C’est la première fois qu’un
problème avec contraintes d’inégalité a été résolu formellement.
Dans ce chapitre, nous abordons l’étude directe des problèmes de minimisation de fonc-
tions linéaires dans un domaine défini par des contraintes linéaires. Par une suite d’observa-
tions de nature géométriques ou encore algébriques, nous déduirons des propriétés élémen-
taires des problèmes.

2.1 Formulation du problème


Nous avons vu au chapitre précédent que le problème d’optimisation linéaire que nous
étudions consiste en une fonction objectif linéaire, des contraintes formulées comme des
égalités ou bien des inégalités à l’aide de fonctions linéaires et souvent des bornes sur les
variables de décision.
Rappelons¨que˛nous adoptons la convention que les variables de décision sont des vecteurs
x1
˚ x2 ‹
colonne x “ ˚ .. ‹ alors que les coefficients des fonctions linéaires (de l’objectif ou d’une
˚ ‹
˝.‚
xn
` ˘
contrainte) sont des vecteurs ligne c “ c1 c2 . . . cn .

2.1.1 Intuition géométrique en 2D


Si l’espace des variables de décision est de dimension deux, il est possible de visualiser la
géométrie du problème pour nous en faire une idée intuitive.
Examinons la structure des contraintes dans R2 . Une contrainte d’égalité prend la forme
a1 x1 ` a2 x2 “ b. C’est l’équation d’une droite dans le plan. ˆb˙ Le vecteur
ˆ ˙ normal à la droite
0
est le vecteur a “ pa1 a2 q ; la droite passe par les points a1 et b . La présence d’une
0 a2
contrainte d’égalité réduit donc l’espace des solutions réalisables à une droite, de dimension
un. Si la droite passait par l’origine, il s’agirait d’un sous-espace linéaire de dimension 1. La
translation de la droite se nomme variété affine ou encore variété linéaire affine ou également
sous-espace affine.
2.1. FORMULATION DU PROBLÈME 49

ÝÝÑ
4.5
Le vecteur AB “ p3, 2q
C
définit des droites per-
4

pendiculaires d’équation
3.5
3x ` 2y “ constante. On
F
3 voit les droites de constantes
2.5
2, 4, 6, 8, 10.
2
E H B Si le vecteur définit une
fonction objectif, celle-ci
1.5
peut augmenter à l’infini
D
1
dans la direction du vecteur
0.5 et diminuer à moins l’infini
A I dans la direction opposée.
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

-0.5

2 4 6 8 10
-1

Figure 2.1 – Exemple de droite

Observons que la fonction objectif linéaire n’est pas bornée par elle même, sauf dans le cas
de la fonction triviale. Similairement, si toutes les contraintes sont des égalités, la fonction
objectif ne sera pas bornée à moins d’être constante sur le domaine réalisable qui est alors un
sous-espace affine. Donc, pour qu’un modèle d’optimisation linéaire soit intéressant, il faut
qu’il comporte des contraintes d’inégalité.
Un contrainte d’inégalité qui s’écrit a1 x1 `a2 x2 ď b décrit un demi-plan, plus généralement
un demi-espace. La frontière du demi-espace est la droite d’équation a1 x1 ` a2 x2 “ b. Dans
ce cas d’une contrainte plus petit ou égal, le demi-espace est situé sur le côté opposé à
l’orientation du vecteur a. Pour une contrainte plus grand ou égal, le demi-espace serait situé
sur le côté correspondant à l’orientation du vecteur a. Sur la figure 2.1, si une droite définit
une contrainte ě, on voit que la région sera un demi-plan qui s’éloigne dans la direction
du vecteur alors qu’une contrainte ď définit un demi-plan qui s’éloigne dans la direction
opposée au vecteur. Le domaine réalisable est constitué de l’intersection de tous les demi-
espaces décrits par chacune des contraintes.
Reprenons les contraintes (1.5) – (1.8).

x1 ` x2 ď 400
2x1 ` x2 ď 600
x2 ď 300
x1 , x2 ě 0

Il s’agit bien d’une intersection de cinq demi-plans dont deux qui définissent le quadrant
50 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

positif.

On peut voir les droites


en noir associées aux trois
contraintes ainsi que le poly-
gone (pentagone) définissant
le domaine réalisable.

Figure 2.2 – Exemple simple bi-dimensionnel

Plongeons-nous maintenant en trois dimensions pour ajouter la valeur de la fonction


objectif z “ 1.5x1 ` x2 . C’est l’équation d’un plan qui passe par l’origine.
2.1. FORMULATION DU PROBLÈME 51

On peut encore voir les


droites en noir associées aux
trois contraintes ainsi que le
polygone (pentagone) défi-
nissant le domaine réalisable
sur le plan x1 x2 . De plus, on
peut voir le plan correspon-
dant aux valeurs de la fonc-
tion objectif ; on a illustré
la portion du domaine réa-
lisable sur ce plan. Il semble
clair que la solution, le point
le plus élevé sur le plan,
est le point étiqueté “k”, le
point trouvé à l’aide de l’ou-
til AMPL, x1 “ x2 “ 200.

Figure 2.3 – Exemple en 3D

Autre point de vue

Figure 2.4 – Exemple en 3D


52 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

Le petit exemple suggère que la solution optimale (le point le plus élevé dans le plan
décrivant la fonction objectif) sera toujours un sommet du polygone des contraintes. En fait,
on peut imaginer une situation particulière où une arête entière est optimale, mais dans ce
cas, chacune de ses extrémités est un sommet.

2.1.2 Résolution graphique d’un problème en deux dimensions


Considérons l’exemple

max 3x1 ` 2x2


sujet à x1 ` x 2 ď4
2x1 ` x2 ď6
x2 ď3
x1 , x2 ě0

qui n’est qu’une mise à l’échelle du problème de la section 1.1. On superpose les contraintes
aux droites de la figure 2.1. Ces droites sont les lignes de niveau constant de la fonction
objectif, qui était illustrée par un plan sur la figure 2.3. On voit également que si l’objectif
avait été de minimiser, en suivant les droites de niveau constant dans la direction opposée,
on aurait abouti à l’origine.

On voit la solution qui maxi- 5


J

mise 3x1 ` 2x2 au point 4.5

p2, 2qt . Dans notre mise à 4


C

l’échelle (diviser par 100) du 3.5

pentagone de l’exemple de F G
3

la section 1.1, on retrouve


bel et bien le même sommet, 2.5

E H B
le point qui correspondait à 2

p200, 200qt q tel que calculé 1.5

en utilisant Ampl. 1
D

0.5

A I
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

-0.5

2 4 6 8 10
-1

Figure 2.5 – Résolution graphique


2.1. FORMULATION DU PROBLÈME 53

2.1.3 Solutions multiples

Lorsque les lignes de niveau constant de l’opjectif sont parallèles à une face des contraintes,
toute la face aura la même valeur de fonction objectif.

i f g h
On voit l’ensemble des solu-
6
E tions qui maximise 4x1 `2x2
est composée de tout le seg-
5
ment rp2, 2qt , p3, 0qt s.

D
4

F
3

f1
C H
G B
2
g1

u
1 h1

A i1 I
-4 -3 -2 -1 0 1 2 3 4 5 6

0
4 8 12

Figure 2.6 – Résolution graphique

2.1.4 Domaine réalisable non borné

Le petit exemple définissait un domaine réalisable borné, un pentagone. Par contre, les
modèles de diète comportent un domaine réalisable qui n’est pas borné : en effet, si on inclus
une quantité arbitrairement grande de tous les aliments dans une diète, les besoins seront
certainement satisfaits. La fonction objectif sera également arbitrairement grande, ce qui
fait que le modèle est bien défini puisqu’on minimise l’objectif, qui évitera donc les solutions
arbitrairement grandes.
Mathématiquement, il est concevable que la fonction objectif puisse croître arbitraire-
ment, et donc que la valeur de la fonction objectif ne soit pas bornée. En général, une telle
situation découlerait d’une erreur de modélisation.
54 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

On a retiré les contraintes g h i 5.5

x1 ě 0 et x2 ě 0, ce qui fait 5
J

j
que la solution du problème 4.5

de maximisation ne change K
4
I

pas du tout, mais si on mini- 3.5

misait l’objectif, la solution


a
3
B

serait non bornée inférieure- 2.5


b

ment, ´8. 2
C H

1.5

1
u
c

0.5

G D
-4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

-0.5

-4 -1 0 8 10

Figure 2.7 – Résolution graphique


d

2.1.5 Domaine réalisable vide

Vous avez constaté à l’exercice 1.2.2 que le fait d’obliger à utiliser l’entièreté du budget
conduisait au diagnostic que le problème est irréalisable. C’est que les contraintes ainsi
modifiées ne sont pas compatibles, il n’existe aucun point satisfaisant à toutes les contraintes.
2.2. RÉSULTAT DE LA RÉSOLUTION D’UN MODÈLE D’OPTIMISATION LINÉAIRE55

5
J
Ajoutons à notre exemple
4.5 trois contraintes, ´2x1 ´
4
C 2x2 ď ´11, 2x1 ď 7 et x2 ď
3.5
3. On voit qu’aucun point
F G L M
n’appartient aux contraintes
3

formés de l’intersection du
2.5

E H B K
pentagone et du triangle. On
2
dit alors que le problème
1.5
n’est pas réalisable. Dans ce
D
1 cas, par convention, on dira
0.5 que la valeur optimale est
-3 -2.5 -2 -1.5 -1 -0.5 0
A
0.5 1 1.5 2 2.5
I
3 3.5 4 4.5 5 5.5
´8 pour un problème de
-0.5
maximisation et `8 dans le
-1
2 4 6 8 10 cas de minimisation.

Figure 2.8 – Résolution graphique

2.2 Résultat de la résolution d’un modèle d’optimisa-


tion linéaire
Avec ce que nous venons de présenter, nous pouvons énumérer les différents résultats que
l’on peut obdenir en résolvant un modèle d’optimisation linéaire.

‚ on a identifié une solution optimale ;


‚ on a diagnostiqué que les contraintes sont incompatibles, le problème est irréalisable ;
‚ on a diagnostiqué que le modèle n’est pas borné.

Exercice 2.2.1 [Solution graphique] Résoudre graphiquement les problèmes suivants.


a)

max x1 ` 2x2
sujet à x1 ` x2 ď 2
x1 ` 3x2 ď 3
x1 , x2 ě0
56 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

b)

max 45 x1 ` 3x2
sujet à 5x1 ` 10x2 ě 25
3x1 ` 4x2 ě 13
x1 , x2 ě0

c)

min ´2x1 ´ x2
sujet à x1 ` 83 x2 ď4
x 1 ` x2 ď2
2x1 ď3
x1 , x2 ě0

d)

max 3x1 ´ 2x2


sujet à 2x1 ` 2x2 ě 4
x 1 ` x2 ď 1
x1 , x2 ě0

Exercice 2.2.2 [Graphique avec paramètre]


a) Résoudre graphiquement le problème

min ´x1
sujet à ´2x1 ` x2 ď2
x1 ` x2 ď8
x1 ´ x2 ď4
x1 , x2 ě0

b) Supposons maintenant que la fonction objetif devient ´x1 ` cx2 . Déterminez les valeurs
du paramètre c pour que la solution optimale trouvée en (a) demeure optimale avec le
nouvel objectif.
2.3. FORMES STANDARD 57

Exercice 2.2.3 [Diète et réduction] On désire déterminer la composition à coût minimal


d’un aliment pour bétail qui est obtenu en mélangeant au plus trois produits bruts, de
l’orge, des arachides et du sésame. L’aliment ainsi conditionné devra comporter au moins
22% de protéines et 3.6% de graisse pour se conformer aux exigences du client.
Les pourcentages de protéines et de graisse contenus dans chacun des ingrédients ainsi que
le coût par tonne de chaque produit sont indiqués dans le tableau suivant.

Produit brut orge arachide sésame


% de protéines 12 52 42
% de graisse 2 2 10
Coût/tonne ($) 25 41 39

a) En notant xi la fraction de tonne de produit brut i contenu dans une tonne d’aliment,
formulez un modèle spécifique de cette situation.
b) Montrez qu’il est possible de réduire la dimension du problème, il est possible d’exprimer
une des variables en fonction des deux autres. Résolvez le alors graphiquement.

2.3 Formes standard


Jusqu’à maintenant, nous avons simplement énoncé que la fonction objectif et les fonc-
tions définissant les contraintes sont linéaires ; les contraintes peuvent être des inégalités de
type plus petit ou égal, plus grand ou égal ou encore des égalités. L’optimisation linéaire
peut maximiser ou bien minimiser la fonction objectif sous les contraintes.
Il est maintenant commode de s’entendre sur une ou deux formes particulières. Nous
allons également voir qu’il est possible de ramener tout modèle d’optimisation linéaire à
l’une ou l’autre forme.

2.3.1 Forme standard avec inégalités

min cx
xPRn
, (2.1)
sujet à Ax ď b P Rm
Dans cette forme, les variables proprement dites x ne sont pas spécifiées comme étant bornées.
Dans le jargon, on les décrit alors comme des variables libres.
Une inégalité “plus grand ou égal” ax ě b peut être multipliée par ´1 pour être convertie
en inégalité “plus petit ou égal” ´ax ď ´b.
58 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

2.3.2 Forme standard du simplexe


la forme dite standard du simplexe est la suivante.

min cx
xPRn
sujet à Ax “ b P Rm , (2.2)
xě0

où c et x sont des vecteurs de Rn , b un vecteur de Rm et A une matrice mˆn. Les lignes de la


matrice A sont notées ai , i “ 1, 2, . . . , m alors que ses colonnes sont notées Aj , j “ 1, 2, . . . , n.
De plus, nous faisons l’hypothèse que la matrice A est de rang m, c’est-à-dire que ses lignes
sont linéairement indépendantes. Ainsi, les contraintes définissent l’intersection d’un sous-
espace affine de Rn de dimension n ´ m avec l’orthant positif. Le vecteur c constitue le
gradient de la fonction linéaire cx, et donc est un vecteur-ligne. Dans cette forme standard
du simplexe, les variables x sont sujettes à des bornes de non négativité.
Nous verrons plus tard que l’hypothèse que les lignes de A sont linéairement indépen-
dantes n’est pas restrictive.

2.3.3 Passage d’une forme à l’autre


Minimiser ou maximiser
Sans aucune perte de généralité, nous considérons habituellement des problèmes de mini-
misation. Un problème de maximisation max f pxq “ ´ min ´f pxq et donc toute notre étude
des problèmes de minimisation peut s’adapter directement aux problèmes de maximisation.

Transformer une contrainte d’inégalité en égalité


Pour passer d’une contrainte ax ď b à une contrainte d’égalité, on ajoute une variable
dite variable d’écart et représente la contrainte par la paire de relations
# +
ax ` s “ b
Ds : ðñ ax ď b (2.3)
sě0

Les variables d’écart sont souvent dénotées s, de l’anglais, slack variable.

Exercice 2.3.1 [Contraintes supérieures ou égales] Obtenez une contrainte d’égalité équi-
valente à la contrainte ax ě b.
2.3. FORMES STANDARD 59

Transformer une contrainte d’égalité en contraintes d’inégalités


Pour passer d’une contrainte ax “ b à une contrainte d’inégalité, il suffit de la dédoubler
en une paire d’inégalités de sens opposées :
# # ++
ax ď b
x: “ tx : ax “ bu (2.4)
´ax ď ´b.

Transformer une variable libre en variable bornée


Une observation permet d’exprimer toute quantité (positive, nulle ou négative) comme
la différence entre deux quantités non négatives. Par exemple, 8 “ 8 ´ 0 “ 9 ´ 1 “ 10 ´ 2.
´11 “ 0 ´ 11 “ 2 ´ 13. Alors, si une variable disons x d’un modèle est libre et qu’on
veuille que notre modèle ne comporte que des variables non négatives, il suffit d’exprimer
x “ x` ´ x´ avec x` ě 0, x´ ě 0.
Une autre manière de traiter les variables libres consiste à utiliser une contrainte d’égalité.
En effet, supposons que la variable xi est libre dans le vecteur x et que le modèle comporte
ř des
contrainte Ax “ b. Choisissons une des contraintes j telle que A ji “
­ 0. pAxq
řj “ A x
kăi jk k `
1
ř ř
Aji xi ` kąi Ajk xk “ bj permet d’isoler xi “ Aji pbj ´ kăi Ajk xk Aji xi ` kąi Ajk xk q et ainsi
réduire le modèle d’une variable et d’une contrainte.

Exemple Supposonsl que l’on ait les conraintes


3x1 ` x2 ´ 2x3 ` x4 “ 2
x1 ` 3x2 ` x3 ´ x4 “ 4
x1 x2 , x4 ě 0
x3 libre.
On peut utiliser la première contrainte d’égalité pour écrire
2x3 “ 3x1 ` x2 ` x4 ´ 2
et donc substituer
3 1 1
x3 “ x 1 ` x2 ` x4 ´ 1
2 2 2
dans la seconde contrainte d’égalité pour obtenir
5 7 1
x
2 1
` x
2 2
´ x
2 4
“ 5
x1 , x2 , x4 ě 0.

Exercice 2.3.2 [Variable libre] Utilisez la seconde équation pour exprimer x3 et substituez
le tout dans la première équation
60 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

Passage d’inégalités vers la forme standard du simplexe


Comme nous le verrons, la forme des contraintes (2.2) est commode pour présenter l’ap-
proche issue de l’algorithme du simplexe. Cette forme n’est aucunement restrictive, tout en-
semble défini par des inégalités et éventuellement égalités linéaires pouvant se ramener à cette
forme. Par exemple, supposons que l’ensemble des contraintes soit E “ tx P Rn : Āx̄ ď b̄u ;
alors, en dédoublant x̄ “ x̄` ´ x̄´ avec x̄` , x̄´ ě 0 et en ajoutant des variables d’écart s ě 0,
on constate que le problème
min c̄x̄
(2.5)
sujet à Āx̄ ď b̄
peut se récrire
` ´
min
¨ c̄x̄` ´
˛ c̄x̄
` ˘ x̄´
sujet à Ā ´Ā I ˝ x̄ ‚ “ b̄
s
x̄` , x̄´ , s ě 0
` ˘
qui est exactement de la forme (2.2) avec c “ pc̄ ´ c̄ 0q, A “ Ā ´Ā I , b “ b̄ et
` ˘t
x “ x̄` x̄´ s .

Exemple
Examinons un petit exemple. Considérons le problème

min z “ x1 ´ x2
sujet à 2x1 ` x2 ě 2
(2.6)
x1 ` 3x2 ď 3
x1 , x2 ě 0

que l’on transforme sous la forme standard en

min z “ x1 ´ x2
sujet à 2x1 ` x2 ´ x3 “ 2
(2.7)
x1 ` 3x2 ` x4 “ 3
x1 , x2 , x3 , x4 ě 0

La figure 2.9 illustre le domaine réalisable, le triangle en traits épais. Comme mentionné
précédemment, notre intuition nous suggère que la solution optimale est sur un des sommets
du triangle. Un sommet du triangle en est un point extrême.
2.3. FORMES STANDARD 61

3
Les intersections des droites
encerclées en gras sont les
points extrêmes réalisables
correspondant aux solutions
2
de base réalisables de (2.7).
Les intersections encerclées
en mince ne sont pas réa-
lisables, mais sont tout de
1 même des solutions de base
de (2.7).

1 2 3

Figure 2.9 – Exemple simple bi-dimensionnel

En considérant la formulation de dimension quatre (2.7), on voit que chaque sommet


du triangle correspond à fixer à zéro deux des quatres variables. Maintenant, il est facile

sommet variables nulles variables non nulles


p1 0qt x2 “ x3 “ 0 x1 “ 1, x4 “ 2
p3 0qt x2 “ x4 “ 0 x1 “ 3, x3 “ 4
p 53 45 qt x3 “ x4 “ 0 x1 “ 35 , x2 “ 45

Table 2.1 – Sommets du triangle réalisable

de calculer un sommet donné si on connaît les composantes qui sont nulles et celles qui
sont potentiellement non-nulles. Il suffit d’extraire la sous-matrice (carrée) correspondant
aux variables non nulles et de résoudre le système d’équations correspondant. Dans notre
exemple, les trois systèmes d’équations de chacun des trois sommets sont
ˆ ˙ˆ ˙ ˆ ˙ˆ ˙ ˆ ˙ˆ ˙ ˆ ˙
2 0 x1 2 ´1 x1 2 1 x1 2
“ “ “ . (2.8)
1 1 x4 1 0 x3 1 3 x2 3
Les matrice carrées correspondent aux colonnes appropriées de la matrice complète des
contraintes ˆ ˙
2 1 ´1 0
.
1 3 0 1
62 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

Une telle solution associée à une sous-matrice carrée est nommée solution de base. Les trois
sommets du triangle sont les solutions de base réalisables. Il y a trois autres sous-matrices
carrées (2 ˆ 2) dans notre exemple, correspondant à trois autres solutions de base, mais non
réalisables.
On dénote par B l’ensemble des indices correspondant aux composantes non nulles d’une
solution de base, et par N l’ensemble des indices correspondant aux composantes nulles.
Cette partition des indices est notée rrB | N ss. On dénote également la sous-matrice carrée
par B et la sous matrice des autres variables par N . Dans notre exemple simple, N est
également une matrice carrée, mais ce n’est pas le cas en général. Selon cette notation, pour
une solution de base x, xN sont les composantes nulles et xB “ B ´1 b ě 0 les composantes
positives. Nous verrons plus tard les complications associées à des composantes nulles de xB ,
pour l’instant, considérons qu’elles sont positives. Résumons le tout formellement dans la
définition suivante.

Définition 2.3.1 Soit un ensemble décrit par des contraintes Ax “ b, x ě 0. Une solution
de base est une partition rrB | N ss de la matrice A telle que la sous-matrice B est inversible.
Alors, le x correspondant est xB “ B ´1 b et xN “ 0. Si de plus, xB ě 0, la solution de
base est dite réalisable. Si de plus xB ą 0, la solution réalisable est dite non dégénérée, en
d’autre termes, si au moins une des composantes de xB est nulle, la solution est dégénérée.

Les solutions de base du problème (2.7) peuvent être identifiées comme les points d’inter-
section entre deux droites sur le graphique bi-dimensionnel représentant le problème (2.6).
En effet, chacune des droites correspondant aux deux contraintes correspond à x3 “ 0 ou
x4 “ 0. Le point d’intersection des deux droites possède donc deux composantes nulles, les
composantes de N . L’intersection d’une des deux droites avec un axe canonique possède
aussi deux composantes nulles, celle de l’autre axe (l’intersection avec l’axe x1 est telle que
x2 “ 0) et sa propre variable d’écart nulle. Finalement, l’origine est telle que x1 “ x2 “ 0 et
les variables d’écart des deux droites sont non nulles puisque l’origine n’appartient pas aux
droites en question.

Exercice 2.3.3 [Forme standard du simplexe] Écrire les problèmes suivants sous forme
standard.
a)
min z “ 18x1 ` 12x2 ` 2x3 ` 6x4
sujet à 3x1 ` x2 ´ 2x3 ` x4 “ 2
x1 ` 3x2 ´ x4 ď 2
x1 ě 0
x2 , x4 ď 0
x3 libre.
2.3. FORMES STANDARD 63

b)
min z “ ´x1 ´ 4x2 ´ 3x3
sujet à 2x1 ` 2x2 ` x3 ď 4
x1 ` 2x2 ´ 2x3 ě 6
x1 , x2 ě 0
x3 libre.
c)
min z “ x1 ` 3x2 ` 4x3
sujet à x1 ` 2x2 ` x3 “ 5
2x1 ` 3x2 ` x3 “ 6
x2 , x3 ě 0
x1 libre.
d)
min z “ |x1 | ` |x2 | ` |x3 |
sujet à x1 ` 2x2 ď 1
2x1 ` x3 “ 3
x1 x2 x3 libres.
e)
max min t5x1 , 2x2 u
sujet à 2x1 ` x2 ` 3x3 ď 4
x2 ` 5x3 ď 6
x1 , x2 ě 0
x3 libre.

Exercice 2.3.4 [Solutions de base] Considérez le système linéaire suivant.

x1 ` 2x2 ` x3 “ 5
2x1 ` ax2 ` 3x3 “ 6 (2.9)
x1 , x2 , x3 ě 0.

a) Pour quelles valeurs du paramètre a le système possède-t-il exactement trois bases ?


Dénotons l’ensemble des valeurs D.
b) Déterminez les trois solutions de base identifiées en (a).
c) Pour chacune des solutions calculées en (b), énoncez des conditions sur a pour que cette
solution soit réalisable.
64 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

d) Y a-t-il une(des) valeur(s) de a pour que toutes les solutions soient réalisables et non
dégénérées ?
e) Pour quelles valeurs de a une ou plusieurs solutions de base sont-elles dégénérées ?

Exercice 2.3.5 [Sommets et solutions de base] Considérez l’exemple (1.5) – (1.8) qui se
ramène sous la forme standard du simplexe comme
¨ ˛ ¨ ˛
1 1 1 0 0 400
˝2 1 0 1 0‚x “ ˝600‚
0 1 0 0 1 300
x ě 0.

a) Combien de colonnes sont utilisées pour définir une matrice de base B ?


b) Combien y a-t-il de sous-matrices B de dimensions appropriées ?
c) Combien de colonnes sont utilisées pour représenter une matrice hors base N ?
d) Combien de solutions de base cet exemple comporte-t-il ? C’est le nombre total de sous-
matrices B inversibles de la matrice des contraintes.
e) Combien de solutions de base réalisables cet exemple comporte-t-il ?
f) Identifiez sur le graphique de la figure 2.2 les solutions de base réalisables (leurs compo-
santes x1 , x2 ).

Exercice 2.3.6 [Équivalence de formulations] Considérez le programme linéaire le plus


général comportant des contraintes d’égalité et d’inégalité ainsi que des variables bornées
et des variables libres.
min c1 x1 ` c2 x2
sujet à A11 x1 ` A12 x2 ď b1
A21 x1 ` A22 x2 “ b2
x1 ě 0,
où A est une matrice pm1 ` m2 q ˆ pn1 ` n2 q et c, x P Rn1 `n2 et b P Rm1 `m2 .
a) Ramenez ce programme sous la forme standard du simplexe (2.2).
b) Ramenez ce programme sous la forme standard utilisant uniquement des contraintes
d’inégalité (2.5)
2.4. PARENTHÈSE CALCULATOIRE : PIVOTS 65

Exercice 2.3.7 [Contraintes d’intervalle] Souvent, un programme linéaire se présente


avec des contraintes d’intervalle de la forme :

5 ď 6x1 ´ x2 ` 3x3 ď 8.

a) Montrez que cette contrainte est équivalente aux contraintes

6x1 ´ x2 ` 3x3 ` x4 “ 8
0 ď x4 ď 3.

b) Mettez les contraintes en a) sous forme standard.


c) Montrez que le programme linéaire

min z “ cx
sujet à bi ď Ax ď bs
x ě 0

peut se reformuler avec des contraintes d’égalité, et des variables bornées supérieurement.
bi sont des bornes inférieures et bs des bornes supérieures, avec bi ď bs .
d) Mettez le programme en c) sous forme standard.

2.4 Parenthèse calculatoire : pivots


Reprenons l’exemple 2.7. Nous allons regrouper dans un tableau du simplexe les co-
efficients tels que transformés par une base B. Le tableau comportera donc la matrice
B ´1 A “ rB ´1 B B ´1 N s “ rI B ´1 Nˆ s avec une colonne
˙ additionnelle pour le membre de
2 1 ´1 0
droite, B ´1 b. Comme la matrice A “ , choisissons B “ t3, 4u comme indices
ˆ ˙ 1 3 0 1
´1 0
de base, la matrice B “ est trivialement inversée et nous obtenons le tableau
0 1
suivant où l’identité se retrouve sous les colonnes des variables de B, les variables x3 et x4 .

x1 x2 x3 x4 B ´1 b
´2 ´1 1 0 ´2 (2.10)
1 3 0 1 3

Ce tableau correspond à une solution de base, mais pas réalisable. En effet, la solution est
x1 “ x2 “ 0 qui n’appartient pas au domaine réalisable (le triangle).
66 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

Nous avons vu qu’il y a exactement six solutions de base, dont trois réalisables. L’opéra-
tion de pivot permet de passer d’une solution de base à une autre solution de base adjacente.
Par exemple, passons à la solution B “ t2, 4u. Pour ce faire, nous déterminons l’élément du
tableau de la première ligne (associée à x3 ) dans la colonne 2.
x1 x2 x3 x4 B ´1 b
´2 -1 1 0 ´2 (2.11)
1 3 0 1 3
Maintenant, divisons la première ligne par l’élément pivot.
x1 x2 x3 x4 B ´1 b
2 1 ´1 0 2 (2.12)
1 3 0 1 3
Enfin, ajoutons le multiple approprié de la première ligne pour que le résultat annule toute la
colonne de l’élément pivot. Ici, il faut ajouter ´3 de la première ligne à la seconde pour que
l’élément de la seconde ligne, seconde colonne devienne nul. Le prochain tableau est donc :
x1 x2 x3 x4 B ´1 b
2 1 ´1 0 2 (2.13)
´5 0 3 1 ´3
Encore une fois, ce tableau correspond à une solution de base, mais pas réalisable, le point
x1 “ 0, x2 “ 2. Cette fois-ci, passons à B “ t1, 4u. Le pivot est donc sur la première ligne et
la première colonne. La première ligne est associée à x2 par colonne de matrice identité alors
que la première colonne correspond à la nouvelle variable de base pour le prochain tableau,
x1 .
x1 x2 x3 x4 B ´1 b
2 1 ´1 0 2 (2.14)
´5 0 3 1 ´3
Même recette maintenant, on divise la ligne par l’élément pivot et détermine les multiples
de la ligne ainsi divisée permettant de “zéroter” la colonne pivot. Donc, on divise la ligne 1
par 2 et ajoute 5 fois la ligne 1 ainsi divisée à la ligne 2 pour obtenir :
x1 x2 x3 x4 B ´1 b
1 12 ´ 12 0 1 (2.15)
5 1
0 2 2
1 2
Voilà enfin une solution de base réalisable. On détecte rapidement qu’elle est réalisable par
la colonne B ´1 b ą 0. Cette solution de base réalisable est le point x1 “ 1, x2 “ 0 qui est bel
et bien un sommet du triangle réalisable.
On remarque que la matrice B ´1 n’est jamais explicitement calculée, seulement B ´1 A et
B ´1 b.
2.5. QUELQUES PROPRIÉTÉS DES CONTRAINTES LINÉAIRES 67

Exercice 2.4.1 [Pratique de pivots 2 lignes] Nous avons calculé trois des six solutions
de base pour le petit exemple. Complétez le calcul des trois autres solutions de base en
effectuant des opérations de pivot appropriées à partir de l’un ou l’autre des tableaux
ci-haut calculés.

Exercice 2.4.2 [Pratique de pivots 3 lignes] Considérez les contraintes de l’exercice 2.3.5
et qui correspondent à la figure 2.2. Le domaine réalisable est le pentagone illustré. Il y a
déjà une identité dans la matrice, donc le tableau de départ peut correspondre aux indices
B “ t3, 4, 5u. C’est la solution de base réalisable x1 “ x2 “ 0. Effectuez des pivots pour
parcourir toutes les solutions de base réalisables. Utilisez la figure pour vous guider dans
le choix d’ordre de pivots.

2.5 Quelques propriétés des contraintes linéaires

Les ensembles réalisables définis par des contraintes linéaires sont des ensembles convexes.
Voici d’abord la définition d’un ensemble convexe.

Définition 2.5.1 Un ensemble E est dit convexe s’il contient le segment de droite reliant
une paire quelconque de ses points. Un ensemble E est dit affine s’il contient toute la
droite passant par une paire quelconque de ses points. Soient deux points x, y P E, et soit
ppθq “ θx ` p1 ´ θqy. E est affine si et seulement si ppθq P E, @θ et E est convexe si et
seulement si ppθq P E, @θ P r0, 1s.
68 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

L’ensemble de gauche est p


convexe car il contient le
Q
segment de droite reliant
n’importe quels deux de ses
points. L’ensemble de droite
n’est pas convexe. P Q

Figure 2.10 – Ensemble convexe

Théorème 2.5.1 (Convexité des ensembles réalisables) Un ensemble E défini à


l’aide de contraintes linéaires est un ensemble convexe

Preuve Soient deux points x et y satisfaisant chacune des contraintes définissant E. Pre-
nons une contrainte d’égalité. On a ax “ b et ay “ b, donc un point p du segment entre x et
y, spécifié par p “ θx`p1´θqy où θ P r0, 1s satisfait ap “ apθx`p1´θqyq “ θax`p1´θqay “
θb ` p1 ´ θqb “ b.
Le cas d’une contrainte d’inégalité est laissé en exercice.
Donc, E défini par un ensemble de contraintes linéaires d’égalité et d’inégalité est tel que
le segment entre deux points satisfaisant toutes les contraintes satisfait lui aussi toutes les
contraintes. l

Exercice 2.5.1 [Inégalités] Complétez la démonstration pour une contrainte d’inégalité.

Définition 2.5.2 Un point p d’un ensemble convexe E est un point extrême si et seule-
ment si en tentant d’exprimer p “ θx ` p1 ´ θqy pour x, y P E, θ P p0, 1q, on se retrouve
avec x “ y “ p.

En d’autres termes, p est un point extrême s’il ne fait partie d’aucun segment xy
¯ de E.
Les points extrêmes de polygones convexes dans le plan sont ses sommets.
2.5. QUELQUES PROPRIÉTÉS DES CONTRAINTES LINÉAIRES 69

2.5.1 Propriétés des solutions de base réalisables

Les notions de convexité, de point extrême sont facile à comprendre à l’aide d’exemples
géométriques dans le plan. La forme standard du simplexe est une écriture plus algébrique
et on peut développer ces notions à l’aide d’outils d’algèbre linéaire.

Se rapprocher d’une solution de base réalisable

Considérons un point x P E qui n’est pas une solution de base réalisable. Il y a donc
trop de composantes positives, c’est-à-dire que les colonnes de la sous-matrice associée aux
composantes positives ne sont pas linéairement indépendantes. Nommons cette sous-matrice
B même si elle comporte moins que m colonnes. Puisque ses colonnes ne sont pas linéairement
indépendantes, son noyau n’est pas réduit à t0u, prenons donc un vecteur dB P ker B. On a
donc la situation suivante : xB ą 0, xN “ 0 et dB P ker B. Nous allons construire un nouveau
point qui aura une composante positive en moins. On a BxB “ b et BdB “ 0. Notre nouveau
point sera xB ` t̂dB ě avec une composante nulle. Laquelle ? on sépare les composantes de B
selon le signe de dB , dB ` ą 0, dB ´ ă 0 et dB 0 “ 0, B “ B ` Y B ´ Y B 0 . Alors, pour garantir
que xB ` tdB ě 0, on doit avoir

´xi
xi ` tdi ě 0, i P B ` ðñ t ě ă0
di
´xi
xi ` tdi ě 0, i P B ´ ðñ t ď ą 0.
di

Notons tmin “ maxiPB ` ´x di


i
et tmax “ miniPB ´ ´x
di
i
Si B ` “ H, alors tmin “ ´8 et similaire-
ment pour B ´ ; ´tmin et tmax ne sont pas tous les deux infinis puisque dB ­“ 0 donc au moins
un de B ` et B ´ est non vide. Donc, ´8 ď tmin ă 0 ă tmax ď 8. Nous aurons donc que
xB ` tdB ě 0 sera assuré pour les valeurs de t telles que tmin ď t ď tmax , et si t “ tmin ou
encore t “ tmax , alors au moins une composante de xB ` tdB sera nulle.
70 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

Le point x représente xB qui t_min

a ses deux composantes po-


sirives. En direction du vec-
teur d, on ne peut pas aller
plus loin que tmax ą 0 sans
sortir du quadrant positif, ni
que tmin ă 0. x

t_max

Figure 2.11 – Illustration de tmin et tmax

La discussion précédente constitue en fait une démonstration constructive de la proposi-


tion suivante qui nous sera très utile dans toute la suite de notre étude.

Proposition 2.5.2 (Réduction de composantes positives) Soit un ensemble de


contraintes sous la forme standard du simplexe et un point x réalisable (Ax “ b, x ě 0) dont
les composantes positives xB ą 0 et nulles xN “ 0 sont telles que les colonnes Ai , i P B
regroupées dans la sous-matrice B sont linéairement dépendantes, donc ker B ­“ H. Alors
il existe une ensemble d’indices B̂ Ă B tel que x̂ est réalisable et comporte au moins une
composante positive de moins que x, x̂B̂ ą 0.

Les solutions de base sont des point extrêmes

Théorème 2.5.3 (Solutions extrêmes sous forme standard) Les points extrêmes
d’un ensemble défini par des contraintes linéaires sous la forme standard du simplexe sont
précisément ses solutions de base réalisables.

Preuve Soit x une solution de base réalisable associée à rrB | N ss. Puisque la sous-matrice
B est inversible, si on veut construire un segment de droite contenant x, il faudra que
d’autres composantes que celles de B soient positives. Or, toutes les composantes doivent
être non-négatives, donc ... Ce qui montre qu’une solution de base ne peut pas appartenir à
2.5. QUELQUES PROPRIÉTÉS DES CONTRAINTES LINÉAIRES 71

un segment réalisable sauf le segment dégénéré réduit au seul point x et ainsi toute solution
de base est un point extrême de l’ensemble réalisable.
Par ailleurs, soit x une solution qui n’est pas de base. La démonstration de la pro-
position 2.5.2 permet d’exhiber un segment d’extrémités xB ` maxptmin , ´1qdB et xB `
minptmax , 1qdB qui contient x. Donc, une solution pas de base n’est pas un point extrême de
l’ensemble réalisable. l

Existence de solutions de base réalisables


Avec l’outil puissant de la proposition, nous pouvons démontrer un thèorème important.

Théorème 2.5.4 (Existence de solutions de base réalisables) Si le problème 2.2


possède une solution réalisable, alors il possède une solution de base réalisable

Preuve Si les colonnes associées aux composantes positives de x ne sont pas linéairement
indépendantes, il suffit d’appliquer la proposition 2.5.2 autant de fois qu’il faudra pour arriver
à une solution réalisable dont les composantes positives correspondent à des colonnes linéai-
rement indépendantes de la matrice A. À chaque application de la proposition, le nombre de
composantes positives est réduit d’au moins un, donc tôt ou tard, nous aurons obtenu une
solution de base réalisable.
Soit donc x une solution réalisable dont les composantes positives correspondent à des
colonnes de A linéairement indépendantes. S’il y a moins de m composantes positives, il
suffit de compléter ces colonnes pour obtenir m colonnes linéairement indépendantes et la
solution est alors une solution de base réalisable. C’est toujours possible de compléter les
colonnes puisque nous avons supposé que rangpAq “ m. l

Exercice 2.5.2 [Solutions réalisables et solutions de base] Considérez le problème suivant,


sous forme standard :
min cT x “ 6x1 ` 3x2
sujet à 2x1 ` x2 ` s1 “ 16
x 1 ` x2 ` s2 “ 10
x1 , x2 , s1 , s2 ě 0

a) Vérifiez que p1, 1, 13, 8qt est une solution réalisable. Appliquez la construction de la
démonstration du théorème 2.5.4 pour obtenir une solution de base réalisable.
b) Donnez toutes les solutions de base de ce problème.
c) Parmi les solutions de base, identifiez celles qui sont réalisables.
72 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

d) Les variables s sont des variables d’écart. Vérifiez que les solutions de base réalisables
énumérées en (c) correspondent bel et bien aux sommets du polygone de contraintes
d’inégalités en les seules variables x. Interprétez géométriquement les solutions de base
non-réalisables.

Dans ce dernier exercice, on converti une solution réalisable quelconque dans une solution
de base réalisable à l’aide d’un procédé qui avait été utilisé dans la démonstration du théo-
rème 2.5.4. Ce procédé, ou algorithme, n’a pas vraiment d’utilité pratique, le but de l’exercice
était de mieux comprendre la démonstration du théorème en appliquant sa construction sur
un exemple simple.

2.6 Résumé
Nous avons présenté la formulation d’un problème d’optimisation linéaire. Nous avons
déduit l’intuition géométrique permettant de résoudre de petites instances de ces problèmes.
Nous avons ensuite introduit plusieurs variantes de problèmes d’optimisation linéaire tout
en remarquant que toutes ces formes sont en quelque sorte équivalentes entre elles car on
peut passer d’une forme à l’autre. Nous avons caractérisé ce qu’on entend par solution d’un
modèle d’optimisation, soit une déclaration que le modèle n’est pas réalisable, soit qu’il n’est
pas borné, soit que l’on exhibe une solution optimale.
La forme dite “standard du simplexe” a permis de formuler un résultat mathématique
important qui stipule que si un modèle est réalisable, alors il possède une solution de base
réalisable.

2.7 Tous les exercices du chapitres


Exercice (2.2.1, page 55) [Solution graphique] Résoudre graphiquement les problèmes
suivants.
a)

max x1 ` 2x2
sujet à x1 ` x2 ď 2
x1 ` 3x2 ď 3
x1 , x2 ě0
2.7. TOUS LES EXERCICES DU CHAPITRES 73

b)

max 45 x1 ` 3x2
sujet à 5x1 ` 10x2 ě 25
3x1 ` 4x2 ě 13
x1 , x2 ě0

c)

min ´2x1 ´ x2
sujet à x1 ` 38 x2 ď4
x1 ` x 2 ď2
2x1 ď3
x1 , x2 ě0

d)

max 3x1 ´ 2x2


sujet à 2x1 ` 2x2 ě 4
x1 ` x2 ď 1
x1 , x2 ě0

Exercice (2.2.2, page 56) [Graphique avec paramètre]


a) Résoudre graphiquement le problème

min ´x1
sujet à ´2x1 ` x2 ď2
x1 ` x2 ď8
x1 ´ x2 ď4
x1 , x2 ě0

b) Supposons maintenant que la fonction objetif devient ´x1 ` cx2 . Déterminez les valeurs
du paramètre c pour que la solution optimale trouvée en (a) demeure optimale avec le
nouvel objectif.

Exercice (2.2.3, page 57) [Diète et réduction] On désire déterminer la composition à


coût minimal d’un aliment pour bétail qui est obtenu en mélangeant au plus trois produits
bruts, de l’orge, des arachides et du sésame. L’aliment ainsi conditionné devra comporter au
moins 22% de protéines et 3.6% de graisse pour se conformer aux exigences du client.
74 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

Les pourcentages de protéines et de graisse contenus dans chacun des ingrédients ainsi que
le coût par tonne de chaque produit sont indiqués dans le tableau suivant.

Produit brut orge arachide sésame


% de protéines 12 52 42
% de graisse 2 2 10
Coût/tonne ($) 25 41 39

a) En notant xi la fraction de tonne de produit brut i contenu dans une tonne d’aliment,
formulez un modèle spécifique de cette situation.
b) Montrez qu’il est possible de réduire la dimension du problème, il est possible d’exprimer
une des variables en fonction des deux autres. Résolvez le alors graphiquement.

Exercice (2.3.1, page 58) [Contraintes supérieures ou égales] Obtenez une contrainte
d’égalité équivalente à la contrainte ax ě b.

Exercice (2.3.2, page 59) [Variable libre] Utilisez la seconde équation pour exprimer x3
et substituez le tout dans la première équation

Exercice (2.3.3, page 62) [Forme standard du simplexe] Écrire les problèmes suivants
sous forme standard.
a)
min z “ 18x1 ` 12x2 ` 2x3 ` 6x4
sujet à 3x1 ` x2 ´ 2x3 ` x4 “ 2
x1 ` 3x2 ´ x4 ď 2
x1 ě 0
x2 , x4 ď 0
x3 libre.
b)
min z “ ´x1 ´ 4x2 ´ 3x3
sujet à 2x1 ` 2x2 ` x3 ď 4
x1 ` 2x2 ´ 2x3 ě 6
x1 , x2 ě 0
x3 libre.
c)
min z “ x1 ` 3x2 ` 4x3
sujet à x1 ` 2x2 ` x3 “ 5
2x1 ` 3x2 ` x3 “ 6
x2 , x3 ě 0
x1 libre.
2.7. TOUS LES EXERCICES DU CHAPITRES 75

d)
min z “ |x1 | ` |x2 | ` |x3 |
sujet à x1 ` 2x2 ď 1
2x1 ` x3 “ 3
x1 x2 x3 libres.
e)
max min t5x1 , 2x2 u
sujet à 2x1 ` x2 ` 3x3 ď 4
x2 ` 5x3 ď 6
x1 , x2 ě 0
x3 libre.

Exercice (2.3.4, page 63) [Solutions de base] Considérez le système linéaire suivant.

x1 ` 2x2 ` x3 “ 5
2x1 ` ax2 ` 3x3 “ 6 (2.16)
x1 , x2 , x3 ě 0.

a) Pour quelles valeurs du paramètre a le système possède-t-il exactement trois bases ? Dé-
notons l’ensemble des valeurs D.
b) Déterminez les trois solutions de base identifiées en (a).
c) Pour chacune des solutions calculées en (b), énoncez des conditions sur a pour que cette
solution soit réalisable.
d) Y a-t-il une(des) valeur(s) de a pour que toutes les solutions soient réalisables et non
dégénérées ?
e) Pour quelles valeurs de a une ou plusieurs solutions de base sont-elles dégénérées ?

Exercice (2.3.5, page 64) [Sommets et solutions de base] Considérez l’exemple (1.5) –
(1.8) qui se ramène sous la forme standard du simplexe comme
¨ ˛ ¨ ˛
1 1 1 0 0 400
˝2 1 0 1 0‚x “ ˝600‚
0 1 0 0 1 300
x ě 0.

a) Combien de colonnes sont utilisées pour définir une matrice de base B ?


b) Combien y a-t-il de sous-matrices B de dimensions appropriées ?
c) Combien de colonnes sont utilisées pour représenter une matrice hors base N ?
d) Combien de solutions de base cet exemple comporte-t-il ? C’est le nombre total de sous-
matrices B inversibles de la matrice des contraintes.
76 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE

e) Combien de solutions de base réalisables cet exemple comporte-t-il ?


f) Identifiez sur le graphique de la figure 2.2 les solutions de base réalisables (leurs compo-
santes x1 , x2 ).
Exercice (2.3.6, page 64) [Équivalence de formulations] Considérez le programme li-
néaire le plus général comportant des contraintes d’égalité et d’inégalité ainsi que des va-
riables bornées et des variables libres.
min c1 x1 ` c2 x2
sujet à A11 x1 ` A12 x2 ď b1
A21 x1 ` A22 x2 “ b2
x1 ě 0,
où A est une matrice pm1 ` m2 q ˆ pn1 ` n2 q et c, x P Rn1 `n2 et b P Rm1 `m2 .
a) Ramenez ce programme sous la forme standard du simplexe (2.2).
b) Ramenez ce programme sous la forme standard utilisant uniquement des contraintes d’in-
égalité (2.5)
Exercice (2.3.7, page 65) [Contraintes d’intervalle] Souvent, un programme linéaire se
présente avec des contraintes d’intervalle de la forme :
5 ď 6x1 ´ x2 ` 3x3 ď 8.
a) Montrez que cette contrainte est équivalente aux contraintes
6x1 ´ x2 ` 3x3 ` x4 “ 8
0 ď x4 ď 3.

b) Mettez les contraintes en a) sous forme standard.


c) Montrez que le programme linéaire
min z “ cx
sujet à bi ď Ax ď bs
x ě 0
peut se reformuler avec des contraintes d’égalité, et des variables bornées supérieurement.
bi sont des bornes inférieures et bs des bornes supérieures, avec bi ď bs .
d) Mettez le programme en c) sous forme standard.
Exercice (2.4.1, page 67) [Pratique de pivots 2 lignes] Nous avons calculé trois des six
solutions de base pour le petit exemple. Complétez le calcul des trois autres solutions de base
en effectuant des opérations de pivot appropriées à partir de l’un ou l’autre des tableaux ci-
haut calculés.
2.7. TOUS LES EXERCICES DU CHAPITRES 77

Exercice (2.4.2, page 67) [Pratique de pivots 3 lignes] Considérez les contraintes de l’exer-
cice 2.3.5 et qui correspondent à la figure 2.2. Le domaine réalisable est le pentagone illustré.
Il y a déjà une identité dans la matrice, donc le tableau de départ peut correspondre aux
indices B “ t3, 4, 5u. C’est la solution de base réalisable x1 “ x2 “ 0. Effectuez des pivots
pour parcourir toutes les solutions de base réalisables. Utilisez la figure pour vous guider
dans le choix d’ordre de pivots.

Exercice (2.5.1, page 68) [Inégalités] Complétez la démonstration pour une contrainte
d’inégalité.

Exercice (2.5.2, page 71) [Solutions réalisables et solutions de base] Considérez le pro-
blème suivant, sous forme standard :

min cT x “ 6x1 ` 3x2


sujet à 2x1 ` x2 ` s1 “ 16
x1 ` x2 ` s2 “ 10
x1 , x2 , s1 , s2 ě 0

a) Vérifiez que p1, 1, 13, 8qt est une solution réalisable. Appliquez la construction de la dé-
monstration du théorème 2.5.4 pour obtenir une solution de base réalisable.
b) Donnez toutes les solutions de base de ce problème.
c) Parmi les solutions de base, identifiez celles qui sont réalisables.
d) Les variables s sont des variables d’écart. Vérifiez que les solutions de base réalisables
énumérées en (c) correspondent bel et bien aux sommets du polygone de contraintes
d’inégalités en les seules variables x. Interprétez géométriquement les solutions de base
non-réalisables.
78 CHAPITRE 2. INTRODUCTION ET INTUITION GÉOMÉTRIQUE
Chapitre 3
Algorithme du simplexe

Sujets du chapitre
‚ Solutions de base.
‚ Conditions d’optimalité.
‚ Déduction de l’algorithme du simplexe.
‚ Organisation des calculs.

79
80 CHAPITRE 3. ALGORITHME DU SIMPLEXE

Introduction
Nous avons présenté quelques propriétés qui découlent d’une intuition géométrique sur
des exemples simples en petites dimensions. Une notion importante est celle de point extrême.
Nous allons maintenant justifier mathématiquement l’intuition qu’un problème d’optimisa-
tion linéaire admet une solution en un point extrême. Ceci constituera la base de l’algorithme
du simplexe, qui parcourre les points extrêmes jusqu’à identifier la solution.

3.1 Formulation du problème


Pour simplifier l’exposé, nous considérons que le problème est formulé sous la forme dite
standard, c’est-à-dire
min cx
sujet à Ax “ b, (3.1)
xě0
où c et x sont des vecteurs de Rn , b un vecteur de Rm et A une matrice mˆn. Les lignes de la
matrice A sont notées ai , i “ 1, 2, . . . , m alors que ses colonnes sont notées Aj , j “ 1, 2, . . . , n.
De plus, nous faisons l’hypothèse que la matrice A est de rang m, c’est-à-dire que ses lignes
sont linéairement indépendantes. Ainsi, les contraintes définissent l’intersection d’un sous-
espace de Rn de dimension n ´ m avec l’orthant positif. Le vecteur c constitue le gradient
de la fonction linéaire cx, et donc est un vecteur-ligne.
Nous verrons plus tard que l’hypothèse que les lignes de A sont linéairement indépen-
dantes n’est pas très restrictive.

3.2 Solutions de base réalisables


Attardons-nous un instant sur la structure du domaine réalisable, cette intersection d’un
sous-espace avec l’orthant positif. Plus particulièrement, essayons de caractériser les points
d’intersection avec la frontière de l’orthant. Dans R3 , par exemple, s’il n’y a qu’une seule
contrainte (en plus des bornes qui définissent l’orthant), le domaine réalisable est l’intersec-
tion d’un plan avec l’orthant. Selon la position de ce plan, l’intersection peut être vide, ou
encore constituée seulement de l’origine, ou encore d’un demi-axe, ou d’un cône, ou finale-
ment d’un triangle. Dans tous les cas où le domaine réalisable n’est pas vide, au moins un
point de la partie positive des axes canoniques en fait partie. C’est une propriété importante.
Nous verrons qu’un tel point appartenant à un axe canonique est un point extrême du do-
maine réalisable, correspondant à ce que nous nommerons une solution de base. Complétons
notre observation de R3 en examinant l’intersection d’un sous-espace de dimension deux
(une droite) avec l’orthant. Dans ce cas, si l’intersection n’est pas vide, elle est constituée
3.2. SOLUTIONS DE BASE RÉALISABLES 81

de l’origine, ou encore d’une demi-droite, ou encore d’un segment de droite. Dans ce cas,
les points extrêmes appartiennent à un plan canonique (extrémités de la demi-droite ou du
segment).
Ces illustrations géométriques sont à la base de la caractérisation des solutions de base en
optimisation linéaire. En effet, en supposant que le domaine n’est pas vide, un sous-espace de
Rn de dimension n ´ m intersecte au moins un hyperplan canonique de dimension m. Dans
l’exemple de R3 , le plan intersecte au moins un axe canonique (hyperplan de dimension un)
alors que la droite intersecte au moins un des plans canoniques (xy, yz ou zx). Supposons
donc que les composantes d’un vecteur de Rn sont ordonnées de telle sorte que l’hyperplan
canonique qui contient un tel point d’intersection est formé des m premières composantes.
Ce point est donc de la forme px1 , x2 , . . . , xm , 0, 0, . . . , 0qt . Ordonnons conséquemment les
colonnes de la matrice A ainsi que les composantes du vecteur c, et écrivons :
ˆ ˙
xB
min cx “ rcB , cN s
x
ˆ N˙
xB
sujet à Ax “ rB, N s “ BxB ` N xN “ b
xN
xB ě 0
xN “ 0.
Maintenant, supposons que la matrice B est inversible et donc xB “ B ´1 b. Les colonnes de
la matrice B forment une base du sous-espace canonique de dimension m alors que le vecteur
xB constitue les coordonnées du vecteur b dans cette base. La partition rrB | N ss, ou encore
le vecteur x “ rxB , 0s est nommé solution de base réalisable.
Cette notation est universelle, malgré l’ambigüité de la signification des symboles B et N ,
qui réfèrent à la partition des composantes de Rn mais qui réfèrent aussi aux sous-matrices
correspondantes de la matrice A.
Avant de terminer cette introduction, revenons sur l’hypothèse que la matrice B soit
inversible. Puisque nous supposons que BxB “ b, même si la matrice B est singulière, le
système d’équations Bx “ b possède tout de même une solution. En fait, si la matrice B est
singulière, c’est que le système Bx “ b possède plusieurs solutions, dont certaines comportent
des composantes nulles. C’est une manifestation du phénomène de dégénérescence, que nous
traiterons plus tard.

Exercice 3.2.1 [Systèmes d’équations linéaires]


a) Montrez que si B est une matrice m ˆ m singulière, et si le système Bx “ b possède une
solution, alors l’ensemble des solutions constitue un ensemble affine.
b) Dans les conditions de a), montrez que le système possède une solution avec une ou des
composantes nulles.
82 CHAPITRE 3. ALGORITHME DU SIMPLEXE

3.3 Condition d’optimalité


Il est remarquable que la solution d’un problème linéaire puisse se limiter aux solutions
de base réalisables. C’est l’objet du théorème dit théorème fondamental de l’optimisation
linéaire.

Théorème 3.3.1 (Théorème fondamental de l’optimisation linéaire) Si le pro-


blème 2.2 possède une solution réalisable optimale, alors il possède une solution de base
réalisable optimale

Preuve La démonstration est la même que celle du théorème 2.5.4. En effet, la dé-
monstration de la proposition 2.5.2 utilise une direction dB avec un pas de déplacement
tmin ď t ď tmax qui peut être positif ou négatif puisque ´8 ď tmin ă 0 ă tmax ď 8. Puisque
le point réalisable est optimal, obligatoirement cpx ` tdq ě cx, donc cptdq ě 0 sinon ça
contredirait que cx est optimal. Donc, cd ě 0 et ´cd ě 0 entraîne que cd “ 0 et que le point
construit dans la proposition 2.5.2 possède la même valeur de fonction objectif et donc est
optimal. l
Nous examinons dans cette section les conditions sous lesquelles une solution rxB , 0s est
optimale pour le problème linéaire (2.2). Il semble clair que pour qu’une telle solution soit
optimale, il suffit de s’assurer qu’il est impossible de réduire la fonction objectif cB xB ` cN 0
en augmentant les composantes de xN . Profitons du fait que B est inversible pour écrire
xB “ B ´1 pb ´ N xN q. Cette dernière relation permet de mettre xB en fonction de xN . De
même, la fonction objectif peut se récrire comme

cB xB ` cN xN “ cB B ´1 pb ´ N xN q ` cN xN
“ pcN ´ cB B ´1 N qxN ` cB B ´1 b.

En fait, il est maintenant possible de reformuler le problème (2.2) en utilisant seulement les
composantes xN , donnant le problème réduit :

min pcN ´ cB B ´1 N qxN


sujet à B ´1 pb ´ N xN q ě 0 (3.2)
xN ě 0.

On voit donc que si pcN ´ cB B ´1 N q ě 0, alors xN “ 0 est solution du problème (3.2), et


donc xB , xN est solution du problème (2.2). Si de plus xB ą 0 et xN “ 0 est solution du
problème (3.2), alors pcN ´ cB B ´1 N q ě 0. En effet, autrement, il serait possible d’augmenter
légèrement une composante de xN associée à une composante négative du vecteur pcN ´
cB B ´1 N q tout en assurant que xB p“ B ´1 pb ´ N xN qq demeure non-négatif, ce qui ferait
3.3. CONDITION D’OPTIMALITÉ 83

décroître la fonction objectif, contredisant l’optimalité de la solution. Notre discussion justifie


le théorème suivant.

Théorème 3.3.2 (Condition suffisante d’optimalité) Soit une solution de base réa-
lisable x “ rxB xN s. Si pcN ´ cB B ´1 N q ě 0, alors x est une solution optimale.

Cependant, si une composante de xB est nulle, il est concevable qu’aucune augmentation


d’une certaine composante de xN ne maintienne xB non-négatif. Ceci est une manifestation
du phénomène de dégénérescence, que nous étudierons en détail plus tard. Mentionnons
seulement que dans un tel cas, la décomposition rrB | N ss des composantes positives n’est pas
unique (puisqu’une valeur de xB est nulle), et il est possible que le vecteur pcN ´cB B ´1 N q soit
non-négatif pour une autre décomposition. Nous démontrerons plus tard le résultat profond
suivant.

Théorème 3.3.3 (Condition nécessaire d’optimalité) Soit une solution de base réa-
lisable et optimale x. Alors, il existe une décomposition x “ rxB xN s telle que pcN ´
cB B ´1 N q ě 0.

Évidemment, si x comporte exactement m composante positives, il existe une seule dé-


composition x “ rxB xN s. La profondeur du théorème vient du fait que si x comporte moins
de m composantes positives, plusieurs décompositions existent et le théorème assure qu’au
moins une d’elles satisfait à la condition d’optimalité.

3.3.1 Exemple
Revenons à l’exemple (2.7), où nous avons énuméré les trois bases réalisables (2.8)
t1, 4u, t1, 3u, t1, 2u. Pour le vecteur de coût p1, ´1, 0, 0q, la résolution graphique nous donne
que la solution est x1 “ 35 , x2 “ 45 . Donc, la base optimale est B “ t1, 2u et N “ t3, 4u.
Calculonsˆdonc pcN˙´ cB B ´1 N q. cN “ 0, cB “ p1, ´1q et l’exercice 2.4.1 nous a fourni
´3 ´1
B ´1 N “ 15 25 . Donc pcN ´ cB B ´1 N q “ p 45 , 35 q ě 0, ce qui confirme que notre solution
5 5
de base satisfait à la condition d’optimalité.

Exercice 3.3.1 [Plusieurs bases] Modifions légèrement l’exemple (2.7) :


min z “ x1 ´ x2
sujet à 2x1 ` x2 ě 2
(3.3)
x1 ` 3x2 ď 6
x1 , x2 ě 0
84 CHAPITRE 3. ALGORITHME DU SIMPLEXE

a) Résolvez graphiquement. La solution optimale est x “ p0, 2qt .


b) Ramenez le problème sous la forme standard du simplexe en ajoutant les variables x3 et
x4 comme dans le problème 2.7.
c) Vérifiez que trois bases distinctes correspondent à la solution optimale.
d) Pour chacune de ces trois bases, calculez pcN ´ cB B ´1 N q.

L’exercice montre qu’il y a au moins une base décrivant la solution optimale pour laquelle
pcN ´ cB B ´1 N q ě 0 (il y en a deux). C’est la conclusion du théorème 3.3.3.

3.3.2 Équations des conditions d’optimalité


En terminant cette section, présentons la notation usuelle en optimisation linéaire. Le
def
vecteur ligne π “ cB B ´1 est nommé multiplicateurs alors que le vecteur cN ´ πN est nommé
vecteur des coûts réduits. Souvent, on dénote πN “ z, de telle sorte que le j ième coût réduit
s’exprime comme cj ´ zj .
Terminons cette discussion des conditions d’optimalité en résumant les équations et in-
équations que doit satisfaire une solution optimale.

Ax “ b, (3.4)
x ě 0 (3.5)
πA ` s “ c, (3.6)
s ě 0 (3.7)
sx “ 0. (3.8)

‚ Les équations (3.4) et (3.5) stipulent que x est réalisable.


‚ L’équation (3.6) vient de
1. la définition de π “ cB B ´1 , donc πB “ cB ;
2. la condition d’optimalité cN ´ πN ě 0, ou encore πN ď cN ; de plus, s “ c ´ πA ě 0
‚ la condition (3.8) vient de la partition base-hors base, associé aux composantes de B,
πB ` sB “ cB estř satisfait pour sB “ 0 alors que xN “ 0 dans la partition. Donc, puisque
x, s ě 0, sx “ si xi ě 0 et on a égal à zéro seulement si pour chaque i, au moins un
de si et xi s’annule. Dans la partition, xN et sB s’annulent, c’est à dire xi “ 0@i P N et
si “ 0@i P B.
3.4. ALGORITHME DU SIMPLEXE 85

Exercice 3.3.2 [Problèmes non bornés] Est-il possible que le problème (2.2) ainsi que le
problème max cx sous les mêmes contraintes soient tous deux non-bornés ? Justifiez.

3.4 Algorithme du simplexe


Nous allons déduire l’algorithme du simplexe en supposant que la condition d’optimalité
énoncée plus haut n’est pas satisfaite en un certain point qui s’exprime comme rxB , 0s ě 0.
Examinons donc un cas où la décomposition rxB , 0s donne lieu à des coûts réduits négatifs.
En d’autres termes, examinons la situation lorsque les conditions d’optimalité discutées plus
haut ne sont pas satisfaites. Nous allons proposer une autre décomposition rxB 1 , 0s pour
laquelle la valeur de la fonction objectif cB 1 xB 1 ă cB xB . Tout comme dans la discussion au
sujet des conditions d’optimalité, supposons que xB ą 0. Nous étudierons en détail le cas
dégénéré plus loin.
Comme nous l’avions discuté plus haut, il est alors possible d’augmenter une composante
de xN tout en diminuant la fonction objectif. Supposons que nous ayons une composante ̄
pour laquelle c̄ ´ z̄ ă 0. Alors, nous allons augmenter la composante x̄ . S’il est possible
d’augmenter x̄ sans qu’aucune composante de xB ne diminue, alors il est possible de pro-
duire une solution réalisable de coût aussi petit que l’on veut, et le problème est non-borné
inférieurement.
Autrement, il nous faut déterminer l’augmentation maximale que nous pouvons réaliser
à la composante x̄ tout en assurant xB ě 0. Examinons l’expression que nous connaîssons,
xB “ B ´1 pb ´ N xN q. Puisque nous augmentons seulement la composante x̄ , écrivons xB “
B ´1 pb ´ N̄ x̄ q. C’est donc le vecteur B ´1 N̄ qui est responsable de l’augmentation ou de
la diminution des composantes de xB en fonction de x̄ . La situation est similaire à celle
décrite dans la proposition 2.5.2 où on détermine la plus grande valeur tmax assurant de
demeurer dans l’ensemble réalisable. Si B ´1 N̄ ď 0, alors aucune composante de xB ne
diminue lorsque x̄ augmente, et le problème n’est pas borné, tmax “ 8. Autrement, une
augmentation unitaire de x̄ provoque un changement de ´δxB “ ´B ´1 N̄ , ou encore, pour
une composante i donnée, δxi “ pB ´1 N̄ qi . Puisque pour xN =0 on a xB “ B ´1 b, on a que la
xi
valeur de x̄ qui annule xi est précisément δx i
. On garanti donc que xB demeure non-négatif
en posant
xi
xı̄ “ min p q. (3.9)
i:δxi ą0 δxi

Après ce changement, la partition rrB | N ss est modifiée en ajoutant la variable ̄ à B et en


enlevant de B (pour l’ajouter dans N ) un des xi qui devient zéro, c’est-à-dire un qui atteint
xi
le mini:δxi ą0 p δxi
q. Alors, on passe de la partition rrB | N ss à la nouvelle partition rrB 1 | N 1 ss
définie comme suit : B 1 “ B Y t̄uztı̄u et N 1 “ N Y tı̄uzt̄u, où ı̄ est un des indices qui
86 CHAPITRE 3. ALGORITHME DU SIMPLEXE

xi
atteignent le mini:δxi ą0 p δxi
q. Nous supposons pour l’instant que ce min n’est atteint que
pour un seul indice ı̄ et de plus que xı̄ ą 0. Lorsque ce n’est pas le cas, c’est que le problème
comporte de la dégénérescence, et ce phénomène sera étudié plus tard.

3.4.1 Organisation calculatoire : forme canonique d’un problème


Comme nous venons de le voir, la formulation de la condition d’optimalité, ainsi qu’une
étape de l’algorithme du simplexe se calculent aisément dès qu’on dispose des quantités
B ´1 N, π “ cB B ´1 ainsi que cN ´ πN et B ´1 b. On augmente donc les contraintes d’une
simili-contrainte qui établit la valeur de la fonction objectif, ξ ` cx “ 0, donc ξ “ ´cx pour
formuler les équations linéaires ˆ ˙
1 cB cN 0
.
0 B N b
ˆ ˙´1
1 cB
Maintenant, nous multiplions cette matrice par . Il n’est pas difficile de se convaincre
0 B
que
ˆ ˙´1 ˆ ˙ ˆ ˙
1 cB 1 ´cB B ´1 1 ´π
“ “ ,
0 B 0 B ´1 0 B ´1
et donc ˆ ˙´1 ˆ ˙ ˆ ˙
1 cB 1 cB cN 0 1 0 cN ´ πN ´πb
“ .
0 B 0 B N b 0 I B ´1 N B ´1 b

3.4.2 Organisation calculatoire : pivots et tableaux


L’algorithme du simplexe consiste en la détermination des changements d’indices entre
B et N . Il est commode de représenter les quantités requises dans un tableau du simplexe tel
qu’introduit à la section 2.4. Nous allons enrichir les tableaux en leur ajoutant une ligne de
telle sorte que le tableau corresponde aux équations de la forme canonique, sauf la première
colonne qui est toujours la même. La structure d’un tableau est donc la suivante.

xB xN
0 cN ´ zN ´cB xB (3.10)
I B ´1 N B ´1 b

Les opérations de pivot seront effectuées comme précédemment, en ajoutant le calcul pour
“zéroter” la nouvelle ligne dite “ligne zéro”. Un problème d’optimisation linéaire correspon-
dant à un tel tableau est dit de forme canonique.
L’algorithme du simplexe s’assure que la dernière colonne, B ´1 b ě 0 par le choix de ı̄
dit variable sortante car cet indice sera enlevé de B et ajouté dans N , cette variable sortira
de la base. La variable ̄ entrera dans la base et est nommée variable entrante. Les choix de
3.4. ALGORITHME DU SIMPLEXE 87

variables entrante et sortante détermine l’élément pivot du tableau et le calcul du pivot est
comme à la section 2.4.
L’algorithme du simplexe se résume aux trois étapes suivantes qui sont répétées jusqu’à
ce que c ´ z ě 0.
1. ̄ “ arg minjPN pcj ´ zj q ; indice minimisant la ligne zéro ;
xi
2. ı̄ “ arg mini:δxi ą0 p δx i
q ; c’est le rapport de la dernière colonne divisée par la colonne ̄ ;
3. mettre à jour le tableau selon l’élément pivot de la ligne ı̄ et colonne ̄.
Remarque 3.4.1 Une fois que c ´ z ě 0, on a que toutes les équations (3.4) –(3.8) sont
satisfaites, ce qui signifie que la partition est optimale.

Exemple simple

À partir du problème (2.7) que nous répétons ici

min z “ x1 ´ x2
sujet à 2x1 ` x2 ´ x3 “ 2
x1 ` 3x2 ` x4 “ 3
x1 , x2 , x3 , x4 ě 0

on obtient un tableau de départ

x1 x2 x3 x4
1 ´1 0 0 0
(3.11)
2 1 ´1 0 2
1 3 0 1 3

Ce tableau n’est pas sous forme canonique puisqu’il n’y apparaît pas de matrice identité.
Maintenant, rien d’évident pour obtenir une partition rrB | N ss telle que xB “ B ´1 b ě 0. Nous
verrons aux sections 3.5 et 6.2 des techniques systématique pour y parvenir. Pour l’instant,
t
remarquons par inspection
ˆ ˙ de l’exemple très simpleˆ que 1x “ 1p1 0 ˙0 2q est une solution
2 0 1 2 ´2 0 `˘
réalisable et B “ . Calculons donc B ´1 A “ 5 1 . xB “ B ´1 b “ 12 et
1 1 0 2 2 1
π “ cB B ´1 “ p 12 0q ce qui nous donne c ´ πA “ p0 ´ 23 21 0q. Enfin, en traitant la colonne b
comme une colonne de A, on retrouve 0 ´ πb “ ´1, ce qui nous donne sous forme de tableau
réalisable sous forme canonique, on a bel et bien une identité dans les colonnes 1 et 4, la
ligne zéro a des coefficients nuls dans ces colonnes et la dernière colonne est positive.

x1 x2 x3 x4
0 ´3{2 1{2 0 ´1
1 1{2 ´1{2 0 1
0 5{2 1{2 1 2
88 CHAPITRE 3. ALGORITHME DU SIMPLEXE

Ce que nous recherchons, c’est une partition rrB | N ss telle que le tableau ainsi calculé ait
sa zéroième ligne et sa dernière colonne non-négatives, exception faite du coin commun à la
zéroième ligne et première colonne. L’algorithme du simplexe recherche itérativement une
telle partition en maintenant la dernière colonne non-négative et en progressant pour amener
la première ligne non-négative également.
Appliquons-le. On remarque que la seconde colonne a un élément négatif. Nous allons
échanger x2 P N avec soit x1 , soit x4 . Comment choisir ? Utilisons le critère développé (3.9).
On calcule le quotient de la dernière colonne divisé par la deuxième colonne pour les élé-
ments positifs de la deuxième colonne. Ça donne 2 et 45 , donc on choisit la seconde ligne,
correspondant à x4 . Bref, notre itération va échanger x2 et x4 de partition. On effectue fi-
nalement une opération de pivot. L’élément pivot est à la seconde ligne et seconde colonne.
Il suffit d’effectuer des opérations élémentaires pour transformer la seconde colonne en une
portion d’identité, donc que l’élément pivot vaille un et le reste de la colonne zéro. On divise
la deuxième ligne par l’élément pivot et ajoute un multiple approprié de celle-ci aux autres
lignes pour obtenir :
x1 x2 x3 x4
0 0 4{5 3{5 1{5
(3.12)
1 0 ´3{5 ´1{5 3{5
0 1 1{5 2{5 4{5

Ce tableau est réalisable (dernière colonne non-négative) et optimal (première ligne non-
négative) et la valeur optimale est ´ 15 (élément première ligne et dernière colonne multiplié
par ´1).
Évidemment, sur des problèmes sérieux, beaucoup plus d’une itération seront nécessaires.

Exercice 3.4.1 [Illustration graphique] Illustrez graphiquement l’itération de l’algorithme

L’algorithme du simplexe primal passe d’un point extrême réalisable à l’autre en réduisant
la fonction objectif.

Remarque 1 Notre exemple simple bi-dimensionnel permet facilement d’énumérer tous


les points extrêmes, réalisables ou non. En général, c’est une tâche très difficile
` n ˘ de procéder
à l’énumération. D’abord, le nombre de points extrêmes est très grand, m ; par exemple,
29
n “ 100 et m “ 50 nous fournissent 10 points. Ensuite, il est très difficile de trouver un
ordre pour parcourir tous les points extrêmes.
3.4. ALGORITHME DU SIMPLEXE 89

Notre premier modèle


Revenons au tout premier modèle spécifique introduit à la section 1.1.
max2 1.5x1 ` x2
xPR
sujet à x1 ` x2 ď 400
2x1 ` x2 ď 600
x2 ď 300
x1 , x2 ě 0
Changeons de signe les coefficients de la fonction objectif pour le convertir en minimisation
et on obtient le tableau initial suivant. Le coefficient de x1 est le plus négatif et le critère du
rapport nous donne un pivot à la ligne 2.
x1 x 2 x3 x 4 x5
´ 32 ´1 0 0 0 0
1 1 1 0 0 400 (3.13)
2 1 0 1 0 600
0 1 0 0 1 300
Nous effectuons maintenant un pivot sur l’élément 1,2
x 1 x2 x3 x4 x5
0 ´ 14 0 3
4
0 450
1
0 2
1 ´ 12 0 100 (3.14)
1 1
1 2
0 2
0 300
0 1 0 0 1 300
pour aboutir à la solution optimale décrite dans le tableau final suivant.
x1 x2 x3 x4 x5
1 1
0 0 2 2
0 500
0 1 2 ´1 0 200 (3.15)
1 0 ´1 1 0 200
0 0 ´2 1 1 100

Petit exercice résolu


Considérez le programme linéaire suivant :
min z “ ´9x2 ´ x3 ` 2x5 ` x6
sujet à 5x2 ` 50x3 ` x4 ` x5 “ 10
x1 ´ 15x2 ` 2x3 “ 2
x2 ` 15x3 ` x5 ` x6 “ 6
x1 , x2 , x 3 , x4 , x5 , x6 ě 0
90 CHAPITRE 3. ALGORITHME DU SIMPLEXE

1. Trouvez une base initiale, et fournissez les valeurs des variables de la solution de base
associée.
x4 , x1 , x6 valent 10,2 et 6.
2. Mettez le programme sous forme canonique.
Exprimons la fonction objectif en fonction des variables hors-base. Seul le terme de x6
n’est pas nul, et de la troisième contrainte, on tire que x6 “ 6 ´ x2 ´ 15x3 ´ x5 , donc la
fonction objectif devient 6 ´ 10x2 ´ 16x3 ` x5 .
3. Votre solution de base initiale est-elle optimale ? Pourquoi ?
Non, car les coefficients de la fonction objectif réduite aux variables hors-base ne sont
pas tous non-négatifs.
4. Comment pouvez choisir une colonne pour effectuer une étape de l’algorithme du simplexe ?
Choisissez-en une.
On prend le plus négatif des coûts relatifs, donc on choisit x3 .
5. Comment pouvez-vous choisir une ligne ? Votre choix garantit-il que après le pivot, la
solution de base sera réalisable ? Expliquez.
Le quotient du membre de droite sur l’élément de la colonne de la variable entrante
nous donne l’augmentation maximale assurant que la variable de base correspondante
demeure non-négative. Ici, la première ligne correspond au plus petit quotient.
6. Serait-il possible qu’aucune ligne de puisse être choisie (pas forcément pour cet exemple) ?
Si oui, quelle information en tire-t-on ?
Le critère énoncé ci-haut ne s’applique qu’aux lignes dont la colonne choisie est positive.
Si aucun élément de la colonne choisie est positif, le problème est non-borné.
7. Effectuez l’opération de pivot pour la colonne et la ligne que vous avez déterminées en
(d) et (e). Vérifiez directement dans les équations originales que votre nouvelle solution de
base est réalisable.
x1 x2 x3 x4 x5 x6
´z 0 8{5 0 8{25 8{25 0 ´14{5
x3 0 1{10 1 1{50 1{50 0 1{5
x1 1 ´152{10 0 ´1{25 ´1{25 0 8{5
x6 0 ´1{2 0 ´3{2 ´1{2 1 3
Ainsi, x1 “ 8{5, x3 “ 1{5 et x6 “ 3. Dans les contraintes originales, la première ne
comporte que x3 , et et est satisfaite, la seconde donne 8{5 ` 2{5 “ 2 et la troisième
15p1{5q ` 3 “ 6. La fonction objectif vaut 3 ´ 1{5 “ 14{5.
8. Votre solution est-elle optimale maintenant ? Pourquoi ?
Oui, car les coûts relatifs sont tous positifs.
3.4. ALGORITHME DU SIMPLEXE 91

3.4.3 Organisation calculatoire : dictionnaires


Certains auteurs préfèrent éviter d’inclure toujours la matrice identité dans les tableaux.
La notion de dictionnaire a été introduite et représente l’équation

xB “ B ´1 b ´ B ´1 N xN .

Le dictionnaire comporte donc la structure suivante

xN
z “ cx cB xB cN ´ cB B ´1
xB B ´1 b ´ B ´1 N

Par exemple, le tableau


x1 x2 x3 x4
0 ´3{2 1{2 0 ´1
1 1{2 ´1{2 0 1
0 5{2 1{2 1 2
est complètement équivalent au dictionnaire suivant.

x2 x3
z 1 ´3{2 1{2
x1 1 ´ 1{2 ´ ´1{2
x4 2 ´ 5{2 ´ 1{2

Il y a plusieurs outils disponibles sur internet pour faciliter les calculs de l’algorithme du
simplexe. Mon préféré
https://neos-guide.org/content/simple-pivot-tool
utilise justement la notion de dictionnaire. Si les données (éléments de la matrice A et des
vecteurs c et b) sont rationnels, alors toutes les quantités intermédiaires sont également ra-
tionnelles. Donc, on peut effectuer tous les calculs de manière exacte en utilisant des fractions
plutôt qu’une représentation approchée en décimales. Les calculs en décimales ne sont pas
exacts, mais sont seulement approchés car par exemple 13 n’admet pas de représentation
exacte en décimale, 13 “ 0.333 . . . que l’on approche avec un nombre fini de décimales, par
exemple 31 « 0.3333. Pour nos problèmes d’optimisation linéaire, tant que les données sont
rationnelles, il est possible d’effectuer les calculs et obtenir une solution exacte rationnelle.

Exercice 3.4.2 [Algorithme du simplexe] Le site


https://neos-guide.org/content/simple-pivot-tool
comporte un générateur de problèmes aléatoires. On peut également afficher les calculs en
rationnels (des fractions). Utilisez l’outil pour générer des problèmes et les résoudre par
92 CHAPITRE 3. ALGORITHME DU SIMPLEXE

l’algorithme du simplexe. Attention, les problèmes sont des problèmes de maximisation.


Faites des essais jusqu’à ce que vous puissiez résoudre au moins cinq problèmes générés
aléatoirement consécutifs.

Exercice 3.4.3 [Algorithme du simplexe papier] Encore avec l’outil informatique, générez
au moins quatre problèmes aléatoires et résolvez-les par l’algorithme du simplexe sur papier
dans la forme tableau plutôt que dictionnaire. Effectuez vos calculs en fractions. Utilisez
l’outil pour valider vos calculs.

Exercice 3.4.4 [Réflexion]


a) Est-il possible qu’une variable qui vient d’entrer dans la base à l’itération k en ressorte
à l’itération k ` 1 ? Si oui, donnez un exemple, sinon justifiez.
b) Est-il possible qu’une variable qui vient de sortir de la base à l’itération k entre à nouveau
dans la base à l’itération k ` 1 ? Si oui, donnez un exemple, sinon justifiez.

3.5 Comment obtenir la première solution de base


réalisable
Pour appliquer l’algorithme du simplexe, il faut démarrer avec un problème sous forme
canonique.

3.5.1 Contraintes ď avec b ě 0


Si nous avons à résoudre un problème avec uniquement des contraintes Ax ď b, x ě 0 avec
b ě 0, en le transformant sous forme standard du simplexe, il se retrouve automatiquement
sous forme canonique : Ax ` s “ b, x, s ě 0 et cs “ 0.
3.5. COMMENT OBTENIR LA PREMIÈRE SOLUTION DE BASE RÉALISABLE 93

3.5.2 Cas général


Parmi les techniques usuelles pour initialiser l’algorithme du simplexe, la plus répandue
consiste à résoudre un problème en deux phases. La première phase résout le problème
min ez
sujet à Iz ` Ax “ b (3.16)
x, z ě 0,
où les variables z sont nommées variables artificielles et le vecteur e P Rm est tel que ei “
1, i “ 1, 2, . . . , m. En prenant le soin de multiplier par ´1 les contraintes associées à un
membre de droite bi négatif, le vecteur z “ b, x “ 0 constitue une solution de base réalisable
pour le problème (3.16).
Si le problème (2.2) possède une solution réalisable, alors le problème (3.16) possède une
solution optimale de valeur nulle, et z “ 0. La phase I consiste donc à appliquer l’algorithme
du simplexe au problème (3.16). À sa terminaison, trois cas peuvent se produire :
1. z “ 0, et toutes les composantes de z sont dans la partition N ;
2. z “ 0, mais certaines composantes de z sont dans B ;
3. z ­“ 0.
Dans le premier cas, il est possible de résoudre le problème (2.2) directement. Dans le troi-
sième cas, le problème (2.2) ne possède pas de solution réalisable. Enfin, dans le second cas,
il faut effectuer certaines opérations de pivotage pour éliminer les composantes de z de B.
Cependant, pour ce faire, les critères de pivot sont simplifiées puisque notre unique but est
de compléter la base partielle (éléments de B correspondant à des variables x) avec d’autres
composantes x, tout en les laissant nulles. Soit donc une colonne associée à une variable de
base zi “ 0. Il est alors possible d’effectuer un pivot sur tout élément non-nul de la ligne
āi correspondant à une variable x. Ceci a pour objet de changer la partition sans changer
le point pz, xq, qui constitue une solution dégénérée. Si jamais une ligne de la matrice Ā
devenait nulle, c’est le signe que la matrice A n’est pas de rang m, et il est alors possible
d’éliminer cette ligne.

3.5.3 Exemple
Reprenons notre exemple habituel pour lequel nous avions utilisé une méthode ad hoc
afin d’obtenir une première solution de base réalisable. Appliquons lui la méthodologie que
nous venons de présenter.
Phase I forme tableau avec variables artificielles

On n’a pas besoin du vecteur de coût c dans la phase I.


bt “ “ ‰
2 3
94 CHAPITRE 3. ALGORITHME DU SIMPLEXE

A“ „ 
2 1 ´1 0
1 3 0 1
Les données que nous utilisons pour la phase I incluant les variables artificielles sont comme

suit.
A“ „ 
2 1 ´1 0 1 0
1 3 0 1 0 1
c“ “ ‰
0 0 0 0 1 1
Après mise sous forme canonique, le vecteur c devient

c“ “ ‰
´3 ´4 1 ´1 0 0
On résout maintenant ce problème par l’algorithme du simplexe forme tableau

Phase I forme tableau

Exécution du simplexe primal dans sa forme tableau.


c“ “ ‰
´3 ´4 1 ´1 0 0
bt “ “ ‰
2 3
A“ „ 
2 1 ´1 0 1 0
1 3 0 1 0 1
B= “ ‰
5 6
N= “ ‰
1 2 3 4
Itération 1 choix de la colonne : 2 dans N , 2 dans 1..n ; choix de la ligne : 2

c“ “ ‰
´5 1 4
3
0 1 3
0 3
3.5. COMMENT OBTENIR LA PREMIÈRE SOLUTION DE BASE RÉALISABLE 95

bt “ “ ‰
1 1
A“ „ 
5 ´1 ´1
3
0 ´1 3
1 3
1 1 1
3
1 0 3
0 3

nouveau B = “ ‰
5 2
nouveau N = “ ‰
1 6 3 4
Itération 2 choix de la colonne : 1 dans N , 1 dans 1..n ; choix de la ligne : 1

c“ “ ‰
0 0 0 0 1 1
bt “ “ ‰
3 4
5 5

A“ „ 
´3 ´1 3 ´1
1 0 5 5 5 5
1 2 ´1 2
0 1 5 5 5 5

nouveau B = “ ‰
1 2
nouveau N = “ ‰
5 6 3 4
Itération 3

Solution optimale
La phase I est complétée.

Phase II forme tableau

On remet le vecteur c original.


c“ “ ‰
1 ´1 0 0
On met maintenant ce vecteur c sous forme canonique.
c“ “ ‰
0 0 45 53 (3.17)
96 CHAPITRE 3. ALGORITHME DU SIMPLEXE

Exécution du simplexe primal dans sa forme tableau.


c“ “ ‰
4 3
0 0 5 5
bt “ “ ‰
3 4
5 5
A“ „ 
´3 ´1
1 0 5 5
1 2
0 1 5 5
B= “ ‰
1 2
N= “ ‰
3 4
Itération 1
Solution optimale

Le hasard fait que la phase I termine avec la solution de base réalisable correspondant à
la solution optimale, donc la phase II se réduit à constater l’optimalité. En général, ce n’est
pas le cas.

Exercice 3.5.1 [Méthode des deux phase] Après les avoir mis sous forme standard, ré-
solvez ces programmes linéaires en utilisant une des deux variantes de la méthode des 2
phases du simplexe. Illustrez graphiquement les itérations de la phase 2.
a)
min z “ ´3x1 ´ 2x2
sujet à x1 ` x2 ď 10
x1 ě 4
x1 , x2 ě 0
b)
min z “ x1 ` x2
sujet à ´x1 ` x2 ď ´1
x1 ´ x2 ď ´1
x1 , x 2 ě 0
c)
min z “ x1 ` x2
sujet à 2x1 ` x2 ě 2
x1 ` 3x2 ě 3
x1 , x2 ě 0
3.6. SIMPLEXE RÉVISÉ 97

3.6 Simplexe révisé


Nous examinerons plus tard diverses techniques permettant de mettre-à-jour l’informa-
tion que représente la matrice B ´1 plutôt que de recalculer celle-ci à chaque modification
de la partition rrB | N ss. Pour l’instant, contentons-nous d’observer que si on a sous la main
une représentation de B ´1 alors B ´1 pB, N̄ q “ pI, δxq, donc, dans l’ordre des variables de la
nouvelle partition, cette dernière matrice devient

B ´1 pB1 , . . . , Bi´1 , N̄ , Bi`1 , . . . , Bm , Bi q “ pe1 , . . . , ei´1 , δx, ei`1 , . . . , em , ei q

et en utilisant des opérations élémentaires sur les matrices (voir appendice A.2.1), il est
possible de transformer cette dernière en pI, Nı̄1 q.
Sans préciser davantage comment s’effectuent les calculs, nous pouvons énoncer l’algo-
rithme dit du simplexe révisé. Si le choix de la variable sortante est unique de même que
xB ą 0, il est clair que cet algorithme termine en un nombre fini de calculs car le nombre de
décomposition rrB | N ss est grand, mais fini et à chaque nouvelle décomposition examinée, la
fonction objectif décroît, empêchant d’en examiner aucune plus d’une fois. Cependant, nous
verrons plus tard qu’il faut préciser davantage l’algorithme pour garantir sa terminaison pour
des problèmes dégénérés.
Remarquons ici que l’algorithme du simplexe original (non révisé) consiste à manipuler un
tableau donné par la matrice Ā “ B ´1 rb, B, N s “ rxB , I, B ´1 N s en calculant explicitement
toute la matrice transformée. Le tableau comporte également une “zéroième” ligne c ´ πA
qui vaut zéro dans les colonnes B. En traitant la dernière colonne comme une colonne de A,
on peut utiliser l’élément de la ligne zéro en dernière colonne pour y inscrire ´πb.
La version révisée de l’algorithme présentée ici consiste à calculer au besoin seulement la
colonne B ´1 N̄ à partir d’une représentation de la matrice B ´1 .
On peut résumer une itération de la forme révisée de l’algorithme comme suit.
1. calculer xB “ B ´1 b ;
2. calculer π “ cB B ´1 ;
3. calculer c̄N “ cN ´ πN ;
4. choisir une colonne profitable ̄ telle que p̄cN q̄ ă 0 ;
5. calculer δx “ B ´1 N̄ ;
6. choisir une ligne ı̄ par le test du ratio ;
7. effectuer un pivot sur l’élement pı̄, ̄ de la matrice rB|δxs pour obtenir la nouvelle matrice
B.
98 CHAPITRE 3. ALGORITHME DU SIMPLEXE

Simplexe révisé
t Données : une partition rrB | N ss de Rn , une représentation u
t de la matrice B ´1 ainsi qu’une solution réalisable rxB , 0s. u
optimal Ð faux
non_borné Ð faux
répéter
t Production d’un vecteur de coûts réduits u
π Ð SOLUTION(πB “ cB )
zN Ð πN
d Ð cN ´ zN
t Choix d’une variable entrante u
si (d ą 0 ) alors optimal Ð vrai
sinon
̄ Ð Calcule_̄
δx Ð SOLUTION(Bδx “ N̄ )
t Choix d’une variable sortante u
si (δx ă 0 ) alors non_borné Ð vrai
sinon xi
ı̄ Ð arg mini:δxi ą0 p δxi
q
t Mises-à-jour diverses u
rrB | N ss Ð rrB Y t̄uztı̄u | N Y tı̄uzt̄uss
B ´1 Ð Mise_à_jourpB ´1 , rrB | N ss, ı̄, ̄q

jusqu’à ( optimal _ non_borné)

En pratique, les deux résolutions de systèmes linéaires sont efficaces car la matrice B est
représentées par une décomposition appropriée à la solution. Cette décomposition est donc
mise à jour en même temps que la partition des composantes ; dans l’algorithme, nous avons
nommé cette représentation B ´1 , mais nous verrons qu’il s’agit plutôt d’une décomposition
de la matrice B “ LU
Algorithme 3.1: Simplexe révisé.
3.6. SIMPLEXE RÉVISÉ 99

3.6.1 Exemple
Reprenons l’exemple que nous venons tout juste de voir, la phase I de notre problème
habituel.
À partir du problème habituel (le triangle)

min z “ x1 ´ x2
sujet à 2x1 ` x2 ´ x3 “ 2
x1 ` 3x2 ` x4 “ 3
x1 , x2 , x3 , x4 ě 0

on obtient un tableau de départ

x1 x2 x3 x4
1 ´1 0 0 0
(3.18)
2 1 ´1 0 2
1 3 0 1 3

Phase I Ajoutons mécaniquement deux variables artificielles x5 et x6 . Nous savons qu’il


suffit d’en ajouter une puisque la quatrième colonne en est une de la matrice identité. Pour
cet exemple, appliquons la méthode de la phase I sans raccourci.

x1 x2 x3 x4 x5 x6
1 ´1 0 0 0 0 0
(3.19)
2 1 ´1 0 1 0 2
1 3 0 1 0 1 3

Les indices de base de départ sont donc B “ t5, 6u et la matrice B “ I “ B ´1 . Appliquons


la version révisée de l’algorithme du simplexe. On minimise donc x5 ` x6 et cB “ p1, 1q.
itération 1

1. xB “ 23 ;
2. π “ cB B ´1 “ p1, 1q ;
3. c̄N “ p0, 0, 0, 0q ´ πN “ p´3, ´4, 1, ´1q ;
`1˘
4. On choisit la colonne 2 où le plus négatif des c̄N se trouve, N2 “ 3
;

5. On calcule δx “ B ´1 N2 “ 13 ;
6. Ayant xB et δx, le test du ratio nous informe que le pivot est sur la ligne 2 ;nous allons
remplacer la seconde variable de base (x6 ) par x2 , la colonne choisie.
7. La nouvelle base sera donc B “ t5, 2u ;
100 CHAPITRE 3. ALGORITHME DU SIMPLEXE

8. Mettons à jour B ´1 pour cette nouvelle base (nommons la nouvelle matrice B̄) :

1 0 1
B ´1 |δx “
0 1 3

on effectue le pivot :
1 ´1{3 0
B̄ ´1 |δx “
0 1{3 1
Nous sommes prêts pour l’itérationˆ 2. Les˙indices de base sont maintenant B “ t5, 2u et
1 ´1{3
cB “ p1, 0q, et la matrice B ´1 “ .
0 1{3
itération 2

1. xB “ B ´1 b “ 11 ;
2. π “ cB B ´1 “ p1, ´1{3q ;
3. c̄N “ p0, 0, 0, 1q ´ πN “ p´5{3, 1, 1{3, 4{3q ;
`2˘
4. On choisit la colonne 1 de N où le plus négatif (le seul négatif) des c̄N se trouve, N1 “ 1
;
` ˘
5. On calcule δx “ B ´1 N1 “ 5{3
1{3
;
6. Ayant xB et δx, le test du ratio nous informe que le pivot est sur la ligne 1.
7. La nouvelle base sera donc B “ t1, 2u ;
8. Mettons à jour B ´1 pour cette nouvelle base (nommons la nouvelle matrice B̄) :

1 ´1{3 5{3
B ´1 |δx “
0 1{3 1{3

on effectue le pivot :
3{5 ´1{5 1
B̄ ´1 |δx “
´1{5 2{5 0
Nous avons terminé la phase I puisque les variables artificielles x5 et x6 sont toutes deux
devenues hors-base.

Phase II Nous allons continuer avec seules les variables x1 , x2 , x3ˆet x4 originales.
˙ Le
3{5 ´1{5
vecteur c “ p1, ´1, 0, 0q. Puisque nous avons sous la main B ´1 “ , nous
´1{5 2{5
pouvons appliquer l’algorithme du simplexe dans sa version révisée. B “ t1, 2u et cB “
t1, ´1u.
` ˘
1. xB “ B ´1 b “ 3{5
4{5
;
2. π “ cB B ´1 “ p4{5, ´3{5q ;
3.7. RÉSUMÉ 101

3. c̄N “ p0, 0q ´ πN “ p4{5, 3{5q ; puisque c̄N ą 0, la base est optimale et le problème est
résolu.

Exercice 3.6.1 [Autres choix de pivot] À l’étape 3 de la première itération de la phase


I, on aurait pu choisir 3 des 4 colonnes avec un coût relatif négatif. Nous avons choisi la
colonne 2, associée au plus négatif. Poursuivez l’algorithme avec les deux autres choix. En
particulier, si vous choisissez la colonne 4, puis à l’itération suivante la colonne 1, vous
passerez à la phase II avec les variables de base t1, 4u, exactement le cas traité dans les
notes de cours.

L’algorithme dans sa forme révisée est un peu plus complexe à exécuter à la main, mais
il se prête à une implémentation plus efficace.

Exercice 3.6.2 [Algorithme du simplexe papier en version révisée] Reprenez les exemples
que vous avez utilisés dans l’exercice 3.4.3 mais cette fois-ci, utilisez la version révisée de
l’algorithme pour les résoudre. Effectuez vos calculs en fractions. Utilisez vos solutions
obtenues avec la version tableau de l’algorithme pour valider chacune des itérations.

Exercice 3.6.3 [Deux phases simplexe révisé] Refaites les exercices 3.5.1 avec la version
révisée de l’algorithme du simplexe.

3.7 Résumé
On analyse que s’il existe au moins une solution optimale, il suffit d’explorer les solutions
dites de base pour en trouver une. Le nombre de solutions de base étant fini, si on s’assure de
ne pas tourner en rond, on aura identifié la solution optimale en un nombre fini de calculs.

3.8 Extensions et références


Le matériel de ce chapitre est bien connu. Deux bonnes références quant aux aspects
combinatoires de l’optimisation linéaire sont les livres de Chvátal et de Papadimitriou et
Steiglitz [4]. Bien sûr, le livre classique de Dantzig [3], qui est à l’origine de toute cette
théorie demeure un ouvrage de référence précieux.
102 CHAPITRE 3. ALGORITHME DU SIMPLEXE

3.9 Tous les exercices du chapitres


Exercice (3.2.1, page 81) [Systèmes d’équations linéaires]
a) Montrez que si B est une matrice m ˆ m singulière, et si le système Bx “ b possède une
solution, alors l’ensemble des solutions constitue un ensemble affine.
b) Dans les conditions de a), montrez que le système possède une solution avec une ou des
composantes nulles.

Exercice (3.3.1, page 83) [Plusieurs bases] Modifions légèrement l’exemple (2.7) :

min z “ x1 ´ x2
sujet à 2x1 ` x2 ě 2
(3.20)
x1 ` 3x2 ď 6
x1 , x2 ě 0

a) Résolvez graphiquement. La solution optimale est x “ p0, 2qt .


b) Ramenez le problème sous la forme standard du simplexe en ajoutant les variables x3 et
x4 comme dans le problème 2.7.
c) Vérifiez que trois bases distinctes correspondent à la solution optimale.
d) Pour chacune de ces trois bases, calculez pcN ´ cB B ´1 N q.

Exercice (3.3.2, page 85) [Problèmes non bornés] Est-il possible que le problème (2.2)
ainsi que le problème max cx sous les mêmes contraintes soient tous deux non-bornés ? Jus-
tifiez.

Exercice (3.4.1, page 88) [Illustration graphique] Illustrez graphiquement l’itération de


l’algorithme

Exercice (3.4.2, page 91) [Algorithme du simplexe] Le site


https://neos-guide.org/content/simple-pivot-tool
comporte un générateur de problèmes aléatoires. On peut également afficher les calculs en
rationnels (des fractions). Utilisez l’outil pour générer des problèmes et les résoudre par
l’algorithme du simplexe. Attention, les problèmes sont des problèmes de maximisation.
Faites des essais jusqu’à ce que vous puissiez résoudre au moins cinq problèmes générés
aléatoirement consécutifs.

Exercice (3.4.3, page 92) [Algorithme du simplexe papier] Encore avec l’outil informa-
tique, générez au moins quatre problèmes aléatoires et résolvez-les par l’algorithme du sim-
plexe sur papier dans la forme tableau plutôt que dictionnaire. Effectuez vos calculs en
fractions. Utilisez l’outil pour valider vos calculs.
3.9. TOUS LES EXERCICES DU CHAPITRES 103

Exercice (3.4.4, page 92) [Réflexion]


a) Est-il possible qu’une variable qui vient d’entrer dans la base à l’itération k en ressorte à
l’itération k ` 1 ? Si oui, donnez un exemple, sinon justifiez.
b) Est-il possible qu’une variable qui vient de sortir de la base à l’itération k entre à nouveau
dans la base à l’itération k ` 1 ? Si oui, donnez un exemple, sinon justifiez.

Exercice (3.5.1, page 96) [Méthode des deux phase] Après les avoir mis sous forme stan-
dard, résolvez ces programmes linéaires en utilisant une des deux variantes de la méthode
des 2 phases du simplexe. Illustrez graphiquement les itérations de la phase 2.
a)
min z “ ´3x1 ´ 2x2
sujet à x1 ` x2 ď 10
x1 ě 4
x1 , x2 ě 0
b)
min z “ x1 ` x2
sujet à ´x1 ` x2 ď ´1
x1 ´ x2 ď ´1
x1 , x 2 ě 0
c)
min z “ x1 ` x2
sujet à 2x1 ` x2 ě 2
x1 ` 3x2 ě 3
x1 , x2 ě 0

Exercice (3.6.1, page 101) [Autres choix de pivot] À l’étape 3 de la première itération
de la phase I, on aurait pu choisir 3 des 4 colonnes avec un coût relatif négatif. Nous avons
choisi la colonne 2, associée au plus négatif. Poursuivez l’algorithme avec les deux autres
choix. En particulier, si vous choisissez la colonne 4, puis à l’itération suivante la colonne 1,
vous passerez à la phase II avec les variables de base t1, 4u, exactement le cas traité dans les
notes de cours.

Exercice (3.6.2, page 101) [Algorithme du simplexe papier en version révisée] Reprenez
les exemples que vous avez utilisés dans l’exercice 3.4.3 mais cette fois-ci, utilisez la version
révisée de l’algorithme pour les résoudre. Effectuez vos calculs en fractions. Utilisez vos
solutions obtenues avec la version tableau de l’algorithme pour valider chacune des itérations.

Exercice (3.6.3, page 101) [Deux phases simplexe révisé] Refaites les exercices 3.5.1 avec
la version révisée de l’algorithme du simplexe.
104 CHAPITRE 3. ALGORITHME DU SIMPLEXE
Chapitre 4
Dualité

Sujets du chapitre
‚ Théorie de la dualité linéaire.
‚ Algorithme dual du simplexe.
‚ Un lien avec la théorie des jeux.

105
106 CHAPITRE 4. DUALITÉ

Introduction

4.1 Théorie de la dualité


Examinons maintenant les relations que nous avons obtenues jusqu’à date pour en déduire
une propriété importante à laquelle satisfont les multiplicateurs π lorsque la base est opti-
male. Soit donc rxB , 0s une solution réalisable optimale associée à la décomposition rrB | N ss.
Nous avons la définition πB “ cB . Par ailleurs, le théorème 3.3.3 nous assure qu’il existe
une partition rrB | N ss pour laquelle cN ´ zN ě 0, ou encore πN ď cN . Donc, les multipli-
cateurs associés à une base optimale satisfont à la relation πpB N q “ πA ď c “ pcB cN q.
Nous traitons ces inégalités comme les contraintes d’un problème d’optimisation linéaire se-
lon les variables π. Acceptons que la fonction objectif sera de maximiser πb. Ceci justifie la
proposition suivante.

Proposition 4.1.1 Si rxB , xN “ 0s est une solution de base optimale du problème (2.2),
alors π “ cB B ´1 est une solution réalisable au problème (nommé dual).

max πb
(4.1)
sujet à πA ď c

Examinons maintenant les deux problèmes (2.2) et (4.1). Soit x et π des solutions réalisables
de ces deux problèmes. On déduit directement l’importante relation que πb “ πAx ď cx.
Maintenant, si on injecte rxB , 0s solution optimale de (2.2) et π “ cB B ´1 dans (4.1), on
retrouve πb “ πBxB “ cB xB “ cx et donc l’égalité nous confirme que π “ cB B ´1 est
solution optimale de (4.1). Consignons ce résultat dans la proposition suivante.

Proposition 4.1.2 Si rxB , xN “ 0s est une solution de base optimale du problème (2.2),
alors π “ cB B ´1 est une solution optimale du problème (4.1)

.
Une propriété intuitive est que le dual du dual est le primal original.

Proposition 4.1.3 Le dual du problème (4.1 est le problème (2.2))

.
Preuve Nous allons démontrer cette proposition en ramenant le problème (4.1) à la forme
standard. Cet exercice nous permet d’utiliser des manipulations classiques et d’en introduire
la notation habituelle. Pour transformer en égalités les contraintes d’inégalité, nous intro-
duisons des variables d’écart α ě 0 et récrivons πA ď c sous la forme πA ` α “ c. Pour
que toutes les variables qui définissent le problème soient non-négatives, nous remplaçons les
4.1. THÉORIE DE LA DUALITÉ 107

variables libres π par une différence de nouvelles variables non-négatives : π “ β ` ´ β ´ avec


β ` ě 0 et β ´ ě 0. Ainsi, le problème (4.1) se récrit sous forme standard

max pβ ` ´ β ´ qb
sujet à pβ ` ´ β ´ qA ` α “ c
β` ě 0 (4.2)
β´ ě 0
α ě 0.

Maintenant, convertissons en minimisation et transposons les relations en notant u “ β t et


s “ αt et enfin w “ pβ ` , β ´ , αqt pour obtenir

min ´ bt u` ` bt u´ “ p´bt , bt , 0qw


sujet à At u` ´ At u´ ` s “ rAt , ´At , Isw “ ct
u` ě 0 (4.3)
u´ ě 0
s ě 0.

Le problème (4.3) est de la forme standard du simplexe, nous pouvons donc écrire son dual

max cz
sujet à Az ď ´b
(4.4)
´ Az ďb
Iz ď 0,

et en posant x “ ´z, on retrouve le problème (2.2). l

Corollaire 4.1.1 [Écarts complémentaires] Ajoutons des variables d’écart s de telle sorte
que les contraintes du problème (4.1) deviennent yA ` s “ c avec s ě 0 ; alors, si x et ry, ss
sont des solutions optimales pour les problèmes (2.2) et (4.1) respectivement, sx “ 0.

Nous sommes maintenant en mesure de démontrer le théorème de dualité faible. Nous


aborderons le théorème de dualité forte plus loin, où nous traiterons de la dégénérescence.
La dualité faible affirme que si les problèmes primal et dual ont la même valeur de fonction
objectif pour un x et un π réalisables, alors le x et π en question sont des solutions optimales.
Le théorème de dualité forte se contente de l’existence d’une solution optimale à l’un des deux
problèmes pour garantir l’existence d’une solution optimale de même valeur pour l’autre.
108 CHAPITRE 4. DUALITÉ

Théorème 4.1.4 (Dualité faible) Considérons les problèmes (2.2) et (4.1).


a) si les deux problèmes possèdent une solution réalisable x et π, alors cx ě πb ; de plus, si
cx “ πb, alors x et π sont optimaux pour les problèmes (2.2) et (4.1) respectivement.
b) si un des problèmes n’est pas borné, alors l’autre n’est pas réalisable.
c) Si un des problèmes n’est pas réalisable, alors l’autre est soit non-borné, soit non-
réalisable.

Preuve La partie a) découle des propositions précédentes. De même, pour la partie c), si
un problème n’est pas réalisable, l’autre ne peut pas posséder de solution optimale car sinon,
de la contredirait la partie a). On laisse en exercice le soin de trouver un exemple où ni le
primal, ni le dual ne possèdent de solution réalisable.
Pour justifier la parties b), examinons le problème (4.1). Ses contraintes sont πA ď c,
et donc πAx ď cx pour tout vecteur π réalisable pour le problème (4.1). Maintenant, en
supposant que x est réalisable pour le problème (2.2), on retrouve Ax “ b de sorte que l’on
obtient πb ď cx, c’est-à-dire que toute solution réalisable pour le dual possède une valeur de
fonction objectif à la valeur de l’objectif primal pour une solution réalisable quelconque. Si
le primal n’est pas borné, c’est qu’aucun π ne satisfait πb ą ´8. l

Théorème 4.1.5 (Dualité forte) Si le problème (2.2) possède une solution optimale x˚ ,
alors le problème (4.1) possède une solution optimale π ˚ telle que cx˚ “ π ˚ b.

Ce dernier théorème est en fait une conséquence directe des théorèmes 3.3.3 et 4.1.4.

4.1.1 Exemple du triangle


À partir du problème habituel (le triangle)
min x1 ´ x2
sujet à 2x1 ` x2 ´ x3 “ 2
(4.5)
x1 ` 3x2 ` x4 “ 3
x1 , x2 , x3 , x4 ě 0,
obtenons son dual :
max 2y1 ` 3y2
sujet à 2y1 ` y2 ď 1
y1 ` 3y2 ď ´1
´y1 ď 0
y2 ď 0.
4.1. THÉORIE DE LA DUALITÉ 109

Nous allons maintenant ramener le dual sous forme standard du simplexe, c’est-à-dire avec
seulement des contraintes d’égalité et des variables non négatives. Pour ce faire, observons
que y1 est déjà non négative et y2 est non positive. Effectuons un changement de variable
ȳ2 “ ´y2 de sorte que ȳ2 est non négative. De plus, ajoutons des variables d’écart y3 ě 0,
y4 ě 0. Enfin, remplaçons le max par un min en changeant de signe les coefficients de la
fonction objectif. Tout ça nous donne :
min ´2y1 ` 3ȳ2
sujet à 2y1 ´ ȳ2 ` y3 “ 1
y1 ´ 3ȳ2 ` y4 “ ´1
y1 , ȳ2 , y3 , y4 ě 0
Obtenons maintenant le dual de ce dernier problème qui est sous forme standard.
max z1 ´ z2
sujet à 2z1 ` z2 ď ´2
´z1 ´ 3z2 ď 3
z1 ď 0
z2 ď 0.
Nos variables z sont non positives, effectuons le changement de variables z̄ “ ´z. De plus,
transformons le max en min en inversant les signes des coefficients. Donc, on inverse les z en
z̄ et on inverse les signes, deux inversions de signe se cancellent.
min z̄1 ´ z̄2
sujet à ´2z̄1 ´ z̄2 ď ´2
z̄1 ` 3z̄2 ď 3
z̄1 ě 0
z̄2 ě 0.
Finalement, inversons la première inégalité (multiplions la par ´1) et ajoutons une variable
de surplus z3 ě 0 et une d’écart z4 ě 0.
min z̄1 ´ z̄2
sujet à 2z̄1 ` z̄2 ´ z3 “ 2
z̄1 ` 3z̄2 ` z4 “ 3
z̄1 , z̄2 , z3 , z4 ě 0,
qui est exactement le problème (4.69).

4.1.2 Diverses formulations de problèmes duaux


Les problèmes (2.2) et (4.1) sont liés entre eux par une relation de dualité. D’autres
formulations de problèmes linéaires conduisent à d’autres paires de problèmes duaux.
110 CHAPITRE 4. DUALITÉ

Exercice 4.1.1 [Dualité] Considérez le problème linéaire suivant

min cx
sujet à Ax ď b
x ě 0,

et vérifiez que son dual est

max yb
sujet à yA ď c
yď0

en le ramenant à la forme standard, puis en simplifiant le dual ainsi obtenu.

En fait, on peut montrer que le dual peut être obtenu selon des règles sans passer à
chaque fois par la transformation en forme standard. Le tableau suivant énumère les règles.
Par exemple, la forme (2.2) comporte des contraintes de type “ et des variables de type
ě 0. Selon la table 4.1, les variables du dual sont libres et ses contraintes sont de type ď 0,
exactement le problème (4.1). Un autre exemple, l’exercice 4.1.1 : contraintes de type ď,
donc variables duales de type ď 0 ; variables de type ě 0, donc contraintes duales de type
ď.

primal dual
min max
c : coût b : coût
b : terme de droite c : terme de droite
contrainte i du type ě variable i du type ě 0
contrainte i du type “ variable i du type libre
contrainte i du type ď variable i du type ď 0
variable i du type ě contrainte i du type ď 0
variable i du type libre contrainte i du type “
variable i du type ď contrainte i du type ě 0

Table 4.1 – Règle reliant le primal au dual


4.1. THÉORIE DE LA DUALITÉ 111

Par exemple, considérons

max x 1 ` x2
sujet à ´3x1 ` 2x2 ď ´1
(4.6)
x 1 ´ x2 ď 2
x1 , x2 ě 0.

Nous aurons deux variables duales car notre exemple comporte deux contraintes. La table 4.1
nous informe que pour un problème de maximisation, des contraintes de type “ď” corres-
pondent à des variables duales x ě 0 et des variables primales de type “ě 0" correspondent
à des contraintes du type “ě 0”, donc notre problème dual s’écrit

min ´y1 ` 2y2


sujet à ´3y1 ` y2 ě 1
(4.7)
2y1 ´ y2 ě 1
y1 , y2 ě 0.

Exercice 4.1.2 [Formulation du problème dual] Reprenez les problèmes de l’exercice 2.3.3
page 62 et écrivez le dual de chacun en utilisant deux techniques :
a) à partir de la forme standard du simplexe et en simplifiant le dual ainsi obtenu ;
b) en utilisant la table 4.1.

Exercice 4.1.3 [Auto dual] Écrivez le dual du problème suivant en utilisant la table 4.1.

min x1 ´ x2 ´ 2x3 ` 3x4


sujet à 2x3 ´ x4 ď 1
x3 ´ 3x4 ď ´1
(4.8)
2x1 ` x2 ě 2
x1 ` 3x2 ď 3
x1 , x2 , x3 , x4 ě 0,
Vérifiez que le dual est équivalent au problème lui même, donc que ce problème est son
propre dual !
112 CHAPITRE 4. DUALITÉ

Exercice 4.1.4 [Dualité] Considérez le problème linéaire le plus général envisageable

min c1 x1 ` c2 x2
sujet à A11 x1 ` A12 x2 ď b1
A21 x1 ` A22 x2 “ b2
x1 ě 0,

où A est une matrice pm1 ` m2 q ˆ pn1 ` n2 q et c, x P Rn1 `n2 et b P Rm1 `m2 .


a) Caractérisez le dual de ce problème en utilisant les relations de la table 4.1.
b) Démontrez votre caractérisation en ramenant le problème sous forme standard, écrivant
son dual et simplifiant le résultat.

Exercice 4.1.5 [Problèmes irréalisables] Fournissez un exemple de problème pour lequel


ni le primal, ni le dual ne possède de solution réalisable.

4.1.3 Interprétations et conséquences du théorème de dualité


Revenons sur le résultat de dualité forte. Ce théorème concerne une paire de problèmes 2.2
et 4.1 reliés entre eux par la relation de dualité. En fait la situation peut se résumer dans
une table comme suit.
Dual
non borné résoluble irréalisable
Primal
non borné impossible impossible possible
résoluble impossible cx˚ “ y ˚ b impossible
irréalisable possible impossible possible

On peut simplifier cette table en considérant seulement la réalisabilité des problèmes.


Dual
réalisable irréalisable
Primal
réalisable cx˚ “ y ˚ b P non borné
irréalisable D non borné possible

Examinons maintenant un petit exemple qui illustrera la puissance du théorème de dua-


lité. Considérons la paire de problèmes 4.6 et 4.7. En examinant le problème 4.6, par exemple
4.1. THÉORIE DE LA DUALITÉ 113

en supposant x2 “ 0, on constate que x1 “ 1 est une solution réalisable. Par ailleurs, si on


additionne les deux contraintes du problème 4.7, on obtient ´y1 ě 2, donc y1 ď ´2 et donc
ce dernier n’est pas réalisable. Un primal réalisable avec un dual non réalisable entraîne donc
que le primal n’est pas borné.

Exercice 4.1.6 [Irréalisable primal-dual] Fournissez une paire de programmes duaux pour
lesquels aucun n’est réalisable.

Exercice 4.1.7 [Dual] Fournissez l’expression du dual du programme suivant :

min cx
sujet à a ď Ax ď b
lď x ďu

Exercice 4.1.8 [AutoDual] Vérifiez que le programme suivant est son propre dual :

min c1 x 1 ´ c2 x 2
sujet à At x2 ď ct1
Ax1 “ ct2
x1 ě0

4.1.4 Écarts complémentaires


Nous avons passé rapidement sur un résultat important énoncé dans le corollaire 4.1.1.
Une façon de rephraser le corollaire des écarts complémentaires est de se référer à la table 4.1.
Sur toutes les lignes (des six dernières lignes), au plus une des quantités dans les deux colonnes
est une inégalité stricte, autrement dit, au moins une des quantités est une égalité. Pour les
contraintes d’égalité c’est direct. Dans les autres cas, au plus une inégalité peut être stricte.
Voyons ce que nous pouvons accomplir grâce à ce résultat sur un exemple.
114 CHAPITRE 4. DUALITÉ

Exemple Considérons le problème


min 2x1 ` 6x2 ` x3
sujet à 2x1 ` x2 ` 3x3 “ 3
(4.9)
x1 ´ 2x2 ` 9x3 “ 4
x1 , x2 , x3 ě 0.
`3˘
Donc, c “ p2, 6, 1q, b “ 4 . Afin de le résoudre graphiquement, puisque nous savons que son
dual comportera seulement deux variables, résolvons le dual.
max 3y1 ` 4y2
sujet à 2y1 ` y2 ď 2
y1 ´ 2y2 ď 6
3y1 ` 9y2 ď 1.
17 4
Après solution graphique, on trouve y ˚ “ p 15 , ´ 15 q. Ajoutons les variables d’écart au dual,
s P R3 ě 0. On calcule aisément s “ p0, 13 3
, 0q. Les écarts complémentaires nous informent
que sx “ 0, en d’autres termes s1 x1 ` s2 x2 ` s3 x3 “ 0, mais avec x ě 0 et s ě 0.
Donc, il faut que chacun des trois termes soient nuls, dans notre cas, on doit avoir x2 “ 0
puisque s2 ą 0. Il nous reste à résoudre les deux équations originales avec seulement deux
variables x1 et x3 : 2x1 ` 3x3 “ 3 et x1 ` 9x3 “ 4. On calcule aisément x˚1 “ 1 et x˚3 “ 13 .
Enfin, cx˚ “ 2 ` 0 ` 31 “ 73 “ y ˚ b “ 3 ¨ 15
17
` 4 ¨ ´4
15
.

Exercice 4.1.9 [Écarts complémentaires] Considérez les problèmes

min ´2x1 ´ x2
8
sujet à x1 ` x
3 2
ď 4
x1 ` x2 ď 2
2x1 ď 3,

et
max x1 ` 2x2
sujet à 2x1 ` x2 ě 4
x1 ` x2 ď 8
´x1 ` x2 ď 4
x1 ď 5
x1 , x2 ě 0.
Pour chacun,
a) Résoudre graphiquement
b) Écrire le dual de ce problème.
c) Résoudre le dual en utilisant les écarts complémentaires.
4.2. ALGORITHME DUAL DU SIMPLEXE 115

4.2 Algorithme dual du simplexe


Comme nous venons de le voir, avec les mêmes données, c’est-à-dire le vecteur c, la matrice
A et le vecteur b, nous pouvons définir deux problèmes duaux l’un par rapport à l’autre,
soit les problèmes (2.2) et (4.1). Le théorème 4.1.5 (que nous démontrerons plus tard à la
page 145) de dualité forte garantit que nous pouvons résoudre l’un ou l’autre de ces problèmes
et en déduire la solution de l’autre. On pourrait donc appliquer l’algorithme du simplexe au
problème (4.1) pour résoudre (2.2). L’algorithme dual du simplexe fait exactement ça, mais
en utilisant les données telles que formulées pour le primal.
Comme nous venons de le voir, les relations cN ´ cB B ´1 N ě 0 correspondent en fait à la
satisfaction des contraintes du problème dual alors que les contraintes x ě 0 correspondent
aux conditions d’optimalité du dual. Nous allons donc développer des règles pour assurer
que la première ligne des tableaux est toujours non négative et terminer lorsque la dernière
colonne sera devenue non négative.
Donc, l’algorithme dual choisira une ligne associée à un élément négatif de la dernière
colonne, puis une colonne telle qu’après l’opération de pivot, la zéroième ligne demeure non
négative. Comment faire ce choix ? Il suffit d’exprimer ce que devient un nouvel élément de
la zéroième ligne après un pivot. Supposons que la ligne ı̄ et la colonne ̄ soient choisies tels
que aı̄̄ ă 0 ; s’il n’y a pas de telle colonne, le primal n’est pas réalisable. Après le pivot, la
ligne ı̄ sera divisée par aı̄̄ et on ajoutera ´c̄ fois cette ligne à la zéroième. Dans le processus,
la colonne j de cette ligne zéro deviendra cj ´ acı̄̄̄ aı̄j que l’on veut conserver non négatif. Pour
assurer la non-négativité, il suffit de choisir ̄ tel que acı̄̄̄ “ maxaı̄j ă0 acı̄j̄ .
L’algorithme dual du simplexe se résume aux trois étapes suivantes qui sont répétées
jusqu’à ce que B ´1 b ě 0.
1. ı̄ “ arg miniPB prB ´1 bsi q ; indice minimisant la colonne B ´1 b ;
2. ̄ “ arg maxaı̄j ă0 p acı̄j̄ q ; c’est le rapport de la ligne zéro divisée par la ligne ı̄ ;
3. mettre à jour le tableau selon l’élément pivot de la ligne ı̄ et colonne ̄.

4.2.1 Exemple simple


Considérons le tableau suivant, sous forme canonique puisque x4 et x5 sont associés à
l’identité (B={4,5}, N “ t1, 2, 3u) et leur élément de la ligne zéro sont nuls. Ce tableau est
“optimal”, c’est-à-dire réalisable pour le dual puisque la ligne zéro est non négative. Il n’est
cependant pas réalisable pour le primal puisque la dernière colonne est négative.

x1 x2 x3 x4 x5
4 1 1 0 0 0
´1 ´1 0 1 0 ´8
´8 1 9 0 1 ´1
116 CHAPITRE 4. DUALITÉ

Choisissons donc ı̄ “ 1, la ligne ayant la valeur la plus négative dans la dernière colonne.
C’est donc la variable x4 qui quittera B. Deux colonnes de cette ligne numéro un ont un
élément négatif, alors le critère ̄ “ arg maxaı̄j ă0 p acı̄j̄ q s’applique aux colonnes un et deux. Les
quotients en question sont ´4 et ´1, le maximum est donc atteint pour la colonne deux et
c’est x2 qui entrera dans B. On effectue un pivot sur l’élément de première ligne et seconde
colonne.
x1 x2 x 3 x4 x5
3 0 1 1 0 ´8
1 1 0 ´1 0 8
´9 0 9 1 1 ´9

Il n’y a plus que la seconde ligne négative dans la dernière colonne. Il y a également une
seule colonne négative dans cette ligne numéro deux, la première. On effectue donc le pivot
sur l’élément de ligne deux, colonne un de valeur ´9.

x1 x2 x3 x4 x5
4 1
0 0 4 3 3
´11
8 1
0 1 1 ´9 9
7
1 0 ´1 ´ 19 ´ 91 1

Exercice 4.2.1 [Algorithme dual du simplexe] Le site


https://vanderbei.princeton.edu/JAVA/pivot/simple.html
comporte un générateur de problèmes aléatoires et on peut spécifier s’il s’agit de problèmes
primal réalisables ou dual réalisable. Le même outil référé précédemment comporte un
bug pour la génération de problèmes duaux. Attention, les problèmes sont des problèmes
de maximisation. Faites des essais jusqu’à ce que vous puissiez résoudre au moins cinq
problèmes dual réalisables générés aléatoirement consécutifs.

Exercice 4.2.2 [Algorithme dual du simplexe papier] Encore avec l’outil informatique,
générez au moins quatre problèmes aléatoires dual réalisables et résolvez-les par l’algo-
rithme dual du simplexe sur papier dans la forme tableau plutôt que dictionnaire. Effectuez
vos calculs en fractions. Utilisez l’outil pour valider vos calculs.
4.2. ALGORITHME DUAL DU SIMPLEXE 117

4.2.2 Notre problème (2.7)


À partir du problème (2.7) on obtient un tableau de départ, multipliant la première ligne
du tableau (3.19) par ´1,
x1 x2 x 3 x4
1 ´1 0 0 0
´2 ´1 1 0 ´2
1 3 0 1 3
Maintenant, rien d’évident pour obtenir une partition rrB | N ss telle que, posant π “ cB B ´1 ,
la zéroième ligne c ´ πA soit non-négative. Rappelons que pour l’algorithme dual, on ne se
soucie pas que xB ě 0, l’algorithme maintiendra c ´ πA ě 0 et progressivement atteindra
que xB ě 0.
Comme dans le cas de l’algorithme primal, en inspectant le problème, on découvre que
x “ p0ˆ 1 ´˙ 1 0qt est dual-réalisable.
ˆ 1 Pour˙ ce x, on a B “ t2, 3u, N “ t1, 4u, la matrice
1
´1 1 1 0 3
B “ et B ´1 A “ 3 . B ´1 b “ p1 ´ 1qt . π “ cB B ´1 q “ p0 ´ 13 q et
3 0 ´ 53 0 1 13
c ´ πA “ p 43 0 0 13 q. Finalement ´πb “ 1 et nous avons toutes les quantités pour écrire le
tableau optimal mais irréalisable
x1 x2 x 3 x4
4{3 0 0 1{3 1
1{3 1 0 1{3 1
´5{3 0 1 1{3 ´1
Il faut rendre la dernière colonne non-négative. Il faudrait retirer x3 de la partition B.
En ce faisant, nous allons remplacer x3 par soit x1 , soit x4 . Comment choisir ? Utilisons le
critère ̄ “ arg maxaı̄j ă0 p acı̄j̄ q. Il nous faut calculer le quotient de la la zéorième ligne sur la
seconde pour les composantes de N de signe négatifs.Il n’y a que la première colonne de
négative et notre nouvelle partition sera B “ t1, 2u et N “ t3, 4u. On effectue un pivot sur
l’élément de la seconde ligne et première colonne pour mettre-à-jour le tableau afin qu’il
représente l’information reliée à la nouvelle partition. On retrouve un tableau équivalent au
tableau optimal (3.12).
x1 x2 x3 x4
0 0 4{5 3{5 1{5
0 1 1{5 2{5 4{5
1 0 ´3{5 ´1{5 3{5

Exercice 4.2.3 [Illustration graphique] Illustrez graphiquement l’itération de l’algo-


rithme. De plus, sur la figure 2.9, les points extrêmes primal-réalisables sont identifiés ;
identifiez les points extrêmes dual-réalisables.
118 CHAPITRE 4. DUALITÉ

Exercice 4.2.4 [Dual] Nous allons refaire le tout directement sur le dual.
a) Écrivez le dual du problème (2.6).
b) Ramenez le dual sous la forme standard de la forme (2.2).
c) Faites un graphique du dual et établissez la correspondance entre les intersections des
droites du primal (figure 2.9) et celles du dual.
d) Établissez la correspondance entre les solutions de base du primal et du dual, tous deux
standartisés.
e) Appliquez l’algorithme primal du simplexe à la formulation du dual standardisée.
f) Constatez que l’algorithme primal appliqué au dual est équivalent l’algorithme dual
appliqué au primal.

Ces observations simples sont cependant trompeuses. Nous avons choisi un exemple bi-
dimensionnel pour pouvoir en faire des illustrations. En général, le nombre de variables du
dual n’est pas égal au nombre de variables du primal. Il faut toujours garder en tête que
des illustrations nourrissent notre intuition, mais que la situation générale de dimension
plus grande que deux est considérablement plus complexe et que beaucoup d’aspects ne se
manifestent simplement pas en deux dimension. C’est le cas par exemple du phénomène de
cyclage de l’algorithme dont nous présenterons un exemple à la section 5.2 qui n’apparaît
pas en dimension inférieure à six.

4.2.3 Un autre exemple


Considérez le problème suivant.

min ´7x1 ` 7x2 ´ 2x3 ´ x4 ´ 6x5


sujet à 3x1 ´ x2 ` x3 ´ 2x4 “ ´3
2x1 ` x2 ` x4 ` x5 “ 4
´x1 ` 3x2 ´ 3x4 ` x6 “ 12
x1 , x2 , x3 , x4 , x5 , x6 ě 0.

On met sous forme canonique le problème et constate que la ligne des coûts est positive. On
peut alors appliquer l’algorithme dual du simplexe.

Exécution du simplexe dual dans sa forme révisée.


c“ “ ‰
11 11 0 1 0 0 (4.10)
4.2. ALGORITHME DUAL DU SIMPLEXE 119

Simplexe dual révisé


t Données : une partition rrB | N ss de Rn , une représentation u
t de la matrice B ´1 ainsi qu’une solution dual-réalisable rxB , 0s. u
t telle que πB “ cB et cN ´ πN ě 0. u
réalisable Ð faux
vide Ð faux
répéter
t Choix d’une variable sortante u
ı̄ Ð arg miniPB pxi q
si (xī ě 0 ) alors réalisable Ð vrai
sinon
t Production d’un vecteur de coûts réduits u
π Ð SOLUTION(πB “ cB )
zN Ð πN
c̄N Ð cN ´ zN
t Production de la ligne ı̄ u
āı̄ Ð peTı̄ B ´1 qN
t Choix d’une variable entrante u
si (āı̄ ě 0 ) alors vide Ð vrai
sinon
̄ Ð arg minjPN,c̄j ą0 p āc̄ı̄jj q
δx Ð SOLUTION(Bδx “ N̄ )
xı̄
x̄ Ð δx ı̄
xB Ð xB ´ x̄ δx
t Mises-à-jour diverses u
rrB | N ss Ð rrB Y t̄uztı̄u | N Y tı̄uzt̄uss
B ´1 Ð Mise_à_jourpB ´1 , rrB | N ss, ı̄, ̄q

jusqu’à ( réalisable _ vide)

Ici encore, les solutions et mises-à-jour de B ´1 sont efficaces. Il est également possible de
mettre à jour les vecteurs c̄N plutôt que de les recalculer à partir d’un π réobtenu par le
système d’équations.

Algorithme 4.1: Simplexe dual révisé.


120 CHAPITRE 4. DUALITÉ

b“
“ ‰
´3 4 12 (4.11)
A“ » fi
3 ´1 1 ´2 0 0
– 2 1 0 1 1 0 fl (4.12)
´1 3 0 ´3 0 1
B ´1 “ » fi
1 0 0
– 0 1 0 fl (4.13)
0 0 1
iB “
“ ‰
3 5 6 (4.14)
iN =
“ ‰
1 2 4 (4.15)
Itération 1

1. xB “
“ ‰
´3 4 12

2. π “ cB B ´1
“ ‰
0 0 0 (4.16)

3. c̄N “ cN ´ πN “
“ ‰
11 11 1

4. choix de la ligne : 1 dans 1..m


5. δc “ B ´1 rī, :sA “
“ ‰
3 ´1 1 ´2 0 0

6. choix de la colonne (test du ratio) : 4


7. La nouvelle base est
“ ‰
4 5 6
Matrice utilisée pour le calcul du pivot :
» fi
1 0 0 ´2
– 0 1 0 1 fl
0 0 1 ´3
4.2. ALGORITHME DUAL DU SIMPLEXE 121

8. B ´1 “ » fi
´1
2
0 0
1

2
1 0 fl
´3
2
0 1
Itération 2

1. xB “ “ ‰
3 5 33
2 2 2

2. π “ cB B ´1 “ ‰
´1
2
0 0 (4.17)

3. c̄N “ cN ´ πN “ “ ‰
25 21 1
2 2 2

Solution optimale.

Exécution du simplexe dual dans sa forme tableau.


c“ “ ‰
11 11 0 1 0 0 (4.18)
bt “ “ ‰
´3 4 12 (4.19)
A“ » fi
3 ´1 1 ´2 0 0
– 2 1 0 1 1 0 fl (4.20)
´1 3 0 ´3 0 1
B= “ ‰
3 5 6 (4.21)
N= “ ‰
1 2 4 (4.22)
Itération 1 choix de la ligne : 1 dans 1..m choix de la colonne 4

c“ “ ‰
25 21 1
2 2 2
0 0 0
bt “ “ ‰
3 5 33
2 2 2
122 CHAPITRE 4. DUALITÉ

A“ » fi
´3 1 ´1
2 2 2
1 0 0
7 1 1

2 2 2
0 1 0 fl
´11 9 ´3
2 2 2
0 0 1
Itération 2

Solution otimale

4.2.4 Deux phases


On peut combiner des phases primales et duales pour résoudre un problème qui ne possède
pas de solution de base initiale naturelle.

Une phase I duale-phase II primale


Si on a une base mais qu’elle n’est ni primale ni duale réalisable, comme c’est le cas pour
notre exemple du triangle, on a une option : mettons des coûts bidon positifs, utilisons le
simplexe dual pour déterminer une base primal-réalisable. Ensuite, remettons les vrais coûts,
assurons-nous de mettre le problème sous forme canonique et résolvons le problème par le
simplexe primal.
Tableau initial : » fi
1 ´1 0 0 0
– ´2 ´1 1 0 ´2 fl (4.23)
1 3 0 1 3
Tableau avec coût bidon positif :
» fi
1 1 0 0 0
– ´2 ´1 1 0 ´2 fl (4.24)
1 3 0 1 3

première itération du simplexe dual

solution primal-réalisable : » fi
1 1
0 2 2
0 ´1
– 1 1 ´1
2 2
0 1 fl (4.25)
5 1
0 2 2
1 2
remettons le coût : » fi
1 ´1 0 0 0
– 1 1 ´1
0 1 fl (4.26)
2 2
0 52 1
2
1 2
4.3. UN LIEN AVEC LA THÉORIE DES JEUX 123

forme canonique :
» ´3 1
fi
0 2 2
0 ´1
– 1 1 ´1
2 2
0 1 fl (4.27)
5 1
0 2 2
1 2

première itération du simplexe primal

solution maintenant réalisable et optimale :


» 4 3 1
fi
0 0 5 5 5
– 1 0 ´3 ´1 3
5 5 5
fl (4.28)
1 2 4
0 1 5 5 5

Une phase I primale-phase II duale

Exercice 4.2.5 [Phase I primale—phase II duale] Reprenez l’exemple en utilisant un


membre de droite bidon pour faire une phase I primale, puis remettre le membre de droite
original et compléter la solution par une phase II duale.

4.3 Un lien avec la théorie des jeux


Dans cette section, nous examinons une situation simpliste de ce qu’on appelle un jeu ma-
triciel. Ces objets mathématiques peuvent décrire des situations conflictuelle dans lesquelles
deux instances (joueurs) choisissent des stratégies à tour de rôle. Le théorème fondamental
de la théorie des jeux est une conséquence du théorème de dualité en optimisation linéaire.

4.3.1 Un exemple simpliste


Nous utiliserons le jeu “roche, papier, ciseaux” (RPC ci-après) pour introduire les notions
de jeux matriciels. Cette présentation est inspirée du texte de Robert Vanderbei.
Dans le jeu RPC, deux joueurs présentent leur choix de roche, papier ou ciseaux simul-
tanément ; le papier enveloppe la roche, les ciseaux coupent le papier, et la roche émèche
les ciseaux. Si les choix des joueurs sont égaux, on annule. Autrement, un des joueurs gagne
p`1q alors que l’autre perd p´1q.
124 CHAPITRE 4. DUALITÉ

Notions de stratégie

Dans un tel jeu, on appelle stratégie pure le choix R, P ou C. Évidemment, aucun joueur
sensé n’utiliserait une stratégie pure, car l’autre s’en apercevrait, et aurait gain de cause
pour la suite des tours.
On appelle stratégie mixte une combinaison de stratégies pures, habituellement tirées au
hasard, et la stratégie mixte se représente par les probabilités d’utiliser une stratégie pure.
Dans notre exemple, une stratégie mixte est un vecteur ppR , pP , pC q de probabilités de choisir
R, P ou C, et donc pR ` pP ` pC “ 1.

Représentation matricielle
L’enjeu peut se résumer dans une matrice. Un joueur lit la matrice ligne par ligne, l’autre
colonne par colonne. Pour le jeu RPC, la matrice A est la suivante :

R P C
R 0 1 ´1
(4.29)
P ´1 0 1
C 1 ´1 0

Pour une stratégie pure donnée par joueur, par exemple x “ R “ p1, 0, 0qt et y “
C “ p0, 0, 1q, le résultat du jeu est yAx “ `1, indiquantř řque le joueur x gagne car la roche
émousse les ciseaux. Pour une stratégie mixte, yAx “ i j Aij xi yj correspond à la moyenne
attendue des gains.
Pour ce jeu simpliste, il semble évident qu’aucun des joueurs n’a d’avantage, qu’à long
terme, les pertes et les gains vont s’équilibrer, et que cette uniformité assure que la stratégie
mixte optimale est p1{3, 1{3, 1{3q pour chacun des 2 joueurs.
Cependant, supposons simplement que nous modifions la matrice des gains comme suit :

R P C
R 0 1 ´2
(4.30)
P ´3 0 4
C 5 ´6 0
Quelle est alors la stratégie optimale des 2 joueurs ? Le jeu est-il toujours équitable dans le
sens que les gains et les pertes vont tendre à s’équilibrer à la longue pour les deux joueurs ?
C’est à ces deux questions que nous pourrons répondre après avoir démontré le théorème
fondamental de la théorie des jeux.
La matrice des gains s’interprète comme suit. Supposons que le joueur x utilise la stratégie
pure R, p1, 0, 0qt ; Ax “ p0, ´1, 1qt , ce qui fait que le joueur y devrait normalement utiliser
la stratégie pure P p0, 1, 0q. Maintenant, intuitivement, pour le jeu original, la stratégie
optimale pour le joueur x est p1{3, 1{3, 1{3qt . Ax “ p0, 0, 0qt , ce qui signifie que le joueur y,
4.3. UN LIEN AVEC LA THÉORIE DES JEUX 125

étant donné le choix stratégique du joueur x, peut choisir n’importe quelle stratégie puisque
son gain espéré est nul pour toute stratégie.
Examinons ce qui se passe avec la matrice (4.30) pour le choix stratégique x “ p1{3, 1{3, 1{3qt .
Ax “ p´1{3, 1{3, ´1{3qt et le joueur y a à sa disposition deux stratégies pures avantageuses,
et leur mélange, R, C.
En résumé, si le joueur x adopte sa stratégie, alors le joueur y obtient sa stratégie optimale
par la solution du problème linéaire

miny yAx
sujet à ye “1 (4.31)
y ě 0.

Il est naturel ici de dénoter les stratégies du joueur x en colonne, et celles du joueur y en ligne.
Ceci rappelle la dualité. On nomme vecteur stochastique un vecteur dont les composantes
sont non-négatives, et somment à un, i.e. ye “ 1, y ě 0.
Avec la notation adoptée, le joueur y minimise ses pertes alors que le joueur x maximise
ses gains. Puisque le joueur y définit sa stratégie par le problème linéaire (4.31), le joueur x
devra maximiser la fonction
maxx miny yAx
sujet à ye “1
(4.32)
et x “ 1
x, y ě 0.
Étant donnée une stratégie x, le joueur y peut toujours choisir une stratégie pure, corres-
pondant à un point extrême, solution de base réalisable des contraintes ye “ 1, y ě 0. Soient
donc ei les stratégies pures, le joueur x doit

maxx pmini eti Axq


sujet à et x “1 (4.33)
x ě 0.

Par économie de notation, e et ei dénotent des vecteurs colonne de dimension appropriée.


On utilise alors le truc usuel pour les maxmin,

max v
sujet à v ď eti Ax @i
(4.34)
et x “ 1
x ě 0,
ou encore
max v
sujet à ve ď Ax
(4.35)
et x “ 1
x ě 0.
126 CHAPITRE 4. DUALITÉ

Finalement ramenons le tout ainsi



max p0 1q xv
ˆ ˙
´A e `x˘ ď `0˘
sujet à
et 0 v “ 1 (4.36)
x ě 0,
v libre.

Évidemment, pour le joueur y, il faut résoudre


miny maxx yAx
sujet à ye “1
t (4.37)
ex “1
x, y ě 0,
ce qui peut se ramener à la forme :

min py uq ˆ01 ˙
´A e
sujet à py uq t ě “ up0 1q
et 0 (4.38)
y ě 0,
u libre.
La notation par bloc avec des vecteurs ligne est un peu boiteuse, mais demeure cohérente.
Voici un modèle générique Ampl du joueur x.
1 param N ;
2 set coups := 1.. N ;
3

4 param A { coups , coups };


5

6 var x { coups } >= 0;


7 var w ;
8

9 maximize val_jeux : w ;
10

11 subject to
12 ligne { i in coups }: sum { j in coups } A [i , j ]* x [ j ] >= w ;
13 sto : sum { j in coups } x [ j ] = 1;

Exercice 4.3.1 [Joueur y] Complétez les détails conduisant au problème (4.38) du joueur
y. Complétez l’exercice en formulant un modèle générique du joueur y en Ampl en imitant
le code ci haut.
4.3. UN LIEN AVEC LA THÉORIE DES JEUX 127

Nous sommes maintenant en mesure d’énoncer le théorème fondamental de la théorie des


jeux.
Théorème 4.3.1 Il existe des vecteurs stochastiques x˚ et y ˚ qui satisfont

max y ˚ Ax “ min yAx˚ .


x y

La preuve de ce théorème important découle de ce que (4.36) et (4.38) sont duaux.

Exercice 4.3.2 [Preuve] Fournissez les détails de la preuve

Dans notre exemple, avec la matrice (4.29), les stratégies optimales sont x “ p1{3, 1{3, 1{3qt
et y “ p1{3, 1{3, 1{3q. La valeur des problèmes est 0, on parle alors d’un jeu matriciel à somme
nulle. Cela revient à dire qu’aucun des 2 joueurs n’est avantagé par le jeu.
Avec la matrice (4.30), les choses se compliquent un tout petit peu, évidemment. Les
stratégies optimales ne sont plus les mêmes, mais plus important, la valeur du jeu devient
´16{102, indiquant que le joueur y possède un avantage dans ce jeu.

Exercice 4.3.3 [Jeux] Résolvez le jeu avec la matrice (4.30), obtenez les stratégies, et
8
vérifiez que la valeur du jeu est ´ 51 . À la fin du chapitre, on retrouve l’exécution sous
forme de tableau de l’algorithme du simplexe pour calculer la stratégie x˚ optimale pour le
jeu RPC Roche-Papier-Ciseaux. Examinez la solution et déduisez-en la stratégie optimale
8
y ˚ . Pour être bien certain que vous avez déniché le bon y ˚ , vérifiez que y ˚ A “ ´ 51 1, la
valeur du jeu.

Exercice 4.3.4 [Solution avec Ampl] Formulez le fichier “.dat” du jeu Roche-Papier-
Ciseaux avec les coûts modifiés et obtenez la solution du joueur x avec Ampl.

Exercice 4.3.5 [Solution du joueur y avec Ampl] Utilisez Ampl et votre modèle du joueur
y optimiser le joueur y et constatez que vous aviez le bon y ˚ . Ampl affiche ses résultats en
8
virgule flottante, il faut convertir avec les fractions, 51 « 0.1568627451.
128 CHAPITRE 4. DUALITÉ

Exercice 4.3.6 [Jeu simple] Deux joueurs cachent une piece de monnaie, un 5 ou un 10
sous. Si elles sont pareilles, le joueur A empoche les 2, autrement le joueur B empoche les
2. Pour chacune de ces variantes, déterminez qui a l’avantage dans ce jeu et donnez les
stratégies de chacun des joueurs.
a) les joueurs utilisent leur propre argent, donc lorsque chacun cache un cinq sous, un des
joueurs perd cinq sous alors que l’autre gagne cinq sous ;
b) il y a une pile de cinq et dix sous disponibles ; lorsque chacun cache un cinq sous, le
joueur A gagne dix sous. Cette variante ressemble au jeu «pair–impair» dans lequel
chaque joueur montre un ou deux doigts. Si la somme S est paire, le joueur A gagne
alors que si elle est impaire, le joueur B gagne et le montant du gain S.
c) Considérez la variante de «pair–impair» dans laquelle la valeur du gain est le produit
des nombres de doigts mais le gagnant est toujours déclaré selon la parité de la somme.

Exercice 4.3.7 [Jeu de Morra] On considère un jeu où les deux joueurs montrent simul-
tanément soit un, soit deux doigts. En même temps qu’ils montrent leur(s) doigt(s), ils
annoncent un chiffre pour prédire la somme des doitgs. Le seul cas où un joueur fait des
points est lorsqu’il est le seul à avoir prédit la bonne somme et la dite somme est aussi le
nombre de points qu’il fait. Si les deux ont prédit la bonne somme, ils font 0, de même
que si le joueur a prédit la mauvaise somme.
a) Combien d’actions (ou coups) sont possibles pour chaque joueur ? Les sommes possibles
sont 2, 3 et 4.
b) Bien que légal, un joueur n’aura jamais intérêt à montrer un seul doigt et prédire 4, c’est
impossible. Établissez la sous-liste des actions possibles.
c) Établissez la matrice de rendement de ce jeu en considérant seulement les actions pos-
sibles.
d) Quelle est la valeur de ce jeu ? Utilisez Ampl pour le résoudre et obtenir la valeur
optimale de v.
e) Il n’y a pas une stratégie optimale unique pour les joueurs dans ce jeu. Si on calcule
Ax˚ , on obtient un vecteur ě 0 qui indique que le joueur y n’a aucune possibilité de gain
face à la stratégie x˚ . On constate que la structure de x˚ est xpαq “ p0, α, p1 ´ αq, 0qt .
Déterminez les conditions sur α pour que Axpαq ě 0. Toute valeur de xpαq avec α
respectant ces condition constitue une stratégie optimale pour le joueur x.
4.3. UN LIEN AVEC LA THÉORIE DES JEUX 129

Exécution du simplexe pour le jeux RPC avec coûts


modifiés
Phase I : exécution du simplexe primal dans sa forme tableau.
c“ “ ‰
´1 ´1 ´1 0 0 0 0 0 0 (4.39)
bt “ “ ‰
0 0 0 1 (4.40)
A“ » fi
0 ´1 2 1 ´1 1 0 0 0
— 3 0 ´4 1 ´1 0 1 0 0 ffi

– ´5 6
ffi (4.41)
0 1 ´1 0 0 1 0 fl
1 1 1 0 0 0 0 0 1
B= “ ‰
6 7 8 9 (4.42)
N= “ ‰
1 2 3 4 5 (4.43)
Itération 1 choix de la colonne : 1 dans N , 1 dans 1..n ; choix de la ligne : 2

c“ “ ‰
´7 1 ´1 1
0 ´1 3 3 3
0 3
0 0 (4.44)
bt “ “ ‰
0 0 0 1 (4.45)
A“ » fi
0 ´1 2 1 ´1 1 0 0 0
— 1 0 ´4 1 ´1 1
3 3 3
0 3
0 0 ffi

– 0 6 ´20 8 ´8 5
ffi (4.46)
3 3 3
0 3
1 0 fl
7 ´1 1 ´1
0 1 3 3 3
0 3
0 1
nouveau B = “ ‰
6 1 8 9 (4.47)
nouveau N = “ ‰
7 2 3 4 5 (4.48)
Itération 2 choix de la colonne : 3 dans N , 3 dans 1..n ; choix de la ligne : 1

c“ “ ‰
´13 3 ´3 7 1
0 6
0 2 2 6 3
0 0 (4.49)
130 CHAPITRE 4. DUALITÉ

bt “ “ ‰
0 0 0 1 (4.50)
A“ » fi
´1 1 ´1 1
0 2
1 2 2 2
0 0 0
— 1 ´2 2 1
3
0 1 ´1 3 3
0 0 ffi

– 0 8 10 5
ffi (4.51)
3
0 6 ´6 3 3
1 0 fl
13 ´3 3 ´7 ´1
0 6
0 2 2 6 3
0 1
nouveau B = “ ‰
3 1 8 9 (4.52)
nouveau N = “ ‰
7 2 6 4 5 (4.53)
Itération 3 choix de la colonne : 2 dans N , 2 dans 1..n ; choix de la ligne : 3

c“ “ ‰
51 ´51 31 27 13
0 0 0 8 8 8 16 16
0 (4.54)
bt “ “ ‰
0 0 0 1 (4.55)
A“ » fi
13 ´13 9 5 3
0 0 1 8 8 8 16 16
0
— 1 5 ´5 3 3 1
0 0 2 2 2 4 4
0 ffi

– 0 9 ´9 5 5 3
ffi (4.56)
1 0 4 4 4 8 8
0 fl
´51 51 ´31 ´27 ´13
0 0 0 8 8 8 16 16
1
nouveau B = “ ‰
3 1 2 9 (4.57)
nouveau N = “ ‰
7 8 6 4 5 (4.58)
Itération 4 choix de la colonne : 5 dans N , 5 dans 1..n ; choix de la ligne : 4

c“ “ ‰
0 0 0 0 0 0 0 0 1 (4.59)
bt “ “ ‰
13 20 6 8
51 51 17 51
(4.60)
A“ » fi
7 ´2 ´1 13
0 0 1 0 0 51 17 51 51
— 1 ´1 3 ´7 20
0 0 0 0 51 34 102 51
ffi

– 0 ´2 1 3 6
ffi (4.61)
1 0 0 0 17 34 34 17
fl
´31 ´9 ´13 8
0 0 0 ´1 1 51 34 102 51
4.4. RÉSUMÉ 131

nouveau B = “ ‰
3 1 2 5 (4.62)
nouveau N = “ ‰
7 8 6 4 9 (4.63)
Itération 5

Solution optimale

Phase II : exécution du simplexe primal dans sa forme tableau.


c“ “ ‰
31 9 13
0 0 0 0 0 51 34 102
(4.64)
bt “ “ ‰
13 20 6 8
51 51 17 51
(4.65)
A“ » fi
7 ´2 ´1
0 0 1 0 0 51 17 51
— 1 ´1 3 ´7
0 0 0 0 51 34 102
ffi

– 0 ´2 1 3
ffi (4.66)
1 0 0 0 17 34 34
fl
´31 ´9 ´13
0 0 0 ´1 1 51 34 102

B= “ ‰
3 1 2 5 (4.67)
N= “ ‰
4 6 7 8 (4.68)
Itération 1

Solution optimale

4.4 Résumé
Nous avons retenu de l’algorithme du simplexe qu’une solution de base optimale sera
telle que yA ď c. Nous avons défini un problème dual qui s’écrit maxy yb sujet à yA ď c.
Après avoir remis le problème dual sous forme standard du simplexe et avoir écrit le dual
résultant, nous avons constaté que le dual du dual est le primal de départ. Nous avons ensuite
présenté une table de règles permettant de passer d’un modèle primal à son dual. En fait,
puisque le dual du dual est le primal, il vaut mieux parler de deux problèmes en relation de
dualité. Il n’y en a pas un qui mérite le titre de primal, mais on en désigne un comme primal
arbitrairement.
132 CHAPITRE 4. DUALITÉ

Ensuite, nous avons proposé un algorithme utilisant encore les tableaux du simplexe
mais avec des règles différentes de l’algorithme du simplexe que nous nommons désormais
algorithme primal. L’algorithme dual maintient toujours que c̄ “ c ´ πA ě 0. L’algorithme
dual consiste en les étapes suivantes :
1. choisir une ligne ı selon un terme négatif du vecteur B ´1 b, habituellement le plus négatif ;
2. choisir une colonne  selon un test de ratio avec les éléments négatifs de la ligne choisie ;
c’est ce test qui permet d’assurer que c̄ demeure héréditairement non négatif.
3. mettre à jour le tableau en effectuant un pivot sur l’élément ı̄, ̄.
L’algorithme termine soit lorsque B ´1 b ě 0, on dit alors que la base courante est duale-
optimale, soit lorsque la ligne ı est non-négative, auquel cas le problème n’est pas (primal)
réalisable. Puisque le problème est dual-réalisable, primal irréalisable équivaut à dual non
borné.
On retient que c̄ “ c ´ πA ě 0 est notre condition d’optimalité pour le problème primal,
mais la condition de réalisabilité pour le dual. De même le primal est réalisable lorsque
B ´1 b ě 0, ce qui équivaut à l’optimalité du dual.
Si on dispose d’une solution de base, peu importe qu’elle soit réalisable (primale ou duale)
ou non, on peut toujours combiner les algorithmes primal et dual pour résoudre le problème.
On a deux possibilités : Phase I duale et phase II primale ou l’inverse.

Phase I duale phase II primale


1. remplacer la ligne des coûts par des quantités “bidon” positives ;
2. appliquer l’algorithme dual du simplexe pour obtenir une base réalisable ;
3. remettre les coûts originaux ;
4. appliquer l’algorithme primal du simplexe jusqu’à optimalité ou détection de problème
non borné.
Si on utilise la forme tableau de l’algorithme du simplexe, il ne faut pas oublier de remettre
la ligne des coûts sous forme canonique, avec des zéros aux indices de base.

Phase I duale phase II primale


1. remplacer le membre de droite B ´1 b par des quantités “bidon” positives ;
2. appliquer l’algorithme primal du simplexe pour obtenir une base duale-réalisable ;
3. remettre remettre le membre de droite à B ´1 b ;
4. appliquer l’algorithme dual du simplexe jusqu’à la dual-optimalité ou détection de pro-
blème non borné.
4.5. TOUS LES EXERCICES DU CHAPITRES 133

Jeux Enfin, nous avons exploré une application en établissant un lien serré avec la théorie
des jeux.
Pour compléter, mentionnons qu’une grande partie de la popularité de l’optimisation
linéaire provient d’interprétations économiques aussi instructives qu’utiles. En voici une ré-
sumée. Le problème de la diète consiste, pour un client à choisir des quantités d’aliments xi
(variables primales) qui minimisent le coût d’achat cx tout en satisfaisant des contraintes
diététiques ai x ě bi (contenu suffisant de chacun de plusieurs nutriments). Le dual s’in-
terprète du point de vue d’un vendeur de pilules de nutriments. Il veut fixer le prix πj de
ses pilules de telle sorte que, compte tenu de la demande en nutriments b, il maximise son
profit πb tout en s’assurant que le coût des nutriments contenus dans chacun des l’aliment
ne dépasse pas le coût de l’aliment πAj ď cj .

4.5 Tous les exercices du chapitres


Exercice (4.1.1, page 110) [Dualité] Considérez le problème linéaire suivant

min cx
sujet à Ax ď b
x ě 0,

et vérifiez que son dual est

max yb
sujet à yA ď c
yď0

en le ramenant à la forme standard, puis en simplifiant le dual ainsi obtenu.

Exercice (4.1.2, page 111) [Formulation du problème dual] Reprenez les problèmes de
l’exercice 2.3.3 page 62 et écrivez le dual de chacun en utilisant deux techniques :
a) à partir de la forme standard du simplexe et en simplifiant le dual ainsi obtenu ;
b) en utilisant la table 4.1.

Exercice (4.1.3, page 111) [Auto dual] Écrivez le dual du problème suivant en utilisant
la table 4.1.
min x1 ´ x2 ´ 2x3 ` 3x4
sujet à 2x3 ´ x4 ď 1
x3 ´ 3x4 ď ´1
(4.69)
2x1 ` x2 ě 2
x1 ` 3x2 ď 3
x1 , x2 , x3 , x4 ě 0,
134 CHAPITRE 4. DUALITÉ

Vérifiez que le dual est équivalent au problème lui même, donc que ce problème est son
propre dual !

Exercice (4.1.4, page 112) [Dualité] Considérez le problème linéaire le plus général en-
visageable

min c1 x1 ` c2 x2
sujet à A11 x1 ` A12 x2 ď b1
A21 x1 ` A22 x2 “ b2
x1 ě 0,

où A est une matrice pm1 ` m2 q ˆ pn1 ` n2 q et c, x P Rn1 `n2 et b P Rm1 `m2 .


a) Caractérisez le dual de ce problème en utilisant les relations de la table 4.1.
b) Démontrez votre caractérisation en ramenant le problème sous forme standard, écrivant
son dual et simplifiant le résultat.

Exercice (4.1.5, page 112) [Problèmes irréalisables] Fournissez un exemple de problème


pour lequel ni le primal, ni le dual ne possède de solution réalisable.

Exercice (4.1.6, page 113) [Irréalisable primal-dual] Fournissez une paire de programmes
duaux pour lesquels aucun n’est réalisable.

Exercice (4.1.7, page 113) [Dual] Fournissez l’expression du dual du programme suivant :

min cx
sujet à a ď Ax ď b
lď x ďu

Exercice (4.1.8, page 113) [AutoDual] Vérifiez que le programme suivant est son propre
dual :
min c1 x 1 ´ c2 x 2
sujet à At x2 ď ct1
Ax1 “ ct2
x1 ě0

Exercice (4.1.9, page 114) [Écarts complémentaires] Considérez les problèmes

min ´2x1 ´ x2
8
sujet à x1 ` x
3 2
ď 4
x1 ` x2 ď 2
2x1 ď 3,
4.5. TOUS LES EXERCICES DU CHAPITRES 135

et
max x1 ` 2x2
sujet à 2x1 ` x2 ě 4
x1 ` x2 ď 8
´x1 ` x2 ď 4
x1 ď 5
x1 , x2 ě 0.
Pour chacun,
a) Résoudre graphiquement
b) Écrire le dual de ce problème.
c) Résoudre le dual en utilisant les écarts complémentaires.

Exercice (4.2.1, page 116) [Algorithme dual du simplexe] Le site


https://vanderbei.princeton.edu/JAVA/pivot/simple.html
comporte un générateur de problèmes aléatoires et on peut spécifier s’il s’agit de problèmes
primal réalisables ou dual réalisable. Le même outil référé précédemment comporte un bug
pour la génération de problèmes duaux. Attention, les problèmes sont des problèmes de
maximisation. Faites des essais jusqu’à ce que vous puissiez résoudre au moins cinq problèmes
dual réalisables générés aléatoirement consécutifs.

Exercice (4.2.2, page 116) [Algorithme dual du simplexe papier] Encore avec l’outil in-
formatique, générez au moins quatre problèmes aléatoires dual réalisables et résolvez-les
par l’algorithme dual du simplexe sur papier dans la forme tableau plutôt que dictionnaire.
Effectuez vos calculs en fractions. Utilisez l’outil pour valider vos calculs.

Exercice (4.2.3, page 117) [Illustration graphique] Illustrez graphiquement l’itération de


l’algorithme. De plus, sur la figure 2.9, les points extrêmes primal-réalisables sont identifiés ;
identifiez les points extrêmes dual-réalisables.

Exercice (4.2.4, page 118) [Dual] Nous allons refaire le tout directement sur le dual.
a) Écrivez le dual du problème (2.6).
b) Ramenez le dual sous la forme standard de la forme (2.2).
c) Faites un graphique du dual et établissez la correspondance entre les intersections des
droites du primal (figure 2.9) et celles du dual.
d) Établissez la correspondance entre les solutions de base du primal et du dual, tous deux
standartisés.
e) Appliquez l’algorithme primal du simplexe à la formulation du dual standardisée.
f) Constatez que l’algorithme primal appliqué au dual est équivalent l’algorithme dual ap-
pliqué au primal.
136 CHAPITRE 4. DUALITÉ

Exercice (4.2.5, page 123) [Phase I primale—phase II duale] Reprenez l’exemple en uti-
lisant un membre de droite bidon pour faire une phase I primale, puis remettre le membre
de droite original et compléter la solution par une phase II duale.
Exercice (4.3.1, page 126) [Joueur y] Complétez les détails conduisant au problème (4.38)
du joueur y. Complétez l’exercice en formulant un modèle générique du joueur y en Ampl
en imitant le code ci haut.
Exercice (4.3.2, page 127) [Preuve] Fournissez les détails de la preuve
Exercice (4.3.3, page 127) [Jeux] Résolvez le jeu avec la matrice (4.30), obtenez les stra-
8
tégies, et vérifiez que la valeur du jeu est ´ 51 . À la fin du chapitre, on retrouve l’exécution
sous forme de tableau de l’algorithme du simplexe pour calculer la stratégie x˚ optimale pour
le jeu RPC Roche-Papier-Ciseaux. Examinez la solution et déduisez-en la stratégie optimale
8
y ˚ . Pour être bien certain que vous avez déniché le bon y ˚ , vérifiez que y ˚ A “ ´ 51 1, la valeur
du jeu.
Exercice (4.3.4, page 127) [Solution avec Ampl] Formulez le fichier “.dat” du jeu Roche-
Papier-Ciseaux avec les coûts modifiés et obtenez la solution du joueur x avec Ampl.
Exercice (4.3.5, page 127) [Solution du joueur y avec Ampl] Utilisez Ampl et votre
modèle du joueur y optimiser le joueur y et constatez que vous aviez le bon y ˚ . Ampl affiche
8
ses résultats en virgule flottante, il faut convertir avec les fractions, 51 « 0.1568627451.
Exercice (4.3.6, page 128) [Jeu simple] Deux joueurs cachent une piece de monnaie, un
5 ou un 10 sous. Si elles sont pareilles, le joueur A empoche les 2, autrement le joueur B
empoche les 2. Pour chacune de ces variantes, déterminez qui a l’avantage dans ce jeu et
donnez les stratégies de chacun des joueurs.
a) les joueurs utilisent leur propre argent, donc lorsque chacun cache un cinq sous, un des
joueurs perd cinq sous alors que l’autre gagne cinq sous ;
b) il y a une pile de cinq et dix sous disponibles ; lorsque chacun cache un cinq sous, le joueur
A gagne dix sous. Cette variante ressemble au jeu «pair–impair» dans lequel chaque joueur
montre un ou deux doigts. Si la somme S est paire, le joueur A gagne alors que si elle est
impaire, le joueur B gagne et le montant du gain S.
c) Considérez la variante de «pair–impair» dans laquelle la valeur du gain est le produit des
nombres de doigts mais le gagnant est toujours déclaré selon la parité de la somme.
Exercice (4.3.7, page 128) [Jeu de Morra] On considère un jeu où les deux joueurs montrent
simultanément soit un, soit deux doigts. En même temps qu’ils montrent leur(s) doigt(s),
ils annoncent un chiffre pour prédire la somme des doitgs. Le seul cas où un joueur fait des
points est lorsqu’il est le seul à avoir prédit la bonne somme et la dite somme est aussi le
nombre de points qu’il fait. Si les deux ont prédit la bonne somme, ils font 0, de même que
si le joueur a prédit la mauvaise somme.
4.5. TOUS LES EXERCICES DU CHAPITRES 137

a) Combien d’actions (ou coups) sont possibles pour chaque joueur ? Les sommes possibles
sont 2, 3 et 4.
b) Bien que légal, un joueur n’aura jamais intérêt à montrer un seul doigt et prédire 4, c’est
impossible. Établissez la sous-liste des actions possibles.
c) Établissez la matrice de rendement de ce jeu en considérant seulement les actions possibles.
d) Quelle est la valeur de ce jeu ? Utilisez Ampl pour le résoudre et obtenir la valeur optimale
de v.
e) Il n’y a pas une stratégie optimale unique pour les joueurs dans ce jeu. Si on calcule Ax˚ ,
on obtient un vecteur ě 0 qui indique que le joueur y n’a aucune possibilité de gain face à la
stratégie x˚ . On constate que la structure de x˚ est xpαq “ p0, α, p1 ´ αq, 0qt . Déterminez
les conditions sur α pour que Axpαq ě 0. Toute valeur de xpαq avec α respectant ces
condition constitue une stratégie optimale pour le joueur x.
138 CHAPITRE 4. DUALITÉ
Chapitre 5
Convergence de l’algorithme du simplexe

Sujets du chapitre
‚ Dégénérescence.
‚ Cyclage de l’algorithme du simplexe.
‚ Règles d’anti-cyclage.
‚ Convergence de l’algorithme du simplexe.

139
140 CHAPITRE 5. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE

Introduction
Nous avons justifié que les variantes de l’algorithme du simplexe étaient convergentes en
utiisant toujours l’hypothèse simplificatrice de non dégénérescence. Nous abordons dans ce
chapitre les difficultés associées à cette dégénérescence.

5.1 Dégénérescence
Jusqu’à maintenant, nous avons escamoté les difficultés causées par la dégénérescence en
supposant systématiquement que xB ą 0, et que le choix de la variable sortante était unique
dans l’algorithme 1.1. Penchons-nous maintenant sur le problème de la dégénérescence.

Définition 5.1.1 [Solution de base dégénérée]


‚ Une solution de base xB est dite primal dégénérée lorsque une ou plusieurs composantes
de xB sont nulles.
‚ Une solution de base xB est dite dual dégénérée lorsque une ou plusieurs composantes
de cN ´ πN sont nulles.
‚ Une solution de base xB est dite dégénérée si elle est primal ou dual dégénérée.

Ce phénomène peut se manifester pour le problème (2.2) tout comme pour son dual (4.1),
où il s’énonce comme suit : le vecteur de coût réduit cN ´πN associé à une solution réalisable
de base rxB , 0s possède une composante nulle.
Dans le cas de dégénérescence du problème primal (2.2), il est probable que l’on puisse
trouver une autre décomposition rrB | N ss décrivant la même solution réalisable xB puisque
sa composante nulle n’appartient pas naturellement aux composantes B. Dans le second
cas, il est possible de modifier la partition rrB | N ss en changeant la solution réalisable,
mais sans modifier la valeur de la fonction objectif. Dans chacun de ces cas, le fait de
changer de partition rrB | N ss n’entraîne pas de diminution de la fonction objectif, et il faut
raffiner l’algorithme pour pouvoir démontrer qu’il ne produit pas de cycle de partitions.
Nous illustrerons un tel cycle à la section prochaine, et proposerons une analyse d’une règle
permettant d’éviter ce phénomène de cyclage.

*Exercice 5.1.1 [Dégénérescence et unicité]


a) Démontrez que si aucune solution optimale du problème (2.2) n’est dégénérée, alors le
problème (4.1) possède une solution unique.
5.2. UN EXEMPLE DE CYCLAGE DANS L’ALGORITHME DU SIMPLEXE 141

b) Est-il vrai que le problème (4.1) possède toujours plus d’une solution lorsque le pri-
mal (2.2) possède une solution dégénérée ?

Exercice 5.1.2 [Dégénérescence] Considérez les contraintes linéaires


n
ÿ
xij “ 1, j “ 1, 2, . . . n
i“1
n
ÿ
xij “ 1, i “ 1, 2, . . . n
j“1

xij ě 0, i “ 1, 2, . . . n, j “ 1, 2, . . . n.

Trouvez un vecteur c pour lequel ce problème possède des bases dégénérée simultanément
pour les problèmes (2.2) et (4.1).

5.2 Un exemple de cyclage dans l’algorithme du sim-


plexe
Considérons le problème

max 2.3x1 `2.15x2 ´13.55x3 ´0.4x4


sujet à 0.4x1 `0.2x2 ´1.4x3 ´0.2x4 ď0 (5.1)
´7.8x1 ´1.4x2 `7.8x3 `0.4x4 ď0

En utilisant les tableaux pour représenter les itérations, après avoir ajouté des variables
x5 et x6 qui constituent nos variables de base de départ, nous obtenons un premier tableau.

x1 x2 x3 x4 x5 x6
´2.3 ´2.15 13.55 0.4 0
0.4 0.2 ´1.4 ´0.2 1 0
´7.8 ´1.4 7.8 0.4 1 0

La colonne x1 possède le coût le plus faible (-2.3) et l’élément positif de la colonne est sur la
142 CHAPITRE 5. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE

ligne un. On effectue une opération pivot sur cet élément (0.4) et obtient le second tableau.
x1 x2 x3 x4 x5 x6
´1 5.5 ´0.75 5.75 0
1 0.5 ´3.5 ´0.5 2.5 0
2.5 ´19.5 ´3.5 19.5 1 0
Ici, la seconde colonne a le coût le plus faible les deux lignes ont un élément positif et un
quotient nul ; comme souvent, on choisit la ligne avec le plus gros élement invoquant la
meilleure stabilité numérique.
x1 x2 x3 x4 x5 x6
´2.3 ´2.15 13.55 0.4 0
1 0.4 0.2 ´1.4 ´0.2 0
1 ´7.8 ´1.4 7.8 0.4 0
Maintenant, on peut observer que ce troisième tableau est un simple décalage circulaire (de
deux colonnes) du premier. Par conséquent, après deux autres itérations, nous retrouverons
un tableau encore décalé de deux colonnes, et finalement après un total de six itération, nous
retrouverons le tableau initial.
Il devrait être clair que les règles utilisées pour déterminer les variables entrantes et
sortantes influencent le comportement de l’algorithme du simplexe, et que l’exemple de
cyclage précédent ne vaut que pour notre règle d’entrer la variable de coût réduit minimum
et de sortir la première variable (si plusieurs peuvent sortir).
Cet exemple produit un cycle parce que deux variables de base sont nulles, et selon les
règles d’entrée et de sorties, aucun pivot ne change de valeur de x, mais les pivots changent
uniquement la décomposition rrB | N ss.

5.3 Règles d’anti-cyclage


Pour remédier au phénomène de cyclage de l’algorithme du simplexe, plusieurs auteurs
ont présenté des règles pour choisir les variables entrantes et sortantes.
Nous présentons deux telles règles. La première conserve la même stratégie pour choisir
la variable sortante, mais impose une stratégie nouvelle pour choisir la variable entrante
(règle de Bland) ; son expression est remarquablement simple et elle s’applique très bien à
l’algorithme du simplexe révisé tel que présenté. La seconde permet n’importe quelle stratégie
pour choisir la variable entrante, mais impose un choix précis pour choisir la variable sortante
(règle lexicographique) ; d’expression plus complexe, cette règle semble plus utile en pratique,
malgré qu’elle s’applique plus naturellement au simplexe dit non-révisé.
Définition 5.3.1 [Règle de Bland] La variable entrante est la première pour laquelle cj ´zj ă
xi
0 : ̄ “ mintj : cj ´zj ă 0u. La variable sortante est la première à atteindre le mini:δxi ą0 p δxi
q:
xi xk
ı̄ “ minti : p δxi q ď p δxk q@k : δxk ą 0u.
5.3. RÈGLES D’ANTI-CYCLAGE 143

L’autre règle que nous présentons fait intervenir la notion d’ordre lexicographique de
vecteurs.
L
Définition 5.3.2 [Ordre lexicographique] Un vecteur v P Rn est dit lex-positif, noté v ě 0
L
si sa première composante non-nulle est positive ; v “ 0 est lex-zéro, noté v “ 0.
L
Utilisant cette définition, on peut comparer deux vecteurs par l’équivalence v ě u ðñ
L
v ´ u ě 0, et définir le lex-min d’un ensemble de vecteurs tvi u comme celui (ou ceux) pour
L
lesquels vi ě vı̄ , @i.
La règle de pivot lexicographique consiste à choisir parmi les indices i qui atteignent le
xi
mini:δxi ą0 p δxi
q celle dont la ligne complète pB ´1 N qi est lex-min de toutes les lignes telles que
δxi “ pB ´1 N̄ qi ą 0. Remarquons que l’ordre des composantes de Rn est important, et que
malgré que nous regroupions en deux ensembles les variables, les comparaisons lexicogra-
phiques doivent s’effectuer selon l’ordre des variables du problème original (2.2).

Définition 5.3.3 [Règle lexicographique d’anti-cyclage] Supposons que toutes les lignes de
L
la matrice A soient lex-positives : ai ě 0. On peut choisir toute colonne ̄ telle que c̄ ´z̄ ă 0 ;
la variable sortante est choisie selon le critère lex-min comme suit : soit Ā “ B ´1 rb : As, la
matrice transformée dont les lignes sont āi . ı̄ satisfait
āı̄ L āi
ă , @i : āi̄ ą 0.
āı̄̄ āi̄

Remarquons que sous l’hypothèse que A est de rang m, aucune paire de lignes de A n’est
proportionnelle, et donc l’indice ı̄ ainsi défini est unique. Remarquons également qu’il est
toujours possible de démarrer l’algorithme du simplexe de sorte que les lignes de la matrice
Ā soient lex-positives.

Exercice 5.3.1 [Anti-cyclage] Considérez le tableau initial de l’exemple de la section 5.2 ;


avec chacune des deux règles d’anti-cyclage présentées à la section 5.3, effectuez suffisam-
ment d’itérations de l’algorithme du simplexe pour changer de point réalisable.

Exercice 5.3.2 [Valeur optimale] Quelle est la valeur optimale du problème linéaire sur
l’exemple de cyclage ?
144 CHAPITRE 5. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE

Exercice 5.3.3 [Deux phases] Proposez une méthode, utilisant deux phases, permettant
que pour chacune des deux phases, le tableau initial comporte des lignes lex-positives.

5.4 Convergence finie de l’algorithme du simplexe


Nous allons montrer que l’algorithme du simplexe modifié avec la règle lexicographique
ne peut pas cycler.
Théorème 5.4.1 Supposons que l’on démarre l’algorithme du simplexe avec un tableau dont
les lignes sont lex-positives. En appliquant la règle lexicographique, (i) les lignes de la matrice
Ā “ B ´1 rb, As demeurent lex-positives et (ii) la première ligne du tableau est strictement lex-
croissante.
Preuve Montrons d’abord que les lignes demeurent lex-positives. Après un pivot, la ı̄ème
ligne devient
āı̄
ā1ı̄ “
āı̄̄
avec āı̄̄ ą 0 de sorte que āı̄ demeure lex-positive. Lorsque i ­“ ı̄, distinguons deux cas.
‚ āi̄ ą 0 ; dans ce cas,
āi̄ āı̄
ā1i “ āi ´

ˆ ı̄̄ ˙
āi āı̄
“ āi̄ ´ ě0
āi̄ āı̄̄
par choix lexicographique.
‚ āi̄ ď 0 ; dans ce cas,
āi̄ āı̄
ā1i “ āi ´
āı̄̄
|āi̄ |āı̄ L
“ āi ` ě āi
āı̄̄
Enfin, examinons l’effet d’un pivot sur la “ligne 0” d’un tableau. Cette ligne est composée
de r´cB xB , c ´ cb B ´1 As. Notons cette ligne par ā0 . On peut montrer qu’un pivot transforme
la ligne 0 en
ā0̄ āı̄
ā10 “ ā0 ´
āı̄̄
|ā0̄ |āı̄ L
“ ā0 ` ą ā0
āı̄̄
5.5. RÉSUMÉ 145

puisque par hypothèse ā0̄ ă 0 (critère d’entrée) et toutes les lignes sont lex-positives. Par
conséquent l’algorithme ne peut pas cycler, car il ne peut pas réexaminer deux fois une même
base. l

*Exercice 5.4.1 [Théorie] Démontrez la formule utilisée dans la preuve du théo-


rème 5.4.1 donnant la mise à jour de la ligne 0 après un pivot.

Le résultat précédent permet de garantir que l’algorithme du simplexe ne termine pas avec
des coûts relatifs négatifs : en effet, la règle d’entrée choisit un indice de coût relatif négatif,
et la règle d’anti cyclage assure que la décomposition rrB | N ss ne sera jamais revisitée, donc
la seule possibilité est de terminer avec des coûts relatifs non-négatifs. Ceci démontre le
théorème de dualité forte.

5.4.1 Dualité forte

Théorème 5.4.2 (Dualité forte) Si le problème (2.2) possède une solution optimale x˚ ,
alors le problème (4.1) possède une solution optimale π ˚ telle que cx˚ “ π ˚ b.

Preuve Soit x˚ la solution optimale obtenue par l’algorithme du simplexe utilisant une
règle d’anti-cyclage, rrB | N ss la partition optimale et π ˚ “ cB B ´1 les multiplicateurs associés.
Alors, les coûts relatifs c ´ π ˚ N sont non-négatifs. Par conséquent, π ˚ est une solution
réalisable pour le dual. De plus, π ˚ b “ cB B ´1 b “ cB x˚B “ cx˚ . l

5.5 Résumé
Nous avons présenté un exemple où l’algorithme du simplexe cycle, tourne en rond.
Nous avons introduit une variante de règle de pivot qui assure que l’algorithme résultant ne
cycle pas, ce qui permet de garantir sa terminaison en un point satisfaisant les conditions
nécessaires d’optimalité équivalentes au théorème de dualité forte.
La dégénérescence est le phénomène qu’une composante des indices de base i P B voit
la valeur égale à zéro (rB ´1 bsi “ 0). On parle de dégénérescence primale. La dégénérescence
duale est associée à une composante j P N telle que c̄j “ 0. Dans les deux cas, il y a moyen
d’échanger deux indice entre B et N et obtenir le même point x mais pas la même partition
de base.
146 CHAPITRE 5. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE

L’algorithme (primal) du simplexe consiste à parcourir les solutions de base réalisable


jusqu’à détecter la non-réalisabilité duale, équivalente à la non-bornitude primale puisque
toutes les solutions de base réalisables sont primal-réalisables.
Si l’algorithme ne rencontre jamais de base dégénérée, à chaque itération, la fonction
objectif décroît strictement et l’algorithme est assuré de terminer puisque le nombre de
solutions de base est fini.
En présence de dégénérescence, il est possible que l’algorithme cycle entre (au moins 6)
plusieurs bases sans changer de point et ainsi produise une boucle infinie. Il est possible
d’empêcher ce phénomène en utilisant une règle d’anti-cyclage. La règle de Bland est la plus
simple de ces règles et consiste à choisir la colonne j̄ comme étant le premier indice des
c̄j ă 0 (et non pas l’indice associé à la composante la plus négatie) et si deux (ou plus) lignes
atteignent le ratio minimum dans le choix d’une ligne, choisir celle d’indice minimal (dans
l’ordre original des variables, pas dans l’ordre des lignes).
Avec une règle d’anti-cyclage, on peut démontrer que l’algorithme du simplexe termine
toujours, soit en détectant que le problème est non borné, soit avec une solution optimale,
donc dual-réalisable. Ceci permet de démontrer la condition nécessaire d’optimalité.

5.6 Tous les exercices du chapitres


*Exercice (5.1.1, page 140) [Dégénérescence et unicité]
a) Démontrez que si aucune solution optimale du problème (2.2) n’est dégénérée, alors le
problème (4.1) possède une solution unique.
b) Est-il vrai que le problème (4.1) possède toujours plus d’une solution lorsque le primal (2.2)
possède une solution dégénérée ?

Exercice (5.1.2, page 141) [Dégénérescence] Considérez les contraintes linéaires


n
ÿ
xij “ 1, j “ 1, 2, . . . n
i“1
n
ÿ
xij “ 1, i “ 1, 2, . . . n
j“1

xij ě 0, i “ 1, 2, . . . n, j “ 1, 2, . . . n.

Trouvez un vecteur c pour lequel ce problème possède des bases dégénérée simultanément
pour les problèmes (2.2) et (4.1).

Exercice (5.3.1, page 143) [Anti-cyclage] Considérez le tableau initial de l’exemple de la


section 5.2 ; avec chacune des deux règles d’anti-cyclage présentées à la section 5.3, effectuez
suffisamment d’itérations de l’algorithme du simplexe pour changer de point réalisable.
5.6. TOUS LES EXERCICES DU CHAPITRES 147

Exercice (5.3.2, page 143) [Valeur optimale] Quelle est la valeur optimale du problème
linéaire sur l’exemple de cyclage ?

Exercice (5.3.3, page 144) [Deux phases] Proposez une méthode, utilisant deux phases,
permettant que pour chacune des deux phases, le tableau initial comporte des lignes lex-
positives.

*Exercice (5.4.1, page 145) [Théorie] Démontrez la formule utilisée dans la preuve du
théorème 5.4.1 donnant la mise à jour de la ligne 0 après un pivot.
148 CHAPITRE 5. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE
Chapitre 6
Analyse de sensibilité

Sujets du chapitre
‚ Analyse de sensibilité.
‚ Analyse post optimale.
‚ Algorithme paramétrique.

149
150 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

Introduction
Une fois qu’il a résolu un modèle d’optimisation linéaire, l’utilisateur se pose souvent des
questions du genre
‚ que se passerait-il si le coût de telle ou telle ressource augmentait ?
‚ que se passerait-il si telle ressource était ajoutée au modèle à tel prix ?
‚ que se passerait-il si telle exigence était modifiée ?
On parle alors d’analyse post-optimale, aussi nommée analyse de sensibilité. Souvent, on
précise la question en demandant “jusqu’à quel point peut-on augmenter le coût de telle
ressource sans que le programme de production ne change”. Ce degré d’augmentation se
formulera à l’aide d’un paramètre et on s’intéressera à analyser la plage du paramètre qui
assure que le programme de production optimal ne change pas.

6.1 Un exemple
Revenons au tout premier modèle spécifique introduit à la section 1.1 et résolu par l’al-
gorithme du simplexe à la section 3.4.2.

min2 ´1.5x1 ´ x2
xPR
sujet à x1 ` x2 ď 400
2x1 ` x2 ď 600
x2 ď 300
x1 , x2 ě 0

dont le tableau optimal est

x1 x2 x3 x4 x5
1 1
0 0 2 2
0 500
0 1 2 ´1 0 200 (6.1)
1 0 ´1 1 0 200
0 0 ´2 1 1 100

On peut
¨ voir dans
˛ ce tableau que les variables
¨ de base
˛ optimales sont B “ t2, 1, 5u, la matrice
1 1 0 2 ´1 0
B “ ˝1 2 0‚ et son inverse B ´1 “ ˝´1 1 0‚.
1 0 1 ´2 1 1
6.1. UN EXEMPLE 151

Modification des données de b


Posons-nous quelques questions, que se passerait-il si ?
¨ ˛
100
´1 ˝
‚ Si la première contrainte était ď 100, les variables de base seraient alors B 600‚ “
¨ ˛ 300
´400
˝ 500 ‚ et la solution de base ne serait pas réalisable. On pourrait utiliser l’algorithme
700
dual du simplexe pour retrouver la solution optimale du problème modifié.
‚ Jusqu’à quel point peut-on diminuer le membre de droite (400) de la première contrainte
tout
¨ en ˛ maintenant
¨ ˛ la base courante réalisable ? Écrivons que le membre de droite est
400 ´1
˝600‚` µ ˝ 0 ‚. On peut calculer, fonction du paramètre µ, la solution de base xB pµq “
300»¨ ˛ 0 ¨ ˛fi ¨ ˛ ¨ ˛ ¨ ˛
400 ´1 ´1 200 ´2
´1 –˝ ´1 ˝
B 600 ` µ 0
‚ ˝ ‚ fl “ xB p0q ` µB 0 “ 200 ` µ 1 ‚. On retrouve une
‚ ˝ ‚ ˝
300 0 0 100 2
situation connue depuis longtemps sur l’intersection d’un rayon de droite avec l’orthant
positif. Dans ce cas particulier, on retrouve que la solution de base demeure réalisable pour
les valeurs ´50 ď µ ď 100.

Modification des données de c


‚ Si les coûts ´p 23 , 1q étaient remplacés par ´p5, 2q, alors, cB “ ´p2, 5, 0q et cN “ p0, 0q.
Les éléments non nuls (ceux de N ) de la nouvelle première ligne du tableau seraint cN ´
cB B ´1 N “ p´1, 3q et donc la base ne serait pas optimale. On pourrait utiliser l’algorithme
primal du simplexe pour retrouver la solution optimale du problème modifié.
‚ Si on voulait modifier les coûts du modèle original (en x1 et x2 ) de telle sorte que c “
´p 23 , 1q ´ µp 72 , 1q, pour quelles valeurs de µ la solution de base courante demeurerait-elle
optimale ? La situation ci-haut correspond à µ “ 1 et on sait que la base n’est alors pas
optimale. Écrivons (attention, B inverse les indices 1 et 2) cB pµq “ ´p1, 32 , 0q ´ µp1, 27 , 0q
et cN ´ cB pµqB ´1 N “ p 12 , 12 q ` µp1, 72 , 0qB ´1 N “ p 12 , 21 q ` µp´ 23 , 52 q. On peut conclure que
si ´ 31 ď µ ď 15 , la base courante demeure optimale.

Exercice 6.1.1 [Interprétation géométrique de l’analyse de sensibilité] En vous inspirant


de la figure 2.5, interprétez géométriquement les résultats de l’analyse ci haut.
152 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

Ajout d’une variable


Si on ajoute une variable à un modèle déjà résolu, c’est ajouter une nouvelle colonne de
coefficients A¨,n`1 ainsi qu’une nouvelle valeur cn`1 . La solution de base optimale demeure une
solution de base réalisable, mais pas forcément optimale. Il faut calculer c̄n`1 “ cn`1 ´πA¨,n`1 .
Si c̄n`1 ě 0, la solution de base demeure optimale. Dans le cas contraire, on peut utiliser
l’algorithme primal du simplexe pour obtenir la solution optimale.
t
Reprenons l’exemple ¨ en˛ ajoutant une vartiable x6 avec c6 “ 1 et la colonne a¨6 “ p2, 3, 4q .
1
On calcule B a¨6 “ 1‚ et c̄6 “ c6 ´ cB B ´1 a¨6 “ 27 ą 0, donc la solution sous la main
´1 ˝
3
demeure optimale. Si on avait eu c6 “ ´3, alors c̄6 “ ´ 12 et la solution n’est pas optimale.
On applique l’algorithme du simplexe primal pour restaurer l’optimalité.

Exercice 6.1.2 [Ajout de variable] Complétez les calculs pour restaurer l’optimalité de
cet exemple.

Ajout d’une contrainte


Si on ajoute une contrainte à un modèle déjà résolu, c’est ajouter une nouvelle ligne
de coefficients am`1,¨ ainsi qu’une nouvelle valeur bm`1 . Si la contrainte est satisfaite par la
solution de base optimale, elle demeure une solution optimale et réalisable. Cependant, ce
n’est généralelment pas une solution de base.
Dans tous les cas, on peut ajouter une variable de base xn`1 supplémentaire, mettre le
tableau sous forme canonique (en annulant les colonnes de B de la nouvelle ligne) et utiliser
l’algorithme dual du simplexe pour retrouver une solution réalisable. Si la solution était déjà
réalisable, elle sera dégénérée (pourquoi ?), donc nul besoin de l’algorithme dual du simplexe.
Autrement, l’algorithme dual permettra de restaurer une solution de base optimale.
Reprenons l’exemple du début. Ajoutons une contrainte x1 `2x2 ď 500. Comme on l’a vu,
la solution optimale est x1 “ 200 et x2 “ 200, donc ne satisfait pas à la nouvelle contrainte.
On lui ajoute une variable d’écart x6 pour écrire le tableau suivant.

x1 x2 x3 x4 x5 x6
1 1
0 0 2 2
0 0 500
0 1 2 ´1 0 0 200
(6.2)
1 0 ´1 1 0 0 200
0 0 ´2 1 1 0 100
1 2 0 0 0 1 500
6.1. UN EXEMPLE 153

Ce tableau n’est pas sous forme canonique, il faut introduire des zéros dans la nouvelle
contrainte aux positions 1 et 2.
x1 x2 x3 x4 x5 x6
1 1
0 0 2 2
0 0 500
0 1 2 ´1 0 0 200
(6.3)
1 0 ´1 1 0 0 200
0 0 ´2 1 1 0 100
0 0 ´3 1 0 1 ´100
Les conditions d’application de l’algorithme du simplexe dual sont satisfaites, ce qui permet-
tra de restaurer la réalisabilité.

Exercice 6.1.3 [Ajout de contrainte] Complétez les calculs pour restaurer la réalisabilité
de cet exemple.

Exercice 6.1.4 [Sensibilité] Soit le problème

min ´2x1 ´ 7x2 ` 3x3


sujet à x1 ` 3x2 ` 4x3 ď 30
x1 ` 4x2 ´ x3 ď 10
x1 , x2 , x3 ě 0.

On arrive au tableau optimal suivant incluant les variables d’écart x4 et x5 .

x1 x2 x3 x 4 x5
0 1 1 0 2 20
(6.4)
0 ´1 5 1 ´1 20
1 4 ´1 0 1 10

a) Donnez un intervalle de variation du coût c1 pour que la solution au tableau (6.10)


demeure optimale.
` ˘ ` ˘
b) On change le membre de droite 30 10
par 20
30
. Est-ce que la base actuelle demeure réa-
lisable et optimale ? Justifiez. Si non, déterminez une solution réalisable et optimale du
nouveau problème.
c) On change les coefficients pc3 , a13 , a23 qt “ p3, 4, ´1qt par p2, 3, ´2qt .
i) Que devient alors le tableau (6.10) ?
ii) Le nouveau tableau est-il optimal ? Si non, déterminez une solution optimale du nou-
veau problème.
154 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

d) On introduit une nouvelle variable x6 avec coefficients pc6 , a16 , a26 qt “ p´3, 1, 2qt .
i) Que devient alors le tableau (6.10) ?
ii) Le nouveau tableau est-il optimal ? Si non, déterminez une solution optimale du nou-
veau problème.
e) On introduit une nouvelle contrainte 2x1 ` 3x2 ` 3x3 ď 25 dans le problème original. Le
nouveau problème réalisable. Déterminez en une solution de base réalisable optimale.
f) On introduit une nouvelle contrainte 3x1 ` 2x2 ` 3x3 ď 25 dans le problème original. Le
nouveau problème n’est pas réalisable. Déterminez en une solution réalisable optimale.

Exercice 6.1.5 [Sensibilité] Soit le problème

min 2x1 ` x2 ´ 3x3 ` 2x4


sujet à x1 ` 3x2 ´ x3 ` 2x4 ď 7
´x1 ´ 2x2 ` 4x3 ď 12
´x1 ´ 4x2 ` 3x3 ` 8x4 ď 10
x1 , x2 , x3 , x4 ě 0.

Le tableau associé à la solution optimale est le suivant (x5 , x6 et x7 sont des variables
d’écart).
x1 x2 x3 x4 x5 x6 x7
7
5
0 0 12 5
1
5
4
5
0 11
3 4 2 1
10
1 0 5 5 10
0 4 (6.5)
1 2 1 3
´ 10 0 1 5 5 10 0 5
1
2
0 0 10 1 ´ 21 1 11
a) De quelle quantité faut-il modifier le coût c4 pour qu’il devienne avantageux de rendre
x4 positive ?
b) Déterminez l’intervalle de variation du coût c2 pour que la solution demeure optimale.
c) Déterminez l’intervalle de variation du terme de droite de la seconde contrainte (valeur
nominale de 12) pour que la base optimale demeure réalisable et optimale.
d) On introduit une nouvelle variable x8 ayant 1 comme coefficient dans chacune des trois
contraintes et un coût c8 “ ´2. Déterminez une solution optimale de ce nouveau pro-
blème.
e) On introduit une nouvelle contrainte x1 ` x2 ` x3 ` x4 ď 15 dans le problème original.
Le nouveau problème possède-t-il une solution réalisable ? Si oui, déterminez sa solution
optimale.
6.1. UN EXEMPLE 155

f) On suppose que les coefficients de la variable x1 dans le problème original sont a¨1 “
p3, ´3, 2qt . La solution du tableau (6.11) est-elle toujours optimale pour le nouveau
problème ? Si non, déterminez la solution optimale.

Exercice 6.1.6 [Sensibilité] Une compagnie fabrique trois produits A, B et C. On ne


considère que deux ressources principales, mati‘eres premières et main d’oeuvre. L’objectif
de la compagnie est de minimiser ses coûts de production. Supposons que son problème
se modélise ainsi, avec la première contrainte spécifiant les limites de main d’oeuvre et la
seconde de matières premières.

min ´3x1 ´ x2 ´ 5x3


sujet à 6x1 ` 3x2 ` 5x3 ď 45
3x1 ` 4x2 ` 5x3 ď 30
x1 , x2 , x3 ě 0.

a) Résolvez par la méthode du simplexe.


b) Trouvez un intervalle pour le coût du produit A de telle façon que la solution trouvée
demeure optimale pour toute valeur dans l’intervalle.
c) Déterminez une solution optimale quand c1 “ ´2.
d) Supposons que 15 unités additionnelles de matière première peuvent être obtenues à un
coût de 10$. Est-il profitable de faire cette opération ?
e) Trouvez une solution optimale quand la quantité de matière première passe à 60 unités.
f) On réduit de 2 la quantité de matière première intervenant dans la production d’une
unité du produit B. La solution trouvée en (a) demeure-t-elle optimale ?
g) On ajoute la contrainte x1 ` x2 ` 3x3 ď 20 au problème original. Quel effet cela aura-t-il
sur les solutions optimales du primal et du dual ? (Utilisez les écarts complémentaires).

Exercice 6.1.7 [Sensibilité] Soit un problème sous forme standard pour lequel on aboutit
au tableau optimal suivant. La première ligne est le vecteur c original et la seconde la ligne
des coûts du tableau final.
x1 x2 x 3 x4 x5
´2 ´3 ´1 0 0
0 0 4 3 4 8 (6.6)
1 0 1 3 ´1 1
0 1 1 ´1 2 2
156 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse de
la base optimale B ´1 se retrouve dans les colonnes 4 et 5 du tableau.
a) De combien faut-il augmenter c3 pour que la base courante cesse d’être optimale ? Trou-
vez une solution optimale pour c3 “ ´6.
b) De combien peut-on faire varier c1 pour que la base courante demeure optimale ?
c) Trouvez la plus grande et plus petite valeur de λ pour que la solution demeure optimale
si c est remplacé par c ` λp0, 0, ´1, 1, 2q.
d) De combien b2 (sa valeur originale) peut-il varier avant que la base courante cesse d’être
optimale ? (Note : pas besoin de calculer la valeur originale de b2 ).
e) Trouvez une solution réalisable et optimale par l’algorithme dual du simplexe quand b2
est augmenté de deux unités.

Exercice 6.1.8 [Sensibilité] Soit un problème sous forme standard pour lequel on aboutit
au tableau optimal suivant. La première ligne est le vecteur c original et la seconde la ligne
des coûts du tableau final.
x1 x2 x 3 x4 x5
´2 ´3 ´1 0 0
0 0 3 3 1 8 (6.7)
1 0 ´1 3 ´1 1
0 1 2 ´1 1 2

On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse de
la base optimale B ´1 se retrouve dans les colonnes 4 et 5 du tableau.
a) Donnez un intervalle de variation de c2 pour que la solution reste optimale. Trouvez une
solution optimale pour c2 “ ´1.
b) Trouvez un intervalle de λ pour`que ˘ la base t1, 2u demeure optimale 1et réalisable si le
1
vecteur b est remplacé par b ` λ ´1 . Résoudre le problème pour λ “ 2 .
c) Trouvez une solution optimale si une nouvelle contrainte x1 ` x3 ě 2 est ajoutée au
problème original.
6.2. ALGORITHME AUTO-DUAL PARAMÉTRIQUE 157

6.2 Algorithme auto-dual paramétrique


Maintenant que nous avons étudié la dualité, l’algorithme dual du simplexe, ainsi que
l’analyse de sensibilité, nous avons les outils pour définir une variante très intéressante de
l’algorithme du simplexe. Cette variante ne nécessite pas que la solution de base initiale soit
primal ou dual réalisable. L’algorithme ne nécessite donc jamais deux phases.

6.2.1 Idée générale


L’idée est la suivante. Considérons que nous avons sous la main une partition base/hors-
base rrB | N ss. Alors, la solution de base x̃B “ B ´1 b et c̃N “ πN ´ cN où πB “ cB . Si la
solution était primal réalisable, on aurait x̃B ě 0 et si elle était dual-réalisable, on aurait
c̃N ě 0. Puisque ce n’est possiblement pas le cas, ajoutons une perturbation positive x̂B ą 0
et ĉN ą 0 de sorte que dans le problème perturbé que nous considérons, xB “ x̃B ` µx̂B et
c̄N “ c̃N ` µĉN . Il est clair que nous pouvons choisir µ assez grand pour que la base courante
soit optimale (primal-réalisable et dual-réalisable) pour le problème perturbé. L’algorithme
consiste donc à ramener à zéro le paramètre µ par une suite de pivots appropriés.
Pour décrire une itération de l’algorithme, on débute en calculant

µ˚0 “ mintµ : c̃N ` µĉN ě 0 et x̃B ` µx̂B ě 0u. (6.8)

Alors, la base courante est primal et dual-réalisable pour toute valeur de µ ě µ˚0 . Pour
µ “ µ˚ , soit on a un indice j P N tel que c̃j ` µ˚0 ĉj “ 0, soit on a un indice i P B tel que
xi ` µ˚0 x̂i “ 0. Dans le premier cas, on sélectionne j comme variable d’entrée, et on effectue
un pivot primal. Autrement, on sélectionne i comme variable de sortie, et effectue un pivot
dual. Après le pivot, on aura de nouvelles valeurs de x̃B , c̃N , x̂B , ĉN , et la relation (6.8)
nous donnera une nouvelle valeur de µ˚1 , et l’algorithme continue ainsi jusqu’à ce que µ˚k ă 0.
Comme alors la base courante sera optimale et réalisable pour toute valeur de µk´1 ě µ ě µ˚k ,
en particulier, la base sera optimale pour µ “ 0, ce que nous voulions obtenir.

6.2.2 Exemple détaillé


Voyons cet algorithme sur un exemple.
Considérons le problème

min z “ x1 ´ x2
sujet à 2x1 ` x2 ě 2
x1 ` 3x2 ď 3
x1 , x2 ě 0
158 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

On obtient un tableau de départ


x1 x2 x 3 x4
1 ´1 0 0 0
´2 ´1 1 0 ´2
1 3 0 1 3
auquel on ajoute un paramètre µ perturbant le problème ainsi en choisissant x̂B “ em et
ĉn “ etn´m , où em dénote le vecteur p1, 1, ..., 1qt de dimension m. Ici, ça adonne que cN et xB
sont tous deux de dimension 2.
x1 x2 x3 x4
1 ` µ ´1 ` µ 0 0 0
´2 ´1 1 0 ´2 ` µ
1 3 0 1 3`µ
La plus petite valeur de µ pour laquelle ce tableau est optimal et réalisable est µ˚ “ 2,
et le tableau est réalisable pout toute valeur de µ ě 2. Pour cette valeur, la variable sortante
´1 ´2
est x3 , et la variable entrante est x2 car ´1`µ ˚ ă
1`µ˚
. On effectue le pivot, et obtient le
0 0
nouveau tableau
x1 x2 x3 x4
3´µ 0 µ´1 0 ´z
2 1 ´1 0 2 ´ µ
´5 0 3 1 4µ ´ 3
Pour ce nouveau tableau, la plus petite valeur de µ pour laquelle ce tableau est optimal et
réalisable est µ˚1 “ 1 ; en fait, les conditions sont 2 ´ µ ě 0, 4µ ´ 3 ě 0, 3 ´ µ ě 0 et µ ´ 1 ě 0,
d’où on tire que si µ˚1 “ 1 ď µ ď 2 “ µ˚0 , alors le tableau est optimal et réalisable. Pour
cette valeur, la variable entrante est x3 , et la variable sortante est x4 . On effectue le pivot,
et obtient le nouveau tableau
x 1 x2 x 3 x4
4{3 ` 2µ{3 0 0 1{3 ´ µ{3 ´z
1{3 1 0 1{3 1 ` µ{3
´5{3 0 1 1{3 4µ{3 ´ 1
Pour ce nouveau tableau, la plus petite valeur de µ pour laquelle ce tableau est optimal et
réalisable est µ˚2 “ 3{4, car l’intervalle de µ est µ˚2 “ 3{4 ď µ ď 1 “ µ˚1 . Pour cette valeur,
la variable sortante est x3 , et la variable entrante est x1 . On effectue le pivot, et obtient le
nouveau tableau
x1 x2 x3 x4
0 0 4{5 ` 2µ{5 3{5 ´ µ{5 ´z
0 1 1{5 2{5 4{5 ` 3µ{5
1 0 ´3{5 ´1{5 3{5 ´ 4µ{5
6.2. ALGORITHME AUTO-DUAL PARAMÉTRIQUE 159

Maintenant, la valeur de µ “ 0 rend ce tableau optimal et réalisable, et le tableau final de


notre problème est donc
x1 x2 x3 x4
0 0 4{5 3{5 ´z
0 1 1{5 2{5 4{5
1 0 ´3{5 ´1{5 3{5

Exercice 6.2.1 [Valeur de z] Complétez le tableau pour avoir une expression de la valeur
de ´z à chaque itération, et donc pour la solution optimale.

Exercice 6.2.2 [Intervalle final] Quel est l’intervalle de µ qui rend le tableau final réali-
sable et optimal ?

Exercice 6.2.3 [Illustration graphique] Illustrez graphiquement les itérations de l’algo-


rithme

Exercice 6.2.4 [Algorithme auto paramétrique] Considérez le tableau suivant

x1 x2 x3 x 4 x5
2µ ´ 1 0 3 ´ µ 0 0
´1 1 1 0 0 µ´1 (6.9)
´3 0 2 1 0 3µ ´ 4
´1 0 ´1 0 1 2

a) Pour quelles valeurs de µ ce tableau est-il réalisable et optimal ?


b) Si on applique l’algorithme auto dual, quelle variable entrera dans la base et quelle en
sortira ?
160 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

Simplexe auto dual paramétrique


t Données : une partition rrB | N ss de Rn , une représentation u
´1
t de la matrice
´ B .u ¯
µ˚ Ð max maxjPN,ĉj ą0 ´ ĉc̃jj , maxiPB,x̂i ą0 ´ x̃x̂ii
tantque (µ˚ ą 0 _ non_borné _ vide )
si (Primal ) alors
δx Ð SOLUTION(Bδx “ N̄ )
t Choix d’une variable sortante u
si (δx ď 0 ) alors non_borné Ð vrai
δxi
sinon ı̄ Ð arg maxiPB p x̃i `µ ˚ x̂ q
i
sinon
t Dual u
t Production de la ligne ı̄ u
āı̄ Ð peTı̄ B ´1 qN
t Choix d’une variable entrante u
si (āı̄ ě 0 ) alors vide Ð vrai
sinon
āı̄j
̄ Ð arg minjPN p c̃j `µ ˚ ĉ q
j
δx Ð SOLUTION(Bδx “ N̄ )
x̂ı̄
x̂̄ Ð δx ı̄
; x̂B Ð x̂B ´ x̂̄ δx
x̃ı̄
x̃̄ Ð δxı̄ ; x̃B Ð x̃B ´ x̃̄ δx
t Mises-à-jour diverses u
rrB | N ss Ð rrB Y t̄uztı̄u | N Y tı̄uzt̄uss
B ´1 Ð Mise_à_jourpB ´1 , rrB | N ss, ı̄, ̄q
t Production d’un vecteur de coûts réduits u
π̃ Ð SOLUTION(πB “ c̃B ); π̂ Ð SOLUTION(πB “ ĉB )
z̃N Ð π̃N ; ẑN Ð π̂N
c̃N Ð cN ´ z̃N ; ĉN Ð cN ´ ẑN
´ ¯
µ˚ Ð max maxjPN,c̃j ą0 ´ c̃ĉjj , maxiPB,x̂i ą0 ´ x̃x̂ii

xB Ð x̃

Ici encore, on peut mettre à jour les ĉN et c̃N , et bien entendu, les solutions et mises-à-jour
de B ´1 sont efficaces.
Algorithme 6.1: Simplexe auto-dual paramétrique.
6.3. ANTI-CYCLAGE PROBABILISTE 161

Exercice 6.2.5 [Application d’algorithme] Utilisez l’algorithme auto dual paramétrique


pour résoudre les problèmes suivants.
a)
min 2x1 ´ 3x2
sujet à ´x1 ` x2 ď ´1
´x1 ´ 2x2 ď ´2
x2 ď 1
x1 , x2 ě 0.
b)
min ´3x1 ` x2
sujet à x1 ´ x2 ď 1
´x1 ` x2 ď ´4
x1 , x 2 ě 0.
c)
min ´2x1 ` 6x2
sujet à ´x1 ´ x2 ´ x3 ď ´2
2x1 ´ x2 ` x3 ď 1
x1 , x2 , x3 ě 0.

6.3 Anti-cyclage probabiliste


Une manière simple d’éviter l’anti-cyclage est la suivante. Considérons l’algorithme primal
du simplexe. Le cyclage survient dès que deux variables de base ont des quotients Āb̄isi égaux,
et que l’une d’elle est choisie comme variable sortante. Alors, les 2 deviennent nulles en
même temps, une sort de la base, et l’autre y demeure, provoquant une solution dégénérée.
Il suffit donc de s’assurer que jamais deux tels quotients ne se présentent pour assurer la
terminaison de l’algorithme. Une manière d’y parvenir est de remplacer le vecteur b par une
perturbation b ` r, où r est un vecteur de dimension m dont les composantes sont aléatoires
et très petites. La probabilité d’avoir alors le choix entre deux variables de sortie est nulle.
Un point faible de cette technique est que le problème résolu est en fait une perturbation du
problème original.
Une alternative est rendue possible par l’algorithme auto dual paramétrique. Rappelons
que cet algorithme consiste à ajouter à un tableau initial un multiple µe au vecteur c et au vec-
teur b ; pour que le tableau initial soit optimal, il suffit que µ ě maxp´ mini ci , ´ minj bj , 0q.
Si on veut éviter que lorsque l’on réduit µ, deux composantes de c̄ ou b̄ deviennent nulles,
il suffit de remplacer e “ p1, 1, . . . , 1qt par un vecteur dont les composantes sont aléatoires
162 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

entre 1{2 et 3{2, disons. Remarquons que cette fois-ci, la perturbation devient nulle dès que
l’algorithme atteint µ “ 0, et donc c’est bel et bien le problème original qui est alors résolu.
Rappelons que ainsi, l’algorithme auto dual paramétrique consistera à démarrer avec
un tableau initial sous forme canonique, dans lequel on remplace le vecteur c̄ “ c par un
vecteur paramétrique c̄ ` µc et le vecteur b̄ “ b par un vecteur paramétrique b̄ ` µb . c
et b sont des vecteurs de même dimension que c et b respectivement, dont les composantes
sont aléatoires, uniformes entre 1{2 et 3{2, disons. Alors, la plus petite valeur de µ pour
laquelle le tableau initial est optimal et réalisable est µ0 ě maxp´ mini c̄ci , ´ minj b̄bj , 0q.
i j

L’utilisation des vecteurs c et b assurent qu’une seule valeur de b̄ ` µ0 b ou c̄ ` µ0 c ne


vaut 0 (avec probabilité un). Si c’est une valeur de c̄ ` µ0 c , on effectue un changement de
base avec cette composante comme variable entrante à l’aide d’une itération de l’algorithme
primal du simplexe. Autrement, c’est une valeur de b̄ ` µ0 b qui est nulle, et on fait sortir
la composante correspondante de la base à l’aide d’une itération de l’algorithme dual du
simplexe. On trouve alors une valeur µ1 au delà de laquelle ce nouveau tableau est réalisable
et optimal. On calcule µ1 de la même manière qu’on avait calculé µ0 , sauf que c̄ et b̄ ont
été modifiés par le pivot. On continue jusqu’à ce que µk`1 ď 0 ă µk . Alors, le tableau est
réalisable et optimal pour tout µ P rµk`1 , µk s, et cet intervalle contient µ “ 0, donc le tableau
est optimal pour le problème original.

6.4 Résumé
Une fois résolu par une variante de la méthode du simplexe, une solution de base optimale
et réalisable est disponible pour un problème d’optimisation linéaire. Ceci nous permet aussi
de calculer une solution optimale et réalisable pour le problème dual.
Si on modifie certaines données du problème original, composantes du vecteur de coût
c, du membre de droite b ou même de la matrice A, il est possible que la base optimale
et réalisable demeure optimale et réalisable. Si ce n’est pas le cas, selon quel paramètre est
modifié, on peut restaurer l’optimalité ou la réalisabilité. Selon le cas,
‚ modification de c : la base courante demeure réalisable et on peut, si elle n’est pas optimale,
restaurer l’optimalité avec l’algorithme primal du simplexe ;
‚ modification de b : la base courante demeure optimale (dual-réalisable) et on peut, si elle
n’est pas réalisable (dual-optimale), restaurer la réalisabilité avec l’algorithme dual du
simplexe ;
‚ modification de A : si on modifie des éléments associés aux variables de la base, tout
changera et il vaut mieux résoudre le problème à nouveau. Si les éléments modifiés sont
hors-base, on peut recalculer c̄N “ cN ´ cB B ´1 et déterminer si l’optimalité est préservée ;
sinon, on n’a pas touché à la réalisabilité et on peut utiliser l’algorithme primal du simplexe
pour restaurer l’optimalité.
6.5. EXTENSIONS ET RÉFÉRENCES 163

On a aussi vu qu’on peut calculer une plage de modification pour un des paramètres pour
garantir que la base courante demeure optimale et réalisable.
Enfin, l’algorithme auto-dual paramétrique consiste à ajouter un vecteur paramétrique
µe à cN et b, choisir µ assez grand pour que le problème ainsi perturbé soit optimal et
réalisable et progressivement réduire le paramètre µ jusqu’à 0 qui nous donnera une solution
de base optimale et réalisable. La réduction passe par des itérations de simplexe primal ou
dual ; s’il n’est pas possible de réduire µ à zéro, ce sera parce que une itération primale a
exhibé une colonne choisie non-positive ou une itération duale une ligne choisie non-négative.
Dans les deux cas, on aura détecté la non-réalisabilité du problème. Puisqu’on ne suppose
jamais la réalisabilité primale ou duale, la non-réalisabilité de l’un n’entraîne pas forcément
la non-bornitude de l’autre.

6.5 Extensions et références


6.6 Tous les exercices du chapitres
Exercice (6.1.1, page 151) [Interprétation géométrique de l’analyse de sensibilité] En
vous inspirant de la figure 2.5, interprétez géométriquement les résultats de l’analyse ci
haut.

Exercice (6.1.2, page 152) [Ajout de variable] Complétez les calculs pour restaurer l’op-
timalité de cet exemple.

Exercice (6.1.3, page 153) [Ajout de contrainte] Complétez les calculs pour restaurer la
réalisabilité de cet exemple.

Exercice (6.1.4, page 153) [Sensibilité] Soit le problème


min ´2x1 ´ 7x2 ` 3x3
sujet à x1 ` 3x2 ` 4x3 ď 30
x1 ` 4x2 ´ x3 ď 10
x1 , x2 , x3 ě 0.
On arrive au tableau optimal suivant incluant les variables d’écart x4 et x5 .
x 1 x2 x3 x4 x5
0 1 1 0 2 20
(6.10)
0 ´1 5 1 ´1 20
1 4 ´1 0 1 10

a) Donnez un intervalle de variation du coût c1 pour que la solution au tableau (6.10) demeure
optimale.
164 CHAPITRE 6. ANALYSE DE SENSIBILITÉ
` ˘ ` ˘
b) On change le membre de droite 30 10
par 20
30
. Est-ce que la base actuelle demeure réalisable
et optimale ? Justifiez. Si non, déterminez une solution réalisable et optimale du nouveau
problème.
c) On change les coefficients pc3 , a13 , a23 qt “ p3, 4, ´1qt par p2, 3, ´2qt .
i) Que devient alors le tableau (6.10) ?
ii) Le nouveau tableau est-il optimal ? Si non, déterminez une solution optimale du nouveau
problème.
d) On introduit une nouvelle variable x6 avec coefficients pc6 , a16 , a26 qt “ p´3, 1, 2qt .
i) Que devient alors le tableau (6.10) ?
ii) Le nouveau tableau est-il optimal ? Si non, déterminez une solution optimale du nouveau
problème.
e) On introduit une nouvelle contrainte 2x1 ` 3x2 ` 3x3 ď 25 dans le problème original. Le
nouveau problème réalisable. Déterminez en une solution de base réalisable optimale.
f) On introduit une nouvelle contrainte 3x1 ` 2x2 ` 3x3 ď 25 dans le problème original. Le
nouveau problème n’est pas réalisable. Déterminez en une solution réalisable optimale.

Exercice (6.1.5, page 154) [Sensibilité] Soit le problème

min 2x1 ` x2 ´ 3x3 ` 2x4


sujet à x1 ` 3x2 ´ x3 ` 2x4 ď 7
´x1 ´ 2x2 ` 4x3 ď 12
´x1 ´ 4x2 ` 3x3 ` 8x4 ď 10
x1 , x2 , x3 , x4 ě 0.

Le tableau associé à la solution optimale est le suivant (x5 , x6 et x7 sont des variables d’écart).

x1 x 2 x3 x4 x5 x 6 x7
7
5
0 0 12 5
1
5
4
5
0 11
3 4 2 1
10
1 0 5 5 10 0 4 (6.11)
1
´ 10 0 1 25 15 10 3
0 5
1 1
2
0 0 10 1 ´ 2 1 11
a) De quelle quantité faut-il modifier le coût c4 pour qu’il devienne avantageux de rendre x4
positive ?
b) Déterminez l’intervalle de variation du coût c2 pour que la solution demeure optimale.
c) Déterminez l’intervalle de variation du terme de droite de la seconde contrainte (valeur
nominale de 12) pour que la base optimale demeure réalisable et optimale.
d) On introduit une nouvelle variable x8 ayant 1 comme coefficient dans chacune des trois
contraintes et un coût c8 “ ´2. Déterminez une solution optimale de ce nouveau problème.
6.6. TOUS LES EXERCICES DU CHAPITRES 165

e) On introduit une nouvelle contrainte x1 ` x2 ` x3 ` x4 ď 15 dans le problème original.


Le nouveau problème possède-t-il une solution réalisable ? Si oui, déterminez sa solution
optimale.
f) On suppose que les coefficients de la variable x1 dans le problème original sont a¨1 “
p3, ´3, 2qt . La solution du tableau (6.11) est-elle toujours optimale pour le nouveau pro-
blème ? Si non, déterminez la solution optimale.
Exercice (6.1.6, page 155) [Sensibilité] Une compagnie fabrique trois produits A, B et
C. On ne considère que deux ressources principales, mati‘eres premières et main d’oeuvre.
L’objectif de la compagnie est de minimiser ses coûts de production. Supposons que son
problème se modélise ainsi, avec la première contrainte spécifiant les limites de main d’oeuvre
et la seconde de matières premières.
min ´3x1 ´ x2 ´ 5x3
sujet à 6x1 ` 3x2 ` 5x3 ď 45
3x1 ` 4x2 ` 5x3 ď 30
x1 , x2 , x3 ě 0.
a) Résolvez par la méthode du simplexe.
b) Trouvez un intervalle pour le coût du produit A de telle façon que la solution trouvée
demeure optimale pour toute valeur dans l’intervalle.
c) Déterminez une solution optimale quand c1 “ ´2.
d) Supposons que 15 unités additionnelles de matière première peuvent être obtenues à un
coût de 10$. Est-il profitable de faire cette opération ?
e) Trouvez une solution optimale quand la quantité de matière première passe à 60 unités.
f) On réduit de 2 la quantité de matière première intervenant dans la production d’une unité
du produit B. La solution trouvée en (a) demeure-t-elle optimale ?
g) On ajoute la contrainte x1 ` x2 ` 3x3 ď 20 au problème original. Quel effet cela aura-t-il
sur les solutions optimales du primal et du dual ? (Utilisez les écarts complémentaires).
Exercice (6.1.7, page 155) [Sensibilité] Soit un problème sous forme standard pour le-
quel on aboutit au tableau optimal suivant. La première ligne est le vecteur c original et la
seconde la ligne des coûts du tableau final.
x1 x2 x3 x4 x5
´2 ´3 ´1 0 0
0 0 4 3 4 8 (6.12)
1 0 1 3 ´1 1
0 1 1 ´1 2 2
On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse de la
base optimale B ´1 se retrouve dans les colonnes 4 et 5 du tableau.
166 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

a) De combien faut-il augmenter c3 pour que la base courante cesse d’être optimale ? Trouvez
une solution optimale pour c3 “ ´6.
b) De combien peut-on faire varier c1 pour que la base courante demeure optimale ?
c) Trouvez la plus grande et plus petite valeur de λ pour que la solution demeure optimale
si c est remplacé par c ` λp0, 0, ´1, 1, 2q.
d) De combien b2 (sa valeur originale) peut-il varier avant que la base courante cesse d’être
optimale ? (Note : pas besoin de calculer la valeur originale de b2 ).
e) Trouvez une solution réalisable et optimale par l’algorithme dual du simplexe quand b2
est augmenté de deux unités.

Exercice (6.1.8, page 156) [Sensibilité] Soit un problème sous forme standard pour le-
quel on aboutit au tableau optimal suivant. La première ligne est le vecteur c original et la
seconde la ligne des coûts du tableau final.

x1 x2 x3 x4 x5
´2 ´3 ´1 0 0
0 0 3 3 1 8 (6.13)
1 0 ´1 3 ´1 1
0 1 2 ´1 1 2

On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse de la
base optimale B ´1 se retrouve dans les colonnes 4 et 5 du tableau.
a) Donnez un intervalle de variation de c2 pour que la solution reste optimale. Trouvez une
solution optimale pour c2 “ ´1.
b) Trouvez un intervalle de λ pour` que
˘ la base t1, 2u demeure optimale1 et réalisable si le
1
vecteur b est remplacé par b ` λ ´1 . Résoudre le problème pour λ “ 2 .
c) Trouvez une solution optimale si une nouvelle contrainte x1 ` x3 ě 2 est ajoutée au
problème original.

Exercice (6.2.1, page 159) [Valeur de z] Complétez le tableau pour avoir une expression
de la valeur de ´z à chaque itération, et donc pour la solution optimale.

Exercice (6.2.2, page 159) [Intervalle final] Quel est l’intervalle de µ qui rend le tableau
final réalisable et optimal ?

Exercice (6.2.3, page 159) [Illustration graphique] Illustrez graphiquement les itérations
de l’algorithme
6.6. TOUS LES EXERCICES DU CHAPITRES 167

Exercice (6.2.4, page 159) [Algorithme auto paramétrique] Considérez le tableau sui-
vant
x1 x2 x3 x4 x5
2µ ´ 1 0 3 ´ µ 0 0
´1 1 1 0 0 µ´1 (6.14)
´3 0 2 1 0 3µ ´ 4
´1 0 ´1 0 1 2
a) Pour quelles valeurs de µ ce tableau est-il réalisable et optimal ?
b) Si on applique l’algorithme auto dual, quelle variable entrera dans la base et quelle en
sortira ?

Exercice (6.2.5, page 161) [Application d’algorithme] Utilisez l’algorithme auto dual pa-
ramétrique pour résoudre les problèmes suivants.
a)
min 2x1 ´ 3x2
sujet à ´x1 ` x2 ď ´1
´x1 ´ 2x2 ď ´2
x2 ď 1
x1 , x2 ě 0.
b)
min ´3x1 ` x2
sujet à x1 ´ x2 ď 1
´x1 ` x2 ď ´4
x1 , x2 ě 0.
c)
min ´2x1 ` 6x2
sujet à ´x1 ´ x2 ´ x3 ď ´2
2x1 ´ x2 ` x3 ď 1
x1 , x2 , x3 ě 0.
168 CHAPITRE 6. ANALYSE DE SENSIBILITÉ
Chapitre 7
Quelques extensions

Sujets du chapitre
‚ Observations sur la géométrie du problème.
‚ Condition d’optimalité.
‚ Déduction de l’algorithme du simplexe.
‚ Théorie de la dualité linéaire.
‚ Dégénérescence.
‚ Aspects numériques.

169
170 CHAPITRE 7. QUELQUES EXTENSIONS

Introduction
7.1 Un algorithme de décomposition
Nous présentons dans cette section un algorithme de décomposition, dû à Dantzig et
Wolfe, qui introduit une technique qui s’est avérée importante et efficace nommée génération
de colonnes. Considérons un problème de la forme

min c1 x 1 ` c2 x 2
sujet à A1 x1 ` A2 x2 “ b0
B1 x1 “ b1 (7.1)
B2 x2 “ b2
x1 , x2 ě0
où x1 P Rn1 , x2 P Rn2 , b0 P Rm0 , b1 P Rm1 , b2 P Rm2 . On a donc n “ n1 ` n2 variables et
m “ m0 ` m1 ` m2 contraintes. Si ce n’était pas de la contrainte couplante A1 x1 ` A2 x2 “ b0
de dimension m0 , on serait en présence de deux problèmes indépendants,

min c1 x 1
sujet à B1 x1 “ b1 (7.2)
x1 ě0
comportant m1 contraintes et

min c2 x 2
sujet à B2 x2 “ b2 . (7.3)
x2 ě0
comportant m2 contraintes.
Supposons pour cette introduction que chacun des sous-problèmes (7.2) et (7.3) ont des
domaines réalisables bornés. Alors, il n’est pas difficile de se convaincre intuitivement que
le domaine réalisable est en fait une combinaison convexe des sommets du polyèdre, des
solutions de base réalisables des contraintes. En effet, tout point réalisable qui ne peut pas
s’exprimer comme combinaison de deux autres points réalisables est un point extrême, so-
lution de base. Donc, un point quelconque est soit un point extrême, soit une combinaison
de points réalisables. Les combinaisons de 2 points extrêmes nous donnent les arêtes du
polyèdre, de trois points des faces, et ainsi de suite, engendrant le polyèdre en entier. La dé-
monstration rigoureuse de cette propriété est délicate, aussi nous nous contenterons d’utiliser
le résultat suivant.
Théorème 7.1.1 Soit un ensemble borné décrit par des contraintes Ax “ b, x ě 0. Soient
p1 , p2 , . . . , pk l’ensemble des points extrêmes
ř ř(solutions de base réalisables) de l’ensemble.
Alors, tx : Ax “ b, x ě 0u “ tx : x “ αi pi , αi “ 1, α ě 0u.
7.1. UN ALGORITHME DE DÉCOMPOSITION 171

Par exemple, un triangle est l’ensemble des combinaisons convexes de ses sommets, et un
point d’un carré peut s’exprimer comme combinaison convexe des 2 (parfois plus) triangles
qui le contiennent. On voit alors que les multiples αi qui décrivent un point d’un carré ne
sont pas uniques. Ces valeurs αi sont nommées coordonnées barycentriques du point. Sous
certaines conditions (par exemple si le point est dans un triangle 2D, donc 3 points extrêmes),
cette représentation est unique, mais en général, plusieurs (en fait , une infinité) combinaisons
convexes de points extrêmes pourront décrire le même point.
Remarque 7.1.1 Le nombre de solutions de base réalisables est énorme, beaucoup plus
grand que n ou m. Par exemple, les contraintes simples 0 ď x ď 1 comportent n variables,
2n contraintes, et 2n sommets. pour n “ 20, on a 40 contraintes, mais 1 048 576 sommets.

Avec cette représentation, nous allons décrire les domaines réalisables des problèmes (7.2)
et (7.3) en utilisant des combinaisons convexes de leurs points extrêmes.
ř
x
ř 1 “ α i pi
αi “ 1 (7.4)
α ě0
et ř
x
ř2 “ βj q j
βj “1 (7.5)
β ě 0.
Sans les dénombrer explicitement, on suppose que les sommations sur i et j s’appliquent à
tous les points extrêmes de leur polyèdre respectifs.
Maintenant, récrivons le problème original (7.1) en utilisant les variables α et β, obtenant
ainsi le problème nommé problème maître.
ř ř
minα,β c1 p řαi pi q ` c2 p řβj qj q
sujet à ř A1 p αi pi q ` A2 p βj qj q “ b0
αi “1
ř (7.6)
βj “1
α ě0
β ě 0.

Notre nouveau problème (7.6) comporte m0 `2 contraintes comparativement à m0 `m1 `m2


pour le problème (7.1), donc quelques pm1 ` m2 ´ 2q contraintes de moins que (7.1), mais
comporte beaucoup plus de variables. L’algorithme du simplexe doit trouver une variable
parmi les αi et βj profitable pour entrer dans la base. L’opération de pivot fera intervenir
m0 ` 2 lignes. Pour sélectionner une variable d’entrée, il faut obtenir les coûts relatifs, donc
les multiplicateurs (variables duales) du problème maître.
Les multiplicateurs seront partitionnés entre m0 composantes associées au premier bloc
de contraintes (y0 ), et deux composantes scalaires (y1 , y2 ) associées aux deux contraintes de
172 CHAPITRE 7. QUELQUES EXTENSIONS

somme des α et β. Introduisons les notations ξi “ c1 pi , ξ est le vecteur de coût des variables
α. Similairement, µj “ c2 qj , µ est le vecteur de coût des variables β. Pour les contraintes,
introduisons Ψi “ A1 pi et Φj “ A2 qj . Les coûts relatifs de la colonne αi obéit donc à la
relation ¨ ˛
Ψi
ξ¯i “ ξi ´ py0 , y1 , y2 q ˝ 1 ‚ “ ξi ´ y0 Ψi ´ y1 , (7.7)
0
et les coûts relatifs de la colonne βj à la relation
¨ ˛
Φi
µ̄j “ µj ´ py0 , y1 , y2 q ˝ 0 ‚ “ µj ´ y0 Φj ´ y2 . (7.8)
1

Il faut donc trouver le minimum des ξ¯i , des µ̄j et prendre le minimum des 2. S’il est positif,
la solution est optimale, autrement, nous avons déterminé la variable d’entrée.
Maintenant, pour trouver le minimum des ξ¯i , utilisons (7.7) et remarquons que y1 et y2
ne dépendent pas de i (ni de j), et donc il suffit de minimiser ξi ´ y0 Ψi et µj ´ y0 Φj . En se
souvenant que ξi “ c1 pi et Ψi “ A1 pi , on constate qu’il faut minimiser pc1 ´y0 A1 qu pour tous
les points extrêmes u du domaine réalisable tx1 : B1 x1 “ b1 , x1 ě 0u. Or, on peut obtenir
cette minimisation sans connaître les pi car il suffit de résoudre

min pc1 ´ y0 A1 qx1


sujet à B1 x1 “ b1 (7.9)
x1 ě 0,

et similairement pour les variables β avec le sous-problème

min pc2 ´ y0 A2 qx2


sujet à B2 x2 “ b2 (7.10)
x2 ě 0.

On a donc réduit le problème de choisir une variable d’entrée à la résolution de 2 sous-


problèmes. Comme les points extrêmes ne sont pas explicitement énumérés, mais générés par
la solution des sous-problèmes (7.9) et (7.10), on parle de génération de colonne. L’algorithme
génère les colonnes pertinentes au fur et à mesure des itérations du simplexe.

7.2 Introduction aux algorithmes de point intérieur


Bien que l’algorithme du simplexe soit élégant et en général très efficace, on peut construire
des problèmes où il se comporte vraiment mal, c’est-à-dire qu’il nécessite un nombre de pivots
exponentiel ( 2n ). L’exemple est un hyper cube déformé. Un hyper cube dans Rn comporte
7.2. INTRODUCTION AUX ALGORITHMES DE POINT INTÉRIEUR 173

2n sommet. Il n’y a qu’a considérer n “ 1, un carré possède 22 “ 4 sommets, un cube dans


R3 23 “ 8 sommet, et ainsi de suite. L’exemple est construit malicieusement pour que l’al-
gorithme du simplexe passe par tous les sommets avant d’aboutir à la solution ; il démarre
d’un sommet et visite les 2n ´ 1 autres sommets avant de terminer.
Voici un exemple d’un tel pire cas pour l’algorithme du simplexe.
n
ÿ
max xi (7.11)
i“1
sujet à x1 ď1 (7.12)
k´1
ÿ
2 xi ` xk ď2k ´ 1, k “ 2, 3, . . . , n, (7.13)
i“1
x ě0. (7.14)

On peut le convertir sous forme standard du simplexe, même sous forme canonique comme
suit.
n
ÿ
max
x,s
xi
i“1
sujet à x1 ` s1 “1
k´1
ÿ
2 xi ` xk ` s k “2k ´ 1, k “ 2, 3, . . . , n,
i“1
x, s ě0.

Par exemple, pour n “ 3, le tableau initial correspondant à x “ 0 et s “ p1, 3, 7qt est le


suivant ; on a converti en minimisation en multipliant les coûts par moins un.

-1 -1 -1 0 0 0 0
1 0 0 1 0 0 1
2 1 0 0 1 0 3
2 2 1 0 0 1 7

Pour cet exemple, puisque tous les coûts cN sont égaux, prenons la convention de choisir
le premier parmis ceux égaux au minimum. On vérifie que l’algorithme du simplexe prend
2n ´ 1 itérations pour aboutir à la solution.

Exercice 7.2.1 [Pire cas du simplexe] Pour n “ 3 et n “ 4, vérifiez que l’algorithme du


simplexe nécessite 7 et 15 itérations respectivement.
174 CHAPITRE 7. QUELQUES EXTENSIONS

Un algorithme nécessitant une quantité exponentielle de calculs est considéré inefficace.


Un algorithme nécessitant une quantité de calculs bornée par un polynôme en n est considéré
efficace.
L’algorithme du simplexe est (selon ce critère théorique) considéré inefficace. Or, en 1978,
Khachian a proposé un algorithme polynomial pour résoudre les problèmes d’optimisation
linéaire. Cependant, l’algorithme des ellipsoïdes de Khachian est extrêmement inefficace en
pratique.
En 1984, Karmarkar a proposé un algorithme très efficace en pratique et de complexité
polynomiale. Nous allons présenter superficiellement une version simpliste d’un algorithme
de point intérieur. L’algorithme est fondé sur des notions d’optimisation non linéaire que
nous ne pouvons pas utiliser ici.
Rappelons les conditions d’optimalité en remplaçant la variable duale π par une variable
colonne y “ π t et considérons que s est une colonne.
Ax “ b, (7.15)
x ě 0 (7.16)
t
A y`s “ c, (7.17)
s ě 0 (7.18)
t
sx “ 0. (7.19)
L’algorithme de point intérieur que nous présentons va considérer que x ą 0 et s ą 0, donc
les variables x et s sont dans l’intérieur de l’orthant qui les contraint. Par conséquent, la
relation (7.19) ne peut pas être satisfaite ; l’algorithme va tenter de calculer des points qui
approximativement satisfont xt x “ nµk à l’itération k en utilisant une suite µk Œ 0. Donc,
à chaque itération, on tente de résoudre
Ax ´ b “ 0, (7.20)
t
A y ` s ´ c “ 0, (7.21)
s i xi “ µ k . (7.22)
Remarquons que tous les algorithmes du type simplexe examinaient des solutions de base
où la relation sx “ 0 était toujours satisfaite. Les algorithmes de type point intérieur sont
donc fondamentalement différents car les itérations ne sont jamais des solutions de base.
On nomme la solution wk “ pxk , yk , xk q. En fait, on ne réussit pas à résoudre les équations,
mais on s’en approche. Nommons les résidus des trois équations rkp , rkd , rkc où le résidu rp
est le résidu sur la réalisabilité primale, rd la réalisabilité duale et enfin rc le résidu de la
complémentarité perturbée. On aura donc
Axk ´ b “ rkp , (7.23)
At yk ` sk ´ c “ rkd , (7.24)
Sk xk “ µk 1 ` rkc , (7.25)
7.2. INTRODUCTION AUX ALGORITHMES DE POINT INTÉRIEUR 175

où nous avons utilisé la notation que Sk majuscule est la matrice diagonale dont les com-
posantes sont celles du vecteur sk minuscule ; Sk xk est le produit composante par compo-
sante des vecteurs sk et xk . Maintenant, considérons le déplacement de wk “ pxk , yk , xk q à
wk`1 “ pxk`1 , yk`1 , xk`1 q, δk “ pδkx , δky , δks q. Idéalement, nous voudrions que le prochain point
ait un résidu nul pour la valeur de µk`1 .

Apxk ` δkx q ´ b “ 0, (7.26)


At pyk ` δky q ` sk ` δks ´ c “ 0, (7.27)
pSk ` ∆sk qpxk ` δkx q “ µk`1 1, (7.28)

Sauf pour la dernière équation qui comporte un terme quadratique ∆sk δkx , toutes les autres
équations sont linéaires. Négligeons donc ce terme quadratique pour calculer une approxi-
mation de δ qui satisfait aux équations linéaires suivantes :

Aδkx “ ´rkp , (7.29)


At δky ` δks “ ´rkd , (7.30)
Sk δkx ` Xk δks “ µk`1 1 ´ rkc , (7.31)

que l’on peut récrire sous forme matricielle comme

´rkp
¨ ˛ ¨ x˛ ¨ ˛
A 0 0 δk
˝ 0 At I ‚˝δky ‚ “ ˝ ´rkd ‚ (7.32)
Sk 0 Xk s
δk µk`1 1 ´ rk
c

Un algorithme de point intérieur procède alors comme suit. On suppose donnés w0 “


px0 , y0 , s0 q avec µ0 qui satisfont que le résidu pr0p , r0d , r0c q n’est pas trop grand. On pose k “ 0.
‚ résoudre les équations linéaires 7.32
‚ calculer t̄, la plus grande valeur de t pour que xk ` tδkx ě 0 et sk ` tδks ě 0 ;
‚ si t̄ ą 1, alors poser t̄ “ 0.99t̄ ;
‚ poser wk`1 “ wk ` t̄δk ;
‚ passer à µk`1 ă µk .
Voilà le principe de ces algorithmes de point intérieur. Il est impossible de détailler d’avan-
tage cette famille de méthode sans puiser dans l’analyse mathématique et numérique qui
ne sont pas considérés préalables à l’utilisation de ce texte. Espérons tout de même avoir
réussi à susciter une curiosité à propos de ces algorithmes modernes qui sont utilisés avec
considérablement de succès pour des problèmes de dimensions énormes, parlons de milliard
de variables (n “ 109 ) !
176 CHAPITRE 7. QUELQUES EXTENSIONS

7.3 Traitement de variables entières


Nous avons vu dans quelques modèles du chapitre 1 qu’il faut spécifier certaines variables
de décision comme prenant des valeurs entières et non pas réelles (continues). Nous présentons
maintenant une introduction simpliste à deux familles de techniques permettant de résoudre
de tels modèles en nombres entiers.
Considérons l’exemple

min2 ´5x1 ´ 8x2


xPR
sujet à x1 ` x2 ď 6
(7.33)
5x1 ` 9x2 ď 45
x1 , x2 ě 0, entiers,

tiré de [1] http ://web.mit.edu/15.053/www/AMP.htm, chapitre 9 et que l’on peut visualiser


à la figure 7.1.

On peut voir la solution G

continue, le point F “ 7

p 94 , 15
4
qt ; le vecteur G est
l’opposé du vecteur coût, la 6

ligne en pointillés longs la


fonction objectif au point 5

continu et celle en pointillé 4


F
court sa valeur à la solution
entière. On peut aussi obser- 3

ver que l’arrondi du point F ,


le point p2, 4qt n’est pas réa- 2

lisable. Le point entier réa- 1

lisable le plus proche de F


est p2, 3qt n’est pas optimal, 0 1 2 3 4 5 6 7 8 9 10 11

c’est p0, 5qt qui est optimal.

Figure 7.1 – Exemple

Si pour un exemple si simple de seulement deux variables les stratégies naïves d’arrondir
la solution continue ne fonctionne pas, ce sera évidemment encore plus problèmatique pour
des modèles réalistes !
7.3. TRAITEMENT DE VARIABLES ENTIÈRES 177

7.3.1 Séparation et évaluation progressive

Cette approche est fondée sur l’observation suivante : si une composante de la solution
continue xci R Z, alors dans la solution optimale entière, soit on aura xi ď txci u, soit xi ě rxci s.
On sépare donc le problème en deux, c’est le branch dans le nom anglophone branch and
bound.

Séparation

On peut donc constituer deux nouveaux problèmes en y incorporant respectivement ces


deux contraintes. C’est la partie “séparation” de l’approche. Sur notre petit exemple, choisis-
sons arbitrairement la variable xc2 “ 15
4
pour constituer deux nouveaux problèmes incorporant
respectivement les contraintes x2 ď 3 et x2 ě 4.

G Soit x2 ď 3, soit x2 ě 4.
7

M1
5

P1
4
F 11
P
A
O

0 1 2 3 4 5 6 7 8 9 10 11

Figure 7.2 – Exemple

Maintenant, la solution avec x2 ď 3 est p3, 3qT , solution entière de valeur ´39. On ne
séparera plus cette portion puisqu’on y a identifié une solution optimale entière. Par contre,
la solution avec x2 ě 4 est p 95 , 4qt et donc nous effectuerons une autre séparation. x1 ě 2 n’a
pas de solution, donc cette séparation résulte en un seul nouvel ensemble x1 ď 1.
178 CHAPITRE 7. QUELQUES EXTENSIONS

x2 ě 4 et x1 ď 1, la solution
est p1, 40
9
qt . 5.2

4.8

4.6

4.4

4.2

3.8

-0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

Figure 7.3 – Exemple

La solution est fractionnaire, donc on sépare encore selon x2 ě 5 et x2 ď 4. Rendu là,


il n’y plus rien à séparer. On peut illustrer l’organisation des séparations dans un arbre tel
qu’illustré à la figure 7.4

Évaluation progressive

Évidemment, on ne peut pas effectuer tous les calculs à la fois et on privilégiera un ordre
pour déployer l’arbre d’énumération des séparations. À moins que x P Zn , un nœud donné
dans l’arbre n’est pas terminal et sera sujet à séparation future.

Exercice 7.3.1 [Application de l’algorithme] Appliquez l’algorithme de séparation et éva-


luation progressive pour résoudre

min2 ´x2
xPR
sujet à 3x1 ` 2x2 ď 6
(7.34)
´3x1 ` 2x2 ď 0
x1 , x2 ě 0, entiers,
7.3. TRAITEMENT DE VARIABLES ENTIÈRES 179

min ´ 5x1 ´ 8x2


sujet à
x1 ` x2 ď 6
5x1 ` 9x2 ď 45
x1 , x2 P N
résoudre comme problème continu

4
F

0 1 2 3 4 5 6 7 8 9 10 11

x “ p 94 , 15 t
4
q ,z “ ´41 14

x2 ď 3 x2 ě 4
G
G

7 7

6 6

M1 M1
5 5

V1
4 4
F
P F1
P
U

3 3

1 .. 2

0 1 2 3 4 5 6 7 8 9 10 11

. 0 1 2 3 4 5 6 7 8 9 10 11

x“ p3, 3qt , z “ ´39 x“ p 95 , 4qt , z “ ´41

x1 ď 1 x1 ě 2
5.2

4.8
Problème vide
4.6

4.4

4.2

3.8

-0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

40 t
xp1, 9
q ,z “ ´40 59

x2 ď 4 x2 ě 5
5.2 5.2

5 5

4.8 4.8

4.6 4.6

4.4 4.4

4.2 4.2

4 4

3.8 3.8

-0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 -0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

x“ p1, 4qt , z “ ´37 x“ p0, 5qt , z “ ´40

Figure 7.4 – Arbre des séparations


180 CHAPITRE 7. QUELQUES EXTENSIONS

7.3.2 Coupes
L’idée des algorithmes de la famille des plans de coupe est d’ajouter une ou plusieurs
contraintes pour éliminer une solution indésirable. Dans notre cas, une solution à coordon-
nées fractionnaires n’est pas désirable lorsque les variables sont spécifiées comme entières.
Examinons le tableau final de la solution fractionnaire.
5 3
0 0 4 4
41 41
9
1 0 4
´ 41 9
4
0 1 ´ 54 1
4
15
4

Si on lit adéquatement la première ligne du tableau, on voit que


9 1 9
x1 ` x3 ´ x4 “ . (7.35)
4 4 4
En général, on aura une expression de la forme
ÿ
xi ` Āij xj “ b̄i (7.36)
jPN

où Ā “ B ´1 A et b̄ “ B ´1 b. On récrit cette expression en regroupant les portions entières


dans le membre de gauche et les parties fractionnaires dans le membre de droite :
ÿ ÿ` ˘
xi ` tĀij uxj ´ tb̄i u “ b̄i ´ tb̄i u ´ Āij ´ tĀij u xj . (7.37)
jPN jPN

Dans notre exemple, cette équation se simplifie à


1 1 3
x1 ` 2x3 ´ x4 ´ 2 “ ´ x3 ´ x 4 . (7.38)
4 4 4
On voit que pour n’importe quelle point à coordonnées entières réalisable, donc x3 ě 0 et
x4 ě 0, on aura que le membre de droite a une valeur plus petite que 1 alors que le membre de
gauche, en un point réalisable à coordonnées entières est un nombre entier. Par conséquent,
le membre de droite doit être plus petit ou égal à zéro et la relation suivante doit être vérifiée
pour tout point réalisable à coordonnées entières :
ÿ` ˘
b̄i ´ tb̄i u ´ Āij ´ tĀij u xj ď 0. (7.39)
jPN

Par ailleurs, les variables hors base (dans N ) sont nulles en une solution de base, et donc en
une solution de base à coordonnées non entières, on a
ÿ` ˘
b̄i ´ tb̄i u ´ Āij ´ tĀij u xj “ b̄i ´ tb̄i u ą 0 (7.40)
jPN
7.3. TRAITEMENT DE VARIABLES ENTIÈRES 181

ce qui montre que la relation(7.42) n’est pas satisfaite pour une solution de base non entière.
Donc, cette relation est une contrainte nommée coupe, elle est satisfaite pour tout point
entier réalisable et élimine la solution de base fractionnaire courante.
Sur notre exemple, la contrainte (7.37) s’écrit
1 1 3
´ x3 ´ x4 ď 0 (7.41)
4 4 4
et on voit bien que la solution de base courante x3 “ x4 “ 0 ne satisfait pas cette coupe. On
ajoute donc une variable d’écart x5 et une contrainte ´ 14 x3 ´ 34 x4 ` x5 “ ´ 41
5 3 165
0 0 4 4
0 4
9
1 0 4
´ 14 0 9
4
0 1 ´ 45 1
4
0 15
4
0 0 ´ 41 ´ 34 1 ´ 14
Puisque x3 et x4 sont des variables d’écart du problème (7.33), on peut exprimer directement
dans les variables x1 et x2 la contrainte 4x1 ` 7x2 ď 35.

Exercice 7.3.2 [Illustration] Illustrez cette coupe sur la figure 7.1.

Exercice 7.3.3 [Une itération] Utilisez l’algorithme dual du simplexe pour restaurer la
réalisabilité de l’exemple.

On peut aussi utiliser la ligne “0” du tableau pour définir une coupe. Dans ce cas, la
coupe sera constituée des coefficients de la ligne 0 changés de signe (car notre problème est
un min) ÿ` ˘
¯ ´ t´zu ´
´z ´Ā0j ´ t´Ā0j u xj ď 0. (7.42)
jPN
3
qui, sur notre exemple, donne x
4 3
` 14 x4 ě 3
4
qui, dans les variables x1 et x2 équivaut à
2x1 ` 3x2 ď 15.

Exercice 7.3.4 [Illustration] Illustrez cette coupe sur la figure 7.1.

On voit d’après les illustrations que cette seconde coupe enlève une plus grande portion
du domaine réalisable que la première. Dans le jargon, on dit que la seconde coupe est plus
profonde que la première.
182 CHAPITRE 7. QUELQUES EXTENSIONS

Exercice 7.3.5 [Une autre coupe] Choisissez la seconde équation x2 ´ 54 x3 ` 41 x4 “ 15 4


pour définir une coupe ; vérifiez que cette coupe est identique à celle définie à l’aide de la
ligne 0. Utilisez l’algorithme dual du simplexe pour restaurer la réalisabilité.

Il est possible de définir un algorithme complet et une démonstration que l’algorithme


termine avec une solution entière s’il en existe. L’analyse nécessite l’utilisation de règles
d’anti-cyclage.

Exercice 7.3.6 [Application de l’algorithme] Appliquez l’algorithme des plans de coupe


pour résoudre le problème de l’exercice 7.3.1.

7.3.3 Remarques
Nous venons de voir brièvement deux approches qui constituent la base de tout algorithme
pour résoudre des problèmes avec variables entières, les algorithmes de séparation et évalua-
tion progressive (beanch and bound) et les algorithmes de plans de coupe (cutting planes).
Les logiciels modernent utilisent une combinaison des deux approches avec d’innombrables
raffinements.
Contrairement à l’optimisation linéaire continue pour laquelle il existe un algorithme
polynomial, l’optimisation linéaire en nombres entiers est un problème reconnu comme NP-
difficile, ce qui signifie que fort probablement il n’existe pas d’algorithme polynomial pour sa
résolution. La question à savoir si des problèmes NP-difficiles peuvent être résolus en temps
polynomial est une question ouverte très importante en informatique théorique.
En pratique, donc, il faut s’attendre à être rapidement limité en termes de dimensions
des problèmes en présence de contraintes d’intégrité, nom donné aux contraintes imposant
des variables à prendre que des valeurs entières.

7.4 Implantation numérique de l’algorithme du sim-


plexe
Jusqu’à maintenant, nous avons évité de discuter de l’implantation de l’opération de pi-
votage, permettant d’effectuer une itération de l’algorithme du simplexe de manière efficace.
En général, le calcul de l’inverse d’une matrice B m ˆ m non-singulière est une opération
qui nécessite Opm3 q opérations. Comme nous allons le voir, il est possible d’implanter l’al-
gorithme du simplexe en utilisant seulement Opmnq opérations par itération.
7.4. IMPLANTATION NUMÉRIQUE DE L’ALGORITHME DU SIMPLEXE 183

La matrice B ´1 est requise dans deux sous-calculs de l’algorithme 1.1 : il s’agit de


SOLUTIONpπB “ cB q et de SOLUTIONpBδx “ N̄ q. Nous avons choisi d’écrire ces opérations
sous forme de solutions de systèmes linéaires pour atténuer le réflexe naturel de parler de
B ´1 . En effet, l’utilisation de la matrice inverse est un bien mauvais choix pour obtenir la
solution de systèmes linéaires, tant du point de vue de l’efficacité des calculs que du point
de vue de la précision numérique de la solution. Dans les ouvrages de méthodes numériques,
on recommande plutôt d’utiliser une mise en facteurs, aussi nommée décomposition de la
matrice B ; les décompositions recommandées sont la décomposition LU, correspondant à la
méthode de Gauss, et la décomposition QR, pouvant être calculée avec les algorithmes de
Givens, Householder ou Gramm-Schmidt.
Dans la suite de cette section, nous présentons l’implantation de l’opération de pivotage
de l’algorithme du simplexe en utilisant ces deux décompositions matricielles. Ensuite, nous
discutons brièvement des difficultés numériques causées par le phénomène de dégénérescence,
ou encore de dégénérescence numérique.

7.4.1 Utilisation de la décomposition LU


La décomposition LU d’une matrice carrée est obtenue par le procédé d’élimination de
Gauss. L’appendice A résume les variantes de cette méthode. Supposons donc que la matrice
B soit décomposée B “ LU , où U est obtenue par le procédé d’élimination de Gauss, et L
représente les opérations élémentaires utilisées lors de l’élimination. Supposons maintenant
que la matrice B se fasse substituer une nouvelle colonne Bi1 à la place de l’ancienne. Alors,
de la relation U “ L´1 B, on tire que H “ L´1 B 1 sera de la forme suivante :

Il suffit maintenant, à l’aide d’une permutation de colonne, de déplacer la colonne trouble


à la dernière position en décalant les autres pour obtenir la forme suivante :
184 CHAPITRE 7. QUELQUES EXTENSIONS

i´1 i`1 n i

Cette dernière matrice est nommée une matrice Hessenberg supérieure, et est presque déjà
triangularisée, à l’exception de quelques éléments sur la sous-diagonale. On voit donc qu’il
est possible de triangulariser cette matrice Hessenberg supérieure en utilisant n ´ i pivots de
la méthode d’élimination de Gauss. De plus, on peut utiliser la stratégie de pivot partiel de
manière très simple en examinant seulement l’élément diagonal, et l’élément sous-diagonal
car les autres éléments d’une colonne sont tous nuls. Soit donc M “ Mn Mm´1 . . . Mi`1 la
matrice qui représente les n ´ i pivots. On a M L´1 B 1 “ U 1 , de sorte que L1 “ LM ´1 .
Une autre stratégie de choix de pivot permet de profiter de la structure de zéros de la
matrice.

7.4.2 Utilisation de la décomposition QR


Il est possible de triangulariser une matrice non-singulière à l’aide d’une matrice ortho-
gonale Q.

7.4.3 Dégénérescence numérique


Les problèmes causés par le phénomène de dégénérescence ne se limitent pas aux troubles
de cyclage décrits plus haut. En fait, même en présence de problèmes dégénérés, lors des
calculs, les variables xB ne seront pas nulles, mais prendront des valeurs numériquement très
petites.
Un autre problème numérique relié à la dégénérescence est le suivant. Considérons l’exemple
où dans R3 , trois contraintes se rencontrent selon une droite. Bien entendu, un sommet des
contraintes impliquera au moins une quatrième contrainte. Cependant, il est fort possible
que, numériquement, les trois contraintes définissent un point. Ce point n’est pas, en général,
un point extrême des contraintes au sens mathématique, mais peut fort bien, dû aux erreurs
numériques, être accepté comme solution optimale.
Il faut retenir que le phénomène de dégénérescence engendre des problèmes au niveau
théorique, et en engendre d’autres, encore plus difficile à résoudre, au niveau numérique.
7.5. RÉSUMÉ 185

7.5 Résumé
Nous avons vu que l’ensemble réalisable E “ tx : Ax “ b, x ě 0u, s’il est borné,
peut s’exprimer comme l’ensemble des combinaisons convexes de ses points extrêmes. Dans
la forme standard du simplexe, les points extrêmes sont les solutions de base réalisables.
Exploitant cette représentation, nous avons présenté l’implémentation de l’algorithme dans sa
forme révisée en décomposant un problème avec structure en escalier et contrainte couplante.
Nous avons exhibé un exemple où l’algorithme du simplexe nécessite 2n ´ 1 itérations.
Un algorithme nécessitant une quantité exponentielle de calculs est considéré inefficace. Les
algorithmes de points intérieurs permettent de résoudre, en pire cas, un problème d’optimi-
sation linéaire avec une quantité de calculs bornée par un polynôme fonction de la taille du
problème. Une différence importante avec les algorithmes de type simplexe est que, dans le
cas dégénéré où il y a plusieurs solutions, l’algorithme du simplexe en identifie une de base
alors que les algorithmes de points intérieurs en identifient une “centrale”.

7.6 Extensions et références


7.7 Tous les exercices du chapitres
Exercice (7.2.1, page 173) [Pire cas du simplexe] Pour n “ 3 et n “ 4, vérifiez que
l’algorithme du simplexe nécessite 7 et 15 itérations respectivement.

Exercice (7.3.1, page 178) [Application de l’algorithme] Appliquez l’algorithme de sépa-


ration et évaluation progressive pour résoudre
min2 ´x2
xPR
sujet à 3x1 ` 2x2 ď 6
(7.43)
´3x1 ` 2x2 ď 0
x1 , x2 ě 0, entiers,

Exercice (7.3.2, page 181) [Illustration] Illustrez cette coupe sur la figure 7.1.

Exercice (7.3.3, page 181) [Une itération] Utilisez l’algorithme dual du simplexe pour
restaurer la réalisabilité de l’exemple.

Exercice (7.3.4, page 181) [Illustration] Illustrez cette coupe sur la figure 7.1.

Exercice (7.3.5, page 182) [Une autre coupe] Choisissez la seconde équation x2 ´ 45 x3 `
1
x “ 15
4 4 4
pour définir une coupe ; vérifiez que cette coupe est identique à celle définie à l’aide
de la ligne 0. Utilisez l’algorithme dual du simplexe pour restaurer la réalisabilité.
186 CHAPITRE 7. QUELQUES EXTENSIONS

Exercice (7.3.6, page 182) [Application de l’algorithme] Appliquez l’algorithme des plans
de coupe pour résoudre le problème de l’exercice 7.3.1.
Annexe A
Rappels mathématiques

Cet appendice regroupe quelques rappels de calcul différentiel et d’algèbnre matriciel.

A.1 Rappels d’analyse mathématique : optimisation


en une dimension
Rappelons que si f est différentiable en un minimum local x˚ , alors f 1 px˚ q “ 0.
Théorème A.1.1 Soit x˚ un minimum local de la fonction f , supposée différentiable au
moins en x˚ . Alors, f 1 px˚ q “ 0.

Corollaire A.1.1 Soit x˚ un maximum local de la fonction f , supposée différentiable au


moins en x˚ . Alors, f 1 px˚ q “ 0.

Il est remarquable que seule la différentiabilité de f au point minimum suffit pour établir
cette condition nécessaire.

Exercice A.1.1 [Point stationnaire] Démontrez le théorème A.1.1 en utilisant la défini-


tion de la dérivée.

Théorème A.1.2 (Rolle) Soit une fonction f différentiable sur un intervalle ra, bs et telle
que f paq “ f pbq ; alors, il existe un point c P ra, bs tel que f 1 pcq “ 0.

Théorème A.1.3 (de la moyenne ou des accroissements finis) Soit f une fonction
différentiable sur un intervalle ra, bs. Alors, il existe un point c P ra, bs tel que f 1 pcq “
f pbq´f paq
b´a
.

187
188 ANNEXE A. RAPPELS MATHÉMATIQUES

Exercice A.1.2 [Théorème de la moyenne] Démontrez le théorème de la moyenne.


Construisez une fonction h différentiable à partir de f , telle que hpaq “ hpbq “ 0, et
appliquez le théorème de Rolle à h.

La généralisation aux dérivées d’ordre supérieur du théorème de la moyenne constitue le


théorème de Taylor :

Théorème A.1.4 Soit une fonction f : R Ñ R m ` 1 fois continûment différentiable sur


2
un intervalle pa, bq. Alors, il existe x0 P pa, bq tel que f pbq´f
b´a
paq
“ f 1 paq ` f 2!paq pb ´ aq . . . `
f pmq paq f pm`1q px0 q
m!
pb ´ aqm´1 ` pm`1q!
pb ´ aqm .

A.2 Rappels d’algèbre linéaire


Soit une matrice A, m ˆ n, donc comportant m lignes et n colonnes. Nous disons que A
est de plein rang-ligne si ses m lignes sont linéairement indépendantes et similairement pour
la définition de plein rang-colonne.
Le noyau de la matrice A, noté ker A est défini comme l’ensemble des vecteurs v P Rn tels
que Av “ 0. ker A est un sous-espace vectoriel de Rn et si A est de plein rang-ligne (si toutes
ses lignes sont linéairement indépendantes), alors sa dimension est n ´ m. En particulier,
si n “ m, alors une matrice de plein-rang-ligne est inversible et son noyau est réduit au
sous-espace trivial.
Une matrice réelle Q n ˆ n symétrique est dite définie positive ssi xt Qx ą 0 quel que soit
x ­“ 0 et semi-définie-positive si xt Qx ě 0 quel que soit x.
Un vecteur propre v ­“ 0 associé à une valeur propre λ d’une matrice A satisfait à l’égalité
Av “ λv. Tout vecteur non nul de ker A est un vecteur propre associé à la valeur propre 0.

A.2.1 Matrices inversibles


Une matrice carrée (n ˆ n) est inversible si toutes ses lignes sont linéairement indépen-
dantes. Toutes ses colonnes sont également linéairement indépendantes. Un système d’équa-
tions linéaires défini par une matrice inversible Ax “ b possède une solution unique x “ A´1 b.

Calculer l’inverse d’une matrice


Soit A une matrice inversible. Le calcul de l’inverse de A est un sujet très étudié et
il existe de multiples méthodes. Une des plus simples, la méthode de Gauss-Jordan est
particulièrement utile dans le contexte de l’algorithme du simplexe. Cette méthode consiste
A.2. RAPPELS D’ALGÈBRE LINÉAIRE 189

en l’application d’opérations élémentaires (multiplier une ligne par une constante, ajouter
un multiple d’une ligne à une autre) simultanément à A et à une matrice identité.
Examinons un petit exemple pour calculer l’inverse d’une matrice 3 ˆ 3.
¨ ˛
3 0 2
A “ ˝2 0 ´2‚
0 1 1

La méthode, pratique pour de petites matrices à inverser sur papier consiste à constituer un
tableau où on juxtapose l’identité à la matrice A, rA|Is.

3 0 2 1 0 0
2 0 ´2 0 1 0
0 1 1 0 0 1
On commence par diviser la première ligne par 3 pour avoir notre un d’identitée en position
(1,1).
2 1
1 0 3 3
0 0
2 0 ´2 0 1 0
0 1 1 0 0 1
Ensuite, on ajoute ´2 fois la première ligne à la seconde.
2 1
1 0 3 3
0 0
0 0 ´ 10
3
´ 23 1 0
0 1 1 0 0 1

On a une première colonne de l’identité. On ne peut pas passer à la colonne 2 imédiatement


(c’est un zéro), on passe à la colonne 3. Une solution répandue est de choisir l’élément de
plus grande magnitude dans la colonne et d’interchanger la ligne problematique (ligne deux,
zéro dans la colonne deux) avec la ligne identifiée (ligne trois, un dans la colonne deux). Si
toute la colonne est nulle sous la diagonale, c’est que la matrice n’est pas inversible.
L’élément (3,3) est déjà un, il suffit d’ajouter 10
3
fois la troisième ligne à la seconde et ´ 23
à la première pour avoir notre troisième colonne de l’identité.

1 ´ 32 0 1
3
0 ´ 23
0 10
3
0 ´ 23 1 10
3
0 1 1 0 0 1
10
On divise maintenant la seconde ligne par 3

1 ´ 32 0 1
3
0 ´ 23
0 1 0 ´ 15 3
10
1
0 1 1 0 0 1
190 ANNEXE A. RAPPELS MATHÉMATIQUES

2
et enfin ajoute 3
fois la seconde ligne à la première, puis moins une fois à la troisième.
1 1
1 0 0 5 5
0
0 1 0 ´ 15 3
10
1
1 3
0 0 1 5
´ 10 0

Pourquoi ça marche ?
On peut représenter chacune des opérations élémentaires par la multiplication par une
matrice appropriée. Multiplier une ligne par une constante s’effectue en multipliant par une
matrice n ˆ n Si pf q, mise à l’échelle de la ligne i d’un facteur f , S pour scaling en anglais.
Pour n “ 3, ¨ ˛
1 0 0
S2 p3q “ ˝0 f 0‚.
0 0 1
En général, c’est une matrice identité où on remplace le un en ligne/colonne i par f . Ajouter
un multiple f d’une ligne i à une autre j s’écrit comme la multiplication par une matrice
disons Rij qui est l’identité à laquelle l’élément pj, iq (nul car i ­“ j) est remplacé par f .Pour
n “ 3, ¨ ˛
1 0 0
R23 pf q “ ˝0 1 0‚.
0 f 1
Alors, pour l’inverse calculé ci-haut, on a
2 10 2 10 1
I “ R12 p qR32 p´1qS2 p qR13 p´ qR23 p qR21 p´2qS1 p qA.
3 3 3 3 3
Par conséquent, puisqu’on a appliqué les mêmes opérations sur l’identité, on retrouve à la
place de l’identité la matrice
2 10 2 10 1
R12 p qR32 p´1qS2 p qR13 p´ qR23 p qR21 p´2qS1 p q “ A´1 .
3 3 3 3 3
Onservons que si on utilisait la stratégie de permuter deux lignes lorsqu’un malencontreux
zéro se présente sur la diagonale, une matrice de permutation permettrait de représenter
l’opération.
Annexe B
Solutions de quelques exercices

Exercice (2.3.6, page 64) [Équivalence de formulations] Considérez le programme li-


néaire le plus général comportant des contraintes d’égalité et d’inégalité ainsi que des va-
riables bornées et des variables libres.

min c1 x1 ` c2 x2
sujet à A11 x1 ` A12 x2 ď b1
A21 x1 ` A22 x2 “ b2
x1 ě 0,

où A est une matrice pm1 ` m2 q ˆ pn1 ` n2 q et c, x P Rn1 `n2 et b P Rm1 `m2 .


a) Ramenez ce programme sous la forme standard du simplexe (2.2).
b) Ramenez ce programme sous la forme standard utilisant uniquement des contraintes d’in-
égalité (2.5)
Solution.

a) Soient x et y deux solutions réalisables. On vérifie directement que pour α ě 0, z “


αx`p1´αqy est réalisable. Par exemple, après réarrangement des expressions, on retrouve
A11 z1 ` A12 z2 “ αpA11 x1 ` A12 x2 q ` p1 ´ αqpA11 y1 ` A12 y2 q ď αb ` p1 ´ αqb “ b, la derniere
inégalité vérifiée puisque x et y sont réalisables.
b) Ajoutons d’abord une variable d’écart s ě 0 pour transformer la contrainte d’inégalité
en égalité, A11 x1 ` A12 x2 ` s “ b1 . Ensuite, exprimons la variable libre x2 “ x` ´
2 ´ x2
` ´
où x2 ě 0 et x2 ě 0. En regroupant les termes ˆ de manière appropriée,
˙ on retrouve un
A11 A12 ´A12 I
vecteur c̄ “ pc1 , c2 , ´c2 , 0q, une matrice Ā “ , un membre de droite
A21 A22 ´A22 0

191
192 ANNEXE B. SOLUTIONS DE QUELQUES EXERCICES
ˆ ˙
b
b̄ “ 1 et un vecteur x̄ “ px1 , x` ´ t
2 , x2 , sq tels que le problème s’écrit :
b2

min c̄x̄
sujet à Āx̄ “ b̄
x̄ ě 0,

Il suffit de remplacer la contrainte¨d’égalité par ˛


deux inégalités opposées
¨ et˛en regroupant
A11 A12 b1
˚ A21 A22 ‹ ˚ b2 ‹ pour obtenir
‹ ˚ ‹
les termes dans une matrice  “ ˚ ˝´A21 ´A22 ‚ et un vecteur b̂ “ ˝´b2 ‚
´I 0 0
min cx sujet à Âx ď b̂.

Exercice (3.2.1, page 81) [Systèmes d’équations linéaires]


a) Montrez que si B est une matrice m ˆ m singulière, et si le système Bx “ b possède une
solution, alors l’ensemble des solutions constitue un ensemble affine.
b) Dans les conditions de a), montrez que le système possède une solution avec une ou des
composantes nulles.
Solution.
a) Soient deux solutions x et y, Bpαx ` p1 ´ αqyq “ αBx ` p1 ´ αqBy “ αb ` p1 ´ αqb “ b
et donc z “ pαx ` p1 ´ αqyq est solution, Bz “ b.
b) Puisque B est singulière, il existe deux solutions distinctes x et y (pourquoi ?). Supposons
que l’indice i est tel que 0 ­“ xi ­“ yi ­“ 0. Alors, pour α “ x´y i
i ´yi
, on a z “ pαx ` p1 ´
αqyq, zi “ 0.
Bibliographie

[1] S. P. Bradley, A. C. Hax, and T. L. Magnanti. Applied Mathematical Programming.


Addison-Wesley Publishing Company, Reading, MA, 1977.
[2] E. J. Candes and T. Tao. Decoding by linear programming. Information Theory, IEEE
Transactions on, 51(12) :4203–4215, Dec. 2005.
[3] G. B. Dantzig. Linear programming and extensions. Princeton university press, Prince-
ton, N.J., 1963.
[4] C. H. Papadimitriou and K. Steiglitz. Combinatorial optimization. Prentice Hall, 1982.
[5] G. J. Stigler. The cost of subsistence. Journal of Farm Economics, 27(2) :303–314, 1945.

193

Vous aimerez peut-être aussi