programmation lin aire - cours 5ppesneau/cours/proglin/cours5.pdf · r´eoptimisation post-optimale...

37
Algorithme du simplex dual Analyse de sensibilit´ e Quelques Rappels Simplex r´ evis´ e Programmation Lin´ eaire - Cours 5 P. Pesneau [email protected] Universit´ e Bordeaux 1 at A33 - Bur 265 P. Pesneau [email protected] Programmation Lin´ eaire - Cours 5

Upload: vonga

Post on 11-Sep-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Programmation Lineaire - Cours 5

P. [email protected]

Universite Bordeaux 1

Bat A33 - Bur 265

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Sommaire

1 Algorithme du simplex dual

2 Analyse de sensibilite

3 Quelques Rappels

4 Simplex revise

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Changement de notations

Primal :

max∑

j cjxj

s.c.∑n

j=1 ai ,jxj ≤ bi i = 1, . . . , m (yn+i : i = 1, . . . ,m)

xj ≥ 0 j = 1, . . . , n

Variables d’ecart :

xn+i = bi −∑n

j=1 ai ,jxj pour i = 1, . . . ,m

Dual :

min∑m

i=1 biyn+i

s.c.∑m

i=1 ai ,jyn+i ≥ cj j = 1, . . . , n (xj : j = 1, . . . , n)yn+i ≥ 0 i = 1, . . . , m

Variables d’exces :

yj =∑m

i=1 ai ,jyn+i − cj pour j = 1, . . . , n

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Complementarite

Une solution x primale realisable et une solution y duale realisablesont optimales si, et seulement si,

( x1 . . . xn xn+1 . . . xn+m )× × × ×

( y1 . . . yn yn+1 . . . yn+m )= = = =0 . . . 0 0 . . . 0

xi est en base si et seulement si yi est hors-base, et inversement.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Dictionnaires Primaux / Duaux

max 4x1 − 13x2 + 7x3s.c. 3x1 + 2x2 + 5x3 ≤ 5 (y4)

1x1 − 3x2 + 2x3 ≤ 3 (y5)x1 , x2 , x3 ≥ 0

min 5y4 + 3y5s.c. 3y4 + 1y5 ≥ 4

2y4 − 3y5 ≥ −135y4 + 2y5 ≥ 7y4 , y5 ≥ 0

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Dictionnaires Primaux / Duaux

Ajoutons les variables d’ecarts :

max 4x1 − 13x2 + 7x3s.c. 3x1 + 2x2 + 5x3 + 1x4 = 5

1x1 − 3x2 + 2x3 + x5 = 3x1 , x2 , x3 , x4 , x5 ≥ 0

Ecrivons le dictionnaire initial :

z = 0 + 4x1 − 13x2 + 7x3x4 = 5 − 3x1 − 2x2 − 5x3x5 = 3 − 1x1 + 3x2 − 2x3

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Dictionnaires Primaux / Duaux

Ajoutons les variables d’exces :

min 5y4 + 3y5s.c. 3y4 + 1y5 − y1 = 4

2y4 − 3y5 − y2 = −135y4 + 2y5 − y3 = 7y4 , y5 , y1 , y2 , y3 ≥ 0

Ecrivons le dictionnaire initial :

z = 0 + 5y4 + 3y5y1 = −4 + 3y4 + 1y5y2 = 13 + 2y4 − 3y5y3 = −7 + 5y4 + 2y5

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Dictionnaires Primaux / Duaux

Primal :

z = 0 + 4x1 − 13x2 + 7x3x4 = 5 − 3x1 − 2x2 − 5x3x5 = 3 − 1x1 + 3x2 − 2x3

Dual :

z = 0 + 5y4 + 3y5y1 = −4 + 3y4 + 1y5y2 = 13 + 2y4 − 3y5y3 = −7 + 5y4 + 2y5

Faisons entrer x1 en base et sortir x5 de la base dans le primal.(Attention, on va perdre la realisabilite.)

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Dictionnaires Primaux / Duaux

