optimisation en nombres entiers - gerad · introduction mod elisation b&b sac a dos gap...
Post on 07-Jul-2020
26 Views
Preview:
TRANSCRIPT
Introduction Modelisation B&B Sac a dos GAP Extensions References
Optimisation en nombres entiers
MTH8415
S. Le Digabel, Polytechnique Montreal
H2020(v2)
MTH8415: Optimisation en nombres entiers 1/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Plan
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 2/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 3/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Types de problemes
Probleme d’optimisation lineaire ou non lineaire :
I En nombres entiers : Toutes les variables doivent etre entieres(x ∈ Zn)
I En variables binaires : Toutes les variables doivent etrebinaires (x ∈ {0, 1}n)
I Mixte : Certaines variables peuvent etre entieres ou binaires,les autre continues.
Dans ce cours, on se concentre sur les problemes lineaires ennombres entiers et en variables binaires
MTH8415: Optimisation en nombres entiers 4/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Modele de probleme lineaire en nombres entiers(PLNE)
maxx
c>x
s.c.
{Ax ≥ bx ∈ Zn
avec c ∈ Rn, b ∈ Rm, A ∈ Rm×n
I Relaxation continue : Remplacer la contrainte x ∈ Zn parx ∈ Rn. On obtient un probleme lineaire (PL)
I La valeur de la solution de la relaxation est une bornesuperieure sur la valeur de la solution du PLNE
I Tout point realisable x ∈ Zn avec Ax ≥ b donne une borneinferieure sur la valeur de la solution du PLNE
MTH8415: Optimisation en nombres entiers 5/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Complexite
I Un PLNE est souvent beaucoup plus difficile a resoudre quesa relaxation continue
I Il arrive meme que ce soit impossible a faire dans un tempsraisonnable : Voir lecon #8 (theorie de la complexite) : LePLNE est NP-difficile
MTH8415: Optimisation en nombres entiers 6/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Idees pour la resolution
I Il arrive parfois que la solution de la relaxation soit entiere,i.e. les coordonnees du point extreme optimal sont entieres
I Dans ce cas, cette solution du PL est aussi la solution duPLNE, car elle a donne a la fois une borne superieure et uneborne inferieure
I Tous les problemes de flot sur un reseau ont une solutionentiere si les donnees sont entieres
I En general, arrondir la solution du PL ne fonctionne pas carune solution arrondie peut :I Ne pas etre realisable pour le PLNE
I Etre eloignee de la solution du PLNE
MTH8415: Optimisation en nombres entiers 7/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Solution du PL vs solution du PLNE
MTH8415: Optimisation en nombres entiers 8/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Enveloppe convexeI L’ensemble realisable est
l’intersection d’un polyedre(en noir) et des pointsentiers dans ce polyedre
I L’enveloppe convexe (envert) est donnee par d’autrescontraintes, mais definit lememe ensemble realisable
I La solution de la relaxationcorrespondra alors a lasolution optimale du PLNE
I Probleme. . .
MTH8415: Optimisation en nombres entiers 9/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 10/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Introduction
Le but de cette section est de montrer des astuces afin quecertains cas puissent se modeliser a l’aide d’un probleme lineaire envariables binaires
Ces cas sont :
I Conditions logiques
I Cout fixe
I Selection de k contraintes parmi m et de k variables parmi n
I Penalite pour ne pas respecter une contrainte
I Intervalles non connexes
I Fonctions lineaires par morceaux
MTH8415: Optimisation en nombres entiers 11/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Conditions logiques
I On ne peut pas exprimer de conditions logiques directement(avec des si, sinon, alors, etc.), sinon le modele n’est pluslineaire
I Les exemples suivants considerent des variables binaires
I La condition x = 1⇔ y = 1 se modelise a l’aide de lacontrainte x = y
I Pour les autres exemples, il est utile de se baser sur une tabledes valeurs possibles afin de determiner les situations aeliminer a l’aide de contraintes
MTH8415: Optimisation en nombres entiers 12/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Conditions logiques : x = 1⇒ y = 1
La ligne en rouge dans la table suivante correspond au cas aeliminer :
x y
0 00 11 01 1
On ajoute donc la contrainte
y ≥ x
MTH8415: Optimisation en nombres entiers 13/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Conditions logiques : x = 0⇒ y = 1
La ligne en rouge correspond au cas a eliminer :
x y
0 00 11 01 1
On ajoute donc la contrainte
x+ y ≥ 1
MTH8415: Optimisation en nombres entiers 14/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Conditions logiques : (x = 1 et y = 1)⇒ z = 1La ligne en rouge correspond au cas a eliminer :
x y z x+ y − z
0 0 0 00 0 1 −10 1 0 10 1 1 01 0 0 11 0 1 01 1 0 21 1 1 1
On ajoute donc la contrainte
x+ y − z ≤ 1
MTH8415: Optimisation en nombres entiers 15/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Conditions logiques : (x = 1 ou y = 1)⇒ z = 1Les lignes en rouge correspondent aux cas a eliminer :
x y z −x+ y − z x− y − z x+ y − z
0 0 0 0 0 00 0 1 −1 −1 −10 1 0 1 −1 10 1 1 0 −2 01 0 0 −1 1 11 0 1 −2 0 01 1 0 0 0 21 1 1 −1 −1 1
On ajoute donc les contraintes
−x+ y − z ≤ 0x− y − z ≤ 0x+ y − z ≤ 1
MTH8415: Optimisation en nombres entiers 16/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Modelisation d’un cout fixeI Un objectif a minimiser contient le terme Cx avec C un cout
proportionnel a la valeur de x
I On veut ajouter un cout fixe F lorsque x > 0
I On introduit une variable binaire y et :I On ajoute le terme Fy a l’objectif : Cx→ Cx+ Fy
I On ajoute la contrainte
x ≤My
avec M une borne superieure sur x
I S’il est avantageux d’avoir x > 0, alors automatiquement yvaudra 1 et on paiera le cout fixe. Sinon, y seraautomatiquement mise a 0 pour ne pas payer le cout fixe
MTH8415: Optimisation en nombres entiers 17/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Selection de k contraintes parmi mI On doit satisfaire au moins k contraintes parmi les m
contraintes du systeme d’inegalites Ax ≤ b avec x,b ∈ Rn etA ∈ Rm×n
I On introduit m variables binaires yi, i = 1, 2, . . . ,m. On aurayi = 1 si on permet a la contrainte i d’etre violee, 0 sinon
I Les m inegalite deviennent
Ax ≤ b→ Ax ≤ b+My
avec y ∈ {0, 1}m et M ∈ R suffisamment grand
I Puis, on ajoute la contraintem∑i=1
yi ≤ m− k (au moins k
contraintes satisfaites)
MTH8415: Optimisation en nombres entiers 18/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Selection de k variables parmi n
I On a n variables xi, i = 1, 2, . . . , n, telles que 0 ≤ x ≤ u,avec u ∈ Rn
I On veut qu’au plus k des n variables puissent avoir une valeurstrictement positive
I On introduit les n variables binaires yi, i = 1, 2, . . . , n, tellesque si yi = 1, xi > 0, et sinon xi = 0
I On change les bornes 0 ≤ xi ≤ ui → 0 ≤ xi ≤ uiyi,i = 1, 2, . . . , n
I Puis, on ajoute la contrainten∑
i=1yi ≤ k
MTH8415: Optimisation en nombres entiers 19/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Penalite pour ne pas respecter une contrainte
I Pour un probleme de minimisation, on veut ajouter unepenalite P si la contrainte a>x ≤ b est violee, avec a,x ∈ Rn
et b ∈ R
I On introduit la variable binaire y qui vaut 1 si la contrainteest violee, et 0 sinon
I On ajoute le terme Py dans l’objectif
I On modifie la contrainte :
a>x ≤ b→ a>x ≤ b+My
avec M ∈ R suffisamment grand
MTH8415: Optimisation en nombres entiers 20/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Intervalles non connexes (1)
I On veut que la variable x ∈ R soit egale a 0 ou bien dansl’intervalle [`;u], avec `, u ∈ R
I On introduit la variable binaire y qui vaut 1 si x ∈ [`;u], etx = 0 sinon, en introduisant les contraintes
`y ≤ x ≤ uy
MTH8415: Optimisation en nombres entiers 21/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Intervalles non connexes (2)
I On veut que la variable x ∈ R soit egale a 0, ou dansl’intervalle [200; 500], ou dans l’intervalle [700; 1000]
I On introduit deux variables binaires y1, y2 et deux variablescontinues x1, x2, et on ajoute les contraintes suivantes auprobleme :
x = x1 + x2y1 + y2 ≤ 1200y1 ≤ x1 ≤ 500y1700y2 ≤ x2 ≤ 1000y2x1, x2 ∈ Ry1, y2 ∈ {0, 1}
MTH8415: Optimisation en nombres entiers 22/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Intervalles non connexes (3)
I La variable x ∈ R ne peut prendre qu’une valeur comprisedans l’ensemble {2, 3, 5, 7}
I On introduit 4 variables binaires y1, y2, y3, y4 et on ajoute lescontraintes
x = 2y1 + 3y2 + 5y3 + 7y4y1 + y2 + y3 + y4 = 1y1, y2, y3, y4 ∈ {0, 1}
MTH8415: Optimisation en nombres entiers 23/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Fonctions lineaires par morceaux (1/3)On veut modeliser la fonction continue lineaire par morceauxsuivante :
f(x) =
0.5x+ 5 si 0 ≤ x < 102x− 10 si 10 ≤ x < 150.2x+ 17 si 15 ≤ x ≤ 40
5
7
9
11
13
15
17
19
21
23
25
0 5 10 15 20 25 30 35 40
MTH8415: Optimisation en nombres entiers 24/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Fonctions lineaires par morceaux (2/3)
I On introduit trois variables continues x1, x2, x3 ∈ R et deuxvariables binaires y1, y2 ∈ {0, 1}
I On ajoute les contraintes suivantes :10y1 ≤ x1 ≤ 105y2 ≤ x2 ≤ 5y10 ≤ x3 ≤ 25y2
I La fonction par morceaux pourra s’exprimer parfx = 5 + 0.5x1 + 2x2 + 0.2x3
I La quantite x est representee par x = x1 + x2 + x3
MTH8415: Optimisation en nombres entiers 25/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Fonctions lineaires par morceaux (3/3) : VerificationI Si y1 = y2 = 0 :
I 0 ≤ x1 ≤ 10, x2 = x3 = 0I x = x1 ∈ [0; 10]I fx = 5 + 0.5x1 = 0.5x+ 5
I Si y1 = 0 et y2 = 1 : Impossible car 5 ≤ x2 ≤ 0
I Si y1 = 1 et y2 = 0 :I x1 = 10, x2 ∈ [0; 5], x3 = 0I x = 10 + x2 ∈ [10; 15]I fx = 5 + 5 + 2x2 = 10 + 2x2 = 10 + 2(x− 10) = 2x− 10
I Si y1 = y2 = 1 :I x1 = 10, x2 = 5, x3 ∈ [0; 25]I x = 15 + x3 ∈ [15; 40]I fx = 5 + 5 + 10 + 0.2x3 = 20 + 0.2(x− 15) = 0.2x+ 17
MTH8415: Optimisation en nombres entiers 26/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 27/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Algorithme d’enumeration implicite
I Branch and Bound (B&B) [Land and Doig, 1960]
I L’algorithme est exact et garantit l’obtention de la solutionoptimale, mais en pratique cela peut prendre enormement detemps
I Resolution d’une serie de problemes lineaires, le premier etantla relaxation PL du PLNE
I Ces differentes resolutions sont organisees dans un arbre debranchement
I A chaque resolution, il y a deux etapes principales :Evaluation et Separation
MTH8415: Optimisation en nombres entiers 28/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Evaluation et separation (maximisation)
I Evaluation : Resoudre la relaxation continue courante et endeduire :I Une borne superieure
I Une borne inferieure, si possible. Par exemple si la solution dela relaxation courante est entiere, ou bien avec une heuristique
I Separation :I Separer (brancher) le probleme courant en plusieurs
sous-problemes (typiquement deux)
I Par exemple : Si la relaxation courante donne xi = 2.3, creerdeux sous-problemes avec la contrainte xi ≤ 2 et xi ≥ 3,respectivement
MTH8415: Optimisation en nombres entiers 29/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Elagation
I L’arbre de branchement se construit au fur et a mesure
I Il existe plusieurs strategies pour le parcourir : Largeurd’abord, profondeur d’abord, etc.
I On met a jour en tout temps la solution et la meilleure valeurconnue du PLNE
I A chaque nœud de cet arbre, on maintient des bornesinferieures et superieures. Chaque sous-probleme de ce nœudne pourra generer de solutions en dehors de ces bornes
I Ainsi, on peut decider de ne pas explorer certaines parties del’arbre car on sait deja qu’on ne pourra pas faire mieux que lameilleure valeur connue jusqu’a present : Principe del’elagation. Et d’ou le terme d’enumeration implicite
MTH8415: Optimisation en nombres entiers 30/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple
Resoudre le PLNE avec un algorithme de B&B :
maxx1,x2
f(x1, x2) = 2x1 + 3x2
s.c.
4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1, x2 ∈ N
MTH8415: Optimisation en nombres entiers 31/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Ensemble realisable
MTH8415: Optimisation en nombres entiers 32/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Premiere relaxation
I Evaluation : Resoudre la relaxation lineaire du PLNE :I La solution du PL x = (2.769, 1.826) pour f(x) = 11.019 n’est
pas entiere : ce n’est donc pas la solution optimale du probleme
I La valeur optimale (11.019) nous donne une borne superieurepour la valeur optimale du PLNE, que l’on peut arrondir a 11car tous les couts sont entiers
I Separation : On separe le probleme original en deuxproblemes.I Ce branchement peut se faire sur x1 ou x2
I On choisit (arbitrairement) x1 et on ajoute une nouvellecontrainte au PLNE : x1 ≤ 2 (Prob. I) ou x1 ≥ 3 (Prob. II)
MTH8415: Optimisation en nombres entiers 33/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Problemes I et IIProb. I :
maxx1,x2
2x1 + 3x2
s.c.
4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≤ 2x1, x2 ≥ 0
Prob. II :maxx1,x2
2x1 + 3x2
s.c.
4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≥ 3x1, x2 ≥ 0
MTH8415: Optimisation en nombres entiers 34/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Premiere separation
MTH8415: Optimisation en nombres entiers 35/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Problemes III et IVLe deuxieme branchement sur x2, sous le nœud du probleme I,donne les problemes III et IV suivants :
Prob. III : maxx1,x2
2x1 + 3x2 s.c.
4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≤ 2x2 ≤ 2x1, x2 ≥ 0
Prob. IV : maxx1,x2
2x1 + 3x2 s.c.
4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≤ 2x2 ≥ 3x1, x2 ≥ 0
Le probleme IV est irrealisable : Cette branche est elaguee
MTH8415: Optimisation en nombres entiers 36/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Deuxieme separation
MTH8415: Optimisation en nombres entiers 37/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Fin
I Nous ne separerons pas le Probleme III puisque sa solutionoptimale est entiere
I Nous pourrions separer le Probleme II (en ajoutant lacontrainte x2 ≤ 1 ou x2 ≥ 2) mais c’est inutile :I Brancher sous le Prob. II ne peut que mener a une solution de
valeur de l’objectif ≤ 9
I Puisque nous avons deja un point entier de valeur 10, il n’y adonc pas de meilleur point entier dans l’ensemble realisable duProb. II
I Arret de l’algorithme : il n’y a plus de nœud a resoudre : Lasolution optimale est obtenue : x∗ = (2, 2) avec f(x∗) = 10
MTH8415: Optimisation en nombres entiers 38/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
B&B : Exemple : Arbre de branchement
MTH8415: Optimisation en nombres entiers 39/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 40/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Modele
maxx1,x2,...,xn
n∑i=1
uixi
s.c.
n∑
i=1wixi ≤W
x ∈ {0, 1}n
I Chaque variable correspond a un objet que l’on prend ou pasdans le sac
I ui > 0 : Utilite de l’objet i ; wi > 0 : Poids de l’objet i
I W : Capacite du sac (telle que W <∑n
i=1wi)
I On suppose que les objets sont ordonnes selon les ratios ui/wi
decroissants : u1w1≥ u2
w2≥ . . . ≥ un
wn
I Probleme NP-complet (dans sa version decision)
MTH8415: Optimisation en nombres entiers 41/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Relaxation (borne sup.)Il n’est pas necessaire de resoudre le PL avec une methodegenerique car la solution peut etre obtenue avec la simpleprocedure suivante :
1. Sachant que les objets sont ordonnes selon des ui/wi
decroissants, trouver l’indice k tel que∑k
i=1wi ≤W et∑k+1i=1 wi > W
2. Poser
xi = 1 pour 0 ≤ i ≤ k
xk+1 =W −
∑ki=1wi
wk+1
xi = 0 pour k + 2 ≤ i ≤ n
La valeur de la relaxation (borne sup.) est
z =
⌊k∑
i=1
ui + uk+1xk+1
⌋(arrondi seulement si les couts sont entiers)
MTH8415: Optimisation en nombres entiers 42/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Heuristique gloutonne (borne inf.)
1. Trouver l’indice k tel que∑k
i=1wi ≤W et∑k+1
i=1 wi > W
2. Poser
{xi = 1 pour 0 ≤ i ≤ kxi = 0 pour k + 1 ≤ i ≤ n
3. Amelioration : S’il existe un indice ` ∈ [k + 1;n] tel que∑ki=1wi + w` ≤W , alors poser x` = 1
Cette heuristique donne un point realisable pour le sac a dos, etdonc une borne inferieure a sa valeur optimale. Cette borne est
z =k∑
i=1ui ou
k∑i=1
ui + u` si ` existe
MTH8415: Optimisation en nombres entiers 43/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Resolution par B&B sur exemple
On considere l’instance suivante :
maxx∈{0,1}5
20x1 + 17x2 + 14x3 + 27x4 + 16x5
s.c. 7x1 + 6x2 + 5x3 + 10x4 + 7x5 ≤ 22
ou les ratios ui/wi sont bien ordonnes :
2.86 > 2.83 > 2.8 > 2.7 > 2.29
Note : La resolution par programmation dynamique sera vue a lalecon #7 (programmation dynamique)
MTH8415: Optimisation en nombres entiers 44/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : nœud racine
I La premiere relaxation donne : x1 = x2 = x3 = 1, x4 = 0.4,x5 = 0, pour z = b61.8c = 61
I La premiere borne inf. est obtenue avec x1 = x2 = x3 = 1,x4 = x5 = 0, pour z = 51
I On branche ensuite sur la variable fractionnaire x4 avecx4 = 0 et x4 = 1
I Les acetates suivantes decrivent une exploration en profondeurd’abord, puis en largeur d’abord
MTH8415: Optimisation en nombres entiers 45/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Profondeur d’abord
MTH8415: Optimisation en nombres entiers 46/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Largeur d’abord
MTH8415: Optimisation en nombres entiers 47/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Largeur d’abord
MTH8415: Optimisation en nombres entiers 47/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Largeur d’abord
MTH8415: Optimisation en nombres entiers 47/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Exemple B&B : Largeur d’abord
MTH8415: Optimisation en nombres entiers 47/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 48/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Presentation du GAP [Wolsey, 1998]I On assigne des taches a des individus
I Chaque tache consomme une ressource (temps, argent, etc.)
I La quantite de ressource consommee sera differente selonl’individu qui aura cette tache
I Chaque tache doit etre accomplie par un (et seulement un)individu
I Un individu peut etre assigne a plus d’une tache pourvu qu’ilait suffisamment de ressources a sa disposition
I Il y a un profit associe a l’affectation d’une tache a unindividu. Ce profit est different pour chacun
I On souhaite trouver l’affectation optimale qui respecte lescontraintes d’usage des ressources
MTH8415: Optimisation en nombres entiers 49/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Parametres et variables
I Indices :I i ∈ I = {1, 2, . . . ,m} (taches)
I j ∈ J = {1, 2, . . . , n} (individus)
I Parametres :I cij : Profit obtenu quand on associe la tache i a l’individu j
I aij : Ressource consommee quand on associe la tache i al’individu j
I bj : Ressource disponible pour l’individu j
I Variables :xij = 1 si la tache i est associee a l’individu j, 0 sinon
MTH8415: Optimisation en nombres entiers 50/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Modele
maxx
∑i∈I
∑j∈J
cijxij
s.c.
∑j∈J
xij = 1 i ∈ I∑i∈I
aijxij ≤ bj j ∈ J
xij ∈ {0, 1} i ∈ I, j ∈ J
MTH8415: Optimisation en nombres entiers 51/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Resolution avec le solveur Excel (1)
I Voir fichier GAP.xlsx
I Le processus de solution peut etre relativement long(' 10 sec)
I On peut l’accelerer en ajoutant des contraintes qui eliminentdes solutions que l’ont sait irrealisables
MTH8415: Optimisation en nombres entiers 52/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Resolution avec le solveur Excel (2)
I Puisqu’un employe ne peut prendre en charge plus d’unetache qui demande plus de la moitie de ses ressources, nouspouvons ajouter les contraintes suivantes :
x11 + x21 + x41 + x71 + x81 + x91 + x10,1 ≤ 1x22 + x32 + x62 + x72 + x82 + x10,2 ≤ 1x43 + x53 + x63 + x73 + x83 + x93 + x10,3 ≤ 1x14 + x44 + x64 + x74 + x94 + x10,4 ≤ 1x15 + x25 + x65 + x85 ≤ 1
I La solution du nouveau probleme peut etre obtenue en' 2 secondes
MTH8415: Optimisation en nombres entiers 53/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
Resolution avec le solveur Excel (3)
I On etend le meme principe afin d’ajouter de nouvellescontraintes que l’on sait que la solution doit satisfaire
I Ainsi, pour chaque employe, on selectionne des ensembles detaches qui ne peuvent s’effectuer ensemble
I La solution du nouveau probleme devient instantanee
Ces inegalites sont donc cruciales pour une resolution efficace. Cesont des inegalites valides, a la base des algorithmes de typeBranch and Cut
MTH8415: Optimisation en nombres entiers 54/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 55/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
ExtensionsI Theorie polyedrale (faces, facettes, etc.)
I Dualite lagrangienne
I Familles de coupes / inegalites valides (coupes deChvatal-Gomory, coupes disjonctives, etc.)
I Algorithme Branch and cut
I Cas non-lineaire
I Metaheuristiques
I Theorie des graphes
I Solveurs :I OL entier/binaire/mixte : CPLEX, Gurobi, etc.
I ONL entier/binaire/mixte : Baron, Bonmin, etc.
MTH8415: Optimisation en nombres entiers 56/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
1. Introduction
2. Modelisation
3. Algorithme d’enumeration implicite
4. Probleme du sac a dos
5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)
6. Extensions
References
MTH8415: Optimisation en nombres entiers 57/58
Introduction Modelisation B&B Sac a dos GAP Extensions References
References I
Audet, C. (2001).
Notes de cours, MTH6404, Programmation en nombres entiers.
Land, A. and Doig, A. (1960).
An Automatic Method of Solving Discrete Programming Problems.
Econometrica, 28(3) :497–520.
Wolsey, L. (1998).
Integer programming.
Wiley-Interscience series in discrete mathematics and optimization. J.Wiley & sons, New York (N.Y.), Chichester, Weinheim.
MTH8415: Optimisation en nombres entiers 58/58
top related