Chapitre 4: Programmation en Nombres Entiers: Abdelkrim E Professeur Habilité en Mathématique Appliquée
Chapitre 4: Programmation en Nombres Entiers: Abdelkrim E Professeur Habilité en Mathématique Appliquée
Chapitre 4: Programmation en Nombres Entiers: Abdelkrim E Professeur Habilité en Mathématique Appliquée
Abdelkrim EL MOUATASIM
Professeur Habilité en Mathématique Appliquée
https://sites.google.com/a/uiz.ac.ma/elmouatasim/
SMI - S5
2020–2021
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
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.
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.
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).
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
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
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.
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
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
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
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
Exemple (suite)
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).
Exemple (suite)
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
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.
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
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.
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.