Escolar Documentos
Profissional Documentos
Cultura Documentos
RECHERCHE
RAPPORT : ÉTUDE DE CAS
OPERATIONNELLE
Recherche Opérationnelle
Enseignant : H. Amet
Chargé de TD : Y. Rahmani
Rapport : Étude de cas
Sommaire
INTRODUCTION .................................................................................................................... 3
ACHAT DE PROGRAMMES ................................................................................................ 4
I. Optimisation des achats .................................................................................................... 4
II. Résolution graphique ...................................................................................................... 5
OPTIMISATION D’UNE MINE ............................................................................................ 6
CHARGEMENT DE WAGONS............................................................................................. 8
I. Résolution par tableur ...................................................................................................... 9
II. Logique sur le poids des caisses .................................................................................... 10
PLANIFICATION DES TRAVAILLEURS ........................................................................ 10
INTRODUCTION
La recherche opérationnelle désigne un ensemble de techniques et méthodes rationnelles afin
de parvenir au résultat souhaité ou, tout du moins, d’obtenir le meilleur résultat possible. Ce
sont globalement des techniques d’aides à la décision, faisant appel à un raisonnement tant
mathématiques que logique, et se basant sur la modélisation de processus.
En tant que tel, il s’agit donc d’un ensemble de techniques et méthode de travail indispensables
à un ingénieur, peu importe son domaine d’expertise.
Dans le présent rapport, on présentera six différentes études de cas, utilisant des méthodes de
résolution différentes et faisant appel à des techniques diverses, obéissant aux consignes
suivantes :
Consignes générales
Ce classeur Excel contient
Une feuille de consignes
Une feuille pour l'installation du solveur
Une suite de feuilles avec un exercice ou problème par feuille
Pour chaque exercice, vous disposez :
de l'énoncé
des données (tableaux orange)
des questions à résoudre
Les modèles devront être écrits à l'aide de l'éditeur d'équation et selon le
formalisme de la littérature scientifique.
Voir ci-contre un exemple de structuration de feuille Excel terminée
Un modèle de solveur est bien fait si les données (coefficients des contraintes et de
l'objectif) sont séparées des expressions linéaires (Ex : 5*A3 + 10*A4 est
difficilement paramétrable tandis que B10*A3 + C10*A4 où B10 contient 5 et
C10 contient 10 est paramétrable car un changement en B10 ou C10 modifie les
données du solveur).
Les travaux sont individuels. Chaque étudiant rend un dossier pour la fin du mois
de janvier.
Les dossiers pourront être composés de copies d'écran, partielles ou complètes
suivant le cas.
Important : vous serez aussi évalués sur votre capacité à imaginer des extensions,
des paramétrages intéressants. Vous pouvez utiliser tous les outils que vous voulez
(AMPL, Mathematica, LPSolve, ...) mais vous ne serez pas pénalisé si vous faites
seulement ce qui est demandé.
ACHAT DE PROGRAMMES
L’objectif de ce premier cas est d’optimiser les achats d’une société de communication
fournissant des programmes télévisés à une chaîne de diffusion.
Une société de communication négocie des droits d’exploitation sur plusieurs années d’une
chaîne de télévision à couverture nationale. Un contrat l’oblige à diffuser pendant cette période
au moins 1800 heures de fictions françaises, 1800 heures de fictions européennes et 1200 heures
de reportages.
Pour acheter les programmes, elle se fournit auprès de deux entreprises de production
télévisuelle qui vendent des ensembles d’émissions « clé en main » appelés « lots ».
40 heures de reportages
Questions :
1. Déterminer l’achat qui permet de minimiser le coût des programmes achetés par la société.
90 90 1800
120 60 1800
40 100 1200
L’objectif de cet exercice est donc de minimiser le nombre de lots achetés, on en déduit donc
la fonction objectif :
Min(20000 24000
On trace dans un premier temps l’optimum théorique, qu’on complètera après par l’optimum
réel. On a alors le graphe suivant.
On a en Orange le point optimum théorique, pour lequel x et y ne sont pas entiers. Le point
Rouge est donc le point d’optimum réel pour x=13 et y=7.
Une mine à ciel ouvert se présente comme indiqué sur le schéma à droite.
La mine doit être creusée en gradins afin de permettre aux camions d'y descendre. Elle est
limitée à l'ouest par un village et à l'est pas une montagne.
18 blocs de 10000 tonnes ont été délimités. Pour extraire un bloc, il faut que les 3 blocs (au-
dessus, au-dessus à gauche, au-dessus à droite) du niveau supérieur aient été extraits. Ceci
permet de respecter les contraintes de pente. Seuls les blocs en gris contiennent de l'uranium et
ont donc une valeur marchande.
Les coûts d'extraction et les valeurs marchandes sont indiqués dans le tableau ci-dessous (à
noter que les blocs de roche dure sont coûteux à extraire).
Question :
Tout d’abord, il est important de prendre en compte les valeurs de coût et de rapport de chaque
bloc pour mettre au point l’extraction, qui sont résumées dans le tableau qui suit.
La méthode de choix pour résoudre ce problème a été, dans un premier temps, de définir une
matrice binaire 18x18, afin de modéliser les dépendances des blocs : les lignes représentent les
blocs à extraire, tandis que les colonnes correspondent aux blocs à enlever pour les extraire. On
obtient alors la matrice qui suit.
On définit alors comme nos variables le fait d’extraire ou non chaque bloc, et on en fait donc
des variables binaires xi, i=1..18.
L’objectif est ici de maximiser le bénéfice, qu’on définit comme la différence de la valeur
marchande et du coût d’extraction des blocs.
On définit alors les Cj, j=1..18 les coûts d’extraction par tonne et les Vk, k=1..18 les valeurs
marchandes par tonne extraite des blocs.
On définit alors le coût d’extraction total comme 10000 ∗ ∑ (il y a en effet 10000
tonnes par bloc), de même que la valeur marchande totale comme 10000 ∗ ∑ .
On définit enfin ce qu’on appellera « l’intérêt d’extraction », qui constituera l’ensemble de nos
contraintes :
Pour un i donné, on aura cette contrainte qui vaudra le produit factoriel de la ième ligne de la
matrice avec le vecteur des xi, auquel on soustrait la somme des termes de la ième ligne de la
matrice. On impose à cette contrainte d’être supérieure à 0, c’est-à-dire que la condition pour
enlever un bloc est que les blocs supérieurs en aient été ôtés.
N° Bloc Extraire
1 1
2 1
3 1
4 1 Coût 18 000 000,00 €
5 1 Valeur Marchande 22 000 000,00 €
6 1 Bénéfices 4 000 000,00 €
7 1
8 0
9 0
10 1
11 1
12 1
13 1
14 0
15 0
16 0
17 1
18 0
On observe donc un bénéfice final de 4M€, tout en remarquant qu’on extrait l’intégralité des
blocs mis à part les blocs 8, 9, 14, 15, 16 et 18. On remarque qu’aucun des blocs de roche dur
n’a été extrait, ce qui est logique compte tenu de leur coût d’extraction.
CHARGEMENT DE WAGONS
Dans cet exercice, on se propose d’optimiser le chargement de wagons de marchandises afin de
toutes les emporter et de faire en sorte que même le wagon le plus chargé ne le soit pas trop.
Trois wagons de chemins de fer de charge utile limitée à 100 quintaux sont réservés pour
transporter 16 caisses. Les caisses et leurs poids en quintaux sont donnés dans le tableau à
droite.
Questions :
1. Comment affecter les caisses aux wagons en respectant les charges utiles et en minimisant
la charge du wagon le plus chargé ?
2. Est-ce que la phrase : "Si la somme des poids des caisses est plus petite que la somme des
capacités des wagons alors le modèle a une solution" est correcte ? Si non, donnez un exemple
qui prouve qu'elle est incorrecte.
Un tableau indiquant les wagons dans lesquels les caisses sont chargées.
Le solveur d’Excell nous propose alors l’attribution suivante pour les caisses.
Wagons Poids chargé
Wagon 1 88
Wagon 2 88
Wagon 3 86
Les contraintes sont bien respectées, le wagon 1 transportant les caisses 4, 8, 13 et 16, le wagon
2 les caisses 5, 6, 7, 9, 11 et 15 et le wagon 3 les caisses 1, 2, 3, 10, 12 et 14.
On peut alors considérer 7 caisses de 40 quintaux, masses plus réalistes. On a alors une masse
totale de 280 quintaux pour les caisses, inférieure aux 300 des wagons. Cependant, une fois
chargé deux caisses par wagon, il reste une caisse de 40 quintaux qu’aucun wagon ne peut
prendre en charge.
L'objectif de cette application est de planifier les emplois du temps de travailleurs. Ils doivent
tous travailler 5 jours parmi les 7 de la semaine. Ils doivent donc disposer de 2 jours de repos,
consécutifs ou pas. Une contrainte impose que le nombre de travailleurs disposant de 2 journées
de repos non consécutives ne dépasse pas un certain pourcentage du nombre de travailleurs total
(tester 10%, 20%, 30%, 40%).
L'entreprise demande à ce que le nombre de travailleurs présents chaque jour de la semaine soit
au moins égal à une valeur déterminée.
Question :
1. Calculer le planning qui minimise la paie des travailleurs en respectant les contraintes.
0
Rapport : Étude de cas
On a dans un premier temps les données : un certain nombre de travailleurs est requis pour tous
les jours de la semaine, présenté ci-dessous.
Jours Travailleurs requis
Lundi 20
Mardi 15
Mercredi 25
Jeudi 20
Vendredi 25
Samedi 15
Dimanche 10
Cela nous amène directement à un premier ensemble de contrainte à appliquer à notre
problème : chaque jour, le nombre de travailleurs présents doit être supérieur ou égal au nombre
de travailleurs requis.
Les variables de cet exercice vont être le nombre de travailleurs en congés par ensemble de
deux jours de la semaine. Il est donc important de relever toutes les combinaisons possibles : il
en existe 21, présentées dans ce tableau.
Le but de cet exercice étant de minimiser les salaires versés aux ouvriers, il
nous faut prendre en considération les salaires de semaine et de weekend,
différents.
On somme donc pour chaque jour l’ensemble des travailleurs n’étant pas en congés ce jour ci,
chiffres à partir desquels on calcule les salaires de semaine et de weekend. On cherche ici à
minimiser le total.
1
Rapport : Étude de cas
Nombre total de travailleurs 28
Affectations par jour de repos Lun, Mar : 4 Mer, Jeu : 3 Jeu, Ven : 3 Sam, Dim : 13 Dim, Lun : 3 Jeu, Dim : 2
Montant des salaires en semaine 7 360,00 €
Montant des salaires en WE 2 400,00 €
Total des salaires 9 760,00 €
Travailleurs en jours repos non cons. 2
Travailleurs en jours repos cons. 26
%max travailleurs en non cons. 10,00%
%trav en non cons. 7,16%
Nombre total de travailleurs 27
Affectations par jour de repos Lun, Mar : 3 Mer, Jeu : 1 Jeu, Ven : 2 Sam, Dim : 12 Dim, Lun : 4 Mar, Jeu : 4 Mar, Dim : 1
Montant des salaires en
semaine 7 040,00 €
Montant des salaires en WE 2 400,00 €
Total des salaires 9 440,00 €
Travailleurs en jours repos non
cons. 5
Travailleurs en jours repos
cons. 22
%max travailleurs en non cons. 20,00%
%trav en non cons. 18,52%
Total travailleurs en
5 trop
Nombre total de travailleurs 26
Affectations par jour de repos Lun, Mar : 3 Mer, Jeu : 1 Jeu, Ven : 1 Sam, Dim : 11 Dim, Lun : 3 Mar, Jeu : 5 Mar, Dim : 2
Montant des salaires en semaine 6 720,00 €
Montant des salaires en WE 2 400,00 €
Total des salaires 9 120,00 €
Travailleurs en jours repos non cons. 7
Travailleurs en jours repos cons. 19
%max travailleurs en non cons. 30,00%
%trav en non cons. 26,96%
Nombre total de travailleurs 26
Lun, Mar : 6 Mar, Jeu : 1 Sam, Dim : 9 Mar, Ven : 1 Mar, Sam : 2 Mar, Dim :
Affectations par jour de repos 1
Montant des salaires en semaine 6 720,00 €
Montant des salaires en WE 2 400,00 €
Total des salaires 9 120,00 €
Travailleurs en jours repos non cons. 10
Travailleurs en jours repos cons. 16
%max travailleurs en non cons. 40,00%
%trav en non cons. 38,46%
3
Rapport : Étude de cas
Une entreprise de peintures doit fabriquer chaque semaine 5 lots de peintures. Chaque lot est
fabriqué en une seule fois dans une cuve à l'aide d'un mélangeur. Les durées de fabrication des
peintures sont données dans le tableau ci-contre.
Pour fabriquer une couleur, il faut d'abord nettoyer la cuve mais les temps de nettoyage
dépendent de la couleur à fabriquer et de celle qu'il faut nettoyer. Ainsi, passer du noir au blanc
est très coûteux car il faut une cuve très propre pour faire du blanc tandis que passer du jaune
au noir est moins coûteux.
Plus généralement, passer d'une fabrication à une autre implique des temps de réglage qui
peuvent être très importants (quelques fois plusieurs jours !) donc il est utile d'optimiser les
enchaînements.
Comment minimiser la durée totale de fabrication des n lots de peinture sachant que de semaine
en semaine l'ordre sera le même et qu'il faut terminer la fabrication de manière à ce que la cuve
soit prête à fabriquer la couleur qui commence le cycle en semaine suivante (prendre la couleur
1 comme couleur à fabriquer en premier) ?
Questions :
4
Rapport : Étude de cas
Temps de nettoyage entre lots DN(i,j)
Lots 1 2 3 4 5
1 0 11 7 13 11
2 5 0 13 15 15
3 13 15 0 23 11
4 9 13 5 0 3
5 3 7 7 7 0
Avec ce type de problème, une première approche brutale et naïve viserait à étudier toutes les
possibilités d’enchaînement de cycles afin d’en observer l’optimisation. Cependant, pour
seulement 5 lots différents, on peut observer (cf matrice ci-dessus) 120 enchaînements
possibles, soit (5 !).
Alors, dans le cas de lots plus nombreux, comme c’est en réalité le cas dans l’industrie, on peut
en déduire qu’on aurait n ! possibilités, soit un nombre beaucoup trop important pour être résolu
« à la main » à travers cette approche naïve du problème.
1 è ,
, é 0
5
Rapport : Étude de cas
∀ 1… : 1
,
∀ 1… : 1 é é
,
1 1 é
∀ 1 … , ∀ 2… , : 1 1 é
On remarque qu’une ligne en particulier est présente pour éviter que n’apparaissent des sous-
cycles dans la résolution du système.
«∀ 1 … , ∀ 2… , : 1 1 é »
Cette ligne de commande confirme le fait qu’on utilise ici qu’une seule cuve, et donc pas
possibilité de lancer deux cycles de production simultanés. Si le lot i succède au lot j, on a alors
1 : le lot j ne peut plus être utilisé jusqu’à la fin du cycle une fois que i lui a succédé. On évite
donc bien le problème des sous-cycles en ça que tout lot produit ne peut l’être à nouveau avant le début
du prochain cycle, il est « sorti » du cycle/
6
Rapport : Étude de cas
Une fois les données du problème rentrées, il faut alors rentrer les inconnues et contraintes du
modèle avec un fichier .mod.
Ne reste alors plus qu’à faire fonctionner le modèle à l’aide d’un fichier .run.
L’o
Le résultat optimal nous donne donc l’ordre 1, 5, 3, 2 et 4 pour la production afin de respecter
au maximum les contraintes de temps et de nettoyage des cuves.
7
Rapport : Étude de cas
PACKING CIRCLE
Le dernier cas est le cas de la découpe d’un carré : on souhaite découper des cercles dans un
carré. Connaissant le nombre donné de cercle que l’on veut découper, on souhaite obtenir un
rayon maximal.
Étant donné un carré (de côté 1), étant donné n nombres de cercles à placer, quel est le rayon
maximum des cercles qui permettrait de les placer tous dans le carré sans qu'il y ait intersection
entre eux et sans qu'ils sortent du carré ?
Questions
2. Résoudre le problème avec un solveur et faire des expériences variées avec une présentation
des résultats dans un tableau.
I. Caractérisation du problème
On souhaite dans un premier temps caractériser le problème.
Les variables étant posées, on veut aussi poser les contraintes du problème.
Tout d’abord, tous les cercles doivent être contenus dans le carré. Cela revient à avoir le
système de contraintes suivant :
∀ i 1 … n, r 1
∀ i 1 … n, r 0
∀ i 1 … n, r 1
∀ i 1 … n, r 0
La deuxième contrainte principale est l’interdiction pour deux cercles d’être en intersection.
Cela se traduit par l’inégalité suivante :
∀ =1… , ∀j=1… , j , ≥ 2r
Il est cependant important, et problématique, de relever que ce problème n’est absolument pas
un problème linéaire, en confirme la fonction suivante :
, , , 2 2 4 2
8
Rapport : Étude de cas
Pour cette fonction ci, la matrice Hessienne est relativement simple à calculer, c’est pourquoi
on se contentera ici de la donner directement sans préciser les calculs intermédiaires.
En procédant par bloc on trouve facilement un déterminant nul à la Hessienne, donc la fonction
n’est pas convexe.
9
Rapport : Étude de cas
Pour n=2 :
Pour n=4 :
0
Rapport : Étude de cas
Pour n=5 :
Pour n=6 :
1
Rapport : Étude de cas
Pour n=8:
Pour n=9:
2
Rapport : Étude de cas
Nombres de cercles dans le carré Rayon maximal des cercles trouvé par AMPL
2 0.292893
4 0.25
5 0.207107
6 0.187681
8 0.168581
9 0.134