Primal :

z = 12 − 4x5 − 1x2 − 1x3x4 = −4 + 3x5 − 11x2 + 1x3x1 = 3 − 1x5 + 3x2 − 2x3

L’operation equivalente dans le dual consiste a faire entrer en basey5 et sortir de la base y1.Dual :

z = 12 − 4y4 + 3y1y5 = 4 − 3y4 + 1y1y2 = 1 + 11y4 − 3y1y3 = 1 − 1y4 + 2y1

M ↔ −MT

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Remarques

Conditions d’optimalite ⇔ conditions de realisabilitedu primal du dual

Conditions de realisabilite ⇔ conditions d’optimalitedu primal du dual

L’algorithme du simplex primal va de solutions realisables ensolutions realisables jusqu’a l’obtention de l’optimalite.

L’algorithme du simplex dual va de solutions “optimales” ensolutions “optimales” jusqu’a l’obtention de la realisabilite.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Forme algebrique

Soit B une base.

Primal :

z = cBB−1b + (cN − cBB

−1N)xNs.c. xB = B−1b − B−1NxN

xB, xN ≥ 0

Dual :

z = cBB−1b + (B−1b)T yB

s.c. yN = −(cN − cBB−1N)T + (B−1N)T yB

yN , yB ≥ 0

On pose :b = B−1b,c = cN − cBB

−1N,a = B−1A.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Algorithme du simplex dual

On va appliquer l’algorithme du simplex dual, en suivant lesoperations a partir des dictionnaires primaux.

yi est en base ⇔ xi hors-base.

yi est hors-base ⇔ xi en base.

Quand on va effectuer un pivotage :

yk entre en base et ys sort de la base.

xk sort de la base et xs entre en base.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Algorithme du simplex dual

Choix de la variable yk entrante dictee par la minimisation dudual :

k ∈ B telle que B−1k,. b = bk < 0

⇔ xk non realisable.

La base courante du dual N est optimale si b ≥ 0 ⇔ xB estprimale realisable.

La variable duale sortante est la premiere variable de base dudual a s’annuler :

s ∈ N telle que ak,s < 0 et csak,s

= mini

{

ciak,i

: ak,i < 0}

.

⇔ la variable primale entrante s ∈ N est la premiere dont lecout reduit s’annule.

Le probleme dual est non borne (irrealisabilite du primal) siak,i ≥ 0 pour tout i ∈ N

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Exemple

Primal z = 12 − 4x5 − 1x2 − 1x3x4 = −4 + 3x5 − 11x2 + 1x3x1 = 3 − 1x5 + 3x2 − 2x3

Dual z = 12 − 4y4 + 3y1y5 = 4 − 3y4 + 1y1y2 = 1 + 11y4 − 3y1y3 = 1 − 1y4 + 2y1

La condition d’optimalite du primal est verifiee ⇔ la solution dualeassociee est realisableLa solution du primal n’est pas realisable ⇔ la solution dualeassociee n’est pas optimale.On va donc appliquer le simplex dual.Variable sortante (entrante pour le dual) : x4 (y4)Variable entrante (sortante pour le dual) : x3 (y3)P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Exemple

Apres pivotage :

Primal z = 8 − 1x5 − 12x2 − 1x4x3 = 4 − 3x5 + 11x2 + 1x4x1 = −5 + 5x5 − 19x2 − 2x4

Dual z = 8 + 4y3 − 5y1y5 = 1 + 3y3 − 5y1y2 = 12 − 11y3 + 19y1y4 = 1 − 1y3 + 2y1

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Utilite

Eviter la phase I : Si un dictionnaire est primal realisable, onapplique le simplex primal.Si un dictionnaire n’est pas realisable mais satisfait auxconditions d’optimalite, on utilise le simplex dual.Si un dictionnaire n’est ni realisable, ni optimal, alors onapplique la phase I.

