23 novembre 2010 michel llibre ref. dcsd-2009 008 … · infini (ou très grand) de paramètres...

42
Optimisation paramétrique Version 1.0 23 novembre 2010 Michel Llibre Ref. DCSD-2009_008-NOT-009-1.0

Upload: vutuong

Post on 16-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Optimisation paramétrique

Version 1.0

23 novembre 2010

Michel Llibre

Ref. DCSD-2009_008-NOT-009-1.0

3

Table des matières

1 Introduction 5

2 Conventions sur les notations 72.1 Expression matricielle des gradients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 Gradient d’une forme linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Gradient d’une forme quadratique . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Expression des matrices jacobiennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Conditions d’optimalité 113.1 Minimum d’un fonction scalaire sans contraintes . . . . . . . . . . . . . . . . . . . . . 113.2 Minimum avec contraintes égalités - Lagrangien - Paramètres de Lagrange . . . . . . . . 123.3 Minimum avec contraintes inégalités - Paramètres de Kuhn et Tucker . . . . . . . . . . . 123.4 Formule du minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Programmation linéaire 154.1 La forme standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.2 Méthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.2.1 Obtention d’une solution de base réalisable initiale . . . . . . . . . . . . . . . . 164.2.2 Passage d’un sommet à l’autre . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2.3 Règle de sélection de la variable entrante . . . . . . . . . . . . . . . . . . . . . 184.2.4 Dégénérescence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2.5 Règle d’anti-cyclage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.3 Passage à la forme standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.3.1 Variables négatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.3.2 Variables non contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.3.3 Contraintes inégalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.4 La dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5 Optimisation positive 235.1 Enoncé du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.2 Théorèmes de l’hyperplan séparateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.3 Le théorème de Farkas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.4 Matrices opérationnelles et noyau coopératif . . . . . . . . . . . . . . . . . . . . . . . . 24

5.4.1 Cas de la redondance simple : n = m+1 . . . . . . . . . . . . . . . . . . . . . . 25

Page 3/42Réf. DCSD-2009_008-NOT-009-1.0

4 TABLE DES MATIÈRES

5.4.2 Cas de la redondance multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.5 Résolution en redondance multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.5.1 Critère linéaire - Résolution par le simplexe . . . . . . . . . . . . . . . . . . . . 285.5.2 Critère non-linéaire - Méthode de point intérieur . . . . . . . . . . . . . . . . . 28

6 Programmation quadratique 296.1 Optimum sans contraintes inégalités : . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.2 Optimum avec contraintes inégalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.2.1 Saturation d’une seule contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . 306.2.2 Saturation de plusieurs contraintes . . . . . . . . . . . . . . . . . . . . . . . . . 336.2.3 Stratégie de saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

7 PNL sans contraintes 377.1 Cas monovariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377.2 Cas multivariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7.2.1 Méthodes d’ordre zéro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377.2.2 Méthodes d’ordre 1 : Algorithmes de descente . . . . . . . . . . . . . . . . . . . 387.2.3 Méthode d’ordre 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397.2.4 Méthodes géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

8 PNL avec contraintes (A Faire) 418.1 Méthode du gradient projeté . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418.2 Fonctions de pénalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 4/42Réf. DCSD-2009_008-NOT-009-1.0

5

Chapitre 1

Introduction

Nous présentons dans ce document des techniques utilisées pour résoudre des problèmes d’optimi-sation paramétrique. Concrètement, il s’agit de trouver un ensemble réduit de paramètres optimaux quisont soumis à un certain nombre de contraintes. Nous utilisons le qualificatif réduit pour distinguer lesproblèmes étudiés des problèmes de commandes ou trajectoires optimales qui recherchent un ensembleinfini (ou très grand) de paramètres qui sont les composantes de tous les points des trajectoires recher-chées, bien que par discrétisation du temps, on peut ramener la résolution des problèmes de trajectoiresoptimales à de l’optimisation paramétrique en très grande dimension.

Généralement, on arrive à résoudre les problèmes d’optimisation paramétrique lorsqu’ils sontconvexes, c’est-à-dire lorsque :

— l’ensemble C des valeurs admissibles des paramètres inconnus x est convexe : L’ensembleC ⊂ Rn est dit convexe, si pour tout couple de points x1 et x2 ∈ C , le segment [x1,x2] estentièrement contenu dans C ,

— la fonction critère à minimiser f (x) ∈ R est convexe pour x ∈ C convexe, ce qui est le cas si :

∀x1,x2 ∈ C et ∀λ ∈ [0,1] on a : f (λx1 +(1−λ )x2) ≤ λ f (x1)+(1−λ ) f (x2)

autrement dit si f est toujours inférieure à son approximation linéaire.On appelle programmation mathématique le problème qui consiste à trouver x ∈ C ⊂ Rn qui

minimise la fonction f (x) ∈ R. On l’écrit :

min f (x) ∈ R, x ∈ C ⊂ Rn

— f (x) est appelé la fonction objectif— Le sous-ensemble C de Rn est généralement spécifié par un ensemble de contraintes égalités

et/ou inégalités.— Tout x ∈ C est appelé solution admissible.L’intérêt de la convexité repose sur le fait que lorsque f (x) est convexe pour tout x ∈ C , tout

minimum local est minimum global. Dans le cas contraire, on ne sait pas conclure quant à l’optimalitéglobale des solutions qui remplissent les conditions d’optimalité du premier ordre.

Parmi les problèmes de programmation mathématique, nous aborderons :— la programmation linéaire, développée par Georges Dantzig en 1940, qui considère le cas où

f (x) est linéaire et où les contraintes sont linéaires,— la programmation quadratique qui considère le cas où f (x) présente des termes quadratiques,

toujours avec des contraintes linéaires,— la programmation non linéaire qui traite les cas où f (x) et/ou les contraintes présentent des

parties non-linéaires.

Page 5/42Réf. DCSD-2009_008-NOT-009-1.0

6 1. INTRODUCTION

Nous n’aborderons la programmation stochastique qui traite les cas où certaines contraintes dé-pendent de variables aléatoires.

Le premier chapitre présente les conventions sur les notations : comment sont notés les scalaires,les vecteurs, ... et comment sont notées les dérivations de ces éléments.

Le deuxième chapitre présente les conditions d’optimalité et en particulier les notions de lagran-gien, de paramètres de Lagrange, et de paramètres de Kuhn et Tucker ou de Karush-Kuhn-Tucker.

Le troisième chapitre présente la programmation linéaire, c’est–à-dire la méthode utilisée pouroptimiser un critère linéaire en fonction des paramètres inconnus, avec des contraintes linéaires sur cesparamètres.

Le quatrième chapitre présente quelques résultats théoriques sur l’optimisation positive. Nous ap-pelons ainsi un problème pour lequel les paramètres inconnus doivent tous être de même signe (positifspar exemple). Ce problème se présente par exemple lorsqu’on recherche avec quelles tensions il fauttirer sur n ≥ 7 câbles pour imposer un torseur d’effort donné (6 composantes, 3 en force et 3 en moment)à un solide attaché par ces n câbles, par exemple pour compenser son poids et le tenir en équilibre, oupour lui communiquer une accélération désirée. Tous les câbles doivent être tendus (tensions positives)pour que la suspension de l’objet opérationnelle (contraintes inégalités), la combinaison des forces detension devant être égale au torseur résultant désiré (contraintes égalités). On se pose le problème del’existence de solutions et du choix de la meilleure, lorsqu’il en existe.

Le cinquième chapitre présente un exemple de résolution par la programmation quadratique.Le dernier chapitre présente quelques techniques utilisées en programmation non-linéaire, sans

contraintes.

Page 6/42Réf. DCSD-2009_008-NOT-009-1.0

7

Chapitre 2

Conventions sur les notations

Les scalaires sont en général noté s avec une lettre minuscule italique. Les vecteurs (matriceslignes ou colonnes) sont généralement notés avec une lettre grasse, généralement minuscule : l = vT .Les matrices sont généralement notées avec une lettre majuscule grasse. L’expression s = 1

2 xT Ax réunitces 3 notations.

2.1 Expression matricielle des gradients

Considérons une fonction scalaire s de plusieurs variables :

s = S (x1,x2, . . . ,y1,y2, . . . , . . .) = S (x,y, . . .)

Le gradient de s par rapport au vecteur x de dimension n sera noté sx, Sx ou ∇xs :

∇xs =∂S∂x

=

∂ S∂x1∂ S∂x2...

∂ S∂xn

Si s = s0 est une constante par rapport à x,alors ∇xs = 0.Remarque : Nous traitons le gradient ∇xs comme un vecteur colonne, contraire à un usage fréquent

que l’on trouve dans les ouvrages purement mathématiques où il est traité comme un vecteur ligne.

2.1.1 Gradient d’une forme linéaire

Considérons :

s = s0 +b1x1 +b2x2 + · · ·+bnxn = s0 +bT x = s0 +xT b

Alors :

∇xs =

b1

b2...

bn

= b

soit :∇x

(s0 +xT b

)= b

Page 7/42Réf. DCSD-2009_008-NOT-009-1.0

8 2. CONVENTIONS SUR LES NOTATIONS

2.1.2 Gradient d’une forme quadratique

Considérons :s = s0 +xT b+ 1

2

n∑

i=1

n∑j=1

ci jxix j = s0 +xT b+ 12 xT Cx

On peut toujours considérer que B est symétrique. En effet :

s =s+ sT

2= s0 +xT b+ 1

2 xT(

C+CT

2

)x

s = s0 +xT b+ 12 xT Ax avec A symétrique : A =

C+CT

2

Il vient :

∂S∂xk

= bk + 12

n∑j=1

ck jx j + 12

n∑

i=1cikxi = bk +

n∑

i=1

cik + ck j

2xi

∂S∂xk

= bk +n∑

i=1aikxi

D’où :∇x

(s0 +xT b+ 1

2 xT Ax)

= b+Ax

En résumé, dans le cas d’une forme linéaire s = xT b = bT x, on a ∇xs = b et dans le cas d’uneforme quadratique s = 1

2 xT Ax on a ∇xs = Ax. Dans le cas d’une forme linéaire le vecteur gradient est lefacteur de xT et dans le cas d’une forme quadratique c’est le facteur de 1

2 xT .

2.2 Expression des matrices jacobiennes

Soit une fonction vectorielle différentiable f(x) de dimension m sur un espace de point x ∈ Rn dedimension n. Notons x1, x2, . . ., xn, les coordonnées de x et f1, f2, . . ., fm les composantes de f(x).

f(x) =

