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

51
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 en nombres entiers, toolbox ROAD, 13-22 septembre 2017 – p.1/51

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

Page 1: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 2: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 3: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 4: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 5: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 6: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 7: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 8: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 9: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 10: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 11: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 12: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 13: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 14: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 15: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 16: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 17: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 18: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

É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

Page 19: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

É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

Page 20: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

É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

Page 21: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 22: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 23: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

É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

Page 24: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 25: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 26: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 27: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 28: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 29: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 30: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 31: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 32: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 33: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 34: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 35: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 36: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 37: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 38: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 39: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 40: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 41: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 42: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 43: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 44: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 45: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 46: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 47: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 48: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 49: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 50: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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

Page 51: Programmation linéaire en nombres entiers, plan du …delorme/Cycle_ICM/Toolbox_ROAD/Supports_Cours/UP… · Programmation linéaire en nombres entiers, plan du cours Introduction

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