• Aucun résultat trouvé

7. Programmation non linéaire

N/A
N/A
Protected

Academic year: 2022

Partager "7. Programmation non linéaire"

Copied!
37
0
0

Texte intégral

(1)

IFT1575 Modèles de recherche opérationnelle (RO)

7. Programmation non linéaire

(2)

Fonctions convexes et concaves

Soit x’ et x’’ deux points dans Rn

Le segment de droite joignant ces deux points est l’ensemble des points

x = x’ + λ(x’’-x’) = λx’’ + (1- λ)x’, où λ ε [0,1]

Une fonction f est convexe si tout point sur le

segment de droite joignant f(x’) et f(x’’) se trouve au dessus du graphe de f :

f(λx’’ + (1- λ)x’) ≤ λf(x’’) + (1- λ)f(x’), pour toute paire de points x’, x’’

(3)

Fonctions convexes et concaves

Si cette inégalité est stricte, la fonction f est dite strictement convexe

Si on remplace ≤ par ≥ dans cette inégalité, la fonction f est dite concave :

f(λx’’ + (1- λ)x’) ≥ λf(x’’) + (1- λ)f(x’), pour toute paire de points x’, x’’

Si cette dernière inégalité est stricte, la fonction f est dite strictement concave

(4)

Fonctions convexes et concaves

(5)

Tests de convexité et de concavité

Supposons que f est une fonction deux fois dérivable d’une seule variable

f est convexe ssi

f est strictement convexe ssi

f est concave ssi

x x d

x f

d ( ) 0,

2 2

x x d

x f

d ( ) > 0,

2 2

x x d

x f

d ( ) 0,

2 2

(6)

Tests de convexité et de concavité

Supposons que f est une fonction deux fois dérivable de deux variables

Dans ce cas, on utilise le tableau suivant :

2 1

2 1

2 ( , )

x x x f

> 0

≥ 0

> 0

≥ 0

< 0

≤ 0

> 0

≥ 0

< 0

≤ 0

> 0

≥ 0

Strict.

concave Concave

Strict.

convexe Convexe

2 2

2 1

2 ( , )

x x x f

2

2 1 2

2 1 2

2 1

2 ( , ) ( , )

). ,

(

f x x f x x f x x

(7)

Tests de convexité et de concavité

Ces tests se généralisent à des fonctions de plus de deux variables en utilisant le Hessien (la matrice des dérivées secondes)

Deux résultats importants pour tester la convexité et la concavité de fonctions quelconques :

Une fonction qui s’exprime comme la somme de fonctions convexes (concaves) est convexe (concave)

L’opposé d’une fonction concave est convexe et vice-versa

Voir appendice 2, H&L, et TP 9 pour des exemples

(8)

Ensembles convexes

Un ensemble est convexe si, pour toute paire de points de l’ensemble, le segment de droite joignant ces deux points est contenu dans l’ensemble

On peut démontrer qu’un ensemble est convexe grâce aux propriétés suivantes :

Si f est convexe, alors {x | f(x) ≤ b} est convexe

Si f est concave, alors {x | f(x) ≥ b} est convexe

L’intersection d’ensembles convexes est convexe

(9)

Programmation non linéaire

Un modèle de programmation non linéaire prend la forme suivante :

On suppose qu’au moins une des fonctions f et gi est non linéaire

En général, on suppose aussi que toutes ces fonctions sont deux fois dérivables

m i

b x

x x g

x x

x f

i n

i

n

,..., 2 , 1

, )

,..., ,

(

) ,..., ,

