Université de Sherbrookedussault/OptLin.pdf · Optimisationlinéaire1 Jean-PierreDussault2...

209
1 2 3 1 2 3 Université de Sherbrooke Optimisation linéaire Jean-Pierre Dussault 27 novembre 2019

Transcript of Université de Sherbrookedussault/OptLin.pdf · Optimisationlinéaire1 Jean-PierreDussault2...

1 2 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. c©Jean-Pierre 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êmesConditions 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 51.1 Premier modèle simple détaillé. . . . . . . . . . . . . . . . . . . . . 61.2 Modèles variés de recherche opérationnelle . . . . . . . . . . . . . . . . 10

1.2.1 Diète. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.2 Modèle de production . . . . . . . . . . . . . . . . . . . . . 151.2.3 Problème de transport . . . . . . . . . . . . . . . . . . . . . 211.2.4 Problème d’entreposage . . . . . . . . . . . . . . . . . . . . . 241.2.5 Problème du barman . . . . . . . . . . . . . . . . . . . . . . 261.2.6 Situation plus complexe. . . . . . . . . . . . . . . . . . . . . 29

1.3 Modèles déguisés . . . . . . . . . . . . . . . . . . . . . . . . . . 401.3.1 Min-max . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.3.2 Normes polyédrales. . . . . . . . . . . . . . . . . . . . . . . 421.3.3 Modèles pour la compression d’images . . . . . . . . . . . . . . 44

1.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451.5 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 45

2 Introduction et intuition géométrique 472.1 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . 48

2.1.1 Intuition géométrique en 2D . . . . . . . . . . . . . . . . . . . 482.1.2 Résolution graphique d’un problème en deux dimensions . . . . . . . 522.1.3 Solutions multiples . . . . . . . . . . . . . . . . . . . . . . . 532.1.4 Domaine réalisable non borné . . . . . . . . . . . . . . . . . . 53

i

ii TABLE DES MATIÈRES

2.1.5 Domaine réalisable vide . . . . . . . . . . . . . . . . . . . . . 542.2 Résultat de la résolution d’un modèle d’optimisation linéaire . . . . . . . . 552.3 Formes standard . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

2.3.1 Forme standard avec inégalités . . . . . . . . . . . . . . . . . . 572.3.2 Forme standard du simplexe . . . . . . . . . . . . . . . . . . . 582.3.3 Passage d’une forme à l’autre . . . . . . . . . . . . . . . . . . 58

2.4 Parenthèse calculatoire : pivots . . . . . . . . . . . . . . . . . . . . 652.5 Quelques propriétés des contraintes linéaires . . . . . . . . . . . . . . . 67

2.5.1 Propriétés des solutions de base réalisables. . . . . . . . . . . . . 692.6 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722.7 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 72

3 Algorithme du simplexe 793.1 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . 803.2 Solutions de base réalisables . . . . . . . . . . . . . . . . . . . . . . 803.3 Condition d’optimalité . . . . . . . . . . . . . . . . . . . . . . . . 82

3.3.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.3.2 Équations des conditions d’optimalité . . . . . . . . . . . . . . . 84

3.4 Algorithme du simplexe. . . . . . . . . . . . . . . . . . . . . . . . 853.4.1 Organisation calculatoire : forme canonique d’un problème . . . . . . 863.4.2 Organisation calculatoire : pivots et tableaux. . . . . . . . . . . . 863.4.3 Organisation calculatoire : dictionnaires . . . . . . . . . . . . . . 91

3.5 Comment obtenir la première solution de base réalisable . . . . . . . . . . 923.5.1 Contraintes ď avec b ě 0 . . . . . . . . . . . . . . . . . . . . 923.5.2 Cas général . . . . . . . . . . . . . . . . . . . . . . . . . . 933.5.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3.6 Simplexe révisé . . . . . . . . . . . . . . . . . . . . . . . . . . . 973.6.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

3.7 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013.8 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 1013.9 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 102

4 Dualité 1054.1 Théorie de la dualité . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.1.1 Exemple du triangle . . . . . . . . . . . . . . . . . . . . . . 1084.1.2 Diverses formulations de problèmes duaux . . . . . . . . . . . . . 1094.1.3 Interprétations et conséquences du théorème de dualité . . . . . . . 1124.1.4 Écarts complémentaires . . . . . . . . . . . . . . . . . . . . . 113

TABLE DES MATIÈRES iii

4.2 Algorithme dual du simplexe . . . . . . . . . . . . . . . . . . . . . 1154.2.1 Exemple simple . . . . . . . . . . . . . . . . . . . . . . . . 1154.2.2 Notre problème (2.7) . . . . . . . . . . . . . . . . . . . . . . 1174.2.3 Un autre exemple . . . . . . . . . . . . . . . . . . . . . . . 1184.2.4 Deux phases. . . . . . . . . . . . . . . . . . . . . . . . . . 122

4.3 Un lien avec la théorie des jeux . . . . . . . . . . . . . . . . . . . . 1234.3.1 Un exemple simpliste . . . . . . . . . . . . . . . . . . . . . . 123

4.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314.5 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 133

5 Convergence de l’algorithme du simplexe 1395.1 Dégénérescence . . . . . . . . . . . . . . . . . . . . . . . . . . . 1405.2 Un exemple de cyclage dans l’algorithme du simplexe . . . . . . . . . . . 1415.3 Règles d’anti-cyclage . . . . . . . . . . . . . . . . . . . . . . . . . 1425.4 Convergence finie de l’algorithme du simplexe . . . . . . . . . . . . . . 144

5.4.1 Dualité forte . . . . . . . . . . . . . . . . . . . . . . . . . 1455.5 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1455.6 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 146

6 Analyse de sensibilité 1496.1 Un exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1506.2 Algorithme auto-dual paramétrique. . . . . . . . . . . . . . . . . . . 157

6.2.1 Idée générale . . . . . . . . . . . . . . . . . . . . . . . . . 1576.2.2 Exemple détaillé . . . . . . . . . . . . . . . . . . . . . . . . 157

6.3 Anti-cyclage probabiliste . . . . . . . . . . . . . . . . . . . . . . . 1616.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1626.5 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 1636.6 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 163

7 Quelques extensions 1697.1 Un algorithme de décomposition . . . . . . . . . . . . . . . . . . . . 1707.2 Introduction aux algorithmes de point intérieur . . . . . . . . . . . . . 1727.3 Traitement de variables entières . . . . . . . . . . . . . . . . . . . . 176

7.3.1 Séparation et évaluation progressive . . . . . . . . . . . . . . . 1777.3.2 Coupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1807.3.3 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . 182

7.4 Implantation numérique de l’algorithme du simplexe . . . . . . . . . . . 1827.4.1 Utilisation de la décomposition LU . . . . . . . . . . . . . . . . 1837.4.2 Utilisation de la décomposition QR . . . . . . . . . . . . . . . . 1847.4.3 Dégénérescence numérique. . . . . . . . . . . . . . . . . . . . 184

iv TABLE DES MATIÈRES

7.5 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1857.6 Extensions et références. . . . . . . . . . . . . . . . . . . . . . . . 1857.7 Tous les exercices du chapitres . . . . . . . . . . . . . . . . . . . . . 185

A Rappels mathématiques 187A.1 Rappels d’analyse mathématique : optimisation en une dimension . . . . . . 187A.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2 Exemple simple bi-dimensionnel . . . . . . . . . . . . . . . . . . . . . . . . . 502.3 Exemple en 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.4 Exemple en 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.5 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.6 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.7 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.8 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.9 Exemple simple bi-dimensionnel . . . . . . . . . . . . . . . . . . . . . . . . . 612.10 Ensemble convexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682.11 Illustration de tmin et tmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

7.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1767.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1777.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1787.4 Arbre des séparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

v

vi TABLE DES FIGURES

Table des algorithmes

3.1 Simplexe révisé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.1 Simplexe dual révisé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196.1 Simplexe auto-dual paramétrique. . . . . . . . . . . . . . . . . . . . . . . . . 160

vii

viii TABLE DES ALGORITHMES

Listings

1.1 Premier modèle avec AMPL ; fichier : AMPL/premiermodele.mod . . . . . . 81.2 Premier modèle avec AMPL – données ; fichier : AMPL/premiermodele.dat . 81.3 Modèle avec AMPL ; fichier : AMPL/ex1.1.mod . . . . . . . . . . . . . . . . 9Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4 Modèle de diète ; fichier : AMPL/diet.mod . . . . . . . . . . . . . . . . . . . 111.5 Données pour le modèle de diète ci-haut ; fichier : AMPL/dietH.dat . . . . . 121.6 Données pour le modèle de diète AMPL ; fichier : AMPL/diet.dat . . . . . . 131.7 Modèle de production générique ; fichier : AMPL/ex1.2b.mod . . . . . . . . . 161.8 Données du modèle de production spéfifique ; fichier : AMPL/ex1.2b.dat . . 171.9 Instructions pour résoudre le modèle ; fichier : AMPL/ex1.2.cmd . . . . . . . 181.10 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.11 Modèle de production générique — solution entière ; fichier : AMPL/ex1.2bInt.mod 191.12 Instructions pour résoudre le modèle avec solution entière ; fichier : AM-

PL/ex1.2Int.cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.13 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.14 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.15 Session Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Session Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.16 Modèle de transport générique ; fichier : AMPL/transp.mod . . . . . . . . . 221.17 Données du modèle de trsansport générique ; fichier : AMPL/transpH.dat . . 231.18 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.19 Modèle d’entreposage générique ; fichier : AMPL/ex1.4.mod . . . . . . . . . 251.20 Données du modèle d’entrepôt générique ; fichier : AMPL/ex1.4.dat . . . . . 251.21 Modèle de barman générique ; fichier : AMPL/barman1.mod . . . . . . . . . 271.22 Données de barman spécifiques ; fichier : AMPL/barman1.dat . . . . . . . . 271.23 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.24 Session AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.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’espacesont 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 del’algèbre linéaire et du calcul matriciel.

Avant d’attaquer la théorie et les algorithmes de résolution de modèles d’optimisationliné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ématiqueconcrè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 denom visant à mieux décrire la discipline et depuis 2010, c’est la “Mathematical optimizationsociety”. 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 exempledéterminer une structure de prix permettant de programmer des activités pour minimiser lescoû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 latransposition d’un vecteur par vt. Le produit scalaire entre deux vecteurs colonnes vtv.

Nous étudierons la notion de dualité et nous adopterons la convention que le vecteur decoût et les varibles duales sont des vecteurs lignes. Ces vecteurs appartiennent à l’espacedual de Rn qui est isomorphe à Rn, ce qui motive la convention de les représenter par deslignes.

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” :‚ }v} “ }v}2 “

a

řni“1 v

2i “

?vtv ;

‚ }v}1 “řni“1 |vi| ;

‚ }v}8 “ maxni“1t|vi|u.Une matricemˆ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

A “

¨

˚

˚

˚

˝

a1a2...am

˛

“`

A1 A2 . . . An˘

.

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 sujetssont présentés de manière élémentaire et ne nécessitent qu’une connaissance de l’algèbreliné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 unegrande 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 tenalgorithms 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 algorithmesen profondeur mais seulement d’en comprendre le fonctionnement sans pouvoir en étudierles fondements. En effet, ces algorithmes relèvent d’algorithmes numériques s’appuyant surl’analyse mathématique vectorielle et l’analyse numérique, sujets que nous ne supposons pasprérequis pour le présent texte.

Également en complément, nous introduirons la problématique résultant de quantités quidoivent absolument prendre des valeurs entières et deux solutions algorithmiques simplistespour les résoudre.

3

4 INTRODUCTION

Chapitre 1Modélisation

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

Sujets du chapitre

5

6 MODÉLISATION

IntroductionOn 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 solutionau problème sous-jacent à la situation informelle. Une partie de la démarche est de faireabstraction 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 lasuite du chapitre, nous aborderons des patrons fréquents de modélisation. Ce premier chapitrene présuppose pas de connaissance avancée, mais tout de même un minimum d’algèbreliné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 P1et P2. Chaque unité de P1 requiert une heure de la machine A et deux heures de la machineB. 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-ellefabriquer 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 uneinfinité de chacun des produits puisque le critère à optimiser (maximiser) est 3

2x1` x2 où x1et x2 représentent les quantités de P1 et P2 produites.

On formule trois contraintes pour représenter les restriction de disponibilité de chacunedes 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, cequi nous amène à formuler le modèle complet suivant :

maxxPR2

1.5x1 ` x2 (1.4)

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 sontnommées contraintes. Les contraintes auraient aussi pu être des égalités, comme nous leverrons plus tard.

Il faut faire attention, en anglais, le terme fonction objectif se traduit objective functionet 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’ensembleré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 . . . cnq qui regroupe tous les coûts(profits) des n produits. Similairement, leur quantité est exprimée dans un vecteur x de ncomposantes. Pour ce qui est des contraintes, nous aurons m expressions impliquant les nquantité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 dedimension m, disons b. Habituellement, les contraintes de non négativité sur les variablesx sont conservées telles quelles plutôt que d’être incorporées dans la matrice A. Le modèlegénérique s’écrit alors comme suit.

maxxPRn

cx “

nÿ

i“1cixi (1.9)

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-à-direxi ě 0, @i P t1, 2, . . . , nu. Similairement, une relation Ax ď b signifie pAxqj ď bj, @j Pt1, 2, . . . ,mu.

On peut retrouver le modèle spécifique qui a débuté cette discussion en fixant les valeurs

appropriées n “ 2, m “ 3, c “`

1, 5 1˘

, b “

¨

˝

400600300

˛

‚, A “

¨

˝