f1 (x1,x2, . . . ,xn)f2 (x1,x2, . . . ,xn)

...fm (x1,x2, . . . ,xn)

Par convention, nous noterons :

J =∂ f∂x

la matrice formée des éléments suivants :

J =

(∇x f1)

T

(∇x f2)T

...(∇x fm)T

=

∂ f1

∂x1

∂ f1

∂x2· · · ∂ f1

∂xn∂ f2

∂x1

∂ f2

∂x2· · · ∂ f2

∂xn...

.... . .

...∂ fm

∂x1

∂ fm

∂x2

∂ fm

∂xn

Lorsque m = n, on appelle jacobien le scalaire j = det(J).

Page 8/42Réf. DCSD-2009_008-NOT-009-1.0

2.2 EXPRESSION DES MATRICES JACOBIENNES 9

Remarque : Si m = 1, J = ∂ f∂x est une matrice ligne à n éléments, alors qu’avec nos conventions

matricielles, l’opérateur ∂∂x transforme un scalaire en un vecteur colonne. C’est une incohérence de nos

notations (que l’on trouve dans de nombreux autres ouvrages). Pour se garder des erreurs que risqued’entraîner cette incohérence, il faut se souvenir que f est de nature vectorielle et non scalaire, mêmequand elle n’a qu’une composante. Et qu’en conséquence J ne représente pas le gradient d’un scalaire(que l’on écrit en colonne), mais le gradient d’une composante (que l’on écrit en ligne).

Page 9/42Réf. DCSD-2009_008-NOT-009-1.0

11

Chapitre 3

Conditions d’optimalité

Nous introduisons dans cette section le Lagrangien et les paramètres de Kuhn et Tucker qui sontdes outils essentiels pour l’optimisation.

3.1 Minimum d’un fonction scalaire sans contraintes

Considérons une fonction scalaire r (x) du point x de Rn, différentiable par rapport à x. Soit x unminimum relatif de r (x). Pour alléger les notations nous noterons :

— rx le gradient ∇xr

— rxx la matrice carrée symétrique 1 de composantes∂ 2r

∂xi∂x jégalement notée ∇2

xr.

Quelle que soit la direction du vecteur δx on a :

r (x) ≤ r (x+δx) → rTx δx ≥ 0

r (x) ≤ r (x−δx) → rTx δx ≤ 0

}→ rT

x δx = 0 → rx = 0

Conditions nécessaires d’optimalité du premier ordre :

Pour que x soit un minimum relatif de r (x) il est nécessaire que rx = 0.

De plus si r (x) est doublement différentiable, on a :

r (x) ≤ r (x+δx) = r (x)+ rTx δx+ 1

2 δxT rxxδx

D’où, compte tenu du fait que rx = 0 :

δxT rxxδx ≥ 0 ⇔ rxx définie non négative

Conditions du deuxième ordre :

Pour que x soit un minimum relatif de r (x) il est nécessaire que rx = 0 et que rxx soit définie nonnégative.

Si rx = 0 et si rxx est définie positive, x est un minimum relatif strict de r (x).

1. Cette matrice porte le nom de hessien.

Page 11/42Réf. DCSD-2009_008-NOT-009-1.0

12 3. CONDITIONS D’OPTIMALITÉ

3.2 Minimum avec contraintes égalités - Lagrangien - Paramètres de La-grange

Supposons que x soit contraint par les p égalités suivantes :

g(x) = 0

Si x est un minimum relatif de r (x) vérifiant les p équations g(x) = 0 et rTx δx = 0 quel que soit

δx tel que g(x+δx) = 0. Les δx autorisés sont donc tels que gxδx = 0 (gx est la matrice jacobienne deg au point x). Ils engendrent un sous-espace tangent N de dimension n− p (noyau de gx). Le vecteur rxdoit être orthogonal à N . rx est donc limité au sous espace orthogonal complémentaire de dimension p,engendré par les vecteurs lignes de gx qui sont orthogonaux à N . rx est donc combinaison linéaire desp vecteurs lignes gx. En notant −λ le vecteur des coefficients de cette combinaison linéaire, il vient :

rx +gTx λ = 0

Cette expression est la condition nécessaire d’optimalité du premier ordre pour la fonction relativeà la variable x. On l’appelle le lagrangien :

L (x,λ ) = r (x)+gT (x)λ = r (x)+λ T g(x)

La condition nécessaire du premier ordre relative à la variable λ redonne la contrainte g(x) = 0.Les coefficients de λ sont appelés des paramètres de Lagrange.La condition du deuxième ordre impose que la restriction de Lxx au sous-espace N soit définie

non négative, ce qui est équivalent à :

Toutes les racines s de∣∣∣∣ sI−Lxx hT

xhx 0

∣∣∣∣ = 0 sont non négatives.

Remarque : Si x est optimal, on a g(x) = 0 d’où L (x,λ ) = r (x)

3.3 Minimum avec contraintes inégalités - Paramètres de Kuhn et Tucker

Supposons x soit contraint par les p inégalités suivantes :

h(x) ≤ 0

En ajoutant des quantités positives inconnues y2i elles sont ramenées à p contraintes égalités :

hi (x)+ y2i = 0

Les conditions du premier ordre relatives au lagrangien :

L (x,µ,y) = r (x)+∑µi(hi (x)+ y2

i)

s’écrivent :

Lx = 0 → rx +hTx µ = 0

Ly = 0 → µiyi = 0

Elles sont équivalentes à considérer le lagrangien sans terme y :

L (x,µ) = r (x)+ µT h(x)

et envisager les 2p cas :

Page 12/42Réf. DCSD-2009_008-NOT-009-1.0

3.4 FORMULE DU MINIMAX 13

1. contrainte inactive (hi (x) est ignoré) : résoudre avec µi = 0, puis vérifier a posteriori que hi (x)≤ 0,

2. contrainte active ou saturée : résoudre avec hi (x) = 0, puis vérifier a posteriori que µi ≥ 0.

Cette deuxième condition vient du fait qu’il faut vérifier qu’il n’y ait pas de δx admissible tel quer (x+δx) soit inférieur à r (x) avec hi (x+δx) < 0. Or hi (x+δx) = hi (x) + hT

i δx = hTi δx < 0. De

plus r (x+δx) = r (x) + rTx δx ≥ r (x) implique rT

x δx ≥ 0. Or Lx = rx + hTx µ = 0 implique δxT rx +

δxT hTx µ = 0, implique δxT hT

x µ ≤ 0 quel que soit δx admissible, c’est-à-dire tel que hxδx ≤ 0. Il fautdonc que tous les µi ≥ 0.

Les µi sont appelés paramètres de Kuhn et Tucker 2.La condition du deuxième ordre est identique à celle utilisée avec les paramètres de Lagrange, en

ne faisant intervenir que les paramètres des contraintes saturées.Remarque :

1. Si x est optimal, µiyi = 0 implique µihi (x) = 0. Il en résulte que µT h(x) = 0, d’où L (x,µ) =r (x).

2. Les paramètres de Kuhn et Tucker associés aux contraintes saturées doivent être du signe opposéau signe désiré pour la fonction dans le cas d’une minimisation et du même signe dans le casd’une maximisation en supposant qu’ils sont introduits dans le lagrangien par une addition duterme paramètre qui multiplie la fonction.

La remarque 2 est une règle simple qu’il faut mémoriser pour éviter d’avoir à retrouver le chemi-nement assez complexe qui permet de l’établir.

3.4 Formule du minimax

Si x et µ sont localement tels que :

L (x, µ) = minx

{maxµi≥0

L (x,µ)}

le point x est un minimum local de r (x) compte tenu des contraintes h(x) ≤ 0. En effet la formuledu minimax implique que :

L (x,µ) ≤ L (x, µ) ≤ L (x, µ)

quel que soit x et µi ≥ 0. Alors :

1. hi (x) ≤ 0. Par l’absurde : Considérons µi = µi si hi (x) ≤ 0 et µk = µk + 1 si hk (x) > 0. Il enrésulte que :L (x, µ)−L (x,µ)=−∑hk (x)< 0 en contradiction avec l’hypothèse. D’où x respecte les contraintes.

2. Si x respecte les contraintes, r (x)=L (x, µ)− µT h(x) avec µT h(x)≤ 0 implique r (x)≥L (x, µ).Or :r (x) = L (x,0) ≤ L (x, µ) ≤ L (x, µ) ≤ r (x) ce qui démontre la formule.

Ainsi toute solution au problème du minimax est solution du problème de minimum avec contraintesinégalités (ou égalités). Réciproquement, la solution au problème de minimum avec contraintes égalitésest solution du problème du minimax.

2. Dans les ouvrages récents et en particulier de langue anglaise, les paramètres de Kuhn et Tucker sont appelés para-mètres de Karush-Kuhn-Tucker en reconnaissance du fait que William Karush fut le premier à les utiliser dans sa thèse, avantleur diffusion par la publication de Kuhn et Tucker.

Page 13/42Réf. DCSD-2009_008-NOT-009-1.0

15

Chapitre 4

Programmation linéaire

On appelle programme linéaire un problème d’optimisation (minimisation ou maximisation) d’uncritère linéaire, en présence de contraintes égalités ou inégalités également linéaires.

4.1 La forme standard

Tout programme linéaire peut se mettre sous la forme standard suivante : Trouver le vecteur x deRn soumis à Ax = b et x ≥ 0, qui minimise le produit scalaire cT x :

minx

f = cT x

