61
Pr. Y. BENADADA ENSIAS - IAD 1 Partie 2 : Programmation Linéaire en Nombres Entiers

PNE1-2-3-4 proj

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

  • Cessation de fouille:Pour les 2 sous-programmes on a zi < zs donc on ne peut pas appliquer le 2me critre.1er critre sur le sous-programme de gauche :f1(x) = 0+ x2 -2x3-5x4 f2(x) = 0+ 2x2 +x3+4x4 La plus grande valeur que peut prendre f1(x) est f1(0,1,0,0)T = 1 < 2.Donc xSx1=0, f1(x)
  • 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