1 12 10 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 afind’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éesseulement 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 112 B 2 113 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 aussiformuler le modèle avec des identificateurs plus proches de l’application. Par exemple, lemodè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_machine_par_produit {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_machine_par_produit [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 pouridentifier la production qui maximise les profits. Même pour un modèle jouet, cela nécessiteun peu de réflexion et d’habileté calculatoire.

1 PROMPT > ampl2 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 5007 ampl: display x;8 x [*] :=9 P1 200

10 P2 20011 ;12 ampl: quit13 PROMPT >

On lit donc que la solution optimale est x1 “ x2 “ 200 et que la valeur de l’objectif est500. Rappelons qu’en anglais, on dit “objective function” alors qu’en français, l’expressioncorrecte est “fonction objectif”.

Dans la suite du chapitre, nous allons traiter plusieurs exemples de moins en moinssimplistes. 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élisationde 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 provientde la recherche opérationnelle. Selon 1, la recherche opérationnelle est cette discipline desmathé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’aboutirau 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 degrain 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 dechacun 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 hebdomadairesnutriment A 2 3 7 1250nutriment B 1 1 0 250nutriment C 5 3 0 900nutriment D 1.2 1.2 1 232.5Coû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éronsn sortes de grains, m nutriments, Une matrice A de n colonnes et m lignes décrivant l’apportde chaque grain à un nutriment donné, un vecteur b de besoins en nutriments et un vecteurc 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ôtque de maximiser et les contraintes sont de type “plus grand ou égal” plutôt que “plus petitou égal”.

On peut retrouver le modèle spécifique ci-haut en fixant les valeurs appropriées n “ 3,

m “ 4, c “`

41 35 96˘

, b “

¨

˚

˚

˝

1250250900

232.5

˛

, A “

¨

˚

˚

˝

2 3 71 1 05 3 0

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 deAMPL. En fait, le modèle est un petit peu plus général car il incorpore des bornes des deuxcô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 enré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 Infinity7 grain2 35 0 Infinity8 grain3 96 0 Infinity ;9

10 param : n_min n_max :=11 A 1250 Infinity12 B 250 Infinity13 C 900 Infinity14 D 232.5 Infinity ;15

16 param amt:17 grain1 grain2 grain3 :=18 A 2 3 719 B 1 1 020 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 > ampl15 ampl: model diet.mod;16 ampl: data dietH.dat;17 ampl: solve;18 MINOS 5.51: optimal solution found.19 4 iterations , objective 14583.3333320 ampl: display Buy;21 Buy [*] :=22 grain1 023 grain2 416.66724 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 1007 CHK 2.59 0 1008 FISH 2.29 0 1009 HAM 2.89 0 100

10 MCH 1.89 0 10011 MTL 1.99 0 10012 SPG 1.99 0 10013 TUR 2.49 0 100 ;14

15 param : n_min n_max :=16 A 700 1000017 C 700 1000018 B1 700 1000019 B2 700 10000 ;20

21 param amt (tr):22 A C B1 B2 :=23 BEEF 60 20 10 1524 CHK 8 0 20 20

14 MODÉLISATION

25 FISH 8 10 15 1026 HAM 40 40 35 1027 MCH 15 35 15 1528 MTL 70 30 15 1529 SPG 25 50 25 1530 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.227 ampl: display Buy;28 Buy [*] :=29 BEEF 030 CHK 031 FISH 032 HAM 033 MCH 46.666734 MTL 1.57618e-1535 SPG 8.42982e-1536 TUR 0

Les quantités bizarres de MTL et SPG sont dûes à des erreurs d’arrondi dans les calculsnumériques. Les ordinateurs calculent en général avec environ 16 décimales de précision etdes quantités de l’ordre de 10´15 sont en fait des 0 pollués d’erreurs d’arrondi. Donc, ladiète optimale ne comporte que des MCH (“Mac & Cheese”). Remarquons que dans lesdeux exemples, la diète optimale ne comporte qu’un seul aliment. On pourrait qualifiercette 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 annuelled’un homme de corpulence moyenne en assurant de combler ses besoins nutritionnels décritspar 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 dusimplexe, 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 minimumAliment Unité Quantité/an coût unitaire ($) Coût total ($)Farine de blé enrichie 10 lb. 29.95 0.36 10.78Foie de boeuf 1 lb. 2.58 0.268 0.69Chou 1 lb. 110.70 0.037 4.10Épinards 1 lb. 22.58 0.081 1.83Haricots blancs, séchés 1 lb. 377.81 0.059 22.29

Total : 39.69Comme 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éalisableet 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 etP3 doit être réalisée à l’aide de trois machines, M1, M2 et M3. Les disponibilités annuelles dechaque machine et les temps opératoires, en minutes, pour la réalisation de chaque produitsont résumés dans le tableau suivant.

Machine Disponibilité Temps requis(en minutes) P1 P2 P3

M1 90 000 2 4 3M2 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 lescoû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 pourla main d’oeuvre et $80 000 pour les matières premières. Pour répondre à la demande d’unclient l’entreprise doit fabriquer au moins 4 000 unités du produit P3. Les prix de vente parunité sont de $10.75 pour P1, $15.00 pour P2 et $10.00 pour P3. On demande de formuler lemodè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é. Profitonsen 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 pasmentionné 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 etmatière première) ont été pré-approuvés, il n’est pas certain que la meilleure solution utilisela totalité du budget pré-approuvé. S’il reste du budget, ce sera encore mieux. On arrivedonc à 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 quimaximise les revenus de vente desquels on déduit les dépenses sans dépasser les montantspré-approuvés.

Variables de décision Maintenant, sur quoi avons-nous le contrôle pour atteindre notreobjectif ? 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 dansnotre exemple comportant la production de trois produits. Il est à noter que ces variables dedécision ne doivent pas être négatives, impliquant une borne de non-négativité. De plus, onapprend qu’il faut produire au moins 4 000 items de P3, donc les bornes inférieures sont soitzé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’œuvre2. 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écifique2 set produit ; # 3 produits dans notre exemple spécifique3

4 set frais; # deux types de frais5

6 param prix{ produit } >0; # prix de vente des produits7 param qmin{ produit } >= 0; # quantité minimale à produire8

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 machines11 param budget {frais }; # budget pré - approuvé12

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

15 # variables de décisions , quantités produites16 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 to22 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 38 M2 3 6 09 M3 1 3 2;

10

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

15 param prix :=16 P1 10.7517 P2 15.0018 P3 10.00;19

20 param qmin :=21 P1 0.022 P2 0.023 P3 4000.0;

18 MODÉLISATION

24

25 param budget :=26 MOeuvre 1000027 Mpremiere 80000;28

29 param tdisponible :=30 M1 9000031 M2 8400032 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 .2b.mod;2 data ex1 .2b.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. cmd2 MINOS 5.51: optimal solution found.3 2 iterations , objective 3180004 qte [*] :=5 P1 280006 P2 07 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 P3n’est pas entière. Pour un tel modèle jouet, on peut imaginer “arrondir” la solution, parexemple produire 10 667 de P3. Cependant, ce n’est pas mathématiquement rigoureux. Lestechniques pour aborder cette restriction supplémentaire que la solution doit être entièreseront survolées à la section 7.3.

On peut spécifier dans le modèle AMPL que la solution doit être entière. Remarquez quel’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écifique2 set produit ; # 3 produits dans notre exemple spécifique3

4 set frais; # deux types de frais5

6 param prix{ produit } >0; # prix de vente des produits7 param qmin{ produit } >= 0; # quantité minimale à produire8

9 param temps{machine , produit }; # temps machine / produit10 param tdisponible { machine }; # disponibilité des machines11 param budget {frais }; # budget pré - approuvé12

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

15 # variables de décisions , quantités produites16 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 to22 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 .2b.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.cmd2 Gurobi 8.0.0: optimal solution ; objective 3179953 3 simplex iterations4 1 branch -and -cut nodes5 qte [*] :=6 P1 280007 P2 08 P3 10666

Listing 1.13 – Session AMPL

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

Exercice 1.2.2 [Variantes de modèle de production] Adaptez les fichiers ex1.2b.mod etex1.2b.dat pour y implémenter deux variantes de fonction objectif selon les choix évoquésau 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 contraintesbudgé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 fichiersex1.2b.mod et ex1.2b.dat.1. Produire un fichier ex1.2b.nl.1 ampl: model ex1 .2b.mod;2 ampl: data ex1 .2b.dat;3 ampl: write gex1 .2b;

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 .2b.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 çasignifie, 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.259 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 transportUne 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ôtet les demandes des clients sont spécifiés dans le tableau suivant, qui contient également lecoût de transporter une unité du produit d’un entrepôt à chaque client.

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

22 MODÉLISATION

On désire déterminer quelle quantité chaque client reçoit de chaque entrepôt pour minimiserle coût total de transport tout en satisfaisant les demandes. Remarquons que ce modèlesimpliste é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 parmisles exemples de la documentation de AMPL.

On nomme habituellement origine les points de départ du transport, les entrepôts dansnotre 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.

minxPRn1ˆn2

cx “

n1ÿ

i“1

n2ÿ

j“1ci,jxi,j (1.15)

sujet àn1ÿ

i“1xi,j “ dj, @j P t1 : n2u (1.16)

n2ÿ

j“1xi,j “ bi, @i P t1 : n1u (1.17)

x ě 0. (1.18)

AMPL

Ce modèle classique est un des exemple de AMPL.

1 set ORIG; # origins2 set DEST; # destinations3

4 param supply {ORIG} >= 0; # amounts available at origins5 param demand {DEST} >= 0; # amounts required at destinations6

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

9 param cost {ORIG ,DEST} >= 0; # shipment costs per unit10 var Trans {ORIG ,DEST} >= 0; # units to be shipped11

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èlesont nommées Trans plutôt que x, xØ Trans.

1

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

6 param : DEST: demand := # defines "DEST" and " demand "7 B1 2008 B2 4009 B3 100 ;

10

11 param cost:12 B1 B2 B3 :=13 A1 1 4 914 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 38006 ampl: display Trans;7 Trans :=8 A1 B1 2009 A1 B2 0

10 A1 B3 011 A2 B1 -2.77556e -1412 A2 B2 40013 A2 B3 100

Listing 1.18 – Session AMPL

24 MODÉLISATION

1.2.4 Problème d’entreposageOn 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 unitairede vente est égal au prix d’achat tel que spécifié dans le tableau suivant. De plus, l’entreposagecoûte 1.00$ par période et la capacité de l’entrepôt est de 60 unités. L’idée est donc d’acheteraux périodes de faible prix pour revendre à celles où les prix sont élevés.

Période (t) Prix unitaire ($)1 42 93 6

On a 30 unités au départ. On veut déterminer une stratégie d’achat/vente pour maximiserles 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, disonsn. 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 retranchela 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 aacheté a1.

Qu’est-ce que ces quantités changent à notre profit ? À la période i, on vend vi avec profitci mais on achète ai au coût ci, pour un bénéfice net cipvi ´ aiq. Également, on doit payerei 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” nefont pas partie du modèle car nous n’avons aucune décision à prendre à leur sujet.

maxa,v,ePRn

cpv ´ aq ´ fe “

nÿ

i“1pcipvi ´ aiq ´ fieiq (1.19)

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 toujoursutilisé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 etautrement, d’un achat. Donc, dans les faits, ti “ vi ´ ai et on peut reformuler notre modèlecomme suit, la variable t est libre, c’est-à-dire d’est pas contrainte à être positive.

maxt,ePRn

ct´ fe “

nÿ

i“1pciti ´ fieiq (1.23)

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 46 2 97 3 6;

26 MODÉLISATION

8

9 param f := 1 110 2 111 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 pourla faculté. En plus des boissons santé et du choix habituel de bières artisanales, un desorganisateurs voudrait offrir des cocktails. Comme il est hors de question de les préparer surplace selon la demande, il voudrait préparer à l’avance une certaine quantité de mélangespour 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. Pourcette 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 lesalcools dans les ingrédients, mais d’autres ingrédients secrets entrent dans le mélange maiscoûtent presque rien.

Mélange ingrédients prixWhiskey sour 30 ml whisky 7$Manhattan 30 ml whisky 10$

15 ml vermouthMartini 30 ml gin 10$

15 ml vermouthSpé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 à notredisposition un certain nombre d’alcools et un certain nombre de recettes. On considère qu’unerecette vaut une unité, donc le profit total sera le prix d’une recette multiplié par le nombrede recettes vendues. Puisqu’on suppose que toutes les recettes préparées à l’avance serontvendues, 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. Lasomme des quantités d’un alcool donné utilisé pour toutes les recettes ne doit pas dépassernotre 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 pournotre modèle.

Donc, notre modèle générique est le suivant.

1 set alcool ; # Nos choix d’alcools2 set recette ; # Nos recettes à produire3

4 param qdisponible { alcool } >0 ;# Notre réserve d’alcools5 param prix{ recette } >0; # prix de vente des produits6

7 param ingredient {recette , alcool } ;8

9 # variables de décisions , quantités produites10 var qte{j in recette } ;11

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

15 subject to16 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 peutconsidérer un seul alcool de type whisky W dont on a deux litres, un litre de Ve et deux litresde 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 06 Man 30 15 0

28 MODÉLISATION

7 Mar 0 15 308 Sp 30 0 30 ;9

10 param prix :=11 WS 712 Man 1013 Mar 1014 Sp 14;15

16 param qdisponible :=17 W 200018 Ve 100019 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.3333333 qte [*] :=4 Man 33.33335 Mar 33.33336 Sp 33.33337 WS 0

Listing 1.23 – Session AMPL

Tiens, il faudrait bien spécifier que les quantités doivent être des entiers, on ne pourra pasvendre une fraction de mix. Avant, voyons voir ce que Gurobi nous trouve

1 Gurobi 8.0.0: optimal solution ; objective 1133.3333332 qte [*] :=3 Man 04 Mar 66.66675 Sp 06 WS 66.6667

Listing 1.24 – Session AMPL

Ah, une autre solution, toujours fractionnaire, mais avec le même profit total. De plus, onobserve dans les deux solutions que au moins une recette n’est pas du tout produite. Ça n’apas 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 chacunedes 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 etbarman1.dat pour incorporer les changements de spécifier des solutions entières avec aumoins qmin de chacune des recettes

1 Gurobi 8.0.0: optimal solution ; objective 11222 qte [*] :=3 Man 104 Mar 565 Sp 106 WS 46

Listing 1.25 – Session AMPL

1.2.6 Situation plus complexeUne 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 000homme–heures pendant l’été. Les homme–heures de travail non utilisées seront vendus auxdiffé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, alorsque chaque vache demande 1 investissement de $700 et chaque poule de $8. On estime quechaque vache requiert 1.5 acre de terrain, et 100 homme–heures de travail pendant l’hiveret 50 homme–heures durant l’été et rapporte un revenu net de $800, alors que chaque poulerequiert 5 homme–heures durant l’hiver, 2 homme–heures durant l’été et rapporte un revenunet de 5$. Le poulailler possède une capacité de 3 000 poules, et la taille de l’étable limite lenombre de vaches à 32. On a aussi estimé la main d’oeuvre et le revenu par acre de culturecomme suit :

avoine maïs fève-soyahomme–heures hiver 10 35 15homme–heures été 40 75 55revenu annuel net ($) 250 550 375

On veut déterminer la surface de terre consacrée à chaque type de culture, la taille dubé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 lemodè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) deuxsortes de café : la 1ère sorte est un mélange à parties égales de café africain et brésilien etse vend 16$ le kg. La 2e sorte est un mélange de trois parties de café brésilien pour unepartie de café colombien et se vend 19$ le kg.Quelle quantité de chaque sorte de café la compagnie devrait-elle ensacher pour maximiserson profit ?

Exercice 1.2.6 [Fabrication et transport] Une entreprise a deux usines U1 et U2 et troisentrepôts E1, E2 et E3. La demande des entrepôts E1 et E2 est de 25 et 30 unités. E3 exigeau 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.

Usine Coût unitaire CapacitéU1 17$ 42 unitésU2 15$ 37 unités

coût unitaire detransport E1 E2 E3U1 1 1 2U2 1 2 4

On veut déterminer un programme de production et de transport des usines aux entrepôtsqui 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 surmarché 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’acajou15% de noisettes15% 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 noisettes35% 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 arriventrespectivement à 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 de35 $ et 40 $ le m3 respectivement. Leurs disponibilités respectives sont de 4 500 m3 et6 000 m3.Le contrat stipule que le constructeur doit livrer au plus tard à la mi-février 250 voituresdu 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 policiersrequis par tranches de 4 heures dans une journée :

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

Période Nombre de policiers0h — 4h 244h — 8h 568h — 12h 9012h — 16h 11616h — 20h 4020h — 24h 60

Un policier prend son service une fois par jour, et travaille 8 heures d’affilée. Les heuresde 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 à tempset demie. Formulez cette variante avec objectif de minimiser les salaires versés par lamunicipalité.

c) Supposons maintenant que nous traitons la situation extrêmement simplifiée suivantede planification pour une semaine : chaque policier prend son service 7 jours sur 7 à lamême heure, mais une contrainte oblige un policier à faire du temps supplémentaire unjour sur trois au maximum. Formulez cette variante, toujours en minimisant les salairesversés. On suppose que les besoins par tranche d’heure sont les mêmes à chaque jour dela semaine.

Exercice 1.2.10 [Excédent de production] Une entreprise a un excédent de capacité deproduction qu’elle veut utiliser pour fabriquer trois types de produits que l’on appelleraP1, 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 troisproduits est donné dans le tableau suivants :

Type de machine Temps disponible Temps requis(en minutes) P1 P2 P3

M1 200 8 2 3M2 100 4 3 1M3 50 2 1 1

D’après le gérant des ventes, le potentiel des ventes pour les produits P1 et P2 excède laproduction 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. Quelniveau de production maximiserait le profit ?

Exercice 1.2.11 [Production encore] Une entreprise fabrique trois produits : P1, P2 etP3. Pour fabriquer chacun de ces produits, elle doit utiliser deux centres de fabrication ; lamain d’oeuvre requise, en heures par unité, est la suivante :

Centre I Centre IIP1 3 2P2 4 3P3 2 5

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

Quantité en unitésP1 8P2 10P3 12

Les matières premières coûtent $2 l’unité ; la main d’oeuvre est rémunérée au taux de $4l’heure. De plus, chaque produit doit assumer une partie des frais d’administration ; chaqueunité (d’un produit) exige un nombre fixe d’heures d’administration égales à la somme dunombre d’heures exigées par la main–d’oeuvre pour la fabriquer. Les coûts d’administrationsont é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’oeuvresont de 2 500 heures pour le Centre I et de 3 000 heures pour le Centre II. De plus, laquantité 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 programmede 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 actuellementen 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 PairesMl : randonnée–plaisir 6 000M2 : randonnée–compétition 2 500M3 : alpin–plaisir 4 500M4 : 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, parpaire, pour ces différentes phases :

Modèles Menuiserie Peinture AttelageM1 70 20 30M2 85 25 45M3 75 20 40M4 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 posede 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 dela peinture sont rémunérés au taux horaire de 5,40$ et ceux utilisés à la pose de l’attelagesont " rémunérés au taux horaire de 4,20$. Les autres coûts sont :

Modèles Attelage/paire BoisM1 15 $ 5 $M2 23 $ 9 $M3 35 $ 7 $M4 48 $ 10 $

Les prix de vente, par paire sont : 60 $ pourM1, 75 $ pourM2, 285 $ pourM3 et 100 $ pourM4. L’entreprise désire connaître les quantités de chaque modèle qu’elle doit fabriquer defaç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 voiede développement. Le besoin le plus urgent de ces deux pays étant l’accroissement de leurproduction 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 0de nouvelles techniques sont mises en pratique. Cependant, le nombre de tels projets estdéterminé par les disponibilités de trois ressources : l’équipement, les experts, l’enveloppebudgétaire. La question qui se pose est la suivante : Combien de projets peut-on réaliserdans 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 laproduction pour nourrir 2 000 personnes additionnelles. De même un projet réalisé dansle pays 2 permettra de nourrir 3 000 personnes additionnelles. Seulement, les ressourcesnécessaires pour chaque projet différent d’un pays à l’autre. Les données pour chaque payssont résumées dans le tableau suivant :

quantité nécessaire par projetRessources pays 1 pays 2 disponibilité totaleÉquipement 0 5 20Experts 1 2 10Budget $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 maximiserl’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 etchats. La demande hebdomadaire est d’au moins 600 livres pour les chiens et 250 livres pourles chats. La nourriture produite pour chaque type d’animal doit contenir un pourcentageminimal de quatre éléments nutritionnels A, B, C et D, comme l’indique le tableau ci-dessous.

% minimal d’élément nutritionnelA B C D

nourriture pour chiens 10 5 8 8nourriture pour chats 8 16 5 12

La société dispose de six sortes de viande qu’elle peut combiner pour produire les deux typesde 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 82 300 29 8 20 6 103 500 30 15 14 8 104 400 28 6 12 10 155 illimitée 37 0 18 13 206 200 23 12 10 4 6

La société désire connaitre la quantité de chaque sorte de viande qui compose chaque typede 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 économiqueet de donner la signification de chaque contrainte).

Exercice 1.2.15 [Excédent de production] Une firme a trois filiales ayant chacune unexcé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 faiten 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 pourproduire respectivement 500, 600 et 300 unités par jour de ce produit sans égard au formatou à la combinaison de formats impliqués. Cependant l’espace d’entreposage dis- ponibleimpose également une certaine limite sur le taux de production ; les filiales 1, 2 et 3 ayant 9000, 8 000 et 3 500 pieds carrés d’espace d’entreposage disponible pour ce produit. Chaqueunité du grand format, du moyen format et du petit format, produite par jour, nécessite20, 15 et 12 pieds carrés respectivement. La prévision des ventes indique que 600, 800 et500 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 à chaquefiliale 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 parchaque 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 formationdes hôtesses de l’air de la compagnie aérienne Air Voyage. La compagnie estime queses besoins en heures de vol d’hôtesses de l’air pour les a cinq prochains mois sont lessuivants : 8 000 heures en décembre, 9 000 en janvier, 8 000 en février, 10 050 en mars et9 000 en avril. Au début du mois de décembre, soixante hôtesses de l’air sont employéespar Air Voyage. Chaque hôtesse de l’air peut travailler jusqu’à 150 heures par mois. Siles besoins pendant un mois donné sont inférieurs au nombre maximum d’heures de voldisponibles, chaque employée travaille moins d’heures pendant le mois et personne n’estmis à pieds. L’expérience de la compagnie montre qu’en général a la fin du mois 10% deshôtesses quittent Air Voyage. La compagnie peut engager du personnel, mais une nouvelleemployé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 moispendant 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 gestionde 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 à fairela 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 parsemaine. 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 formationde nouveaux sumuméraires. Après une semaine de formation chaque stagiaire devient soittravailleur à 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 salairehebdomadaire d’un travailleur, en production ou comme entraîneur, est 200$. Le salairehebdomadaire 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èmepeut se présenter dans d’autres secteurs de façon plus compliquée : par exemple le coupagedes 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 à obtenirtrois différentes sortes de rouleau : 30 rouleaux de 186 cm de long, 60 rouleaux de 165 cmde 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échetde 72 cm).

b) Formuler le problème de façon à minimiser les pertes si on considère que les rouleaux de186 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 surplusne 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 concentrationde phénol et d’azote dans l’eau de la rivière devront désormais être limités à P et N Kgpar ML (millions de litres) par jour. La rivière a un débit deM ML par jour. La compagniedé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 concentrationde polluant dans la rivière, dont une partie de l’eau est usée par l’industrie et une partiemaintenue 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 tableausuivant.

(Kg de polluant)/ML après traitementTraitement 1 2 3 4Phénol P1 P2 P3 P4Azote N1 N2 N3 N4Coû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 attentionparticulière aux unités des différents éléments du modèle, eti) 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 gouvernementalesconcernent 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ésVoyons 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’enexaminer plusieurs exemples.

1.3.1 Min-maxUn cas typique de minimiser une fonction qui n’est pas linéaire est de minimiser le

maximum de deux fonctions affines. Par exemple, fpxq “ maxp1 ´ 2x, x ` 1q. Il n’est pasdifficile de se convaincre que le minimum de fpxq est atteint en x “ 0 et la valeur fp0q “ 1.Or, 1´2x et x`1 sont des fonctions affines, c’est-à-dire des fonctions linéaires plus un termeconstant. On peut transformer le problème min fpxq 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 plusgrande ou égale aux deux fonctions affines et ensuite de minimiser u. On se retrouve doncavec le problème d’optimisation linéaire suivant qui comporte deux variables.

minu,x

u (1.29)

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

On ne semble pas avoir gagné grand chose puisque le “max” est encore là. Maintenant, unecontrainte 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.

minx

maxp1´ 2x, x` 1q ðñ minu,x

u

#

sujet à u ě 1´ 2xu ě 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 ď minpa1, a2q ðñ

#

u ď a1

u ď a2.

+

(1.31)

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ésen contraintes linéaires, mais pas un plus petit ou égal au max de quantités ni plus grandou é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 “ maxpa1pxq, a2pxqq et f2 “ maxpb1pxq, b2pxqq sont des fonctions “max” defonctions affines a1, a2, b1, b2, le problème min f1pxq ` f2pxq peut se ramener à un modèled’optimisation linéaire.

min pmaxpa1pxq, a2pxqq `maxpb1pxq, b2pxqqq ðñ

$

&

%

minu,x

u1 ` u2

sujet à u1 ě a1pxq

u1 ě a2pxq

u2 ě b1pxq

u2 ě b2pxq

,

/

/

/

/

/

/

.

/

/

/

/

/

/

-

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, niun 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édralesUne 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 normed’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 oubien distance, généralisée dans un espace Euclidien de dimension arbitraire : }v}2 “

a

řni“1 v

2i

représente la longueur du vecteur v. La distance entre deux points x et y est donnée par}y ´ x}2 “

a

řni“1pyi ´ xiq

2.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 ditespolyédrales qui permettront d’utiliser les outils de l’optimisation linéaire grâce à une astucede 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,...,np|xi| ` |yi|q ď }~x}8 ` }~y}8.Nous avons déjà vu comment exprimer |x| “ maxpx,´xq de sorte que }x}8 “ maxi maxpxi,´xiq.Nous savons déjà comment convertir un problème du type min }x}8 par l’astuce d’ajouterune 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| ďř

ip|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 transformationpeut 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èmed’ajustement de fonction. Les valeurs suivantes de x et y sont données :

x 0 1 2 3y 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 ` a3x

3.a) Une manière de choisir a0 et a3 consiste à minimiser la somme des erreurs du modèle

φpxiq comparativement aux vraies valeurs yi, ce qui donne un problème de minimisation :

mina0,a3

4ÿ

i“1|yi ´ φpxiq| “ min

a0,a3

4ÿ

i“1|yi ´ pa0 ` a3x

3i q|.

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 φpxiq comparativement aux vraies valeurs yi, ce qui donne un problème deminimisation :

mina0,a3

4maxi“1

|yi ´ φpxiq| “ mina0,a3

4maxi“1

|yi ´ pa0 ` a3x3i q|.

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 fpvq “ maxp|v|, 3p|v| ´ 1qq.ii) Ramenez le problème mina0,a3

ř4i“1 fpyi ´ φpxiqq sous forme d’optimisation lineaire.

Exercice 1.3.2 [Statistiques d’efficacité d’un algorithme] Un problème courant estd’ajuster une formule à des observations. Par exemple, on a observé que l’algorithme dusimplexe nécessite environ 1

2pm` nq itérations en moyenne. On se propose d’effectuer uneexpérience pour valider cette affirmation. On résout donc un grand nombre de problèmespour 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 nombred’itérations ; on s’attend à ce que α et β valent environ -1 et 1. Pour rendre cette relationlinéaire, prenons-en le logarithme : logpT q “ α logp2q ` β logpm ` nq. Soit Ni le nombred’itération requis pour le ième problème, ni et mi ses dimensions. Alors, le modèle préditlogpTiq “ α logp2q`β logpmi`niq ; généralement, cependant, logpTiq (prédiction du modèle)

44 MODÉLISATION

est différent de logpNiq (réalité, logarithme du véritable nombre d’itérations pour le iièmeproblème). Nous voulons maintenant trouver des valeurs de α et β qui minimisent, dansun certain sens, les erreurs de prédiction du modèle. On peut formuler cette minimisationde plusieurs manières ; voici deux suggestions :‚ minimiser la somme des valeurs absolues des différences entre les logpNiq et les logpTiq ;c’est minimiser la somme des erreurs de la prédiction ;

minα,β

nÿ

i“1| logpNiq ´ pα logp2q ` β logpmi ` niqq|;

‚ minimiser le maximum sur les valeurs absolues des différences entre les logpNiq et leslogpTiq ; c’est minimiser la pire des erreurs de la prédiction ;

minα,β

´

max1ďiďn

t| logpNiq ´ pα logp2q ` β logpmi ` niqq|u¯

.

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

1.3.3 Modèles pour la compression d’imagesL’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 à examinerle 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 estde retrouver une donnée (codage d’une image selon une certaine base) x à partir de mesuresy (image) sachant que les mesures et l’image originale obéissent à l’équation y “ Ax ` eoù A décrit l’encodage de l’image. Nous avons discuté de situations similaires à la sectionpré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

minx}Ax´ y}1 (1.32)

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-lesous 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ˆmdont les lignes forment une base du noyau à gauche de A défini comme kerg A def

“ tz : zA “ 0u,donc ZA “ 0. Par conséquent, y “ Zy “ ZpAx ` eq “ Ze. Après analyse, on en arrive à laformulation suivante, connue en anglais sous le nom basis pursuit.

mine}e}1

sujet à Ze “ y(1.33)

Exercice 1.3.4 [PL équivalent] Considérez le problème minZe“y }e}1. Reformulez-le sousla 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’unesolution. Nous avons examiné plusieurs exemples de situations et leur modélisation

1.5 Extensions et référencesLes 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èlesprésentés proviennent des notes de cours de Abdelhamid Benchakroun.

46 MODÉLISATION

Chapitre 2Introduction et intuition géométrique

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

Sujets du chapitre

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 de1947. L’algorithme du simplexe, que nous présentons dans ce chapitre, est considéré commeun des dix algorithmes les plus importants du vingtième siècle. C’est la première fois qu’unproblè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 lesvariables de décision.

Rappelons que nous adoptons la convention que les variables de décision sont des vecteurs

colonne x “

¨

˚

˚

˚

˝

x1x2...xn

˛

alors que les coefficients des fonctions linéaires (de l’objectif ou d’une

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 lagé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 formea1x1 ` a2x2 “ b. C’est l’équation d’une droite dans le plan. Le vecteur normal à la droite

est le vecteur a “ pa1 a2q ; la droite passe par les pointsˆ

ba10

˙

etˆ

0ba2

˙

. La présence d’une

contrainte d’égalité réduit donc l’espace des solutions réalisables à une droite, de dimensionun. Si la droite passait par l’origine, il s’agirait d’un sous-espace linéaire de dimension 1. Latranslation de la droite se nomme variété affine ou encore variété linéaire affine ou égalementsous-espace affine.

