You are on page 1of 17

Optimisation en nombres entiers

Recherche Oprationnelle GC-SIE

Motivation et exemples

Optimisation en nombres entiers


Dfinitions : Un programme en nombres entiers est un programme dont les variables sont contraintes ne prendre que des valeurs entires. Souvent, elles sont contraintes prendre les valeurs 0 ou 1. On parle alors dun programme binaire.

Nombres entiers

Michel Bierlaire

Optimisation en nombres entiers


Dfinitions : Un programme mixte en nombres entiers est un programme dont certaines variables sont contraintes ne prendre que des valeurs entires.

Nombres entiers

Michel Bierlaire

Optimisation en nombres entiers


Dans ce cours, on ne considrera que des programmes linaires en nombres entiers. Approche intuitive immdiate : On ignore les contraintes dintgralit. On arrondi la solution. En gnral, cela ne marche pas !

Nombres entiers

Michel Bierlaire

Exemple
max 3 x1 + 13 x2 sc. 2 x1 + 9 x2 40 11 x1 8 x2 82 x1, x2 0 x1, x2 entiers

Nombres entiers

Michel Bierlaire

Exemple x*entier=(2,4)
2x1+9x2=40 11x1-8x2 = 82

Voisins non admissibles


Nombres entiers

x*continu=(9.2,2.4)
Michel Bierlaire 7

Exemple : investissement
Une socit dispose de 1 400 000 F investir. Les experts proposent 4 investissements possibles
Cot Inv. 1 Inv. 2 Inv. 3 Inv. 4
Nombres entiers

Bnfice Rendement 3.20 3.14 3.00 2.67


8

500 000 1 600 000 700 000 2 200 000 400 000 1 200 000 300 000 800 000
Michel Bierlaire

Exemple : investissement
Modlisation : Variables de dcision : xi, i=1,,4 xi = 1 si investissement i est choisi xi = 0 sinon Objectif : maximiser bnfice max 16 x1 + 22 x2 + 12 x3 + 8 x4 Contrainte : budget dinvestissement 5 x1 + 7 x2 + 4 x3 + 3 x4 14
Nombres entiers Michel Bierlaire 9

Exemple : investissement
Programme linaire 1 max 16 x1 + 22 x2 + 12 x3 + 8 x4 s.c. 5 x1 + 7 x2 + 4 x3 + 3 x4 14 x1, x2, x3, x4 0 Solution : x1 = 2.8, x2 = 0, x3 = 0, x4 = 0
Nombres entiers Michel Bierlaire 10

Exemple : investissement
x1 = 2.8, x2 = 0, x3 = 0, x4 = 0 Problme : comment interprter cette solution ? Effectuer linvestissement 1. Bnfice : 1 600 000 F. Cot : 500 000 F

Nombres entiers

Michel Bierlaire

11

Exemple : investissement
Programme linaire 2 max 16 x1 + 22 x2 + 12 x3 + 8 x4 s.c. 5 x1 + 7 x2 + 4 x3 + 3 x4 14 x1 , x2 , x3 , x4 0 x1 , x2 , x3 , x4 1 Solution : x1 = 1, x2 = 1, x3 = 0.5, x4 = 0
Nombres entiers Michel Bierlaire 12

Exemple : investissement
x1 = 1, x2 = 1, x3 = 0.5, x4 = 0 Problme : comment interprter cette solution ? Effectuer les investissements 1 et 2. Bnfice : 3 800 000 F. Cot : 1 200 000 F. Plus assez de budget pour linvestissement 3.

Nombres entiers

Michel Bierlaire

13

Exemple : investissement
Programme en nombres entiers max 16 x1 + 22 x2 + 12 x3 + 8 x4 s.c. 5 x1 + 7 x2 + 4 x3 + 3 x4 14 x1, x2, x3, x4 {0,1} Solution : x1 = 0, x2 = 1, x3 = 1, x4 = 1
Nombres entiers Michel Bierlaire 14

Exemple : investissement
x1 = 0, x2 = 1, x3 = 1, x4 = 1 Solution vidente interprter Bnfice : 4 200 000 F. Cot : 1 400 000 F.

Nombres entiers

Michel Bierlaire

15

Exemple : investissement
Notes : Les contraintes dintgralit peuvent modifier significativement la structure de la solution. Lintuition acquise avec les variables continues nest pas directement utilisable. Dans lexemple, linvestissement 1 est le plus rentable, mais il nest pas repris dans la solution optimale.

Nombres entiers

Michel Bierlaire

16

Exemple : le sac dos


Jo le campeur part en randonne dans la montagne. Il ne peut emporter dans son sac dos quun poids limit P. Chaque article i quil peut potentiellement emporter pse pi et lui procure une utilit ui pour sa randonne. Question : quels articles emporter pour maximiser son utilit sans dpasser la limite de poids ?

Nombres entiers

Michel Bierlaire

17

Problme du sac dos


Variables de dcision xi = 1 si Jo emporte larticle i xi = 0 sinon max u1x1+u2x2++unxn s.c. p1x1+p2x2+ +pnxn P x1,,xn {0,1}
Nombres entiers Michel Bierlaire 18

