Vous êtes sur la page 1sur 13

Analyse Numérique

Problèmes Pratiques

Analyse Numérique Problèmes Pratiques Optimisation

Optimisation

Introduction

1/2

Introduction 1/2 ❚ Optimisation = trouver le minimum (/maximum) d'une fonction maximum global la fonction est

Optimisation = trouver le minimum (/maximum) d'une fonction

maximum global la fonction est unimodale sur I J minimum global maximum locaux minimum locaux
maximum global
la fonction est
unimodale sur I
J
minimum global
maximum locaux
minimum locaux
Ph. Leray
Analyse Numérique
1

Introduction

2/2

Introduction 2/2 ❚ Comment trouver le minimum de f ? ❙ résolution de f'(x)=0 ➨ résolution

Comment trouver le minimum de f ?

résolution de f'(x)=0

résolution d'un système d'équations …

méthodes "spéciales" de minimisation

Ph. Leray

Analyse Numérique

2

Newton pour la minimisation 1/2 ❚ Newton "de base" : résolution de g(x)=0 x =
Newton pour la minimisation
1/2
❚ Newton "de base" : résolution de g(x)=0
x
=
x
+
h
❙ on construit une suite
avec
∇g x
()
h = −g
()
x
k
+
1
k
k
k
∂ x
∂ x
∂ x
n 
1
2
∂ g
Μ
Ο
Μ
g
∂ g
n
(
)
n
x
Λ
Λ
(
x )
∂ x
∂ x
n 
1
Ph. Leray
Analyse Numérique
3

 ∂ g

1

(

x )

g

1

(

x )

Λ

g

1

( x )

g

(

x

)

=

x

2

1

( x

)

Ο

Μ

Newton pour la minimisation

2/2

Newton pour la minimisation 2/2 ❚ on veut résoudre f'(x)=0 g=f' x = x + h
❚ on veut résoudre f'(x)=0 g=f' x = x + h ❙ on construit une
❚ on veut résoudre f'(x)=0
g=f'
x
=
x
+
h
on construit une suite
avec
H
()
x
.h = − f'
()
x
k
+
1
k
k
k
2
2
2
f
f
f
 ∂ f
Λ
2
x
∂ x
∂ x
∂ x
∂ x
x
1
1
1
2
1
n
2
2
f ' =
Μ
f
f
Μ
f
H =
2
∂ ∂ x
x
x
2
1
2
x
Μ
Ο
Μ
n
2
2
f
f
Κ
Λ
2
∂ ∂ x
x
x
calculs !
n
1
n
Hessien de f
Gradient de f
Ph. Leray
Analyse Numérique
4
Autres méthodes 1/2 ❚ On se restreint facilement aux fonctions f : R n →
Autres méthodes
1/2
❚ On se restreint facilement aux fonctions f : R n → R
❚ exemple :
2
 x
