• Aucun résultat trouvé

1 Exemple : (H&L, 11.1) Exemple (suite) 4. Programmation en nombres entiers Terminologie de base

N/A
N/A
Protected

Academic year: 2022

Partager "1 Exemple : (H&L, 11.1) Exemple (suite) 4. Programmation en nombres entiers Terminologie de base"

Copied!
10
0
0

Texte intégral

(1)

IFT1575 Modèles de recherche opérationnelle (RO)

4. Programmation en nombres entiers a. Modélisation

4. Programmation entiers 2

Terminologie de base

Programmation en nombres entiers = Programmation linéaire avec certaines variables contraintes à prendre des valeurs entières

Programmation non linéaireen nombres entiers = Programmation non linéaire (sec. 7) avec certaines variables entières

Programmation pureen nombres entiers = toutes les variables sont entières

Programmation (mixte) en nombres entiers = certaines variables sont entières

Programmation 0-1 (binaire) = les variables entières sont à valeurs 0 ou 1 (binaires)

Exemple : California Mfg (H&L, 11.1)

Choisir de nouveaux emplacements pour construire des usines et des entrepôts

Deux emplacements : LA et SF

On ne peut construire un entrepôt que dans une ville où l’on a aussi une usine

On ne peut construire plus d’un entrepôt

On associe à chaque construction (d’une usine ou d’un entrepôt dans chacun des lieux envisagés)

Sa valeur estimée

Son coût de construction

Objectif : maximiser la valeur totale estimée, en ne dépassant pas une limite maximum sur les coûts

Exemple (suite)

10 -

Limite maximum

2 4

4. Entrepôt à SF

5 6

3. Entrepôt à LA

3 5

2. Usine à SF

6 9

1. Usine à LA

Coût de construction

(millions $) Valeur estimée

(millions $)

(2)

4. Programmation entiers 5

Modèle California Mfg

Variables :

Objectif : maximiser la valeur estimée totale

Contraintes fonctionnelles

Limite maximum sur les coûts de construction

On ne peut construire plus d’un entrepôt



=

) ( approuvée pas

est n' décision la si 0

) ( approuvée est

décision la si 1

non j

oui xj j

4 3 2

1

5 6 4

9

max Z = x + x + x + x

10 2 5 3

6 x

1

+ x

2

+ x

3

+ x

4

≤ 1

4

3

+ x ≤

x

4. Programmation entiers 6

Modèle California Mfg (suite)

Contraintes fonctionnelles (suite)

Entrepôt à LA seulement si usine à LA

Entrepôt à SF seulement si usine à SF

Contraintes 0-1 (intégralité)

Ou encore

1

3

x

x ≤

2

4

x

x ≤

{ } 0 , 1 , = 1 , 2 , 3 , 4

∈ j

x

j

4 , 3 , 2 , 1 entier, et

1

0 ≤ x

j

≤ x

j

j =

Modèle California Mfg : résumé

entier

4 3 2 1

4 3 2 1

4 3 2 1

4 2

3 1

4 3

4 3 2 1

4 3 2 1

, , ,

0 ,

, ,

1 ,

, ,

0 0 1 10 2

5 3 6

4 6 5 9 max

x x x x

x x x x

x x x x

x x

x x

x x

x x x x

x x x x Z

≤ +

− + ≤

− + ≤

≤ + +

+ + +

+

=

Modélisation avec Excel

On applique la même approche que pour la PL

Excel Solver permet deux types de contraintes particulières pour modéliser les variables entières :

bin : pour représenter les variables 0-1

ent : pour représenter les variables entières générales

Excel Solver résout les modèles de programmation en nombres entiers par l’algorithme de branch-and- bound (voir plus loin)

Voir l’exemple California Mfg

(3)

4. Programmation entiers 9

Utilisation des variables binaires

Le modèle illustre deux cas classiques d’utilisation des variables binaires

Alternatives mutuellement exclusives : on ne peut construire plus d’un entrepôt

Décisions contingentes: on ne peut construire un entrepôt que là ou on a construit une usine

Voyons d’autres exemples utilisant des variables 0-1

1

4

3

+ x ≤

x

1

3

x

x ≤

2

4

x

x ≤

4. Programmation entiers 10

Contraintes mutuellement exclusives

Prenons l’exemple de deux contraintes

L’une ou l’autre des deux contraintes doit être satisfaite, mais pas les deux simultanément!

Soit Mun très grand nombre; le système précédent est équivalent à

16 4 soit

18 2 3 soit

2 1

2 1

≤ +

≤ +

x x

x x

16 4

18 2 3 soit

16 4

18 2 3 soit

2 1

2 1

2 1

2 1

≤ +

+

≤ +

+

≤ +

≤ +

x x

M x x

M x x

x x

Contraintes mutuellement exclusives

En introduisant une variable binaire y, on obtient un système équivalent

La signification de cette variable est :

y = 1, si la première contrainte est satisfaite

y= 0, si la deuxième contrainte est satisfaite

C’est un autre exemple d’alternatives mutuellement exclusives

My x

x

y M x

x

+

≤ +

− +

≤ +

16 4

) 1 ( 18 2 3

2 1

2 1

Contraintes mutuellement exclusives

On aurait pu aussi introduire deux variables binaires

y1= 1, si la première contrainte est satisfaite

y2= 1, si la deuxième contrainte est satisfaite

On doit avoir y1+ y2= 1

Pour se ramener au modèle précédent, il suffit de poser y1= yet y2= 1-y

C’est un cas particulier de la situation suivante : K parmi Ncontraintes doivent être satisfaites

Dans ce cas plus général, on introduit Nvariables binaires

(4)

4. Programmation entiers 13

K contraintes parmi N

Soit les Ncontraintes :

On introduit alors Nvariables binaires : yj= 1, si la jèmecontrainte est satisfaite

Il reste à spécifier que seulement Kde ces contraintes peuvent être satisfaites :

N j

d x x x

f

j

(

1

,

2

,...,

n

) ≤

j

, = 1 , 2 ,...,

N j

y M d x x x

f

j

(

1

,

2

,...,

n

) ≤

j

+ ( 1 −

j

), = 1 , 2 ,...,

N=

=

j

j

K

y

1

4. Programmation entiers 14

Fonction ayant N valeurs possibles

Soit la contrainte :

On introduit alors N variables binaires : yj= 1, si la fonction vaut dj

La contrainte s’écrit alors ainsi :

2 1 2

1

, ,..., ) ou ou ... ou

