Upload
grincheu70
View
222
Download
5
Embed Size (px)
DESCRIPTION
pne
Citation preview
Partie 2 : Programmation Linaire en Nombres Entiers
ENSIAS - IAD
PLAN :CHAP 1: PROGRAMMATION EN NOMBRES ENTIERS CHAP 2 : PROCEDURE GENERALE D'OPTIMISATION COMBINATOIRE.CHAP 3 : RESOLUTION DU PROBLEME (PLE) PAR LA METHODE DU BRANCH-AND-BOUNDCHAP 4 : RESOLUTION DES PROGRAMMES LINEAIRES BINAIRES:CHAP 5 : CONVERGENCE DE LA METHODE DU BRANCH AND BOUNDCHAP 6 : ADAPTATION DE LA METHODE DU B&B AU PROBLEME D'AFFECTATION :CHAP 7 :METHODE DE COUPES DE GOMORY:
ENSIAS - IAD
CHAPITRE 1:
PROGRAMMATION EN NOMBRES ENTIERS
ENSIAS - IAD
Min CT x(PNE) s. Ax = b x 0 xj entier , j=1,2,...,n avec x=(x1, x2 ,..., xn)T
Programmation Linaire Continue : PLCpas de contraintes dintgritProgrammation Linaire Mixte : PLMcertaines variables peuvent ne pas tre entiresProgrammation Linaire en nombres Entiers: PLEcontraintes dintgritProgrammation Linaire Binaire : PLBxj = 0 ou 1
ENSIAS - IAD
A- Mthodes Naves :1) Mthode dArrondi : Min z = -x1 - x2 s. -2 x1 + 2x2 1 16 x1 -14x2 7 x1, x2 0 et entiers.
ENSIAS - IAD
ENSIAS - IAD
2) Mthode d'numration (explicite) Considrons un problme de programmation linaire en nombres entiers, alors on a :
Cas 1 : 10 variables {1,2,3,...,9} 910 = 34 86 784 401 > 3.109 cas,Cas 2 : 50 variables binaires : 250 cas.
ENSIAS - IAD
B- Mthodes Efficaces
Mthode de Branch-and-Bound, Mthode de coupes, Mthode de Benders,Mthode des groupes. Y a -t-il des mthodes efficaces?
ENSIAS - IAD
CHAPITRE 2:
PROCEDURE GENERALE DOPTIMISATION COMBINATOIRE
ENSIAS - IAD
ENSIAS - IAD
2.1 Notions de base :
- Notion de Partitionnement- Notion de Relaxation - Notion de Suspension de Fouille (Fathoming)Notation :(P) : problme d'optimisationF(P) : domaine ralisable de (P)V(P): valeur optimale de (P).
ENSIAS - IAD
PARTITIONNEMENT Dfinition: On dit que (P) est partitionn en sous problmes (P1), (P2), ..., (Pq) si F(P1), F(P2), ..., F(Pq) est une partition de F(P). i.e. si : 1) toute solution ralisable de (P) est ralisable pour exactement un des (Pj); 2) toute solution ralisable pour l'un des (Pj) est ralisable pour (P).
ENSIAS - IAD
Exemples :
ENSIAS - IAD
Stratgie Vague et Globale de Rsolution :
Essayer de solutionner (P).Si cest sans succs, alors partitionner (P) en deux ou plusieurs sous problmes que lon place dans une liste.Slectionner un problme dans la liste. C'est le Problme Candidat (PC).Essayer de solutionner le (PC).Si c'est avec succs, alors slectionner un autre (PC) dans la liste.Si c'est sans succs, alors partitionner (PC) et placer ses descendants dans la liste.Le processus est rpt tant que la liste est non vide.
ENSIAS - IAD
Remarque:Chaque fois qu'on russit, on identifie un lment de F(P) et on retient la meilleure solution de (P) rencontre jusqu'ici. Cette solution est appele point "incombent" : cest un point candidat tre une solution optimale du problme de programmation en nombres entiers.
ENSIAS - IAD
(ii) Relaxation:Le problme (P) est dit relax si certaines contraintes sont relches, on le note alors par: (PR). D'o les proprits:F(P) F(PR)F(PR) = F(P) =V(PR) V(P) (Min)Si une solution optimale de (PR) est dans F(P) alors elle est optimale de (P).
ENSIAS - IAD
(iii) Critre de cessation de fouille (Striliser ou Fathoming)Notons par zs la valeur de la fonction conomique au point incumbent. On dira qu'un problme candidat (PC) d'un problme d'optimisation combinatoire est strilis si l'un des critres suivants est satisfait:1er critre : F(PCR) = 2me critre : V(PCR) zs 3me critre : une solution optimale de (PCR) est ralisable pour (PC) (avec V(PCR) < zs )
ENSIAS - IAD
Remarque: Si (PC) est strilis alors il ne sera plus pris en considration. Sinon, alors on peut excuter l'une des deux actions suivantes:engendrer des descendants du (PC)slectionner une autre relaxation "plus adquate" pour essayer d'appliquer les critres de cessation de fouille.
ENSIAS - IAD
2.2 Procdure GnraleEt1: La liste des candidats contient le problme(P). Posons Zs = +Et2: Terminer si la liste est vide: Si au moins une solution ralisable de (P) a t rencontre alors ce point "incumbent" est une solution optimale de (P). Autrement, F(P)=. Et3: Choisir un problme dans la liste qui devient(PC). Eliminer (PC) de la liste.Et4: Identifier une relaxation (PCR) de (PC).
ENSIAS - IAD
Procdure Gnrale (suite)
Et5: Traiter (PCR).Et6: Si F(PCR)= , alors aller l'tape 2. Et7: Si V(PCR) zs alors aller l'tape 2. Et8: Si la solution optimale de (PCR) est ralisable pour (PC), alors nous venons d'identifier une nouvelle solution de (P). Or, V(PC)=V(PCR)< zs alors on pose zs=V(PC), et cette solution est le nouveau point "incumbent". Retourner l'tape 2.
ENSIAS - IAD
Procdure Gnrale (suite)
Et9: Si on dcide de poursuivre avec (PC), aller l'tape 10. Autrement, aller l'tape 11. Et10: Modifier la relaxation de (PC) pour en obtenir une nouvelle qu'on dnote (PCR). Aller l'tape 5.Et11: Partitionner (PC) et placer les nouveaux sous problmes dans la liste. Aller l'tape3.
ENSIAS - IAD
CHAPITRE 3 :
RESOLUTION DU PROBLEME (PLE) PAR LA METHODE DU BRANCH-AND-BOUND
ENSIAS - IAD
3.1 Exemple lllustratif:Considrons le modle linaire en nombres entiers suivant: Min Z(x) = 4x1 - 6 x2 s. (P) F x1 et x2 entiers
-x1+ x2 1 x1 + 3 x2 9 3x1+ x2 15 x1, x2 0
ENSIAS - IAD
Min Z(x) (PR)s. x F
ENSIAS - IAD
87654321
1 2 3 4 5 6 7 8
F
On doit sparer I'ensemble F sur l'une de ses composantes (non entires). On choisit de sparer sur x1. On obtient 2 sous-ensembles:
(x F et x1 x*1) ou (x F et x1 x*1+1)c'est dire:(x F et x1 1) ou (x F et x1 2)
ENSIAS - IAD
Ceci nous dfinit deux sous-programmes: (branching ou sparation) Min z(x)s. x F x1 2Min z(x) s. x F x1 1
ENSIAS - IAD
ENSIAS - IAD
Remarque : Au lieu de sparer sur x1 on peut aussi sparer sur x2, on obtient alors:Min z(x) s. x F x2 3Min z(x) s. x F x2 2
ENSIAS - IAD
ENSIAS - IAD
87654321
1 2 3 4 5 6 7 8
Fig. n3 (Sparation selon x2)
F
X2= 2
x2 2
z=-8
3.2- L'Algorithme du Branch and Bound:
Min z(x) (PLE) s. x F xj entier
Min z(x)(PLC) s. x F
ENSIAS - IAD
Procdure du Branch and Bound (1/4):
Initialisation: Rsoudre (PLC). Si cette solution est ralisable pour (PLE), Stop. Cette solution est alors optimale pour (PLE). Trouver une borne suprieure zs de la fonction-objectif
ENSIAS - IAD
Procdure du Branch and Bound (2/4):
Sparation: Choisir l'une des composantes non-entires xj* de la solution du sous-problme. Partitionner le sous-problme en 2 sous-problmes en ajoutant lune des deux contraintes :xj xj* ou xj xj*+1.2.Evaluation: Pour chaque nouveau sous-problme, dterminer une borne infrieure zi de la fonction-objectif.
ENSIAS - IAD
Procdure du Branch and Bound (3/4):
3. Strilisation: Exclure des prochaines considrations chaque sous-problme si:a) le sous-problme nest pas ralisable b) zi zsc) zi est atteinte en un point entier (ralisable de ce sous-problme), (et zi
Procdure du Branch and Bound (4/4):
4. Test: Si tous les sous-problmes sont striliss, STOP. (Le point incumbent est alors optimal pour (PLE)). Sinon, retourner 1.
ENSIAS - IAD
3.3- Exemple:Min z(x) = 3x1-7x2 -12 x3 s. -3x1+6 x2 +8x3 12 6x1-3 x2 +7x3 8(PLE)-6x1+3 x2 +3x3 5 x1, x2, x3 0
Initialisation: La solution optimale du (PLC), x = (0, 10/33, 14/11)T est non-ralisable de (PLE).x = 0 : solution ralisable de (PLE) Zs = Z0 =0x = 0 est un point incumbent.
ENSIAS - IAD
1.Sparation : On branche sur x2 : Fx2 0 ou Fx2 12.Evaluation : Une borne infrieure du nouveau problme est donne par :Min z(x) Min z(x)s. x F s. x Fx2 0x2 1
x=(0,0,8/7)Tx=(2/3,1,1)TZi = -98/7Zi = -17
ENSIAS - IAD
Strilisation : Aucun des sous-ensembles ne peut tre strilis.
Test : Retourner 1 car les 2 sous-ensembles demeurent non striliss.
ENSIAS - IAD
Dbut Zs = 0x=(0, 0.3,1.3)TZi = -17.4x=(0, 0,,1.1)TZi = -13.7x=(0.7,1,1)TZi = -17x2 0x2 1 Stratgie "d'exploration en largeur d'abord" (Breadth-First ou FIFO)
ENSIAS - IAD
Stratgie "d'exploration en largeur d'abord" (Breadth-First ou FIFO)
ENSIAS - IAD
Stratgie "d'exploration en profondeur d'abord" (Depth-First ou LIFO)
ENSIAS - IAD
CHAPITRE 4 :
Rsolution des Programmes linairesBinaires:
ENSIAS - IAD
4.1 - exemple: Min z(x) = 2x1 + 3x2 +7 x3+7x4s. x1 + x2 -2x3-5x4 2 (MLB)-x1+ 2x2+x3+4x4 -3Fxi =0 ou 1, i=1,2,3,4 S(MLBR)Min z(x)s. xS
ENSIAS - IAD
z(0)=0 est une borne infrieure de la fonction conomique de (MLB) car : cj > 0, j=1, 2, 3, 4 Donc si x = 0 est ralisable pour (MLB) alors c'est une solution optimale de (MLB).
Une borne suprieure de la fonction conomique est donne par :
xT = (1,1,1,1) zs = 2 + 3 + 7 + 7 = 19.
ENSIAS - IAD
On partitionne S selon la composante x1 :Min z(x)Min z(x)s. xSs. xSx1=0x1=1
Solutions :x=(0,0,0,0)Tx=(1,0,0,0)Tzi =0 zi =2
ENSIAS - IAD
1er critre sur le sous-programme de droite :g1(x) = 1+ x2 -2x3 - 5x4 g2(x) = 1+ 2x2 + x3+ 4x4 g1(1,1,0,0) T = 2 et g2(1,1,1,1)T = 6Le sous-programme de droite peut tre ralisable, donc non strilis par le 1er critre.(1,0,0,0)T n'est pas ralisable pour (MLB), donc on ne peut pas striliser le sous-programme de droite par 3me critre.
ENSIAS - IAD
Dbut Zs = 19
x = (0,0,0,0) T zi = 0x1=0x1=1 Non ralisable x=(1,0,0,0)T (a) zi= 2 x2=0 x2 =1
Non-ralisable x=(1,1,0,0)T (a) zi=5 (c)zs=5
ENSIAS - IAD
4.2- Amlioration de la Borne Infrieure:2me Critre (b): zi zs exemple:
Min z(x) = 2x1 + 3x2 +7 x3+7x4s. x1 + x2 -2x3+5x4 2 (MLB) -x1+ 2x2+x3+4x4 -3 F xi =0 ou 1, i=1,2,3, 4S
Peut-on faire mieux ?
ENSIAS - IAD
Peut-on faire mieux ?
La solution (0,0,0,0)T est non-ralisable, donc chaque solution ralisable doit avoir au moins l'une de ses composantes gale 1 z* Mincj : 1j4 = 2zi = 2 et xi=(1,0,0,0)T
La solution xi est non-ralisable, donc non-optimale
ENSIAS - IAD
On spare sur x1 :
x1=0 et (0,0,0,0)T est non-ralisable l'une des xj, j = 2, 3, 4 est gale 1 z* Mincj : 2j4 = 3 zi = 3 xi = (0,1,0,0) T x1=1 et (1,0,0,0)T est non-ralisable l'une des xj, j = 2, 3, 4 est gale 1 z* 2+Mincj : 2j4=2+3=5 zi = 5 xi = (1,1,0,0)T
ENSIAS - IAD
Dbut Zs = 19
x = (1,0,0,0) T zi = 2 x1=0x1=1 x=(0,1,0,0)T x=(1,1,0,0)T zi= 3 zi= 5 (c)zs=5 x2=0 x2 =1
x=(0,0,1,0)T x=(0,1,1,0)T zi=7 zi=10
(b) (b)
ENSIAS - IAD
4.3- Algorithme du Branch and Bound pour un problme binaire:
Hypothse : 0 c1 c2... cn Procdure: Initialisation:Si x=0 est ralisable STOP. Sinon, poser zs=cj , zi = c1 et xi=(1,0,...,0)T Si xi est ralisable STOP. Sinon, poser k = 1.
ENSIAS - IAD
Sparation: Choisir un sous-ensemble des solutions ralisables et partitionner le en 2 sous-ensembles en ajoutant les contraintes : " xk = 0 " et " xk = 1 ".
ENSIAS - IAD
Evaluation: Pour chaque nouveau sous-ensemble dterminer une borne infrieure zi de la fonction conomique en posant:xk = (x1k,..., xkk ,1,0,...0)To xi = xik pour i=1,2,...,k, sont les contraintes qui dterminent le sous-ensemble en considration.
ENSIAS - IAD
3. Strilisation:Exclure des prochaines considrations chaque sous-ensemble si:(a) il y a au moins une contrainte qui n'est satisfaite par aucun point du sous-ensemble.(b) zi zs.(c) xi est ralisable. Dans ce cas xi est le point "incumbent". Poser zs = zi.Retourner 3 pour voir si on peut striliser d'autres sous-ensembles.
ENSIAS - IAD
4.Test darrt : Si tous les sous-ensembles sont striliss, STOP (le point "incumbent" est optimal). Sinon, poser k=k+1 et retourner en 1.
ENSIAS - IAD
4.4 Rendre les cots relatifs positifs et croissantsRgle gnrale : Si x est entier et si 0 x k alors nous pouvons substituer une combinaison linaire :x = y1 + 2y2 + 22y3 + ... + 2pyp+1de p+1 variables y1 , y2 ,..., yp+1 {0,1}. (p est le plus petit entier tel que k 2p+1-1).-Transformer une variable entire en variable binaire
ENSIAS - IAD
Exemple : Transformer le problme suivant en un problme binaire :
Min z(x) = 3x1 - 4x2 s. x1-2x2 12(P) -2 x1 4 1 x2 3 x1, x2 0, entiers
ENSIAS - IAD
Soit y1, y2, y3, y4, y5 {0,1}.Posons x1 = -2 + y1 + 2y2 + 4y3 x2 = 1 + y4 + 2y5
D'o le problme quivalent de (P):
Min z = -10 + 3y1 + 6y2 + 12y3 -4y4 - 8y5s. y1 + 2y2 + 4y3 +2y4 + 4y5 6 y1 + 2y2 + 4y3 6 y4 + 2y5 2 y1, y2, y3, y4, y5 {0,1}.
ENSIAS - IAD
Rendre les cots relatifs positifs et ordonns : 0c1c2...cn.
Posons:u1 = y1 u2 = 1- y4u3 = y2 u4 =1- y5u5 = y3
ENSIAS - IAD
Min z = 2 + 3u1 + 4u2 + 6u3 +8u4 +12u5s. u1 - 2u2 + 2u3 - 4u4 +4u5 6 u1 + 2u3 + 12u5 0 u2 2u4 1u1, u2, u3, u4, y5 {0,1}.
ENSIAS - IAD
dftujcgfhuicghj