Programmation linéaire en nombres entiers, plan du...

Post on 11-Sep-2018

240 views 0 download

Transcript of Programmation linéaire en nombres entiers, plan du...

Programmation linéaire en nombres

entiers, plan du cours

❐ Introduction

❐ Définition d’un programme linéaire

❐ Du PL au PL en nombres entiers ou mixtes

❐ Linéarisations classiques en PL

❐ Utilisation des données

❐ Utilisation de variables binaires

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.1/51

Objectifs du cours

Apprendre à écrire un programme linéaire

❐ Formaliser un problème d’optimisation

❐ Permettre l’utilisation de logiciels génériques

❐ Éviter la mise en œuvre d’algorithmes spécifiques

Connaître les principales techniques de linéarisation

❐ Élargir la gamme des problèmes résolvables

❐ Comprendre les limites de la modélisation linéaireen nombres entiers

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.2/51

Références bibliographiques

Notions de base et exercices❐ Exercices et problèmes résolus de recherche opérationnelle, Tome 3 : Pro-

grammation linéaire et extensions - Problèmes classiques, Collectif d’auteursdu CNAM et de l’universite Paris 6, Dunod

❐ Programmation linéaire, C. Gueret, C. Prins, M. Sevaux, Eyrolles

❐ Programmation linéaire et applications éléments de cours et exercices corri-gés, K. Mellouli, P. Borne, Sciences et technologies

Pour aller plus loin❐ Introduction to Operations Research, F.S. Hillier, G.J. Lieberman, McGraw-Hill

❐ Optimisation discrète, A. Billionnet, Dunod

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.3/51

Définition d’un programme linéaire

❐ Introduction

❐ Définition d’un programme linéaire

❐ Du PL au PL en nombres entiers ou mixtes

❐ Linéarisations classiques en PL

❐ Utilisation des données

❐ Utilisation de variables binaires

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.4/51

Définition d’un programme linéaire

Technique de modélisation❐ Uniquement composé d’équations ou d’inéquations linéaires :

n variables xj ⇒ a0 + a1x1 + a2x2 + . . .+ anxn{≤,=,≥}0❐ Utilisé par des outils d’optimisation

Structure de base❐ Ensemble de variables réelles positives❐ Ensemble d’égalités/inégalités entre des sous-ensembles de

ces variables définissant un domaine admissible dans IRn

⇒ contraintes

❐ 1 ou plusieurs objectifs classant les solutions admissibles

Maximiser c.x Maximiser∑

j∈1,...,n cjxj

A.x ≤ b∑

j∈1,...,n aijxj ≤ bi, ∀i ∈ 1, . . . ,m

x ≥ 0 xj ≥ 0, ∀j ∈ 1, . . . , n

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.5/51

Exemples d’équations non linéaires

Fonctions mathématiques❐ Produit de variables : x1 ∗ x2❐ Puissances d’une variable : x2,

√x, 1

x, . . .

❐ Exponentiation d’une variable : ex, 2x, . . .❐ Fonctions trigonométriques : sinx, tanx, . . .❐ Comparaison de variables : max(x1, x2), . . .

❐ . . .

Expressions logiques❐ a OU b

❐ a ⇒ b

❐ . . .

. . .

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.6/51

Propriétés et algorithmes

Des propriétés mathématiques intéressantes

❐ Convexité du domaine admissible

❐ Dualité

Des algorithmes efficaces

❐ Simplexe

❐ Méthodes de point intérieur

