Vous êtes sur la page 1sur 62

Simulation

Case-Study 1: Le café restaurant

Lina ABOUELJINANE
ENSMR

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 1


Rappel des étapes clés de la simulation

Principales étapes d’une étude de simulation:

Formulation du problème

Collecte des données d’entrée

Conception et implémentation du modèle

Vérification et validation du modèle

Elaboration, exécution et analyse des résultats

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 2


Réplications d’un modèle
de simulation

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 3


Réplications dans un modèle de simulation

Réplication = exécution du modèle qui utilise un jeu de données d’entrée obtenu


par le choix préalable d’un germe afin de générer des nombres aléatoires suivant
une distribution donnée et estimer les outputs du modèle étudié

▪ Une réplication est une réalisation particulière des variables aléatoires outputs
pouvant avoir de larges variances
▪ Le résultat d’une seule réplication peut largement différer des véritables
résultats du modèle ce qui augmente la probabilité d’en inférer des résultats
erronés
▪ La réalisation de plusieurs réplications avec les mêmes conditions initiales et
une réinitialisation des statistiques au début de chaque exécution permet
d’obtenir des échantillons représentatifs des variables aléatoires outputs (iid) et
de converger en moyenne vers les outputs réels du système
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 4
Réplications dans un modèle de simulation
Simulation avec condition d’arrêt (terminating simulations)
« Un évènement « naturel » vient mettre fin à la réplication comme une heure de fermeture
fixée, la fin de service pour tous les clients d’un système de biens ou de services (restaurant,
supermarché, banque…)… »
Pour cette simulation:
1. Exécuter n réplications
2. Observer la réalisation d’une variable aléatoire output Xj pour chaque réplication
j (j=1…n) => les Xj sont iid
σ𝒏
𝒊=𝟏 𝑿𝒊
3. L’estimateur sans biais de l’output moyen est: 𝑿 𝒏 = 𝒏
𝟐 σ𝒏
𝒊=𝟏[𝑿𝒊 −𝑿(𝒏)]
𝟐
4. L’estimateur sans biais de la variance de l’output est: 𝑺 𝒏 =
𝒏−𝟏
5. L’intervalle de confiance de la moyenne µ à 100(1-α)% (avec 0<α<1) est défini
𝑺(𝒏)𝟐
par : 𝑿(𝒏) ∓ 𝒕 𝜶
𝒏−𝟏,𝟏−𝟐 où t n−1,1−α est lu dans la table de Student
𝒏 2
pour un risque d’erreur α/2 et (n - 1) degrés de liberté

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 5


Réplications dans un modèle de simulation
Simulation avec condition d’arrêt (terminating simulations)
Supposons qu’on a exécuté le modèle avec un nombre initial de réplication n0. On
𝑺(𝒏𝟎)𝟐
calcule l’IC de la moyenne de l’output 𝑿 𝒏𝟎 ∓ h0 (avec h0 = t 𝒏 −𝟏,𝟏−𝜶 ). On
0 𝟐 𝒏𝟎
veut obtenir un intervalle de confiance de 𝑿 plus précis avec une demi-largeur
d’intervalle (half-width) spécifique h < h0

1. On peut calculer le nombre de réplications nécessaires n pour obtenir une demi largeur
𝟐 𝑺(𝒏)𝟐
d’intervalle h à l’aide de : 𝒏 = 𝒕𝒏−𝟏,𝟏−𝜶 𝒉𝟐 (Attention: t et S dépendent de n!)
𝟐
2. Lorsque n ≥ 30, on peut approximer n en supposant que S(n)² ≈S(n0)², puis en remplaçant
t n−1,1−α par 𝑧1−α lu dans la table de la loi Normale pour un risque d’erreur α/2:
2 2
𝟐 𝑺 (𝒏𝟎)𝟐
𝒏≅ 𝒛𝟏−𝜶 𝒉𝟐
𝟐
𝒉𝟐𝟎
3. Une autre approximation qui peut être utilisée est : 𝒏 ≅ 𝒏𝟎 𝒉𝟐

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 6