2.1. FORMULATION DU PROBLÈME 49

-2-2 -1.5-1.5 -1-1 -0.5-0.5 0.50.5 11 1.51.5 22 2.52.5 33 3.53.5 44 4.54.5 55 5.55.5

-1-1

-0.5-0.5

0.50.5

11

1.51.5

22

2.52.5

33

3.53.5

44

4.54.5

00

AA

BB

DD

EE

FF

CC

HH

II

2 4 6 8 10

Le vecteur ÝÝÑAB “ p3, 2q

définit des droites per-pendiculaires d’équation3x ` 2y “ constante. Onvoit les droites de constantes2, 4, 6, 8, 10.Si le vecteur définit unefonction objectif, celle-cipeut augmenter à l’infinidans la direction du vecteuret diminuer à moins l’infinidans la direction opposée.

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 casde la fonction triviale. Similairement, si toutes les contraintes sont des égalités, la fonctionobjectif ne sera pas bornée à moins d’être constante sur le domaine réalisable qui est alors unsous-espace affine. Donc, pour qu’un modèle d’optimisation linéaire soit intéressant, il fautqu’il comporte des contraintes d’inégalité.

Un contrainte d’inégalité qui s’écrit a1x1`a2x2 ď b décrit un demi-plan, plus généralementun demi-espace. La frontière du demi-espace est la droite d’équation a1x1 ` a2x2 “ b. Dansce 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éfinitune contrainte ě, on voit que la région sera un demi-plan qui s’éloigne dans la directiondu vecteur alors qu’une contrainte ď définit un demi-plan qui s’éloigne dans la directionopposé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 ď 4002x1 ` x2 ď 600

x2 ď 300x1, 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 droitesen noir associées aux troiscontraintes ainsi que le poly-gone (pentagone) définissantle domaine réalisable.

Figure 2.2 – Exemple simple bi-dimensionnel

Plongeons-nous maintenant en trois dimensions pour ajouter la valeur de la fonctionobjectif 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 lesdroites en noir associées auxtrois contraintes ainsi que lepolygone (pentagone) défi-nissant le domaine réalisablesur le plan x1 x2. De plus, onpeut 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 sembleclair que la solution, le pointle plus élevé sur le plan,est le point étiqueté “k”, lepoint 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 plandé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 cecas, 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 ` x2 ď 42x1 ` x2 ď 6

x2 ď 3x1, x2 ě 0

qui n’est qu’une mise à l’échelle du problème de la section 1.1. On superpose les contraintesaux droites de la figure 2.1. Ces droites sont les lignes de niveau constant de la fonctionobjectif, qui était illustrée par un plan sur la figure 2.3. On voit également que si l’objectifavait é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-mise 3x1 ` 2x2 au pointp2, 2qt. Dans notre mise àl’échelle (diviser par 100) dupentagone de l’exemple dela section 1.1, on retrouvebel et bien le même sommet,le point qui correspondait àp200, 200qtq tel que calculéen utilisant Ampl.

-3-3 -2.5-2.5 -2-2 -1.5-1.5 -1-1 -0.5-0.5 0.50.5 11 1.51.5 22 2.52.5 33 3.53.5 44 4.54.5 55 5.55.5

-1-1

-0.5-0.5

0.50.5

11

1.51.5

22

2.52.5

33

3.53.5

44

4.54.5

55

00

AA

BB

DD

EE

FF

CC

GG

HH

II

JJ

2 4 6 8 10

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.

-4-4 -3-3 -2-2 -1-1 11 22 33 44 55 66

11

22

33

44

55

66

00

ff gg hhii

aa

ff11

gg11

hh11

ii11

uu

AA

BBCC

DD

EE

FF

GGHH

II

0 4 8 12

On voit l’ensemble des solu-tions qui maximise 4x1`2x2est composée de tout le seg-ment rp2, 2qt, p3, 0qts.

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, lesmodèles de diète comportent un domaine réalisable qui n’est pas borné : en effet, si on inclusune quantité arbitrairement grande de tous les aliments dans une diète, les besoins serontcertainement satisfaits. La fonction objectif sera également arbitrairement grande, ce quifait que le modèle est bien défini puisqu’on minimise l’objectif, qui évitera donc les solutionsarbitrairement 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 tellesituation découlerait d’une erreur de modélisation.

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

On a retiré les contraintesx1 ě 0 et x2 ě 0, ce qui faitque la solution du problèmede maximisation ne changepas du tout, mais si on mini-misait l’objectif, la solutionserait non bornée inférieure-ment, ´8.

-4.5-4.5 -4-4 -3.5-3.5 -3-3 -2.5-2.5 -2-2 -1.5-1.5 -1-1 -0.5-0.5 0.50.5 11 1.51.5 22 2.52.5 33 3.53.5 44 4.54.5 55

-1-1

-0.5-0.5

0.50.5

11

1.51.5

22

2.52.5

33

3.53.5

44

4.54.5

55

5.55.5

00

gg hh ii

jj

aa

bb

cc

dd

uu

BB

CC

DDGG

HH

II

JJ

KK

-4 0 8 10

Figure 2.7 – Résolution graphique

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 budgetconduisait au diagnostic que le problème est irréalisable. C’est que les contraintes ainsimodifiées ne sont pas compatibles, il n’existe aucun point satisfaisant à toutes les contraintes.

2.2. RÉSULTATDE LA RÉSOLUTION D’UNMODÈLE D’OPTIMISATION LINÉAIRE55

-3-3 -2.5-2.5 -2-2 -1.5-1.5 -1-1 -0.5-0.5 0.50.5 11 1.51.5 22 2.52.5 33 3.53.5 44 4.54.5 55 5.55.5

-1-1

-0.5-0.5

0.50.5

11

1.51.5

22

2.52.5

33

3.53.5

44

4.54.5

55

00

AA

BB

DD

EE

FF

CC

GG

HH

II

JJ

KK

LL MM

2 4 6 8 10

Ajoutons à notre exempletrois contraintes, ´2x1 ´

2x2 ď ´11, 2x1 ď 7 et x2 ď

3. On voit qu’aucun pointn’appartient aux contraintesformés de l’intersection dupentagone et du triangle. Ondit alors que le problèmen’est pas réalisable. Dans cecas, par convention, on diraque la valeur optimale est´8 pour un problème demaximisation et `8 dans lecas 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 quel’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 ď 2x1 ` 3x2 ď 3x1, x2 ě 0

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

b)

max 45x1 ` 3x2

sujet à 5x1 ` 10x2 ě 253x1 ` 4x2 ě 13x1, x2 ě 0

c)

min ´2x1 ´ x2

sujet à x1 `38x2 ď 4

x1 ` x2 ď 22x1 ď 3x1, x2 ě 0

d)

max 3x1 ´ 2x2

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

Exercice 2.2.2 [Graphique avec paramètre]a) Résoudre graphiquement le problème

min ´x1

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

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

2.3. FORMES STANDARD 57

Exercice 2.2.3 [Diète et réduction] On désire déterminer la composition à coût minimald’un aliment pour bétail qui est obtenu en mélangeant au plus trois produits bruts, del’orge, des arachides et du sésame. L’aliment ainsi conditionné devra comporter au moins22% 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 quele 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 10Coû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’exprimerune des variables en fonction des deux autres. Résolvez le alors graphiquement.

2.3 Formes standardJusqu’à 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 detype plus petit ou égal, plus grand ou égal ou encore des égalités. L’optimisation linéairepeut maximiser ou bien minimiser la fonction objectif sous les contraintes.

Il est maintenant commode de s’entendre sur une ou deux formes particulières. Nousallons é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

minxPRn

cx

sujet à Ax ď b P Rm, (2.1)

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 convertieen inégalité “plus petit ou égal” ´ax ď ´b.

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

2.3.2 Forme standard du simplexela forme dite standard du simplexe est la suivante.

minxPRn

cx

sujet à Ax “ b P Rm

x ě 0, (2.2)

où c et x sont des vecteurs de Rn, b un vecteur de Rm et A une matrice mˆn. Les lignes de lamatrice 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 lignessont 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 legradient de la fonction linéaire cx, et donc est un vecteur-ligne. Dans cette forme standarddu 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 fpxq “ ´min´fpxq et donc toute notre étudedes 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 variabledite variable d’écart et représente la contrainte par la paire de relations

Ds :#

ax` s “ b

s ě 0

+

ðñ ax ď b (2.3)

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édoubleren une paire d’inégalités de sens opposées :

#

x :#

ax ď b

´ax ď ´b.

++

“ tx : ax “ bu (2.4)

Transformer une variable libre en variable bornée

Une observation permet d’exprimer toute quantité (positive, nulle ou négative) commela 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’onveuille que notre modèle ne comporte que des variables non négatives, il suffit d’exprimerx “ 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 descontrainte Ax “ b. Choisissons une des contraintes j telle que Aji ­“ 0. pAxqj “

ř

kăiAjkxk`Ajixi`

ř

kąiAjkxk “ bj permet d’isoler xi “ 1Ajipbj´

ř

kăiAjkxkAjixi`ř

kąiAjkxkq et ainsiréduire le modèle d’une variable et d’une contrainte.

Exemple Supposonsl que l’on ait les conraintes

3x1 ` x2 ´ 2x3 ` x4 “ 2x1 ` 3x2 ` x3 ´ x4 “ 4x1 x2 , x4 ě 0

x3 libre.

On peut utiliser la première contrainte d’égalité pour écrire

2x3 “ 3x1 ` x2 ` x4 ´ 2

et donc substituerx3 “

32x1 `

12x2 `

12x4 ´ 1

dans la seconde contrainte d’égalité pour obtenir52x1 ` 7

2x2 ´ 12x4 “ 5

x1 , x2 , x4 ě 0.

Exercice 2.3.2 [Variable libre] Utilisez la seconde équation pour exprimer x3 et substituezle 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 à cetteforme. Par exemple, supposons que l’ensemble des contraintes soit E “ tx P Rn : Ax ď bu ;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 cxsujet à Ax ď b

(2.5)

peut se récrire

min cx` ´ cx´

sujet à`

A ´A I˘

¨

˝

x`

s

˛

‚“ b

x`, x´, s ě 0

qui est exactement de la forme (2.2) avec c “ pc ´ c 0q, A “`

A ´A I˘

, b “ b etx “

`

x` x´ s˘t.

Exemple

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

min z “ x1 ´ x2sujet à 2x1 ` x2 ě 2

x1 ` 3x2 ď 3x1 , x2 ě 0

(2.6)

que l’on transforme sous la forme standard en

min z “ x1 ´ x2sujet à 2x1 ` x2 ´ x3 “ 2

x1 ` 3x2 ` x4 “ 3x1 , x2 , x3 , x4 ě 0

(2.7)

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 sommetsdu triangle. Un sommet du triangle en est un point extrême.

2.3. FORMES STANDARD 61

1 2 3

1

2

3Les intersections des droitesencerclées en gras sont lespoints extrêmes réalisablescorrespondant aux solutionsde base réalisables de (2.7).Les intersections encercléesen mince ne sont pas réa-lisables, mais sont tout demême des solutions de basede (2.7).

Figure 2.9 – Exemple simple bi-dimensionnel

En considérant la formulation de dimension quatre (2.7), on voit que chaque sommetdu triangle correspond à fixer à zéro deux des quatres variables. Maintenant, il est facile

sommet variables nulles variables non nullesp1 0qt x2 “ x3 “ 0 x1 “ 1, x4 “ 2p3 0qt x2 “ x4 “ 0 x1 “ 3, x3 “ 4p3

545qt 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 quisont potentiellement non-nulles. Il suffit d’extraire la sous-matrice (carrée) correspondantaux variables non nulles et de résoudre le système d’équations correspondant. Dans notreexemple, les trois systèmes d’équations de chacun des trois sommets sont

ˆ

2 01 1

˙ˆ

x1

x4

˙

ˆ

2 ´11 0

˙ˆ

x1

x3

˙

ˆ

2 11 3

˙ˆ

x1

x2

˙

ˆ

23

˙

. (2.8)

Les matrice carrées correspondent aux colonnes appropriées de la matrice complète descontraintes

ˆ

2 1 ´1 01 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 troissommets du triangle sont les solutions de base réalisables. Il y a trois autres sous-matricescarrées (2ˆ 2) dans notre exemple, correspondant à trois autres solutions de base, mais nonréalisables.

On dénote par B l’ensemble des indices correspondant aux composantes non nulles d’unesolution 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éepar 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, pourune solution de base x, xN sont les composantes nulles et xB “ B´1b ě 0 les composantespositives. 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 ladéfinition suivante.

Définition 2.3.1 Soit un ensemble décrit par des contraintes Ax “ b, x ě 0. Une solutionde 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´1b et xN “ 0. Si de plus, xB ě 0, la solution debase est dite réalisable. Si de plus xB ą 0, la solution réalisable est dite non dégénérée, end’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 oux4 “ 0. Le point d’intersection des deux droites possède donc deux composantes nulles, lescomposantes de N . L’intersection d’une des deux droites avec un axe canonique possèdeaussi deux composantes nulles, celle de l’autre axe (l’intersection avec l’axe x1 est telle quex2 “ 0) et sa propre variable d’écart nulle. Finalement, l’origine est telle que x1 “ x2 “ 0 etles variables d’écart des deux droites sont non nulles puisque l’origine n’appartient pas auxdroites en question.

Exercice 2.3.3 [Forme standard du simplexe] Écrire les problèmes suivants sous formestandard.a)

min z “ 18x1 ` 12x2 ` 2x3 ` 6x4sujet à 3x1 ` x2 ´ 2x3 ` x4 “ 2

x1 ` 3x2 ´ x4 ď 2x1 ě 0

x2 , x4 ď 0x3 libre.

2.3. FORMES STANDARD 63

b)min z “ ´x1 ´ 4x2 ´ 3x3sujet à 2x1 ` 2x2 ` x3 ď 4

x1 ` 2x2 ´ 2x3 ě 6x1 , x2 ě 0

x3 libre.

c)min z “ x1 ` 3x2 ` 4x3sujet à x1 ` 2x2 ` x3 “ 5

2x1 ` 3x2 ` x3 “ 6x2 , x3 ě 0

x1 libre.

d)min z “ |x1| ` |x2| ` |x3|

sujet à x1 ` 2x2 ď 12x1 ` x3 “ 3x1 x2 x3 libres.

e)max min t5x1 , 2x2u

sujet à 2x1 ` x2 ` 3x3 ď 4x2 ` 5x3 ď 6

x1 , x2 ě 0x3 libre.

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

x1 ` 2x2 ` x3 “ 52x1 ` ax2 ` 3x3 “ 6x1 , x2 , x3 ě 0.

(2.9)

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 nondé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 seramène sous la forme standard du simplexe comme

¨

˝

1 1 1 0 02 1 0 1 00 1 0 0 1

˛

‚x “

¨

˝

400600300

˛

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 plusgénéral comportant des contraintes d’égalité et d’inégalité ainsi que des variables bornéeset des variables libres.

min c1x1 ` c2x2

sujet à A11x1 ` A12x2 ď b1

A21x1 ` A22x2 “ b2

x1 ě 0,

où A est une matrice pm1 `m2q ˆ pn1 ` n2q 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ésenteavec 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 “ 80 ď 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 : pivotsReprenons 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 matriceB´1A “ rB´1B B´1N s “ rI B´1N s avec une colonne additionnelle pour le membre de

droite, B´1b. Comme la matrice A “ˆ

2 1 ´1 01 3 0 1

˙

, choisissons B “ t3, 4u comme indices

de base, la matrice B “

ˆ

´1 00 1

˙

est trivialement inversée et nous obtenons le tableausuivant où l’identité se retrouve sous les colonnes des variables de B, les variables x3 et x4.

x1 x2 x3 x4 B´1b´2 ´1 1 0 ´2

1 3 0 1 3(2.10)

Ce tableau correspond à une solution de base, mais pas réalisable. En effet, la solution estx1 “ 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 dutableau de la première ligne (associée à x3) dans la colonne 2.

x1 x2 x3 x4 B´1b

´2 -1 1 0 ´21 3 0 1 3

(2.11)

Maintenant, divisons la première ligne par l’élément pivot.

x1 x2 x3 x4 B´1b2 1 ´1 0 21 3 0 1 3

(2.12)

Enfin, ajoutons le multiple approprié de la première ligne pour que le résultat annule toute lacolonne de l’élément pivot. Ici, il faut ajouter ´3 de la première ligne à la seconde pour quel’élément de la seconde ligne, seconde colonne devienne nul. Le prochain tableau est donc :

x1 x2 x3 x4 B´1b2 1 ´1 0 2´5 0 3 1 ´3

(2.13)

Encore une fois, ce tableau correspond à une solution de base, mais pas réalisable, le pointx1 “ 0, x2 “ 2. Cette fois-ci, passons à B “ t1, 4u. Le pivot est donc sur la première ligne etla première colonne. La première ligne est associée à x2 par colonne de matrice identité alorsque la première colonne correspond à la nouvelle variable de base pour le prochain tableau,x1.

x1 x2 x3 x4 B´1b

2 1 ´1 0 2´5 0 3 1 ´3

(2.14)

Même recette maintenant, on divise la ligne par l’élément pivot et détermine les multiplesde la ligne ainsi divisée permettant de “zéroter” la colonne pivot. Donc, on divise la ligne 1par 2 et ajoute 5 fois la ligne 1 ainsi divisée à la ligne 2 pour obtenir :

x1 x2 x3 x4 B´1b1 1

2 ´12 0 1

0 52

12 1 2

(2.15)

Voilà enfin une solution de base réalisable. On détecte rapidement qu’elle est réalisable parla colonne B´1b ą 0. Cette solution de base réalisable est le point x1 “ 1, x2 “ 0 qui est belet bien un sommet du triangle réalisable.

On remarque que la matrice B´1 n’est jamais explicitement calculée, seulement B´1A etB´1b.

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 solutionsde base pour le petit exemple. Complétez le calcul des trois autres solutions de base eneffectuant des opérations de pivot appropriées à partir de l’un ou l’autre des tableauxci-haut calculés.

Exercice 2.4.2 [Pratique de pivots 3 lignes] Considérez les contraintes de l’exercice 2.3.5et qui correspondent à la figure 2.2. Le domaine réalisable est le pentagone illustré. Il y adéjà une identité dans la matrice, donc le tableau de départ peut correspondre aux indicesB “ t3, 4, 5u. C’est la solution de base réalisable x1 “ x2 “ 0. Effectuez des pivots pourparcourir toutes les solutions de base réalisables. Utilisez la figure pour vous guider dansle 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 reliantune paire quelconque de ses points. Un ensemble E est dit affine s’il contient toute ladroite passant par une paire quelconque de ses points. Soient deux points x, y P E, et soitppθq “ θx ` p1 ´ θqy. E est affine si et seulement si ppθq P E, @θ et E est convexe si etseulement si ppθq P E, @θ P r0, 1s.

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

L’ensemble de gauche estconvexe car il contient lesegment de droite reliantn’importe quels deux de sespoints. L’ensemble de droiten’est pas convexe. P

Q

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 ety, 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 lescontraintes. 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 retrouveavec 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’exemplesgéométriques dans le plan. La forme standard du simplexe est une écriture plus algébriqueet 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 donctrop de composantes positives, c’est-à-dire que les colonnes de la sous-matrice associée auxcomposantes positives ne sont pas linéairement indépendantes. Nommons cette sous-matriceB même si elle comporte moins quem colonnes. Puisque ses colonnes ne sont pas linéairementindépendantes, son noyau n’est pas réduit à t0u, prenons donc un vecteur dB P kerB. On adonc la situation suivante : xB ą 0, xN “ 0 et dB P kerB. Nous allons construire un nouveaupoint qui aura une composante positive en moins. On a BxB “ b et BdB “ 0. Notre nouveaupoint sera xB` tdB ě avec une composante nulle. Laquelle ? on sépare les composantes de Bselon le signe de dB, dB` ą 0, dB´ ă 0 et dB0 “ 0, B “ B` YB´ YB0. Alors, pour garantirque xB ` tdB ě 0, on doit avoir

xi ` tdi ě 0, i P B` ðñ t ě´xidi

ă 0

xi ` tdi ě 0, i P B´ ðñ t ď´xidi

ą 0.

Notons tmin “ maxiPB` ´xi

diet tmax “ miniPB´ ´xi

diSi 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 moinsun de B` et B´ est non vide. Donc, ´8 ď tmin ă 0 ă tmax ď 8. Nous aurons donc quexB ` tdB ě 0 sera assuré pour les valeurs de t telles que tmin ď t ď tmax, et si t “ tmin ouencore 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 quia ses deux composantes po-sirives. En direction du vec-teur d, on ne peut pas allerplus loin que tmax ą 0 sanssortir du quadrant positif, nique tmin ă 0. x

d

t_max

t_min

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 decontraintes sous la forme standard du simplexe et un point x réalisable (Ax “ b, x ě 0) dontles composantes positives xB ą 0 et nulles xN “ 0 sont telles que les colonnes Ai, i P Bregroupées dans la sous-matrice B sont linéairement dépendantes, donc kerB ­“ H. Alorsil existe une ensemble d’indices B Ă B tel que x est réalisable et comporte au moins unecomposante positive de moins que x, xB ą 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êmesd’un ensemble défini par des contraintes linéaires sous la forme standard du simplexe sontpré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-matriceB est inversible, si on veut construire un segment de droite contenant x, il faudra qued’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 solutionde 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 del’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.2possè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éairementindé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 decomposantes positives est réduit d’au moins un, donc tôt ou tard, nous aurons obtenu unesolution de base réalisable.

Soit donc x une solution réalisable dont les composantes positives correspondent à descolonnes de A linéairement indépendantes. S’il y a moins de m composantes positives, ilsuffit de compléter ces colonnes pour obtenir m colonnes linéairement indépendantes et lasolution est alors une solution de base réalisable. C’est toujours possible de compléter lescolonnes 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 cTx “ 6x1 ` 3x2sujet à 2x1 ` x2 ` s1 “ 16

x1 ` x2 ` s2 “ 10x1 , x2 , s1 , s2 ě 0

a) Vérifiez que p1, 1, 13, 8qt est une solution réalisable. Appliquez la construction de ladé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 contraintesd’inégalités en les seules variables x. Interprétez géométriquement les solutions de basenon-réalisables.

Dans ce dernier exercice, on converti une solution réalisable quelconque dans une solutionde 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 surun exemple simple.

2.6 Résumé

Nous avons présenté la formulation d’un problème d’optimisation linéaire. Nous avonsdé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 touten remarquant que toutes ces formes sont en quelque sorte équivalentes entre elles car onpeut passer d’une forme à l’autre. Nous avons caractérisé ce qu’on entend par solution d’unmodèle d’optimisation, soit une déclaration que le modèle n’est pas réalisable, soit qu’il n’estpas borné, soit que l’on exhibe une solution optimale.

La forme dite “standard du simplexe” a permis de formuler un résultat mathématiqueimportant qui stipule que si un modèle est réalisable, alors il possède une solution de baseréalisable.

2.7 Tous les exercices du chapitres

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

a)

max x1 ` 2x2