s.c.{

Ax = bx ≥ 0

(4.1)

Nous supposerons en outre que la matrice A est de rang complet : rang(A) = m nombre de lignesde A et que b ≥ 0 (quitte à changer de signe certaines lignes de A). La matrice A possède un noyauorthonormé N de dimension n× r avec r = n−m. Une factorisation QRE (cf. paragraphe 3.7 du mémo“Algorithmes numériques pour l’algèbre linéaire” ) permettrait de trouver une permutation E des co-lonnes de A qui sélectionne m colonnes indépendantes de A. En faisant subir à x, à c et à A cettepermutation, on obtient deux vecteurs xB et xN de dimensions respectives m et r, deux vecteurs cB et cN

de dimensions respectives m et r et deux matrices AB et AN de dimensions respectives m×m et m× r,avec det(AB) 6= 0, tels que :

AE =[

AB AN]

; ET x =(

xB

xN

); cT E =

(cT

B cTN

)D’où :

f = cTBxB + cT

NxN

ABxB +ANxN = bxB = A−1

B (b−ANxN)(4.2)

Pour simplifier nous supposerons dans ce qui suit que ces permutations sont déjà effectuées, c’est-à-dire que AE = A, que ET x = x, et que cT E = cT .

Toute matrice sous-matrice AB, constituée de m colonnes de A, qui est régulière est appelée basede A.

Le vecteur :

x =(

xB

xN

)avec

{xB = A−1

B bxN = 0

Page 15/42Réf. DCSD-2009_008-NOT-009-1.0

16 4. PROGRAMMATION LINÉAIRE

constitue une solution de base. Si de plus xB = A−1B b ≥ 0, c’est une solution de base réalisable.

Les composantes de xB sont traditionnellement appelées variables de base et celles de xN variableshors base.

L’ensemble des solutions x réalisables de Rn constituent un polyèdre convexe, intersection des mhyperplans Ax = b et des n demi-espaces x ≥ 0. Cet ensemble peut être vide, limité à un point, à unsegment, ..., un hyper-volume fermé ou illimité. En conséquence, la solution qui minimise cT x est soit :

1. inexistante,

2. unique,

3. multiple, sur un segment, une surface, ...

4. non bornée.

Cette solution qui minimise cT x est forcément un des sommets du polyèdre. Ces sommets sontà l’intersection de n hyperplans qui sont les m contraintes Ax = b et n−m hyperplans parmi les nhyperplans x = 0. Ces sommets ont donc au moins r = n−m coordonnées nulles. Chaque sommet estdonc caractérisé par m variables de base xB ≥ 0 et r variables hors bases xN nulles.

En multipliant le système (4.2) par A−1B on le met sous une forme simpliciale :

IxB +RxN = b′ avec{

R = A−1B AN

b′ = A−1B b

4.2 Méthode du simplexe

La méthode du simplexe (ou méthode du pivot, ou méthode de Dantzig) itère d’un sommet à unautre sommet adjacent de telle manière que le critère cT x diminue (ou plus exactement n’augmente pas)à chaque saut. Comme il y a un maximum de Cr

n sommets, la méthode converge en un nombre fini depas, à condition de ne pas cycler, sur un ensemble de sommets où le revenu cT x est stationnaire. Cecipeut se produire en un sommet où une ou plusieurs composantes de xB sont nulles. Pour éviter ces cyclesdes règles spécifiques d’anti-cyclage sont à appliquer.

La méthode du simplexe suppose de détenir une solution de base réalisable initiale, ce qui est lecas si b′ ≥ 0.

4.2.1 Obtention d’une solution de base réalisable initiale

Si on ne possède pas de solution de base réalisable initiale pour Ax = b, avec x ≥ 0, on peut encalculer une par la méthode des deux phases. On considère le programme linéaire préliminaire suivant :

Trouver le vecteur X =(

zx

)≥ 0, soumis aux contraintes égalités Iz + Ax = b qui minimise

m∑

i=1zi.

Ce programme linéaire préliminaire est sous forme simpliciale, et il a pour solution de base réalisable(z = bx = 0

)(ce qui explique le choix b ≥ 0).

Après sa résolution (par la méthode du simplexe détaillée au paragraphe suivant) le programmelinéaire préliminaire Iz+Ax = b est transformé en Tz+A′x = b′. Trois cas peuvent se présenter :

1. Au moins une des composantes de z est non nulle (la matrice T contient au moins un vecteurcolonne qui est un vecteur de base ek associé à une k-ième composante de b′ non nulle). Dans cecas le programme linéaire Ax = b ne possède pas de solution réalisable (c’est-à-dire avec x > 0)

Page 16/42Réf. DCSD-2009_008-NOT-009-1.0

4.2 MÉTHODE DU SIMPLEXE 17

2. Les composantes de z sont toutes hors base (la matrice T ne contient aucun vecteur colonne quisoit un vecteur de base ek, ils sont tous dans A′). z = 0 est solution. Le système A′x = b′ estquasiment sous forme simpliciale. On peut réordonner les colonnes de A′ (et les composantes dex) pour former la matrice identité en tête à partir des m vecteurs de base ek.

3. Les composantes de z qui sont dans la base sont nulles (la matrice T contient au moins un oudes vecteurs colonnes de base ek, mais associés à une ou des composante de b′ nulles). z = 0 estsolution. Mais les vecteurs de base ek qui sont dans T font défaut dans A′. Il faut donc réaliserdes opérations de pivotage pour les faire apparaître dans A′. Soit zi la composante associée à lacolonne ek. On recherche dans la k-ième ligne de A′ un élément a′k, j non nul. S’il n’y en a pas,cela signifie que la matrice A n’était pas de rang complet. La ligne peut être supprimée. Soit j unecolonne de A′ où se trouve un a′k, j 6= 0. Par une pré-multiplication par Tl

k, j (cf paragraphe 2.5.4 dumémo “Algorithmes numériques pour l’algèbre linéaire”) on fait apparaître le vecteur colonne ek

en colonne j de A′ et la même opération est faite sur T et sur b′ ce qui a pour effet de faire passerde faire passer x j dans la base et d’en sortir zi. L’opération est renouvelée jusqu’à ce que tous leszi soient hors base. On est alors ramené au cas 2.

4.2.2 Passage d’un sommet à l’autre

Supposons le programme sous la forme simpliciale suivante :

min f = cTBxB + cT

NxN

IxB +RxN = b ≥ 0

D’où :

xB = b−RxN

f =(cT

N−cTBR

)xN + cT

Bb

xB = b et xN = 0 constitue une solution de base réalisable de critère f = cTb b.

Notons :kT = cT

N−cTBR

les coûts réduits associés aux variables hors base xN . Comme elles sont nulles, elle n’ont que la possibi-lité d’augmenter. Pour changer de sommet on doit augmenter un seul des xN j que l’on nomme variableentrante (dans la base) et annuler un des xB i que l’on nomme variable sortante (de la base) et les permu-ter dans les sous-ensembles xB et xN . Le nouveau critère varie de la quantité k jxN j. Pour qu’il diminuealors qu’on augmente un xN j, il faut que k j soit négatif. Si tous les k j sont positifs ou nuls la solutionactuelle est optimale.

Si k ≥ 0 la solution optimale est trouvée.Dans le cas contraire, un ou plusieurs k j sont négatifs. Soit j l’indice de l’un d’entre eux. Le fait

d’augmenter xN j modifie les variables de base xB = b qui deviennent xB = b− r jxN j où r j est la j-ièmecolonne de R. Si r j ≤ 0, on peut augmenter xN j avec toujours xB ≥ 0. Il en résulte que :

Si ∃ k j < 0 tel que r j ≤ 0 il n’y a pas de minimum fini puisqu’on peut augmenter xN j à l’infini.(Remarque, si ∃ k j > 0 tel que r j ≤ 0, il n’y a pas de maximum fini pour le critère max f = cT

BxB +cTNxN).

Dans le cas contraire, on considère uniquement les lignes d’indice i telles que ri, j > 0. Les xB i

correspondants diminuent de la quantité ri, jxN j quand xN j augmente, ce qui entraîne le passage à zéro

de ces xB i pour xN j =bi

ri, j. Il faut arrêter l’augmentation de xN j au premier xB i qui devient nul, d’où :

xN j = mini

bi

ri, jpour ri, j > 0 → xB i = 0

Page 17/42Réf. DCSD-2009_008-NOT-009-1.0

18 4. PROGRAMMATION LINÉAIRE

On effectue ensuite l’opération de pivotage qui permet l’échange entre xN j et xB i. Cette opérationcomporte deux étapes :

1) Calcul de la nouvelle matrice R et du nouveau vecteur b en les pré-multipliant par la matriceTl

i, j (cf paragraphe 2.5.4 du mémo “Algorithmes numériques pour l’algèbre linéaire”). Dans cette mul-tiplication, le système IxB +RxN = b devient I′xB +R′xN = b′ avec I′ = Tl

i, j, R′ = Tli, jR, et b′ = Tl

i, jb.La matrice Tl

i, j est choisie telle que la j-ième colonne de la matrice R′ se transforme en vecteur de baseei. Dans cette transformation I reste identité à l’exception de sa i-ième colonne ei qui devient i′i égal àla i-ième colonne de Tl

i, j (c’est-à-dire le vecteur − 1ri, j

r j à l’exception de la i-ième composante qui vaut1

ri, j). Cette pré-multiplication par une matrice régulière ne modifie en rien le système.

Plus simplement, dans cette opération, un élément quelconque zk de I, R ou b situé à une ligned’indice k 6= i devient z′k = zk − rk jz j/ri j et un élément zi de I, R ou b situé à une ligne d’indice i devientz′i = zi/ri j.

2) Echange des vecteurs colonnes i′i de I′ et r′j = ei de R′ et calcul de c′N et c′B par échange descomposantes cB i et cN j de cN et cB.

Le système est de nouveau sous forme simpliciale. Un nouvel échange de sommet peut être effec-tué. Ce processus est itéré jusqu’à ce que la solution optimale soit trouvée (signalée par k ≥ 0) ou bienjusqu’à ce qu’une condition de minimum non bornée soit trouvée (signalée par ∃ k j < 0 tel que r j ≤ 0).

Remarque : Après l’échange de sommet I′ redevient I. Les opérations sur I′ sont donc inutiles.Par ailleurs, le nouveau vecteur des coûts réduits k′ = c′N−R′T c′B peut être calculé en ajoutant la lignesupplémentaire kT à la matrice R et en lui faisant subir la même opération qu’aux autres lignes R. Il enrésulte que l’algorithme du simplexe peut être mis en oeuvre en effectuant les opérations de pivotage àla matrice augmentée :

M =[

R bkT α

]de dimension (m+1)× (r +1) où α est l’opposé du critère dans le cas d’une minimisation. α est initia-lisé par la valeur −cT

BxB. La colonne sortante j (transformée en vecteur ei par Tli, j) est remplacée par la

i-ième colonne de Tli, j.

4.2.3 Règle de sélection de la variable entrante

Lorsque plusieurs k j = cN j − cTBr j sont négatifs, on peut choisir pour variable entrante xN j :

a) celle qui correspond à l’indice JN ( j) minimal, relativement aux indices jN = JN ( j) des com-posantes de xN dans le vecteur x initial (Début de la règle de Bland 1),

b) celle qui correspond au k j le plus négatif.c) celle qui conduit à une diminution maximale du coût après échange . Pour tous j tels que k j < 0

on calcule la variation de critère produite par le changement de sommet et on choisit la plus grandediminution :

∆i, j = k j

(min

i|ri, j>0

(bi

ri, j

))→ j = arg min

j|k j<0∆i, j