Problme du sac dos


Notes : En gnral, les problmes de cette forme portent le nom gnrique de problme de sac dos. Le problme dinvestissement est un problme de sac dos. Le nombre de manires de choisir un sous-ensemble de n lments est 2n.

Nombres entiers

Michel Bierlaire

19

Problme du sac dos


Si lon suppose quil faut 1/100 de seconde pour considrer un sous-ensemble, alors il faut plus dune anne pour 32 lments plus de 100 ans pour 39 lments plus de 1000 ans pour 42 lments plus de 10 000 ans pour 45 lments plus de 100 000 ans pour 49 lments plus de 1 000 000 ans pour 52 lments

Nombres entiers

Michel Bierlaire

20

10

1/100 de seconde par sous-ensemble


1.00E+22 1.00E+20 1.00E+18 1.00E+16 1.00E+14 1.00E+12 1.00E+10 Annes 1.00E+08 1.00E+06 1.00E+04 1.00E+02 1.00E+00 1.00E-02 0 1.00E-04 1.00E-06 1.00E-08 Taille du problme 10 20 30 40 50 60 70 80 90 100

Ere chrtienne 2000 ans

Homo Erectus 1 600 000 ans

Age de lunivers 10 000 000 000 ans

Problme du sac dos


Il est impossible de considrer toutes les possibilits. Un algorithme efficace devrait obtenir la solution optimale en examinant un trs petit nombre de solutions.

Nombres entiers

Michel Bierlaire

22

11

Modlisation
Reprenons le problme dinvestissement La socit se voit imposer des contraintes supplmentaires. a) Elle peut oprer au maximum deux investissements Contrainte : x1 + x2 + x3 + x4 2

Nombres entiers

Michel Bierlaire

23

Modlisation
b) Si elle dcide doprer linvest. 2, elle doit aussi oprer linvest. 1. Contrainte : x2 x1 ou x2 x1 0 Si x2 = 1, alors x1 1.Comme x1 {0,1}, alors x1 = 1. Si x2 = 0, alors x1 0. Pas de restriction sur x1.

Nombres entiers

Michel Bierlaire

24

12

Modlisation
c) Si elle dcide doprer linvest. 2, elle ne peut pas oprer linvest. 4. Contrainte : x2 + x4 1 Si x2 = 1, alors x4 0.Comme x4 {0,1}, alors x4 = 0. Si x2 = 0, alors x4 1. Pas de restriction sur x4.

Nombres entiers

Michel Bierlaire

25

Modlisation : set-covering
Problme : localisation de stations dincendie dans six villes. Objectif : en installer le moins possible. Contrainte : pouvoir atteindre chaque ville en au moins 15 minutes partir dau moins une station.

Nombres entiers

Michel Bierlaire

26

13

Modlisation : set-covering
Table des temps de trajet :
1 1 2 3 4 5 6
Nombres entiers

2 10

3 20 25

4 30 35 15

5 30 20 30 15

6 20 10 20 25 14

10 20 30 30 20 25 35 20 10

15 30 20
Michel Bierlaire

15 25 14

27

Modlisation : set-covering
Variables de dcision : xi = 1 si on installe une station dans la ville i (i=1,6) xi = 0 sinon Objectif : min x1+x2+x3+x4+x5+x6

Nombres entiers

Michel Bierlaire

28

14

Modlisation : set-covering
Contraintes : La ville 1 peut tre atteinte en au moins 15 minutes partir de la ville 1 et de la ville 2. Pour assurer le service de la ville 1, il faut donc une station soit en 1 soit en 2. x1 + x2 1

Nombres entiers

Michel Bierlaire

29

Modlisation : set-covering
Contraintes : La ville 2 peut tre atteinte en au moins 15 minutes partir de la ville 1, de la ville 2 et de la ville 6. Pour assurer le service de la ville 2, il faut donc une station soit en 1, soit en 2, soit en 6. x1 + x2 + x6 1

Nombres entiers

Michel Bierlaire

30

15

Modlisation : set-covering
Programme : min x1+x2+x3+x4+x5+x6 x1 + x2 1 x1 + x2 + x6 1 x3+x4 1 x3+x4+x5 1 x4+x5+x6 1 x2+x5+x6 1
Nombres entiers Michel Bierlaire 31

Modlisation : soit-soit
Considrons deux contraintes : f(x1,,xn) 0 g(x1,,xn) 0 On veut garantir quau moins une des ces contraintes soit vrifie, mais pas ncessairement les deux. Pour cela, il faut
Dterminer M tel que f(x1,,xn) M et g(x1,,xn) M x Introduire une variable binaire y{0,1}

Nombres entiers

Michel Bierlaire

32

16

Modlisation : soit-soit
Utilisons les contraintes suivantes : f(x1,,xn) My g(x1,,xn) M(1-y) Si y = 1, alors les contraintes sont f(x1,,xn) M g(x1,,xn) 0 Si y = 0, alors les contraintes sont f(x1,,xn) 0 g(x1,,xn) M
Nombres entiers Michel Bierlaire 33

17

You might also like