Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

27
25/11/2014 1 RCP104 Optimisation en Informatique 2014 – 2014 Dr. Nazih OUWAYED [email protected] http://nouwayed.yolasite.com Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE) Sommaire Introduction Application à un cas réel Résolution des PLNE Enumération Encadrement de la valeur optimale Branch & Bound Novembre 2014 2 RCP104 – Optimisation en Informatique

Transcript of Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

Page 1: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

1

RCP104

Optimisation en Informatique

2014 – 2014

Dr. Nazih [email protected]

http://nouwayed.yolasite.com

Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

Sommaire

� Introduction

� Application à un cas réel

� Résolution des PLNE

� Enumération

� Encadrement de la valeur optimale

� Branch & Bound

Novembre 20142 RCP104 – Optimisation en Informatique

Page 2: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

2

Introduction

Novembre 2014RCP104 – Optimisation en Informatique3

� PLNE

� Programmation linéaire où certaines variables ne peuvent prendre que des valeurs entières

� Deux types :

� PLNE pure (resp. mixte)

� La totalité (resp. un sous-ensemble) des variables sont entières

� PL binaire (ou PL01)

� Les variables entières ne peuvent être que 0 ou 1

Exemple (1/2)

Novembre 2014RCP104 – Optimisation en Informatique4

max z: x1 +0.64x2

s.c. :

50x1 +31x2 ≤ 250

3x1 - 2x2 ≥ - 4

x1 , x2 ≥ 0 et entiers

Page 3: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

3

Exemple (2/2)

Novembre 2014RCP104 – Optimisation en Informatique5

Point optimal continu (2.10, 4.95)Objectif 5.268

Point optimal entier (5, 0)Objectif 5

x2

x1

ApplicationChoix d’usines et d’entrepôts (1/6)

Novembre 2014RCP104 – Optimisation en Informatique6

� But : Choisir de nouveaux emplacements pour construire des usines et desentrepôts

� Données :

� Deux emplacements : Lyon et Toulouse

� On ne peut construire plus d’un entrepôt

� On ne peut construire un entrepôt que dans une ville où l’on a aussi une usine

� On connait, pour chaque ville :

� Coefficient de rentabilité usine ou entrepôt

� Coût de construction usine ou entrepôt

� Le coût total de construction ne peut pas dépasser 10

Objectif : maximiser la rentabilité

Page 4: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

4

Novembre 2014RCP104 – Optimisation en Informatique7

Rentabilité Coût

Usine à Lyon 9 6

Usine à Toulouse 5 3

Entrepôt à Lyon 6 5

Entrepôt à Toulouse4 2

ApplicationChoix d’usines et d’entrepôts (2/6)

� Données

Novembre 2014RCP104 – Optimisation en Informatique8

� Variables de décision :

� x1 = 1 si une usine est construite à Lyon et 0 sinon

� x2 = 1 si une usine est construite à Toulouse et 0 sinon

� y1 = 1 si un entrepôt est construit à Lyon et 0 sinon

� y2 = 1 si un entrepôt est construit à Toulouse et 0 sinon

ApplicationChoix d’usines et d’entrepôts (3/6)

Page 5: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

5

Novembre 2014RCP104 – Optimisation en Informatique9

� Contraintes

1- On ne peut construire plus d’un entrepôt

y1 + y2 ≤ 1

2- On ne peut construire un entrepôt que dans une ville où l’on a aussi une usine

y1 ≤ x1

y2 ≤ x2

3- Le coût total de construction ne peut pas dépasser 10

6x1 +3x2 +5y1 +2y2 ≤10

� Objectif

max 9x1 +5x2 +6y1 +4y2

ApplicationChoix d’usines et d’entrepôts (4/6)

Novembre 2014RCP104 – Optimisation en Informatique10

� Résumé du modèle et mise en version minimisation

ApplicationChoix d’usines et d’entrepôts (5/6)

min z : -9x1 - 5x2 - 6y1 - 4y2

s.c. :

y1 + y2 ≤ 1y1 ≤ x1

y2 ≤ x2

6x1 +3x2 +5y1 +2y2 ≤10

0 ≤ x1 , x2 , y1, y2 ≤ 1 et entiers

C’est notre exemple de base

Par définition : max z = min -z

Page 6: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

6

Novembre 2014RCP104 – Optimisation en Informatique11

Valeur optimale : Z* = -14

Valeur de x1 : 1

Valeur de x2 : 1

Valeur de y1 : 0