Les règles les plus employées sont les deux premières (les plus simples) car les tests plus complexesréalisés par la troisième sont des tests locaux qui ne permettent pas d’identifier le chemin globalementle plus court. Un grand gain initial peut très bien amener sur le plus long des itinéraires.

1. R.G. Bland. “New finite pivoting rules for the simplex method”. Mathematics of Operations Research, Vol. 2, pages103-107, 1977.

Page 18/42Réf. DCSD-2009_008-NOT-009-1.0

4.3 PASSAGE À LA FORME STANDARD 19

4.2.4 Dégénérescence

Le premier type de dégénérescence se produit lorsqu’à l’issue d’une itération xB comporte une oudes composantes nulles. Dans ce cas, le processus de passage d’un sommet à l’autre peut se mettre àcycler. Pendant ce cycle des échanges vont se faire entre des couples de variables xN j et xB i nulles etqui restent nulles, pour revenir au bout de quelques échanges à la même partition (xB,xN). En fait, il n’ya pas de véritable changement de sommet qui est, dans ce cas, l’intersection d’un nombre de contraintessupérieur à r. C’est par exemple le cas de l’origine 0 lorsque le vecteur b a des composantes nulles.

Une solution qui comporte une ou plusieurs composantes de xB nulles est dite dégénérée.Le deuxième type de dégénérescence a lieu lorsque la solution est telle que k n’est pas strictement

positif. Il y a donc une ou des variables hors base qui peuvent augmenter sans que le critère ne soit altéré.Soit xN j une de ces variables hors base. Si r j ≤ 0, on peut augmenter infiniment xN j sans modifier lecritère. Le critère est fini, mais, il y a une infinité non bornée de solutions. Sinon, il y a une infinitébornée de solutions (une arête, une face, ...).

4.2.5 Règle d’anti-cyclage

Plusieurs règles ont été proposées pour éviter le phénomène de cyclage. La plus simple est la règlede Bland. Elle peut être appliquée en permanence, ou seulement quand il y a risque de dégénérescence,c’est-à-dire lorsque le vecteur b a des composantes nulles. Dans ce cas on choisit pour variable entrantexN j celle qui correspond au JN ( j) minimal (indice JN relatif à x initial), puis parmi les ri, j > 0, si

plusieurs indices i fournissent le même minimum mini

bi

ri, j(nul à cause du fait que plusieurs bi sont nuls),

on prend comme variable sortante xB i celle qui correspond à l’indice IB (i) minimal (indice IB relatif à xinitial).

4.3 Passage à la forme standard

Les transformations suivantes sont utilisées pour ramener un programme linéaire quelconque à laforme standard.

4.3.1 Variables négatives

Une variable sujette à la contrainte x j ≤ 0 est remplacée par la variable x′j = −x j ≥ 0

4.3.2 Variables non contraintes

Une variable x j non contrainte est remplacée par la différence de deux variables positives x′j et x′′j :

