• Aucun résultat trouvé

#6 Optimisation en nombres entiers

N/A
N/A
Protected

Academic year: 2021

Partager "#6 Optimisation en nombres entiers"

Copied!
71
0
0

Texte intégral

(1)

Optimisation en nombres entiers

MTH8415

S. Le Digabel, Polytechnique Montr´eal

H2020

(2)

Plan

1. Introduction 2. Mod´elisation

3. Algorithme d’´enum´eration implicite

4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation

g´en´eralis´ee (GAP) 6. Extensions R´ef´erences

(3)

1. Introduction

2. Mod´elisation

3. Algorithme d’´enum´eration implicite 4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation g´en´eralis´ee (GAP)

6. Extensions R´ef´erences

(4)

Types de probl`

emes

Probl`eme d’optimisation lin´eaire ou non lin´eaire :

I En nombres entiers : Toutes les variables doivent ˆetre enti`eres (x ∈ Zn)

I En variables binaires : Toutes les variables doivent ˆetre binaires (x ∈ {0, 1}n)

I Mixte : Certaines variables peuvent ˆetre enti`eres ou binaires, les autre continues.

Dans ce cours, on se concentre sur les probl`emes lin´eaires en nombres entiers et en variables binaires

(5)

Mod`

ele de probl`

eme lin´

eaire en nombres entiers

(PLNE)

max x c > x s.c.  Ax ≥ b x ∈ Zn avec c ∈ Rn, b ∈ Rm, A ∈ Rm×n

I Relaxation continue : Remplacer la contrainte x ∈ Znpar

x ∈ Rn. On obtient un probl`eme lin´eaire (PL)

I La valeur de la solution de la relaxation est une borne sup´erieure sur la valeur de la solution du PLNE

I Tout point r´ealisable x ∈ Zn avec Ax ≥ b donne une borne inf´erieuresur la valeur de la solution du PLNE

(6)

Complexit´

e

I Un PLNE est souvent beaucoup plus difficile `a r´esoudre que sa relaxation continue

I Il arrive mˆeme que ce soit impossible `a faire dans un temps raisonnable : Voir le¸con #8(th´eorie de la complexit´e) : Le PLNE estN P-difficile

(7)

Id´

ees pour la r´

esolution

I Il arrive parfois que la solution de la relaxation soit enti`ere, i.e. les coordonn´ees du point extrˆeme optimal sont enti`eres I Dans ce cas, cette solution du PL est aussi la solution du

PLNE, car elle a donn´e `a la fois une borne sup´erieure et une borne inf´erieure

I Tous les probl`emes de flot sur un r´eseau ont une solution enti`ere si les donn´ees sont enti`eres

I En g´en´eral, arrondir la solution du PL ne fonctionne pas car une solution arrondie peut :

I Ne pas ˆetre r´ealisable pour le PLNE

(8)
(9)

Enveloppe convexe

I L’ensemble r´ealisable est l’intersection d’un poly`edre (en noir) et des points entiers dans ce poly`edre I L’enveloppe convexe(en

vert) est donn´ee par d’autres contraintes, mais d´efinit le mˆeme ensemble r´ealisable I La solution de la relaxation

correspondra alors `a la solution optimale du PLNE I Probl`eme. . .

(10)

1. Introduction

2. Mod´elisation

3. Algorithme d’´enum´eration implicite 4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation g´en´eralis´ee (GAP)

6. Extensions R´ef´erences

(11)

Introduction

Le but de cette section est de montrer des astuces afin que

certains cas puissent se mod´eliser `a l’aide d’un probl`eme lin´eaire en variables binaires

Ces cas sont :

I Conditions logiques

I Coˆut fixe

I S´election de k contraintes parmi m et de k variables parmi n I P´enalit´e pour ne pas respecter une contrainte

I Intervalles non connexes

(12)

Conditions logiques

I On ne peut pas exprimer de conditions logiques directement

(avec des si, sinon, alors, etc.), sinon le mod`ele n’est plus lin´eaire

I Les exemples suivants consid`erent des variables binaires I La condition x = 1 ⇔ y = 1 se mod´elise `a l’aide de la

contrainte x = y

I Pour les autres exemples, il est utile de se baser sur une table des valeurs possibles afin de d´eterminer les situations `a ´

(13)

Conditions logiques : x = 1 ⇒ y = 1

