Académique Documents
Professionnel Documents
Culture Documents
DE RECHERCHE OPÉRATIONNELLE
4
Supports pédagogiques
Ouvrages de référence :
TAMAYO Simon, CARDIN Ronan, ECHEVERRI Sebastian, PINO Daniel
Recherche opérationnelle appliquée à la gestion industrielle, 1ère édition 2016,
Industrial Optimization Press
Documents informatiques :
Copie des cours pdf
Polycopié d'études de cas pdf
Rona
n
ronan CARDIN
.cardi
n@en
+33 (0
151 b
)14 4 24 6 s am .eu
o 2 44
Escali ulevard de
e r G , er l’
1 éta hôpital, Pa
ge, en ris
sortan , 75013
t 1 ème
porte
àg auc he
Séance1 : Introduction
Modélisation et optimisation
Arts et Métiers ParisTech
7
Introduction :
notions basiques
de modélisation
et d’optimisation
8
Historique
Opérations
Combinatoire et Mesure du
Blaise Pascal espérance Daniel Bernoullirisque et notion Patrick Blackett militaires et
organisation des
(1623-1662) mathématique (1700-1782) d’utilité (1897-1974) convois
Calcul
Gestion de Algorithme du
infinitésimal et
stock, solution simplexe
équations non
optimal (1947)
linéaires
Traitement du Élaboration
modèle du modèle
RO
Informatique Économie
Algorithmes Économie d'entreprise
Structures de données Analyse économique
3. Optimisation
Identification de la
meilleure configuration
possible d'un système
Obtenir une solution optimale
ou proche de l'optimum
Où implanter
judicieusement 5 centres
de distribution ?
Nous
Vs
Concurrent
Formulation
Objectifs, contraintes,
données disponibles ?
Modèle
Algorithme
Création ou adaptation
Logiciel ou programmation
Solution(s) Choix du type de
modèle et des
hypothèses
Validation simplificatrices ?
Vérification des
Mise en oeuvre
contraintes ?
Variables Fonction
Contraintes
de décision objectif
C1 5 , 10 200
C2 10 , 5 150
C3 0 , 12 200
C4 12 , 0 300
C1 5 , 10 200
C2 10 , 5 150
C3 0 , 12 200
C4 12 , 0 300 (X1,X2)
A2(5,0)
50m
x 100-x
100m
1 1
Min Z(x) = x + 50 2 + (100 − x)2
5 2.78
avec x ≥ 0 , x ≤ 100
Convexes : Si l'objectif et toutes les contraintes Non-convexes : S'il y a des fonctions non-
sont convexes, on peut déterminer s'il existe convexes, le problème est beaucoup plus
une solution réalisable, de trouver la solution difficile et on ne peut pas être certain de toutes
globalement optimale, et de résoudre des ces choses.
problèmes de grande taille.
Définition : Un ensemble E non vide est dit convexe si et seulement si pour tout élément x et y
de E et pour tout λ ∈ [0,1], λ x + (1- λ ) y ∈ E.
Production : Logistique
• Allocation de ressources • Localisation des dépôts
• Ordonnancement • Approvisionnement des clients
• Planification MT & LT • Choix des meilleurs itinéraires
• Dimensionnement • Problème de tournées
• Affectation Économie
Gestion des stocks • Politique de vente
• Choix des quantités de commande • Définition des investissements
• Choix des niveaux de SS
64 250 360
60 250 180
35 250 180
Quel objectif ?
Satisfaire les commandes acceptées ?
Utiliser le moins de bobines-mères ?
Minimiser les chutes ?
Même objectif ?
Plan de coupe ?
Chutes ?
Largeur
64 cm 3 2 2 1 1 1 0 0 0 0
60 cm 0 1 0 2 1 0 3 2 1 0
35 cm 0 0 2 0 2 4 1 2 4 6
Chutes 23 27 17 31 21 11 0 25 15 5
Séance 2
Programmation linéaire
Arts et Métiers ParisTech
40
Programmation
linéaire
41
Optimisation linéaire
x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0 , … , xn ≥ 0
b1 ≥ 0 , b2 ≥ 0 , b3 ≥ 0 , … , bm ≥ 0 i = ligne
j = colonne
n variables et m équations où n > m
Min ou Max
Soumise à
CT
X n m A X = B X ≥0
47
Méthode de résolution
Produits fabriqués :
• Tuyaux
• Robinets
Profits :
• 1 000€ / tonne de Tuyaux
• 1 200€ / tonne de Robinets
Quantités (limites) à produire :
• Nombre de tonnes de Tuyaux : au plus 34 T
• Nombre de tonnes de Robinets : au plus 14 T
Ressources :
• Capacité hebdomadaire de l'ébarbage = 200h
• Gammes ébarbage : 10h / T Tuyaux, 5h / T Robinets
• Capacité hebdomadaire de la peinture = 60h
• Gammes peinture : 2h / T Tuyaux, 3h / T Robinets
X2 X2 X2
X1 <= 34
X2 >= 0
X2 >= 0
X2 <= 14
X1 X1 >= 0 X1 X1 >= 0 X1
10 X1 + 5 X2 <= 200
X2 X2
10 X1 + 5 X2 <= 200
X1<= 34
X1<= 34 X2 <= 14
X2 >=0
X2 >=0
X2 <= 14
2 X1 + 3 X2 <= 60
X1 >=0 X1 X1 >=0 X1
x1<= 34
Z* = 27000
Z = 25800
Z = 20000
Z = 16800
x2 <= 14
Z=0
x2 >=0
0 = 1000 x1 + 1200 x2
X2 = - (1 / 1.2) x1 x1 >=0 X1
27000 €
25800 €
20000 €
16800 €
0€
A = ai1 ai2 X = x1 B = bi
ai'1 ai'2 x2 bi'
AX=B X = A-1 B
A X = B X = A-1 B
À partir de:
ai1 x1 + ai2 x2 = bi X1 = ( 60 – 3X2 ) / 2
ai'1 x1 + ai'2 x2 = bi'
a) Isoler une variable dans une des contraintes 10 [ ( 60 – 3X2 ) / 2 ] + 5 X2 = 200
x1 = ( bi - ai2 x2 ) / ai1 300 – 15X2 + 5 X2 = 200
58
Le meilleur outil à nos jours!
Stop ✓
Oui
Solution
A) Tableau B) Choix de la C) Choix de la
optimale D) Pivotage
initial ? variable entrante variable sortante
Non
Une solution de base est admissible si toutes les variables de la solution de base sont ≥ 0.
0 e4 0 1 0 0 0 1 14
Zj 0 0 0 0 0 0
Cj - Zj 1000 1200 0 0 0 0 0
0 e4 0 1 0 0 0 1 14
Zj 0 0 0 0 0 0
Cj - Zj 1000 1200 0 0 0 0 0
0 e4 0 1 0 0 0 1 14
Zj 0 0 0 0 0 0
Cj - Zj 1000 1200 0 0 0 0 0
0 e4 0 1 0 0 0 1 14
Zj 0 0 0 0 0 0
Cj - Zj 1000 1200 0 0 0 0 0
Base x1 x2 e1 e2 e3 e4 bi
0 e1 10 0 01 0 0 0 200
0 e2 2 0 0 1 0 0 60
0 e3 1 0 0 0 1 0 34
Tableau 0
0 e4 0 1 0 0 0 1 14
zj 0 0 0 0 0 0
0
Cj-zj 1000 1200 0 0 0 0
« Automatisation » des
opérations de Gauss-Jordan
Remarque:
b a
« a » est toujours opposé au pivot.
Pivot c « b » et « c » peuvent être permutés.
0 e4 0 1 0 0 0 1 14
Zj 0 0 0 0 0 0
Cj - Zj 1000 1200 0 0 0 0 0
1200 X2 0 1 0 0 0 1 14
Zj 0 1200 0 0 0 1200
Cj - Zj 1000 0 0 0 0 -1200 16800
0 e1 10 5 1 0 0 0 200
0 e2 2 3 0 1 0 0 60
0 e3 1 0 0 0 1 0 34
0 e4 0 1 0 0 0 1 14
Zj 0 0 0 0 0 0 O
Cj - Zj 1000 1200 0 0 0 0 0 C
B
Base 1000 1200 0 0 0 0
Coeff. Var. X1 X2 e1 e2 e3 e4 Valeur A
0 e1 10 0 1 0 0 -5 130
Tableau 1
0 e2 2 0 0 1 0 -3 18
0 e3 1 0 0 0 1 0 34
1200 X2 0 1 0 0 0 1 14
O
Zj 0 1200 0 0 0 1200 A
Cj - Zj 1000 0 0 0 0 -1200 16800
Tableau 3
1000 X1 1 0 0 0.5 0 -1.5 9 1000 X1 1 0 0.15 -0.25 0 0 15
0 e3 0 0 0 -0.5 1 1.5 25 0 e3 0 0 -0.15 0.25 1 0 19
1200 X2 0 1 0 0 0 1 14 1200 X2 0 1 -0.1 0.5 0 0 10
Zj 1000 1200 0 500 0 -300 B Zj 1000 1200 30 350 0 0 C
Cj - Zj 0 0 0 -500 0 300 25800 Cj - Zj 0 0 -30 -350 0 0 27000
Séance 3
Optimisation: Etudes de cas
et analyse post-optimale
Arts et Métiers ParisTech
74
Modèles sur Excel : conseils
76
WindowFlash : gammes
Découpe Finition Soudure
Capacité = 22h Capacité = 24h Capacité = 16h
Max f (x) = 5 * x1 + 6 * x2 + 8 * x3
Avec
1 * x1 + 0,5 * x2 + 1 * x3 ≤ 22
2 * x2 + 0,5 * x3 ≤ 24
0,5 * x1 + 0,5 * x2 + 1 * x3 ≤ 16
x1 ≥ 0 ; x2 ≥ 0 ; x3 ≥ 0
Variables de décision
Objectif
Profit Zone de la fonction objectif qui sera modifiée par le solveur
Profit = 5 * x1 + 6 * x2 + 8 * x3
Contraintes (capacité max)
Capacité max P1 22
Capacité max P2 24
Capacité max P3 16
Charge P1 : 1 * x1 + 0,5 * x2 + 1 * x3 ≤ 22
Utilsation des postes (charge calculée) Charge P2 : 2 * x2 + 0,5 * x3 ≤ 24
Charge P1
Charge P3 : 0,5 * x1 + 0,5 * x2 + 1 * x3 ≤ 16
Charge P2
Charge P3
Fonction objectif
Variables de décision
Contraintes de faisabilité
Contraintes de capacité
Méthode d'optimisation
Objectif
Profit 161.7
83
Analyse post-optimale
88
Mueslix
Les engagements commerciaux imposent de livrer au moins 8500 kilos de muesli « Original ».
Fonction objectif
Variables de décision
Contraintes de recette
Contraintes de capacité
Contraintes de faisabilité
Méthode d'optimisation
Séance 4
Théorie des graphes
et problèmes de réseaux
Arts et Métiers ParisTech
94
Théorie des
graphes
95
Historique et intérêts des graphes
Réseaux sociaux
Réseaux de transports
en commun
Selon que l'on choisit d'orienter les arêtes ou de leur attribuer un poids
(un coût de passage), on parle de graphes orientés ou de graphes
pondérés.
A
Sommet ou noeud
Arc
A prédécesseur de B
A successeur de D
B C
Ordre du graphe = nombre de sommets
D
Boucle
A
Sommet ou noeud
Arête
(A,C) est incidente à A et à C
B C
Graphe
A B A B C D
A 0 1 1 0
B 0 0 0 0
Origine
C 1 1 0 1
C D
D 0 0 0 0
u1
A B u1 u2 u3 u4 u5
A -1 1 -1 0 0
u2 u3 u4
B 1 0 0 1 0
Sommets
C 0 -1 1 -1 -1
C D
u5 D 0 0 0 0 1
u1
A B u1 u2 u3 u4 u5
A -1 1 -1 0 0
u2 u3 u4
B 1 0 0 1 0
C 0 -1 1 -1 -1
C D
u5 D 0 0 0 0 1
C D E
C D E F G
1 6 1 6 1 6
4 5 4 5 4 5
2 3 2 3 2 3
1 6 1 6 1 6
4 5 4 5 4 5
Un réseau est un graphe, pour lequel des valeurs numériques ont été
associées aux nœuds et/ou aux arcs
• Longueur d'une route
• Capacité d'un tuyau
• Nombre de personnes habitants en un endroit
• Flot de véhicules empruntant une autoroute
• Etc.
On supposera qu'il existe au plus un seul arc reliant deux nœuds dans
une même direction (pas d’arêtes parallèles)
Émetteurs et récepteurs :
On indique habituellement la capacité d'un sommet émetteur à fournir des
entités sur l'arc le précédant (Source). Cet arc est virtuel, car aucun flot n'y
circule. Même chose pour les sommets récepteurs (Destination).
( mS ; MS ) ( mD ; MD )
S … … D
Sommet émetteur (source) Sommet récepteur (destination)
(mGU;MGU)
G U C
CGU
Sommet émetteur Sommet de transbordement Sommet récepteur
Flot Net Incident FNI(i) = (Flot total incident - Flot total émergeant), au sommet i
Flot Net Émergeant FNE(i) = (Flot total émergeant - Flot total incident), au sommet i
Flot minimum mij = Flot minimum sur l'arc(i;j)
Flot maximum Mij = Flot maximum sur l’arc(i;j)
Coût de passage Cij = Coût unitaire de passage sur l’arc(i;j)
A
F T
Transport de Transport
nitrocellulose d'éxplosifs
B
G U
C
F 450 9 10
G 495 8 11
T 14 5 6
U 17 6 5
Arsenal A B C
A - 3 -
B 3 - 2
C - 2 -
(350;350)
) A
(0;170
(450;450) 14
F 9 T (0;180 3
)
5 (200;200)
B
)
(0;150 6
(495;495)
G U (0;25
2
11 0)
(395;395)
C
Contraintes :
xFT + xFU = 450
Disponibilité de MP
xGT + xGU = 495
xTA +xTB +xTC –xFT –xGT =0
Transbordement
xUA +xUB +xUC –xFU –xGU =0
–xAB +xTA +xUA +xBA =350
–xBA –xBC +xTB +xUB +xAB +xCB =200 Satisfaction de la demande
–xCB +xTC +xUC +xBC =395
xTA ≤ 170 ; xTB ≤ 180 ; xTC ≤ 190
Limites de poids
xUA ≤ 200 ; xUB ≤ 150 ; xUC ≤ 250
xij ≥ 0 pour tous les arcs du réseau
Fonction économique coût associé à la quantité de tonnes envoyées par l'arc ij = xij*cij
coût par arc 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Fonction objectif 0
Fonction objectif = Min ∑(xij*cij)
Fonction économique
coût par arc 0 0 405 4050 3960 0 2380 900 1140 85 900 1250 0 525 0 90 0 0 0
Fonction objectif 15685
Coût optimal = $ 15 685
Séance 5
Programmation en nombres entiers
et optimisation combinatoire
Arts et Métiers ParisTech
124
Programmation
en nombres
entiers et
optimisation
combinatoire
125
Optimisation en nombres entiers
Un problème d'optimisation en nombres entiers est un problème
d'optimisation dont toutes les variables sont contraintes à ne prendre
que des valeurs entières.
Variables discrètes : nombre d'objets à considérer, nombre d'actions à
effectuer, etc.
• Nombres de vélos à installer sur le campus.
• Nombres d'ouvriers à affecter à un chantier.
Variables binaires (0/1) : oui / non, allumer / éteindre, etc.
• Utiliser la voiture ou pas.
• Construire un pont ou pas.
• Allumer la climatisation ou pas.
Soumise à Soumise à
xj ≥ 0 , bi ≥ 0 xj ≥ 0 , bi ≥ 0
xj entiers xj ∈ {0, 1}
*n = taille des données d’un problème n! 77100 ans --- --- ---
Exemple : X2
Max Z = 5 x1 + 4 x2
S.c. x1 + x2 ≤ 5
10 x1 + 6 x2 ≤ 45
x1 , x2 ≥ 0 , entiers
LP :
x1 = 3.75
x2 = 1.25
Z = 23.75
X1
Z = 23.75
X1 ≤ 3 X1 ≥ 4
LP1 LP2
X1 = 3 X2 = 2 X1 = 4 X2 = 0.83
Z = 23 Z = 23.44
X1
Z = 23 Z = 23.44
Vu que tout les coefficients sont X2 ≤ 0 X2 ≥ 1
entiers, on peut en déduire que la LP3 LP4
valeur de la solution optimale de Z est X1 = 4.5 X2 = 0 --- ---
inférieure ou égale à 23. Z = 22.5 Pas de solution
X1 ≤ 0 X1 ≥ 5
S1 S2 S3 S4
Simon A Simon B Simon C Simon D
B.inf = 15 B.inf = 10 B.inf = 8 B.inf = 12
B.inf = le coût de l’affectation actuelle + les coûts les plus faibles des autres affectations
S1 : Simon→A : 8+1+6 = 15 A B C D
S2 : Simon→B : 3+1+6 = 10 Simon 8 3 1 5
S1 S2 S3 S4
Simon A Simon B Simon C Simon D
B.inf = 15 B.inf = 10
✔ B.inf = 8
✔ B.inf = 12
S8 S9 S10 S5 S6 S7
Virg A Virg C Virg D Virg A Virg B Virg D
B.inf = 20 B.inf = 10
✘ ✔ B.inf
✘
= 15 B.inf = 18
✘
B.inf = 14
✘
B.inf = 13
✘
S11
Au vue des bornes minimales des sous-ensembles. Il existe une
Ron A
seule solution optimale : Simon à B, Virginie à C et Ronan à A.
B.inf = 11
✔ Cette affectation coûte 11.
141
Méthodes Heuristiques
1 2 Remplacer la configuration 3
Choisir une Vérifier le critère d’arrêt
courante par une voisine en
configuration (itérations ou amélioration)
tenant compte de la fonction
initiale ensuite finir ou revenir à 2
objectif
Variables de décision
OF à traiter Durée Durée cumulée Temps disponible Rétard
1 9 9 32 0 Retard sur chaque OF : si la dureé cumulée est
2 7 16 29 0 supérieures au temps disponible, alors le retard est
3 8 24 22 2
4 18 42 21 21 égale à la différence des deux
5 9 51 37 14
6 6 57 28 29
Fonction Objectif
Retard total 66 Fonction objectif : minimiser le retard total
Contrainte « alldifferent » : toutes les valeurs sont Algorithme évolutionniste : paramètres sur la taille de
entières et différentes la population et le critère d’arrêt à définir (options)
16000
BÉNÉFICE
14000
12000
10000
8000
6000
4000
2000 220
0 200
180
160 160
140 140
120 120
100 100
80 80
60 60
40 40
UNITÉS PRODUIT 2 (x2) 20 20 UNITÉS PRODUIT 1 (x1) MÉTHODE GRAPHIQUE
0
MÉTHODE ALGEBRIQUE
SIMPLEXE
GRG
MÉTHODES DE GRADIENT
ALGORITHME DE LA PLUS FORTE PENTE
MÉTHODES EXACTES
(BRANCH AND BOUND, FORCE BRUTE)
HEURISTIQUES ET MÉTAHEURISTIQUES
ALGORITHMES GÉNÉTIQUES
MÉTHODES EXACTES
(BRANCH AND BOUND, FORCE BRUTE)
RELAXATION LINÉAIRE + SIMPLEXE
IMPORTANCE DE LA MODÉLISATION
• L'expression systèmes complexes est à prendre ici au sens le
plus littéral du terme, c'est-à-dire difficile à comprendre pour un
individu sans l'aide d'un modèle et/ou d'un ordinateur.
• Les problèmes sont rendus complexes par leur dimension et/ou par
leur structure.
• Problèmes non-déterministes
• Processus stochastiques
• Monte-carlo
• Chaînes de Markov
• Optimisation robuste
• Considération de différents scenarii