• Aucun résultat trouvé

L’algorithme du simplexe

Dans le document Math´ematiques pour Informaticiens (Page 59-64)

Ç etMOQP , la conditonîM[QP implique

ÑZš ä4Û ï î,äu"ä)1©>¥[1¥> Ñ ñ P

Cette solution de base est alors une solution du probl`eme d’optimisation.

Le troisi`eme tableau de (4.8) v´erifie le crit`ere du simplexe (ñ8O P etî¸[ P ). La solution de base associ´ee

P et

˜ est donc une solution optimale du probl`eme de l’exemple 4.2. Pour se convaincre que l’algorithme (non recommand´e) du d´ebut de ce paragraphe n’est pas r´ealisable, consid´erons le cas o`u

KP etÝ W&

P (en pratique on est confront´e `a des dimensions beaucoup plus grande). Il y a

Ö&

 /6ž/˜/— possibilit´es de choisir &

P parmi les/P colonnes de la matrice

D

. Le calcul de toutes les solutions de base pourrait ainsi exiger la r´esolution d’environ

&

 /P6P/PKP syst`emes lin´eaires de &

P ´equations `a &

P inconnues.

IV.5 L’algorithme du simplexe

The author wishes to acknowledge that his work on this subject stemmed from discussions in the spring of 1947 with Marshall K. Wood, in connection with Air Force programming methods. The general nature of the “simplex” approach (vvv) was stimulated by discussions

with Leonid Hurwicz. (G.B. Dantzig 1951)

L’id´ee de suivre les arˆetes d’un poly`edre pour optimiser une fonction lin´eaire sous contraintes lin´eaires a d´ej`a ´et´e envisag´ee par J. Fourier2. Dantzig cependant la syst´ematise.

(J.F. Maurras 20023) L’algorithme du simplexe a ´et´e publi´e par Dantzig comme chapitre XXI dans un compte rendu d’une conf´erence4. C’est une proc´edure it´erative permettant d’effectuer une exploration dirig´ee des sommets du poly`edre en suivant des arˆetes jusqu’au sommet qui maximise la fonction objective. Cet algorithme est parmi les “Top 10 Algorithms of the 20th Century” (SIAM News, Vol. 33, Nr. 4, May 2000).

Le th´eor`eme suivant donne les formules qui, en partant d’un tableau du simplexe, nous permet d’obtenir le tableau associ´e `a un sommet voisin.

Th´eor`eme 5.1 SoitE

une base du probl`eme (4.4), Q& LZ ½ E , $g E , ñ` et E ø ñ î ÷ > ñ å $ d!ƒ d!ä ñ.! ‹ d†ƒ d†ä ñ.† î,ƒ î,ä > (5.1)

le tableau du simplexe correspondant. Si d!ƒ)¾

P (pivot), alors 5 E E ¼ ñ– ½

est une base.

2J.B.J. Fourier, Solution d’une question particuli`ere du calcul des in´egalit´es, Nouveau Bulletin des Sciences par la Soci´et´e Philomathique de Paris (1826) 99–100.

3

J.F. Maurras, Programmation Lin´eaire, Complexit´e, S´eparation et Optimisation, Math´ematiques & Applications 38, Springer, Paris, 2002.

4G.B. Dantzig, Maximization of a linear function of variables subject to linear inequalities, Activity Analysis of Production and Allocation (T.C. Koopmans, ed.), Wiley, New York, 1951, 339–347.

60 Optimisation

5

Le tableau qui correspond `a E

est donn´e par

E ø ñ î,÷ > $ å ñ ò Þ » ò Þ À ò Þ » ÷ Þ ò Þ » ‹ 1 ò ` » ò Þ » d†ä1 ò Þ À ò ò Þ » ñ.†1 ÷ Þ ò ` » ò Þ » 1‹ó » ò Þ » î,ä1 ò Þ À ó » ò Þ » >1 ÷ Þ ó » ò Þ »

Voici une astuce pour retenir cette formule:

v r ™ 1 f v r ™ r „ r 1 ÿ r =1 ÿ „ r