⇒{

Solution optimaleAnalyse de sensibilité

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.7/51

Exemple d’un PL et son domaine

admissible

Maximiser x1 + 4x2

s.c. 3x1 + 16x2 ≤ 80

−14x1 + 2x2 ≥ −105

3

2x1 + x2 ≥ 3

x1, x2 ≥ 0

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

6

7

8

9

10

x1

x2

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.8/51

Du PL au PL en nombres entiers ou

mixtes

❐ Introduction

❐ Définition d’un programme linéaire

❐ Du PL au PL en nombres entiers ou mixtes

❐ Linéarisations classiques en PL

❐ Utilisation des données

❐ Utilisation de variables binaires

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.9/51

Définition d’un PLNE

❐ Structure de base identique au PL

❐ Changement du type des variables

Maximiser c.x Maximiser∑

j∈1,...,n

cjxj

A.x ≤ b∑

j∈1,...,n

aijxj ≤ bi, ∀i ∈ 1, . . . ,m

x ∈ IN xj ∈ IN, ∀j ∈ 1, . . . , n

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.10/51

Pourquoi des variables entières?

Représenter des quantités entières

❐ Produits manufacturés

❐ Produits financiers

❐ Affectation de personnes

❐ . . .

Représenter des choix parmi plusieurs alternatives

Linéariser certains types de contraintes

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.11/51

Types d’application

❐ Production, gestion industrielle

❐ Chargements, découpes

❐ Logistique, transport

❐ Réseaux, télécommunications

❐ Énergie, environnement

❐ Économie, finance

❐ Emploi du temps, gestion de personnel

❐ . . .Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.12/51

Difficultés de résolution

Nombre fini de solution MAIS

❐ Perte de la convexité

❐ Nombre de solution exponentiel

❐ Plus de problème dual

Arrondir la solution d’une relaxation continue

❐ Optimum non garanti, parfois éloigné

❐ Admissibilité non garantie

❐ Une exception : matrice totalement unimodulaire

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.13/51

Exemple d’un PLNE et son domaine

admissible

Maximiser x1 + 4x2

s.c. 3x1 + 16x2 ≤ 80

−14x1 + 2x2 ≥ −105

3

2x1 + x2 ≥ 3

x1, x2 ∈ IN

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

6

7

8

9

10

x1

x2

b b b b b b

b b b b b b

b b b b b b b

b b b b b b b b

b b b b b b

b

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.14/51

Comment résoudre un PLNE?

Des algorithmes moins efficaces mais utilisables❐ Branch & Bound, Programmation dynamique, . . .

Des logiciels disponibles❐ Cplex / OPL Studio

❐ GLPK, libre (http ://www.gnu.org/software/glpk/glpk.html)

❐ MPL, version étudiant (http ://www.maximalsoftware.com)

❐ Xpress-MP, version étudiant (http ://www.artelys.fr)

❐ . . .

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.15/51

Linéarisations classiques en PL

❐ Introduction

❐ Définition d’un programme linéaire

❐ Du PL au PL en nombres entiers ou mixtes

❐ Linéarisations classiques en PL

❐ Utilisation des données

❐ Utilisation de variables binaires

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.16/51

Fonction minimum/maximum

Modéliser le maximum de k variables

❐ Utilisation d’une variable intermédiaire

❐ Ajout de k inégalités

❐ Utilisation de la fonction objectif

Minimiser max(x1, . . . , xk) ⇒ Minimiser y

s.c. (. . .) s.c. (. . .)

xj ≤ y, ∀j ∈ 1, . . . , k

y ≥ 0

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.17/51

Équilibrer le temps de travail

(données)

Tmpt : temps nécessaire pour la réalisation de la tâche t

Occt : nombre d’occurences de la tâche t

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.18/51

Équilibrer le temps de travail

(variables)

Variables de décisionxtp ∈ IN , nombre de tâches de type t effectuées par la

personne p

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.19/51

Équilibrer le temps de travail

(modèle)

Min y

s.c.

3∑

p=1

xtp = Occt, ∀t ∈ 1, . . . , 8

8∑

t=1

xtp ∗ Tmpt ≤ y, ∀p ∈ 1, . . . , 3

xtp ∈ IN, ∀p ∈ 1, . . . , 3, ∀t ∈ 1, . . . , 8

y ≥ 0

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.20/51

Rapport de deux variables

Modéliser le rapport entre 2 variables xa et xb❐ Multiplication de l’inégalité par le dénominateur

xaxb

≤ c ⇒ xa ≤ c.xb

Problèmes de respect d’une proportion

x1∑

j∈1,...,n

xj≤ c ⇒ (1− c)x1 − c

j∈2,...,n

xj ≤ 0

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.21/51

Calcul d’un écart

Écart entre 2 variables

❐ Utilisation de 2 variables intermédiaires

❐ Ajout d’une inégalité

❐ Utilisation de la fonction objectif

Min |xa − xb| ⇒ Min y+ + y−

s.c. (. . .) s.c. (. . .)

xa − xb = y+ − y−

y+, y− ≥ 0

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.22/51

Équilibrer la charge entre 2

personnes

Min y+ + y−

s.c.

3∑

p=1

xtp = Occt, ∀t ∈ 1, . . . , 8

8∑

t=1

xt1 ∗ Tmpt = 16

8∑

t=1

xt2 ∗ Tmpt −8

t=1

xt3 ∗ Tmpt = y+ − y−

xtp ∈ IN, ∀p ∈ 1, . . . , 3, ∀t ∈ 1, . . . , 8

y+, y− ≥ 0

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.23/51

Fonctions linéaires par morceau

❐ Coût heures normales/heures supplémentaires

❐ Tarif réduit pour de grandes quantités

❐ Utilisation de deux variables au lieu d’une

Min y Min a.x1 + b+ c.x2

s.c.(. . .) s.c.(. . .)

y =

a.x+ b si x ≤ β

c.x+ d si x ≥ β⇒ x1 ≤ β

avec

a.β + b = c.β + d

a < c

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.24/51

Production d’électricité (données)

Demap puissance demandée pour la période p

PMint puissance minimale pour une centrale de type t

PMaxt puissance maximale pour une centrale de type t

NDist nombre de centrales de type t disponibles

CDemt coût de démarrage d’une centrale de type t

CMint coût de base horaire pour une centrale de type t

CSupt coût horaire supplémentaire pour une centrale de type t

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.25/51

Production d’électricité (variables)

Variables de décisionNDemtp ∈ IN , nombre de centrales de type t démarrés en

début de période p

NFontp ∈ {0, 1, . . . , NDist}, nombre de centrales de type t

qui fonctionnent en période p

PSuptp ≥ 0, nombre de mégawatts fournis en plus du

minimum par les centrales de type t en période p

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.26/51

Production d’électricité (modèle)

Min

4∑

p=1

3∑

t=1

(CDemt.NDemtp + 6.CMint.NFontp + 6.CSupt.PSuptp)

s.c. PSuptp ≤ (PMaxt − PMint).NFontp, ∀t ∈ 1, . . . , 3, ∀p ∈ 1, . . . , 43

t=1

PMint.NFontp +

3∑

t=1

PSuptp ≥ Demap, ∀p ∈ 1, . . . , 4

3∑

t=1

PMaxt.NFontp ≥ 1, 15.Demap, ∀p ∈ 1, . . . , 4

NDemtp ≥ NFontp −NFont,p−1, ∀t ∈ 1, . . . , 3, ∀p ∈ 2, . . . , 4

NDemt1 ≥ NFont1 −NFont,4, ∀t ∈ 1, . . . , 3

NDemtp ∈ IN, ∀t ∈ 1, . . . , 3, ∀p ∈ 1, . . . , 4

NFontp ∈ {0, 1, . . . , NDist}, ∀t ∈ 1, . . . , 3, ∀p ∈ 1, . . . , 4

PSuptp ≥ 0, ∀t ∈ 1, . . . , 3, ∀p ∈ 1, . . . , 4

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.27/51

Utilisation des données

❐ Introduction

❐ Définition d’un programme linéaire

❐ Du PL au PL en nombres entiers ou mixtes

❐ Linéarisations classiques en PL

❐ Utilisation des données

❐ Utilisation de variables binaires

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.28/51

Technique du Big M

Interdire implicitement une variable

❐ Éliminer des solutions techniquement irréalisables

❐ Utiliser une pondération M suffisamment grande

❐ Diminuer le nombre de contraintes

❐ Éviter des contraintes cassant la structure du problème

Min (. . .) Min (. . .) +M.x

s.c. (. . .) ⇒ s.c. (. . .)

x = 0

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.29/51

Transport de marchandises (données)

cij le coût du transport d’un produit de l’usine i vers le client j

Demj le nombre de produits demandés par le client j

Dispi le nombre de produits disponibles à l’usine i

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.30/51

Transport de marchandises

(variables)

Variables de décisionxij ∈ IN , nombre de produits acheminés de l’usine i vers le

client j

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.31/51

Transport de marchandises (modèle)

Min

3∑

i=1

5∑

j=1

cijxij

s.c.

3∑

i=1

xij = Demj , ∀j ∈ 1, . . . , 5

5∑

j=1

xij = Dispi, ∀i ∈ 1, . . . , 3

xij ∈ IN, ∀i ∈ 1, . . . , 3, ∀j ∈ 1, . . . , 5

(c3,2 = c1,4 = M)

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.32/51

Pré-traitement des données

Influence du format de données sur le modèle

❐ Plusieurs modèles possibles pour un problème

❐ Permettre une diminution de la taille du modèle

❐ Rendre sa résolution plus facile

⇒ Ne pas considérer la représentation des donnéescomme unique et figée

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.33/51

Découpe de barres d’acier (données)

Dj la demande en pieds de type j

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.34/51

Découpe de barres d’acier (variables)

Plans de découpe possibles

Numéro Type debarre

Pieds de40 cm

Pieds de60 cm

Pieds de70 cm

Chute

1 1,50m 0 0 2 10...

6 1,50m 3 0 0 30

7 2m 0 1 2 0...

15 2m 5 0 0 20

Variables de décisionxi = le nombre de barres découpées suivant le plan de découpe i

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.35/51

Découpe de barres d’acier (modèle)

Min

6∑

i=1

L1xi +

15∑

i=7

L2xi

s.c.

15∑

i=1

aijxi ≥ Dj , ∀j ∈ 1, . . . , 3

xi ∈ IN, ∀i ∈ 1, . . . , 15

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.36/51

Utilisation de variables binaires

❐ Introduction

❐ Définition d’un programme linéaire

❐ Du PL au PL en nombres entiers ou mixtes

❐ Linéarisations classiques en PL

❐ Utilisation des données

❐ Utilisation de variables binaires

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.37/51

Fonctions logiques entre variables

binaires

OU inclusif

(xa ou xb) ⇒ xa + xb ≥ 1

OU exclusif

(xa ou bien xb) ⇒ xa + xb = 1

Implication

(xa ⇒ xb) ⇒ xa ≤ xb

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.38/51

Localisation d’émetteurs GSM

(données)

ci coût d’implantation d’un émetteur sur le site i

pj la population de la commune j

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.39/51

Localisation d’émetteurs GSM

(variables)

Données à formaterCvij une constante binaire valant 1 si un émetteur placé en i

couvre la commune j

Variables de décision

yj =

1 si la commune j est couverte par une antenne

0 sinon

xi =

1 on implante une antenne sur le site i

0 sinon

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.40/51

Localisation d’émetteurs GSM

(modèle)

Max

15∑

j=1

pjyj

s.c.

7∑

i=1

Cvijxi ≥ yj , ∀j ∈ 1, . . . , 15

7∑

i=1

cixi ≤ 10

yj ∈ {0, 1}, ∀j ∈ 1, . . . , 15

xi ∈ {0, 1}, ∀i ∈ 1, . . . , 7

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.41/51

Fonctions discontinues

Variable nulle ou bien bornée inférieurement

❐ Produit qui n’est pas fabriqué, ou fabriqué en quantité au

moins égale à Q pour des raisons de rentabilité

❐ Coûts fixes

❐ Utiliser une variable indicateur y ∈ {0, 1}❐ Ajouter 2 contraintes

❐ Utiliser une constante M suffisamment grande

x ≥ Q.y

x /∈]0, Q[ ⇒ x ≤ M.y

y ∈ {0, 1}

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.42/51

Disjonction

Variable inférieure à a OU supérieure à b

❐ Dates impossibles

❐ tâches ne pouvant pas s’exécuter en parallèle

❐ Utiliser une variable indicateur y ∈ {0, 1}❐ Ajouter 2 contraintes

❐ Utiliser une constante M suffisamment grande

x ≤ a+M.y

x /∈]a, b[ ⇒ x ≥ b−M.(1− y)

y ∈ {0, 1}

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.43/51

Respect d’un sous-ensemble de

contraintes

Solution ne respectant pas au plus k contraintes❐ Impossibilité de satisfaire toutes les contraintes

❐ Contraintes représentant des préférences

❐ Utiliser des variables indicateurs

❐ Ajouter une contrainte

❐ Utiliser une constante M suffisamment grande

n∑

j=1

aij .xj ≤ bi +M.yi, ∀i ∈ 1, . . . ,m

m∑

i∈1

yi ≤ k

yi ∈ {0, 1}, ∀i ∈ 1, . . . ,mModélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.44/51

Passer d’une variable entière à des

variables binaires

Transformer une variable entière x en variables binaires

❐ x ne peut prendre que k valeurs {v1, v2, . . . , vk}❐ Utiliser k variables binaires

❐ Ajouter 1 contrainte (généralisation du OU exclusif)

Min (. . .) + x Min (. . .) +∑

j∈1,...,k

vjyj

s.c. (. . .) ⇒ s.c. (. . .)∑

j∈1,...,k

yj = 1

x ∈ {v1, . . . , vk} yj ∈ {0, 1}, ∀j ∈ 1, . . . , k

❐ Représentation binaire possible avec moins de variables

(⌈log2 k⌉)Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.45/51

Sauvegarde de fichiers (données)

ai la taille de l’archive i en Mo

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.46/51

Sauvegarde de fichiers (variables)

Variables de décision

xij =

1 l’archive i est enregistré sur le DVD j

0 sinon

yj =

1 le DVD j contient des archives

0 sinon

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.47/51

Sauvegarde de fichiers (modèle)

Min

10∑

j=1

yj

s.c.

10∑

j=1

xij = 1, ∀i ∈ 1, . . . , 16

16∑

i=1

ai.xij ≤ 4 300.yj , ∀j ∈ 1, . . . , 10

xij ∈ {0, 1}, ∀i ∈ 1, . . . , 16, ∀j ∈ 1, . . . , 10

yj ∈ {0, 1}, ∀j ∈ 1, . . . , 10

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.48/51

Sauvegarde de fichiers (2ème modèle)

Min NbU

s.c.

10∑

j=1

j.xij ≤ NbU, ∀i ∈ 1, . . . , 16

10∑

j=1

xij = 1, ∀i ∈ 1, . . . , 16

16∑

i=1

ai.xij ≤ 4 300, ∀j ∈ 1, . . . , 10

xij ∈ {0, 1}, ∀i ∈ 1, . . . , 16, ∀j ∈ 1, . . . , 10

NbU ≥ 0

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.49/51

Fonction non linéaire d’une variable

Utiliser la représentation en k variables binaires

❐ x ne peut prendre que k valeurs {v1, . . . , vk}

❐ f(x) ne peut prendre que k valeurs {f(v1), . . . , f(vk)}

❐ Fonctionne pour toutes les fonctions d’une seule variable

(x3,√x, ex, sinx, . . .)

f(x) ⇒k

i=1

f(vi) ∗ xi

x ∈ {v1, . . . , vk} xi ∈ {0, 1}, ∀i ∈ {1, . . . , k}

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.50/51

Produit de variables

Calculer le produit de deux variables

❐ x ne peut prendre que k valeurs {v1, . . . , vk}

❐ y ne peut prendre que g valeurs {w1, . . . , wg}

❐ Utilisation de k + g variables binaires

❐ Utilisation d’une constante M suffisamment grande

p ≥ vi ∗g

j=1

wj ∗ yj −M(1− xi), ∀i ∈ {1, . . . , k}

p = x ∗ y ⇒ p ≤ vi ∗g

j=1

wj ∗ yj +M(1− xi), ∀i ∈ {1, . . . , k}

xi ∈ {0, 1}, ∀i ∈ {1, . . . , k}yj ∈ {0, 1}, ∀j ∈ {1, . . . , g}

Modélisation mathématique des problèmes de décision: programmation linéaire ennombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.51/51