La ligne en rouge dans la table suivante correspond au cas `a ´eliminer : x y 0 0 0 1 1 0 1 1

On ajoute donc la contrainte

(14)

Conditions logiques : x = 0 ⇒ y = 1

La ligne en rouge correspond au cas `a ´eliminer :

x y

0 0

0 1

1 0

1 1

On ajoute donc la contrainte

(15)

Conditions logiques : (x = 1 et y = 1) ⇒ z = 1

La ligne en rouge correspond au cas `a ´eliminer :

x y z x + y − z 0 0 0 0 0 0 1 −1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 2 1 1 1 1

On ajoute donc la contrainte

(16)

Conditions logiques : (x = 1 ou y = 1) ⇒ z = 1

Les 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 0 0 0 1 −1 −1 −1 0 1 0 1 −1 1 0 1 1 0 −2 0 1 0 0 −1 1 1 1 0 1 −2 0 0 1 1 0 0 0 2 1 1 1 −1 −1 1

On ajoute donc les contraintes    −x + y − z ≤ 0 x − y − z ≤ 0 x + y − z ≤ 1

(17)

Mod´

elisation d’un coˆ

ut fixe

I Un objectif `a minimiser contient le terme Cx avec C un coˆut proportionnel `a la valeur de x

I On veut ajouter un coˆut fixe F lorsque x > 0 I On introduit une variable binaire y et :

I On ajoute le terme F y `a l’objectif : Cx → Cx + F y

I On ajoute la contrainte

x ≤ M y avec M une borne sup´erieure sur x

I S’il est avantageux d’avoir x > 0, alors automatiquement y vaudra 1 et on paiera le coˆut fixe. Sinon, y sera

(18)

election de k contraintes parmi m

I On doit satisfaire au moins k contraintes parmi les m

contraintes du syst`eme d’in´egalit´es Ax ≤ b avec x, b ∈ Rn et

A ∈ Rm×n

I On introduit m variables binaires yi, i = 1, 2, . . . , m. On aura

yi = 1 si on permet `a la contrainte i d’ˆetre viol´ee, 0 sinon

I Les m in´egalit´e deviennent

Ax ≤ b → Ax ≤ b + M y

avec y ∈ {0, 1}m et M ∈ R suffisamment grand

I Puis, on ajoute la contrainte

m

P

i=1