D´emonstration. La $ `eme composante de l’´equation

î 5 ø ï ñ est"! 5 ä4Û ï (!4äu"ä ñ.! . Commed!ƒ6¾

P , on peut en extraire (ña

, fix´e) et on obtient 5 & d!ƒ "! 5 ä4Û ïMô<õ ƒTö d!ä d!ƒ ñ.! d!ƒ

(voir la ligne “ñ” du tableau pourE

). En remplac¸ant de cette formule dans la‹ `eme composante de î 5 ø ï ñ (‹= E ½ ), on obtient 5 d†ƒ 1 & d!ƒ "!e1 ä4Û ïMô<õ ƒTö d!ä d!ƒ 5 ñ.! d!ƒ 5 äÛ ï*ô<õ ƒ'ö d†äu"ä ñ.† ou 5 d†!("! 5 ä4Û ïMô<õ ƒTö d†äu"ä ñ.†

ce qui v´erifie la ligne “‹ ” du tableau pourE

. La derni`ere ligne du tableau est obtenue de la mˆeme mani`ere.

Les formules du th´eor`eme pr´ec´edent donnent un moyen simple et efficace pour calculer des tableaux du simplexe `a partir d’un tableau connu. Il reste `a ´eviter le calcul des tableaux inutiles.

Algorithme du simplexe. Soit donn´e un tableau (5.1) avecñO P , c.-`a-d. la solution de base as-soci´ee est admissible. Alors, le programme suivant nous permet de trouver une solution optimale:

begin

if (îM[QP ) then

on a trouv´e une solution du probl`eme, stop

else choisirñ, avecî,ƒ ’ P if (d†ƒ`[QP pour tout‹­ E ) then

pas de solution, la fonction objective n’est pas major´ee, stop (voir explication 1)

else choisir$g E tel que ÷ Þ ò Þ » jß|}Ÿ0 ÷ ` ò V ‹­ E ad†ƒ ’ P* ; ´echanger$ etñ avec les formules du th´eor`eme pr´ec´edent; on obtient un nouveau tableau avec baseE

E ¼ ñ– ½ qui satisfait

ñ¬OQP et1 >SO1#> (voir explication 2) go to begin

end if end if end

Optimisation 61 Explications. 1. Siî,ƒ ’ P (pour un ñe ) et (†ƒ¬[óP pour tout‹S E

alors la fonction objective n’est pas major´ee sur l’ensemble des points admissibles.

D´emonstration. Consid´erons le rayon

ï d´efini par"ƒ4 ÷ ( O P ) et "äK P pour åg ½ ñ– . Alors ï ­O P etø ï ø

?ad†ƒ–Š÷Z[ÈP;[¸ñ . Les points du rayon

ï

sont donc admissible pour tout

OP et Ñ)­ 4 î ÷ ï 1#> î,ƒ 1¥> f q si f

2. Le choix deñ et de$ dans l’algorithme conduit `a un tableau avec ñ%OQP et avec 1 >SO1#> . D´emonstration. Nous avons ñ.ƒ

÷ Þ ò Þ »

OQP parce queñ.!®OQP et(!4ƒ

’ P et pour‹­ E ½ ñ.† ñ.†01 ñ.!4d†ƒ d!ƒ O©ñ.†šOQP si d†ƒ`[QP d†ƒ. ÷ ` ò 1 ÷ Þ ò Þ » 7OQP si d†ƒ ’ P* De plus, on a 1 > 1¥> 5 ÷ Þ ó » ò Þ » O1#> car î,ƒ ’ P , ñ.!ÁOP et d!ƒ ’ P .

Exemple 5.2 Consid´erons le probl`eme

5 f j8kLl 5 [ & P 5 [Q— š1J‚[Q š1w[ & 6OQP*×OQP 2 4 6 2 4 ­ ± °²­ °²±

et appliquons l’algorithme du simplexe.

Nous introduisons les quatre variables d’´ecart-0 4ì-/Ò-KAì-/à pour les quatre in´equations. Ceci donne un probl`eme de programmation lin´eaire avec Ý

´equations et

— variables non n´egatives. Les variables- ì-/ì-KAÒ-/à constituent une base, dont la solution associ´ee

P

est admissible. Cette base nous donne un tableau de d´epart pour l’algorithme du simplexe:

- & & P -/ & & — -/A & 1 & -/à & & & P -/à -0 1 & Ó -K 1 & Œ ˜ -KA 1

& & &

& & 1# ˜ 1# -/à -KA - Œ 1# ˜ -/ 1#Œ 1

& & &

1 & Œ Œ 1#˜ 1#ž -/ -/A - 1®Œ  -/à 1®Œ  & 1®Œ  1 1 & P

Dans le premier tableau, le deux composantes deî sont positives et on a le choix entre et

, c.-`a-d. on peut soit aller vers le sommet

&

P/ (c’´etait notre choix) soit vers le sommet ŽP*L˜/ . Dans les autres ´etapes, le pivot est unique. Il nous faut trois it´erations pour un tableau qui satisfait le crit`ere du simplexe. La solution du probl`eme est

,

et la valeur maximale de la fonction objective estÑZ opt

'& P .

62 Optimisation

Construction d’une solution de base admissible. L’algorithme du simplexe n´ecessite la con-naissance d’une base avecñ%OQP (solution de base admissible). Dans un probl`eme

æ ÷ f jßk(l D »[Ç MOQP ou de mani`ere ´equivalente †‰c0 æ †}"† f j8kLl -/† 5 äc0 @†äu"ä Çn† "†šOQP*N-*†šOQP (5.2)

avec ÇBO P , les variables- 4šì-*Ø forment une base dont la solution associ´ee est admissible. On peut alors imm´ediatement appliquer l’algorithme du simplexe.

Si, par contre, au moins une composante du vecteurÇ est n´egative, il faut une astuce suppl´ementaire pour trouver un tableau de d´epart. L’id´ee est de supprimer les in´equations avec Çn†­xÐP (pour que l’origine devienne un point admissible, voir le dessin de l’exemple 5.3) et ensuite de minimiser l’´ecart de celles-ci. Cela revient `a consid´erer le probl`eme auxiliaire

-/† 5 äc0 @†äŠ"ä Çn† si Çn† OQP -/†01”>ª† 5 äc0 @†äu"ä Çn† si Çn†šxP -/† OQP/3>ª†šOQP*×"†šOQP 1 † >ª† f jßk(l (5.3)

Ce probl`eme auxiliaire a les propri´et´es suivantes:

5

L’ensemble des variables -*† V Çn†OQP/ ¼ >ª† V

Ç.†šx€P* forme une base de (5.3) avec solution associ´ee P ,-/† P si Çn†¬xP ,-*† Ç.† si Çn†¬OÍP et >ª† 1¥Çn† siÇn†¬xWP . Cette solution satisfait "†OQP ,-*†2OQP , >ª†šOÈP . Elle est donc admissible et fournit un tableau de d´epart pour l’algorithme du simplexe appliqu´e `a (5.3).

5

La fonction objective 1

†

>ª† est major´ee par z´ero parce que>ª†šOP . Le probl`eme auxiliaire admet donc une solution finie.

5

Pour la solution ainsi trouv´ee on a deux possibilit´es:

(a) † >ª†

P , c.-`a-d. >ª†

P pout tout‹ . Dans cette situation, les valeurs et-*† satisfont les contraintes du probl`eme original (5.2). On a donc trouv´e une solution de base admissible pour (5.2).

(b) †

>ª†ßxºP . Si le probl`eme (5.2) avait un point -, satisfaisant les contraintes, la solution de (5.3) aurait>

P comme solution. L’ensemble des points admissibles pour (5.2) est donc vide dans cette situation.

Exemple 5.3 Consid´erons de nouveau le probl`eme

de l’exemple 4.1 pour lequel le vecteur Ç poss`ede une composante n´egative. Le probl`eme auxiliaire devient alors 1¥>@ f j8kLl - 5 5   -/71”>@ š1J 13 1®˜ -/A 5 -/à 5 ž 2 4 6 8 −2 2 4 6 8

Optimisation 63 Comme propos´e tout `a l’heure, nous prenons la base E

º

- 42>@ ì-KAì-/à et nous appliquons l’algorithme du simplexe au probl`eme auxiliaire. Ceci donne

-/ - & & P   >@ & & 1 & ˜ -/A & P P -/à P & P ž & & 1 & ˜ -KA -/ - 1 & & P >@ 1 & & 1 & & & P P -/à P & P ž 1 & & 1 & & -KA >@ -/ - P 1 & & Œ 1 & & 1 & & & P P -/à & 1 & & — P 1 & P P (5.4)

et les it´erations correspondent au chemin indiqu´e dans la figure. Si on avait choisi dans la premi`ere it´eration le pivot dans la colonne de , on aurait tout de suite trouv´e la solution de base admissible qui correspond `a

P et

˜ .

La valeur de la fonction objective est z´ero (voir le dernier tableau de (5.4)). En supprimant la colonne correspondant `a>@ , on obtient alors une solution de base admissible pour le probl`eme original. Il faut encore adapter la fonction objective

1®˜ 1©L 1®˜Ž1e-KA 5 /š1©-/A 5 -K 5 & -KA­1©L-/71w/

pour obtenir le tableau de d´epart cherch´e. L’algorithme du simplexe donne maintenant la solution en une it´eration: -/A -K -0 P & Œ 1 & 1 & & & P -Kà & & — & 1# K -/ -0 P & Œ & 1 & ˜ -KA & P -Kà 1 & & 1 & /P

IV.6 Exercices

Chapter V

Calcul int´egral

L’int´egral d’une fonction a ´et´e introduit et discut´e dans le cours “Analyse I” (semestre d’hiver). Le but de ce chapitre est d’exercer le calcul des int´egrals et de donner des applications interessantes. Nous suivrons de pr`es la pr´esentation des paragraphes II.4 et II.5 du livre “L’analyse au fil de l’histoire” de Hairer & Wanner (Springer-Verlag 2000).

Dans le document Math´ematiques pour Informaticiens (Page 59-64)