Simplex primal plus efficace ? : La complexite empirique dusimplex primal est en Θ(m + log n). Il est ainsi preferabled’avoir la plus grande valeur entre m et n dans le log. Si unprobleme a plus de contraintes que de variables, il estpreferable d’utiliser le simplex dual.

Reoptimisation post-optimale : Si on perturbe un problemeet qu’on perd la realisabilite, tout en gardant l’optimalite, ilest indique d’appliquer le simplex dual.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Sommaire

1 Algorithme du simplex dual

2 Analyse de sensibilite

3 Quelques Rappels

4 Simplex revise

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Analyse de sensibilite

L’analyse de sensibilite consiste a analyser l’optimalite et larealisabilite d’une base optimale lorsque l’on modifie le problemeinitial.

Modification de l’objectif.

Modification de capacite.

Ajout d’une variable.

Ajout d’une contrainte.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Modification de l’objectif

c → c ′ = c +∆

Est-ce que la base reste realisable ?Oui : b = B−1b ≥ 0 est independant de c .

Est-ce que la base reste optimale ?Verifier c ′ = c ′N − c ′BB

−1N ≤ 0.

Note : si c ′B = cB, alors

c ′N = c ′N − c ′BB−1N

c ′N − cN + cN − c ′BB−1N

∆N + cN

Reoptimisation : Si les conditions d’optimalite ne sont passatisfaites, comme on garde une base realisable, on appliquel’algorithme du simplex primal a partir de la base courante.P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Modification de capacite

b → b′ = b +∆

Est-ce que la base reste optimale ?Oui : c = cN − cBB

−1N ≤ 0 est independant de b.

Est-ce que la base reste realisable ?Verifier b′ = B−1b′ ≥ 0.

Noter que :

b′ = B−1b′

B−1b + B−1∆b + B−1∆

Reoptimisation : Les conditions d’optimalite restant verifiees, sion perd la realisabilite, on applique l’algorithme du simplex dual apartir de la base courante.P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Ajout d’une variable (colonne)

Ajout de x0 → (c0, a0)

La nouvelle variable est ajoutee hors-base. La solution (x , x0 = 0)reste realisable.La base reste-t-elle optimale ?

Verifier que le cout reduit de la nouvelle variable

c0 − cBB−1a0 ≤ 0.

Noter que y∗ = cBB−1 = −cE est disponible dans le dictionnaire

optimal.Reoptimisation : Comme la base est realisable, si le cout reduitde la nouvelle variable est > 0, on n’a pas l’optimalite. On appliquel’algorithme du simplex primal a partir de la base courante.Attention a bien recalculer a0 = B−1a0.P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Ajout d’une contrainte (ligne)

Ajout de dx ≤ d0

Ajouter une contrainte revient a ajouter une variable y0 dans ledual. Quand on ajoute une contrainte, on ajoute aussi une nouvellevariable d’ecart qui sera en base (cout reduit nul). La nouvelle basereste optimale.

La base reste-t-elle realisable ?Verifier que dx∗ ≤ d0.

Reoptimisation : Comme la base reste optimale (dual-realisable),si la contrainte n’est pas satisfaite, on aura une solution irrealisable(non optimale dans le dual) → simplex dual.

Note : lors de l’ajout de la nouvelle contrainte, il faudra penser aidentifier chaque variable de base presente dans la contrainte avecleur valeur en fonction des variables hors-base.P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Retour dans le yaourt

Dictionnaire initial :

Max 4x1+ 5x2+ 0x3+ 0x4+ 0x5 = z

2x1+ 1x2+ 1x3+ 0x4+ 0x5 = 8001x1+ 2x2+ 0x3+ 1x4+ 0x5 = 7000x1+ 1x2+ 0x3+ 0x4+ 1x5 = 300

Dictionnaire final :

Max 0x1+ 0x2− 1x3− 2x4+ 0x5 = z − 22000x1+ 0x2+

13x3−

23x4+ 1x5 = 100

1x1+ 0x2+23x3−

13x4+ 0x5 = 300

0x1+ 1x2−13x3+

23x4+ 0x5 = 200

