Você está na página 1de 23

13 Janvier 2015 Félix PIERRON

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

2 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

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

On traitera ici 6 exercices suivants : L’achat de programmes, l’optimisation d’une mine,


l’ordonnancement de tâche, l’optimisation du chargement de wagons, la planification de
travailleurs, et le « packing circle ».

3 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

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

La société Damol propose des lots composés de la manière suivante :

 90 heures de fictions françaises

 120 heures de fictions européennes

 40 heures de reportages

Chaque lot coûte 20 000 M€.

La société Martel propose des lots composés de la manière suivante :

 90 heures de fictions françaises

 60 heures de fictions européennes

 100 heures de reportages

Chaque lot coûte 24 000 M€.

Questions :

1. Déterminer l’achat qui permet de minimiser le coût des programmes achetés par la société.

2. Faites un graphique permettant d'interpréter graphiquement la résolution optimale

I. Optimisation des achats


Afin d’optimiser les achats de lots, il faut convenir des variables et des contraintes. On nommera
donc x le nombre de lots de la société Damol acheté, et y le nombre de lots de la société Martel.

On a alors les contraintes suivantes :

90 90 1800
120 60 1800
40 100 1200

4 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

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

En utilisant le solveur, avec les contraintes et fonction objectif ci-dessus, et en pensant


évidemment à demander des résultats entiers, on peut alors condenser l’exercice dans un
tableau.

   Damol  Martel  Totaux   


fictions françaises  90 90 1800 
fictions européennes  120 60 1980 
reportages  40 100 1220 
Prix lot en milliard d'€  20 24 428  Prix dépensé
             
nombre de lots  13 7     

II. Résolution graphique


On va utiliser ici le logiciel Mathematica afin de tracer le graphe de l’ensemble des solutions
possibles pour ensuite en chercher l’optimum réel.

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.

5 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

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.

OPTIMISATION D’UNE MINE


Le but de ce second exercice est, cette fois, de choisir les blocs à extraire d’une carrière,
schématisée ci-dessous.

Une mine à ciel ouvert se présente comme indiqué sur le schéma à droite.

La mine est découpée en blocs appelés unités d'exploitation appelés blocs.

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 :

1. Quels sont les blocs à extraire pour maximiser le bénéfice total ?

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.

6 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

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 a enfin le bénéfice définit par B=V-C.

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.

7 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

Par résolution du tableur, on obtient donc les résultats suivants.

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.

Présentez les résultats dans 2 tableaux :

8 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

Un tableau indiquant les wagons dans lesquels les caisses sont chargées.

Un tableau présentant les charges des wagons

I. Résolution par tableur


On considère dans un premier temps les 16 caisses et leurs poids.

On va maintenant résoudre le problème. Notre variable sera ici xij, i


allant de 1 à 16 et j allant de 1 à 3. Cette variable binaire permettra de
modéliser la présence de la caisse i dans le wagon j (1 si présence, 0 si
absence).

On définit ensuite le poids pi d’une caisse, et le poids Pj d’un wagon. On


peut alors définir nos contraintes : pour chaque wagon, on aura

∑ 100 (les wagons supportent une charge maximale


de 100 quintaux.)

Le but étant de minimiser le poids du wagon le plus chargé, nous allons


imposer un wagon plus lourd que les autres, et en faire une contrainte.
Pour l’exercice, nous avons choisi P1 en wagon le plus lourd. Nous
avons donc et . Enfin, une dernière contrainte à
appliquer a pour but de ne pas mettre la même caisse dans plusieurs
wagons. On impose alors, pour tout i, 1.

Le solveur d’Excell nous propose alors l’attribution suivante pour les caisses.

Caisse  Poids  Wagon 1  Wagon 2  Wagon 3 


1  28  0 0 1
2  6  0 0 1
3  8  0 0 1
4  17  1 0 0
5  16  0 1 0
6  5  0 1 0
7  13  0 1 0
8  21  1 0 0
9  19  0 1 0
10  22  0 0 1
11  14  0 1 0
12  13  0 0 1
13  25  1 0 0
14  9  0 0 1
15  21  0 1 0
16  25  1 0 0
Soit une répartition des poids des caisses dans les wagons telle que :

9 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015


Rapport : Étude de cas

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.

II. Logique sur le poids des caisses


On réfléchit dans cette question à la véracité de 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". Cette
phrase est fausse, et il n’est pas trop difficile d’y trouver un contre-exemple.

On peut prendre un premier contre-exemple, vrai mathématiquement mais légèrement grossier :


par exemple, en prenant deux caisses de 101 quintaux et une caisse 50. On a alors bien une
masse totale de caisses (252) inférieure à la capacité totale des wagons, mais les deux caisses
de 101 ne peuvent être chargées sur les wagons. Cependant, des caisses de 101 quintaux,
compte-tenu des masses des autres caisses données, semblent surprenantes en réalité.

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.

La phrase dont on cherchait à vérifier la véracité se révèle donc fausse.

PLANIFICATION DES TRAVAILLEURS


Dans cet exercice, il s’agit d’optimiser les cycles de travail d’employés et de se caler sur leur
jours de congé afin d’obtenir le résultat le plus intéressant.

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.

Le taux horaire du salaire en semaine sera différent de celui du weekend.

Question :

