Chapitre 4: Programmation en Nombres Entiers: Abdelkrim E Professeur Habilité en Mathématique Appliquée

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 33

Recherche Opérationnelle

Chapitre 4 : Programmation en nombres entiers

Abdelkrim EL MOUATASIM
Professeur Habilité en Mathématique Appliquée
https://sites.google.com/a/uiz.ac.ma/elmouatasim/

SMI - S5

2020–2021

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 1 / 33


Recherche Opérationnelle
Présentation générale

Outline

1 Présentation générale
Problème du sac à dos

2 Stratégies de résolutions
Relaxation linéaire
Approche par énumération
Méthodes de Branch-and-Bound
Algorithm de branch & bound

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 2 / 33


Recherche Opérationnelle
Présentation générale

Certaines quantités ne peuvent s’écrire sous forme de nombres réels, issus d’un
domaine continu. Au contraire, certaines décisions sont par nature discrètes, et
doivent se représenter à l’aide de nombres entiers.
Considérons par exemple une entreprise de transport, qui décide de renouvellement
sa flotte de camions. Le nombre de camions à acheter est un nombre naturel.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 3 / 33


Recherche Opérationnelle
Présentation générale

La présence de telles variables entières modifie profondément la nature des


programmes sous-jacents. Lorsqu’un problème est linéaire avec des variables
entières, nous parlerons de programmation mixte entière. Si toutes les variables
sont entières, nous utiliserons la terminologie de de programmation (pure) en
nombres entiers.
Si les variables entières sont à valeurs 0 ou 1 (binaires), nous parlerons de
programmation 0–1 (binaire).

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 4 / 33


Recherche Opérationnelle
Présentation générale
Problème du sac à dos

Problème du sac à dos

Considérons un cambrioleur muni d’un sac (unique) pour transporter son butin.
Son problème consiste à maximiser la valeur totale des objets qu’il emporte, sans
toutefois dépasser une limite de poids b correspondant à ses capacités physiques.
Supposons qu’il y a n type d’objets que le voleur pourrait emporter, et que ceux-ci
sont en nombre tel que quelle que soit la nature de l’objet considéré, la seule
limite au nombre d’unités que le cambrioleur peut prendre est que le poids total
reste inférieur à b.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 5 / 33


Recherche Opérationnelle
Présentation générale
Problème du sac à dos

Problème du sac à dos

Si l’on associe à l’objet j une valeur cj et un poids wj , la combinaison optimale


d’objets à emporter sera obtenue en résolvant le programme mathématique
¸
n
max cj xj
x
j 1
¸ n
s.c. w j xj ¤b
j 1

xj P N, j  1, . . . , n.
Ici, xj P N signifie que xj est un naturel, autrement dit un entier non négatif.
Intuitivement, nous pourrions penser que la solution consiste à choisir en premier
lieu les objets dont le rapport qualité-poids est le plus avantageux, quitte à
tronquer pour obtenir une solution entière (nous ne pouvons pas diviser un objet).

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 6 / 33


Recherche Opérationnelle
Présentation générale
Problème du sac à dos

Problème du sac à dos


Cette solution peut malheureusement se révéler sous-optimale, voire mauvaise,
comme on le constate sur l’exemple suivant.
Example

max 2x1 3x2 7x3


