• 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

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

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´

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

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