Top Banner
29

UE RCP104 Optimisation en Informatique PLNE Un exemple …

Jun 23, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: UE RCP104 Optimisation en Informatique PLNE Un exemple …

UE RCP104 � Optimisation en InformatiquePLNE � Un exemple de déroulement de

Branch-and-bound

E. Soutil

Cnam

2018-2019

E. Soutil (Cnam) 2018-2019 1 / 28

Page 2: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Le problème à résoudre � Exemple

Soit le PLNE suivant :

(P)

max Z = 5x1 + 8x2

s.c.

x1 + x2 ≤ 65x1 + 9x2 ≤ 45

x1, x2 ∈ N

E. Soutil (Cnam) 2018-2019 2 / 28

Page 3: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Le problème à résoudre � Résolution graphique

Le domaine réalisable de(P) est constitué des pointsentiers (bleus) situés dans lepolyèdre ;

La solution optimale de (P)est le dernier point rencontrépar une droite de coûtconstant (verte) : c'est lepoint de coordonnées (0, 5)de valeur 40.Mais cette résolution graphique n'est possible que pour 2 variables ⇒on utilise une méthode arborescente (branch-and-bound).

E. Soutil (Cnam) 2018-2019 3 / 28

Page 4: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Remarques préliminaires � Relaxation continue

On note (P) la relaxation continue de (P) : il s'agit du problèmeobtenu à partir de (P) en oubliant (�relâchant�) la contrainted'intégrité sur les variables x1 et x2) :

(P)

max Z = 5x1 + 8x2

s.c.

x1 + x2 ≤ 65x1 + 9x2 ≤ 45

x1, x2 ≥ 0

Si (P) admet des solutions (c'est le cas ici) et si on désigne parmax(P) et max(P) les valeurs optimales de (P) et (P), alors on a :

max(P) ≤ max(P)

E. Soutil (Cnam) 2018-2019 4 / 28

Page 5: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Remarques préliminaires � Relaxation continue

On note (P) la relaxation continue de (P) : il s'agit du problèmeobtenu à partir de (P) en oubliant (�relâchant�) la contrainted'intégrité sur les variables x1 et x2) :

(P)

max Z = 5x1 + 8x2

s.c.

x1 + x2 ≤ 65x1 + 9x2 ≤ 45

x1, x2 ≥ 0