Valeur de y2 : 0

ApplicationChoix d’usines et d’entrepôts (6/6)

� Résolution par un solveur

Résolution des PLNE

Novembre 2014RCP104 – Optimisation en Informatique12

� Nous allons voir comment résoudre les PLNE

A. Dans le cas particulier des problèmes purementbinaires PL01

B. Dans le cas général des PLNE

Page 7: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

7

Novembre 2014RCP104 – Optimisation en Informatique13

min z : -9x1 - 5x2 - 6y1 - 4y2

s.c. :

y1 + y2 ≤ 1y1 ≤ x1

y2 ≤ x2

6x1 +3x2 +5y1 +2y2 ≤10

0 ≤ x1 , x2 , y1, y2 ≤ 1 et entiers

Résolution des PL01Exemple de base

Résolution des PL01

Novembre 2014RCP104 – Optimisation en Informatique14

1ère idée : Enumération

Page 8: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

8

Résolution des PL01Enumération (1/2)

Novembre 2014RCP104 – Optimisation en Informatique15

Idée : il existe un nombre fini de solutions.

Enumérons-les !

Résolution des PL01Enumération (1/2)

Novembre 2014RCP104 – Optimisation en Informatique16

Idée : il existe un nombre fini de solutions.

Enumérons-les !

Page 9: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

9

Résolution des PL01Enumération (1/2)

Novembre 2014RCP104 – Optimisation en Informatique17

Idée : il existe un nombre fini de solutions.

Enumérons-les !

Résolution des PL01Enumération (1/2)

Novembre 2014RCP104 – Optimisation en Informatique18

Idée : il existe un nombre fini de solutions.

Enumérons-les !

Page 10: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

10

Résolution des PL01Enumération (1/2)

Novembre 2014RCP104 – Optimisation en Informatique19

Idée : il existe un nombre fini de solutions.

Enumérons-les !

Novembre 2014RCP104 – Optimisation en Informatique20

� Pour n variables binaires, 2n cas possibles

� Pour n=20, plus d’un million

� Pour n=30, plus d’un milliard …

Idée d’énumération de tous les cas possibles

impraticable en cas d’un grand nombre de variables

Résolution des PL01Enumération (2/2)

Page 11: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

11

Résolution des PL01

Novembre 2014RCP104 – Optimisation en Informatique21

2ème idée : Encadrement

de la valeur optimale

Relaxation continueDéfinition

Novembre 2014RCP104 – Optimisation en Informatique22

� Relaxation continue

� On « oublie » le caractère entier des variables

� On obtient un programme linéaire (continu) qu’on saitrésoudre, par exemple par la méthode du simplexe :

� Solution (x1, x2, y1, y2)=(5/6, 1, 0, 1)� Valeur optimale : Z = -33/2 = -16.5

Page 12: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

12

Novembre 2014RCP104 – Optimisation en Informatique23

+∞

Valeurs possibles de toutes les

solutions admissibles, entières ou non

-16,5

-∞

Relaxation continueInterprétation (1/2)

valeuroptimale

Novembre 2014RCP104 – Optimisation en Informatique24

� Conclusion : La valeur optimale (en entier) ≥ -16.5

Propriété générale

• Pour un problème de maximisation :

La valeur optimale en entier ≤ la valeur optimale en continu

• Pour un problème de minimisation :

La valeur optimale en entier ≥ la valeur optimale en continu

On dit que la valeur optimale de la relaxation continue est

• une borne supérieure (si objectif de maximisation) ou

• une borne inférieure (si objectif de minimisation) de la valeur optimale en entier

Relaxation continueInterprétation (2/2)

Page 13: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

13

Rappel Exemple

Novembre 2014RCP104 – Optimisation en Informatique25

Point optimal continu (2.10, 4.95)Objectif 5.268

Point optimal entier (5, 0)Objectif 5

PL de maximisation Valeur optimale en entier

<Valeur optimale en continu

x2

x1

Connaissance d’une solution admissible

Novembre 2014RCP104 – Optimisation en Informatique26

Question : quelle information a-t-on si

l’on dispose d’une solution admissible ?

Page 14: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

14

Connaissance d’une solution admissibleExemple de base (1/3)

Novembre 2014RCP104 – Optimisation en Informatique27

� Admettons que l’on connaisse la solution

(x1, x2, y1, y2) = (1, 0, 0, 0) de valeur Z = -9

Novembre 2014RCP104 – Optimisation en Informatique28