Réplications dans un modèle de simulation
Simulation sans condition d’arrêt (non-terminating simulations)
« Un évènement « naturel » ne peut mettre fin à la réplication comme les cas des systèmes
fonctionnant 24h/24 (hôpitaux, usines…), ou des systèmes à améliorer pour lesquels l’intérêt est
d’observer le comportement typique ou stationnaire sur une longue durée »

Pour cette simulation:


1. L’estimateur classique 𝑿 𝒏 devient biaisé pour toutes les valeurs
finies de n
2. Il faut arriver à choisir les bonnes conditions initiales
représentatives de l’état stationnaire en:
▪ Déterminant la phase transitoire (warm-up period) en début de
simulation
▪ Sélectionnant une méthode d’obtention d’un échantillon
d’observation
▪ En déterminant la longueur de réplication
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 7
Simulation sans condition d’arrêt
La phase transitoire (warm-up period)
« Les observations collectées en début de simulation (files d’attente vides, ressources
inoccupées…) induisent un biais dans l’estimation des outputs. Ce biais est atténué en
éliminant ces observations pour ne garder que les observations de l’état stationnaire»
Exemple de méthode graphique pour déterminer la phase transitoire:
▪ Exécuter quelques réplications du modèle (3 à 5) sur une période assez longue
pour permettre l’occurrence d’évènements rares
▪ Choisir des indicateurs clés (ex: temps d’attente, taux d’utilisation…) et suivre
leur évolution sur un graphique
▪ Lorsque l’état stationnaire commence à apparaitre, on ajoute un coefficient de
sécurité (ex: 20 à 30%)
▪ Cette approche est simple et généralement satisfaisante

Fin de la phase
transitoire
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 8
Simulation sans condition d’arrêt
Obtention de l’échantillon d’observations
Deux approches sont largement utilisées pour obtenir un échantillon « représentatif » d’outputs:
Réplications multiples Lot d’intervalles (Interval
batching)
Principe Utiliser le même principe pour le calcul Une seule réplication longue est exécutée
de la moyenne et l’IC de l’output que la et les statistiques sont réinitialisées à des
simulation avec condition d’arrêt en intervalles de temps fixes. L’output est
choisissant une phase transitoire et une collecté pour chaque intervalle. La
longueur de réplications adéquats moyenne et l’IC sont calculés sur tous
les intervalles (au moins 5 à 10)
Utilisation Si phase transitoire courte Si phase transitoire longue
Avantage - Les échantillons d’output sont - L’exécution dure moins longtemps
indépendants - Le risque de biais du à la phase
transitoire est moindre
Inconvénients - L’exécution d’une phase transitoire - Les échantillons d’output sont
pour chaque réplication prolonge la dépendants (corrélation avec l’intervalle
durée de simulation précédant et suivant)
- Risque de sous-estimation de la phase
transitoire (résultats biaisés)
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 9
Simulation sans condition d’arrêt
Longueur de réplication

Pour un modèle de Réplication insuffisamment


Réplication extrêmement
simulation sans longue
longue
condition d’arrêt + Rapide
+ Représentative de l’état
stationnaire - Non représentative de l’état
- Non pratique stationnaire (résultats
biaisés)

La longueur de simulation recommandée est celle qui exécute tous les


types d’évènements (même les plus rares) une centaine de fois pour les
réplications multiples et au moins 1000 fois pour la collecte d’output
par lot d’intervalles
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 10
Modèle étudié

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 11