sujet à x1 ` x2 ď 2x1 ` 3x2 ď 3x1, x2 ě 0

2.7. TOUS LES EXERCICES DU CHAPITRES 73

b)

max 45x1 ` 3x2

sujet à 5x1 ` 10x2 ě 253x1 ` 4x2 ě 13x1, x2 ě 0

c)

min ´2x1 ´ x2

sujet à x1 `38x2 ď 4

x1 ` x2 ď 22x1 ď 3x1, x2 ě 0

d)

max 3x1 ´ 2x2

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

Exercice (2.2.2, page 56) [Graphique avec paramètre]a) Résoudre graphiquement le problème

min ´x1

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

b) Supposons maintenant que la fonction objetif devient ´x1 ` cx2. Déterminez les valeursdu paramètre c pour que la solution optimale trouvée en (a) demeure optimale avec lenouvel 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 produitsbruts, de l’orge, des arachides et du sésame. L’aliment ainsi conditionné devra comporter aumoins 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 quele 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 10Coû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’exprimerune 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 contrainted’égalité équivalente à la contrainte ax ě b.

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

Exercice (2.3.3, page 62) [Forme standard du simplexe] Écrire les problèmes suivantssous forme standard.a)

min z “ 18x1 ` 12x2 ` 2x3 ` 6x4sujet à 3x1 ` x2 ´ 2x3 ` x4 “ 2

x1 ` 3x2 ´ x4 ď 2x1 ě 0

x2 , x4 ď 0x3 libre.

b)min z “ ´x1 ´ 4x2 ´ 3x3sujet à 2x1 ` 2x2 ` x3 ď 4

x1 ` 2x2 ´ 2x3 ě 6x1 , x2 ě 0

x3 libre.

c)min z “ x1 ` 3x2 ` 4x3sujet à x1 ` 2x2 ` x3 “ 5

2x1 ` 3x2 ` x3 “ 6x2 , x3 ě 0

x1 libre.

2.7. TOUS LES EXERCICES DU CHAPITRES 75

d)min z “ |x1| ` |x2| ` |x3|

sujet à x1 ` 2x2 ď 12x1 ` x3 “ 3x1 x2 x3 libres.

e)max min t5x1 , 2x2u

sujet à 2x1 ` x2 ` 3x3 ď 4x2 ` 5x3 ď 6

x1 , x2 ě 0x3 libre.

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

x1 ` 2x2 ` x3 “ 52x1 ` ax2 ` 3x3 “ 6x1 , x2 , x3 ě 0.

(2.16)

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 02 1 0 1 00 1 0 0 1

˛

‚x “

¨

˝

400600300

˛

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 c1x1 ` c2x2

sujet à A11x1 ` A12x2 ď b1

A21x1 ` A22x2 “ b2

x1 ě 0,

où A est une matrice pm1 `m2q ˆ pn1 ` n2q 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 sepré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 “ 80 ď 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 sixsolutions de base pour le petit exemple. Complétez le calcul des trois autres solutions de baseen 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 auxindices B “ t3, 4, 5u. C’est la solution de base réalisable x1 “ x2 “ 0. Effectuez des pivotspour parcourir toutes les solutions de base réalisables. Utilisez la figure pour vous guiderdans le choix d’ordre de pivots.

Exercice (2.5.1, page 68) [Inégalités] Complétez la démonstration pour une contrainted’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 cTx “ 6x1 ` 3x2sujet à 2x1 ` x2 ` s1 “ 16

x1 ` x2 ` s2 “ 10x1 , 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 contraintesd’inégalités en les seules variables x. Interprétez géométriquement les solutions de basenon-réalisables.

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

Chapitre 3Algorithme du simplexe

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

Sujets du chapitre

79

80 CHAPITRE 3. ALGORITHME DU SIMPLEXE

IntroductionNous 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’algorithmedu simplexe, qui parcourre les points extrêmes jusqu’à identifier la solution.

3.1 Formulation du problèmePour simplifier l’exposé, nous considérons que le problème est formulé sous la forme dite

standard, c’est-à-diremin cx

sujet à Ax “ b

x ě 0, (3.1)

où c et x sont des vecteurs de Rn, b un vecteur de Rm et A une matrice mˆn. Les lignes de lamatrice 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 lignessont 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 gradientde 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éalisablesAttardons-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 pointsd’intersection avec la frontière de l’orthant. Dans R3, par exemple, s’il n’y a qu’une seulecontrainte (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, ouencore 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 unpoint 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étonsnotre 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 dusegment).

Ces illustrations géométriques sont à la base de la caractérisation des solutions de base enoptimisation linéaire. En effet, en supposant que le domaine n’est pas vide, un sous-espace deRn de dimension n´m intersecte au moins un hyperplan canonique de dimension m. Dansl’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). Supposonsdonc que les composantes d’un vecteur de Rn sont ordonnées de telle sorte que l’hyperplancanonique 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 lescolonnes de la matrice A ainsi que les composantes du vecteur c, et écrivons :

min cx “ rcB, cN sˆ

xBxN

˙

sujet à Ax “ rB,N sˆ

xBxN

˙

“ BxB `NxN “ b

xB ě 0xN “ 0.

Maintenant, supposons que la matrice B est inversible et donc xB “ B´1b. Les colonnes dela matrice B forment une base du sous-espace canonique de dimension m alors que le vecteurxB constitue les coordonnées du vecteur b dans cette base. La partition rrB | N ss, ou encorele 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-matricescorrespondantes de la matrice A.

Avant de terminer cette introduction, revenons sur l’hypothèse que la matrice B soitinversible. Puisque nous supposons que BxB “ b, même si la matrice B est singulière, lesystème d’équations Bx “ b possède tout de même une solution. En fait, si la matrice B estsingulière, c’est que le système Bx “ b possède plusieurs solutions, dont certaines comportentdes composantes nulles. C’est une manifestation du phénomène de dégénérescence, que noustraiterons 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’optimisationliné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 baseré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éplacementtmin ď t ď tmax qui peut être positif ou négatif puisque ´8 ď tmin ă 0 ă tmax ď 8. Puisquele point réalisable est optimal, obligatoirement cpx ` tdq ě cx, donc cptdq ě 0 sinon çacontredirait que cx est optimal. Donc, cd ě 0 et ´cd ě 0 entraîne que cd “ 0 et que le pointconstruit dans la proposition 2.5.2 possède la même valeur de fonction objectif et donc estoptimal. l

Nous examinons dans cette section les conditions sous lesquelles une solution rxB, 0s estoptimale pour le problème linéaire (2.2). Il semble clair que pour qu’une telle solution soitoptimale, il suffit de s’assurer qu’il est impossible de réduire la fonction objectif cBxB ` cN0en augmentant les composantes de xN . Profitons du fait que B est inversible pour écrirexB “ B´1pb ´ NxNq. Cette dernière relation permet de mettre xB en fonction de xN . Demême, la fonction objectif peut se récrire comme

cBxB ` cNxN “ cBB´1pb´NxNq ` cNxN

“ pcN ´ cBB´1NqxN ` cBB

´1b.

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

min pcN ´ cBB´1NqxN

sujet à B´1pb´NxNq ě 0

xN ě 0.(3.2)

On voit donc que si pcN ´ cBB´1Nq ě 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 duproblème (3.2), alors pcN ´ cBB´1Nq ě 0. En effet, autrement, il serait possible d’augmenterlégèrement une composante de xN associée à une composante négative du vecteur pcN ´cBB

´1Nq tout en assurant que xBp“ B´1pb ´ NxNqq 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 justifiele 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 ´ cBB´1Nq ě 0, alors x est une solution optimale.

Cependant, si une composante de xB est nulle, il est concevable qu’aucune augmentationd’une certaine composante de xN ne maintienne xB non-négatif. Ceci est une manifestationdu phénomène de dégénérescence, que nous étudierons en détail plus tard. Mentionnonsseulement que dans un tel cas, la décomposition rrB | N ss des composantes positives n’est pasunique (puisqu’une valeur de xB est nulle), et il est possible que le vecteur pcN´cBB´1Nq soitnon-négatif pour une autre décomposition. Nous démontrerons plus tard le résultat profondsuivant.

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 ´cBB

´1Nq ě 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 moinsde m composantes positives, plusieurs décompositions existent et le théorème assure qu’aumoins une d’elles satisfait à la condition d’optimalité.

3.3.1 ExempleRevenons à 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 donneque la solution est x1 “

35 , x2 “

45 . Donc, la base optimale est B “ t1, 2u et N “ t3, 4u.

Calculons donc pcN ´ cBB´1Nq. cN “ 0, cB “ p1,´1q et l’exercice 2.4.1 nous a fourni

B´1N “

ˆ

´35 ´1

515

25

˙

. Donc pcN ´ cBB´1Nq “ p45 ,

35q ě 0, ce qui confirme que notre solution

de base satisfait à la condition d’optimalité.

Exercice 3.3.1 [Plusieurs bases] Modifions légèrement l’exemple (2.7) :min z “ x1 ´ x2sujet à 2x1 ` x2 ě 2

x1 ` 3x2 ď 6x1 , x2 ě 0

(3.3)

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 ´ cBB´1Nq.

L’exercice montre qu’il y a au moins une base décrivant la solution optimale pour laquellepcN ´ cBB

´1Nq ě 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

vecteur ligne π def“ cBB

´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 jième coût réduits’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 de1. la définition de π “ cBB

´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, puisquex, s ě 0, sx “

ř

sixi ě 0 et on a égal à zéro seulement si pour chaque i, au moins unde si et xi s’annule. Dans la partition, xN et sB s’annulent, c’est à dire xi “ 0@i P N etsi “ 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 leproblème max cx sous les mêmes contraintes soient tous deux non-bornés ? Justifiez.

3.4 Algorithme du simplexeNous 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 plushaut ne sont pas satisfaites. Nous allons proposer une autre décomposition rxB1 , 0s pourlaquelle la valeur de la fonction objectif cB1xB1 ă cBxB. Tout comme dans la discussion ausujet des conditions d’optimalité, supposons que xB ą 0. Nous étudierons en détail le casdégénéré plus loin.

Comme nous l’avions discuté plus haut, il est alors possible d’augmenter une composantede 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 possibled’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´1pb´NxNq. Puisque nous augmentons seulement la composante x, écrivons xB “B´1pb ´ Nxq. C’est donc le vecteur B´1N qui est responsable de l’augmentation ou dela diminution des composantes de xB en fonction de x. La situation est similaire à celledécrite dans la proposition 2.5.2 où on détermine la plus grande valeur tmax assurant dedemeurer dans l’ensemble réalisable. Si B´1N ď 0, alors aucune composante de xB nediminue lorsque x augmente, et le problème n’est pas borné, tmax “ 8. Autrement, uneaugmentation unitaire de x provoque un changement de ´δxB “ ´B´1N, ou encore, pourune composante i donnée, δxi “ pB´1Nqi. Puisque pour xN=0 on a xB “ B´1b, on a que lavaleur de x qui annule xi est précisément xi

δxi. On garanti donc que xB demeure non-négatif

en posantxı “ min

i:δxią0pxiδxiq. (3.9)

Après ce changement, la partition rrB | N ss est modifiée en ajoutant la variable à B et enenlevant de B (pour l’ajouter dans N) un des xi qui devient zéro, c’est-à-dire un qui atteintle mini:δxią0p

xi

δxiq. Alors, on passe de la partition rrB | N ss à la nouvelle partition rrB1 | N 1ss

définie comme suit : B1 “ B Y tuztıu et N 1 “ N Y tıuztu, où ı est un des indices qui

86 CHAPITRE 3. ALGORITHME DU SIMPLEXE

atteignent le mini:δxią0pxi

δxiq. 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èmecomporte 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èmeComme 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ésB´1N, π “ cBB

´1 ainsi que cN ´ πN et B´1b. On augmente donc les contraintes d’unesimili-contrainte qui établit la valeur de la fonction objectif, ξ ` cx “ 0, donc ξ “ ´cx pourformuler les équations linéaires

ˆ

1 cB cN 00 B N b

˙

.

Maintenant, nous multiplions cette matrice parˆ

1 cB0 B

˙´1

. Il n’est pas difficile de se convaincreque

ˆ

1 cB0 B

˙´1

ˆ

1 ´cBB´1

0 B´1

˙

ˆ

1 ´π0 B´1

˙

,

et doncˆ

1 cB0 B

˙´1 ˆ1 cB cN 00 B N b

˙

ˆ

1 0 cN ´ πN ´πb0 I B´1N B´1b

˙

.

3.4.2 Organisation calculatoire : pivots et tableauxL’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 telqu’introduit à la section 2.4. Nous allons enrichir les tableaux en leur ajoutant une ligne detelle sorte que le tableau corresponde aux équations de la forme canonique, sauf la premièrecolonne qui est toujours la même. La structure d’un tableau est donc la suivante.

xB xN

0 cN ´ zN ´cBxB

I B´1N B´1b

(3.10)

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´1b ě 0 par le choix de ıdit variable sortante car cet indice sera enlevé de B et ajouté dans N , cette variable sortirade 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 estcomme à 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 minjPNpcj ´ zjq ; indice minimisant la ligne zéro ;2. ı “ arg mini:δxią0p

xi

δxiq ; 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) sontsatisfaites, 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 ´ x2sujet à 2x1 ` x2 ´ x3 “ 2

x1 ` 3x2 ` x4 “ 3x1 , x2 , x3 , x4 ě 0

on obtient un tableau de départ

x1 x2 x3 x41 ´1 0 0 02 1 ´1 0 21 3 0 1 3

(3.11)

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´1b ě 0. Nousverrons aux sections 3.5 et 6.2 des techniques systématique pour y parvenir. Pour l’instant,remarquons par inspection de l’exemple très simple que x “ p1 0 0 2qt est une solution

réalisable et B “

ˆ

2 01 1

˙

. Calculons donc B´1A “

ˆ

1 12 ´1

2 00 5

212 1

˙

. xB “ B´1b “`1

2

˘

et

π “ cBB´1 “ p1

2 0q ce qui nous donne c´ πA “ p0 ´ 32

12 0q. Enfin, en traitant la colonne b

comme une colonne de A, on retrouve 0´πb “ ´1, ce qui nous donne sous forme de tableauréalisable sous forme canonique, on a bel et bien une identité dans les colonnes 1 et 4, laligne zéro a des coefficients nuls dans ces colonnes et la dernière colonne est positive.

x1 x2 x3 x40 ´3{2 1{2 0 ´11 1{2 ´1{2 0 10 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é aitsa zéroième ligne et sa dernière colonne non-négatives, exception faite du coin commun à lazéroième ligne et première colonne. L’algorithme du simplexe recherche itérativement unetelle partition en maintenant la dernière colonne non-négative et en progressant pour amenerla 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 4

5 , 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 uneportion d’identité, donc que l’élément pivot vaille un et le reste de la colonne zéro. On divisela deuxième ligne par l’élément pivot et ajoute un multiple approprié de celle-ci aux autreslignes pour obtenir :

x1 x2 x3 x40 0 4{5 3{5 1{51 0 ´3{5 ´1{5 3{50 1 1{5 2{5 4{5

(3.12)

Ce tableau est réalisable (dernière colonne non-négative) et optimal (première ligne non-négative) et la valeur optimale est ´1

5 (é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éduisantla fonction objectif.

Remarque 1 Notre exemple simple bi-dimensionnel permet facilement d’énumérer tousles points extrêmes, réalisables ou non. En général, c’est une tâche très difficile de procéderà l’énumération. D’abord, le nombre de points extrêmes est très grand,

`

nm

˘

; par exemple,n “ 100 et m “ 50 nous fournissent 1029 points. Ensuite, il est très difficile de trouver unordre 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.maxxPR2

1.5x1 ` x2

sujet à x1 ` x2 ď 4002x1 ` x2 ď 600

x2 ď 300x1, x2 ě 0

Changeons de signe les coefficients de la fonction objectif pour le convertir en minimisationet on obtient le tableau initial suivant. Le coefficient de x1 est le plus négatif et le critère durapport nous donne un pivot à la ligne 2.

x1 x2 x3 x4 x5´3

2 ´1 0 0 0 01 1 1 0 0 4002 1 0 1 0 6000 1 0 0 1 300

(3.13)

Nous effectuons maintenant un pivot sur l’élément 1,2x1 x2 x3 x4 x50 ´1

4 0 34 0 450

0 12 1 ´1

2 0 1001 1

2 0 12 0 300

0 1 0 0 1 300

(3.14)

pour aboutir à la solution optimale décrite dans le tableau final suivant.x1 x2 x3 x4 x50 0 1

212 0 500

0 1 2 ´1 0 2001 0 ´1 1 0 2000 0 ´2 1 1 100

(3.15)

Petit exercice résolu

Considérez le programme linéaire suivant :min z “ ´9x2 ´ x3 ` 2x5 ` x6sujet à 5x2 ` 50x3 ` x4 ` x5 “ 10

x1 ´ 15x2 ` 2x3 “ 2x2 ` 15x3 ` x5 ` x6 “ 6

x1 , x2 , x3 , 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 baseassocié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 x6n’est pas nul, et de la troisième contrainte, on tire que x6 “ 6´ x2 ´ 15x3 ´ x5, donc lafonction 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 sontpas 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, lasolution de base sera réalisable ? Expliquez.Le quotient du membre de droite sur l’élément de la colonne de la variable entrantenous donne l’augmentation maximale assurant que la variable de base correspondantedemeure 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 debase est réalisable.