On en deduit B = {5, 1, 2} et N = {3, 4}.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Informations issues des dictionnaires

A partir du dictionnaire initial :

Max 4x1+ 5x2+ 0x3+ 0x4+ 0x5 = z

2x1+ 1x2+ 1x3+ 0x4+ 0x5 = 8001x1+ 2x2+ 0x3+ 1x4+ 0x5 = 7000x1+ 1x2+ 0x3+ 0x4+ 1x5 = 300

B =

0 2 10 1 21 0 1

, N =

1 00 10 0

, b =

800700300

cB = (0, 4, 5), cN = (0, 0)

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Informations issues des dictionnaires

A partir du dictionnaire final :

Max 0x1+ 0x2− 1x3− 2x4+ 0x5 = z − 22000x1+ 0x2+

13x3−

23x4+ 1x5 = 100

1x1+ 0x2+23x3−

13x4+ 0x5 = 300

0x1+ 1x2−13x3+

23x4+ 0x5 = 200

cN = cN − cBB−1N = (−1, −2),

B−1N =

13

−23

23

−13

−13

23

, B−1b =

100300200

B−1AE = B−1I = B−1 =

13

−23

123

−13

0−1

323

0

cE = cE − cBB−1I = −cBB

−1 = −y∗ = (−1, −2, 0)P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Exemple analyse de sensibilite

Question : Dans quelle mesure puis-je modifier ma quantite de laiten stock sans que cela change la realisabilite ou l’optimalite de labase ?Changer b n’a d’influence que sur la realisabilite de la base (et surla valeur de l’objectif) mais pas sur l’optimalite.

On pose b′ = b +∆ avec ∆ =

0

B−1b′ = B−1b + B−1∆ =

100− 23δ

300− 13δ

200 + 23δ

≥ 0 ⇔δ ≤ 150δ ≤ 900δ ≥ −300

On doit avoir −300 ≤ δ ≤ 150.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Exemple analyse de sensibilite

Question : On veut produire un nouveau yaourt nature et sucre.Chaque kilo de ce yaourt necessitera l’utilisation de 2 kilos de laitet 1 kilo de sucre. A partir de quel prix ce yaourt sera-t-il rentable ?Ici, on va ajouter une variable x6 hors-base. Pour que sa productionsoit rentable, il faut que son cout reduit dans la base precedementoptimale soit > 0.Soit c6 le profit realise sur ce nouveau yaourt. Calculons

c6 = c6 − cBB−1N

.,6

c6 − (1, 2, 0)

021

c6 − 4

Pour que c6 ≥ 0, on doit avoir c6 ≥ 4.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Exemple analyse de sensibilite

Question : On veut maintenant prendre en compte la capacite dela chambre froide ou sont stockes les yaourts. Cette chambre froidepeut contenir au plus 400 kilos de yaourt. Quelle est l’influence surla solution optimale.Il s’agit ici d’ajouter une contrainte :

x1 + x2 ≤ 400

On peut tout d’abord remarquer que la contrainte est violee par lasolution optimale.Si x7 est la variable d’ecart associee a cette on ctrainte, on ajoute :

x7 = 400− x1 − x2x7 = 400− (300− 2

3x3 +

13x4)− (200 + 1

3x3 −

23x4)

x7 = −100 + 13x3 +

13x4

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Sommaire

1 Algorithme du simplex dual

2 Analyse de sensibilite

3 Quelques Rappels

4 Simplex revise

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Convention d’indexation des composantes de y

Primal Dual

Variables originales ↔ Variables d’ecartxO = (x1, . . . , xn) yO = (y1, . . . , yn)

Variables d’ecart ↔ Variables originalesxE = (xn+1, . . . , xn+m) yE = (yn+1, . . . , yn+m)

Dictionnaire final :

z = cBB−1b + (cN − cBB

−1N)xNs.c. xB = B−1b − B−1NxN

xB, xN ≥ 0

Solution z∗ = cBB−1b = cx∗ = y∗b

