Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parsara idrissi Modifié depuis plus de 5 années
1
Introduction La PLNE regroupe l’ensemble des techniques permettant de résoudre des programmes linéaires dont les solutions doivent être entières. Formellement, le PLNE (P) s’exprime comme suit: A d’ordre m x n, b d’ordre m, c d’ordre n et x est d’ordre n. Le programme linéaire Q associé est: Techniques d'Optimisation Master 1 2012 1
2
Exemple de modélisation(1/2) Le problème du sac-à-dos – On doit remplir un sac à dos avec unités de n éléments où chaque élément j possède un poids p j et une valeur nutritive c j de telle façon à ne pas dépasser son poids total p et en maximisant la valeur nutritive. – Soit xj le nombre d’unités de l’élément j à prendre dans le sac à dos, ce problème se modélise comme suit : Problème de dichotomie – Supposons qu’uniquement k contraintes parmi les m contraintes du problème soient actives. Supposer que les m contraintes sont sous forme la forme suivante: g i (x 1, …, x n ) ≤ b i avec i=1,2, …, m. Techniques d'Optimisation Master 1 2012 2
3
Exemple de modélisation (2/2) Techniques d'Optimisation Master 1 2012 3 Soit y i la variable associée à la i ème contrainte comme suit : Pour avoir k contraintes actives parmi m, il suffira de considérer: M est un nombre très grand Application: Le second membre d’une contrainte prend plusieurs valeurs
4
Résolution d’un PLNE Lemme : Soient x e, x r les solutions optimales respectivement des programmes (P) et (Q) et Z e, Z r les valeurs de leurs fonctions objectifs respectivement, alors nous avons : Z e ≤ Z r, La valeur de la solution optimale du programme (Q) est une borne supérieure à la valeur de la solution optimale entière de P. La résolution de (P) ne peut pas se faire par la résolution de (Q) puis d’arrondir ensuite les solutions non entières. – En effet, le simple arrondi des variables non entières à des valeurs entières peut rendre la solution non réalisable ou simplement non optimale. Techniques d'Optimisation Master 1 2012 4
5
Exemple de résolution naïve Max Z = 3 x 1 + 4 x 2 2 x 1 + x 2 ≤ 6 2 x 1 + 3 x 2 ≤ 9 x 1, x 2 N Voir la figure 2.1 représentant le polyèdre convexe L’arrondi de cette solution donne (2, 2) qui n’est pas réalisable, (2, 1) qui est réalisable mais n’est pas optimale Techniques d'Optimisation Master 1 2012 5
6
Résolution graphique du programme Q Techniques d'Optimisation ed2c'2012 6
7
Résolution par Branch And Bound (1/3) Principe de séparation Soit x m la solution optimale du programme (Q) et x i une variable non entière. Supposons que <x i < +1 où a est nombre entier. La séparation de (P) consiste à scinder ce programme en deux sous programmes : P 1 = {P et x i } et P 2 = {P et x i +1 } En désignant par R 0 le domaine ne contenant pas de solution entière, R 1 le domaine (P 1 ) et R 2 celui de (P 2 ), la séparation consiste à éliminer R 0 et à chercher des solutions entières dans R 1 et R 2. Principe d’évaluation: Résoudre P1 et P2 Techniques d'Optimisation Master 1 2012 7
8
Résolution par Branch And Bound (2/3) Techniques d'Optimisation Master 1 2012 8 Techniques d’élagage: – Couper un sommet lorsqu’une solution de base réalisable entière est obtenue (borne inférieure). – Couper un sommet lorsque sa borne supérieure est inférieure à la meilleure borne inférieure obtenue. – Couper un sommet lorsque la solution est irréalisable. Stratégies d’exploration: – Stratégie ‘Profondeur d’abord’: Séparer un sommet tant que celui-ci peut se faire. En d’autre termes, le nœud est séparé en profondeur jusqu’à atteindre la feuille de l’arborescence des solutions. Un retour-arrière est nécessaire dans le cas où il existe des sommets non élagués (coupés)
9
Résolution par Branch And Bound (3/3) Stratégie ‘Largeur d’abord ’: Résoudre tous les problèmes d’un même niveau puis séparer les sommets séparables pour ensuite résoudre les problèmes du niveau suivant Stratégie ‘Meilleur d’abord’ : Dans le cas des deux stratégies précédentes, l’ordre d’exploration des sommets est prédéfini au départ, par contre dans cette stratégie, il ne l’est pas. On explore le sommet ayant la meilleure valeur de la fonction objectif. Notations : – P (0, 0) et Q (0, 0) le programme P et Q respectivement, – P (k, m) le programme linéaire en nombres entiers numéro m du niveau k (relativement à l’arborescences des solutions) et Q (k, m) le programme linéaire qui lui est associé, – x (k, m) la solution optimale de Q (k, m), – La séparation de P (k, m) donne lieu à deux sommets P (k+1, 2m) et P (k+1, 2m+1) Techniques d'Optimisation Master 1 2012 9
10
Algorithme de Branch And Bound (0) Choisir une stratégie d’exploration. Poser k=0, m=0 et Z e = - (1) Résoudre Q (k, m) et soit x (k,m) sa solution optimale. Si x (k,m) est entière. On coupe le nœud et Si Z (k, m) > Z e on pose Z e = Z (k, m) (amélioration de la borne) Si x (k, m) n’est entière Si Z (k, m) Z e. On coupe le nœud Si Z (k, m) > Z e Aller en 2) 2) Soit x i une variable non entière de x (k,m) et a est nombre entier tel que a <x i < a+1. Séparer P (k,m) en P (k+1, 2m) et P (k+1, 2m+1) où : P (k+1, 2m) = { P (k,m), x i ≤ a}, P (k+1, 2m+1) = {P (k,m), x i ≥ a +1}. Résoudre Q (k+1, 2m) et Q (k+1, 2m+1). 3) Tester si tous les nœuds sont coupés. Si oui. Terminer. Sinon, choisir le nœud à explorer mettre à jour les paramètres m et k et aller en 1) Techniques d'Optimisation Master 1 2012 10
11
Exemple illustratif (1) Soit le PLNE (P) suivant: Max Z = 3 x 1 + 4 x 2 2 x 1 + x 2 ≤ 6 2 x 1 + 3 x 2 ≤ 9 x 1, x 2 N La résolution du programme linéaire Q donne la solution optimale de Q (0, 0) ; atteinte au point B=(9/4, 3/2) qui n’est pas entière. On choisit de séparer sur la variable x 2 = 3/2 (choix arbitraire). On a: 1< x 2 < 2 On sépare P (0,0) en P (1, 0) = { P (0,0), x 2 ≥ 2} et P (1, 1) = {P (0,0), x 2 ≤1} Techniques d'Optimisation Master 1 2012 11
12
Techniques d'Optimisation Master 1 2012 12 Résolution graphique de l’exemple
13
Résolution de l’exemple (1/3) Résoudre Q (1,0), le polyèdre est DAE ( D=(0, 2) A=(0, 3), E=(3/2, 2)). La solution optimale non entière est en E avec x 1 = 3/2 x 2 =2 Z E = 12.5. Explorer P (1,0) en séparant sur x 1 car 1 < x 1 < 2. Le nœud P (1,0) est séparé en P (2, 0) ={P (1,0), x 1 ≤ 1} et P (2, 1) = {P (1,0), x 1 ≥ 2}. Résoudre Q (2, 0), le polyèdre est DAFG (D=(0, 2) A=(0, 3) F=(1, 2) et G=(1, 7/3)). La solution optimale non entière est en G avec x 1 =1 et x 2 =7/3 et Z G =12.33. Explorer le nœud P (2, 0) en séparant sur x2 avec 2< x 2 < 3. On définit deux sommets P (3, 0) ={P (2,0), x 2 ≤ 2} et P (3, 1) = {P (2,0), x 2 ≥ 3}. Résoudre Q (3,0), le polytope est [D, F]. La solution optimale entière atteinte en F avec x 1 =1 et x 2 =2 et Z F = 11 > Z e. On coupe P (3,0) et Z e = 11 (borne inférieure.) Techniques d'Optimisation Master 1 2012 13
14
Résolution de l’exemple (2/3) Retour au niveau 2 et explorer P (2,0). Résoudre Q (3, 1) qui est réduit au point (0, 2).La solution est entière. Couper (3, 0). Z (3, 1) =12 > Z e = 11 alors Z e =12. Retour arrière au niveau 1. Résoudre Q(2, 1) dont le polyèdre est vide. Couper ce sommet. Résoudre Q (3,0), le polytope est un segment [D, F]. La solution optimale entière est F avec x 1 =1 et x 2 =2 et Z F = 11 > Z e. Cette Couper P (3,0) et on garde Z e = 12. Remonter au niveau 0 et résoudre Q(1, 1), le polyèdre est OMNC (M=(0, 1) N=(5/2, 1) et C=(3, 0)). La solution optimale est en N avec x 1 =5/2, x 2 =1 et Z N = 11.5 < Z e =12. Couper ce sommet. Tous les sommets sont coupés, la solution optimale de P est: x 1 * =0, x 2 * =3 et Z * =12. Techniques d'Optimisation Master 1 2012 14
15
Arborescence des solutions de l’exemple Techniques d'Optimisation Master 1 2012 15
16
Résolution de l’exemple par d’autres stratégies Stratégie « Largeur d’abord » – Niveau 0 : Résolution de Q (0, 0) qui donne x 1 =9/4 et x 2 =3/2 – Niveau 1 : Résolution de Q (1, 0) qui donne x 1 =3/2, x 2 =2, Z=12.5 et Q (1, 1) qui donne x 1 =5/2, x 2 =1 et Z=11.5. – Niveau 2 : Résolution de Q (2, 0), Q (2, 1), Q (2, 2) et Q (2, 3). Seul le nœud P (2, 2) est retenu. – Niveau 3: Résolution de Q (3, 0) et Q (3, 1) solutions entières. Stratégie « Meilleur d’abord » – Niveau 0 : Q (0, 0) – Niveau 1: Q (1, 0) et Q (1, 1) – Branche 2: Q (2, 0 ) et Q (2, 1) – Branche 3: Q (3, 0) et Q (3, 1) Techniques d'Optimisation ed2c'2012 16
17
Amélioration de l’approche (1/4) Recherche d’une meilleure borne inférieure – Soit x*=(x 1 *, …, x n * )la solution optimale de (Q) – Posons: x j = [x j *] + y j où où [. ] désigne la partie entière de la solution non entière et y j est une variable booléenne – Le programme (Q) associé à (P) peut être réécrit sous la forme: – L a résolution de ce programme bivalent est utile seulement au démarrage de la résolution de (P). Après cela, l’approche devient très coûteuse. Techniques d'Optimisation ed2c'2012 17
18
Amélioration de l’approche (2/4) Recherche d’une borne supérieure – Améliorer la stratégie d’exploration – Règle: La priorité est accordée au nœud qui possède la plus grande borne supérieure ou plus faible pénalité. Soit (P) le nœud à séparer selon la variable de base x k non entière. Poser x k =[x k ] + f k où 0 < f k < 1 Soient P 1 ={P, x k ≤ [x k ] } et B l’ensemble des indices des variables de base et HB ceux des variables hors base. La ki ème ligne du tableau du simplexe de Q1 est Ou encore: ≤ [x k ] Techniques d'Optimisation ed2c'2012 18
19
Amélioration de l’approche (3/4) On obtient: ≤ Ou encore: +S = Introduire cette ligne dans le dernier tableau du simplexe et effectuer une itération de l’algorithme dual du simplexe. La borne supérieure sera la valeur de la fonction objectif obtenue. Opérer de la même façon avec P 2 ={P, x k [x k ] + 1 } + S = Techniques d'Optimisation ed2c'2012 19
20
Amélioration de l’approche (4/4) La pénalité inférieure P x-inf est la diminution de Z(P) occasionnée par une seule itération de l’algorithme dual du simplexe après ajout de la contrainte x k ≤ [x k ]. P x-inf = La pénalité supérieure P x-sup est la diminution de Z(P) occasionnée par une seule itération de l’algorithme dual du simplexe après ajout de la contrainte x k ≥ [x k ] + 1. P x-sup = se est le coefficient marginal de la fonction objectif après ajout de la contrainte supplémentaire et a se est l’élément du tableau du simplexe situé à l’intersection entre la variable sortante et la variable entrante 20
21
Exemple (2) de calcul des pénalités Soit le PLNE (P): Max Z = 3 x 1 + 4 x 2 2 x 1 + x 2 + e 1 = 6 2 x 1 + 3 x 2 + e 2 = 9 x 1, x 2 N Le dernier tableau du simple de Q est: En séparant sur x 2, on obtient: Px 2 -Inf= 1, 25 et Px 2 -Sup=0, 25. On se branche en priorité sur P 2 Techniques d'Optimisation ed2c'2012 21 BaseB x1 x2x2 e1e1 e2e2 x 2 2,25 1,5 1010 0101 0,75 0,5 -0,25 0,5 jj-12,7500-0,25-1,25
22
Méthode des coupes (1/3) Principe: La méthode les coupes de Gomory coupe le polyèdre et se rapproche de la solution optimale entière d’itération en itération alors que B&B divise, à chaque itération, le polyèdre en trois parties et élimine celle qui ne contient pas de solutions entières. Inconvénients: – Augmentation de la complexité du problème. – La solution du problème reste irréalisable jusqu’à l’arrêt de l’algorithme. -Résoudre le programme linéaire associé Q - Soit la k ième ligne du tableau optimal correspondante à la variable non entière x k de Q x k + = x k * (*) Techniques d'Optimisation ed2c'2012 22
23
Méthode des coupes (2/3) Posons : x k *= [x k *] + f k où 0< f k < 1 a kj = [a kj ] + f kj où 0< f kj < 1 En remplaçant ces expressions dans (*) on obtient: x k - + La partie de gauche est entière, de même pour celle de droite et que f k >0 et f kj >0, on obtient: ou encore: La coupe de Gomory est: Techniques d'Optimisation ed2c'2012 23
24
Méthode des coupes (3/3) Rajouter cette coupe au tableau optimal puis résoudre le nouveau programme linéaire obtenu. Algorithme: Résoudre (Q) et choisir une variable de x k non entière du dernier tableau de simplexe. Réécrire chaque coefficient de la ligne correspondante comme la somme d’un entier et d’un nombre fractionnel positif inférieur à 1. Former la coupe constituée des parties fractionnelles Résoudre le nouveau programme par l’algorithme dual du simplexe. Si la solution est entière, terminer sinon aller en (1). Techniques d'Optimisation ed2c'2012 24
25
Exemple (3) illustratif Soit le programme en nombres entiers (P) Max z = 7x 1 + 9x 2 -x 1 + 3 x 2 ≤ 6 7x 1 +x 2 ≤ 35 x 1, x 2 N Le dernier tableau du simplexe est: Techniques d'Optimisation ed2c'2012 25 Basebx1x1 x2x2 e1e1 e2e2 x2x2 7/2017/221/22 x1x1 9/210-1/223/22 Z-6300-28/11-15/11
26
Résolution de l’Exemple Comme f 1 =f 2 = ½, on choisit x 2 et on a : x 2 + (0+7/22) e 1 + (0+1/22)e 2 =(3+1/2) La 1 ière coupe de Gomory est : e 3 - 7/22 e 1 -1/22 e 2 = - ½ Techniques d'Optimisation ed2c'2012 26 Basebix1x1 x2x2 e1e1 e2e2 e3e3 x2x2 7/2017/221/220 x1x1 1/210-1/223/220 e3e3 -1/200-7/22-1/221 Z-6300-28/11-15/110
27
Résolution de l’exemple Après une itération, on obtient: x 1 n’est pas entière, et on a: x 1 + (0+1/7) e 2 + (0-1/7)e 3 =(4+4/7) Attention! Transformer le coefficient de e 3 pour rendre la partie fractionnelle positive. On aura: x 1 + (0+1/7) e 2 + (-1+6/7)e 3 =(4+4/7). La seconde coupe: e 4 - 1/7 e 2 - 6/7e 3 = - 4/7 Techniques d'Optimisation ed2c'2012 27 Basebix1x1 x2x2 e1e1 e2e2 e3e3 x2x2 301001 x1x1 4+ 4/71001/7-1/7 e1e1 1 +4/70011/7-22/7 Z-59000-8
28
Résolution de l’exemple Après introduction de la seconde coupe : Une itération de l’algorithme dual du simplexe: Techniques d'Optimisation ed2c'2012 28 Basebix1x1 x2x2 E1E1 E2E2 E3E3 E4E4 x2x2 301001 0 x1x1 4+ 4/71001/7-1/7 0 e1e1 1 +4/70011/7-22/7 0 e4e4 -4/7000-1/7-6/7 1 Z-59000-8 0 Basebix1x1 x2x2 e1e1 e2e2 e3e3 e4e4 x2x2 301001 0 x1x1 41000 1 e1e1 10010-4 1 e2e2 400016 -7 Z-550000-2 -7
29
Illustration géométrique Solution optimale entière: x 1 *=4, x 2 *=3 et Z*=55 Ré - expression des coupes en termes de x 1 et x 2 : 1 ière coupe: x 2 ≤ 3 2 ième coupe: x 1 + x 2 ≤ 7 Techniques d'Optimisation ed2c'2012 29
30
Amélioration de la méthode (1/2) Une coupe C est dite meilleure qu’une autre coupe C' si elle coupe profondément le polyèdre convexe de l'espace des solutions. C est dite meilleure que C’ si les 2 conditions sont vérifiées: f k,j f’ k,j j HB sauf pour un indice elle est stricte f k f’ k Ou encore: Généralisation: coupes 0 ≤ ≤ ( -1) et est le déterminant de la partie de base B de la matrice (Ax ≤ b) associée à la solution optimale de (Q). Techniques d'Optimisation ed2c'2012 30
31
Amélioration de la méthode (2/2) La meilleure coupe est celle qui vérifie Max r i avec Dans l’exemple précédent: = 22. Il s’agira de déterminer 21 coupes différentes: =1, e 3 - 7/22 e 1 -1/22 e 2 = - ½ r 1 = 11/8 =2, e 3 - 14/22 e 1 - 2/22 e 2 = 0 et r 2 = 0 =3 e 3 - 21/22 e 1 - 3/22 e 2 = -1/2 et r 3 = 11/16 =4 e 3 - 6/22 e 1 - 4/22 e 2 = 0 et r 4 = 0 =5 e 3 - 13/22 e 1 - 5/22 e 2 = -1/2 et r 5 = 11/18 Techniques d'Optimisation ed2c'2012 31
32
Suite de l’exemple =7 e 3 - 5/22 e 1 – 7/22 e 2 = -1/2 et r 7 = 11/12 =9 e 3 - 19/22 e 1 – 9/22 e 2 = -1/2 et r 9 = 11/28 =11 e 3 - 11/22 e 1 – 11/22 e 2 = -1/2 et r 9 = ½ =13 e 3 - 3/22 e 1 – 13/22 e 2 = -1/2 et r 9 =11/16 =15 e 3 - 17/22 e 1 – 15/22 e 2 = -1/2 et r 9 = 11/52 =17 e 3 - 9/22 e 1 – 17/22 e 2 = -1/2 et r 9 = 11/26 =19 e 3 - 10/22 e 1 – 19/22 e 2 = -1/2 et r 9 = 11/29 =21 e 3 - 15/22 e 1 – 21/22 e 2 = -1/2 et r 9 = 11/36 La meilleure coupe de Gomory correspond à la valeur de = 1 Techniques d'Optimisation ed2c'2012 32
33
Branch and Cut Approche de résolution des PLNE Approche hydride entre B&B et la méthode des coupes de Gomory Construction de la coupe peut se faire à n’importe quel sommet de l’arborescence L’introduction des coupes réduit l’arborescence des sommets. Logiciels: MINTO (Nemhauser et al., 1994) ABACUS (J¨unger and Thienel, 1998) CPLEX et XPRESS-MP Techniques d'Optimisation ed2c'2012 33
34
Principe de Branch and Cut Résoudre (Q) et soit une variable non entière Construire la meilleure coupe de Gomory. et la rajouter au dernier tableau de (Q). Résoudre par l’algorithme dual du implexe le programme obtenu jusqu’à obtenir une solution de base réalisable optimale. Appliquer le principe de séparation de B&B et le principe d’évaluation. Utiliser une stratégie d’exploration et les techniques d’élagages. Techniques d'Optimisation ed2c'2012 34
35
Exemple 3 par B&C Introduire la coupe e 3 - 7/22 e 1 -1/22 e 2 = - ½ ( =1) x 2 3 et une itération de l’algorithme dual: du simplexe donne: On sépare sur la variable x 1. On définit deux programmes P1={P et x 1 4} et P2= {P et x 1 5}. Px-inf= 4 et Px-sup= 24. On explore la branche x 1 4 Techniques d'Optimisation ed2c'2012 35 Basebix1x1 x2x2 e1e1 e2e2 e3e3 x2x2 301001 x1x1 4+ 4/71001/7-1/7 e1e1 1 +4/70011/7-22/7 Z-59000-8
36
Suite de l’exemple Le programme devient: Max z = 7x 1 + 9x 2 -x 1 + 3 x 2 ≤ 6 7x 1 +x 2 ≤ 35 x 1 4 x 2 3 x 1, x 2 N La solution optimale est: (3, 4) qui est entière avec Z= 55. on coupe S1 Retour arrière à S0 et explorer S2 et on obtient une solution Entière inférieure à celle obtenue x 1 4 x 1 5 _____ ______ x 1 =4 x 2 =3 x 1 =5 x 2 =0 Z= 55 Z= 35 Techniques d'Optimisation ed2c'2012 36 S0 S1 S2
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.