x j = x′j − x′′j avec{

x′j ≥ 0x′′j ≥ 0

4.3.3 Contraintes inégalités

Les contraintes inégalités sont écrites de telle manière que le deuxième membre soit systémati-quement positif ou nul, à savoir : lTi x ≤ bi, bi ≥ 0 et lTk x ≥ bk, bk ≥ 0. Chacune de ces contraintes est

Page 19/42Réf. DCSD-2009_008-NOT-009-1.0

20 4. PROGRAMMATION LINÉAIRE

transformée en une contrainte égalité par l’ajout d’une variable d’écart positive :

lTi x ≤ bi → lTi x+ yi = bi avec yi ≥ 0

lTk x ≥ bk → lTk x− yk = bk avec yk ≥ 0

Après ces transformations, le système est sous forme standard, prêt pour une résolution par laméthode du simplexe.

4.4 La dualité

La dualité est une correspondance établie entre deux programmes linéaires qui ne mettent en jeuque des contraintes inégalités faisant intervenir la matrice A dans un programme et AT dans l’autre.Considérons par exemple le programme linéaire primal suivant :

minx

cT x

s.c.{

Ax ≥ bx ≥ 0

Prenons y ≥ 0 et µ ≥ 0 comme paramètres de Kuhn et Tucher (cf. paragraphe 3.3) associés auxcontraintes inégalités. Le lagrangien s’écrit :

L (x,y,µ) = cT x−yT (Ax−b)−µT x

La condition de stationnarité s’écrit :

∂L

∂x= c−AT y−µ = 0

µ ≥ 0 → AT y ≤ c

Par ailleurs, remarquons que si x et y sont admissibles, on a :

c ≥ AT y → cT x ≥ yT Ax ≥ yT b → cT x ≥ bT y

Considérons le problème dual suivant :

maxy

bT y

s.c.{

AT y ≤ cy ≥ 0

Prenons x ≥ 0 et ν ≥ 0 comme paramètres de Kuhn et Tucker associés aux contraintes inégalités.Le lagrangien s’écrit :

L ′ (y,x,ν) = bT y−xT (AT y− c

)+νT y

La condition de stationnarité s’écrit :

∂L ′

∂y= b−Ax+ν = 0

ν ≥ 0 → Ax ≥ b

On a ainsi deux programmes dont les variables de l’un sont les paramètres de Kuhn et Tucker del’autre et réciproquement.

Page 20/42Réf. DCSD-2009_008-NOT-009-1.0

4.4 LA DUALITÉ 21

Si on compare les lagrangiens, on constate que :

L ′ (y,x,ν)−νT y = L (x,y,µ)+ µT x

Or x, y, µ et ν doivent vérifier νT y ≥ 0 et µT x ≥ 0, d’où :

L ′ (y,x,ν) ≤ L (x,y,µ)

Par contre à l’optimum, s”ils existent, on a νT y = 0 et µT x = 0, d’où :

L ′ (y, x,ν) = L (x, y, µ)

et compte tenu du fait que xT(AT y− c

)= 0 et yT (Ax−b) = 0, il en résulte que :

cT x = bT y

En résumé :Les programmes linéaires :

primal dualmin

xcT x

s.c.{

Ax ≥ bx ≥ 0

maxy

bT y

s.c.{

AT y ≤ cy ≥ 0

1. ont des solutions admissibles x et y telles que cT x ≥ bT y

2. ont des solutions optimales x et y telles que cT x = bT y

3. les paramètres de Kuhn et Tucker d’un programme sont les variables de l’autre et réciproquement,

4. si un programme n’est pas borné son dual est vide (pas de solution admissible). Si un programmen’a pas de solution admissible, son dual est soit non borné, soit vide.

Remarque :En changeant les signes de A, b, ou c on peut donner d’autres formes à cette dualité. On peut

changer une minimisation en maximisation et inversement en changeant le signe de c. Si le problème àtraiter comporte des contraintes inégalités des deux sens, on peut les ramener toutes dans le même enchangeant de signe les lignes concernées. Les contraintes égalités du type lTi x = bi sont traitées commedeux contraintes inégalités, lTi x ≤ bi et −lTi x ≤−bi dans le cas standard de la maximisation, ou lTi x ≥ bi

et −lTi x ≥ −bi dans le cas standard de la minimisation. Les paramètres de Kuhn et Tucker (positifs)associés à ces deux contraintes sont deux variables du dual dont la différence (de signe quelconque)représente la variable de Lagrange associée à la contrainte égalité lTi x = bi.

Utilisation :Supposons que A soit de dimension m× r, que les variables XT =

(xT νT

)du primal aient été

indicées de 1 à n = m+ r et que l’on ait la solution du primal, sous la forme de la matrice M′P finale :

M′P =

[R′

P b′

k′TP α ′

P

]avec k′T

P ≥ 0 (solution atteinte). Supposons que la liste des indices des variables de base soit donnéepar IB (k) pour k = 1 à m et la liste des variables hors base donnée par JN (k) pour k = 1 à r. On a alors :

— Revenu optimal du primal : α ′P si maximisation ou −α ′

P si minimisation.

Page 21/42Réf. DCSD-2009_008-NOT-009-1.0

22 4. PROGRAMMATION LINÉAIRE

— Pour k = 1 à m : i = IB (k), xi = b′k si i ≤ r et νi = b′k si i > r (c’est-à-dire lTi−rx−b′k = bi−r).— Pour k = 1 à r : j = JN (k), x j = 0 si j ≤ r et ν j = 0 si j > r (c’est-à-dire lTj−rx = b j−r).Notons M′

D la matrice finale qui correspond à la solution du dual, telle que :

M′D =

[R′

D c′

k′TD α ′

D

]Il est inutile de la calculer car, si on indice les variables du dual dans l’ordre YT =

(µT yT

)de

1 à n, les éléments de M′D figurent tous dans M′

P. En effet, on a :

M′TP =

[R′T

P k′P

b′T α ′P

]=

[−R′

D c′

k′TD α ′

D

]Il en résulte que :— Revenu optimal du dual : α ′

P si maximisation ou −α ′P si minimisation.

— Pour k = 1 à m : i = IB (k), µi = 0 si i ≤ r et yi = 0 si i > r.— Pour k = 1 à r : j = JN (k), µ j = k′Pk si j ≤ r et y j = k′Pk si j > r.où tous les résultats, y compris les listes IB (k) et JN (k), proviennent de la résolution du primal.Conclusion : Lorqu’un problème se présente, si on ne dispose pas d’une solution de base réalisable,

on peut regarder si le dual en possède une. On peut ainsi éviter d’effectuer un simplexe en deux phases.La question de choix, entre les deux résolutions se pose quand primal et dual possèdent tous deux unesolution de base réalisable. Généralement, on considère qu’il est plus rapide de résoudre le programmequi possède le moins de lignes (puisque le nombre total d’inconnues, en comptant les variables d’écartest le même).

Page 22/42Réf. DCSD-2009_008-NOT-009-1.0

23

Chapitre 5

Optimisation positive

Nous appelons optimisation positive l’étude d’un problème pour lequel les paramètres inconnusdoivent tous être de même signe (positifs par exemple). Ces paramètres sont a priori surabondants.Une optimisation est effectuée pour choisir la meilleure solution. Ce problème se présente par exemplelorsqu’on recherche avec quelles tensions x il faut tirer sur dim(x) = n ≥ 7 câbles pour imposer untorseur d’effort donné à un solide attaché par ces n câbles, par exemple pour compenser son poids et letenir en équilibre, ou pour lui communiquer une accélération désirée ce qui se traduit par une relationlinéaire Ax = b (avec dans ce cas dim(b) = m = 6 composantes, 3 en force et 3 en moment). Tous lescâbles doivent être tendus pour que la suspension de l’objet soit opérationnelle (contraintes inégalitésx ≥ 0). On se pose le problème de l’existence de solutions et du choix de la meilleure, lorsqu’il en existe.

5.1 Enoncé du problème

Cherchons dans quelles conditions le problème :{Ax = bx ≥ 0

(5.1)

a des solutions.Notons a j les vecteurs colonnes de A et x j les composantes de x.

L’égalité b =n∑j=1

x ja j montre que si le système 5.1 a une solution, alors b est à l’intérieur de l’hyper-

cône d’origine 0 tendu par les vecteurs a j, car c’est une combinaison linéaire à coefficients positifs deces vecteurs.

5.2 Théorèmes de l’hyperplan séparateur

Considérons l’existence d’un vecteur u de Rm non nul tel que uT A ≥ 0. Ce vecteur fait un anglenon obtus avec tous les vecteurs a j qui sont d’un même coté par rapport à l’hyperplan normal à u. On aalors :

uT Ax ≥ 0

puisque tous les x j sont positifs. Il en résulte que uT b ≥ 0. En conséquence :

Si{

Ax = bx ≥ 0

a une solution, il n’existe pas u de Rm tel que uT A ≥ 0 et uT b < 0.

Page 23/42Réf. DCSD-2009_008-NOT-009-1.0

24 5. OPTIMISATION POSITIVE

Autrement dit, si notre système a une solution, il n’existe pas d’hyperplan séparateur (normal à uncertain vecteur u) tel que tous les a j soient d’un coté et le vecteur b de l’autre.

Remarque : Le coté des a j inclut l’hyperplan, le coté de b l’exclut.Supposons maintenant que Ax = b n’a pas de solution. Dans ce cas b peut être décomposé en une

somme de deux vecteurs orthogonaux b = be + bn avec bn 6= 0 tels qu’il existe x vérifiant Ax = be etbT

n A = 0. D’où en posant u = −bn, on a uT b = −bTn bn = −‖bn‖2 < 0.

La démonstration de cette réciproque dans le cas où Ax = b a une solution, mais systématiquementavec une ou plusieurs composantes x j négatives est plus complexe (cf la démonstration par récurrencede Gale 1).

En conséquence :

Si{

Ax = bx ≥ 0

n’a pas de solution, il existe u de Rm tel que uT A ≥ 0 et uT b < 0.

Autrement dit, si notre système n’a pas de solution, il existe un hyperplan séparateur (normal à uncertain vecteur u) tel que tous les a j sont d’un coté et le vecteur b de l’autre.

5.3 Le théorème de Farkas

Si pour tout u tel que uT A ≥ 0 on a uT b ≥ 0, alors le système Ax = b admet une solution x ≥ 0.A défaut d’une démonstration, donnons une interprétation physique à ce théorème. Il signifie que

les n vecteurs a j (les colonnes) forment un hyper-cône pyramidal d’origine 0 dont les demi-angles ausommet entre les arêtes a j ne sont pas obtus car cet hyper-cône est toujours entièrement d’un mêmecoté des l’hyperplans normaux aux vecteurs u tels que uT A ≥ 0. Come pour chacun des ces vecteurs u,on a uT b ≥ 0, b est également du même coté de l’hyperplan. En choisissant les hyperplans d’appui surl’enveloppe convexe des points a j et du point 0 origine, on constate que b est intérieur à cette enveloppeconvexe. Il en résulte qu’on peut trouver une combinaison linéaire des a j à coefficients positifs pourréaliser le vecteur b.

5.4 Matrices opérationnelles et noyau coopératif

Cherchons dans quelles conditions la problème :

∀b ,?∃x > 0 | Ax = b (5.2)

a des solutions. Plus simplement, on cherche à caractériser les matrices A qui permettent d’obtenirdes solutions x strictement positives quelle que soit la valeur du second membre b. Généralement, la ma-trice A représente un processus, les caractéristiques obtenues indiquerons comment agir sur le processuspour qu’il soit apte à fournir des solutions positives x dans tous les cas.

En premier lieu, il est évident que pour obtenir une solution ∀b, la matrice A doit être de rangcomplet (rang(A) = m = dim(b)). Mais cette condition ne suffit pas, à elle seule. Pour caractériser lapropriété supplémentaire qui la rend apte à réaliser l’opération demandée, nous avons introduit la notionde matrice opérationnelle. Généralement la matrice A dépend de paramètres p par une relation A(p).Ces paramètres évoluent dans un espace que l’étude de A permet de scinder en région régulière (oùrang(A) = m) et en région singulière (où rang(A) < m). Mais pour le problème traité, la région régulièredoit encore être scindée en région opérationnelle et en région inopérationnelle.

1. D. Gale. “The basic theorems of real linear equations, inequalities, linear programming and game theory”, NavalResearch Logistics Quaterly, Vol. 3 (1956) pages 193-200.

Page 24/42Réf. DCSD-2009_008-NOT-009-1.0

5.4 MATRICES OPÉRATIONNELLES ET NOYAU COOPÉRATIF 25

En second lieu, on s’aperçoit immédiatement que si la matrice A est carrée, elle ne peut êtreopérationnelle. En effet, si n = m = rang(A), la solution x = A−1b est unique pour un b donné. Six > 0, le système Ax = b′ avec b′ = −b ne peut avoir de solution opérationnelle.

Une matrice opérationnelle est forcément redondante et de rang complet.Notons li, i = 1,m les lignes (qui ont n composantes) de la matrice A et a j, j = 1 à n ses colonnes

(qui ont n composantes).

5.4.1 Cas de la redondance simple : n = m+1

Dans ce cas, le noyau n (qui a n composantes) de la matrice A a une direction unique donné par :

n = l1 ∧ l2 ∧ . . .∧ lm

(les composantes de n sont les cofacteurs de la première ligne de la matrice n× n dont les n− 1lignes suivantes sont les li). Notons A j la matrice carrée m×m où on a supprimé la colonne d’indice j.La j-ème composante de n est donnée par :

n j = (−1) j det(A j)

La solution générale au système Ax = b peut s’écrire :

x = xe f f +xnul avec xnul = λn

où xe f f est par exemple la solution “efficace” de norme minimale calculé au moyen de la pseudo-inverse de Moore-Penrose :

xe f f = AT (AAT )−1 b

Comme xe f f peut prendre n’importe qu’elle valeur, et en particulier 0 lorsque b = 0, pour que xsoit strictement positif, il faut que n > 0. Réciproquement, si n > 0, on voit qu’avec un λ suffisammentgrand on peut rendre x > 0 quel que soit xe f f .

Remarque : Tout vecteur du noyau est défini à un coefficient (positif ou négatif) multiplicatif près.Dire que n > 0 signifie en fait qu’il a toutes ses composantes de même signe.

Définition : noyau coopératif.Nous dirons que le noyau de A est coopératif s’il a toutes ses composantes de même signe.Théorème de coopération :Une matrice A est opérationnelle, si elle est de rang complet, à noyau coopératif.Le simplexe des a j

La relation An =n∑j=1

a jn j = 0 avec n j > 0 montre que le point origine 0 est barycentre des m + 1

points a j affectés des coefficients positifs n j, ce qui signifie que l’origine 0 est à l’intérieur du simplexeformé par les points a j. Réciproquement si 0 est à l’intérieur du simplexe formé par les points a j, on

peut trouver m+1 coefficients n j > 0 tels quen∑j=1

a jn j = 0.

Lorsque le noyau est coopératif, l’origine 0 est à l’intérieur du simplexe formé par les points a j etréciproquement.

Cette propriété est très intéressante pour aider à la construction d’une matrice A opérationnelle. Enparticulier dans le cas m = 3, on voit tout de suite comment modifier la position de n’importe quel des 4points a j pour que l’origine 0 rentre à l’intérieur du simplexe (un tétraèdre dans ce cas) qu’ils forment.

Page 25/42Réf. DCSD-2009_008-NOT-009-1.0

26 5. OPTIMISATION POSITIVE

Le volume du simplexe est donné par VS = 1m!

∣∣∣∣ 1 1 1 . . . 1a0 a1 a2 . . . an

∣∣∣∣, soit VS = 1m!

m+1∑j=1

(−1) j det(A j)

où encore VS = 1m!

m+1∑j=1

n j.

Si on remplace un des a j par 0 on obtient le volume du simplexe formé par l’origine et les m pointsak, k = 1 à m + 1, et k 6= j. En développant ce déterminant selon sa j-ième colonne on trouve qu’il a

pour volume VS j = 1m! (−1) j det(A j) = 1

m! n j. D’où VS =m+1∑j=1

VS j. Si, et seulement si 0 est à l’intérieur

du simplexe la valeur absolue du volume du simplexe originel est la somme des valeurs absolues des

volumes des n = m+1 simplexes m+1 d’origine 0, soit |VS| =m+1∑j=1

∣∣VS j∣∣, soit

∣∣∣∣∣m+1∑j=1

n j

∣∣∣∣∣ =m+1∑j=1

∣∣n j∣∣ ce qui

n’est possible que si tous les n j sont de même signe. On retrouve la condition de coopération du noyau.Pas d’hyperplan séparateurLe fait que l’origine 0 soit l’intérieur du simplexe formé par les points a j implique qu’il ne peut

exister d’hyperplan séparateur tel que tous les a j soient d’un même coté de cet hyperplan. En effet,si un tel hyperplan existait, (notons u son vecteur normal) on aurait uT A > 0T . Le produit scalaire dece vecteur (qui a toutes ses composantes positives) avec n (qui a également toutes ses composantespositives) est forcément positif, d’où uT An > 0, ce qui est en contradiction avec le fait que An = 0.

RésolutionLa résolution de Ax = b avec x ≥ 0 est immédiate en redondance simple lorsque le noyau est

coopératif. On calcule une solution admissible de signe quelconque, par exemple xe f f = AT(AAT )−1 b,

puis on calcule le noyau n par exemple par n j = (−1) j det(A j) (on change éventuellement tous lessignes des n j pour qu’ils soient positifs). On calcule :

ymin = − minj=1,m+1

xe f fj

n j(5.3)

D’où les solutions :x = xe f f + yn, ∀y > ymin

Pour y = ymin, on a la solution de norme minimale qui est telle que x jmin = 0, où jmin est l’indicequi correspond à ymin.

5.4.2 Cas de la redondance multiple

Dans le cas d’une redondance multiple le noyau orthonormé N de A (supposée de rang complet)possède r = n−m ≥ 2 directions indépendantes que l’on peut calculer par une factorisation QRE (voirparagraphe 3.7 du mémo “Algorithmes numériques pour l’algèbre linéaire”).

La solution générale au système Ax = b peut s’écrire :

x = xe f f +xnul avec xnul = Ny, y ∈ Rn−m (5.4)

Notons Ap une sous matrice extraite de la matrice A comportant p colonnes de A prises au hasard,avec m < p < n, et notons An−p la sous matrice comportant les n− p colonnes restantes. Partitionnonsxnul en deux sous vecteurs, xnul

p à p composantes et xnulm−p à n− p composantes, tels que :

Axnul = Apxnulp +An−pxnul

n−p = 0

Si la sous matrice Ap est opérationnelle, il résulte du théorème de coopération qu’on peut trouverun vecteur xnul

p avec toutes ses composantes positives, tel que Apxnulp = −An−pxnul

n−p, quel que soit le

Page 26/42Réf. DCSD-2009_008-NOT-009-1.0

5.5 RÉSOLUTION EN REDONDANCE MULTIPLE 27

vecteur xnuln−p. En choisissant toutes les composantes de xnul

n−p positives on génère ainsi un vecteur solutionxnul coopératif. On en déduit le théorème :

En redondance multiple, pour qu’une situation soit opérationnelle, il suffit qu’une sous-matrice derang complet constituée de colonnes de A prises au hasard, soit elle-même opérationnelle.

On peut tester les Cm+1n = Cn−m−1

n sous-matrices Am+1 à redondance simple extraites de A. Dèsqu’on trouve un sous-noyau coopératif, on peut dire que la matrice est opérationnelle. Le test des Cm+1

nsous-noyaux (36 pour n = 6 et m = 9) est nécessaire avant de pouvoir affirmer le contraire. On a ainsi,une procédure systématique qui donne un majorant des calculs à effectuer pour conclure.

Relation avec l’enveloppe convexe des a j

Si l’origine 0 est à l’intérieur d’un des Cm+1n simplexes différents qui sont réalisables avec les

n points a j, la matrice A est opérationnelle. Inversement si l’origine est à l’extérieur des Cm+1n sim-

plexes, (et en conséquence à l’extérieur de l’enveloppe convexe des n points a j), la matrice A n’estpas opérationnelle. Par ailleurs, si A est de rang complet, un des ces simplexes à un volume non nul etréciproquement. On a ainsi le théorème ;

En redondance multiple, pour qu’une situation soit opérationnelle, il faut et il suffit que l’originedes coordonnées soit à l’intérieur de l’enveloppe convexe du polyèdre à volume non nul formé par lespoints ayant pour coordonnées les colonnes de la matrice A.

Ce théorème est strictement équivalent à celui que l’on peut déduire du théorème de l’hyperplanséparateur. S’il existe un hyperplan séparateur avec tous les a j d’un même coté, on ne pourra pas trouverde solution quel que soit le vecteur b, par contre si un tel hyperplan n’existe pas, on pourra trouver unesolution quel que soit b.

Remarque :Si une ligne li de A a toutes ses composantes de même signe (aucune nulle), on ne peut avoir

lTi n = 0, avec un vecteur n qui a lui aussi toutes ses composantes positives. Il en résulte qu’il ne peut yavoir de noyau coopératif et que la matrice A ne peut être opérationnelle. Malheureusement la réciproquen’est pas vraie, et même s’il n’existe aucune ligne de ce type, on n’est sûr que A soit opérationnelle.

5.5 Résolution en redondance multiple

Trouver une solution x > 0 à Ax = b quel que soit b revient à trouver une solution y ∈ Rn−m ausystème :

xe f f +Ny > 0

soit :A†b+Ny > 0

où A† est la pseudo-inverse de Moore-Penrose de A.Cette approche est intéressante quand r = n−m ¿ n. C’est elle qui nous a fourni la solution (5.3)

dans le cas r = 1. On peut démonter par la programmation linéaire, que la solution qui minimise ∑x j ar composantes nulles. On peut chercher la solution y d’un de ces Cr

n systèmes à r égalités à zéro et voirsi les m autres inégalités sont vérifiées. Cette exploration systématique nécessite au pire la résolution deCr

n systèmes d’ordre r, ce qui n’est intéressant que pour r et n très petits. Pour les grandes valeurs de r etn, on a une explosion combinatoire de type exponentiel.

Page 27/42Réf. DCSD-2009_008-NOT-009-1.0

28 5. OPTIMISATION POSITIVE

5.5.1 Critère linéaire - Résolution par le simplexe

En ajoutant un critère linéaire à minimiser, par exemple ∑x j, on convertit notre problème en pro-grammation linéaire qu’on sait résoudre par la méthode du simplexe.

5.5.2 Critère non-linéaire - Méthode de point intérieur

Par contre, si on connaît une solution admissible xa (telle que xa > 0 et Axa = b) et qu’on chercheune meilleure solution qui minimise un critère quelconque r (x) on peut tenter d’améliorer cette solutionde la quantité kn, avec k > 0, telle que r (xa + kn) < r (xa) et telle que A(xa + kn) = b. Il en résulte quela direction de n doit être telle que :

An = 0rT

x n < 0

Cherchons ‖n‖ = 1 qui maximise −rTx n. Le Lagrangien s’écrit :

L = −rTx n+ λ T An+ µ

(1−nT n

)La condition de stationnarité donne :

∂L

∂n= −rx +AT λ −µn = 0 → µn = AT λ − rx

soit en reportant dans la contrainte An = 0 :

µAn = AAT λ −Arx = 0 → λ =(AAT )−1 Arx

Il vient :

µn = −rx +AT (AAT )−1 Arx

= −(

I−AT (AAT )−1 A

)rx

= −NNT rx

D’où finalement :n =− 1∥∥NNT rx

∥∥NNT rx

La meilleure direction de u est celle de la projection orthogonale du gradient du critère sur le noyaude la matrice A. Il reste à déterminer la taille du pas à effectuer pour que x+ = xa + kn ne sorte pas dudomaine admissible, à savoir x+ ≥ 0. Seules les composantes ni < 0 peuvent rendre x+

i ≤ 0. Il en résulteque k doit être inférieur à kmax donné par :

kmax < minni<0

−xai

ni

Cette méthode de point intérieur, plutôt destinée au cas de critères non linéaires, est égalementutilisée en linéaire comme alternative à de la méthode du simplexe, avec k = 0.995kmax. Elle présentel’inconvénient de nécessiter un point initial réalisable, ce qui peut être contourné par une recherchepréliminaire comme celle employée dans la méthode des deux phases du simplexe.

Nous présentons au chapitre suivant la méthode que nous avons utilisée dans une application réellepour le calcul des 9 tensions optimales d’une suspension active à 6 degrés de liberté.

Page 28/42Réf. DCSD-2009_008-NOT-009-1.0

29

Chapitre 6

Programmation quadratique

Nous nous limitons notre incursion dans le domaine de la programmation quadratique à la résolu-tion du problème suivant : Trouver le vecteur x ∈ Rn soumis aux m < n contraintes linéaires :

Ax = b (6.1)

et aux 2n contraintes inégalités :xl ≤ x ≤ xu (6.2)

qui minimise le critère :c = 1

2 ‖x−xo‖2 (6.3)

où les composantes de xl et xu sont les bornes inférieures et supérieures des xi et où xo est une valeurpréférée de x. La matrice A est supposée de rang complet, à savoir :

rang(A) = dim(b) = m

La méthode que nous proposons est adaptée à des problèmes pour lesquels la solution optimalexs du problème sans les contraintes inégalités est souvent solution du problème avec contraintes. Cettesolution est calculée directement par la formule (6.7) donnée ci-après. Si elle vérifie les contraintes (6.2)la solution optimale est trouvée. Dans le cas contraire, les contraintes violées sont tour à tour prisesen compte. L’algorithme présenté donne d’excellents résultats (par rapport à d’autres) dans le cas où laredondance :

r = n−n

est faible. Dans ce cas le nombre de combinaisons de contraintes qui sont simultanément saturées estrelativement faible, et l’ordre judicieux des tests conduit rapidement à la solution optimale.

6.1 Optimum sans contraintes inégalités :

On considère le lagrangien :

Ls = 12 (x−xo)T (x−xo)+λ T (Ax−b) (6.4)

Il est stationnaire quand :∂Ls

∂x= xs −xo +AT λ = 0 (6.5)

ce qui implique :xs = xo −AT λ (6.6)

Page 29/42Réf. DCSD-2009_008-NOT-009-1.0

30 6. PROGRAMMATION QUADRATIQUE

Compte tenu de la contrainte égalité 6.1, on a :

b = Axo −AAT λ

soit :λ = −

(AAT )−1 (b−Axo)

car A est de rang complet. Reportons λ dans 6.6. Il vient :

xs = xo +AT (AAT )−1 (b−Axo) (6.7)

Si xs vérifie les inégalités (6.2), c’est la solution au problème posé.

Remarque : Au niveau calcul numérique, on peut éviter le calcul de(AAT )−1. On calcule λ solu-

tion du système symétrique(AAT )

λ = Axo −b, puis on reporte cette valeur dans (6.6). Toutefois si denombreuses contraintes sont susceptibles d’être saturées dans la solution finale, il y a intérêt à calculerla matrice

(AAT )−1 car elle risque d’être utilisée sur plus de m vecteurs dans la suite de l’algorithme.

Interprétation géométrique :Si xo = 0, le problème consiste à trouver la solution de norme minimale au système Ax = b.

Cette solution s’écrit (cf.6.6) xmin = −AT λ qui montre que la solution de norme minimale est unecombinaison linéaire des vecteurs lignes li de la matrice A et les λi sont (au signe près) les coefficientsde cette combinaison.

Lorsque xo 6= 0, la solution s’écrit :

xs = xmin +n , avec n =(

I−AT (AAT )−1 A

)xo

ou n est la projection orthogonale xo dans le noyau de A (cf. paragraphe 2.2.2 du mémo “Algo-rithmes numériques pour l’algèbre linéaire”).

6.2 Optimum avec contraintes inégalités

Si xs ne vérifie pas une ou plusieurs des inégalités (6.2) on cherche de nouvelles solutions ensaturant une ou plusieurs contraintes parmi celles qui sont violées par xs ou par les solutions ultérieures.

6.2.1 Saturation d’une seule contrainte

Supposons par exemple que xsk > xu

k , c’est-à-dire que xok +aT

k

(AAT )−1 (b−Axo) > xu

k où ak dé-signe le k-ième vecteur colonne de A.

Cherchons la solution où on impose la contrainte supplémentaire xk = xuk que l’on écrira :

eTk x = xu

k (6.8)

avec :eT

k =(

0 · · · 0 1 0 · · · 0)

le 1 étant en k-ième position.Le nouveau lagrangien s’écrit :

L = 12 (x−xo)T (x−xo)+λ T (Ax−b)+ µk

(eT

k x− xuk)

où µk est un paramètre de Kuhn et Tucker qui doit être positif.

Page 30/42Réf. DCSD-2009_008-NOT-009-1.0

6.2 OPTIMUM AVEC CONTRAINTES INÉGALITÉS 31

La stationnarité du gradient s’écrit :

∂L∂x

= x−xo +AT λ + µkek = 0 (6.9)

soit :x = xo −AT λ −µkek (6.10)

Les contraintes 6.1 et 6.8 donnent :

b−Axo +AAT λ + µkak = 0 (6.11)

etxu

k − xok +aT

k λ + µk = 0 (6.12)

Première méthode de résolution :Cette méthode n’est citée qu’à titre de curiosité, car elle s’est avérée moins intéressante que la

suivante.De 6.12 on tire le paramètre de Kuhn et Tucker :

µk = xok − xu

k −aTk λ (6.13)

qui, reporté dans 6.11 donne :

b−Axo +AAT λ +ak(xo

k − xuk −aT

k λ)

= 0

D’où :λ = −

[AAT −akaT

k]−1 [b−Axo +ak (xo

k − xuk)] (6.14)

ce qui suppose queAAT −akaT

k = ∑i6=k

aiaTi

est de rang complet, c’est-à-dire que la matrice A sans la colonne ak soit de rang complet.En reportant la valeur de λ dans l’expression de µk on obtient :

µk = xok − xu

k +aTk[AAT −akaT

k]−1 [b−Axo +ak (xo

k − xuk)] (6.15)

En reportant 6.14 et 6.15 dans 6.10 on obtient :

x = xo +AT (AAT −akaT

k)−1 [b−Axo +ak (xo

k − xuk)] pour i 6= k

xk = xuk pour i = k

Deuxième méthode de résolution :Notons xs et λ s les solutions du problème sans contrainte qui sont telles que :

xs −xo +AT λ s = 0Axs = b

xsk > xu

k

En les prenant en compte, les équations à résoudre s’écrivent :

(x−xs)+AT (λ −λ s)+ µkek = 0A(x−xs) = 0

eTk (x−xs) = xu

k − xsk

Page 31/42Réf. DCSD-2009_008-NOT-009-1.0

32 6. PROGRAMMATION QUADRATIQUE

En multipliant la première relation par A puis par eTk il vient :

AAT (λ −λ s)+ µkak = 0(xu

k − xsk)+aT

k (λ −λ s)+ µk = 0

De la première on tire :λ = λ s −µk

(AAT )−1 ak (6.16)

qui reporté dans la deuxième donne :

(xuk − xs

k)−aTk(AAT )−1 akµk + µk = 0

soit :µk = δk (xs

k − xuk) avec δk =

1

1−aTk

(AAT )−1 ak

(6.17)

Cette valeur reportée dans 6.16 fournit λ qui, reporté dans 6.10 donne :

x = xs +δk (xsk − xu

k)[AT (

AAT )−1 ak − ek

](6.18)

On remarquera que :

xk = xsk +δk (xs

k − xuk)

[aT

k(AAT )−1 ak −1

]= xu

k

Cette deuxième méthode à l’avantage de se prêter à diverses interprétations géométriques.Montrons en premier lieu que µk ≥ 0.Le système linéaire redondant w = Av = ∑i aivi, a pour solution qui minimise ‖v‖ :

v = AT (AAT )−1 w

Dans le cas où wk = ak, on a une solution évidente vk = ek, telle que ‖vk‖ = 1. Si vk est de normeminimale, toutes ses composantes sont inférieures ou égales à ‖vk‖. En particulier :

vkk = aT

k(AAT )−1 ak ≤ 1 → δk ≥ 0

Comme xsk > xu

k , il en résulte que µk ≥ 0.

Remarque : vk est le k-ième vecteur colonne du projecteur orthogonal = AT(AAT )−1 A sur les

lignes de A.

Les relations 6.5 et 6.9 montrent que µkek = −(x−xo +AT λ

)= −∂Ls

∂x, soit :

µk = −∂Ls

∂xk→ δLs = −µδxk

xsk est saturé à xu

k . Si on le dé-sature, on ne peut que le diminuer, δxk est négatif et δLs est positif,le critère augmente comme on pouvait s’y attendre puisque l’optimum sans contrainte est au delà de xu

k .Remarque : Si les ai sont des directions de l’espace et si les vi sont les forces élémentaires exercées

sur ces directions, alors w est la force résultante. Si on considère une force résultante alignée sur ak, alorsla force élémentaire sur la direction ak est égale à vk

k (pour la solution vk de norme minimale). Le terme1− vk

k est la différence entre la solution où seul ak fournit l’effort et la solution de norme minimale,c’est-à-dire le gain d’effort fait sur cette direction (il y a une perte sur toutes les autres). Quand pour

Page 32/42Réf. DCSD-2009_008-NOT-009-1.0

6.2 OPTIMUM AVEC CONTRAINTES INÉGALITÉS 33

réaliser l’effort résultant b, l’effort sur ak dépasse l’effort maximal xuk de ∆xk = xs

k − xuk , le paramètre de

Kuhn et Tucker, utilisé pour saturer cette composante et uniquement celle-ci, vaut µk = ∆xk/(1− vk

k

).

La solution 6.18 s’écrit :

x = xs +

(xs

k − xuk

)1− vk

k[vk − ek] (6.19)

d’où :

‖x−xs‖ =

∣∣xsk − xu

k

∣∣1− vk

k‖vk − ek‖ (6.20)

Cas de la contrainte inférieureSupposons que la contrainte xs

k ≥ xlk soit violée (autrement dit xs

k < xlk). Dans ce cas on sature xk

à xlk. On remplace dans les calculs précédents xu

k par xlk. Tous les calculs sont identiques. Seul diffère le

signe du paramètre de Kuhn et Tucker qui sera négatif :

µk ≤ 0

6.2.2 Saturation de plusieurs contraintes

Supposons que l’on sature simultanément les contraintes k1, . . . ,kq.Pour q > r = n−m le système est trop contraint. Dans ce cas la stratégie de résolution dépend de

l’importance relative entre contraintes. On peut prendre en contraintes égalités les r contraintes critiquespour la sécurité, et on minimisera la somme des carrés des distances pondérées aux autres.

Pour q = r, x est exactement imposé par les m+ r = n contraintes.Supposons q < r et appliquons la deuxième méthode de résolution.Le lagrangien s’écrit :

L = 12 (x−xo)T (x−xo)+λ T (Ax−b)+ µT (

ET x− s)

avec :

µT =(

µk1 · · · µkq

), E =

(ek1 · · · ekq

)et s =

xlimk1...

xlimkq

Pour xlim

ki= xl

ki, il faudra vérifier que µki est négatif et pour xlim

ki= xu

ki, il faudra vérifier que µki est

positif.La stationnarité du gradient de L s’écrit :

∂L∂x

= x−xo +AT λ +Eµ = 0

d’où :x−xs +AT (λ −λ s)+Eµ = 0

qui multiplié par A puis par ET donne :

AAT (λ −λ s)+Asµ = 0−∆s+AT

s (λ −λ s)+ µ = 0

où on a posé :

∆s =(ET xs − s

)As = AE =

(ak1 · · · akq

)

Page 33/42Réf. DCSD-2009_008-NOT-009-1.0

34 6. PROGRAMMATION QUADRATIQUE

On en tire :(λ −λ s) = −

(AAT )−1 Asµ

−∆s+[I−AT

s(AAT )−1 As

]µ = 0

D’où :µ =

[I−AT

s(AAT )−1 As

]−1∆s

et :x = xs +

[AT (

AAT )−1 As −E][

I−ATs(AAT )−1 As

]−1∆s

Il faut vérifier que les composantes de µ ont le bon signe.Remarque pour les calculs numériques :

1. Le vecteur µ =[I−AT

s(AAT )−1 As

]−1∆s est calculé en résolvant le système symétrique d’ordre

q :[I−AT

s(AAT )−1 As

]µ =∆s

2. Les colonnes des différentes matrices(AAT )−1 As (pour différentes matrices As) sont un sous-

ensemble des colonnes de(AAT )−1 A. Chaque fois que l’une d’entre elle est calculée, elle est

mémorisée pour ne pas être calculée une deuxième fois.

3. En notant Vki les colonnes de AT(AAT )−1 As. La solution s’écrit x = xs +

q∑

i=1

(Vki − eki

)µki

6.2.3 Stratégie de saturation

Elle est inspirée de la méthode de Theil et van de Panne 1. Si la solution sans contrainte xs enviole plusieurs, et s’il existe une solution optimale avec une seule contrainte saturée, alors la relation

6.20 montre que cette contrainte est forcément celle qui maximise

∣∣xsk − xlim

k

∣∣1− vk

k‖vk − ek‖. Si les |∆xk| =∣∣xs

k − xlimk

∣∣ sont aisés à calculer ces écarts sont pondérés par les facteurs‖vk − ek‖

1− vkk

(quelconques a priori)

qui, une fois calculés, donnent immédiatement les solutions contraintes. Il semble qu’il n’y ait pas destratégie qui permette de trouver directement quelle est la contrainte dont la saturation satisfasse toutesles autres, quand elle existe.

On sature donc les contraintes, une à une, dans un ordre quelconque (éventuellement dans l’ordredu classement des |∆xk| du plus grand au plus petit).

— Si une solution avec une seule contrainte saturée, satisfait les autres contraintes, elle est opti-male, il est inutile d’en chercher d’autres.

— Sinon, il faut saturer deux contraintes. On considère tous les couples possibles. On en choisitun.Si les paramètres de Kuhn et Tucker des deux contraintes saturées ont le bon signe :– Si les autres contraintes sont satisfaites, la solution est optimale, il est inutile d’en chercher

d’autres.– Sinon, on mémorise les triplets possibles.On examine le couple suivant, jusqu’à trouver un couple bon.

— Si aucune solution saturant deux contraintes n’est bonne, on recommence la procédure avec lestriplets et ainsi de suite, jusqu’à ce que le nombre de variables que l’on peut saturer atteigne r.

1. Theil, H. et Van de Panne, “Quadratic Programming as an Extension of Conventional Quadratic Maximization.”Management Science, Vol. 7, 1960.

Page 34/42Réf. DCSD-2009_008-NOT-009-1.0

6.2 OPTIMUM AVEC CONTRAINTES INÉGALITÉS 35

— Si aucune solution n’est bonne quand on sature simultanément r contraintes, le problème n’apas de solution exacte. On peut alors chercher une solution approchée, par exemple au sens desmoindres carrés.

Page 35/42Réf. DCSD-2009_008-NOT-009-1.0

37

Chapitre 7

PNL sans contraintes

Considérons le problème de programmation non-linéaire (PNL) sans contraintes suivant :

min f (x) ∈ R, x ∈ Rn

où f (x) possède une approximation au 2ème ordre donnée par :

f (x+d) = f (x)+ fTx d+

12

dT Fxxd

avec :

fx = ∇ f (x) =∂ f (x)

∂xgradient de f relativement à x

Fxx = ∇2 f (x) =

∂ 2 f (x)

∂x2 Hessienne de f relativement à x

∇fx =∂ fx

∂xJacobienne de fx relativement à x

L’approximation au premier ordre du gradient fx est donnée par :

fx (x+d) = fx (x)+Fxxd

Les conditions d’optimalité du premier et deuxième ordre nous indiquent que x est un minimumlocal si :

1. ∇ f (x) = 0

2. ∇2 f (x) est définie positive.

7.1 Cas monovariable

A développer : Exploration systématique, recherche par dichotomie, découpage des longueurs dessegments successifs de recherche selon la suite de fibonacci, selon le rapport nombre d’or,....

7.2 Cas multivariable

7.2.1 Méthodes d’ordre zéro

A développer :

Page 37/42Réf. DCSD-2009_008-NOT-009-1.0

38 7. PNL SANS CONTRAINTES

— Méthode de Gauss : optimisation monovariable, tour à tour sur chaque variable,— Méthode du simplexe de Nelder-Mead : test d’un lot de n+1 points, suppression du plus mau-

vais et remplacement par un nouveau point situé du coté opposé du point supprimé par rapportà l’hyperplan défini par les points conservés,...

7.2.2 Méthodes d’ordre 1 : Algorithmes de descente

La recherche de ce minimum de fait à l’aide d’algorithmes de descentes, à savoir par la recherched’incréments successifs de descente θd, avec θ > 0 et ‖d‖ = 1, tels que : f (x+θd) < f (x) ce quiimplique que θ fT

x d < 0.

f (x+θd) < f (x) , avec θ > 0,‖d‖ = 1 → θ fTx d < 0

Conditions de Wolfe sur la direction d

Une direction est considérée suffisamment descendante s’il existe deux constantes positives γ0 etγ1 indépendantes de x telle que d satisfasse les inégalités suivantes :

dT fx (x) ≤−γ0fTx fx

dT d ≤ γ1fTx fx

La première indique que d fait un angle assez aigu avec −fTx et la deuxième que d n’est pas trop

long.L’opposé du gradient d = −fx (utilisé dans la méthode du gradient) satisfait les deux conditions

pour γ0 = 1 et γ1 = 1 (par exemple).

Conditions sur le pas

Un pas θ est satisfaisant si :

f (x+θd)− f (x) ≤ τ0θdT fx (x) avec τ0 ∈(0, 1

2

)(critère d’Armijo)

dT fx (x+θd) ≥ τ1dT fx (x) avec τ1 ∈ (0,1) (condition de Wolfe)

Le critère d’Armijo assure que le pas θ fait suffisamment diminuer f (on se limite généralement àdes valeurs faibles de 10−4 à 10−2) et la condition de Wolfe que la courbure correspond à un minimum(on prend généralement τ1 ' 0.9 pour les méthodes inspirées de la méthode de Newton et τ1 ' 0.1pour le gradient conjugué). Cette deuxième condition est souvent remplacée par la condition “forte” deWolfe : ∣∣dT fx (x+θd)

∣∣ ≤ τ1∣∣dT fx (x)

∣∣ avec τ1 ∈ (0,1)

Règle d’Armijo :A chaque itération on choisit une direction d suffisamment descente et pour θ la première valeur

dans la suite{

1, 12 , 1

4 , · · · , 12n , · · ·

}qui satisfait le critère d’Armijo.

Méthode du gradient

On choisit la direction d selon la pente la plus forte, à savoir l’opposé du gradient :

d = −fx

Page 38/42Réf. DCSD-2009_008-NOT-009-1.0

7.2 CAS MULTIVARIABLE 39

puis on cherche θ qui minimise f (x+θd) ou en appliquant la règle d’Armijo. On verifiera que dans lecas quadratique

(f (x) = c+bT x+ 1

2 xT Ax), la valeur théorique qui annule fx (x+θd) est :

θ =‖fx‖2

fTx Fxxfx

Méthode du gradient conjugué

La méthode standard du gradient est relativement lente car les directions dk de descentes succes-sives sont orthogonales (puisque θk est tel que dk est tangent en xk+1 à la surface de niveau et quedk+1 est orthogonal à cette surface de niveau). Les directions successives de la méthode dite du gradientconjugué sont a priori mieux disposées.

On initialise par d0 = −fx (x0), mais les dk suivants sont pris égaux à :

dk = −fx (xk)+‖fx (xk)‖2

‖fx (xk−1)‖2 dk−1

Dans le cas quadratique(

f (x) = c+bT x+ 12 xT Ax

), on prend θ =

‖fx‖2

dT Fxxdet il en résulte que les

directions dk successives sont conjuguées (telles que dTk Adk+1 = 0, c’est-à-dire orthogonales pour le

produit scalaire u ·v = uT Av). Dans ce cas la convergence se fait en n coups (n est la dimension de x).Dans le cas non-linéaire Polak-Ribière proposent la variante :

dk = −fx (xk)+fTx (xk)(fx (xk)− fx (xk−1))

‖fx (xk−1)‖2 dk−1

7.2.3 Méthode d’ordre 2

Méthode de Newton

Dans l’approximation quadratique, le gradient est annulé en seul coup au nouveau point :

fx (x+d) = fx (x)+Fxxd = 0 ⇒ d = −F−1xx fx

Variantes par approximation du hessien ou de son inverse

On approxime Fxx (xk) par une matrice Bk ou son inverse par une matrice Hk calculées par uneformule récurrente ou son inverse

On note :

sk = xk+1 −xk

yk = fx (xk+1)− fx (xk)

On initialise B0 définie positive (In×n par exemple) et fx (x0).

1. dk = −B−1k fx (xk) ou dk = −Hkfx (xk) : direction ligne de recherche.

2. Recherche αk tel que f (xk +αkdk) = minα>0

f (xk +αdk) ; sk = αkdk ; xk+1 = xk + sk ;

3. Calcul fx (xk+1), fin si suffisamment petit.

4. yk = fx (xk+1)− fx (xk)

Page 39/42Réf. DCSD-2009_008-NOT-009-1.0

40 7. PNL SANS CONTRAINTES

5. Bk+1 = F (Bk,sk,yk) ou Hk+1 = G (Hk,sk,yk)

6. k ← k +1, retour étape 1.

Il existe de nombreuses équations récurrentes de mise à jour. Citons :Méthode DFP : Davidon (1959), Fletcher & Powell (1963)

Hk+1 = Hk +sksT

k

sTk yk

−HkykyT

k Hk

yTk Hkyk

Méthodes BFGS (Broyden, Fletcher, Goldfarb & Shanno)

Bk+1 = Bk +ykyT

k

sTk yk

−BksksT

k Bk

sTk Bksk

Hk+1 = Hk +(

1+yT

k Hkyk

sTk yk

)sksT

k

sTk yk

−(

skyTk Hk +HkyksT

k

sTk yk

)

7.2.4 Méthodes géométriques

A faire : méthode de Partan (gradient conjugué)

Page 40/42Réf. DCSD-2009_008-NOT-009-1.0

41

Chapitre 8

PNL avec contraintes (A Faire)

A développer :

8.1 Méthode du gradient projeté

A développer :

1. Départ d’un point x satisfaisant l’ensemble C des contraintes (problème d’initialisation) et ensaturant éventuellement quelques unes.

2. Recherche de l’ensemble K des contraintes saturées qui sont en nombre k.

3. Recherche parmi les 2k sous-ensembles K s de K (incluant l’ensemble vide et K lui-même) dusous ensemble K s

opt tel que le déplacement selon la projection δ du gradient du critère g sur lesous-espace intersection des espaces tangents aux contraintes de K s

opt :

ne viole pas (au premier ordre, au niveau des plans tangents) les contraintes du sous-ensemblecomplémentaire K c1 = K −K s

opt ,

et produise la plus grande variation du critère.

4. Si la dimension de K sopt ≥ dim(x) la recherche est terminée car le sous-espace intersection est un

point et la projection δ n’existe plus. On a atteint un minimum local.

5. Sinon, déplacement depuis x selon la direction δ d’une distance limitée de telle manière que lesous-ensemble K s

opt reste saturé et qu’aucune contrainte du sous-ensemble K c2 = C −K sopt ne

soit violée. On cherche a en saturer une contrainte du sous-ensemble K c3 = C −K .

6. Retour en 2.

La phase 5 est la phase critique du gradient projeté. Il faut régler le pas de manière à ne pas violer lescontraintes du sous-ensemble K c2, et s’approcher le plus des contraintes du sous-ensemble K c3 (cellesqui n’étaient pas saturées). En fait, la non-linéarité des contraintes de K s

opt fait que le déplacement vales désaturer (en plus ou en moins). Le pas doit en tenir pour que cette désaturation reste acceptable.A l’issue du pas, on sature à nouveau toutes les contraintes de K s

opt et éventuellement celles de K c1

qui ont été violées à l’aide de l’algorithme de Newton-Ralphson par exemple. Le nouveau point x+

projeté peut éventuellement violer une contrainte de K c3, ce qui signifie que le pas a été trop grand. Onrecommence alors la phase 5 avec pour direction δ = x+−x. Cette phase peut donc demander plusieursitérations.

Si tout se passe bien, à chaque nouvelle grande itération (passant par l’étape 2), le nombre k decontraintes saturées augmente d’une unité. La sortie de l’algorithme se fait à l’étape 4 quand le point x

Page 41/42Réf. DCSD-2009_008-NOT-009-1.0

42 8. PNL AVEC CONTRAINTES (A FAIRE)

est à l’intersection d’un ensemble d’au moins dim(x) contraintes avec un gradient dirigé vers l’extérieurdu domaine admissible.

8.2 Fonctions de pénalisation

A développer : On remplace les contraintes par l’ajout de fonctions de pénalisation dans le critère,fonctions qui le dégradent rapidement quand le point courant s’approche d’une frontière ou qu’il lafranchit et qui est sans effet quand il est dans une zone admissible, assez loin de la frontière.

Page 42/42Réf. DCSD-2009_008-NOT-009-1.0