Modèle étudié
Un café-restaurant de 50 tables à 2 couverts ouvre ses portes de 11h à 23h chaque jour de la semaine.
Le restaurant n’accepte plus de nouveaux clients après 22h, mais tous les clients reçus avant 22h sont
servis jusqu’à la fin. Le taux d’arrivée des groupes de clients dans restaurant varie durant la journée
Période Taux Période Taux Période Taux
11h-12h30 20 14h-17h 6 18h-20h 30
12h30-14h 30 17h-18h 10 20h-22h 20
Les groupes de clients sont constitués de 2, 3, 4 ou 5 convives avec des probabilités de 0.4, 0.3 ,
0.2 et 0.1 respectivement. Les tables peuvent être rassemblées pour les groupes de plus de 2
personnes. Lorsqu'un groupe arrive, il attend que des tables en nombre suffisant soient libres,
sauf s'il y a déjà 5 groupes en attente, auquel cas il se rend dans un autre restaurant. Une fois
assis, le client attend un serveur de libre puis passe sa commande pendant une durée triangulaire de
paramètres 3, 5, 7 minutes. La préparation du repas du groupe est d'une durée uniformément répartie
entre 15 et 20 minutes. Un serveur sert ensuite le groupe pendant une durée triangulaire de
paramètres 2, 3, 4 minutes La durée d’un repas proprement dit obéit à une distribution normale de
moyenne 60 minutes et d'écart-type 10 minutes. Une fois le repas terminé, les clients appellent un
serveur pour payer la note et libèrent les tables. La durée de paiement du serveur est uniformément
distribuée entre 1.5 et 3 minutes. Parmi toutes les tâches des serveurs, la prise de commande est la
plus prioritaire. Il y a 4 serveurs dans le restaurant avec un planning journalier décalé qui peut être
résumé par : 2 serveurs entre 11h et 12h30, 4 entre 12h30 et 14h, 2 entre 14h et 18h et 4 entre 18h et
23h.
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 12
Modèle étudié
Paramétrage du module « Create »
Glissez un module CREATE et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !

1- Renommez le module 2- Renommez les entités


« Arrivée groupe » en tapant « groupe »

3- Selectionnez le type
« schedule » et lui
donner un nom
(« schedule_arrivee »)
pour représenter un taux
d’arrivée différent par
tranche horaire.

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 13


Modèle étudié
Paramétrage du module « Schedule »
Cette méthode permet de représenter un processus de poisson nonstationnaire caractérisé par un taux d’arrivée
qui varie suivant différentes périodes de la journée (exemple: trafic routier, restaurant, centre d’appel…)
3- Cliquez sur « 0 rows » sous le champs
duration, et insérez le taux d’arrivé dans
« value » et l’unité de temps dans
« duration » (unité halfhours) en double
cliquant pour insérer une nouvelle ligne
(exemple: le couple 20,3 représente un taux
d’arrivée de 20 groupes sur une période
d’une heure et demi)

1- Cliquez sur
«Schedule » dans « Data
Definition »
2- Changez l’unité de
temps à « halfhours »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 14


Modèle étudié
Paramétrage du module « Resource»

1- Cliquez sur «Ressource » dans


« Data definition»

2- Double-cliquez pour ajouter une ressource « Table» avec


une capacité fixe de 50, puis une ressource « Serveur » de
type « Based on Schedule ». Renommez le Schedule

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 15


Modèle étudié
Paramétrage du module « Schedule»

2- Ajouter l’emploi du temps des serveurs ( de 11h à


23h en unité de 30min) en cliquant sur « 0 rows »
dans le champs durations. « values » indique la
quantité disponible de la ressource et « duration » la
durée pendant laquelle cette quantité est disponible

1- Cliquez sur
«Schedule » dans
« Data Definition »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 16


Modèle étudié
Paramétrage du module « Decide »
Glissez un module DECIDE et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !
2- Sélectionnez le type
N-way by chance

1- Renommez le module
« Nombre de clients par
groupe? »

3- Ajoutez les pourcentages


correspondant au nombre de
convives par groupe

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 17


Modèle étudié
Paramétrage du module « Assign »
Glissez quatre modules ASSIGN et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !
1- Renommez le module « Groupe
2/3/4/5 »

2- Ajouter un attribut « Nbre_groupe » qui reçoit le nombre de convives par groupe