( max

2 1

2 1

=

(10)

Exemple 1

On modifie l’exemple Wyndor Glass (sect. 2) en

remplaçant certaines contraintes par une contrainte non linéaire

Voyons comment on peut représenter ce problème graphiquement

0 ,

0

216 5

9

4

5 3

max

2 1

2 2 2

1

1

2 1

≤ +

+

=

x x

x x

x

x x

Z

(11)

Exemple 1 (suite)

(12)

Exemple 1 (suite)

On remarque que l’objectif est concave (car linéaire) et que le domaine réalisable est convexe : c’est un modèle de programmation convexe

Ici, la solution optimale est sur la frontière du

domaine réalisable, mais ne correspond pas à un coin (l’intersection de deux contraintes)

Résolution par Excel : Exemple1_NL.xls

(13)

Exemple 2

On modifie encore l’exemple Wyndor Glass (sect. 2), mais cette fois en remplaçant l’objectif linéaire par une fonction non linéaire

0 ,

0

18 2

3

12 2

4

13 182

9 126

max

2 1

2 1

2 1

2 2 2

2 1 1

≤ +

− +

=

x x

x x

x x

x x

x x

Z

(14)

Exemple 2 (suite)

(15)

Exemple 2 (suite)

On remarque que l’objectif est concave et que le domaine réalisable est convexe : c’est aussi un modèle de programmation convexe

Ici, la solution optimale (8/3,5) est sur la frontière du domaine réalisable, mais ne correspond pas à un

point extrême du domaine réalisable

Résolution par Excel : Exemple2_NL.xls

(16)

Exemple 3

Un exemple semblable au précédent, avec une fonction objectif toujours concave, mais différente

0 ,

0

18 2

3

12 2

4

13 78

9 54

max

2 1

2 1

2 1

2 2 2

2 1 1

≤ +

− +

=

x x

x x

x x

x x

x x

Z

(17)

Exemple 3 (suite)

(18)

Exemple 3 (suite)

Il s’agit à nouveau d’un modèle de programmation convexe

Ici, la solution optimale (3,3) est à l’intérieur du domaine réalisable

La fonction objectif est la somme de deux fonctions d’une seule variable

Si on annule les dérivées de chacune de ces

fonctions, on obtient la solution unique (3,3), qui se trouve à l’intérieur du domaine : c’est donc

nécessairement la solution optimale

(19)

Exemple 4

Un exemple semblable au premier, mais on introduit une contrainte non linéaire qui définit un domaine réalisable non convexe

0 ,

0

49 14

8

14 2

4

5 3

max

2 1

2 2 2

2 1 1

2 1

2 1

− +

+

=

x x

x x

x x

x x

x x

Z

(20)

Exemple 4 (suite)

(21)

Exemple 4 (suite)

Dans ce modèle de programmation non convexe, on remarque la présence de deux maxima locaux :

x est un maximum local si f(x) ≥ f(x’), pour tout x’

réalisable suffisamment près de x

(4,3) et (0,7) sont des maxima locaux, mais x*=(0,7) est le maximum global : f(x*) ≥ f(x’), pour tout x’ réalisable

Les méthodes classiques de programmation non linéaire permettent d’identifier un maximum local, mais pas nécessairement le maximum global!

Programmation convexe : maximum local = global

(22)

Optimisation sans contrainte

On considère le cas d’un modèle de programmation non linéaire dans lequel il n’y a aucune contrainte :

On peut alors montrer que :

si est un maximum local, alors

En d’autres mots, lorsque la dérivée s’annule en un point donné, ce point peut être un maximum local Il peut aussi être : minimum local ou point de selle

) ,..., ,

(

max f x1 x2 xn

en *

, ,..., 2 , 1 ,

) 0

( j n x x

x x f

j

=

=

=

) ,..., ,

( 1* 2* *

*

xn

x x x =

(23)

Optimisation sans contrainte (suite)

Par contre, si f est concave, un point où la dérivée s’annule est nécessairement un maximum global

De plus, si f est strictement concave, un tel maximum global est aussi unique

Sinon, que faire pour trouver un maximum global ?

Identifier tous les maxima locaux

Identifier celui de plus grande valeur

Vérifier que la fonction est bornée supérieurement (sinon, il n’y a pas de maximum global!)

(24)

Méthode de la bisection

On considère d’abord le cas le plus simple : la fonction objectif comporte une seule variable

On suppose que f est concave

On peut montrer alors que, si x* est une solution optimale, il existe a et b tels que a ≤ x* ≤ b et

a dx x

x

df ( ) > 0 ,si <

b x x

df ( ) < 0,si >

si *

, ) 0

( x x

dx x

df = =

(25)

Méthode de la bisection (suite)

Si f est strictement concave : a = x* = b

(26)

Méthode de la bisection (suite)

On fixe d’abord une borne inférieure pour laquelle la dérivée en ce point est > 0

On détermine également une borne supérieure pour laquelle la dérivée en ce point est < 0

Si les deux bornes ne sont pas suffisamment près l’une de l’autre, on prend le point milieu entre les deux bornes comme point candidat

Si la dérivée en est ≥ 0, on pose

Si la dérivée en est ≤ 0, on pose

On itère à nouveau tant que n’est pas suffisamment petit

x

i

x

s

x

c

x

c

x

i

= x

c

x

c

x

u

= x

c

i

u

x

x −

(27)

Méthode de la bisection (suite)

1. Identifier des bornes inférieure et supérieure initiales et

2. Déterminer le point candidat : 3. Si la dérivée en est ≥ 0 : 4. Si la dérivée en est ≤ 0 :

5. Si (où ε est un nombre suffisamment petit), arrêter; sinon, retourner à l’étape 2

x

i

x

u

2 / ) (

u i

c

x x

x = +

x

c

x

i

= x

c

x

c

x

u

= x

c

2 ε

i

u

x

x

6

4

2

3 12

)

( x x x x

f = − −

(28)

Méthode du gradient

Considérons une fonction concave f de plusieurs variables

Le gradient de f au point x’ est défini ainsi :

On peut montrer que le gradient correspond à une direction d’augmentation de la valeur de f

Dans la méthode du gradient, on se déplace dans la direction du gradient en tentant d’augmenter au

maximum la valeur de l’objectif

' en

)) ,..., (

) , (

) ( (

) ' (

2 1

x x x

x f x

x f x

x x f

f

n

=

=

(29)

Méthode du gradient (suite)

À partir d’un point initial x’, on effectue un

déplacement dans la direction du gradient vers un nouveau point x :

Dans cette formule, t* est la solution du problème de maximisation suivant :

C’est un problème de maximisation d’une fonction concave d’une seule variable : on peut donc le

résoudre par la méthode de la bisection

) ' (