+∞

-∞

Connaissance d’une solution admissibleExemple de base (2/3)

Valeurs possibles de toutes les solutionsentières optimales

-16,5

Valeurs possibles de toutes les solutions admissibles, entières ou non

-9

Page 15: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

15

Novembre 2014RCP104 – Optimisation en Informatique29

� Conclusion : la valeur d’une solution optimale est comprise entre -16.5 et -9

Propriété générale :

• Pour un problème de minimisation,

val. optimale en continu ≤ val. optimale en entier ≤ val. d’une solution admissible

borne inférieur borne supérieur

• Pour un problème de maximisation,

val. d’une solution admissible ≤ val. optimale en entier ≤ val. optimale en continu

Connaissance d’une solution admissibleExemple de base (3/3)

Algorithme Branch-and-Bound (B&B)

Novembre 2014RCP104 – Optimisation en Informatique30

� Ingrédients de base :

� Algorithme de séparation et évaluation

� Encadrement de la valeur optimale

� Borne inférieure

� Borne supérieure

� Enumération limitée dans le but d’obtenir un encadrement deplus en plus fin

Page 16: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

16

Novembre 2014RCP104 – Optimisation en Informatique31

� Dans la solution de la relaxation continue :

(x1, x2, y1, y2,) = (5/6, 1, 0, 1), x1 n’est pas entier

Z = -9x1 - 5x2 - 6y1 - 4y2

= -9*(5/6) -5*1 -6*0 – 4*1 = -7,5 -5-0-4 = -16,5

On va « brancher » selon les deux valeurs possibles de

x1 : 0 et 1

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique32

S : toutes les solutions entières

Opt ≥ -16.5

S1 : toutes les solutions entières

telles que x1=0

S2 : toutes lessolutions entières

telles que x1=1

x1=1x1=0

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 17: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

17

Novembre 2014RCP104 – Optimisation en Informatique33

Sous-ensemble S1 : x1=0

min Z = -5x2 -6y1 -4y2

s.c. :

y1 + y2 ≤ 1

y1 ≤ 0

y1 ≤ x2

3x2 + 5y1+ 2y2 ≤100 ≤ x2, y1, y2 ≤1 et entiers

Solution de la relaxation continue : (x2, y1, y2) =(1, 0, 1) et Z=-9,

et c’est une solution entière !

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique34

S : toutes les solutions entières

Opt ≥ -16.5

S1 : toutes les solutions entières

telles que x1=0Opt = -9

S2 : toutes lessolutions entières

telles que x1=1

x1=1x1=0

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 18: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

18

Novembre 2014RCP104 – Optimisation en Informatique35

Sous-ensemble S2 : x1=1

min Z = -9 -5x2 -6y1 -4y2

s.c. :

y1 + y2 ≤ 1y1 ≤ 1y1 ≤ x2

3x2 + 5y1+ 2y2 ≤ 40 ≤ x2, y1, y2 ≤1 et entiers

Solution de la relaxation continue : (x2, y1, y2) =(4/5, 0, 4/5) et Z= -16.2

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique36

S : toutes les solutions entières

Opt ≥ -16.5

S1 : toutes les solutions entières

telles que x1=0Opt = -9

S2 : toutes lessolutions entières

telles que x1=1Opt ≥ -16.2

x1=1x1=0

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 19: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

19

Novembre 2014RCP104 – Optimisation en Informatique37

� Conclusion actuelle

� Meilleure solution admissible connue (solution courante) de valeur -9

� Meilleure borne inférieure connue : -16.2

� La valeur optimale est donc comprise entre -9 et -16.2

Comment continuer ?

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique38

Le noeud S1 peut être élagué car on

connaît la valeur d’une solution

entière optimale dans cet ensemble

(Valeur solution courante ≥ relaxation continue)

Algorithme Branch-and-Bound (B&B)

Exemple de base

S1 : toutes les solutions entières

telles que x1=0Opt = -9

Page 20: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

20

Novembre 2014RCP104 – Optimisation en Informatique39

� Pour le noeud S2, on applique le

même traitement que pour S

� Solution de la relaxation continue :

(x1, x2, y1, y2) = (1,4/5, 0, 4/5) et Z=-16.2

On va brancher sur x2

Algorithme Branch-and-Bound (B&B)

Exemple de base

S2 : toutes lessolutions entières

telles que x1=1Opt ≥ -16.2

Novembre 2014RCP104 – Optimisation en Informatique40