(2/3/4/5) et un attribut « Nbre_Table » qui reçoit le nombre de tables à assembler (1 pour un
groupe de 2, 2 pour un groupe de 3 ou 4, 3 pour un groupe de 5
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 18
Modèle étudié
Template « Queue »

▪ Attacher le template
« Blocks » : Clic droit
-> Template Panel ->
Attacher… ->
« blocks.tpo »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 19


Modèle étudié
Paramétrage du module « Queue»

1- Cliquez sur
«Queue » dans « Data
Definition »

2- Ajouter la file d’attente Table.queue pour modéliser la file d’attente


des Tables
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 20
Modèle étudié
Paramétrage du block « Queue »
Glissez un block QUEUE depuis le template « Blocks » et Double-cliquez dessus pour ouvrir la boîte de
dialogue de ses propriétés ! 1- Choisisser la file
« Table.queue »

2- Spécifiez la capacité
de la queue à 5

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 21


Modèle étudié
Paramétrage du module « Record »
Glissez un module RECORD et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !

1- Renommez le module « Groupes


perdus »

2- Ajoutez une statistique de type «Count »


qui s’incrémente de 1 à chaque groupe
perdu. La statistique est enregistrée dans le
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 22
Modèle étudié
Paramétrage du module « Dispose »
Glissez un module DISPOSE et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !

1- Renommez le module « Sortie


de groupes perdus »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 23


Modèle étudié
Paramétrage du block « Seize »
Glissez un block SEIZE depuis le template « Blocks » et Double-cliquez dessus pour ouvrir la boîte de
dialogue de ses propriétés ! (Assurez vous que le block seize vienne du template blocks et non Discrete
Processing. Le module dans Discrete Processing contient automatiquement une queue et ARENA ne
comprendra pas la construction d’un seize avec deux queues)

1- Changez la règle
d’allocation à « Wait » pour
dire que le temps passé dans
seize est un temps d’attente

2- Ajouter la ressource
« Table » avec un nombre
d’unités qui correspond à
l’attribut « Nbre_Table »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 24


Modèle étudié
Paramétrage du module « Process »
Glissez un module PROCESS et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !
3- Sélectionnez la priorité « High(1) »
1- Renommez le module pour la prise de commande »
« Prise de commande »

2- Sélectionnez l’action
« Seize Delay Release »

4- Ajoutez une
ressource
« serveur»
Aboueljinane Lina – Cours de simulation –5-Etude de CaslaN°durée
Spécifiez 1 de prise de commande (TRIA (3,5,7) 25
Modèle étudié
Paramétrage du module « Process »
Glissez un module PROCESS et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !
1- Renommez le module
« Préparation de commande »

2- Sélectionnez l’action « Delay »


3- Spécifiez la durée de préparation
de commande (UNIF (15,20)

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 26


Modèle étudié
Paramétrage du module « Process »
Glissez un module PROCESS et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !
1- Renommez le module
« Service Repas »

2- Sélectionnez l’action « Seize Delay Release »

3- Ajoutez une
ressource
« serveur»

4- Spécifiez la durée pour servir le repas (TRIA (2,3,4)


Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 27
Modèle étudié
Paramétrage du module « Process »
Glissez un module PROCESS et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !

1- Renommez le module
« Repas»

2- Sélectionnez
l’action « Delay »

5- Spécifiez la durée du repas


(NORM (60,10)

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 28


Modèle étudié
Paramétrage du module « Process »
Glissez un module PROCESS et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !
2- Sélectionnez l’action « Seize Delay Release »
1- Renommez le module
« Process paiement»

3- Ajoutez une
ressource
« serveur»

4- Spécifiez la durée du paiement


(UNIF (1.5,3)

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 29


Modèle étudié
Paramétrage du module « Release »
Glissez un module RELEASE et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !

1- Renommez le module
« Libération de table»

2- Ajoutez la ressource
« Table » dans le nombre ou
elle a été réservée par le
groupe (attribut
« Nbre_Table »)

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 30


Modèle étudié
Paramétrage du module « Dispose »
Glissez un module DISPOSE et Double-cliquez dessus pour ouvrir la boîte de dialogue de ses propriétés !

1- Renommez le
module « Sortie
clients servis »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 31


Modèle étudié
Préparation de la simulation
Allez dans l’onglet Run → Settings…→ Setup Onglet → « Replication Parameters »

2- Précisez la durée 1- Changez le


de chaque nombre de
réplication à 12 réplications à 5 (5
heures de jours de simulation
fonctionnement par du restaurant)
jour (de 11h à 23h)

3- Changez l’unité
de base du modèle à
« minutes »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 32


Modèle étudié
Résultats du modèle

Journée Le nombre de L’attente Le taux Le taux


groupes totale des d’occupation d’occupation
perdus groupes des serveurs des tables
1
2
3
4
5
Moyenne
(𝑿 𝟓 )
Demi-largeur
d’IC à 95%
𝑺(𝟓)𝟐
(𝒕𝟒,𝟎.𝟗𝟕𝟓 )
𝟏𝟎

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 33


Modèle étudié
Résultats du modèle
Rapport « User Specified » Rapport « Resources »

Journée Le nombre de L’attente Le taux Le taux


groupes totale des d’occupation d’occupation
perdus groupes des serveurs des tables
1 36 22.70 80.42% 82.29%
2 31 16.96 78.28% 74.23%
3 56 23.33 73.74% 76.62%
4 20 13.32 75.65% 73.72%
5 64 26.66 71.96% 78.20%
Moyenne 41.4 20.60 76.01% 77.01%
(𝑿 𝟓 )
Rapport
Demi-largeur 22.55 6.65 4% 4%
« Category
d’IC à 95% Overview »
𝑺(𝟓)𝟐
(𝒕𝟒,𝟎.𝟗𝟕𝟓 )
𝟏𝟎

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 34


Modèle étudié
Résultats du modèle
L’estimateur sans biais du nombre moyen de clients perdus est: 𝑿 𝟓 = 41.4
1. La demi largeur de l’intervalle de confiance du nombre moyen de clients à
𝟏𝟖,𝟏𝟔
95% : 𝟐, 𝟕𝟕𝟔 = 𝟐𝟐, 𝟓𝟓 (représente une erreur de 54,5% par rapport à
𝟓
l’estimateur 𝑋 5 )
2. Pour obtenir une demi largeur h=10
▪ Première approximation (imprécise car n0<30):
𝟐 𝑺 𝒏𝟎 𝟐 2
𝟏𝟖, 𝟏𝟔𝟐
𝒏 ≅ 𝒛𝟏−𝜶 𝟐
= 𝟏, 𝟗𝟔 𝟐
= 𝟏𝟐, 𝟔𝟕
𝟐 𝒉 𝟏𝟎
▪ Deuxième approximation:
𝒉𝟐𝟎 𝟐𝟐, 𝟓𝟓𝟐
𝒏 ≅ 𝒏𝟎 𝟐 = 𝟓 = 𝟐𝟓, 𝟒𝟐
𝒉 𝟏𝟎𝟐

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 35


Comparer plusieurs
alternatives: le Process
Analyzer (PAN)

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 36


Scenarios de la simulation

Nous allons maintenant comparer plusieurs scénarios sur 20 réplications:


▪ Scénario initial: Aucune table additionnelle
▪ Scénario 1: Ajout de 20 Tables de 2
▪ Scénario 2: Ajout de 10 Tables et 10 serveurs dans la tranche 11h-12h30
▪ Scénario 3: Ajout de 10 Tables et 10 serveurs dans la tranche 12h30-14h
▪ Scénario 4: Ajout de 10 Tables et 10 serveurs dans la tranche 14h-18h
▪ Scénario 5: Ajout de de 10 Tables et 10 serveurs dans la tranche 18h-23h

Les Outputs à analyser (KPI):


▪ Le nombre de groupes perdus
▪ L’attente totale des groupes

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 37


Process Analyzer (PAN)
Ouverture du PAN

▪ Le PAN permet d’évaluer et de comparer au sens


statistique différents scénarios par rapport à des mesures
de performance prédéfinies , de manière plus facile et plus
rapide que de faire les changements des scenarios « à la
main » à partir d’un scenario initial puis de les exécuter un
par un.
▪ Le PAN peut être ouvert à partir du menu démarrer de Windows (Start
Menu\Programs\Rockwell Software\Arena), ou à partir de
l’onglet « Tools » ->Process Analyzer

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 38


Process Analyzer (PAN)
Projet PAN

▪ Créer un nouveau projet PAN via Fichier/Nouveau (ou Ctrl+N ou )


▪ Un projet PAN est un ensemble de scenarios qui peut être sauvegardé en tant
que fichier PAN (extension .pan)
▪ Un scenario pour le PAN est une combinaison de:
✓ Un fichier programme (extension .p) généré après l’exécution ou juste la
vérification(Run/Vérification du modèle ou F4) d’un modèle sur ARENA
✓ Un ensemble de valeurs pour des données d’entrée (variables, capacité
des ressources) appelées controls qui sont sélectionnés
✓ Un ensemble d’outputs ( variables système ou définies par l’utilisateur)
appelés responses qui sont sélectionnés
✓ Un nom descriptif pour le scénario
▪ Pour une utilisation efficiente du PAN, pensez en amont de la modélisation à
définir les bonnes variables (ou les capacités de ressources) pour qu’elles
puissent être des controls dans un scenario PAN

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 39


Process Analyzer (PAN)
Ajout de nouveaux serveurs

1- Cliquez sur «Variable»


dans « Data Definition » et
ajoutez quatre nouvelles
variables:
« nouveau_serveur 1/2/3/4 »
pour les quatre tranches
horaire, initialisées à zero

2- Cliquez sur «Schedule»


dans « Data Definition »
pour éditer le
schedule_serveur pour les
quatre tranches en y
ajoutant la variable
« nouveau_serveur
1/2/3/4 »
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 40
Process Analyzer (PAN)
Définition d’un scénario PAN: Propriétés

▪ Double cliquez là où c’est indiqué pour ajouter


une nouvelle ligne de scénario au projet
▪ Dans la boite de dialogue des propriétés du
scénario qui s’affiche, vous pouvez indiquer:
✓ Name: Le nom du scénario (Scenario
Initial)
✓ Text Tip Text: une description du scénario
(Pas d’ajout de ressource)
✓ Program File: Le fichier .p associé au
scénario (Scenario initial.p ). Utilisez le
bouton Browse.. pour naviguer au fichier
désiré.

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 41


Process Analyzer (PAN)
Définition d’un scénario PAN: Sélection des controls

▪ Pour sélectionner les contrôles du scénario,


cliquez-droit sur sa ligne et sélectionnez
Insert Control
▪ Une fenêtre contenant un arbre de contrôles
possibles s’affiche parmi les catégories:
capacités de ressources, variables système et
variables définies pas l’utilisateur
▪ Cliquez sur le signe + pour afficher toutes
les entrées de chaque catégorie, et double
cliquez sur une entrée pour la sélectionner et
l’afficher dans une colonne « controls ». Sa
valeur par défaut est celle définie dans le
modèle. Vous pouvez la changer simplement
en l’éditant directement dans la ligne du
scénario

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 42


Process Analyzer (PAN)
Définition d’un scénario PAN: Sélection des responses

▪ Pour sélectionner les réponses du scénario,


cliquez-droit sur sa ligne et sélectionnez
Insert response
▪ Une fenêtre contenant un arbre de réponses
possibles s’affiche parmi les catégories:
output système ou définis pas l’utilisateur
▪ Cliquez sur le signe + pour afficher toutes
les entrées de chaque catégorie, et double
cliquez sur une entrée pour la sélectionner et
l’afficher dans une colonne « responses » .
La valeur de la réponse est vide puisque le
scénario n’a pas encore été exécuté

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 43


Process Analyzer (PAN)
Définition les cinq autres scénarios

▪ Pour ajouter d’autres scénarios, vous pouvez répéter le processus de


définition du scenario initial précédant
▪ Si les scenarios à ajouter sont similaires à un scénario précédemment
défini, vous pouvez le dupliquer (cliquez-droit sur le numéro de scénario à
gauche et sélectionnez « Dupliquer scenario(s)». Vous pouvez ensuite
juste éditer la valeur des contrôles que vous désirez

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 44


Process Analyzer (PAN)
Lancement de l’exécution des scenarios

▪ Pour exécuter tout ou une partie des


scénarios, sélectionner leur ligne en
cliquant le numéro de scénario (colonne
la plus à gauche de chaque ligne)
▪ Sélectionnez Run/Go… (ou F5 ou le
bouton )

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 45


Process Analyzer (PAN)
Résultat des scenarios

▪ La colonne « Responses » donne la moyenne des indicateurs sur vingt


réplications
▪ Cette colonne montre que la meilleure alternative serait d’ajouter 10 tables et
d’embaucher des serveurs dans la tranche horaire 11h-12h30 car elle permet
d’obtenir le temps d’attente le plus bas tout en minimisant le nombre de
groupes perdus

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 46


Process Analyzer (PAN)
Validité statistique des résultats

▪Sélectionnez la colonne « groupes perdus » (la


variable d’interêt)
▪Cliquez droit et sélectionnez « Insertion d’un
graphique… »
▪Sélectionnez le type de graphique « Box and
Whisker », puis suivant
▪Sélectionnez « Groupes perdus » sous « Utilise
ces réponses »
▪Acceptez les options par défaut de la 3eme
fenêtre,
▪Dans la 4eme fenêtre, cochez « Identifier les
Les scenarios dont le nombre de clients meilleurs scenarios » puis « Le plus petit est
perdus est significativement plus bas que meilleur ». Entrez 0 comme tolérance d’erreur
les autres (en bleu) avec un niveau de
confiance 95%
Aboueljinane pour– pouvoir
Remarque:Lina Cours deinsérer
simulation – Etude deilCas
un graphique, fautN°que
1 le nombre de réplications corresponde au fichier .p 47
Chercher le scenario
optimal avec OptQuest

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 48


Optimisation par simulation

Si on a un budget à allouer librement à des ressources supplémentaires


quelconques, comment trouver le scénario « optimal » qui pourrait
minimiser le coût total parmi tous les scénarios possibles?

Optimisation par simulation = Coupler la simulation à des


méthodes analytiques
Introduction de la solution analytique dans le
modèle de simulation pour évaluation

Exemple:
-Programmation linéaire Optimiseur Simulation
-Programmation non- (Solutions optimales ou proche (Capacité de modélisation de
linéaire optimales complexité)
-Heuristiques
-Métamodèles
….
Actualisation des paramètres d’entrée
par les résultats de simulation

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 49


Formulation d’un problème d’optimisation par simulation

min 𝑓 𝜃 = 𝐸 𝐿 𝜃, 𝜔
𝜃𝜖

s.c
𝑔𝑖 𝜃 ≤ 0 i=1……n

•  vecteur de variables de décision dans un espace de solutions  (ex: nombre de


ressources….)
•  représente le caractère aléatoire du système de simulation (représenté par les
réplications du modèle)
• L(,) est la performance obtenue à partir des résultats de la simulation (ex: coût des
ressources….)
• f() est un estimateur sans biais de la performance
• 𝑔𝑖 𝜃 contraintes du problème (optionnelles) représentées par des relations linéaires ou
non-linéaires entre les variables de décision (ex: bornes inférieures et supérieurs des
variables de décision….)
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 50
OptQuest pour ARENA

OptQuest est l’optimiseur intégré dans ARENA qui utilise une


combinaison de plusieurs algorithmes (recherche dispersée, recherche
tabou, réseau de neurones…) pour parcourir « intelligemment »
l’espace des contrôles (données d’entrée) et essayer de converger
rapidement et de manière fiable vers une solution optimale ou proche
optimale (résoudre le problème d’optimisation par la simulation)

PAN= compare des scenarios définis par l’utilisateur



OptQuest = décide des scenarios à considérer de manière itérative

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 51


OptQuest pour ARENA
Problème posé

Une table coute 400dhs/ jour et un serveur coute 100dhs/h.


Utilisez OptQuest pour déterminer l’investissement optimal de
tables à ajouter et de serveurs à ajouter par tranches horaires
(11h-12h30, 12h30-14h, 14h-18h,18h-23h) afin de garantir
moins de 20 clients perdus et moins de 10 minutes d’attente au
global

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 52


OptQuest pour ARENA
Ajout de l’output « coût des ressources »

1- Cliquez sur «Statistic »


dans « Advanced Process »

2- Insérez une statistique « Cout_ressource »de type « Output » et entrez son


expression « (37 + 1.5*Nouveau_serveur1 + 1.5*Nouveau_serveur2
+4*Nouveau_serveur3 + 5*Nouveau_serveur4)*100+MR(Table)*400 ».
La fonction MR renvoie la capacité d’une ressource.
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 53
OptQuest pour ARENA
Définition du problème d’optimisation sur OptQuest

Contrôles
▪ Variables de simulation ou des ressources dont la manipulation affecte significativement les
performances du système
▪ Outre les valeurs inférieure et supérieure des contrôles, OptQuest nécessite la spécification de valeurs
suggérées utilisées comment points de départ du processus d’optimisation

Réponses
▪ Statistiques collectées par le modèle de simulation qui reflètent le changement de valeurs des contrôles

Objectif
▪ Expression (fonction des contrôles et des réponses) à maximiser ou minimiser par le modèle

Contraintes (Optionnelles)
▪ Relations linéaires ou non-linéaires entre les contrôles et/ ou les réponses à respecter par le modèle

Options d’optimisation
▪ Critère d’arrêt(exemple: après un nombre fixé de simulations, aucune amélioration significative après
100 simulations…)
▪ Nombre de réplications par simulation: peut être fixe ou variable (compris entre un nombre minimum et
maximum)

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 54


OptQuest pour ARENA
Ouverture d’OptQuest

1. Pour exécuter OptQuest, dans la fenêtre active du


modèle ARENA, allez dans Outils/OptQuest pour
Arena

2. Dans la fenêtre « New Project »,


sélectionnez « OptQuest Optimization »

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 55


OptQuest pour ARENA
Définition des contrôles

1. Sélectionnez les contrôles: Table, Nouveau_serveur1 , Nouveau_serveur2 ,


Nouveau_serveur3 , Nouveau_serveur4, puis cliquez sur le label « Included » pour trier
les contrôles sélectionnés vers le haut
2. Changez les valeurs inférieures, supérieures et suggérées de ces contrôles comme indiqué
ci-haut
3. Assurez vous que tous les contrôles soient de type « discret » et que le « step » soit égal à
1 (correspond à l’incrément par lequel OptQuest change les contrôles )
Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 56
OptQuest pour ARENA
Définition des réponses

1. Sélectionnez les réponses: Attente serveur, Cout_ressource et


Groupes_perdus, puis cliquez sur le label « Included » pour trier
les réponses sélectionnés vers le haut

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 57


OptQuest pour ARENA
Définition des contraintes
Contrainte 1 de notre modèle: garantir moins de 20 clients perdus!!!

2. Renommez la contrainte «
Clients perdus »

1. Glissez l’objet
« Constraint »
dans
l’explorateur…

3. Double-cliquez sur
l’expression de la
contrainte, puis entrez son
expression dans la fenêtre
qui s’affiche

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 58


OptQuest pour ARENA
Définition des contraintes
Contrainte 2 de notre modèle: Garantir moins de 10 minutes d’attente au global
2. Renommez la contrainte
« Attente »

1. Glissez l’objet
« Constraint »
dans
l’explorateur…

3. Double-cliquez sur
l’expression de la
contrainte, puis entrez son
expression dans la fenêtre
qui s’affiche

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 59


OptQuest pour ARENA
Définition de l’objectif
L’objectif du modèle est de minimiser le coût des ressources!!!
3. Selectionnez le goal
2. Renommez l’objectif « Minimize »
« coût des ressources »

1. Glissez l’objet
« Objective »
dans
l’explorateur…

3. Double-cliquez sur
l’expression de l’objectif,
puis entrez son expression
dans la fenêtre qui
s’affiche

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 60


OptQuest pour ARENA
Définition des options

1. Sélectionnez
l’optimisation
pour afficher ses
propriétés
2. Choisir un
nombre
variable de
replications
(entre 5 et 10)

3. Choisir un
nombre limité
de simulations
(400)

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 61


OptQuest pour ARENA
Solution d’OptQuest
Lancez l’execution du modèle en sélectionnant Run/Go ou en cliquant sur

Meilleure solution trouvée à la


simulation 325/400 pour un cout
total de 28 950 dhs

La meilleure solution peut


être obtenue en ajoutant 5
serveurs de 11h à 12h30,
1 serveur de 18h à 23h, et
10 tables

L’optimalité de cette solution


n’est pas garantie car le
nombre de simulation est
limité
Mais ça donne généralement
de meilleures solutions que le
tâtonnement:

Aboueljinane Lina – Cours de simulation – Etude de Cas N° 1 62

Vous aimerez peut-être aussi