' t

*

f x

x

x = + ∇

)) ' ( '

(

max

t0

f x + t ∇ f x

(30)

Méthode du gradient (suite)

1. Déterminer une solution initiale x’

2. Résoudre le problème suivant : 3. Soit t* la solution optimale :

4. Si , où ε est un nombre

suffisamment petit, arrêter; sinon, retourner en 2 Exemple :

Exécuter l’algorithme avec IOR Tutorial

)) ' ( '

(

max

t0

f x + t ∇ f x ) ' ( '

' x t

*

f x

x = + ∇

n x j

x f

j

,..., 2 , 1

) , '

( =

ε

2 2 2

1 2

2 1 2

1

, ) 2 2 2

( x x x x x x x

f = + − −

(31)

Optimisation sous contraintes

Dans le cas d’un modèle de programmation non linéaire sans contrainte, nous avons vu la condition d’optimalité suivante :

si est un maximum local, alors

Cette condition n’est plus valable lorsqu’il y a des contraintes, car une solution optimale peut se

trouver sur la frontière du domaine réalisable

en *

, ,..., 2 , 1 ,

) 0

( j n x x

x x f

j

=

=

=

) ,..., ,

( 1* 2* *

*

xn

x x x =

(32)

Exemple avec contrainte x ≥ 0

(33)

Conditions d’optimalité

Avec une contrainte de la forme x ≥ 0, les conditions d’optimalité s’énoncent ainsi :

si est un maximum local, alors

Mais quelles sont ces conditions dans le cas général, où les contraintes sont de la forme :

=

=

>

=

=

0 si

en 0

0 si

en ) 0

(

*

*

*

*

j j

j x x x

x x

x x

x f

) ,..., ,

( 1* 2* *

*

xn

x x x =

m i

b x

x x

g

i

(

1

,

2

,...,

n

) ≤

i

, = 1 , 2 ,...,

(34)

Conditions KKT(Karush-Kuhn-Tucker)

Si est un maximum local, alors il existe m nombres u1, u2, …, um tels que

m i

u

m i

b x

g u

m i

b x

g

n j

x x x

x u g

x x x f

n j

x x x

x u g

x x f

i

i i

i

i i

m

i j

i i j

j

m

i j

i i j

,..., 2 , 1 ,

0

,..., 2 , 1 ,

0 ) )

( (

,..., 2 , 1 ,

0 )

(

,..., 2 , 1 ,

en 0 ))

) ( ( (

,..., 2 , 1 ,

en ) 0

( )

(

*

*

* 1

*

* 1

=

=

=

=

=

=

=

=

=

=

=

) ,..., ,

( 1* 2* *

*

xn

x x x =

(35)

Conditions KKT : exemple

D’abord, il est facile de vérifier que les

multiplicateurs de Lagrange associés aux contraintes de non négativité doivent être nuls

On peut donc considérer qu’il n’y a qu’une seule contrainte avec

On associe à cette contrainte un multiplicateur 0

, 0

3 2

) 1 ln(

) , ( max

2 1

2 1

2 1

2 1

≤ +

+ +

=

x x

x x

x x

x x f

3 et

2 )

,

( 1 2 1 2 1

1 x x = x + x b =

g

≥ 0 u

(36)

Conditions KKT : exemple (suite)

On obtient

Puisque , on en déduit

0 )

3 2

(

0 3

2

0 )

1 (

0 )

1 2 ( 1

0 1

0 1 2

1

* 2

* 1 1

* 2

* 1

1

* 2

* 1 1

* 1

1

* 1 1

=

+

+

=

= +

+

x x

u

x x

u x

x u x

u x u

1 1 u

* 0

1

x 1 2 0

1

* 1 1

<

+ u

x

(37)

Conditions KKT : exemple (suite)

Puisque , on a

D’où

Puisque , on déduit

Les conditions KKT sont donc satisfaites en un seul point : (0,3)

Il s’agit bien d’un maximum global, car la fonction objectif est concave et le domaine réalisable est convexe (modèle de programmation convexe)

1 ≠ 0

u 2x1* + x2* − 3 = 0

* 3

2 =

x

* 0

2

x u1 =1

Références

Documents relatifs

(4,3) et (0,7) sont des maxima locaux, mais x*=(0,7) est le maximum global : f(x*) ≥ f(x’), pour tout x’ réalisable. Les méthodes classiques de programmation non

[r]

La fonction f n’est pas dérivable en 0 et le graphe de f possède une tangente verticale en

Sur internet, elles sont vendues 10 € l’une mais on paie 40 € de livraison quel que soit le nombre de cartouches achetées.. Soit x le nombre de

Montrer qu'une fonction somme d'une fonction croissante et d'une fonction dé- croissante est à variations bornées.. On suppose que V f ([a, b]) contient un

Indiquer, pour le président du club, la formule la plus avantageuse pour un voyage de dix personnes.. Justifier la réponse par

[r]

[r]