+
y
+
sin( z )
f ( x,y,z ) =
3
x
❙ f : R 3 → R 3
z
+ e
xz
+ y
❙ on peut construire g : R 3 → R
)(
2
3
x
) 2
g( x, y, z ) =
( x + y
2 + sin( z )
+
z
+ e
+
( xz + y
) 2
et
min(g)= min(f)
Ph. Leray
Analyse Numérique
5

Autres méthodes

2/2

Autres méthodes 2/2 ❚ Comme dans le cas de la résolution de f(x)=0 : ❙ méthodes

Comme dans le cas de la résolution de f(x)=0 :

méthodes utilisant le calcul des dérivées

avantage : rapidité

inconvénient : calcul de la dérivée !

dimension 1 :

Gradient (steepest descent) Gradient

dimension n :

méthodes utilisant seulement la fonction

avantage : pas de calcul de dérivée

inconvénient : moins rapides

dimension 1 :

Golden search

dimension n :

Random search,

Ph. Leray

Analyse Numérique

6

Golden search

1/8

Golden search 1/8 ❚ Principe = réduire l'intervalle [a,b] Combien faut-il choisir de points ? f(b)

Principe = réduire l'intervalle [a,b]

Combien faut-il choisir de points ? f(b) f(a) a b Ph. Leray Analyse Numérique
Combien faut-il choisir de points ?
f(b)
f(a)
a
b
Ph. Leray
Analyse Numérique

7

Golden search

2/8

Golden search 2/8 ❚ Principe (suite) f(b) si on prend c=milieu[a,b], peut-on savoir de quel côté

Principe (suite)

f(b) si on prend c=milieu[a,b], peut-on savoir de quel côté de c est le minimum
f(b)
si on prend c=milieu[a,b], peut-on savoir
de quel côté de c est le minimum ?
f(a)
f(c)
a
c b
Ph. Leray
Analyse Numérique

8

Golden search

3/8

Golden search 3/8 ❚ Principe (suite) f(b) f(a) f(c) a c b si on prend c=milieu[a,b],

Principe (suite)

f(b) f(a) f(c) a c b
f(b)
f(a)
f(c)
a
c b

si on prend c=milieu[a,b], peut-on savoir de quel côté de c est le minimum ?

Non !

il faut 2 points

Ph. Leray

Analyse Numérique

9

Golden search

4/8

Golden search 4/8 ❚ Principe (suite) comment choisir les 2 points ? f(b) f(a) f(d) f(c)

Principe (suite)

comment choisir les 2 points ? f(b) f(a) f(d) f(c) a c d b
comment choisir les 2 points ?
f(b)
f(a)
f(d)
f(c)
a
c
d b

Analyse Numérique

ac=A

ad=B

ab=1

A/B=B/1

A=B 2

(1-B)/(1-A)=(1-A)/1 …

B 2 +B-1=0

nombre d'or

5 − 1 B = r = A = 1 − r 2
5
1
B
=
r
=
A
=
1
r
2

Ph. Leray

Golden search

5/8

Golden search 5/8 ❚ Algorithme ❙ f fonction unimodale sur [a,b] ❙ a 1 =a ;

Algorithme

f fonction unimodale sur [a,b]

a 1 =a ; b 1 =b ; k=1

répéter

c k =a k +(1-r)(b k -a k ) d k =a k +r(b k -a k )

si f(c k )<=f(d k )

a k+1 =a k ; b k+1 =d k ; (d k+1 =c k )

sinon

a k+1 =c k ; b k+1 =b k ; (c k+1 =d k )

jusqu'à une certaine précision

Ph. Leray

Analyse Numérique

convergence linéaire

11

Golden search 6/8 ❚ Exemple f(x) = x 2 - sin(x) sur [0,1] 0.2 a
Golden search
6/8
❚ Exemple
f(x) = x 2 - sin(x)
sur [0,1]
0.2
a b
c
d
0.15
0.0000 0.3820 0.6180 1.0000
0.1
f(b)
f(c)
0.05
-0.2268
-0.1975
0
-0.05
-0.1
0.0000 0.2360 0.3820 0.6180
-0.15
-0.2
-0.25
0 0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Ph. Leray
Analyse Numérique
12
Golden search 7/8 ❚ Exemple f(x) = x 2 - sin(x) sur [0,1] 0.2 a
Golden search
7/8
❚ Exemple
f(x) = x 2 - sin(x)
sur [0,1]
0.2
a b
c
d
0.15
0.0000 0.3820 0.6180 1.0000
0.1
0.0000
0.2360 0.3820 0.6180
0.05
f(b)
f(c)
0
-0.1781
-0.2268
-0.05
-0.1
0.2360
0.3820 0.4721 0.6180
-0.15
-0.2
-0.25
0 0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Ph. Leray
Analyse Numérique
13

Golden search

8/8

Golden search 8/8 ❚ Exemple f(x) = x 2 - sin(x) sur [0,1] 0.2 0.15 0.1

Exemple

f(x) = x 2 - sin(x)

sur [0,1]

0.2 0.15 0.1 0.05 0 -0.05 -0.1 -0.15 -0.2 -0.25 0 0.1 0.2 0.3 0.4
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.25
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Ph. Leray
Analyse Numérique

a

b

c

d

0.0000

0.3820 0.6180 1.0000

0.0000

0.2361 0.3820 0.6180

0.2361

0.3820 0.4721 0.6180

0.3820

0.4721 0.5279 0.6180

0.4501

0.4502 0.4503 0.4504

0.4501

0.4502 0.4502 0.4503

0.4501

0.4502 0.4502 0.4502

0.4502 0.4502 0.4502 0.4502

14

Gradient (Steepest Descent)

1/8

Gradient (Steepest Descent) 1/8 ❚ Principe si on prend c n'importe où, peut-on savoir de quel

Principe

si on prend c n'importe où, peut-on savoir de quel côté de c est le
si on prend c n'importe où, peut-on savoir
de quel côté de c est le minimum ?
c

Ph. Leray

Analyse Numérique

15

Gradient (Steepest Descent)

2/8

Gradient (Steepest Descent) 2/8 ❚ Principe c si on prend c n'importe où, peut-on savoir de

Principe

c
c

si on prend c n'importe où, peut-on savoir de quel côté de c est le minimum ?

Oui !

grâce au signe de -f'(c)

S= - f'(c) / |f'(c)|

Ph. Leray

Analyse Numérique

16

Gradient (Steepest Descent)

3/8

Gradient (Steepest Descent) 3/8 Minimum de f ❚ n=2 x 2 + Lignes "iso" : f(x
Minimum de f ❚ n=2 x 2 + Lignes "iso" : f(x 1 ,x 2
Minimum de f
n=2
x
2
+
Lignes "iso" :
f(x 1 ,x 2 ) = constante
Direction de descente
- f’(c)
Le gradient est
orthogonal aux
lignes "iso"
x
1
Ph. Leray
Analyse Numérique
17

Gradient (Steepest Descent)

4/8

Gradient (Steepest Descent) 4/8 ❚ Principe (en dimension n ) ❙ c ∈ R n f(c)

Principe (en dimension n)

cR n

f(c)R

k

+ 1

=

c ρ

k

ρ d

+α

c ρ

avec

ρ d = −

f ′ ( c k ) f ′ ( c ) k
f
′ ( c
k )
f
( c
)
k

α = pas de descente

= direction de descente

Ph. Leray

Analyse Numérique

18

Gradient (Steepest Descent)

5/8

Gradient (Steepest Descent) 5/8 ❚ Principe (en dimension n ) ❙ choix du pas de descente

Principe (en dimension n)

choix du pas de descente α ?

α constant : facile à calculer !

α qui minimise

c

k

α

f ′ ( c k ) f ′ ( c ) k
f
′ ( c
k )
f
( c
)
k

: lourd à calculer

α variable

ex :

si f(c k+1 ) < f(c)

alors α ← 1.1*α (alors on accélère un peu)

sinon α ← α/2 (sinon on freine beaucoup)

(si on est dans la bonne direction)

Ph. Leray

Analyse Numérique

19

Gradient (Steepest Descent)

6/8

Gradient (Steepest Descent) 6/8 ❚ Algorithme ( α variable) ❙ initialisation de c 1 et de

Algorithme (α variable)

initialisation de c 1 et de α k

répéter

d=-f'(c k )/norm[f'(c k )]

c k+1 =c k + α k d

si f(c k+1 )<f(c k )

α k+1 = 1.1*α k

sinon

α k+1 = α k / 2

jusqu'à une certaine précision

Ph. Leray

Analyse Numérique

20

Gradient (Steepest Descent)

7/8

Gradient (Steepest Descent) 7/8 f(x) = (x 1 4 - 16 x 1 2 + 5
f(x) = (x 1 4 - 16 x 1 2 + 5 x 1 )/2
f(x) = (x 1 4 - 16 x 1 2 + 5 x 1 )/2 + (x 2 4 - 16 x 2 2 + 5 x 2 )/2
Exemple
Ph. Leray
Analyse Numérique
21

x2

Gradient (Steepest Descent)

8/8

x2 Gradient (Steepest Descent) 8/8 ❚ Lignes "iso" Ph. Leray 4 3 2 1 0 -1

Lignes "iso"

Ph. Leray

4 3 2 1 0 -1 -2 -3 -4 -4 -3 -2 -1 0 1
4
3
2
1
0
-1
-2
-3
-4
-4
-3
-2
-1
0
1
2
3
4
x1

Analyse Numérique

22

Sujet de TD

Sujet de TD ❚ Golden search ❙ Implémentation en Matlab ❙ Test sur f(x) = x

Golden search

Implémentation en Matlab

Test sur f(x) = x 2 - sin(x)

Gradient

Implémentation en Matlab (pas constant et variable)

Test sur f(x) = (x 1 4 -16 x 1 2 +5 x 1 )/2 + (x 2 4 -16 x 2 2 +5 x 2 )/2

Ph. Leray

Analyse Numérique

23

Conclusion

Conclusion ❚ Méthodes issues de g(x)=0 avec g=f' ❚ Méthodes utilisant seulement f(x) ❙ fonctions à

Méthodes issues de g(x)=0 avec g=f'

Méthodes utilisant seulement f(x)

fonctions à 1 variable : golden search

fonctions à n variables : discret + simplex

Méthodes utilisant f(x) et f'(x) : gradient

problème = choix du α

compromis calculs supplémentaires/ vitesse de convergence

Méthodes utilisant les dérivées d'ordre 2 :

gradient conjugué

Ph. Leray

Analyse Numérique

24