Si (P) admet des solutions (c'est le cas ici) et si on désigne parmax(P) et max(P) les valeurs optimales de (P) et (P), alors on a :

max(P) ≤ max(P)

E. Soutil (Cnam) 2018-2019 4 / 28

Page 6: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Remarques préliminaires � Relaxation continue

max(P) ≤ max(P)

En e�et, la solution optimale de (P) (n')est (qu')une solutionadmissible de (P), l'inverse étant le plus souvent faut.

De façon plus générale encore, si l'on considère les deux problèmessuivants, sans faire d'hypothèse sur la fonction f , et liés par unerelation d'inclusion de leurs domaines :

(P) : maxx∈X

f (x) et (P) : maxx∈Y⊂X

f (x)

... si (P) admet des solutions, on a encore : max(P) ≤ max(P) : enélargissant le domaine (P), il devient possible de trouver des solutionsmeilleures.

E. Soutil (Cnam) 2018-2019 5 / 28

Page 7: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Relaxation continue � max(P) ≤ max(P) � Illustration

E. Soutil (Cnam) 2018-2019 6 / 28

Page 8: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Remarques préliminaires � Relaxation continue

max(P) ≤ max(P)

Corollaire

Si la solution optimale x∗ de la relaxation continue (P) de (P) est entière,

alors c'est également la solution optimale de (P) et dans ce cas :

max(P) = max(P)

En e�et, x∗ est alors admissible pour (P) et toutes les solutionsadmissibles de (P) sont de valeur inférieure ou égale max(P) qui est lavaleur de x∗

E. Soutil (Cnam) 2018-2019 7 / 28

Page 9: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Algorithme de Branch-and-bound

On recherche la solution optimale de (P) en développant un arbre(binaire) de recherche.

La racine de l'arbre correspond au problème (P) de départ.

Les n÷uds suivants correspondront à des sous-problèmes du problèmede départ.

À chaque n÷ud de l'arbre, on calcule la relaxation continue dusous-problème considéré. Cette relaxation continue fournit un majorant(borne) de la solution optimale entière du sous-problème considéré.

Pour éviter de devoir développer l'intégralité de l'arbre, on applique,lorsque c'est possible, trois critères permettant d'élaguer le n÷udconsidéré.

E. Soutil (Cnam) 2018-2019 8 / 28

Page 10: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Algorithme de Branch-and-bound � Critères d'élagage

On peut élaguer un n÷ud lorsque :

1 la solution optimale de la relaxation continue du noued est entière : onconnaît alors la solution optimale entière du noeud, et il n'est pasnécessaire de développer ses noeuds �ls ;

2 le sous-problème considéré n'admet aucune solution réalisable(continue)

3 la borne fournie par la relaxation continue est de valeur inférieure ouégale à une solution entière déjà connue du problème (P) de départ : iln'existe pas de possibilité d'améliorer cette solution dans le noeudconsidéré.

Élaguer un n÷ud ne signi�e pas nécessairement que l'optimum duproblème de départ ne s'y trouve pas. Cela signi�e qu'il n'est pasnécessaire de développer ses noeuds �ls, dans la mesure où l'on connaîttoute l'information sur la meilleure solution entière de ce noeud.

E. Soutil (Cnam) 2018-2019 9 / 28

Page 11: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étape 0

À la racine de l'arbre, on calcule la relaxation continue du problème dedépart (le solveur utilise le simplexe, ici nous résolvons graphiquementles relaxations continues)

E. Soutil (Cnam) 2018-2019 10 / 28

Page 12: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étape 0

On représente les informations relatives à chaque n÷ud de l'arbre enreportant :

I le numéro de l'étape,I la solution optimale de la relaxation continueI sa valeurI et on en déduit un majorant de la solution optimale du sous-problème

en cours de résolution (si comme ici les coe�. dans Z sont tous entiers,on peut prendre comme borne la partie entière inférieure de larelaxation continue)

La solution de la relaxation continue n'étant pas entière, on développedeux n÷uds �ls correspondant aux étapes 1 et 2.

E. Soutil (Cnam) 2018-2019 11 / 28

Page 13: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étapes 1 et 2

On choisit une variable fractionnaire dans la solution continueprécédente. Ici, on a le choix entre x1 et x2. Un critère courammentutilisé consiste à choisir la variable qui a la plus grande partiefractionnaire, ici x2.

On e�ectue un branchement sur les valeurs entières possibles de x2,qui partionne le domaine réalisable : x2 ≥ 4 ou bien x2 ≤ 3 :

E. Soutil (Cnam) 2018-2019 12 / 28

Page 14: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étape 1 � Résolution du problème (P1) incluant la contrainte x2 ≥ 4

E. Soutil (Cnam) 2018-2019 13 / 28

Page 15: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étape 1 � Résolution du problème (P1) incluant la contrainte x2 ≥ 4

On ne peut pas élaguer le n÷ud de l'étape 1 (aucun des 3 critèresd'élagage ne s'applique) : il faudra développer deux n÷uds �ls (cf.étapes 4 et 5).

E. Soutil (Cnam) 2018-2019 14 / 28

Page 16: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étape 2 � Résolution du problème (P1) incluant la contrainte x2 ≤ 3

E. Soutil (Cnam) 2018-2019 15 / 28

Page 17: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étape 2 � Résolution du problème (P1) incluant la contrainte x2 ≤ 3

On peut élaguer le n÷ud de l'étape 2, car la solution optimale de larelaxation continue est entière : on connaît la solution optimale en cen÷ud.Élaguer un n÷ud ne signi�e pas que la solution optimale du problèmede départ ne s'y trouve pas, cela signi�e simplement que l'on disposede toute l'information nécessaire en ce n÷ud et qu'il n'est pasnécessaire de développer ses �ls.E. Soutil (Cnam) 2018-2019 16 / 28

Page 18: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Branch-and-bound � Étapes 3 et 4

Il faut désormais développer le n÷ud de l'étape 1.

On choisit une variable fractionnaire dans la solution continue del'étape 1 : x1 est la seule variable fractionnaire.

On e�ectue un branchement sur les valeurs entières possibles de x1 :x1 ≥ 2 ou bien x1 ≤ 1 :

E. Soutil (Cnam) 2018-2019 17 / 28

Page 19: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 3 � Résolution du problème (P3) incluant les contraintes x2 ≥ 4 et x1 ≥ 2

Aucune solution ne peut respecter l'ensemble des contraintes : lepolyèdre correspondant à cette branche de l'arbre est vide.

On peut donc élaguer ce n÷ud.

E. Soutil (Cnam) 2018-2019 18 / 28

Page 20: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 4 � Résolution du problème (P4) incluant les contraintes x2 ≥ 4 et x1 ≤ 1

E. Soutil (Cnam) 2018-2019 19 / 28

Page 21: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 4 � Résolution du problème (P4) incluant les contraintes x2 ≥ 4 et x1 ≤ 1

Aucun critère d'élagage ne s'applique au n÷ud de l'étape 4 : on doitdévelopper ses �ls (étapes 5 et 6).

E. Soutil (Cnam) 2018-2019 20 / 28

Page 22: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étapes 5 et 6

Il faut désormais développer le n÷ud de l'étape 4.On choisit une variable fractionnaire dans la solution continue del'étape 4 : x2 est la seule variable fractionnaire.On e�ectue le branchement sur x2 : x2 ≤ 4 ou bien x2 ≥ 5 :

E. Soutil (Cnam) 2018-2019 21 / 28

Page 23: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 5 � Résolution du problème (P5) incluant les contraintes x2 ≥ 4, x1 ≤ 1 et x2 ≤ 4

(x2 ≥ 4 et x2 ≤ 4) =⇒ (x2 = 4)Le polyèdre de la relaxation continue est le segment violet,d'extrémités (0, 4) et (1, 4).

E. Soutil (Cnam) 2018-2019 22 / 28

Page 24: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 5 � Résolution du problème (P5) incluant les contraintes x2 ≥ 4, x1 ≤ 1 et x2 ≤ 4

E. Soutil (Cnam) 2018-2019 23 / 28

Page 25: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 5 � Résolution du problème (P5) incluant les contraintes x2 ≥ 4, x1 ≤ 1 et x2 ≤ 4

On peut élaguer le n÷ud de l'étape 5 pour deux raisons :

I on connaît depuis l'étape 2 une solution entière (3, 3) du problème (P)de départ de valeur 39, meilleure que l'optimum de (P5) de valeur 37 :39 ≥ 37.

I la solution de la relaxation continue de l'étape 5, (1, 4) est entière : onconnaît la solution optimale du n÷ud de l'étape 5, il n'est pasnécessaire de développer ses �ls.

E. Soutil (Cnam) 2018-2019 24 / 28

Page 26: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 6 � Résolution du problème (P6) incluant les contraintes x2 ≥ 4, x1 ≤ 1 et x2 ≥ 5

Le polyèdre de la relaxation continue est ici restreint à un uniquepoint : le point (0, 5) :

E. Soutil (Cnam) 2018-2019 25 / 28

Page 27: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Étape 6 � Résolution du problème (P6) incluant les contraintes x2 ≥ 4, x1 ≤ 1 et x2 ≥ 5

E. Soutil (Cnam) 2018-2019 26 / 28

Page 28: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Fin du Branch-and-bound

L'algorithme s'arrête car tous les n÷uds ont été élagués.

La solution optimale du problème (P) de départ est alors la meilleuresolution entière rencontrée dans l'ensemble des n÷uds développés :

C'est donc la solution x1 = 0, x2 = 5, de valeur Z = 40, trouvée àl'étape 6.

E. Soutil (Cnam) 2018-2019 27 / 28

Page 29: UE RCP104 Optimisation en Informatique PLNE Un exemple …

Programmation linéaire en nombres entiers (PLNE)Algorithme de Branch-and-bound � Remarques

Lorsqu'on conçoit un algorithme de branch-and-bound on doitpréciser :

I la stratégie d'exploration : lorsque plusieurs n÷uds peuvent êtredéveloppés, lequel doit-on développer en premier ? La stratégie la pluscouramment utilisée, dite du meilleur d'abord, consiste à choisir len÷ud ayant la plus grande valeur de relaxation continue (l'intuitionétant qu'il a plus de chance de contenir la solution optimale duproblème de départ). Il existe d'autres stratégies, comme la stratégieprofondeur d'abord.

I la stratégie de branchement : lorsqu'on a choisi le n÷ud àdévelopper, sur quelle variable va-t-on brancher ? Une stratégie consisteà choisir la variable fractionnaire ayant la plus grande partiefractionnaire. (Là encore, il existe d'autres stratégies).

Lorsque tous les n÷uds ont été élagués, la solution optimale duproblème de départ est la meilleure solution entière rencontrée aucours de l'algorithme de branch-and-bound.

E. Soutil (Cnam) 2018-2019 28 / 28