yi≤ m − k (au moins k

(19)

election 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 valeur strictement positive

I On introduit les n variables binaires yi, i = 1, 2, . . . , n, telles

que 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 contrainte

n

P

i=1

(20)

enalit´

e pour ne pas respecter une contrainte

I Pour un probl`eme de minimisation, on veut ajouter une

p´enalit´e P si la contrainte a>x ≤ b est viol´ee, avec a, x ∈ Rn et b ∈ R

I On introduit la variable binaire y qui vaut 1 si la contrainte est viol´ee, et 0 sinon

I On ajoute le terme P y dans l’objectif I On modifie la contrainte :

a>x ≤ b → a>x ≤ b + M y

(21)

Intervalles non connexes (1)

I On veut que la variable x ∈ R soit ´egale `a 0 ou bien dans l’intervalle [`; u], avec `, u ∈ R

I On introduit la variable binaire y qui vaut 1 si x ∈ [`; u], et x = 0 sinon, en introduisant les contraintes

(22)

Intervalles non connexes (2)

I On veut que la variable x ∈ R soit ´egale `a 0, ou dans l’intervalle [200; 500], ou dans l’intervalle [700; 1000] I On introduit deux variables binaires y1, y2 et deux variables

continues x1, x2, et on ajoute les contraintes suivantes au

probl`eme :                x = x1+ x2 y1+ y2 ≤ 1 200y1≤ x1 ≤ 500y1 700y2≤ x2 ≤ 1000y2 x1, x2 ∈ R y1, y2 ∈ {0, 1}

(23)

Intervalles non connexes (3)

I La variable x ∈ R ne peut prendre qu’une valeur comprise

dans l’ensemble {2, 3, 5, 7}

I On introduit 4 variables binaires y1, y2, y3, y4 et on ajoute les

contraintes    x = 2y1+ 3y2+ 5y3+ 7y4 y1+ y2+ y3+ y4 = 1 y1, y2, y3, y4 ∈ {0, 1}

(24)

Fonctions lin´

eaires par morceaux (1/3)

On veut mod´eliser la fonction continue lin´eaire par morceaux suivante : f (x) =    0.5x + 5 si 0 ≤ x < 10 2x − 10 si 10 ≤ x < 15 0.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

(25)

Fonctions lin´

eaires par morceaux (2/3)

I On introduit trois variables continues x1, x2, x3 ∈ R et deux

variables binaires y1, y2∈ {0, 1}

I On ajoute les contraintes suivantes :    10y1 ≤ x1≤ 10 5y2 ≤ x2 ≤ 5y1 0 ≤ x3 ≤ 25y2

I La fonction par morceaux pourra s’exprimer par

fx = 5 + 0.5x1+ 2x2+ 0.2x3

(26)

Fonctions lin´

eaires par morceaux (3/3) : V´

erification

I Si y1= y2= 0 : I 0 ≤ x1≤ 10, x2= x3= 0 I 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= 0 I 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

(27)

1. Introduction 2. Mod´elisation

3. Algorithme d’´enum´eration implicite

4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation g´en´eralis´ee (GAP)

6. Extensions R´ef´erences

(28)

Algorithme d’´

enum´

eration implicite

I Branch and Bound(B&B) [Land and Doig, 1960]

I L’algorithme est exact et garantit l’obtention de la solution optimale, mais en pratique cela peut prendre ´enorm´ement de temps

I R´esolution d’une s´erie de probl`emes lin´eaires, le premier ´etant la relaxation PL du PLNE

I Ces diff´erentes r´esolutions sont organis´ees dans unarbre de branchement

I A chaque r´` esolution, il y a deux ´etapes principales :

´

(29)

B&B : ´

Evaluation et s´

eparation (maximisation)

I Evaluation : R´´ esoudre la relaxation continue courante et en

d´eduire :

I Une borne sup´erieure

I Une borne inf´erieure, si possible. Par exemple si la solution de la relaxation courante est enti`ere, ou bien avec une heuristique I S´eparation :

I S´eparer (brancher) le probl`eme courant en plusieurs sous-probl`emes (typiquement deux)

I Par exemple : Si la relaxation courante donne xi= 2.3, cr´eer

deux sous-probl`emes avec la contrainte xi≤ 2 et xi≥ 3,

(30)

B&B : ´

Elagation

I L’arbre de branchement se construit au fur et `a mesure I Il existe plusieurs strat´egies pour le parcourir : Largeur

d’abord,profondeur d’abord, etc.

I On met `a jour en tout temps la solution et la meilleure valeur connue du PLNE

I A chaque nœud de cet arbre, on maintient des bornes` inf´erieures et sup´erieures. Chaque sous-probl`eme de ce nœud ne pourra g´en´erer de solutions en dehors de ces bornes I Ainsi, on peut d´ecider de ne pas explorer certaines parties de

l’arbre car on sait d´ej`a qu’on ne pourra pas faire mieux que la meilleure valeur connue jusqu’`a pr´esent : Principe de

(31)

B&B : Exemple

R´esoudre le PLNE avec un algorithme de B&B : max x1,x2 f (x1, x2) = 2x1+ 3x2 s.c.    4x1+ 12x2 ≤ 33 10x1+ 4x2 ≤ 35 x1, x2∈ N

(32)
(33)

B&B : Exemple : Premi`

ere relaxation

I Evaluation : R´´ esoudre la relaxation lin´eaire du PLNE :

I La solution du PL x = (2.769, 1.826) pour f (x) = 11.019 n’est pas enti`ere : ce n’est donc pas la solution optimale du probl`eme

I La valeur optimale (11.019) nous donne une borne sup´erieure pour la valeur optimale du PLNE, que l’on peut arrondir `a 11 car tous les coˆuts sont entiers

I S´eparation : On s´epare le probl`eme original en deux probl`emes.

I Ce branchement peut se faire sur x1 ou x2

I On choisit (arbitrairement) x1et on ajoute une nouvelle

(34)

B&B : Exemple : Probl`

emes I et II

Prob. I : max x1,x2 2x1+ 3x2 s.c.        4x1+ 12x2 ≤ 33 10x1+ 4x2 ≤ 35 x1 ≤ 2 x1, x2≥ 0 Prob. II : max x1,x2 2x1+ 3x2 s.c.        4x1+ 12x2 ≤ 33 10x1+ 4x2 ≤ 35 x1 ≥ 3 x1, x2≥ 0

(35)
(36)

B&B : Exemple : Probl`

emes III et IV

Le deuxi`eme branchement sur x2, sous le nœud du probl`eme I,

donne les probl`emes III et IV suivants :

Prob. III : max

x1,x2 2x1+ 3x2 s.c.            4x1+ 12x2 ≤ 33 10x1+ 4x2 ≤ 35 x1 ≤ 2 x2 ≤ 2 x1, x2 ≥ 0 Prob. IV : max x1,x2 2x1+ 3x2 s.c.            4x1+ 12x2 ≤ 33 10x1+ 4x2 ≤ 35 x1 ≤ 2 x2 ≥ 3 x1, x2 ≥ 0

(37)
(38)

B&B : Exemple : Fin

I Nous ne s´eparerons pas le Probl`eme III puisque sa solution optimale est enti`ere

I Nous pourrions s´eparer le Probl`eme II (en ajoutant la contrainte 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 d´ej`a un point entier de valeur 10, il n’y a donc pas de meilleur point entier dans l’ensemble r´ealisable du Prob. II

I Arrˆet de l’algorithme : il n’y a plus de nœud `a r´esoudre : La solution optimale est obtenue : x∗ = (2, 2) avec f (x∗) = 10

(39)
(40)

1. Introduction 2. Mod´elisation

3. Algorithme d’´enum´eration implicite

4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation g´en´eralis´ee (GAP)

6. Extensions R´ef´erences

(41)

Mod`

ele

max x1,x2,...,xn n X i=1 uixi s.c.    n P i=1 wixi ≤ W x ∈ {0, 1}n

I Chaque variable correspond `a un objet que l’on prend ou pas dans le sac

I ui> 0 : Utilit´e de l’objet i ; wi > 0 : Poids de l’objet i

I W : Capacit´e du sac (telle que W <Pn

i=1wi)

I On suppose que les objets sont ordonn´es selon les ratios ui/wi

d´ecroissants : u1 w1 ≥ u2 w2 ≥ . . . ≥ un wn

(42)

Relaxation (borne sup.)

Il n’est pas n´ecessaire de r´esoudre le PL avec une m´ethode g´en´erique car la solution peut ˆetre obtenue avec la simple proc´edure suivante :

1. Sachant que les objets sont ordonn´es selon des ui/wi

d´ecroissants, trouver l’indice k tel quePk

i=1wi≤ W et Pk+1 i=1wi> W 2. Poser        xi = 1 pour 0 ≤ i ≤ k xk+1= W −Pk i=1wi wk+1 xi = 0 pour k + 2 ≤ i ≤ n

La valeur de la relaxation (borne sup.) est z = $ k X i=1 ui+ uk+1xk+1 %

(43)

Heuristique gloutonne (borne inf.)

1. Trouver l’indice k tel que Pk

i=1wi ≤ W etPk+1i=1 wi > W

2. Poser 

xi= 1 pour 0 ≤ i ≤ k

xi= 0 pour k + 1 ≤ i ≤ n

3. Am´elioration : S’il existe un indice ` ∈ [k + 1; n] tel que

Pk

i=1wi+ w` ≤ W , alors poser x` = 1

Cette heuristique donne un point r´ealisable pour le sac `a dos, et donc une borne inf´erieure `a sa valeur optimale. Cette borne est z = k P i=1 ui ou k P i=1 ui+ u` si ` existe

(44)

esolution par B&B sur exemple

On consid`ere l’instance suivante :

max

x∈{0,1}520x1+ 17x2+ 14x3+ 27x4+ 16x5

s.c. 7x1+ 6x2+ 5x3+ 10x4+ 7x5 ≤ 22

o`u les ratios ui/wi sont bien ordonn´es :

2.86 > 2.83 > 2.8 > 2.7 > 2.29

Note : La r´esolution par programmation dynamique sera vue `a la

(45)

Exemple B&B : nœud racine

I La premi`ere relaxation donne : x1 = x2= x3 = 1, x4 = 0.4,

x5= 0, pour z = b61.8c = 61

I La premi`ere borne inf. est obtenue avec x1= x2 = x3 = 1,

x4= x5 = 0, pour z = 51

I On branche ensuite sur la variable fractionnaire x4 avec

x4= 0 et x4 = 1

I Les ac´etates suivantes d´ecrivent une exploration en profondeur d’abord, puis en largeur d’abord

(46)
(47)
(48)
(49)
(50)
(51)
(52)
(53)
(54)
(55)
(56)
(57)
(58)
(59)
(60)
(61)

1. Introduction 2. Mod´elisation

3. Algorithme d’´enum´eration implicite 4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation

g´en´eralis´ee (GAP)

6. Extensions R´ef´erences

(62)

Pr´

esentation du GAP [Wolsey, 1998]

I On assigne des tˆaches `a des individus

I Chaque tˆache consomme une ressource (temps, argent, etc.)

I La quantit´e de ressource consomm´ee sera diff´erente selon l’individu qui aura cette tˆache

I Chaque tˆache doit ˆetre accomplie par un (et seulement un) individu

I Un individu peut ˆetre assign´e `a plus d’une tˆache pourvu qu’il ait suffisamment de ressources `a sa disposition

I Il y a un profit associ´e `a l’affectation d’une tˆache `a un individu. Ce profit est diff´erent pour chacun

I On souhaite trouver l’affectation optimale qui respecte les contraintes d’usage des ressources

(63)

Param`

etres et variables

I Indices :

I i ∈ I = {1, 2, . . . , m} (tˆaches)

I j ∈ J = {1, 2, . . . , n} (individus) I Param`etres :

I cij : Profit obtenu quand on associe la tˆache i `a l’individu j

I aij : Ressource consomm´ee quand on associe la tˆache i `a

l’individu j

I bj : Ressource disponible pour l’individu j

I Variables :

(64)

Mod`

ele

max x X i∈I X j∈J cijxij s.c.        P j∈J xij = 1 i ∈ I P i∈I aijxij ≤ bj j ∈ J xij ∈ {0, 1} i ∈ I, j ∈ J

(65)

esolution 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’acc´el´erer en ajoutant des contraintes qui ´eliminent des solutions que l’ont sait irr´ealisables

(66)

esolution avec le solveur Excel (2)

I Puisqu’un employ´e ne peut prendre en charge plus d’une tˆache qui demande plus de la moiti´e de ses ressources, nous pouvons ajouter les contraintes suivantes :

           x11+ x21+ x41+ x71+ x81+ x91+ x10,1 ≤ 1 x22+ x32+ x62+ x72+ x82+ x10,2 ≤ 1 x43+ x53+ x63+ x73+ x83+ x93+ x10,3 ≤ 1 x14+ x44+ x64+ x74+ x94+ x10,4 ≤ 1 x15+ x25+ x65+ x85 ≤ 1

I La solution du nouveau probl`eme peut ˆetre obtenue en ' 2 secondes

(67)

esolution avec le solveur Excel (3)

I On ´etend le mˆeme principe afin d’ajouter de nouvelles contraintes que l’on sait que la solution doit satisfaire I Ainsi, pour chaque employ´e, on s´electionne des ensembles de

tˆaches qui ne peuvent s’effectuer ensemble

I La solution du nouveau probl`eme devient instantan´ee

Ces in´egalit´es sont donc cruciales pour une r´esolution efficace. Ce sont desin´egalit´es valides, `a la base des algorithmes de type

(68)

1. Introduction 2. Mod´elisation

3. Algorithme d’´enum´eration implicite 4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation g´en´eralis´ee (GAP)

6. Extensions

(69)

Extensions

I Th´eorie poly´edrale (faces, facettes, etc.) I Dualit´e lagrangienne

I Familles de coupes / in´egalit´es valides (coupes de Chv´atal-Gomory, coupes disjonctives, etc.)

I Algorithme Branch and cut

I Cas non-lin´eaire I M´etaheuristiques I Th´eorie des graphes I Solveurs :

I OL entier/binaire/mixte : CPLEX, Gurobi, etc.

(70)

1. Introduction 2. Mod´elisation

3. Algorithme d’´enum´eration implicite 4. Probl`eme du sac `a dos

5. R´esolution avec un solveur : Probl`eme d’affectation g´en´eralis´ee (GAP)

6. Extensions

(71)

ef´

erences 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.

Références

Documents relatifs

Construire un champ de vecteurs complet sur R 3 dont les courbes int´ egrales par tout point de H soient contenues dans H et qui n’ait pas d’orbites

Par imparité, elle est dérivable strictement croissante dans R avec les limites −∞ et +∞.. C'est donc

La relation C est d'équivalence car les trois propriétés (réexivité, symétrie, tran- sitivité) découlent des propriétés correspondantes de la congruence modulo

[r]

[r]

[r]

Dans ces cas, et avec l’optique par exemple de rendre la m´ethode algorithmique (et donc d´eterministe) en vue de la program- mer sur un ordinateur, il faut y adjoindre un ou

Si toutes les composantes de b sont positives (i.e. si le probl`eme sous forme canonique est de premi`ere esp`ece), alors le probl`eme sous forme standard (8.3) poss`ede comme