avec y∗ = y∗E = (y∗n+1, . . . , y∗n+m) = −cE = cBB

−1

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Sommaire

1 Algorithme du simplex dual

2 Analyse de sensibilite

3 Quelques Rappels

4 Simplex revise

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Simplex revise

Idee : ne calculer que ce qui est necessaire. Ne pas calculer tous lesdictionnaires.

Exemple :c = (19, 13, 12, 17, 0, 0, 0)

A =

3 2 1 2 1 0 01 1 1 1 0 1 04 3 3 4 0 0 1

Avec B = {1, 3, 7}, N = {2, 4, 5, 6},

xB =

546315

, B =

3 1 01 1 04 3 1

, N =

2 2 1 01 1 0 13 4 0 0

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Simplex revise

Trouver une variable entrante k de cout reduit positif :Calculer cN = cN − cBB

−1N :

Calculer yE = cBB−1 en resolvant le systeme yEB = cB.

(y5 y6 y7)

3 1 01 1 04 3 1

= (19 12 0)

On obtient yE = (3.5 8.5 0).

Calculer cN = cN − yEN

(13 17 0 0)− (3.5 8.5 0)

2 2 1 01 1 0 13 4 0 0

.

On obtient cN = (−2.5 1.5 − 3.5 − 8.5).x4 entre en base.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Simplex revise

Trouver une variable sortante s en augmentant la variable entrantejusqu’a la valeur t pour laquelle une variable de B s’annule :max {t ≥ 0 : B−1b − B−1N

.,kt ≥ 0}.

Calculer d = B−1N.,k en resolvant le systeme Bd = N

.,k

3 1 01 1 04 3 1

d1d2d3

=

214

Ce qui donne dT = (0.5 0.5 0.5).b = B−1b, la valeur courante de xB est disponible. Calculermax{t ≥ 0 : tdi ≤ bi , i = 1, . . . ,m}

= min{ bidi, i = 1, . . . ,m : di > 0}

= min{ 540.5

, 630.5

, 150.5

}On obtient tmax = 30 pour s = 7.x7 sort de la base.

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Simplex revise

Remettre a jour la solution de base.

B = (B \ {s}) ∪ {k}

N = (N \ {k}) ∪ {s}

On obtient la solution associee en posant :xk = tmax

xs = 0xi = xi − tmaxdi pour i ∈ B \ {s}.

Il faut encore remettre a jour B et N.

B = ({1, 3, 7} \ {7}) ∪ {4} = {1, 3, 4}

xB =

394830

, B =

3 1 21 1 14 3 4

, N =

2 0 1 01 0 0 13 1 0 0

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Quelques remarques

L’ordre des colonnes de B n’a pas d’importance a partir dumoment ou il est coherent avec l’ordre des composants de B.

La methode du simplex revise demande nettement moins detravail que celle du simplex qui calcule tous les coefficients dunouveau dictionnaire.

En pratique, la matrice B est factorisee, B = LU, pour uneplus grande efficacite de resolution des systemes yEB = cB etBd = N

.,k .

P. Pesneau [email protected] Programmation Lineaire - Cours 5

Algorithme du simplex dualAnalyse de sensibilite

Quelques RappelsSimplex revise

Algorithme du simplex revise

Soit B, xB et B une base initiale et la solution associee.

1 Resoudre yEB = cB.2 Choisir une variable k ∈ N telle que

ck = ck − yEA.,k > 0.S’il n’en existe pas, la solution est optimale, STOP.

3 Resoudre Bd = A.,k .

4 Trouver tmax = max{t ≥ 0 : xB − td ≥ 0}.S’il n’en existe pas, le probleme est non-borne, STOP.Sinon, on choisi une variable s qui tombe a zero dansxB − tmaxd .

5 Poser xB = xB − tmaxd et remplacer xs par xk = tmax dans xBPoser B = (B \ {s}) ∪ {k} et remplacer la colonne s de B parA.,k .

Retourner au pas 1.

P. Pesneau [email protected] Programmation Lineaire - Cours 5