x
s.c. 3x1 4x2 8x3 ¤ 14,
x1 , x2 , x3 P N.
Si nous oublions la contrainte d’intégralité, la solution, de valeur 12.25, est
x  p0, 0, 14{8q. En tronquant, on obtient la solution entière x  p0, 0, 1q de
valeur 7. Il est facile de trouver de meilleures solutions, par exemple x  p1, 0, 1q.
La solution optimale du problème du cambrioleur peut s’obtenir en énumérant
toutes les solutions admissibles et en conservant la meilleure (voir Table 1, , où les
solutions inefficaces laissant la possibilité d’ajouter un objet n’ont pas été
considérées).
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 7 / 33
Example (Problème du sac à dos)
x1 x2 x3 objectif
0 1 1 10
2 0 1 11
0 3 0 9
2 2 0 10
3 1 0 9
4 0 0 8
Table – Problème du sac à dos : énumération des solutions

La solution optimale entière, x  p2, 0, 1q, diffère passablement de la solution


optimale linéaire. Cependant, il est clair que cette technique d’énumération ne
peut s’appliquer à des problèmes de grande taille.
Example (California Mfg)
Une entreprise doir choisir de nouveaux emplacements pour construire des usines
et des entrepôts. Elle a le choix entre deux emplacements : Los Angeles (LA) et
San Fransisco (SF). Nous ne pouvons construire un entrepôt que dans une ville où
nous disposons d’une usine, et nous ne pouvons pas construire plus d’un entrepôt.
Nous associons à chaque construction (d’une usine ou d’un entrepôt dans chacun
des lieux envisagés) sa valeur estimée et son coût de construction. L’objectif est
de maximiser la valeur totale estimée, en ne dépassant pas une limite maximum
sur les coûts. Les données du problème sont résumées dans la Table 2.

Valeur estimée/millions $ Coût de construction/millions $


Usine à LA 9 6
Usine à SF 5 3
Entrepôt à LA 6 5
Entrepôt à SF 4 2
Limite maximum - 10
Table – Données du problème California Mfg
Example (California Mfg)
Les variables sont
#
xj  1
0
si la décision j est approuvée ;
si la décision j n’est pas approuvée.

L’objectif est de maximiser la valeur estimée totale :

max z  9x1 5x2 6x3 4x4 .


Recherche Opérationnelle
Présentation générale
Problème du sac à dos

Example (California Mfg)


Les contraintes fonctionnelles sont
1 la limite maximum sur les coûts de construction :

6x1 3x2 5x3 2x4 ¤ 10;


2 nous ne pouvons construire plus d’un entrepôt :

x3 x4 ¤ 1;
3 l’entrepôt ne sera à LA que si l’usine est à LA : x3 ¤ x1 ;
4 l’entrepôt ne sera à SF que si l’usine est à SF : x4 ¤ x2 :
5 contraintes 0–1 (intégralité) :

xj P t0, 1u, j  1, 2, 3, 4;
ou encore
0 ¤ xj ¤ 1 et xj entier, j  1, 2, 3, 4.
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 11 / 33
Example (California Mfg)
Par conséquent, nous avons le programme mathématique

max z  9x1 5x2 6x3 4x4


s.c. 6x1 3x2 5x3 2x4 ¤ 10;
x3 x4 ¤ 1;
 x1 x3 ¤ 0;
 x2 x4 ¤ 0;
x1 , x2 , x3 , x4 ¤ 1;
x1 , x2 , x3 , x4 ¥ 0;
x1 , x2 , x3 , x4 entiers.

Le modèle illustre deux cas classiques d’illustrations de variables binaires :


alternatives mutuellement exclusives : nous ne pouvons construire plus d’un
entrepôt, i.e.
x3 x4 ¤ 1;
décisions contingentes : nous ne pouvons construire un entrepôt que là où
nous avons construit une usine :

x3 ¤ x1 ; x4 ¤ x2 :
Recherche Opérationnelle
Stratégies de résolutions

Outline

1 Présentation générale
Problème du sac à dos

2 Stratégies de résolutions
Relaxation linéaire
Approche par énumération
Méthodes de Branch-and-Bound
Algorithm de branch & bound

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 13 / 33


Recherche Opérationnelle
Stratégies de résolutions
Relaxation linéaire

Il est tentant “d’oublier” les contraintes d’intégralité, et de résoudre le problème


en nombres continus ainsi produit. Nous parlerons alors de relaxation. Ainsi, nous
pourrons construire la relaxation en programme linéaire d’un programme entier.
Une fois le programme relâché résolu, nous pourrions arrondir aux valeurs entières
les plus proches. Dans certains cas, cela peut fonctionner, mais l’exemple du sac à
dos montre que ce n’est pas toujours vérifié. Cette méthode par arrondissement
est même parfois désastreuse.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 14 / 33


Recherche Opérationnelle
Stratégies de résolutions
Relaxation linéaire

Programmation en nombres entiers

pP q max c T x
x
s.c. Ax ¤ b,
x ¥ 0, entier .
Relaxation linéaire

pLP q max c T x
x
s.c. Ax ¤ b,
x ¥ 0.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 15 / 33


Recherche Opérationnelle
Stratégies de résolutions
Relaxation linéaire

Propriétés de la relaxation linéaire


La valeur de la solution optimale de (LP) est une borne supérieure sur la
valeur de la solution optimale de (P).
La valeur d’une solution admissible de (P) fournit une borne inférieure sur la
valeur de la solution optimale de (P).
Si la solution optimale de (LP) est entière (donc admissible pour (P)), elle
est également la solution optimale de (P).

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 16 / 33


Exemple 1
Considérons le programme

max z  x2
s.c.  x1 x2 ¤ 12 ,
x1 x2 ¤ 27 ,
x1 , x2 ¥ 0 et entiers.
La relaxation en programme linéaire donne

max z  x2
s.c.  x1 x2 ¤ 12 ,
x1 x2 ¤ 72 ,
x1 , x2 ¥ 0.
3

Ce nouveau programme a pour solution 2, 2 .
Exemple 1
Que nous arrondissions cette solution à p1, 2q ou p2, 2q, nous n’obtenons pas de
solution réalisable, comme illustré sur la Figure 1
x2

3

2, 2
2

1
domaine réalisable du mo-
dèle de PL
0 x1
0 1 2 3

Figure – Exemple de relaxation linéaire : problème d’admissibilité des solutions


Exemple 2
Considérons le programme

max z  x1 5x2
s.c. x1 10x2 ¤ 20,
x2 ¤ 2,
x1 , x2 ¥ 0 et entiers.
La version relâchée de programme est

max z  x1 5x2
s.c. x1 10x2 ¤ 20,
x2 ¤ 2,
x1 , x2 ¥ 0,
qui a pour solution optimale p2, 1.8q. En arrondissant à p2, 1q afin de garantir
l’admissibilité, nous obtenir la valeur 7 pour la fonction objectif, loin de la valeur
optimale du programme en nombre entier, avec pour valeur optimale 10, en p0, 2q
(voir Figure 2).
Recherche Opérationnelle
Stratégies de résolutions
Relaxation linéaire

Exemple 2
x2

z  10  x1 5x2
1

0 x1
0 1 2 3

Figure – Exemple de relaxation linéaire : solution médiocre


A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 20 / 33
Recherche Opérationnelle
Stratégies de résolutions
Approche par énumération

Un modèle en nombres entiers borné (par exemple, un modèle avec uniquement


des variables 0–1) possède un nombre fini de solutions. Nous pourrions envisagear
de toutes les énumérer, mais le nombre de solutions explose rapidement.
Pour n  20 variables 0–1, il y a plus d’un million de solutions possibles.
Pour n  30, c’est plus d’un milliard. Comme il apparaît qu’il est vite
déraisonnable de procéder à une énumération complète des solutions, nous allons
essayer de mettre à profit la relaxation en programme linéaire pour éliminer
certaines de ces solutions.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 21 / 33


Recherche Opérationnelle
Stratégies de résolutions
Approche par énumération

Cette technique d’énumération "intelligente" partielle est connue sous le vocable


de branch-and-bound (B&B). Il s’agit d’une approche diviser-pour-régner :
décomposition du problème en sous-problèmes plus simples ;
combinaison de la résolution de ces sous-problèmes pour obtenir la solution
du problème original.
Dans l’algorithme de branch-and-bound, chaque sous-problème correspond à un
sommet dans l’arbre des solutions. Nous résolvons la relaxation linéaire de chaque
sous-problème. L’information tirée de la relaxation linéaire nous permettra
(peut-être) d’éliminer toutes les solutions pouvant être obtenues à partir de ce
sommet.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 22 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

Branchement

Si la solution de (LP) n’est pas entière, soit xi une variable prenant une
valeur fractionnaire xi dans la solution optimale de (LP).
Le problème peut être divisé en deux sous-problèmes en imposant
xi ¤ txi u ou xi ¥ txi u 1
où txi u est le plus grand entier inférieur à xi .
La solution optimale de (P) est la meilleure des solutions optimales des deux
problèmes

pP1 q maxx cT x pP2 q maxx cT x


s.c. Ax ¤ b s.c. Ax ¤ b
xi ¤ txi u xi ¥ txi u 1
x ¥ 0, entier . x ¥ 0, entier .

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 23 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

Exemple
maxx z 5x1 4x2
s.c. x1 x2 ¤ 5
10x1 6x2 ¤ 45
x ¥ 0, entier .
(LP) x1  3.75, x2  1.25 et z  23.75

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 24 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

Exemple (suite)

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 25 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

Exemple (suite)
La solution de (LP1 ) est une solution admissible de (P) et donc z  23 est
une borne inférieure sur la valeur de la solution optimale de (P).
Le nœd correspondant peut être éliminé vu qu’une solution entière optimale
satisfaisant x1 ¤ 3 a été trouvée (solution de P1 ).
La valeur de la solution de (LP), z  23.75 est une borne supérieure sur la
valeur de la solution optimale de (P).
Vu que tout les coefficients sont entiers, on peut en déduire que la valeur de
la solution optimale de (P) est inférieure ou égale à 23.
La solution de (P1 ) est donc optimale pour (P).

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 26 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

Exemple (suite)

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 27 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

pLP q z = 23.75
x1  3.75, x2  1.25

x1 ¤3 x1 ¥4
pLP1 q z = 23 pLP2 q z = 23.33
x   3, x   2
1 2 x1  4, x2  0.83

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 28 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

Règles de branchement
Il n’y a pas de règle générale pour le choix de la variable de branchement et
de la branche à examiner en premier.
Ce choix peut avoir un impact important sur le nombre de nœuds à examiner
dans l’arbre de branch-and-bound.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 29 / 33


Recherche Opérationnelle
Stratégies de résolutions
Méthodes de Branch-and-Bound

Exemple (suite : branchement d’abord du côte ¥.)


pLP q z = 23.75
x1  3.75, x2  1.25

x1 ¤3 x1 ¥4
pLP1 q z = 23 pLP2 q z = 23.33
x   3, x   2
1 2 x1  4, x2  0.83

x2 ¤0 x2 ¥1
pLP3 q z = 22.5 pLP4 q
x   4.5, x   0
1 2
pas de solution

x1 ¤4 x1 ¥5

pLP5 q z = 20 pLP6 q
x   4, x   0
1 2
pas de solution
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 30 / 33
Recherche Opérationnelle
Stratégies de résolutions
Algorithm de branch & bound

Algorithme de branch & bound

Algorithm
1 Initialisation :
(a) Poser Z  8.

(b) Appliquer le calcul de borne et les critères d’élagage à la racine (aucune
variable fixée).
(c) Critère d’arrêt : s’il n’y a plus de sous-problèmes non élagués, arrêter.
2 Branchement :
(a) Parmi les sous-problèmes non encore élagués, choisir celui qui a été crée le
plus récemment (s’il y a égalité, choisir celui de plus grande borne supérieure).
(b) Appliquer le Test 1 : si le sous-problème est élagué, retourner en 2.
(c) Brancher sur la prochaine variable entière à valeur non entière dans la
relaxation PL.
3 Calcul de borne : résoudre la relaxation PL de chaque sous-problème.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 31 / 33


Recherche Opérationnelle
Stratégies de résolutions
Algorithm de branch & bound

Algorithme de branch & bound : suite

Algorithm
4 Élagage : élaguer un sous-problème si
(a) La borne supérieure est inférieure ou égale à Z  .
(b) La relaxation PL n’a pas de solution réalisable.
(c) Dans la solution optimale de la relaxation PL, toutes les variables entières sont
à valeurs entières : si la borne supérieure est strictement supérieure à Z  , Z 
est mise à jour et la solution de la relaxation PL devient la meilleure solution
courante.
5 Retourner en 2.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 32 / 33


Recherche Opérationnelle
Stratégies de résolutions
Algorithm de branch & bound

Algorithme de branch & bound : Python

TP : Implementation de l’algorithme B&B sous Python

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 33 / 33

Vous aimerez peut-être aussi