x1 x2 x3 x4 x5 x6´z 0 8{5 0 8{25 8{25 0 ´14{5x3 0 1{10 1 1{50 1{50 0 1{5x1 1 ´152{10 0 ´1{25 ´1{25 0 8{5x6 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 necomporte que x3, et et est satisfaite, la seconde donne 8{5 ` 2{5 “ 2 et la troisième15p1{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 : dictionnairesCertains 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´1b´B´1NxN .

Le dictionnaire comporte donc la structure suivante

xNz “ cx cBxB cN ´ cBB

´1

xB B´1b ´ B´1N

Par exemple, le tableaux1 x2 x3 x40 ´3{2 1{2 0 ´11 1{2 ´1{2 0 10 5{2 1{2 1 2

est complètement équivalent au dictionnaire suivant.

x2 x3z 1 ´3{2 1{2x1 1 ´ 1{2 ´ ´1{2x4 2 ´ 5{2 ´ 1{2

Il y a plusieurs outils disponibles sur internet pour faciliter les calculs de l’algorithme dusimplexe. 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 desvecteurs 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 fractionsplutôt qu’une représentation approchée en décimales. Les calculs en décimales ne sont pasexacts, mais sont seulement approchés car par exemple 1

3 n’admet pas de représentationexacte en décimale, 1

3 “ 0.333 . . . que l’on approche avec un nombre fini de décimales, parexemple 1

3 « 0.3333. Pour nos problèmes d’optimisation linéaire, tant que les données sontrationnelles, il est possible d’effectuer les calculs et obtenir une solution exacte rationnelle.

Exercice 3.4.2 [Algorithme du simplexe] Le sitehttps://neos-guide.org/content/simple-pivot-toolcomporte un générateur de problèmes aléatoires. On peut également afficher les calculs enrationnels (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ésaléatoirement consécutifs.

Exercice 3.4.3 [Algorithme du simplexe papier] Encore avec l’outil informatique, générezau moins quatre problèmes aléatoires et résolvez-les par l’algorithme du simplexe sur papierdans la forme tableau plutôt que dictionnaire. Effectuez vos calculs en fractions. Utilisezl’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 baseréalisable

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

3.5.1 Contraintes ď avec b ě 0

Si nous avons à résoudre un problème avec uniquement des contraintes Ax ď b, x ě 0 avecb ě 0, en le transformant sous forme standard du simplexe, il se retrouve automatiquementsous 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éralParmi 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 ezsujet à Iz ` Ax “ b

x, z ě 0,(3.16)

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 à unmembre de droite bi négatif, le vecteur z “ b, x “ 0 constitue une solution de base réalisablepour 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 unesolution optimale de valeur nulle, et z “ 0. La phase I consiste donc à appliquer l’algorithmedu 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 estde compléter la base partielle (éléments de B correspondant à des variables x) avec d’autrescomposantes x, tout en les laissant nulles. Soit donc une colonne associée à une variable debase zi “ 0. Il est alors possible d’effectuer un pivot sur tout élément non-nul de la ligneai correspondant à une variable x. Ceci a pour objet de changer la partition sans changerle point pz, xq, qui constitue une solution dégénérée. Si jamais une ligne de la matrice Adevenait nulle, c’est le signe que la matrice A n’est pas de rang m, et il est alors possibled’éliminer cette ligne.

3.5.3 ExempleReprenons 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 quenous 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 01 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 01 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 01 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 ““

´53 0 1 1

3 0 43

3.5. COMMENT OBTENIR LA PREMIÈRE SOLUTION DE BASE RÉALISABLE 95

bt ““

1 1‰

A “„ 5

3 0 ´1 ´13 1 ´1

313 1 0 1

3 0 13

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

545

A “„

1 0 ´35

´15

35

´15

0 1 15

25

´15

25

nouveau B =“

1 2‰

nouveau N =“

5 6 3 4‰

Itération 3

Solution optimaleLa 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

35

(3.17)

96 CHAPITRE 3. ALGORITHME DU SIMPLEXE

Exécution du simplexe primal dans sa forme tableau.c “

0 0 45

35

bt ““ 3

545

A “„

1 0 ´35

´15

0 1 15

25

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’estpas 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 2phases du simplexe. Illustrez graphiquement les itérations de la phase 2.a)

min z “ ´3x1 ´ 2x2sujet à x1 ` x2 ď 10

x1 ě 4x1 , x2 ě 0

b)min z “ x1 ` x2sujet à ´x1 ` x2 ď ´1

x1 ´ x2 ď ´1x1 , x2 ě 0

c)min z “ x1 ` x2sujet à 2x1 ` x2 ě 2

x1 ` 3x2 ě 3x1 , 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 modificationde la partition rrB | N ss. Pour l’instant, contentons-nous d’observer que si on a sous la mainune représentation de B´1 alors B´1pB,Nq “ pI, δxq, donc, dans l’ordre des variables de lanouvelle partition, cette dernière matrice devient

B´1pB1, . . . , Bi´1, N, Bi`1, . . . , Bm, Biq “ pe1, . . . , ei´1, δx, ei`1, . . . , em, eiq

et en utilisant des opérations élémentaires sur les matrices (voir appendice A.2.1), il estpossible 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 quexB ą 0, il est clair que cet algorithme termine en un nombre fini de calculs car le nombre dedécomposition rrB | N ss est grand, mais fini et à chaque nouvelle décomposition examinée, lafonction objectif décroît, empêchant d’en examiner aucune plus d’une fois. Cependant, nousverrons plus tard qu’il faut préciser davantage l’algorithme pour garantir sa terminaison pourdes problèmes dégénérés.

Remarquons ici que l’algorithme du simplexe original (non révisé) consiste à manipuler untableau donné par la matrice A “ B´1rb, B,N s “ rxB, I, B

´1N s en calculant explicitementtoute la matrice transformée. Le tableau comporte également une “zéroième” ligne c ´ πAqui 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 lacolonne B´1N à 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´1b ;2. calculer π “ cBB

´1 ;3. calculer cN “ cN ´ πN ;4. choisir une colonne profitable telle que pcNq ă 0 ;5. calculer δx “ B´1N ;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 matriceB.

98 CHAPITRE 3. ALGORITHME DU SIMPLEXE

Simplexe révisét Données : une partition rrB | N ss de Rn, une représentation ut de la matrice B´1 ainsi qu’une solution réalisable rxB, 0s. uoptimal Ð fauxnon_borné Ð fauxrépétert Production d’un vecteur de coûts réduits u

π Ð SOLUTION(πB “ cB)zN Ð πNd Ð cN ´ zN

t Choix d’une variable entrante usi (d ą 0 ) alors optimal Ð vraisinon Ð Calcule_δx Ð SOLUTION(Bδx “ N)t Choix d’une variable sortante usi (δx ă 0 ) alors non_borné Ð vraisinonı Ð arg mini:δxią0p

xi

δxiq

t Mises-à-jour diverses urrB | N ss Ð rrB Y tuztıu | N Y tıuztussB´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 estreprésentées par une décomposition appropriée à la solution. Cette décomposition est doncmise à jour en même temps que la partition des composantes ; dans l’algorithme, nous avonsnommé cette représentation B´1, mais nous verrons qu’il s’agit plutôt d’une décompositionde la matrice B “ LU

Algorithme 3.1: Simplexe révisé.

3.6. SIMPLEXE RÉVISÉ 99

3.6.1 ExempleReprenons 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 ´ x2sujet à 2x1 ` x2 ´ x3 “ 2

x1 ` 3x2 ` x4 “ 3x1 , x2 , x3 , x4 ě 0

on obtient un tableau de départ

x1 x2 x3 x41 ´1 0 0 02 1 ´1 0 21 3 0 1 3

(3.18)

Phase I Ajoutons mécaniquement deux variables artificielles x5 et x6. Nous savons qu’ilsuffit d’en ajouter une puisque la quatrième colonne en est une de la matrice identité. Pourcet exemple, appliquons la méthode de la phase I sans raccourci.

x1 x2 x3 x4 x5 x61 ´1 0 0 0 0 02 1 ´1 0 1 0 21 3 0 1 0 1 3

(3.19)

Les indices de base de départ sont donc B “ t5, 6u et la matrice B “ I “ B´1. Appliquonsla version révisée de l’algorithme du simplexe. On minimise donc x5 ` x6 et cB “ p1, 1q.

itération 1

1. xB “`2

3

˘

;2. π “ cBB

´1 “ p1, 1q ;3. cN “ p0, 0, 0, 0q ´ πN “ p´3,´4, 1,´1q ;4. On choisit la colonne 2 où le plus négatif des cN se trouve, N2 “

`13

˘

;

5. On calcule δx “ B´1N2 “`1

3

˘

;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) :

B´1|δx “

1 0 10 1 3

on effectue le pivot :

B´1|δx “

1 ´1{3 00 1{3 1

Nous sommes prêts pour l’itération 2. Les indices de base sont maintenant B “ t5, 2u et

cB “ p1, 0q, et la matrice B´1 “

ˆ

1 ´1{30 1{3

˙

.itération 2

1. xB “ B´1b “`1

1

˘

;2. π “ cBB

´1 “ p1,´1{3q ;3. cN “ p0, 0, 0, 1q ´ πN “ p´5{3, 1, 1{3, 4{3q ;4. On choisit la colonne 1 de N où le plus négatif (le seul négatif) des cN se trouve, N1 “

`21

˘

;5. On calcule δx “ B´1N1 “

`5{31{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) :

B´1|δx “

1 ´1{3 5{30 1{3 1{3

on effectue le pivot :

B´1|δx “

3{5 ´1{5 1´1{5 2{5 0

Nous avons terminé la phase I puisque les variables artificielles x5 et x6 sont toutes deuxdevenues hors-base.

Phase II Nous allons continuer avec seules les variables x1, x2, x3 et x4 originales. Levecteur c “ p1,´1, 0, 0q. Puisque nous avons sous la main B´1 “

ˆ

3{5 ´1{5´1{5 2{5

˙

, nous

pouvons appliquer l’algorithme du simplexe dans sa version révisée. B “ t1, 2u et cB “

t1,´1u.1. xB “ B´1b “

`3{54{5

˘

;2. π “ cBB

´1 “ p4{5,´3{5q ;

3.7. RÉSUMÉ 101

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

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

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

Exercice 3.6.2 [Algorithme du simplexe papier en version révisée] Reprenez les exemplesque vous avez utilisés dans l’exercice 3.4.3 mais cette fois-ci, utilisez la version révisée del’algorithme pour les résoudre. Effectuez vos calculs en fractions. Utilisez vos solutionsobtenues 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 versionré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 dene pas tourner en rond, on aura identifié la solution optimale en un nombre fini de calculs.

3.8 Extensions et référencesLe 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 etSteiglitz [4]. Bien sûr, le livre classique de Dantzig [3], qui est à l’origine de toute cettethéorie demeure un ouvrage de référence précieux.

102 CHAPITRE 3. ALGORITHME DU SIMPLEXE

3.9 Tous les exercices du chapitresExercice (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 ´ x2sujet à 2x1 ` x2 ě 2

x1 ` 3x2 ď 6x1 , x2 ě 0

(3.20)

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 ´ cBB´1Nq.

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 del’algorithme

Exercice (3.4.2, page 91) [Algorithme du simplexe] Le sitehttps://neos-guide.org/content/simple-pivot-toolcomporte un générateur de problèmes aléatoires. On peut également afficher les calculs enrationnels (des fractions). Utilisez l’outil pour générer des problèmes et les résoudre parl’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ésalé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 enfractions. 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éthodedes 2 phases du simplexe. Illustrez graphiquement les itérations de la phase 2.a)

min z “ ´3x1 ´ 2x2sujet à x1 ` x2 ď 10

x1 ě 4x1 , x2 ě 0

b)min z “ x1 ` x2sujet à ´x1 ` x2 ď ´1

x1 ´ x2 ď ´1x1 , x2 ě 0

c)min z “ x1 ` x2sujet à 2x1 ` x2 ě 2

x1 ` 3x2 ě 3x1 , x2 ě 0

Exercice (3.6.1, page 101) [Autres choix de pivot] À l’étape 3 de la première itérationde la phase I, on aurait pu choisir 3 des 4 colonnes avec un coût relatif négatif. Nous avonschoisi la colonne 2, associée au plus négatif. Poursuivez l’algorithme avec les deux autreschoix. 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 lesnotes de cours.

Exercice (3.6.2, page 101) [Algorithme du simplexe papier en version révisée] Reprenezles exemples que vous avez utilisés dans l’exercice 3.4.3 mais cette fois-ci, utilisez la versionrévisée de l’algorithme pour les résoudre. Effectuez vos calculs en fractions. Utilisez vossolutions 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 avecla version révisée de l’algorithme du simplexe.

104 CHAPITRE 3. ALGORITHME DU SIMPLEXE

Chapitre 4Dualité

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

Sujets du chapitre

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 existeune 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 Nq “ πA ď c “ pcB cNq.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 laproposition suivante.

Proposition 4.1.1 Si rxB, xN “ 0s est une solution de base optimale du problème (2.2),alors π “ cBB

´1 est une solution réalisable au problème (nommé dual).

max πbsujet à πA ď c

(4.1)

Examinons maintenant les deux problèmes (2.2) et (4.1). Soit x et π des solutions réalisablesde 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 π “ cBB

´1 dans (4.1), onretrouve πb “ πBxB “ cBxB “ cx et donc l’égalité nous confirme que π “ cBB

´1 estsolution 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 π “ cBB

´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 formestandard. Cet exercice nous permet d’utiliser des manipulations classiques et d’en introduirela 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. Pourque 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β` ´ β´qbsujet à pβ` ´ β´qA` α “ c

β` ě 0β´ ě 0α ě 0.

(4.2)

Maintenant, convertissons en minimisation et transposons les relations en notant u “ βt ets “ αt et enfin w “ pβ`, β´, αqtpour obtenir

min ´ btu` ` btu´ “ p´bt, bt, 0qwsujet à Atu` ´ Atu´ ` s “ rAt,´At, Isw “ ct

u` ě 0u´ ě 0s ě 0.

(4.3)

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

max czsujet à Az ď ´b

´ Az ď b

Iz ď 0,

(4.4)

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 sorteque les contraintes du problème (4.1) deviennent yA` s “ c avec s ě 0 ; alors, si x et ry, sssont 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. Nousaborderons 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 fonctionobjectif 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 deuxproblè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), siun 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 leprimal, 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, ensupposant que x est réalisable pour le problème (2.2), on retrouve Ax “ b de sorte que l’onobtient πb ď cx, c’est-à-dire que toute solution réalisable pour le dual possède une valeur defonction objectif à la valeur de l’objectif primal pour une solution réalisable quelconque. Sile 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 ´ x2sujet à 2x1 ` x2 ´ x3 “ 2

x1 ` 3x2 ` x4 “ 3x1 , x2 , x3 , x4 ě 0,

(4.5)

obtenons son dual :max 2y1 ` 3y2sujet à 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 avecseulement des contraintes d’égalité et des variables non négatives. Pour ce faire, observonsque y1 est déjà non négative et y2 est non positive. Effectuons un changement de variabley2 “ ´y2 de sorte que y2 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 lafonction objectif. Tout ça nous donne :

min ´2y1 ` 3y2sujet à 2y1 ´ y2 ` y3 “ 1

y1 ´ 3y2 ` y4 “ ´1y1 , y2 , y3 , y4 ě 0

Obtenons maintenant le dual de ce dernier problème qui est sous forme standard.

max z1 ´ z2sujet à 2z1 ` z2 ď ´2

´z1 ´ 3z2 ď 3z1 ď 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 enz et on inverse les signes, deux inversions de signe se cancellent.

min z1 ´ z2sujet à ´2z1 ´ z2 ď ´2

z1 ` 3z2 ď 3z1 ě 0

z2 ě 0.

Finalement, inversons la première inégalité (multiplions la par ´1) et ajoutons une variablede surplus z3 ě 0 et une d’écart z4 ě 0.

min z1 ´ z2sujet à 2z1 ` z2 ´ z3 “ 2

z1 ` 3z2 ` z4 “ 3z1 , z2 , z3 , z4 ě 0,

qui est exactement le problème (4.69).

4.1.2 Diverses formulations de problèmes duauxLes 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 cxsujet à Ax ď b

x ě 0,

et vérifiez que son dual est

max ybsujet à 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 dualmin maxc : coût b : coûtb : terme de droite c : terme de droitecontrainte i du type ě variable i du type ě 0contrainte i du type “ variable i du type librecontrainte i du type ď variable i du type ď 0variable i du type ě contrainte i du type ď 0variable 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 x1 ` x2sujet à ´3x1 ` 2x2 ď ´1

x1 ´ x2 ď 2x1 , x2 ě 0.

(4.6)

Nous aurons deux variables duales car notre exemple comporte deux contraintes. La table 4.1nous 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 ` 2y2sujet à ´3y1 ` y2 ě 1

2y1 ´ y2 ě 1y1 , y2 ě 0.

(4.7)

Exercice 4.1.2 [Formulation du problème dual] Reprenez les problèmes de l’exercice 2.3.3page 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 ` 3x4sujet à 2x3 ´ x4 ď 1

x3 ´ 3x4 ď ´12x1 ` x2 ě 2x1 ` 3x2 ď 3x1 , x2 , x3 , x4 ě 0,

(4.8)

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

112 CHAPITRE 4. DUALITÉ

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

min c1x1 ` c2x2

sujet à A11x1 ` A12x2 ď b1

A21x1 ` A22x2 “ b2

x1 ě 0,

où A est une matrice pm1 `m2q ˆ pn1 ` n2q 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 lequelni 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 dansune table comme suit.

PrimalDual non borné résoluble irréalisable

non borné impossible impossible possiblerésoluble impossible cx˚ “ y˚b impossibleirréalisable possible impossible possible

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

PrimalDual réalisable irréalisable

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 onadditionne les deux contraintes du problème 4.7, on obtient ´y1 ě 2, donc y1 ď ´2 et doncce dernier n’est pas réalisable. Un primal réalisable avec un dual non réalisable entraîne doncque le primal n’est pas borné.

Exercice 4.1.6 [Irréalisable primal-dual] Fournissez une paire de programmes duaux pourlesquels 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 c1x1 ´ c2x2sujet à Atx2 ď ct1

Ax1 “ ct2x1 ě 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 colonnesest une inégalité stricte, autrement dit, au moins une des quantités est une égalité. Pour lescontraintes 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èmemin 2x1 ` 6x2 ` x3sujet à 2x1 ` x2 ` 3x3 “ 3

x1 ´ 2x2 ` 9x3 “ 4x1 , x2 , x3 ě 0.

(4.9)

Donc, c “ p2, 6, 1q, b “`3

4

˘

. Afin de le résoudre graphiquement, puisque nous savons que sondual comportera seulement deux variables, résolvons le dual.

max 3y1 ` 4y2sujet à 2y1 ` y2 ď 2

y1 ´ 2y2 ď 63y1 ` 9y2 ď 1.

Après solution graphique, on trouve y˚ “ p1715 ,´

415q. Ajoutons les variables d’écart au dual,

s P R3 ě 0. On calcule aisément s “ p0, 133 , 0q. Les écarts complémentaires nous informent

que sx “ 0, en d’autres termes s1x1 ` s2x2 ` s3x3 “ 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 deuxvariables x1 et x3 : 2x1 ` 3x3 “ 3 et x1 ` 9x3 “ 4. On calcule aisément x˚1 “ 1 et x˚3 “ 1

3 .Enfin, cx˚ “ 2` 0` 1

3 “73 “ y˚b “ 3 ¨ 17

15 ` 4 ¨ ´415 .

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

min ´2x1 ´ x2sujet à x1 ` 8

3x2 ď 4x1 ` x2 ď 2

2x1 ď 3,

etmax x1 ` 2x2sujet à 2x1 ` x2 ě 4

x1 ` x2 ď 8´x1 ` x2 ď 4x1 ď 5x1 , x2 ě 0.

Pour chacun,a) Résoudre graphiquementb) É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 simplexeComme 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 à lapage 145) de dualité forte garantit que nous pouvons résoudre l’un ou l’autre de ces problèmeset en déduire la solution de l’autre. On pourrait donc appliquer l’algorithme du simplexe auproblème (4.1) pour résoudre (2.2). L’algorithme dual du simplexe fait exactement ça, maisen utilisant les données telles que formulées pour le primal.

Comme nous venons de le voir, les relations cN ´ cBB´1N ě 0 correspondent en fait à lasatisfaction des contraintes du problème dual alors que les contraintes x ě 0 correspondentaux conditions d’optimalité du dual. Nous allons donc développer des règles pour assurerque la première ligne des tableaux est toujours non négative et terminer lorsque la dernièrecolonne sera devenue non négative.

Donc, l’algorithme dual choisira une ligne associée à un élément négatif de la dernièrecolonne, puis une colonne telle qu’après l’opération de pivot, la zéroième ligne demeure nonnégative. Comment faire ce choix ? Il suffit d’exprimer ce que devient un nouvel élément dela zéroième ligne après un pivot. Supposons que la ligne ı et la colonne soient choisies telsque aı ă 0 ; s’il n’y a pas de telle colonne, le primal n’est pas réalisable. Après le pivot, laligne ı 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´ c

aıaıj que l’on veut conserver non négatif. Pour

assurer la non-négativité, il suffit de choisir tel que c

aı“ maxaıjă0

c

aıj.

L’algorithme dual du simplexe se résume aux trois étapes suivantes qui sont répétéesjusqu’à ce que B´1b ě 0.1. ı “ arg miniPBprB´1bsiq ; indice minimisant la colonne B´1b ;2. “ arg maxaıjă0p

c

aıjq ; 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 simpleConsidé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’estcependant pas réalisable pour le primal puisque la dernière colonne est négative.

x1 x2 x3 x4 x54 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ă0p

c

aıjq s’applique aux colonnes un et deux. Les

quotients en question sont ´4 et ´1, le maximum est donc atteint pour la colonne deux etc’est x2 qui entrera dans B. On effectue un pivot sur l’élément de première ligne et secondecolonne.

x1 x2 x3 x4 x53 0 1 1 0 ´81 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 uneseule colonne négative dans cette ligne numéro deux, la première. On effectue donc le pivotsur l’élément de ligne deux, colonne un de valeur ´9.

x1 x2 x3 x4 x50 0 4 4

313 ´11

0 1 1 ´89

19 7

1 0 ´1 ´19 ´1

9 1

Exercice 4.2.1 [Algorithme dual du simplexe] Le sitehttps://vanderbei.princeton.edu/JAVA/pivot/simple.htmlcomporte un générateur de problèmes aléatoires et on peut spécifier s’il s’agit de problèmesprimal réalisables ou dual réalisable. Le même outil référé précédemment comporte unbug pour la génération de problèmes duaux. Attention, les problèmes sont des problèmesde maximisation. Faites des essais jusqu’à ce que vous puissiez résoudre au moins cinqproblè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. Effectuezvos 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 lignedu tableau (3.19) par ´1,

x1 x2 x3 x41 ´1 0 0 0

´2 ´1 1 0 ´21 3 0 1 3

Maintenant, rien d’évident pour obtenir une partition rrB | N ss telle que, posant π “ cBB´1,

la zéroième ligne c ´ πA soit non-négative. Rappelons que pour l’algorithme dual, on ne sesoucie pas que xB ě 0, l’algorithme maintiendra c ´ πA ě 0 et progressivement atteindraque xB ě 0.

Comme dans le cas de l’algorithme primal, en inspectant le problème, on découvre quex “ p0 1 ´ 1 0qt est dual-réalisable. Pour ce x, on a B “ t2, 3u, N “ t1, 4u, la matrice

B “

ˆ

´1 13 0

˙

et B´1A “

ˆ 13 1 0 1

3´5

3 0 1 13

˙

. B´1b “ p1 ´ 1qt. π “ cBB´1q “ p0 ´ 1

3q et

c ´ πA “ p43 0 0 1

3q. Finalement ´πb “ 1 et nous avons toutes les quantités pour écrire letableau optimal mais irréalisable

x1 x2 x3 x44{3 0 0 1{3 11{3 1 0 1{3 1

´5{3 0 1 1{3 ´1Il 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 lecritère “ arg maxaıjă0p

c

aıjq. 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 denégative et notre nouvelle partition sera B “ t1, 2u et N “ t3, 4u. On effectue un pivot surl’élément de la seconde ligne et première colonne pour mettre-à-jour le tableau afin qu’ilreprésente l’information reliée à la nouvelle partition. On retrouve un tableau équivalent autableau optimal (3.12).

x1 x2 x3 x40 0 4{5 3{5 1{50 1 1{5 2{5 4{51 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 dudual n’est pas égal au nombre de variables du primal. Il faut toujours garder en tête quedes illustrations nourrissent notre intuition, mais que la situation générale de dimensionplus grande que deux est considérablement plus complexe et que beaucoup d’aspects ne semanifestent simplement pas en deux dimension. C’est le cas par exemple du phénomène decyclage de l’algorithme dont nous présenterons un exemple à la section 5.2 qui n’apparaîtpas en dimension inférieure à six.

4.2.3 Un autre exempleConsidérez le problème suivant.

min ´7x1 ` 7x2 ´ 2x3 ´ x4 ´ 6x5sujet à 3x1 ´ x2 ` x3 ´ 2x4 “ ´3

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

On met sous forme canonique le problème et constate que la ligne des coûts est positive. Onpeut 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 ut de la matrice B´1 ainsi qu’une solution dual-réalisable rxB, 0s. ut telle que πB “ cB et cN ´ πN ě 0. uréalisable Ð fauxvide Ð fauxrépétert Choix d’une variable sortante uı Ð arg miniPBpxiqsi (xi ě 0 ) alors réalisable Ð vraisinont Production d’un vecteur de coûts réduits u

π Ð SOLUTION(πB “ cB)zN Ð πNcN Ð cN ´ zN

t Production de la ligne ı uaı Ð peTı B

´1qN

t Choix d’une variable entrante usi (aı ě 0 ) alors vide Ð vraisinon Ð arg minjPN,cją0p

aıj

cjq

δx Ð SOLUTION(Bδx “ N)x Ð

δxı

xB Ð xB ´ xδxt Mises-à-jour diverses u

rrB | N ss Ð rrB Y tuztıu | N Y tıuztussB´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 demettre à jour les vecteurs cN plutôt que de les recalculer à partir d’un π réobtenu par lesystème d’équations.

Algorithme 4.1: Simplexe dual révisé.

120 CHAPITRE 4. DUALITÉ

b ““

´3 4 12‰

(4.11)

A “»

3 ´1 1 ´2 0 02 1 0 1 1 0´1 3 0 ´3 0 1

fi

fl (4.12)

B´1 “»

1 0 00 1 00 0 1

fi

fl (4.13)

iB ““

3 5 6‰

(4.14)

iN =“

1 2 4‰

(4.15)

Itération 1

1. xB ““

´3 4 12‰

2. π “ cBB´1

0 0 0‰

(4.16)

3. cN “ cN ´ πN ““

11 11 1‰

4. choix de la ligne : 1 dans 1..m5. δc “ B´1ri, :sA “

3 ´1 1 ´2 0 0‰

6. choix de la colonne (test du ratio) : 47. La nouvelle base est

4 5 6‰

Matrice utilisée pour le calcul du pivot :»

1 0 0 ´20 1 0 10 0 1 ´3

fi

fl

4.2. ALGORITHME DUAL DU SIMPLEXE 121

8. B´1 “»

´12 0 012 1 0´32 0 1

fi

fl

Itération 2

1. xB ““ 3

252

332

2. π “ cBB´1

´12 0 0

(4.17)

3. cN “ cN ´ πN ““ 25

2212

12

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 “»

3 ´1 1 ´2 0 02 1 0 1 1 0´1 3 0 ´3 0 1

fi

fl (4.20)

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

2212

12 0 0 0

bt ““ 3

252

332

122 CHAPITRE 4. DUALITÉ

A “»

´32

12

´12 1 0 0

72

12

12 0 1 0

´112

92

´32 0 0 1

fi

fl

Itération 2

Solution otimale

4.2.4 Deux phasesOn 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 pournotre exemple du triangle, on a une option : mettons des coûts bidon positifs, utilisons lesimplexe 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 lesimplexe primal.

Tableau initial :»

1 ´1 0 0 0´2 ´1 1 0 ´21 3 0 1 3

fi

fl (4.23)

Tableau avec coût bidon positif :»

1 1 0 0 0´2 ´1 1 0 ´21 3 0 1 3

fi

fl (4.24)

première itération du simplexe dual

solution primal-réalisable :»

0 12

12 0 ´1

1 12

´12 0 1

0 52

12 1 2

fi

fl (4.25)

remettons le coût :»

1 ´1 0 0 01 1

2´12 0 1

0 52

12 1 2

fi

fl (4.26)

4.3. UN LIEN AVEC LA THÉORIE DES JEUX 123

forme canonique :»

0 ´32

12 0 ´1

1 12

´12 0 1

0 52

12 1 2

fi

fl (4.27)

première itération du simplexe primal

solution maintenant réalisable et optimale :»

0 0 45

35

15

1 0 ´35

´15

35

0 1 15

25

45

fi

fl (4.28)

Une phase I primale-phase II duale

Exercice 4.2.5 [Phase I primale—phase II duale] Reprenez l’exemple en utilisant unmembre de droite bidon pour faire une phase I primale, puis remettre le membre de droiteoriginal et compléter la solution par une phase II duale.

4.3 Un lien avec la théorie des jeuxDans 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 lesquellesdeux instances (joueurs) choisissent des stratégies à tour de rôle. Le théorème fondamentalde la théorie des jeux est une conséquence du théorème de dualité en optimisation linéaire.

4.3.1 Un exemple simplisteNous 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ècheles ciseaux. Si les choix des joueurs sont égaux, on annule. Autrement, un des joueurs gagnep`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 joueursensé n’utiliserait une stratégie pure, car l’autre s’en apercevrait, et aurait gain de causepour la suite des tours.

On appelle stratégie mixte une combinaison de stratégies pures, habituellement tirées auhasard, 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 , pCq de probabilités de choisirR, 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’autrecolonne par colonne. Pour le jeu RPC, la matrice A est la suivante :

R P CR 0 1 ´1P ´1 0 1C 1 ´1 0

(4.29)

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 Aijxiyj correspond à la moyenneattendue des gains.

Pour ce jeu simpliste, il semble évident qu’aucun des joueurs n’a d’avantage, qu’à longterme, les pertes et les gains vont s’équilibrer, et que cette uniformité assure que la stratégiemixte 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 CR 0 1 ´2P ´3 0 4C 5 ´6 0

(4.30)

Quelle est alors la stratégie optimale des 2 joueurs ? Le jeu est-il toujours équitable dans lesens 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èmefondamental de la théorie des jeux.

La matrice des gains s’interprète comme suit. Supposons que le joueur x utilise la stratégiepure R, p1, 0, 0qt ; Ax “ p0,´1, 1qt, ce qui fait que le joueur y devrait normalement utiliserla stratégie pure P p0, 1, 0q. Maintenant, intuitivement, pour le jeu original, la stratégieoptimale 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 puisqueson 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 optimalepar la solution du problème linéaire

miny yAxsujet à ye “ 1

y ě 0.(4.31)

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 composantessont 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 maximiseses gains. Puisque le joueur y définit sa stratégie par le problème linéaire (4.31), le joueur xdevra maximiser la fonction

maxx miny yAxsujet à ye “ 1

etx “ 1x, y ě 0.

(4.32)

É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. Soientdonc ei les stratégies pures, le joueur x doit

maxxpmini etiAxqsujet à etx “ 1

x ě 0.(4.33)

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 vsujet à v ď etiAx @i

etx “ 1x ě 0,

(4.34)

ou encoremax vsujet à ve ď Ax

etx “ 1x ě 0.

(4.35)

126 CHAPITRE 4. DUALITÉ

Finalement ramenons le tout ainsimax p0 1q

`

xv

˘

sujet àˆ

´A eet 0

˙

`

xv

˘ ď

`01

˘

x ě 0,v libre.

(4.36)

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

miny maxx yAxsujet à ye “ 1

etx “ 1x, y ě 0,

(4.37)

ce qui peut se ramener à la forme :

min py uq`0

1

˘

sujet à py uq

ˆ

´A eet 0

˙

t ě “ up0 1q

y ě 0,u libre.

(4.38)

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 to12 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 joueury. Complétez l’exercice en formulant un modèle générique du joueur y en Ampl en imitantle 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 desjeux.

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

maxx

y˚Ax “ minyyAx˚.

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{3qtet y “ p1{3, 1{3, 1{3q. La valeur des problèmes est 0, on parle alors d’un jeu matriciel à sommenulle. 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. Lesstraté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, etvérifiez que la valeur du jeu est ´ 8

51 . À la fin du chapitre, on retrouve l’exécution sousforme de tableau de l’algorithme du simplexe pour calculer la stratégie x˚ optimale pour lejeu RPC Roche-Papier-Ciseaux. Examinez la solution et déduisez-en la stratégie optimaley˚. Pour être bien certain que vous avez déniché le bon y˚, vérifiez que y˚A “ ´ 8

511, lavaleur 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 joueury optimiser le joueur y et constatez que vous aviez le bon y˚. Ampl affiche ses résultats envirgule flottante, il faut convertir avec les fractions, 8

51 « 0.1568627451.

128 CHAPITRE 4. DUALITÉ

Exercice 4.3.6 [Jeu simple] Deux joueurs cachent une piece de monnaie, un 5 ou un 10sous. Si elles sont pareilles, le joueur A empoche les 2, autrement le joueur B empoche les2. Pour chacune de ces variantes, déterminez qui a l’avantage dans ce jeu et donnez lesstraté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 lequelchaque joueur montre un ou deux doigts. Si la somme S est paire, le joueur A gagnealors 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 produitdes 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), ilsannoncent un chiffre pour prédire la somme des doitgs. Le seul cas où un joueur fait despoints est lorsqu’il est le seul à avoir prédit la bonne somme et la dite somme est aussi lenombre de points qu’il fait. Si les deux ont prédit la bonne somme, ils font 0, de mêmeque 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 gainface à 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ûtsmodifié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 “

»

0 ´1 2 1 ´1 1 0 0 03 0 ´4 1 ´1 0 1 0 0´5 6 0 1 ´1 0 0 1 01 1 1 0 0 0 0 0 1

fi

ffi

ffi

fl

(4.41)

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 ““

0 ´1 ´73

13

´13 0 1

3 0 0‰

(4.44)bt “

0 0 0 1‰

(4.45)A “

»

0 ´1 2 1 ´1 1 0 0 01 0 ´4

313

´13 0 1

3 0 00 6 ´20

383

´83 0 5

3 1 00 1 7

3´13

13 0 ´1

3 0 1

fi

ffi

ffi

fl

(4.46)

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 ““

0 ´136 0 3

2´32

76

13 0 0

(4.49)

130 CHAPITRE 4. DUALITÉ

bt ““

0 0 0 1‰

(4.50)

A “»

0 ´12 1 1

2´12

12 0 0 0

1 ´23 0 1 ´1 2

313 0 0

0 83 0 6 ´6 10

353 1 0

0 136 0 ´3

232

´76

´13 0 1

fi

ffi

ffi

fl

(4.51)

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 ““

0 0 0 518

´518

318

2716

1316 0

(4.54)

bt ““

0 0 0 1‰

(4.55)

A “»

0 0 1 138

´138

98

516

316 0

1 0 0 52

´52

32

34

14 0

0 1 0 94

´94

54

58

38 0

0 0 0 ´518

518

´318

´2716

´1316 1

fi

ffi

ffi

fl

(4.56)

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

512051

617

851

(4.60)

A “»

0 0 1 0 0 751

´217

´151

1351

1 0 0 0 0 ´151

334

´7102

2051

0 1 0 0 0 ´217

134

334

617

0 0 0 ´1 1 ´3151

´934

´13102

851

fi

ffi

ffi

fl

(4.61)

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 “

0 0 0 0 0 3151

934

13102

(4.64)

bt ““ 13

512051

617

851

(4.65)

A “»

0 0 1 0 0 751

´217

´151

1 0 0 0 0 ´151

334

´7102

0 1 0 0 0 ´217

134

334

0 0 0 ´1 1 ´3151

´934

´13102

fi

ffi

ffi

fl

(4.66)

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 dualrésultant, nous avons constaté que le dual du dual est le primal de départ. Nous avons ensuitepré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 dedualité. Il n’y en a pas un qui mérite le titre de primal, mais on en désigne un comme primalarbitrairement.

132 CHAPITRE 4. DUALITÉ

Ensuite, nous avons proposé un algorithme utilisant encore les tableaux du simplexemais avec des règles différentes de l’algorithme du simplexe que nous nommons désormaisalgorithme primal. L’algorithme dual maintient toujours que c “ c ´ πA ě 0. L’algorithmedual consiste en les étapes suivantes :

1. choisir une ligne ı selon un terme négatif du vecteur B´1b, 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´1b ě 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 nonborné.

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 lorsqueB´1b ě 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 remettrela 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´1b 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´1b ;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éoriedes jeux.

Pour compléter, mentionnons qu’une grande partie de la popularité de l’optimisationliné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 contraintesdiététiques aix ě 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 deses pilules de telle sorte que, compte tenu de la demande en nutriments b, il maximise sonprofit πb tout en s’assurant que le coût des nutriments contenus dans chacun des l’alimentne dépasse pas le coût de l’aliment πAj ď cj.

4.5 Tous les exercices du chapitresExercice (4.1.1, page 110) [Dualité] Considérez le problème linéaire suivant

min cxsujet à Ax ď b

x ě 0,

et vérifiez que son dual est

max ybsujet à 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 del’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 utilisantla table 4.1.

min x1 ´ x2 ´ 2x3 ` 3x4sujet à 2x3 ´ x4 ď 1

x3 ´ 3x4 ď ´12x1 ` x2 ě 2x1 ` 3x2 ď 3x1 , x2 , x3 , x4 ě 0,

(4.69)

134 CHAPITRE 4. DUALITÉ

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

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

min c1x1 ` c2x2

sujet à A11x1 ` A12x2 ď b1

A21x1 ` A22x2 “ b2

x1 ě 0,

où A est une matrice pm1 `m2q ˆ pn1 ` n2q 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èmepour 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 programmesduaux 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 propredual :

min c1x1 ´ c2x2sujet à Atx2 ď ct1

Ax1 “ ct2x1 ě 0

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

min ´2x1 ´ x2sujet à x1 ` 8

3x2 ď 4x1 ` x2 ď 2

2x1 ď 3,

4.5. TOUS LES EXERCICES DU CHAPITRES 135

etmax x1 ` 2x2sujet à 2x1 ` x2 ě 4

x1 ` x2 ď 8´x1 ` x2 ď 4x1 ď 5x1 , x2 ě 0.

Pour chacun,a) Résoudre graphiquementb) É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 sitehttps://vanderbei.princeton.edu/JAVA/pivot/simple.htmlcomporte un générateur de problèmes aléatoires et on peut spécifier s’il s’agit de problèmesprimal réalisables ou dual réalisable. Le même outil référé précédemment comporte un bugpour la génération de problèmes duaux. Attention, les problèmes sont des problèmes demaximisation. Faites des essais jusqu’à ce que vous puissiez résoudre au moins cinq problèmesdual 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-lespar 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 del’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 membrede 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 Amplen 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-tégies, et vérifiez que la valeur du jeu est ´ 8

51 . À la fin du chapitre, on retrouve l’exécutionsous forme de tableau de l’algorithme du simplexe pour calculer la stratégie x˚ optimale pourle jeu RPC Roche-Papier-Ciseaux. Examinez la solution et déduisez-en la stratégie optimaley˚. Pour être bien certain que vous avez déniché le bon y˚, vérifiez que y˚A “ ´ 8

511, la valeurdu 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 votremodèle du joueur y optimiser le joueur y et constatez que vous aviez le bon y˚. Ampl afficheses résultats en virgule flottante, il faut convertir avec les fractions, 8

51 « 0.1568627451.

Exercice (4.3.6, page 128) [Jeu simple] Deux joueurs cachent une piece de monnaie, un5 ou un 10 sous. Si elles sont pareilles, le joueur A empoche les 2, autrement le joueur Bempoche les 2. Pour chacune de ces variantes, déterminez qui a l’avantage dans ce jeu etdonnez 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 joueurmontre un ou deux doigts. Si la somme S est paire, le joueur A gagne alors que si elle estimpaire, 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 desnombres 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 montrentsimultané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 despoints est lorsqu’il est le seul à avoir prédit la bonne somme et la dite somme est aussi lenombre de points qu’il fait. Si les deux ont prédit la bonne somme, ils font 0, de même quesi 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 possiblessont 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’estimpossible. É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 à lastratégie x˚. On constate que la structure de x˚ est xpαq “ p0, α, p1´αq, 0qt. Déterminezles conditions sur α pour que Axpαq ě 0. Toute valeur de xpαq avec α respectant cescondition constitue une stratégie optimale pour le joueur x.

138 CHAPITRE 4. DUALITÉ

Chapitre 5Convergence de l’algorithme du simplexe

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

Sujets du chapitre

139

140 CHAPITRE 5. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE

IntroductionNous 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 cechapitre les difficultés associées à cette dégénérescence.

5.1 DégénérescenceJusqu’à 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 uniquedans 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 composantesde xB sont nulles.

‚ Une solution de base xB est dite dual dégénérée lorsque une ou plusieurs composantesde 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éalisablede 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 puissetrouver une autre décomposition rrB | N ss décrivant la même solution réalisable xB puisquesa composante nulle n’appartient pas naturellement aux composantes B. Dans le secondcas, 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 dechanger de partition rrB | N ss n’entraîne pas de diminution de la fonction objectif, et il fautraffiner 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èglepermettant 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éairesnÿ

i“1xij “ 1, j “ 1, 2, . . . n

nÿ

j“1xij “ 1, i “ 1, 2, . . . n

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émentpour 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´7.8x1 ´1.4x2 `7.8x3 `0.4x4 ď0

(5.1)

En utilisant les tableaux pour représenter les itérations, après avoir ajouté des variablesx5 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 01 0.5 ´3.5 ´0.5 2.5 0

2.5 ´19.5 ´3.5 19.5 1 0Ici, la seconde colonne a le coût le plus faible les deux lignes ont un élément positif et unquotient nul ; comme souvent, on choisit la ligne avec le plus gros élement invoquant lameilleure 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 01 ´7.8 ´1.4 7.8 0.4 0

Maintenant, on peut observer que ce troisième tableau est un simple décalage circulaire (dedeux colonnes) du premier. Par conséquent, après deux autres itérations, nous retrouveronsun tableau encore décalé de deux colonnes, et finalement après un total de six itération, nousretrouverons le tableau initial.

Il devrait être clair que les règles utilisées pour déterminer les variables entrantes etsortantes influencent le comportement de l’algorithme du simplexe, et que l’exemple decyclage précédent ne vaut que pour notre règle d’entrer la variable de coût réduit minimumet 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 lesrègles d’entrée et de sorties, aucun pivot ne change de valeur de x, mais les pivots changentuniquement la décomposition rrB | N ss.

5.3 Règles d’anti-cyclagePour 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égiepour 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 ă0 : “ mintj : cj´zj ă 0u. La variable sortante est la première à atteindre le mini:δxią0p

xi

δxiq :

ı “ minti : p xi

δxiq ď p

xk

δxkq@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 devecteurs.

Définition 5.3.2 [Ordre lexicographique] Un vecteur v P Rn est dit lex-positif, noté vLě 0

si sa première composante non-nulle est positive ; v “ 0 est lex-zéro, noté v L“ 0.

Utilisant cette définition, on peut comparer deux vecteurs par l’équivalence vLě u ðñ

v ´ uLě 0, et définir le lex-min d’un ensemble de vecteurs tviu comme celui (ou ceux) pour

lesquels viLě vı, @i.

La règle de pivot lexicographique consiste à choisir parmi les indices i qui atteignent lemini:δxią0p

xi

δxiq celle dont la ligne complète pB´1Nqi est lex-min de toutes les lignes telles que

δxi “ pB´1Nqi ą 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 dela matrice A soient lex-positives : ai

Lě 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 A “ B´1rb : As, lamatrice transformée dont les lignes sont ai. ı satisfait

aıaı

Lăaiai, @i : ai ą 0.

Remarquons que sous l’hypothèse que A est de rang m, aucune paire de lignes de A n’estproportionnelle, et donc l’indice ı ainsi défini est unique. Remarquons également qu’il esttoujours possible de démarrer l’algorithme du simplexe de sorte que les lignes de la matriceA 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 surl’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, permettantque pour chacune des deux phases, le tableau initial comporte des lignes lex-positives.

5.4 Convergence finie de l’algorithme du simplexeNous 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 dontles lignes sont lex-positives. En appliquant la règle lexicographique, (i) les lignes de la matriceA “ B´1rb, 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 ıèmeligne devient

a1ı “aıaı

avec aı ą 0 de sorte que aı demeure lex-positive. Lorsque i ­“ ı, distinguons deux cas.‚ ai ą 0 ; dans ce cas,

a1i “ ai ´aiaıaı

“ ai

ˆ

aiai´aıaı

˙

ě 0

par choix lexicographique.‚ ai ď 0 ; dans ce cas,

a1i “ ai ´aiaıaı

“ ai `|ai|aıaı

Lě ai

Enfin, examinons l’effet d’un pivot sur la “ligne 0” d’un tableau. Cette ligne est composéede r´cBxB, c´ cbB´1As. Notons cette ligne par a0. On peut montrer qu’un pivot transformela ligne 0 en

a10 “ a0 ´a0aıaı

“ a0 `|a0|aıaı

Lą a0

5.5. RÉSUMÉ 145

puisque par hypothèse a0 ă 0 (critère d’entrée) et toutes les lignes sont lex-positives. Parconséquent l’algorithme ne peut pas cycler, car il ne peut pas réexaminer deux fois une mêmebase. 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 avecdes 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, doncla seule possibilité est de terminer avec des coûts relatifs non-négatifs. Ceci démontre lethé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 unerègle d’anti-cyclage, rrB | N ss la partition optimale et π˚ “ cBB

´1 les multiplicateurs associés.Alors, les coûts relatifs c ´ π˚N sont non-négatifs. Par conséquent, π˚ est une solutionréalisable pour le dual. De plus, π˚b “ cBB

´1b “ cBx˚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 necycle pas, ce qui permet de garantir sa terminaison en un point satisfaisant les conditionsné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 voitla valeur égale à zéro (rB´1bsi “ 0). On parle de dégénérescence primale. La dégénérescenceduale est associée à une composante j P N telle que cj “ 0. Dans les deux cas, il y a moyend’échanger deux indice entre B et N et obtenir le même point x mais pas la même partitionde base.

146 CHAPITRE 5. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE

L’algorithme (primal) du simplexe consiste à parcourir les solutions de base réalisablejusqu’à détecter la non-réalisabilité duale, équivalente à la non-bornitude primale puisquetoutes 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 fonctionobjectif décroît strictement et l’algorithme est assuré de terminer puisque le nombre desolutions 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 possibled’empêcher ce phénomène en utilisant une règle d’anti-cyclage. La règle de Bland est la plussimple de ces règles et consiste à choisir la colonne j comme étant le premier indice descj ă 0 (et non pas l’indice associé à la composante la plus négatie) et si deux (ou plus) lignesatteignent le ratio minimum dans le choix d’une ligne, choisir celle d’indice minimal (dansl’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 terminetoujours, 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éairesnÿ

i“1xij “ 1, j “ 1, 2, . . . n

nÿ

j“1xij “ 1, i “ 1, 2, . . . n

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émentpour 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 lasection 5.2 ; avec chacune des deux règles d’anti-cyclage présentées à la section 5.3, effectuezsuffisamment 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èmeliné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 duthé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 6Analyse de sensibilité

‚ Analyse de sensibilité.‚ Analyse post optimale.‚ Algorithme paramétrique.

Sujets du chapitre

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 desquestions 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, onprécise la question en demandant “jusqu’à quel point peut-on augmenter le coût de telleressource sans que le programme de production ne change”. Ce degré d’augmentation seformulera à l’aide d’un paramètre et on s’intéressera à analyser la plage du paramètre quiassure 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.

minxPR2

´1.5x1 ´ x2

sujet à x1 ` x2 ď 4002x1 ` x2 ď 600

x2 ď 300x1, x2 ě 0

dont le tableau optimal est

x1 x2 x3 x4 x50 0 1

212 0 500

0 1 2 ´1 0 2001 0 ´1 1 0 2000 0 ´2 1 1 100

(6.1)

On peut voir dans ce tableau que les variables de base optimales sont B “ t2, 1, 5u, la matrice

B “

¨

˝

1 1 01 2 01 0 1

˛

‚et son inverse B´1 “

¨

˝

2 ´1 0´1 1 0´2 1 1

˛

‚.

6.1. UN EXEMPLE 151

Modification des données de b

Posons-nous quelques questions, que se passerait-il si ?

‚ Si la première contrainte était ď 100, les variables de base seraient alors B´1

¨

˝

100600300

˛

‚“

¨

˝

´400500700

˛

‚ et la solution de base ne serait pas réalisable. On pourrait utiliser l’algorithme

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 contraintetout en maintenant la base courante réalisable ? Écrivons que le membre de droite est¨

˝

400600300

˛

‚`µ

¨

˝

´100

˛

‚. On peut calculer, fonction du paramètre µ, la solution de base xBpµq “

B´1

»

¨

˝

400600300

˛

‚` µ

¨

˝

´100

˛

fi

fl “ xBp0q ` µB´1

¨

˝

´100

˛

‚“

¨

˝

200200100

˛

‚` µ

¨

˝

´212

˛

‚. On retrouve une

situation connue depuis longtemps sur l’intersection d’un rayon de droite avec l’orthantpositif. Dans ce cas particulier, on retrouve que la solution de base demeure réalisable pourles valeurs ´50 ď µ ď 100.

Modification des données de c

‚ Si les coûts ´p32 , 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 ´cBB

´1N “ p´1, 3q et donc la base ne serait pas optimale. On pourrait utiliser l’algorithmeprimal 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 “´p3

2 , 1q ´ µp72 , 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 pasoptimale. Écrivons (attention, B inverse les indices 1 et 2) cBpµq “ ´p1, 3

2 , 0q ´ µp1, 72 , 0q

et cN ´ cBpµqB´1N “ p1

2 ,12q ` µp1, 7

2 , 0qB´1N “ p1

2 ,12q ` µp´3

2 ,52q. On peut conclure que

si ´13 ď µ ď 1

5 , la base courante demeure optimale.

Exercice 6.1.1 [Interprétation géométrique de l’analyse de sensibilité] En vous inspirantde 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 decoefficients A¨,n`1 ainsi qu’une nouvelle valeur cn`1. La solution de base optimale demeure unesolution de base réalisable, mais pas forcément optimale. Il faut calculer cn`1 “ cn`1´πA¨,n`1.Si cn`1 ě 0, la solution de base demeure optimale. Dans le cas contraire, on peut utiliserl’algorithme primal du simplexe pour obtenir la solution optimale.

Reprenons l’exemple en ajoutant une vartiable x6 avec c6 “ 1 et la colonne a¨6 “ p2, 3, 4qt.

On calcule B´1a¨6 “

¨

˝

113

˛

‚ et c6 “ c6 ´ cBB´1a¨6 “

72 ą 0, donc la solution sous la main

demeure optimale. Si on avait eu c6 “ ´3, alors c6 “ ´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é decet exemple.

Ajout d’une contrainte

Si on ajoute une contrainte à un modèle déjà résolu, c’est ajouter une nouvelle lignede coefficients am`1,¨ ainsi qu’une nouvelle valeur bm`1. Si la contrainte est satisfaite par lasolution de base optimale, elle demeure une solution optimale et réalisable. Cependant, cen’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 letableau sous forme canonique (en annulant les colonnes de B de la nouvelle ligne) et utiliserl’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 x60 0 1

212 0 0 500

0 1 2 ´1 0 0 2001 0 ´1 1 0 0 2000 0 ´2 1 1 0 1001 2 0 0 0 1 500

(6.2)

6.1. UN EXEMPLE 153

Ce tableau n’est pas sous forme canonique, il faut introduire des zéros dans la nouvellecontrainte aux positions 1 et 2.

x1 x2 x3 x4 x5 x60 0 1

212 0 0 500

0 1 2 ´1 0 0 2001 0 ´1 1 0 0 2000 0 ´2 1 1 0 1000 0 ´3 1 0 1 ´100

(6.3)

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 ` 3x3sujet à x1 ` 3x2 ` 4x3 ď 30

x1 ` 4x2 ´ x3 ď 10x1 , x2 , x3 ě 0.

On arrive au tableau optimal suivant incluant les variables d’écart x4 et x5.

x1 x2 x3 x4 x50 1 1 0 2 200 ´1 5 1 ´1 201 4 ´1 0 1 10

(6.4)

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 dunouveau problème.

c) On change les coefficients pc3, a13, a23qt “ 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, a26qt “ 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 ` 2x4sujet à x1 ` 3x2 ´ x3 ` 2x4 ď 7

´x1 ´ 2x2 ` 4x3 ď 12´x1 ´ 4x2 ` 3x3 ` 8x4 ď 10x1 , x2 , x3 , x4 ě 0.

Le tableau associé à la solution optimale est le suivant (x5, x6 et x7 sont des variablesd’écart).

x1 x2 x3 x4 x5 x6 x775 0 0 12

515

45 0 11

310 1 0 4

525

110 0 4

´ 110 0 1 2

515

310 0 5

12 0 0 10 1 ´1

2 1 11

(6.5)

a) De quelle quantité faut-il modifier le coût c4 pour qu’il devienne avantageux de rendrex4 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 solutionoptimale.

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 nouveauproblème ? Si non, déterminez la solution optimale.

Exercice 6.1.6 [Sensibilité] Une compagnie fabrique trois produits A, B et C. On neconsidère que deux ressources principales, mati‘eres premières et main d’oeuvre. L’objectifde la compagnie est de minimiser ses coûts de production. Supposons que son problèmese modélise ainsi, avec la première contrainte spécifiant les limites de main d’oeuvre et laseconde de matières premières.

min ´3x1 ´ x2 ´ 5x3sujet à 6x1 ` 3x2 ` 5x3 ď 45

3x1 ` 4x2 ` 5x3 ď 30x1 , 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 aboutitau tableau optimal suivant. La première ligne est le vecteur c original et la seconde la lignedes coûts du tableau final.

x1 x2 x3 x4 x5´2 ´3 ´1 0 0

0 0 4 3 4 81 0 1 3 ´1 10 1 1 ´1 2 2

(6.6)

156 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse dela 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 aboutitau tableau optimal suivant. La première ligne est le vecteur c original et la seconde la lignedes coûts du tableau final.

x1 x2 x3 x4 x5´2 ´3 ´1 0 0

0 0 3 3 1 81 0 ´1 3 ´1 10 1 2 ´1 1 2

(6.7)

On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse dela 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 et réalisable si le

vecteur b est remplacé par b` λ` 1´1

˘

. Résoudre le problème pour λ “ 12 .

c) Trouvez une solution optimale si une nouvelle contrainte x1 ` x3 ě 2 est ajoutée auproblè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 quel’analyse de sensibilité, nous avons les outils pour définir une variante très intéressante del’algorithme du simplexe. Cette variante ne nécessite pas que la solution de base initiale soitprimal 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 xB “ B´1b et cN “ πN ´ cN où πB “ cB. Si lasolution était primal réalisable, on aurait xB ě 0 et si elle était dual-réalisable, on auraitcN ě 0. Puisque ce n’est possiblement pas le cas, ajoutons une perturbation positive xB ą 0et cN ą 0 de sorte que dans le problème perturbé que nous considérons, xB “ xB ` µxB etcN “ cN `µcN . Il est clair que nous pouvons choisir µ assez grand pour que la base courantesoit optimale (primal-réalisable et dual-réalisable) pour le problème perturbé. L’algorithmeconsiste 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µ : cN ` µcN ě 0 et xB ` µxB ě 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 cj ` µ˚0 cj “ 0, soit on a un indice i P B tel quexi ` µ

˚0 xi “ 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 pivotdual. Après le pivot, on aura de nouvelles valeurs de xB, cN , xB, cN , 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 ´ x2sujet à 2x1 ` x2 ě 2

x1 ` 3x2 ď 3x1 , x2 ě 0

158 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

On obtient un tableau de départ

x1 x2 x3 x41 ´1 0 0 0

´2 ´1 1 0 ´21 3 0 1 3

auquel on ajoute un paramètre µ perturbant le problème ainsi en choisissant xB “ em etcn “ etn´m, où em dénote le vecteur p1, 1, ..., 1qt de dimension m. Ici, ça adonne que cN et xBsont tous deux de dimension 2.

x1 x2 x3 x41` µ ´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 sortanteest x3, et la variable entrante est x2 car ´1

´1`µ˚0ă ´2

1`µ˚0. On effectue le pivot, et obtient le

nouveau tableaux1 x2 x3 x4

3´ µ 0 µ´ 1 0 ´z2 1 ´1 0 2´ µ

´5 0 3 1 4µ´ 3Pour ce nouveau tableau, la plus petite valeur de µ pour laquelle ce tableau est optimal etré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. Pourcette valeur, la variable entrante est x3, et la variable sortante est x4. On effectue le pivot,et obtient le nouveau tableau

x1 x2 x3 x44{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 etré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 lenouveau tableau

x1 x2 x3 x40 0 4{5` 2µ{5 3{5´ µ{5 ´z0 1 1{5 2{5 4{5` 3µ{51 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 denotre problème est donc

x1 x2 x3 x40 0 4{5 3{5 ´z0 1 1{5 2{5 4{51 0 ´3{5 ´1{5 3{5

Exercice 6.2.1 [Valeur de z] Complétez le tableau pour avoir une expression de la valeurde ´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 x4 x52µ´ 1 0 3´ µ 0 0

´1 1 1 0 0 µ´ 1´3 0 2 1 0 3µ´ 4´1 0 ´1 0 1 2

(6.9)

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étriquet Données : une partition rrB | N ss de Rn, une représentation ut de la matrice B´1. uµ˚ Ð max

´

maxjPN,cją0´cj

cj,maxiPB,xią0´

xi

xi

¯

tantque (µ˚ ą 0 _ non_borné _ vide )si (Primal ) alorsδx Ð SOLUTION(Bδx “ N)t Choix d’une variable sortante usi (δx ď 0 ) alors non_borné Ð vraisinon ı Ð arg maxiPBp δxi

xi`µ˚xiq

sinont Dual ut Production de la ligne ı u

aı Ð peTı B´1qN

t Choix d’une variable entrante usi (aı ě 0 ) alors vide Ð vraisinon Ð arg minjPNp aıj

cj`µ˚cjq

δx Ð SOLUTION(Bδx “ N)

x Ðxı

δxı; xB Ð xB ´ xδx

x Ðxı

δxı; xB Ð xB ´ xδx

t Mises-à-jour diverses urrB | N ss Ð rrB Y tuztıu | N Y tıuztussB´1 Ð Mise_à_jourpB´1, rrB | N ss, ı, q

t Production d’un vecteur de coûts réduits uπ Ð SOLUTION(πB “ cB); π Ð SOLUTION(πB “ cB)zN Ð πN ; zN Ð πNcN Ð cN ´ zN ; cN Ð cN ´ zN

µ˚ Ð max´

maxjPN,cją0´cj

cj,maxiPB,xią0´

xi

xi

¯

xB Ð x

Ici encore, on peut mettre à jour les cN et cN , et bien entendu, les solutions et mises-à-jourde 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étriquepour résoudre les problèmes suivants.a)

min 2x1 ´ 3x2sujet à ´x1 ` x2 ď ´1

´x1 ´ 2x2 ď ´2x2 ď 1

x1 , x2 ě 0.

b)min ´3x1 ` x2sujet à x1 ´ x2 ď 1

´x1 ` x2 ď ´4x1 , x2 ě 0.

c)min ´2x1 ` 6x2sujet à ´x1 ´ x2 ´ x3 ď ´2

2x1 ´ x2 ` x3 ď 1x1 , x2 , x3 ě 0.

6.3 Anti-cyclage probabilisteUne 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 bi

Aiségaux,

et que l’une d’elle est choisie comme variable sortante. Alors, les 2 deviennent nulles enmê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 laterminaison de l’algorithme. Une manière d’y parvenir est de remplacer le vecteur b par uneperturbation b` r, où r est un vecteur de dimension m dont les composantes sont aléatoireset 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 duproblème original.

Une alternative est rendue possible par l’algorithme auto dual paramétrique. Rappelonsque 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 quel’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 avecun tableau initial sous forme canonique, dans lequel on remplace le vecteur c “ c par unvecteur paramétrique c ` µεc et le vecteur b “ b par un vecteur paramétrique b ` µεb. εcet εb sont des vecteurs de même dimension que c et b respectivement, dont les composantessont aléatoires, uniformes entre 1{2 et 3{2, disons. Alors, la plus petite valeur de µ pourlaquelle le tableau initial est optimal et réalisable est µ0 ě maxp´mini ci

εci,´minj bj

εbj, 0q.

L’utilisation des vecteurs εc et εb assurent qu’une seule valeur de b ` µ0εb ou c ` µ0εc nevaut 0 (avec probabilité un). Si c’est une valeur de c ` µ0εc, on effectue un changement debase avec cette composante comme variable entrante à l’aide d’une itération de l’algorithmeprimal du simplexe. Autrement, c’est une valeur de b ` µ0εb qui est nulle, et on fait sortirla composante correspondante de la base à l’aide d’une itération de l’algorithme dual dusimplexe. On trouve alors une valeur µ1 au delà de laquelle ce nouveau tableau est réalisableet 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 estréalisable et optimal pour tout µ P rµk`1, µks, et cet intervalle contient µ “ 0, donc le tableauest 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 ausside 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ûtc, du membre de droite b ou même de la matrice A, il est possible que la base optimaleet réalisable demeure optimale et réalisable. Si ce n’est pas le cas, selon quel paramètre estmodifié, 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 ellen’est pas réalisable (dual-optimale), restaurer la réalisabilité avec l’algorithme dual dusimplexe ;

‚ modification de A : si on modifie des éléments associés aux variables de la base, toutchangera et il vaut mieux résoudre le problème à nouveau. Si les éléments modifiés sonthors-base, on peut recalculer cN “ cN ´ cBB

´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 simplexepour 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 pourgarantir 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 etréalisable et progressivement réduire le paramètre µ jusqu’à 0 qui nous donnera une solutionde base optimale et réalisable. La réduction passe par des itérations de simplexe primal oudual ; s’il n’est pas possible de réduire µ à zéro, ce sera parce que une itération primale aexhibé 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 supposejamais la réalisabilité primale ou duale, la non-réalisabilité de l’un n’entraîne pas forcémentla non-bornitude de l’autre.

6.5 Extensions et références

6.6 Tous les exercices du chapitresExercice (6.1.1, page 151) [Interprétation géométrique de l’analyse de sensibilité] Envous inspirant de la figure 2.5, interprétez géométriquement les résultats de l’analyse cihaut.

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 laréalisabilité de cet exemple.

Exercice (6.1.4, page 153) [Sensibilité] Soit le problème

min ´2x1 ´ 7x2 ` 3x3sujet à x1 ` 3x2 ` 4x3 ď 30

x1 ` 4x2 ´ x3 ď 10x1 , x2 , x3 ě 0.

On arrive au tableau optimal suivant incluant les variables d’écart x4 et x5.

x1 x2 x3 x4 x50 1 1 0 2 200 ´1 5 1 ´1 201 4 ´1 0 1 10

(6.10)

a) Donnez un intervalle de variation du coût c1 pour que la solution au tableau (6.10) demeureoptimale.

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éalisableet optimale ? Justifiez. Si non, déterminez une solution réalisable et optimale du nouveauproblème.

c) On change les coefficients pc3, a13, a23qt “ 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, a26q

t “ 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 ` 2x4sujet à x1 ` 3x2 ´ x3 ` 2x4 ď 7

´x1 ´ 2x2 ` 4x3 ď 12´x1 ´ 4x2 ` 3x3 ` 8x4 ď 10x1 , 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 x775 0 0 12

515

45 0 11

310 1 0 4

525

110 0 4

´ 110 0 1 2

515

310 0 5

12 0 0 10 1 ´1

2 1 11

(6.11)

a) De quelle quantité faut-il modifier le coût c4 pour qu’il devienne avantageux de rendre x4positive ?

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 solutionoptimale.

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 etC. 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 sonproblème se modélise ainsi, avec la première contrainte spécifiant les limites de main d’oeuvreet la seconde de matières premières.

min ´3x1 ´ x2 ´ 5x3sujet à 6x1 ` 3x2 ` 5x3 ď 45

3x1 ` 4x2 ` 5x3 ď 30x1 , 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 laseconde la ligne des coûts du tableau final.

x1 x2 x3 x4 x5´2 ´3 ´1 0 0

0 0 4 3 4 81 0 1 3 ´1 10 1 1 ´1 2 2

(6.12)

On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse de labase 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 ? Trouvezune 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 laseconde la ligne des coûts du tableau final.

x1 x2 x3 x4 x5´2 ´3 ´1 0 0

0 0 3 3 1 81 0 ´1 3 ´1 10 1 2 ´1 1 2

(6.13)

On suppose que les variables x4 et x5 sont des variables d’écart de sorte que l’inverse de labase 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 et réalisable si le

vecteur b est remplacé par b` λ` 1´1

˘

. Résoudre le problème pour λ “ 12 .

c) Trouvez une solution optimale si une nouvelle contrainte x1 ` x3 ě 2 est ajoutée auproblème original.

Exercice (6.2.1, page 159) [Valeur de z] Complétez le tableau pour avoir une expressionde 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 tableaufinal réalisable et optimal ?

Exercice (6.2.3, page 159) [Illustration graphique] Illustrez graphiquement les itérationsde 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 x52µ´ 1 0 3´ µ 0 0

´1 1 1 0 0 µ´ 1´3 0 2 1 0 3µ´ 4´1 0 ´1 0 1 2

(6.14)

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 ´ 3x2sujet à ´x1 ` x2 ď ´1

´x1 ´ 2x2 ď ´2x2 ď 1

x1 , x2 ě 0.

b)min ´3x1 ` x2sujet à x1 ´ x2 ď 1

´x1 ` x2 ď ´4x1 , x2 ě 0.

c)min ´2x1 ` 6x2sujet à ´x1 ´ x2 ´ x3 ď ´2

2x1 ´ x2 ` x3 ď 1x1 , x2 , x3 ě 0.

168 CHAPITRE 6. ANALYSE DE SENSIBILITÉ

Chapitre 7Quelques extensions

‚ 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.

Sujets du chapitre

169

170 CHAPITRE 7. QUELQUES EXTENSIONS

Introduction

7.1 Un algorithme de décompositionNous 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érationde colonnes. Considérons un problème de la forme

min c1x1 ` c2x2sujet à A1x1 ` A2x2 “ b0

B1x1 “ b1B2x2 “ b2

x1 , x2 ě 0

(7.1)

où x1 P Rn1 , x2 P Rn2 , b0 P Rm0 , b1 P Rm1 , b2 P Rm2 . On a donc n “ n1 ` n2 variables etm “ m0`m1`m2 contraintes. Si ce n’était pas de la contrainte couplante A1x1`A2x2 “ b0de dimension m0, on serait en présence de deux problèmes indépendants,

min c1x1sujet à B1x1 “ b1

x1 ě 0(7.2)

comportant m1 contraintes et

min c2x2sujet à B2x2 “ b2.

x2 ě 0(7.3)

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 quele domaine réalisable est en fait une combinaison convexe des sommets du polyèdre, dessolutions de base réalisables des contraintes. En effet, tout point réalisable qui ne peut pass’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 combinaisonde points réalisables. Les combinaisons de 2 points extrêmes nous donnent les arêtes dupolyè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’utiliserle résultat suivant.

Théorème 7.1.1 Soit un ensemble borné décrit par des contraintes Ax “ b, x ě 0. Soientp1, p2, . . . , pk l’ensemble des points extrêmes (solutions de base réalisables) de l’ensemble.Alors, tx : Ax “ b, x ě 0u “ tx : x “

ř

αipi,ř

α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 unpoint d’un carré peut s’exprimer comme combinaison convexe des 2 (parfois plus) trianglesqui le contiennent. On voit alors que les multiples αi qui décrivent un point d’un carré nesont pas uniques. Ces valeurs αi sont nommées coordonnées barycentriques du point. Souscertaines 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é) combinaisonsconvexes 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 plusgrand 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.

x1 “ř

αipiř

αi “ 1α ě 0

(7.4)

etx2 “

ř

βjqjř

βj “ 1β ě 0.

(7.5)

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 β, obtenantainsi le problème nommé problème maître.

minα,β c1př

αipiq ` c2př

βjqjqsujet à A1p

ř

αipiq ` A2př

βjqjq “ b0ř

αi “ 1ř

βj “ 1α ě 0

β ě 0.

(7.6)

Notre nouveau problème (7.6) comporte m0`2 contraintes comparativement à m0`m1`m2pour le problème (7.1), donc quelques pm1 `m2 ´ 2q contraintes de moins que (7.1), maiscomporte beaucoup plus de variables. L’algorithme du simplexe doit trouver une variableparmi les αi et βj profitable pour entrer dans la base. L’opération de pivot fera intervenirm0 ` 2 lignes. Pour sélectionner une variable d’entrée, il faut obtenir les coûts relatifs, doncles multiplicateurs (variables duales) du problème maître.

Les multiplicateurs seront partitionnés entre m0 composantes associées au premier blocde 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 “ c1pi, ξ est le vecteur de coût des variablesα. Similairement, µj “ c2qj, µ est le vecteur de coût des variables β. Pour les contraintes,introduisons Ψi “ A1pi et Φj “ A2qj. Les coûts relatifs de la colonne αi obéit donc à larelation

ξi “ ξi ´ py0, y1, y2q

¨

˝

Ψi

10

˛

‚“ ξi ´ y0Ψi ´ y1, (7.7)

et les coûts relatifs de la colonne βjà la relation

µj “ µj ´ py0, y1, y2q

¨

˝

Φi

01

˛

‚“ µj ´ y0Φj ´ y2. (7.8)

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 y2ne dépendent pas de i (ni de j), et donc il suffit de minimiser ξi ´ y0Ψi et µj ´ y0Φj. En sesouvenant que ξi “ c1pi et Ψi “ A1pi, on constate qu’il faut minimiser pc1´y0A1qu pour tousles points extrêmes u du domaine réalisable tx1 : B1x1 “ b1, x1 ě 0u. Or, on peut obtenircette minimisation sans connaître les pi car il suffit de résoudre

min pc1 ´ y0A1qx1sujet à B1x1 “ b1

x1 ě 0,(7.9)

et similairement pour les variables β avec le sous-problème

min pc2 ´ y0A2qx2sujet à B2x2 “ b2

x2 ě 0.(7.10)

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 parla solution des sous-problèmes (7.9) et (7.10), on parle de génération de colonne. L’algorithmegénère les colonnes pertinentes au fur et à mesure des itérations du simplexe.

7.2 Introduction aux algorithmes de point intérieurBien 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 pivotsexponentiel ( 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 dansR3 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émarred’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.

maxnÿ

i“1xi (7.11)

sujet à x1 ď1 (7.12)

2k´1ÿ

i“1xi ` xk ď2k ´ 1, k “ 2, 3, . . . , n, (7.13)

x ě0. (7.14)

On peut le convertir sous forme standard du simplexe, même sous forme canonique commesuit.

maxx,s

nÿ

i“1xi

sujet à x1 ` s1 “1

2k´1ÿ

i“1xi ` xk ` sk “2k ´ 1, k “ 2, 3, . . . , n,

x, s ě0.

Par exemple, pour n “ 3, le tableau initial correspondant à x “ 0 et s “ p1, 3, 7qt est lesuivant ; on a converti en minimisation en multipliant les coûts par moins un.

-1 -1 -1 0 0 0 01 0 0 1 0 0 12 1 0 0 1 0 32 2 1 0 0 1 7

Pour cet exemple, puisque tous les coûts cN sont égaux, prenons la convention de choisirle premier parmis ceux égaux au minimum. On vérifie que l’algorithme du simplexe prend2n ´ 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 dusimplexe 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’optimisationlinéaire. Cependant, l’algorithme des ellipsoïdes de Khachian est extrêmement inefficace enpratique.

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 algorithmede point intérieur. L’algorithme est fondé sur des notions d’optimisation non linéaire quenous ne pouvons pas utiliser ici.

Rappelons les conditions d’optimalité en remplaçant la variable duale π par une variablecolonne y “ πt et considérons que s est une colonne.

Ax “ b, (7.15)x ě 0 (7.16)

Aty ` s “ c, (7.17)s ě 0 (7.18)

stx “ 0. (7.19)

L’algorithme de point intérieur que nous présentons va considérer que x ą 0 et s ą 0, doncles variables x et s sont dans l’intérieur de l’orthant qui les contraint. Par conséquent, larelation (7.19) ne peut pas être satisfaite ; l’algorithme va tenter de calculer des points quiapproximativement satisfont xtx “ 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)Aty ` s´ c “ 0, (7.21)

sixi “ µk. (7.22)

Remarquons que tous les algorithmes du type simplexe examinaient des solutions de baseoù la relation sx “ 0 était toujours satisfaite. Les algorithmes de type point intérieur sontdonc fondamentalement différents car les itérations ne sont jamais des solutions de base.

On nomme la solution wk “ pxk, yk, xkq. En fait, on ne réussit pas à résoudre les équations,mais on s’en approche. Nommons les résidus des trois équations rpk, rdk, rck 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 lacomplémentarité perturbée. On aura donc

Axk ´ b “ rpk, (7.23)Atyk ` sk ´ c “ rdk, (7.24)

Skxk “ µk1` rck, (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 ; Skxk est le produit composante par compo-sante des vecteurs sk et xk. Maintenant, considérons le déplacement de wk “ pxk, yk, xkq àwk`1 “ pxk`1, yk`1, xk`1q, δk “ pδxk , δ

yk , δ

skq. Idéalement, nous voudrions que le prochain point

ait un résidu nul pour la valeur de µk`1.

Apxk ` δxkq ´ b “ 0, (7.26)

Atpyk ` δykq ` sk ` δ

sk ´ c “ 0, (7.27)

pSk `∆skqpxk ` δ

xkq “ µk`11, (7.28)

Sauf pour la dernière équation qui comporte un terme quadratique ∆skδxk , 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δxk “ ´rpk, (7.29)Atδyk ` δ

sk “ ´rdk, (7.30)

Skδxk `Xkδ

sk “ µk`11´ r

ck, (7.31)

que l’on peut récrire sous forme matricielle comme¨

˝

A 0 00 At ISk 0 Xk

˛

¨

˝

δxkδykδsk

˛

‚“

¨

˝

´rpk´rdk

µk`11´ rck

˛

‚ (7.32)

Un algorithme de point intérieur procède alors comme suit. On suppose donnés w0 “

px0, y0, s0q avec µ0 qui satisfont que le résidu prp0, rd0, rc0q 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δxk ě 0 et sk ` tδsk ě 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 quine sont pas considérés préalables à l’utilisation de ce texte. Espérons tout de même avoirréussi à susciter une curiosité à propos de ces algorithmes modernes qui sont utilisés avecconsidérablement de succès pour des problèmes de dimensions énormes, parlons de milliardde 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 variablesde décision comme prenant des valeurs entières et non pas réelles (continues). Nous présentonsmaintenant une introduction simpliste à deux familles de techniques permettant de résoudrede tels modèles en nombres entiers.

Considérons l’exemple

minxPR2

´5x1 ´ 8x2

sujet à x1 ` x2 ď 65x1 ` 9x2 ď 45

x1, x2 ě 0, entiers,

(7.33)

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 solutioncontinue, le point F “

p94 ,

154 q

t ; le vecteur G estl’opposé du vecteur coût, laligne en pointillés longs lafonction objectif au pointcontinu et celle en pointillécourt sa valeur à la solutionentière. On peut aussi obser-ver que l’arrondi du point F ,le point p2, 4qt n’est pas réa-lisable. Le point entier réa-lisable le plus proche de Fest p2, 3qt n’est pas optimal,c’est p0, 5qt qui est optimal.

11 22 33 44 55 66 77 88 99 1010 1111

11

22

33

44

55

66

77

00

FF

GG

Figure 7.1 – Exemple

Si pour un exemple si simple de seulement deux variables les stratégies naïves d’arrondirla solution continue ne fonctionne pas, ce sera évidemment encore plus problèmatique pourdes 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 solutioncontinue 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 andbound.

Séparation

On peut donc constituer deux nouveaux problèmes en y incorporant respectivement cesdeux 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 incorporantrespectivement les contraintes x2 ď 3 et x2 ě 4.

11 22 33 44 55 66 77 88 99 1010 1111

11

22

33

44

55

66

77

00

FF

GG

PP

MM11

AA11OO11

PP11

Soit x2 ď 3, soit x2 ě 4.

Figure 7.2 – Exemple

Maintenant, la solution avec x2 ď 3 est p3, 3qT , solution entière de valeur ´39. On neséparera plus cette portion puisqu’on y a identifié une solution optimale entière. Par contre,la solution avec x2 ě 4 est p9

5 , 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 solutionest p1, 40

9 qt.

-0.6-0.6 -0.4-0.4 -0.2-0.2 0.20.2 0.40.4 0.60.6 0.80.8 11 1.21.2 1.41.4 1.61.6

3.83.8

44

4.24.2

4.44.4

4.64.6

4.84.8

55

5.25.2

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 telqu’illustré à la figure 7.4

Évaluation progressive

Évidemment, on ne peut pas effectuer tous les calculs à la fois et on privilégiera un ordrepour 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

minxPR2

´x2

sujet à 3x1 ` 2x2 ď 6´3x1 ` 2x2 ď 0

x1, x2 ě 0, entiers,

(7.34)

7.3. TRAITEMENT DE VARIABLES ENTIÈRES 179

min ´ 5x1 ´ 8x2sujet àx1 ` x2 ď 65x1 ` 9x2 ď 45x1, x2 P N

11 22 33 44 55 66 77 88 99 1010 1111

11

22

33

44

55

66

77

00

FF

GG

x “ p 94 ,

154 q

t, z “ ´41 14

11 22 33 44 55 66 77 88 99 1010 1111

11

22

33

44

55

66

77

00

FF

GG

PP

MM11

...x “ p3, 3qt, z “ ´39

11 22 33 44 55 66 77 88 99 1010 1111

11

22

33

44

55

66

77

00

FF

GG

PP

MM11

UU11

VV11

x “ p 95 , 4q

t, z “ ´41

-0.6-0.6 -0.4-0.4 -0.2-0.2 0.20.2 0.40.4 0.60.6 0.80.8 11 1.21.2 1.41.4 1.61.6

3.83.8

44

4.24.2

4.44.4

4.64.6

4.84.8

55

5.25.2

xp1, 409 q

t, z “ ´40 59

Problème vide

-0.6-0.6 -0.4-0.4 -0.2-0.2 0.20.2 0.40.4 0.60.6 0.80.8 11 1.21.2 1.41.4 1.61.6

3.83.8

44

4.24.2

4.44.4

4.64.6

4.84.8

55

5.25.2

x “ p1, 4qt, z “ ´37

-0.6-0.6 -0.4-0.4 -0.2-0.2 0.20.2 0.40.4 0.60.6 0.80.8 11 1.21.2 1.41.4 1.61.6

3.83.8

44

4.24.2

4.44.4

4.64.6

4.84.8

55

5.25.2

x “ p0, 5qt, z “ ´40

résoudre comme problème continu

x2 ě 4x2 ď 3

x1 ď 1 x1 ě 2

x2 ď 4 x2 ě 5

Figure 7.4 – Arbre des séparations

180 CHAPITRE 7. QUELQUES EXTENSIONS

7.3.2 CoupesL’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.

0 0 54

34 411

41 0 9

4 ´14

94

0 1 ´54

14

154

Si on lit adéquatement la première ligne du tableau, on voit que

x1 `94x3 ´

14x4 “

94 . (7.35)

En général, on aura une expression de la forme

xi `ÿ

jPN

Aijxj “ bi (7.36)

où A “ B´1A et b “ B´1b. On récrit cette expression en regroupant les portions entièresdans le membre de gauche et les parties fractionnaires dans le membre de droite :

xi `ÿ

jPN

tAijuxj ´ tbiu “ bi ´ tbiu´ÿ

jPN

`

Aij ´ tAiju˘

xj. (7.37)

Dans notre exemple, cette équation se simplifie à

x1 ` 2x3 ´ x4 ´ 2 “ 14 ´

14x3 ´

34x4. (7.38)

On voit que pour n’importe quelle point à coordonnées entières réalisable, donc x3 ě 0 etx4 ě 0, on aura que le membre de droite a une valeur plus petite que 1 alors que le membre degauche, 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éepour tout point réalisable à coordonnées entières :

bi ´ tbiu´ÿ

jPN

`

Aij ´ tAiju˘

xj ď 0. (7.39)

Par ailleurs, les variables hors base (dans N) sont nulles en une solution de base, et donc enune solution de base à coordonnées non entières, on a

bi ´ tbiu´ÿ

jPN

`

Aij ´ tAiju˘

xj “ bi ´ tbiu ą 0 (7.40)

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 pointentier réalisable et élimine la solution de base fractionnaire courante.

Sur notre exemple, la contrainte (7.37) s’écrit14 ´

14x3 ´

34x4 ď 0 (7.41)

et on voit bien que la solution de base courante x3 “ x4 “ 0 ne satisfait pas cette coupe. Onajoute donc une variable d’écart x5 et une contrainte ´1

4x3 ´34x4 ` x5 “ ´

14

0 0 54

34 0 165

41 0 9

4 ´14 0 9

40 1 ´5

414 0 15

40 0 ´1

4 ´34 1 ´1

4

Puisque x3 et x4 sont des variables d’écart du problème (7.33), on peut exprimer directementdans 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 laréalisabilité de l’exemple.

On peut aussi utiliser la ligne “0” du tableau pour définir une coupe. Dans ce cas, lacoupe sera constituée des coefficients de la ligne 0 changés de signe (car notre problème estun min)

¯z ´ t´zu´ÿ

jPN

`

´A0j ´ t´A0ju˘

xj ď 0. (7.42)

qui, sur notre exemple, donne 34x3 `

14x4 ě

34 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 portiondu domaine réalisable que la première. Dans le jargon, on dit que la seconde coupe est plusprofonde que la première.

182 CHAPITRE 7. QUELQUES EXTENSIONS

Exercice 7.3.5 [Une autre coupe] Choisissez la seconde équation x2 ´54x3 `

14x4 “

154

pour définir une coupe ; vérifiez que cette coupe est identique à celle définie à l’aide de laligne 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’algorithmetermine avec une solution entière s’il en existe. L’analyse nécessite l’utilisation de règlesd’anti-cyclage.

Exercice 7.3.6 [Application de l’algorithme] Appliquez l’algorithme des plans de coupepour résoudre le problème de l’exercice 7.3.1.

7.3.3 RemarquesNous 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’innombrablesraffinements.

Contrairement à l’optimisation linéaire continue pour laquelle il existe un algorithmepolynomial, 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 sarésolution. La question à savoir si des problèmes NP-difficiles peuvent être résolus en tempspolynomial est une question ouverte très importante en informatique théorique.

En pratique, donc, il faut s’attendre à être rapidement limité en termes de dimensionsdes problèmes en présence de contraintes d’intégrité, nom donné aux contraintes imposantdes 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érationqui nécessite Opm3q 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 deSOLUTIONpπB “ cBq et de SOLUTIONpBδx “ Nq. Nous avons choisi d’écrire ces opérationssous forme de solutions de systèmes linéaires pour atténuer le réflexe naturel de parler deB´1. En effet, l’utilisation de la matrice inverse est un bien mauvais choix pour obtenir lasolution de systèmes linéaires, tant du point de vue de l’efficacité des calculs que du pointde 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 lamatrice B ; les décompositions recommandées sont la décomposition LU, correspondant à laméthode de Gauss, et la décomposition QR, pouvant être calculée avec les algorithmes deGivens, Householder ou Gramm-Schmidt.

Dans la suite de cette section, nous présentons l’implantation de l’opération de pivotagede l’algorithme du simplexe en utilisant ces deux décompositions matricielles. Ensuite, nousdiscutons 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 deGauss. L’appendice A résume les variantes de cette méthode. Supposons donc que la matriceB soit décomposée B “ LU , où U est obtenue par le procédé d’élimination de Gauss, et Lreprésente les opérations élémentaires utilisées lors de l’élimination. Supposons maintenantque la matrice B se fasse substituer une nouvelle colonne B1i à la place de l’ancienne. Alors,de la relation U “ L´1B, on tire que H “ L´1B1 sera de la forme suivante :

i

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’ilest possible de triangulariser cette matrice Hessenberg supérieure en utilisant n´ i pivots dela méthode d’élimination de Gauss. De plus, on peut utiliser la stratégie de pivot partiel demanière très simple en examinant seulement l’élément diagonal, et l’élément sous-diagonalcar les autres éléments d’une colonne sont tous nuls. Soit donc M “ MnMm´1 . . .Mi`1 lamatrice qui représente les n´ i pivots. On a ML´1B1 “ 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 lamatrice.

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 troublesde cyclage décrits plus haut. En fait, même en présence de problèmes dégénérés, lors descalculs, les variables xB ne seront pas nulles, mais prendront des valeurs numériquement trèspetites.

Un autre problème numérique relié à la dégénérescence est le suivant. Considérons l’exempleoù dans R3, trois contraintes se rencontrent selon une droite. Bien entendu, un sommet descontraintes impliquera au moins une quatrième contrainte. Cependant, il est fort possibleque, 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 erreursnumériques, être accepté comme solution optimale.

Il faut retenir que le phénomène de dégénérescence engendre des problèmes au niveauthé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. Dansla 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 saforme 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. Lesalgorithmes 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 duproblème. Une différence importante avec les algorithmes de type simplexe est que, dans lecas dégénéré où il y a plusieurs solutions, l’algorithme du simplexe en identifie une de basealors que les algorithmes de points intérieurs en identifient une “centrale”.

7.6 Extensions et références

7.7 Tous les exercices du chapitresExercice (7.2.1, page 173) [Pire cas du simplexe] Pour n “ 3 et n “ 4, vérifiez quel’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

minxPR2

´x2

sujet à 3x1 ` 2x2 ď 6´3x1 ` 2x2 ď 0

x1, x2 ě 0, entiers,

(7.43)

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 pourrestaurer 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 ´54x3 `

14x4 “

154 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 plansde coupe pour résoudre le problème de l’exercice 7.3.1.

Annexe ARappels mathématiques

Cet appendice regroupe quelques rappels de calcul différentiel et d’algèbnre matriciel.

A.1 Rappels d’analyse mathématique : optimisationen une dimension

Rappelons que si f est différentiable en un minimum local x˚, alors f 1px˚q “ 0.

Théorème A.1.1 Soit x˚ un minimum local de la fonction f , supposée différentiable aumoins en x˚. Alors, f 1px˚q “ 0.

Corollaire A.1.1 Soit x˚ un maximum local de la fonction f , supposée différentiable aumoins en x˚. Alors, f 1px˚q “ 0.

Il est remarquable que seule la différentiabilité de f au point minimum suffit pour établircette 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 telleque fpaq “ fpbq ; alors, il existe un point c P ra, bs tel que f 1pcq “ 0.

Théorème A.1.3 (de la moyenne ou des accroissements finis) Soit f une fonctiondifférentiable sur un intervalle ra, bs. Alors, il existe un point c P ra, bs tel que f 1pcq “fpbq´fpaq

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, etappliquez 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 lethéorème de Taylor :

Théorème A.1.4 Soit une fonction f : R Ñ R m ` 1 fois continûment différentiable surun intervalle pa, bq. Alors, il existe x0 P pa, bq tel que fpbq´fpaq

b´a“ f 1paq ` f2paq

2! pb ´ aq . . . `f pmqpaqm! pb´ aqm´1 `

f pm`1qpx0qpm`1q! pb´ aq

m.

A.2 Rappels d’algèbre linéaireSoit 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 pourla définition de plein rang-colonne.

Le noyau de la matrice A, noté kerA est défini comme l’ensemble des vecteurs v P Rn telsque Av “ 0. kerA est un sous-espace vectoriel de Rn et si A est de plein rang-ligne (si toutesses 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 ausous-espace trivial.

Une matrice réelle Q nˆn symétrique est dite définie positive ssi xtQx ą 0 quel que soitx ­“ 0 et semi-définie-positive si xtQx ě 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 kerA est un vecteur propre associé à la valeur propre 0.

A.2.1 Matrices inversiblesUne 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´1b.

Calculer l’inverse d’une matrice

Soit A une matrice inversible. Le calcul de l’inverse de A est un sujet très étudié etil existe de multiples méthodes. Une des plus simples, la méthode de Gauss-Jordan estparticuliè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, ajouterun 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.

A “

¨

˝

3 0 22 0 ´20 1 1

˛

La méthode, pratique pour de petites matrices à inverser sur papier consiste à constituer untableau où on juxtapose l’identité à la matrice A, rA|Is.

3 0 2 1 0 02 0 ´2 0 1 00 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).

1 0 23

13 0 0

2 0 ´2 0 1 00 1 1 0 0 1

Ensuite, on ajoute ´2 fois la première ligne à la seconde.

1 0 23

13 0 0

0 0 ´103 ´2

3 1 00 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 deplus 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). Sitoute 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 103 fois la troisième ligne à la seconde et ´2

3à la première pour avoir notre troisième colonne de l’identité.

1 ´23 0 1

3 0 ´23

0 103 0 ´2

3 1 103

0 1 1 0 0 1

On divise maintenant la seconde ligne par 103

1 ´23 0 1

3 0 ´23

0 1 0 ´15

310 1

0 1 1 0 0 1

190 ANNEXE A. RAPPELS MATHÉMATIQUES

et enfin ajoute 23 fois la seconde ligne à la première, puis moins une fois à la troisième.

1 0 0 15

15 0

0 1 0 ´15

310 1

0 0 1 15 ´ 3

10 0

Pourquoi ça marche ?

On peut représenter chacune des opérations élémentaires par la multiplication par unematrice appropriée. Multiplier une ligne par une constante s’effectue en multipliant par unematrice n ˆ n Sipfq, mise à l’échelle de la ligne i d’un facteur f , S pour scaling en anglais.Pour n “ 3,

S2p3q “

¨

˝

1 0 00 f 00 0 1

˛

‚.

En général, c’est une matrice identité où on remplace le un en ligne/colonne i par f . Ajouterun multiple f d’une ligne i à une autre j s’écrit comme la multiplication par une matricedisons Rij qui est l’identité à laquelle l’élément pj, iq (nul car i ­“ j) est remplacé par f .Pourn “ 3,

R23pfq “

¨

˝

1 0 00 1 00 f 1

˛

‚.

Alors, pour l’inverse calculé ci-haut, on a

I “ R12p23qR32p´1qS2p

103 qR13p´

23qR23p

103 qR21p´2qS1p

13qA.

Par conséquent, puisqu’on a appliqué les mêmes opérations sur l’identité, on retrouve à laplace de l’identité la matrice

R12p23qR32p´1qS2p

103 qR13p´

23qR23p

103 qR21p´2qS1p

13q “ A´1.

Onservons que si on utilisait la stratégie de permuter deux lignes lorsqu’un malencontreuxzéro se présente sur la diagonale, une matrice de permutation permettrait de représenterl’opération.

Annexe BSolutions 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 c1x1 ` c2x2

sujet à A11x1 ` A12x2 ď b1

A21x1 ` A22x2 “ b2

x1 ě 0,

où A est une matrice pm1 `m2q ˆ pn1 ` n2q 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 retrouveA11z1`A12z2 “ αpA11x1`A12x2q`p1´αqpA11y1`A12y2q ď αb`p1´αqb “ b, la derniereiné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é, A11x1 ` A12x2 ` s “ b1. Ensuite, exprimons la variable libre x2 “ x`2 ´ x´2où x`2 ě 0 et x´2 ě 0. En regroupant les termes de manière appropriée, on retrouve un

vecteur c “ pc1, c2,´c2, 0q, une matrice A “ˆ

A11 A12 ´A12 IA21 A22 ´A22 0

˙

, un membre de droite

191

192 ANNEXE B. SOLUTIONS DE QUELQUES EXERCICES

b “

ˆ

b1b2

˙

et un vecteur x “ px1, x`2 , x

´2 , sq

t tels que le problème s’écrit :

min cx

sujet à Ax “ b

x ě 0,

Il suffit de remplacer la contrainte d’égalité par deux inégalités opposées et en regroupant

les termes dans une matrice A “

¨

˚

˚

˝

A11 A12A21 A22´A21 ´A22´I 0

˛

et un vecteur b “

¨

˚

˚

˝

b1b2´b20

˛

pour obtenir

min cx sujet à Ax ď 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 α “ ´yi

xi´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, IEEETransactions 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