( x x x

n

d d d

N

f =

=

=

=

=

N

j j

N

j j j n

y

y d x x x f

1

1 2

1

1 ) ,..., , (

Fonction ayant N valeurs possibles

Exemple Wyndor Glass

Supposons que le temps de production maximum à l’usine 3 n’est pas toujours 18h, mais pourrait être également 6h ou 12h

Cette contrainte s’écrit alors :

On introduit alors 3 variables binaires :

1 18 12 6 2 3

3 2 1

3 2 1 2 1

= + +

+ +

= +

y y y

y y y x x

2

1

2 6 ou 12 ou ... ou 18

3 x + x =

Objectif avec coûts fixes

Supposons que le coût associé à un produit jest composé de deux parties :

Un coût fixe initial kjencouru dès qu’une unité de jest produite

Un coût cjproportionnel au nombre d’unités de jproduites

Le coût total associé à la production de xjunités est:

{ 0 si si 0 0

)

( = + = >

j j j j j j

j

x

x x c x k

f

(5)

4. Programmation entiers 17

Objectif avec coûts fixes

Supposons que l’objectif consiste à minimiser la somme de nfonctions avec coûts fixes :

On introduit alors nvariables binaires :

L’objectif s’écrit alors ainsi :

=

=

n

j j

j

x

f Z

1

) ( min

{ 0 1 si si

=>

0 0

=

j j

j x

y x

=

+

=

n

j

j j j

j

x k y

c

Z

1

( )

min

4. Programmation entiers 18

Objectif avec coûts fixes

Mais comment représenter la relation entre xjet yj?

Les valeurs de yjet de xjdépendent l’une de l’autre : il s’agit d’un exemple de décisions contingentes

On doit donc avoir une contrainte qui précise que xj vaut 0 si yj= 0

Mais contrairement à la situation dans notre exemple California Mfg, les deux variables ne sont pas binaires: xjpeut être quelconque

Que faire ?...

Objectif avec coûts fixes

Soit Mj une borne supérieure sur la valeur de xj

On écrit la relation entre les deux variables ainsi :

Alors :

Si yj= 0, alors xj= 0

Si yj= 1, alors xj≤Mj

Si xj> 0, alorsyj= 1

Si xj= 0, alors toute solution optimale satisfait yj= 0lorsque kj> 0 (si kj= 0 , la variable yjest inutile)

j j

j

M y

x ≤

Objectif avec coûts fixes

Les contraintes originales du problème

j j

j

M y

x ≤

=

+

=

n

j

j j j

j

x k y

c Z

1

( )

min

{ } j n

y

j

∈ 0 , 1 , = 1 , 2 ,...,

(6)

4. Programmation entiers 21

Variables entières en variables 0-1

Soit xune variable entière générale bornée :

Soit Nl’entier tel que

La représentation binaire de xest

Intérêt de cette transformation : les méthodes de programmation 0-1 souvent plus efficaces que les méthodes de programmation en nombres entiers

Mais… augmentation du nombre de variables!

u x ≤

≤ 0

2

1

2

N

≤ u <

N+

=

=

N

j j

j

y

x

0

2

4. Programmation entiers 22

Exemple 1

Trois types de produits

Deux usines

Profit/unité de produit (1000 $)

Ventes potentielles par produit (unités/semaine)

Capacité de production par usine (h/semaine)

Pas plus de deux produits peuvent être fabriqués

Une seule des deux usines doit être exploitée

Exemple 1 (suite)

9 5

7 Ventes potentielles

(/semaine)

3 7

5 Profit/unité

(1000 $)

40 2

6 4

Usine 2

30 2

4 3

Usine 1

Capacité de production (h/semaine) Produit 3

tps production (h/unité) Produit 2

tps production (h/unité) Produit 1

tps production (h/unité)

Exemple 1 (suite)

Variables :

nombre d’unités fabriquées du produit j

Pour représenter la contrainte « Pas plus de deux produits », on doit introduire des variables 0-1 :

Pour représenter la contrainte « Une seule des deux usines », on doit ajouter une variable 0-1 :

= x

j

{ 0 1 si si = > 0 0

=

j j

j

x

y x

{

01 sil'usinesinon1est choisie

4=

y

(7)

4. Programmation entiers 25

Exemple 1 (suite)

Objectif :

Ventes potentielles :

Pas plus de deux produits :

Relation entre variables continues et variables 0-1 :

3 2

1

7 3

5

max Z = x + x + x 9 , 5 ,

7

2 3

1

≤ x ≤ x ≤

x

2

3 2

1

+ y + y ≤

y

3 3 2 2 1

1

7 y , x 5 y , x 9 y

x ≤ ≤ ≤

4. Programmation entiers 26

Exemple 1 (suite)

Une seule des deux usines :

En utilisant la variable 0-1 (et Mtrès grand) :

40

2 6 4 soit

30 2 4 3 soit

3 2 1

3 2 1

≤ + +

≤ + +

x x x

x x x

4 3

2 1

4 3

2 1

40 2 6 4

) 1 ( 30 2 4 3

My x

x x

y M x x x

+

≤ + +

− +

≤ + +

Exemple 1 : résumé

4 3

2 1

4 3

2 1

40 2 6 4

) 1 ( 30 2 4 3

My x

x x

y M x x x

+

≤ + +

− +

≤ + +

3 2

1

7 3

5

max Z = x + x + x

3 3 2 2 1

1 7y,x 5y,x 9y

x≤ ≤ ≤

2

3 2

1+y +y ≤

y

0 , ,

2 3

1

x x ≥

x

{ } 0 , 1 ,

=

1 , 2 , 3 , 4

∈ j

yj

Exemple 2

Trois types de produits

Cinq annonces publicitaires

Maximum de trois annonces/produit

4 3

3 3

2 2

3 2

-1 0

1 1

0 0

0 0

Produit 3 profit, millions $ Produit 2

profit, millions $ Produit 1

profit, millions $ Nombre

d’annonces

(8)

4. Programmation entiers 29

Exemple 2 : premier modèle ?

Variables :

nombre d’annonces du produit i

L’hypothèse de proportionnalité est violée!

On ne peut représenter l’objectif sous forme linéaire uniquement avec ces variables!

Nous verrons deux modèles possibles pour contourner cette difficulté

= x

i

4. Programmation entiers 30

Exemple 2 : premier modèle

Variables :

Objectif :

Exactement cinq annonces

Définition des variables 0-1



 =

= 0 sinon

si

1 x j

yij i

33 32 31 23 22 13 12

11 3 3 2 3 2 4

maxZ=y + y + y + y + y −y + y + y

∑ ∑=3 =

=

1 3

1

5

i j

jy

ij

3 , 2 , 1 , 1

3

1

=

∑ ≤

= y i

j ij

Exemple 2 : deuxième modèle

Variables :

Cette définition implique :

Ou encore :



 ≥

= 0 sinon

si

1 x j

yij i

1 , 1 , 1 3

0 , 1 , 1 2

0 , 0 , 1 1

0 , 0 , 0 0

3 2 1

3 2 1

3 2 1

3 2 1

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

i i i i

i i i i

i i i i

i i i i

y y y x

y y y x

y y y x

y y y x

2 , 1 , 3 , 2 , 1 ,

) 1

( + ≤ y i= j=

yij ij

Exemple 2 : deuxième modèle (suite)

Supposons que x1= 3(3 annonces pour le produit 1)

Le profit associé à cette valeur doit être 3

Mais x1= 3veut dire que chaque variable binaire associée au produit 1 vaut 1

Comment comptabiliser correctement la contribution de ces trois variables au profit ?

Solution : le profit associé à la variable yijest cij+1-cij

Dans notre exemple, le profit associé à

y11est 1-0 = 1

y12est 3-1 = 2

y13est 3-3 = 0

(9)

4. Programmation entiers 33

Exemple 2 : deuxième modèle (suite)

Objectif :

Exactement cinq annonces

Définition des variables 0-1

33 32 31 23 22 12

11 2 2 3 2

maxZ=y + y + y +y −y + y + y

∑ ∑=3 =

=

1 3

1

5

i j

y

ij

2 , 1 , 3 , 2 , 1 ,

) 1

( +

≤ y i = j =

y

ij ij

4. Programmation entiers 34

Exemple 3

Une compagnie aérienne veut affecter trois équipages à des séquences de vols

Il y a un coût associé à chaque séquence de vols

La compagnie cherche à minimiser les coûts d’affectation des équipages aux séquences de façon à assurer le service sur chacun de ses vols

Exemple : 11 vols et 12 séquences de vols

Exemple 3 (suite)

9 8 9 9 8 7 5 7 6 4 3 2 Coût

1 1 1 1 1

11

1 1

1 1

10

1 1

1 9

1 1

1 1 8

1 1 1 1 1 7

1 1

1 6

1 1 1

1 5

1 1 1 1 1

4

1 1

1 1

3

1 1

1 1

2

1 1

1 1

1

12 11 10 9 8 7 6 5 4 3 2 1 Vol

Exemple 3 (suite)

Variables :

Objectif :

Affecter trois équipages

 

= 

sinon 0

affectée est vols de séquence la

si

1 j

x

j

12 11 10 9 8 7

6 5 4 3 2 1

9 8 9 9 8 7

5 7 6 4 3 2 max

x x x x x x

x x x x x x Z

+ + + + +

+ + + + +

=

12=

=

1

3

j

x

j

(10)

4. Programmation entiers 37

Exemple 3 (suite)

Le service doit être assuré sur chacun des vols :

… Et ainsi de suite (voir détails dans H&L, sec. 11.4)

1 1 1 1

12 10 9 7 4

12 9 6 3

11 8 5 2

10 7 4 1

≥ + + + +

≥ + + +

≥ + + +

≥ + + +

x x x x x

x x x x

x x x x

x x x x

4. Programmation entiers 38

Exemple 3 (suite)

C’est un exemple de problème de recouvrement d’ensemble

I: un ensemble d’objets (ici, les vols)

J: une collection de sous-ensembles de I(ici, les séquences de vols)

: les sous-ensembles dans Jqui contiennent i

Variables

Contraintes :

Partitionnement d’ensemble : I

i Ji, ∈



=

sinon 0

choisi est ensemble - sous le si

1 j

xj

I i x

Ji j

j

≥ ∈

1 ,

I i x

Ji j

j

= ∈

1 ,

Références

Documents relatifs

Les probl` emes d’ordonnancement pr´ eemptif sup- posent que toutes les ressources sont lib´ er´ ees pendant les p´ eriodes de pr´ eemption et qu’elles peuvent ˆ etre utilis´

Si aucun des problèmes (a) ou (b) n'a été résolu, les ajouter à la liste, dans un ordre à choisir, et aller en 2 pour' une nouvelle étape; dans le cas où les problèmes (a) et (b)

Ainsi une difficulté majeure de ces deux approches réside dans le pro- blème suivant : « Obtenir en peu de calculs une bonne évaluation par défaut (cas de la minimisation) de

Programmation en nombres entiers = Programmation linéaire avec certaines variables contraintes à prendre des valeurs entières.. Programmation non linéaire en nombres entiers =

Parmi les sous-problèmes non encore élagués, choisir celui qui a été créé le plus récemment (s’il y a égalité, choisir celui de plus grande borne supérieure).. Brancher sur

Notre contribution pricipale réside plutôt dans la proposition d’une méthode de recherche d’isomorphisme de sous-graphe apte à traiter des graphes étiquetés numériquement et

GUIGNARD, Contraintes additionnelles en variables bivalentes, Publications du Laboratoire de Calcul de la Faculté des Sciences de Lille, rapport n° 20, mars 1970.

En la réintroduisant nous tomberons sur un problème du même type que (1.5.1) mais dans un groupe (entiers modulo D) d'ordre