� Sous-ensemble S3 : x1 =1 et x2 =0

Solution de la relaxation continue :

(x1, x2, y1, y2)= (1,0,4/5,0) et Z=-13.8

� Sous-ensemble S4 : x1 =1 et x2 =1

Solution de la relaxation continue :

(x1, x2, y1, y2)= (1,1,0,0.5)et Z=-16

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 21: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

21

Novembre 2014RCP104 – Optimisation en Informatique41

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique42

� Conclusion actuelle :

� Valeur meilleure solution connue : -9

� Meilleure borne inférieure connue : -16

� On ne peut élaguer ni S3 ni S4

� On « repart » avec S4 qui a la plus petite borne inférieure

On branche sur y1

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 22: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

22

Novembre 2014RCP104 – Optimisation en Informatique43

� Sous-ensemble S5 : x1=1, x2=1 et y1=0

Solution de la relaxation continue :

(x1, x2, y1, y2)= (1,1,0,0.5) et Z=-16

� Sous-ensemble S6 : x1=1, x2=1 et y1=1

Impossible

S6 peut donc être élagué

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique44

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 23: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

23

Novembre 2014RCP104 – Optimisation en Informatique45

� Conclusion actuelle :

� Valeur meilleure solution connue : -9

� Meilleure borne inférieure connue : -16

� On peut repartir soit avec S3 soit avec S5

On repart avec S5

On branche sur y2

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique46

� Sous-ensemble S7 : x1=1, x2=1, y1=0 et y2=0

Solution unique entière et Z=-14 (<-9 donc Nouvelle solution courante)

� Sous-ensemble S8 : x1=1, x2=1, y1=0 et y2=1

impossible

S8 peut donc être élagué

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 24: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

24

Novembre 2014RCP104 – Optimisation en Informatique47

Algorithme Branch-and-Bound (B&B)

Exemple de base

Novembre 2014RCP104 – Optimisation en Informatique48

� Conclusion : on peut s’arrêter car tous les noeuds ont été élagués. On prouve ainsi que la solution de valeur -14 est optimale !

Algorithme Branch-and-Bound (B&B)

Exemple de base

Page 25: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

25

Novembre 2014RCP104 – Optimisation en Informatique49

Algorithme Branch-and-Bound (B&B)Exemple de base gain par rapport à l’énumération complète

Novembre 2014RCP104 – Optimisation en Informatique50

� Initialisation� Calculer une solution admissible de valeur Z* ou poser Z*=+∞

� Résoudre la relaxation continue et mettre à jour éventuellement Z* (évaluation)

� Appliquer les tests d’élagage

� Tant qu’il reste des noeuds non élagués� Choisir un noeud non élagué

� Brancher sur une des variables (séparation)

� Pour chacun des 2 nouveaux noeuds, résoudre la relaxation continue et mettre à jour éventuellement Z*

� Appliquer les tests d’élagage

� Fin tant que

� La solution courante Z* est optimale

Algorithme Branch-and-Bound (B&B)Résumé

Page 26: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

26

Novembre 2014RCP104 – Optimisation en Informatique51

� Un noeud est élagué si:

� La relaxation continue n’a pas de solution

� La valeur optimale de la relaxation continue ≥ Z*

� Solution entière de la relaxation continue

� Pas de solution admissible entière

Algorithme Branch-and-Bound (B&B)Résumé

Novembre 2014RCP104 – Optimisation en Informatique52

� Dans le cas général des variables entières (non seulement 0-1), on choisit une variable de valeur fractionnaire dans la solution optimale de la relaxation continue et on branche sur l’arrondi supérieur et inférieur de cette valeur

Exemple : x5=132.48

x5≤132 x5≥133

Algorithme Branch-and-Bound (B&B)Résumé

Page 27: Chapitre 5: Programmation Linéaire en Nombres Entiers (PLNE)

25/11/2014

27

Détermination des solutions admissibles

Novembre 2014RCP104 – Optimisation en Informatique53

� Ce n’est pas toujours facile (pb general NP-complet)

� Il n’existe pas de méthode générale rapide

� On peut se contenter de celles qu’on trouve lors de la résolution des relaxations continues

� Il existe des algorithmes qui fonctionnent bien dans des cas particuliers, par exemple l’arrondi

Références

Novembre 2014RCP104 – Optimisation en Informatique54

� Cours Optimisation en Informatique – Sourour ELLOUMI et Eric Soutif

� Wikipédia