1. Calculer le planning qui minimise la paie des travailleurs en respectant les contraintes.

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

0
Rapport : Étude de cas

Faites clairement apparaitre les résultats.

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.

Compte-tenu de la législation, il est aussi important de respecter un certain


taux maximum d’employés ne disposant pas de deux jours consécutifs de
repos au cours de la semaine (nous testerons différentes valeurs). Ainsi, le
rapport du nombre de travailleurs ne disposant pas de deux jours consécutif de
repos et du nombre total de travailleurs doit être inférieur au taux fixé, ce qui
nous ajoute une contrainte.

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.

On considèrera des journées de 8h de travail pour les calculs de salaire.

Résultats pour un taux de congés non consécutifs maximal de 10%

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

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% 

Jours  Travailleurs requis  Travailleurs présents  Travailleurs en trop   


Lundi  20  21 1 
Mardi  15  24 9 
Mercredi  25  25 0 
Jeudi  20  20 0 
Vendredi  25  25 0 
Samedi  15  15 0 
Dimanche  10  10 0 
Total travailleurs en 
10  trop 

Résultats pour un taux de congés non consécutifs maximal de 20%

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% 

Jours  Travailleurs requis  Travailleurs présents  Travailleurs en trop   


Lundi  20  20 0 
Mardi  15  19 4 
Mercredi  25  26 1 
Jeudi  20  20 0 
Vendredi  25  25 0 
Samedi  15  15 0 
Dimanche  10  10 0 
1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015
2
Rapport : Étude de cas

Total travailleurs en 
5  trop 

Résultats pour un taux de congés non consécutifs maximal de 30%

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% 

Jours  Travailleurs requis  Travailleurs présents  Travailleurs en trop   


Lundi  20  20 0 
Mardi  15  15 0 
Mercredi  25  25 0 
Jeudi  20  20 0 
Vendredi  25  25 0 
Samedi  15  15 0 
Dimanche  10  10 0 
Total travailleurs en 
0  trop 
Résultats pour un taux de congés non consécutifs maximal de 40%

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% 

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

3
Rapport : Étude de cas

Jours  Travailleurs requis  Travailleurs présents  Travailleurs en trop   


Lundi  20  20 0 
Mardi  15  15 0 
Mercredi  25  25 0 
Jeudi  20  20 0 
Vendredi  25  25 0 
Samedi  15  15 0 
Dimanche  10  10 0 
Total travailleurs en 
0  trop 
On peut relever qu’au-dessus de 30%, si les répartitions des jours de travailleurs continuent de
changer, le salaire versé au total ne diminue plus, et il n’y a plus aucun travailleurs en trop
présent, seulement ceux requis.

ORDONANCEMENT DES TÂCHES


Ce cas-ci vise à étudier une cuve de préparation de peinture et comment s’enchaînent les tâches
afin de ne pas avoir de pertes de temps.

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.

La matrice n n DN donne les temps de nettoyage.

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

Le modèle, assez difficile, est fourni.

Questions :

1. Expliquer pourquoi un algorithme naïf énumérant tous les ordonnancements est


inapplicable en pratique ? (se placer bien sûr dans le cas général).

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

4
Rapport : Étude de cas

2. Expliquer précisément pourquoi la dernière famille de contrainte interdit les sous-cycles.

3. Implémenter ce modèle avec un solveur.

I. Problème de l’algorithme d’énumération naïf


Durée de fabrication des lots DF(i)    n 
Lots  1  2  3  4  5    5 
Durée  40  35  45  32  50   

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.

II. Interdiction des sous-cycles


Pour éviter l’utilisation du modèle naïf qui ne fonctionnerait pas comme expliqué
précédemment, un modèle nous est fourni pour ce calcul, précisé ici.

1 è ,

, é 0

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

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/

III. Résolution par AMPL


On cherche à résoudre ce problème à l’aide du solveur AMPL. Pour cela, on implante tout
d’abord les données du problème dans un fichier .dat :

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

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.

Le solveur présente alors le résultat suivant :

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.

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

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

1. Caractériser ce problème (nature des variables, linéarité, convexité).

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.

r : rayon des cercles découpés

Xi, Yi : coordonnées du centre du ième cercle

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

L’objectif entier de ce problème va être de maximiser r.

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

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

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.

On obtient donc la matrice

En procédant par bloc on trouve facilement un déterminant nul à la Hessienne, donc la fonction
n’est pas convexe.

II. Résolution par solveur


On réalise dans un premier temps le fichier .mod. Ici, pas besoin de fichier .dat, la seule chose
qu’on fera varier se trouve être la valeur de n, le reste ne dépendra pas de nous.

1 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

9
Rapport : Étude de cas

On a ensuite besoin du .run afin de faire les calculs.

Comme expliqué, le choix du let…Uniform va permettre de choisir des points au hasard de


façon uniforme.

On va maintenant présenter divers résultats pour n compris entre 2 et 9.

Pour n=2 :

Pour n=4 :

2 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

0
Rapport : Étude de cas

Pour n=5 :

Pour n=6 :

2 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

1
Rapport : Étude de cas

Pour n=8:

Pour n=9:

2 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

2
Rapport : Étude de cas

On peut ensuite rassembler les résultats dans un tableau :

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

2 Rapport de Recherche Opérationnelle | Félix PIERRON | 13 Janvier 2015

Você também pode gostar