• Aucun résultat trouvé

4. Programmation en nombres entiers

N/A
N/A
Protected

Academic year: 2022

Partager "4. Programmation en nombres entiers"

Copied!
38
0
0

Texte intégral

(1)

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

4. Programmation en nombres entiers

a. Modélisation

(2)

Terminologie de base

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

Programmation

non linéaire

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

Programmation

pure

en 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)

(3)

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

(4)

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 $)

(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 x

j

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

(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 =

(7)

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

≤ +

− + ≤

+ ≤

+ +

+

+ +

+

=

(8)

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

(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 ≤

(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

M

un 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

(11)

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

(12)

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

y

1 +

y

2 = 1

Pour se ramener au modèle précédent, il suffit de poser

y

1

= y

et

y

2

= 1-y

C’est un cas particulier de la situation suivante :

K

parmi

N

contraintes doivent être satisfaites

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

N

variables binaires

(13)

K contraintes parmi N

Soit les

N

contraintes :

On introduit alors

N

variables binaires :

y

j

= 1

, si la jème contrainte est satisfaite

Il reste à spécifier que seulement

K

de 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

(14)

Fonction ayant N valeurs possibles

Soit la contrainte :

On introduit alors N variables binaires :

y

j

= 1

, si la fonction vaut

d

j

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 ) ,...,

,

(

(15)

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 :

18 12

6 2

3

1 2 1 2 3

= +

+

+ +

=

+ x y y y

x

2

1

2 6 ou 12 ou ... ou 18

3 x + x =

(16)

Objectif avec coûts fixes

Supposons que le coût associé à un produit

j

est composé de deux parties :

Un coût fixe initial kj encouru dès qu’une unité de j est produite

Un coût cj proportionnel au nombre d’unités de j produites

Le coût total associé à la production de

x

j unités est:

{ 0 si si 0 0

)

( = + = >

j j j

j j

j

j

x

x x

c x k

f

(17)

Objectif avec coûts fixes

Supposons que l’objectif consiste à minimiser la somme de

n

fonctions avec coûts fixes :

On introduit alors

n

variables 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

(18)

Objectif avec coûts fixes

Mais comment représenter la relation entre

x

j et

y

j ?

Les valeurs de

y

j et de

x

j dé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

x

j vaut 0 si

y

j

= 0

Mais contrairement à la situation dans notre exemple

California Mfg

, les deux variables ne sont pas

binaires:

x

j peut être quelconque

Que faire ?...

(19)

Objectif avec coûts fixes

Soit

M

j une borne supérieure sur la valeur de

x

j

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, alors yj = 1

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

j j

j

M y

x ≤

(20)

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

(21)

Variables entières en variables 0-1

Soit

x

une variable entière générale bornée :

Soit

N

l’entier tel que

La représentation binaire de

x

est

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

u x ≤

≤ 0

2

1

2

N

≤ u <

N+

=

=

N

j

j

j

y

x

0

2

(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

(23)

Exemple 1 (suite)

9 5

7 Ventes

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é)

(24)

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

{ 1 0 si si = > 0 0

=

j j

j

x

y x

{

10 si l' usinesinon1 est choisie

4 =

y

(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 ≤ ≤ ≤

(26)

Exemple 1 (suite)

Une seule des deux usines :

En utilisant la variable 0-1 (et

M

trè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

+

≤ +

+

− +

≤ +

+

(27)

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

7 y , x 5 y , x 9 y

x ≤ ≤ ≤

2

3 2

1

+ y + y ≤

y

0 ,

,

2 3

1

x x ≥

x

(28)

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

(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

(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

max Z = y + y + y + y + y − y + y + y

∑ ∑

=3 =

=

1 3

1

5

i j

jy

ij

3 , 2 , 1

,

3

1

1

=

=

y i

j

ij

(31)

Exemple 2 : deuxième modèle

Variables :

Cette définition implique :



 ≥

= 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

=

=

(32)

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

Supposons que

x

1

= 3

(3 annonces pour le produit 1)

Le profit associé à cette valeur doit être 3

Mais

x

1

= 3

veut 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

y

ij est

c

ij+1

-c

ij

Dans notre exemple, le profit associé à

y11 est 1-0 = 1

y12 est 3-1 = 2

y est 3-3 = 0

(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

max Z = 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

i j ij

(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

(35)

Exemple 3 (suite)

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

(36)

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

(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

(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 J qui 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

Dans le hapitre 4, nous avons présenté deux protéines (1ukyA et 1dvrA) dont les. strutures sont similaires à 77% (ave l'outil T

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

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

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)

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

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´