P. 1
Cours Simulation

Cours Simulation

|Views: 129|Likes:
Publié parMouadh Dimassi

More info:

Published by: Mouadh Dimassi on Mar 11, 2012
Droits d'auteur :Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/29/2012

pdf

text

original

Sections

  • I.1 L’ÉTAPE DE MODÉLISATION
  • I.2 LES LIMITES DE LA SIMULATION
  • II.1 OUTILS DE MODÉLISATION
  • II.2 APPLICATION AUX SYSTÈMES DE PRODUCTION
  • II.3 UTILISATION DE L’INFORMATIQUE
  • III.1 VARIABLES ALÉATOIRES CONTINUES
  • III.2 LOIS DE DISTRIBUTION STANDARD
  • III.3 VARIABLES ALÉATOIRES DISCRÈTES
  • IV.1 CONNAISSANCE PARTIELLE DES DONNÉES
  • IV.2 DONNÉES EXISTANTES (accessibles à la mesure)
  • V.1 VÉRIFICATION
  • V.2 VALIDATION
  • VI.1 ANALYSE DES SYSTÈMES FINIS
  • VI.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS
  • VII.1 GÉNÉRALITÉS
  • VII.2 GRAPHES D'ÉVÉNEMENTS
  • VII.3 EXEMPLES
  • VII.4 AUTRES CLASSES DE RÉSEAUX DE PETRI
  • VIII.1 NOTIONS DE BASE
  • VIII.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA CONSTRUCTION D’UN MODÈLE
  • VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT L’ANALYSE D’UN MODÈLE
  • VIII.4 ANIMATION GRAPHIQUE
  • VIII.5 DONNÉES D'ENTRÉES
  • VIII.6 ANALYSE DES RÉSULTATS

S SI IM MU UL LA AT TI IO ON N

S SY YS ST TÈ ÈM ME ES S D DE E P PR RO OD DU UC CT TI IO ON N
R RÉ ÉS SE EA AU UX X D DE E P PE ET TR RI I
S SI IM MA AN N - - A AR RE EN NA A


Jean-Louis Boimond
Plan
I Introduction à la simulation
I.1 L’étape de modélisation
I.2 Les limites de la simulation
II La simulation des systèmes de production
II.1 Outils de modélisation
II.2 Application aux systèmes de production
II.3 Utilisation de l'informatique
III Rappels de probabilités et statistiques
III.1 Variables aléatoires continues
III.2 Lois de distribution standard
III.3 Variables aléatoires discrètes
IV Données d'entrée du système
IV.1 Connaissance partielle des données
IV.2 Données existantes (accessibles à la mesure)
V Vérification et validation des modèles
V.1 Vérification
V.2 Validation
VI Interprétation des résultats
VI.1 Analyse des systèmes finis
VI.2 Analyses des systèmes qui ne se terminent pas
VII Notions élémentaires sur les réseaux de Petri
VII.1 Généralités
VII.2 Graphes d'événements
VII.3 Exemples
VII.4 Autres classes de réseaux de Petri
VIII Le langage de simulation SIMAN-ARENA
VIII.1 Notions de base
VIII.2 Description de quelques blocs permettant la construction d’un modèle
VIII.3 Description de quelques blocs permettant l’analyse d’un modèle
VIII.4 Animation graphique
VIII.5 Données d'entrées
VIII.6 Analyse des résultats
1

Annexe : Utilisation des templates Elements et Blocks


Bibliographie
Introduction to Simulation Using SIMAN. Second Edition, C. Dennis Pegden, R.E. Shannon, R.P.
Sadowski, Ed. Mc Graw-Hill.
Handbook of Simulation: Principles, Methodology, Advances, Applications, and Practice, J. Bank , Wiley
Interscience, 1998.
Discrete Event Systems - Modeling and Performance Analysis, Christos G. Cassandras, Aksen Associates
Incorporated Publishers, ISBN 0-256-11212-6.
Optimisation des flux de production : Méthodes et simulation, A. Ait Hssain, Ed. Dunod, 2000.
Probabilités et statistiques. 3ème édition, A. Ruegg, Presses Polytechniques Romandes.
Du Grafcet aux réseaux de Petri. R. David, H. Alla, Hermès, 1989.
Cours de « Simulation des systèmes de production », A. Ait Hssain, Ed. 96/97 - INSA Lyon.
Cours de « Simulation », N. Mebarki, 97/98 - IUT OGP Nantes.
Cours de « Simulation informatique des systèmes de production », P. Castagna, A. L'Anton, N. Mebarki,
97/98 - IUT OGP Nantes.
Cours de « Réseaux de files d'attente et simulation », J. P. Chemla, 96/97 - Université de Tours.
Cours de « Simulação de Sistemas Dinâmicos », R. Santos Mendes, 02/03 - UNICAMP - Campinas, Brésil
(http://www.dca.fee.unicamp.br/~rafael/).
Dossier de présentation « Arena. La solution simulation », Ouroumoff Diffusion, Lyon.
2
I INTRODUCTION À LA SIMULATION

La simulation est un processus qui consiste à :
- Concevoir un modèle du système (réel) étudié,
- Mener des expérimentations sur ce modèle (et non pas des calculs),
- Interpréter les observations fournies par le déroulement du modèle et formuler des
décisions relatives au système.

Le but peut être de comprendre le comportement dynamique du système, de comparer des
configurations, d’évaluer différentes stratégies de pilotage, d’évaluer et d’optimiser des
performances.

La simulation est une technique, appliquée dans ce cours aux systèmes de production,
permettant d'étudier le comportement d'un système dynamique en construisant un modèle
logiciel de celui-ci.




















Les domaines d'application sont divers. Sont listés ci-dessous quelques classes d’applications
et quelques exemples de problèmes typiques rattachés à ces classes :
Systèmes de flux de production
- équilibrage de lignes d’assemblage,
- conception de systèmes de transfert entre des postes,
- dimensionnement des stocks d’un atelier,
- comparaison de pilotage,
- évaluation de la charge prévisionnelle,
- étude de la synchronisation entre les réceptions des pièces et l’assemblage.
Flux logistiques et systèmes de transport
- conception et dimensionnement d’entrepôts,
Calendrier
SCHEDULES
CREATE
Operateur
SEIZE
10
DELAY
DISPOSE
Date de sortie
VARIABLES
Date de sortie
ASSIGN
NR(Machine)
NR(Operateur)
DSTATS
Operateur
RELEASE
1
DELAY
1
DELAY
Modélisation Analyse des
résultats
3
- dimensionnement d’une flotte de camions,
- étude de procédures de contrôle des flux de véhicules en circulation.
Production des services
- étude de transactions bancaires,
- gestion de restaurants,
- comparaisons de politiques de maintenance des avions.
Systèmes informatiques et télécommunications
- évaluation de protocoles de gestion des transactions de bases de données,
- étude de la file d’attente mémoire d’un serveur,
- étude des comportements des utilisateurs,
- conception et dimensionnement de hubs (« moyeu »).
Autres classes d’applications
- domaine militaire (support logistique, coordination des opérations, …),
- gestion d’hôpitaux (personnel, lits, service d’urgence, …),
- le nucléaire, la météo, les jeux, ...

Méthodologie générale

On distingue classiquement quatre phases distinctes : La modélisation (représenter le
comportement du système), la programmation, l'expérimentation et l'interprétation des
résultats (accompagnée d’actions).
















(a) Modèle conceptuel : Le modèle n'est qu'une approximation du système, il est conditionné
par l'objectif de l'étude.
(b) Expérimentation : Il s'agit de construire des théories, ou hypothèses, qui prennent en
compte le comportement observé.


Le passage du système au modèle conceptuel est une étape essentielle pour la simulation.
Dans le cadre de ce cours, on utilise une modélisation conceptuelle par réseaux de Petri (cf.
chp. VII). Le passage du modèle conceptuel au modèle/programme de simulation se fait en
utilisant le langage Siman-Arean ; ce langage de simulation permet également d’extraire des
résultats issus de différentes expérimentations (cf. chp. VIII).
Figure 1 : Méthodologie d'une simulation.
Résultats
Modèle conceptuel
(a)

Programme de
simulation
Analyse & Modélisation
Interprétation
& Action
Correction
Correction
Vérification
Programmation
Expérimentation
(b)

Validation
Système (réel)
4


I.1 L’ÉTAPE DE MODÉLISATION

L’étape de modélisation est une phase essentielle à la simulation. Différents points doivent
être abordés :
• Définir l'objectif de la modélisation (lié au cahier des charges) : Pourquoi modélise-t-on ?
Qu'étudie-t-on ? Que veut-on améliorer, ou faire ?
• Définir les éléments du système (via la réalisation d'une fonction, ou d'un processus) et les
limites du système (les entrées, les sorties).
• Définir les interactions entre ces éléments (hiérarchie).
• Définir la dynamique du système (entités qui circulent entre les éléments, comportement du
système au cours du temps).
• Abstraction (choisir les éléments du système pertinents pour l'étude).
• Formalisation, conceptualisation : Modèle mathématique (algèbre (max, +), chaînes de
Markov), modèle logiciel (Simulink, Siman-Arena), modèle graphique (réseaux de Petri,
bond graphs).


I.2 LES LIMITES DE LA SIMULATION

Certaines limites sont dues à la technique elle-même, d'autres sont dues aux produits
actuellement disponibles sur le marché (notons qu’une formation sur les logiciels utilisés est
souvent nécessaire) :
• La programmation demande un certain niveau d'expertise. La qualité des résultats fournis
lors de l'analyse des solutions est liée à la qualité de la modélisation et au savoir-faire du
« modélisateur » (la modélisation est un métier).
• La simulation n'est pas une technique d'optimisation au sens propre. Elle ne peut qu'établir
les performances d'une solution conçue et imaginée par l'utilisateur. C'est une technique
entièrement itérative qui ne propose pas de solution finale mais qui permet seulement à
l'utilisateur d'envisager des choix possibles. En tout état de cause, c'est lui qui devra décider
de ce qui répond le mieux aux problèmes posés.

La difficulté liée à la simulation est double :
• Les résultats de simulation sont souvent complexes à interpréter. On étudie des
phénomènes aléatoires et les techniques d'analyse demandent de la rigueur ; il est souvent
difficile de faire la part du crucial et de l'anecdotique (le modèle doit être ni trop grossier,
ni trop précis).
• Souvent pour des raisons financières, on doit aller au plus vite vers une solution finale
(sans passer trop de temps à explorer d’autres solutions intermédiaires).
5
II LA SIMULATION DES SYSTÈMES DE PRODUCTION


Les systèmes automatisés de production - à l'initiative de l'Homme - sont caractérisés
par une forte complexité et flexibilité. Selon un certain point de vue, ils peuvent être spécifiés
par des modèles à événements discrets (un modèle est à événements discrets lorsque l’espace
d'état est à événements discrets, i.e., les transitions entre états sont associées à l'occurrence
d'événements discrets asynchrones). Les systèmes de trafic (aérien, ferroviaire, …), les
systèmes de communication, les systèmes informatiques sont d'autres exemples de systèmes
dynamiques dont l'activité est due à des événements discrets, dont certains sont provoqués
(départ d’un train, appui sur une touche d'un clavier) et d'autres pas (panne d'un équipement).







Un système de production est constitué d'un système opérant (physique), d'un système de
conduite (partie commande) et d'un système d'informations reliant ces deux derniers. Il est
traversé par un flux d'informations (présence d'une pièce, état d'une machine) et un flux
physique (matière première, pièces). Le système à étudier peut être existant, à modifier ou non
encore construit.

Le modèle décrit le fonctionnement du système (sa structure et son comportement dynamique)
avec le degré de détail nécessaire à la résolution du problème posé. C'est une représentation de
la circulation des flux de produits :
- Le flux est ralenti par des activités qui mobilisent des ressources (après avoir attendu
leur disponibilité) pendant un certain temps (durées opératoires, temps de transfert, ...),
- Le flux est contraint par des règles opératoires (gammes, contraintes technologiques),
- Le flux est dirigé par les règles de conduite (système de contrôle).

L'historique et les statistiques portent sur les déplacements (temps de séjour des pièces, temps
de transports des pièces d'un lieu à un autre, ...), les taux d'engagements des ressources, les
longueurs des files d'attente, ...

L'évaluation de performances
1
, en terme de circulation de produits, exploite ces données
pour :
- Déterminer des performances absolues (temps de cycle maximum, système sans
panne),
- Prédire des performances dans certaines conditions,
- Faire une analyse de sensibilité (parmi des choix semblables),

1
L’évaluation de performances se base souvent sur le temps de cycle (nombre moyen de pièces par unité de
temps), le WIP (Work In Process, nombre total de pièces dans le système à chaque instant), le makespan
(intervalle de temps entre le début et la fin de la production des pièces).
Historique,
statistiques
Evaluation de
performances
Système de
production
Modèle


Programme
6
- Comparer des alternatives (parmi des choix possibles).

La simulation permet de répondre à la question « que se passe-t-il si ... ? » pour l'étude de
systèmes de production complexes (structure, comportement dynamique, taille, choix
multiples).


II.1 OUTILS DE MODÉLISATION

Les systèmes de production font partie des systèmes (dynamiques) à événements discrets
2
.
Parmi les modèles utilisés pour l'étude de ces systèmes, il y a :
- Les réseaux de files d'attente → évaluation analytique de performances,
- Les réseaux de Petri → analyse des propriétés, évaluation de performances,
simulation,
- Les modèles (et programmes) de simulation.

De façon générale, un modèle est composé :
- De variables,
- D'objets (centres de services, clients, ressources) caractérisés par des attributs :
Fixes (i.e., dont la valeur ne change pas au cours du temps, exemple : Type de
pièce),
ou
variables (i.e., dont la valeur change au cours du temps, exemple : Occupation
d’une machine),
- Des relations entre ces objets (services effectués au cours du temps).

Exemple :







Attributs fixes : Pièces A, Pièces B
Attributs variables : Temps de traitement de la machine M1 (t1A, t1B)

L'état du système à un instant donné est caractérisé par l'ensemble des valeurs des variables
et des attributs de tous les objets. Le modèle reproduit l'évolution au cours du temps de l'état
3

du système sous l'effet des activités qui y sont réalisées.

2
Les changements d’état de tels systèmes s’opèrent instantanément, à des moments discrets dans le temps. Par
exemple, si une variable représente le nombre de pièces dans un stock alors ses valeurs varient seulement aux
instants où des pièces entrent, ou sortent, du stock.
3
Dans le cas d’une évolution continue de l’état, le modèle est continu, la description se fait, par exemple, via des
équations différentielles, ou des variables d’état. Dans le cas où les changements d’état s’effectuent,
instantanément, à des instants discrets dans le temps, le modèle est à événements discrets, la description se fait,
Pièces A
Pièces B
M1
M2
M3
t1A
t1B
7

Evolution d'une simulation événementielle : Le modèle du système passe au cours du temps
d'un état à un autre suite au déclenchement d'un événement. A chaque événement est associée
une fonction à exécuter laquelle peut modifier l'état du système à travers le déclenchement
d'un, ou de plusieurs événements.














II.2 APPLICATION AUX SYSTÈMES DE PRODUCTION

1. Pourquoi ?
• Complexité croissante, interactions très fortes entre les différents éléments d'un système de
production : Nécessité d'une approche globale.
• Prise en compte de tous les aspects (données techniques, géométrie du réseau de transport,
capacité des files d'attente, contraintes sociales, travail en équipe, heures supplémentaires).

2. Indicateurs de performances et prise de décision
A partir de l'historique de circulation des flux de produits, on obtient des valeurs des
indicateurs de performances liés au volume de production, à l'engagement des ressources et
éventuellement à la satisfaction du client.

- Volume de production :
- Nombre et type de pièces produites,
- Nombre et type de pièces défectueuses, ...

- Engagement des ressources :
- Taux d'utilisations : Machines, outils, personnel, stock, ...,
- Temps passé par un élément dans un état : Ressources, machines (en fonctionnement,
inoccupées, en panne), cycle de pièce, ...

Ces indicateurs de performances sont ensuite agrégés pour des prises de décisions relatives à
l'aide à la conception, à la conduite, ...

par exemple, à l’aide d’un réseau de Petri. Certains problèmes nécessitent des modèles dits hybrides, où
apparaissent conjointement des comportements continus et des comportements dus à des événements discrets.
Événement X
Événement C
Événement B
Événement A
Événements
datables

Échéancier

Moteur
Exécution de
l’événement
dont la date
d’occurrence
est la plus
proche
8
3. A quel niveau ?

a) La simulation : une aide à la conduite

















Le système présente un problème (il ne répond plus aux besoins des utilisateurs).
Bien mettre en évidence les dysfonctionnements par rapport aux besoins et proposer des
solutions permettant de pallier à ces dysfonctionnements au moindre coût.
• Définir les performances à mesurer.
• Déterminer les ressources goulets (machines, stocks, moyens de manutention,
personnel, ...) qui agissent le plus sur les performances, et pour un scénario de production
donnée.
On peut chercher à améliorer le système, soit en agissant sur la capacité des ressources, soit
sur la manière dont on utilise ces ressources (règles de gestion).

Les données à utiliser (recueil non exhaustif) :
- Produits (type, gamme),
- Moyens de production (capacité des machines, coût, taux rebut, disponibilité),
- Systèmes de transfert (nature, caractéristiques),
- Caractéristiques des automates (règles de commande),
- Stocks (nature, capacité, gestion),
- Opérateurs (qualification, nombre, horaires),
- Stratégie(s) de gestion de production,
- Règles de fonctionnement (mode nominal ou dégradé).
Système de
commande
Système
physique
Réalité
Modèle de
commande
Modèle du
système
physique
Simulation
Paramétrage automatique
Proposition
de décisions
Résultats
Décision
9
b) La simulation : une aide à la traçabilité (implicite/explicite)
























L'objectif est de concevoir, développer un système de traçabilité.
Bien mettre en évidence les entités à identifier, recenser le contenu de l'historique des produits
et du (des) processus, définir les informations éventuellement utilisées dans le système de
commande.
Le système de traçabilité devant être adapté à sa structure, conforme à l'attente de
l'environnement et en accord avec les standards et les règlements.

On peut chercher à synthétiser un système de traçabilité qui soit fiable (le reflet de la réalité)
et robuste (l'outil de simulation permettant la prise en compte de différents scenarii possibles,
ceci sans risque pour le système (réel)).

Les données à utiliser (recueil non exhaustif) concernent l'ensemble de l'état (dynamique) du
système piloté dans le but « de retrouver l'historique, l'utilisation ou la localisation d'un article
ou d'une activité, au moyen d'une identification enregistrée (1994, ISO 8402) » :
- Produits, articles, lots (entités),
- Moyens de production (capacité des machines),
- Stocks, systèmes de transfert (état),
- Opérateurs (qualification, nombre, horaires),
- Système d'identification,
- Structure de traitement des données recueillies.
Réalité
Simulation
Système de
commande
Système de
traçabilité
Modèle de
commande
Historique
(produits,
processus)
Proposition
de décisions
Résultats Décisions
Système
physique
Modèle du
système
physique
Identification
Identification
Historique
(produits,
processus)
Modèle de
traçabilité
Identification
Identification
10
c) La simulation pour définir un futur système














Aide à la décision d'investissement :
Choix technologiques et organisationnels : Equipements, stratégies de gestion de production
(gestion des stocks, taille des lots, seuils de réapprovisionnement, nombre de Kanban),
organisation du travail (cellules, lignes, mixte), choix de gamme.
Evaluation des différents scénarii en fonction des critères les plus pertinents.

Exemples d'applications :
• Dimensionnement d'ateliers : Nombre et type des équipements (en fonction du coût),
capacité des stocks, nature du système de transport
• Choix de production (étude de rentabilité)


II.3 UTILISATION DE L’INFORMATIQUE

On a trois alternatives :

1. Ecrire le programme correspondant au problème et au système donnés. Les moyens
informatiques sont les langages de programmation généraux (C, Fortran, Pascal, ...). La mise
en œuvre peut être longue, par contre on dispose d’une grande flexibilité.

2. Utiliser un logiciel, appelé simulateur, dédié à un type de systèmes et un type de problème.
Le modèle est donné et il suffit de le paramétrer pour l'adapter au cas étudié. Cette alternative
présente l’avantage de ne pas programmer (seules des données sont à entrer), par contre il
n’est pas toujours simple de trouver le logiciel dédié adapté au système et au problème
concernés.

3. Le développement d'un modèle de simulation est réalisé au travers d'un programme écrit par
l'utilisateur à partir de primitives de modélisation offertes par le langage (les langages de
simulation). Ce type de logiciel offre une grande flexibilité mais avec des coûts de
développement parfois importants. Certains langages, comme SIMAN, proposent des
primitives de modélisation particulièrement adaptées aux systèmes de production (primitives
de modélisation des ressources et fonction de transport). SIMAN est un des principaux
logiciels standards en France (version éducative à prix étudié).
Système de
commande
Système
physique
Conception
du système
Implémentation
Modèle de
commande
Modèle du
système
physique
Simulation Réalité
11
III RAPPELS DE PROBABILITÉS ET STATISTIQUES



Sachant qu'il est impossible – quelque soit la puissance des ordinateurs - de simuler
toutes les déviations possibles d'un système, l'outil statistique est une alternative pour prendre
en compte, étudier et maîtriser les conséquences des variations aléatoires des systèmes.

La théorie des probabilités, branche des mathématiques, permet de modéliser et d'étudier des
phénomènes aléatoires. On parle alors d'événements aléatoires, de lois de probabilité, de
variables aléatoires, ...

Dans un système de production, de nombreux phénomènes ont un caractère aléatoire, par
exemple :
- La durée opératoire d'une opération manuelle,
- La durée de vie d'un outil,
- L'absentéisme des opérateurs,
- La période d'arrivée des ordres de fabrication déclenchant une production.

La statistique repose sur l'observation de phénomènes concrets. Le but est de recueillir des
données d'observation, de les traiter et de les interpréter. On parle alors de population
d'individus, de variables caractéristiques, d'échantillons, de moyennes, ...
Les modèles probabilistes permettent de représenter approximativement les données
observées (imprécision, erreurs, répartition dans la population) comme des variables aléatoires
suivant une certaine loi de probabilité → modèles simplificateurs.

L'échantillon étant tiré au hasard, les caractéristiques des données à traiter sont des variables
aléatoires → application de théorèmes de probabilités (par exemple, le théorème centrale
limite
4
).

La statistique exploratoire ou descriptive (analyse de données) permet de structurer, de
résumer l'information contenue dans les données.
→ Méthodes de classification des individus en groupes homogènes ;
→ Méthodes factorielles (analyse en composantes principales, analyse des
correspondances) résumant les variables par des composantes synthétiques.
La prévision statistique permet de trouver une relation entre une variable et plusieurs variables
→ régression linéaire.
La statistique inférentielle
5
permet notamment :
- L'estimation de moyennes,
- Le test (ou la vérification) d'hypothèses.

4
La moyenne d'un échantillon de taille n extrait d'une population quelconque de moyenne µ et d'écart type σ est
distribuée selon une loi pratiquement normale de moyenne µ et d'écart type
n
σ
quand la taille de l'échantillon
est suffisamment grande. Pour une population de départ de distribution normale, le théorème centrale limite est
valable pour tout n. Pour les distributions rencontrées dans la pratique courante, plus la taille de l'échantillon est
grande, plus la loi se rapproche de la loi normale. On peut considérer qu'à partir de n égale à 30, la moyenne d'un
échantillon est distribuée de façon sensiblement normale.
5
Inférence : Opération intellectuelle par laquelle on passe d'une vérité (une proposition) à une autre vérité
(proposition), jugée telle en raison de son lien avec la première : La déduction est une inférence.
12

La simulation utilise les résultats des probabilités-statistiques essentiellement pour :
- Approcher des données empiriques par des distributions de probabilités
→ des fonctions intégrées dans le modèle de simulation (lois de
distributions),
- Interpréter statistiquement les données générées par le modèle
→ moyennes, intervalles de confiance, ...

Définition de la probabilité

On considère l'ensemble E des éventualités possibles résultant d'une épreuve (expérience,
observation ou simulation), chacune de ces éventualités étant appelée événement élémentaire.
Un événement quelconque est défini comme un sous-ensemble A de E contenant tous les
événements élémentaires de E composant l'événement A. La probabilité attachée à un
événement A est un nombre P(A) compris entre 0 et 1, obéissant à certaines règles
axiomatiques, en particulier :
- L'événement de l'ensemble vide a une probabilité nulle.
- L'événement E a une probabilité égale à 1.
- E A ⊆ ∀ , on a 1 ) ( 0 ≤ ≤ A P .
- E B A ⊆ ∀ , , on a ) ( ) ( ) ( B P A P B A P + = ∪ si = ∩B A ∅.

Le problème de l'attribution de probabilités à un ensemble d'événements peut être résolu dans
un certain nombre de cas de la façon suivante :
- Si les événements élémentaires sont en nombre fini, on peut procéder à une série de
répétitions de l'épreuve : La fréquence d'apparition de chaque événement permet de
disposer d'une estimation de sa probabilité.
- Si les événements sont en nombre infini, on peut définir sur cet ensemble une densité
de répartition de probabilité.


III.1 VARIABLES ALÉATOIRES CONTINUES

Une variable aléatoire continue X est une fonction à valeurs réelles définie sur un
ensemble Ω (ensemble des événements possibles, par exemple : Ω = {pile, face} dans le cas
du lancé d'une pièce de monnaie) telle que l'ensemble des valeurs prises par X, noté X(Ω), est
un intervalle fini ou infini.

Exemple de la loi uniforme continue : Soit X une variable aléatoire susceptible de prendre
toutes les valeurs d'un intervalle fini [ ] b a, , sans privilégier aucune région de [ ] b a, (on parle
d'événements équiprobables). Aussi, la probabilité que X prenne une valeur appartenant à
l'intervalle [ ] v u, ( [ ] b a, ⊂ ) est proportionnelle à la longueur de [ ] v u, , d'où
, ) (
a b
u v
v X u P


= ≤ ≤ soit

= ≤ ≤
v
u
dx x f v X u P ) ( ) (

où ) (x f =
¹
´
¦ ≤ ≤ −
non si
b x a si a b
0
) ( / 1
.
13








La fonction ) (x f , appelée densité de probabilité, définit le comportement aléatoire
(stochastique) de la variable aléatoire X et permet ainsi de caractériser sa loi de probabilité
(distribution).

La loi uniforme (distribution of maximum ignorance) est utilisée lorsque l'on a aucune
information exceptée la connaissance du domaine [ ] b a, .

Remarque : Pour une variable aléatoire continue, considérer un événement du type « X = x »
n'a pas de sens. En effet, on a : 0 ) ( = ≤ ≤ x X x P .

) (x f est une densité de probabilité

¦
¹
¦
´
¦
= =
∈ ∀ ≥

∞ +
∞ −
) 1 ' , . . . ( 1 ) (
0 ) (
certain événement l de é probabilit d a c dx x f
R x x f
.

On définit la moyenne M, aussi appelée espérance mathématique E(X), par :

∞ +
∞ −
= dx x f x M ) ( .

On définit la variance σ
2
( 0
2
≥ σ ), aussi notée Var(X), par :
2 2 2
) ( M dx x f x −
|
¹
|

\
|
=

∞ +
∞ −
σ , encore égale à

∞ +
∞ −
− dx x f M x ) ( ) (
2
.

Rappel (Moyenne, variance) : La moyenne constitue un paramètre de position, qui renseigne
sur l'ordre de grandeur des valeurs prises par la variable aléatoire X. La variance est une
mesure de la dispersion de ces valeurs autour de leur moyenne. Plus la variance est faible
( 0 ≥ ), plus les valeurs prises par X sont concentrées autour de la moyenne.

Exemple : Dans le cas de la loi uniforme précédente, on a :

+
=

=
b
a
b a
dx
a b
x
M
2
et
12
) (
2
2
2
2
2
a b b a
dx
a b
x b
a

= |
¹
|

\
| +


=

σ .

On définit l'écart type (standard deviation) par σ =
2
σ .


La plus grande partie des phénomènes aléatoires rencontrés dans la pratique peut être étudiée
via un nombre restreint de lois de distribution. Nous allons à présent voire les principales lois
de distributions.

1
b a −
f(x)
0
a u v b x
aire = ) ( v X u P ≤ ≤
14


III.2 LOIS DE DISTRIBUTION STANDARD

a) LOI TRIANGULAIRE



¦
¦
¦
¹
¦
¦
¦
´
¦
=
≤ ≤
− −

=
≤ ≤
− −

=
non si x f
b x m si
a b m b
x b
x f
m x a si
a b a m
a x
x f
0 ) (
) )( (
) ( 2
) (
) )( (
) ( 2
) (




[ ]
18
;
3
; ,
2 2 2
2
mb ab am b m a b m a
M b a D
− − − + +
=
+ +
= = σ .

Application : On utilise cette loi lorsqu'on dispose d'une estimation du minimum, du
maximum et de la valeur la plus probable.

Exercice : Soient 3 , 2 , 0 = = = b m a , calculer ) 5 , 2 1 ( ≤ ≤ X P ). Réponse : 0,75.


b) LOI EXPONENTIELLE






¦
¹
¦
´
¦
=
> > =

non si x f
x si e x f
x
0 ) (
) 0 ( 0
1
) (
/
β
β
β








[ [
2 2
; ; , 0 β σ β = = ∞ + = M D .

f(x)
1
β

0
x
2
b a −
a m b x
f(x)
aire = 1
15
Application : Cette loi est souvent utilisée en pratique. Par exemple, dans le cas de temps
séparant les arrivées de 2 « clients » successifs dans l'étude d'un phénomène d'attente, ou dans
le cas d'une durée de bon fonctionnement d'un équipement technique.

La loi exponentielle est la seule loi continue à permettre la prise en compte de phénomènes
sans mémoire. En effet, la probabilité que X soit supérieure, ou égale, à
0
x x + , sachant que X
est supérieure, ou égale, à
0
x , dépend de la valeur de x, et est indépendante de la valeur de
0
x . Autrement dit, on a : ) ( ) (
0 0
x X P x X x x X P ≥ = ≥ + ≥ .
Par exemple, il est souvent admis que la durée de vie T d'un dispositif électronique obéit à une
loi exponentielle. Aussi la probabilité de bon fonctionnement dans un intervalle de temps
[ ] t u u + , , c'est-à-dire ) ( u T u t T P ≥ + ≥ , dépend uniquement de la longueur de cet intervalle,
et non de sa position par rapport à l'axe des temps (on a : ) ( ) ( t T P u T u t T P ≥ = ≥ + ≥ ).

Démonstration : Soient l'événement A correspondant au fait que
0
x X ≥ et l'événement B
correspondant au fait que x x X + ≥
0
. On a

∞ +
= ≥
0
) ( ) (
0
x
dx x f x X P et

∞ +
+
= + ≥
x x
dx x f x x X P
0
) ( ) (
0
.
Aussi ) ( A B P équivaut à ) (
0 0
x X x x X P ≥ + ≥ .
Sachant que : ) ( ) ( ) ( ) ( ) ( B A P B P A B P A P B A P × = × = ∩ (probabilité conditionnelle),
on a
) (
) ( ) (
) (
A P
B A P B P
A B P
×
= .
Sachant que ) ( B A P équivaut à 1 ) (
0 0
= + ≥ ≥ x x X x X P , on a
) (
) (
) (
A P
B P
A B P = .
Ainsi
β
β
β
β
β
β
β
β
β
x
x
x x
x
u
x x
u
x
u
x x
u
e
e
e
e
e
du e
du e
x X P
x x X P
A P
B P
A B P


+

∞ +

∞ +
+

∞ +

∞ +
+

= =
(
(
¸
(

¸


(
(
¸
(

¸


= =

+ ≥
= =


0
0
0
0
0
0
) (
0
0
1
1
) (
) (
) (
) (
) (
qui est fonction de x uniquement (indépendant de
0
x ).


16
c) LOI NORMALE


















] [ ∞ + ∞ − = , D ; moyenne = M ; variance = σ
2
.

Application : Cette loi s'applique dans le cas de processus dont la distribution est symétrique
et pour lesquels la moyenne et l'écart type sont estimés. Exemple : Variations de la longueur
de pièces fabriquées en séries.
Cette loi permet de modéliser une donnée qui est la somme d'un grand nombre de données
aléatoires (théorème central limite).


Rappel : A la place de la densité de probabilité f (x), on peut utiliser la fonction de répartition
F(x) pour caractériser la distribution d'une variable aléatoire X.

On a :

∞ −
= ≤ =
x
du u f x X P x F ) ( ) ( ) ( pour ∞ + < < ∞ − x .

F(x) est une fonction continue, monotone croissante, telle que 0 ) ( = ∞ − F et 1 ) ( = ∞ + F ,
) ( ) (
'
x f x F = . Elle permet de calculer des probabilités de la forme ) ( b X a P ≤ < ) sans
effectuer une intégration (ce qui est le cas en utilisant ) (x f ) ; en effet
) ( ) ( ) ( a F b F b X a P − = ≤ < .


III.3 VARIABLES ALÉATOIRES DISCRÈTES

Une variable aléatoire est discrète si elle ne peut prendre qu'un nombre fini de valeurs. Pour
chaque valeur
i
x , on associe la probabilité ) (
i
x p d'apparition de cette valeur.
Pour N valeurs, l'ensemble des probabilités associées est tel que :

f(x) =
2 2
2 / ) (
2
1
σ
π σ
M x
e
− −

points d'inflexion
1
2 σ π
f (x)
0
x
M- σ M M+σ
M
x
f (x)
σ
2
grand
σ
2
petit
17

1 ) (
1
=

=
N
i
i
x p
si N couvre l'ensemble des valeurs.

Exemple : On définit un système capable de produire quatre types de produits notés 1, 2, 3, 4.
Lors de l'arrivée des ordres de fabrication, on sait que la probabilité d'avoir un produit 1 est
égale à 1/6, celle d'avoir un produit 2 est égale à 1/3, celle d'avoir un produit 3 est égale à 1/3
et celle d'avoir un produit 4 est égale à 1/6.

La loi est représentée soit par le diagramme en bâtons suivant indiquant ) (
i
x p en fonction de
i
x :
















soit par un histogramme
6
:














Définitions

La moyenne (arithmétique) M est égale à

=
N
i
i i
x p x
1
) ( .

6
Ensemble de rectangles de même largeur dont les surfaces sont proportionnelles aux probabilités p(x
i
).
p(x
i
)
1/3
1/6
x
i

0
1 2 3 4
1/3
1/6
1 2 3 4
0
p(x
i
)
x
i

18
Exercice : Calculer la moyenne considérée dans l'exemple précédent.

La variance σ
2
est égale à

=

N
i
i i
M x p x
1
2 2
)) ( ( .
On définit la probabilité cumulée (notion utilisée dans le logiciel SIMAN-ARENA) par

=
=
i
l
l i c
x p x p
1
) ( ) ( .

Dans l'exemple précédent, on a : 1 ) ( ,
6
5
) ( ,
2
1
) ( ,
6
1
) (
4 3 2 1
= = = = x p x p x p x p
c c c c
.

Application : Les variables aléatoires discrètes s'appliquent dans le cas d'injection directe de
données empiriques dans le modèle. Exemples : Types de pièces, taille des lots.
19
IV DONNÉES D'ENTRÉE DU SYSTÈME



La qualité des données est aussi importante que la qualité du modèle (garbage in -
garbage out) ; ceci concerne, par exemple dans le cas d'un système de production, les temps
opératoires, les temps de bon fonctionnement, les taux de rebut, ...

Deux problèmes se posent principalement :

P1) Collecte des données
→ lesquelles ? disponibles ? pertinentes ? comment les collecter ?

P2) Systèmes stochastiques
→ lecture directe des données empiriques ou tirage à partir d'une distribution
théorique associée ?


Les sources possibles de données sont de nature différente :

- Enregistrement du passé → bases de données à interroger (problèmes de mise à jour).

- Observation du système → ressources humaines (erreurs).

- Systèmes similaires → attention aux inférences.

- Estimation des opérateurs (humains) → négligence des extrêmes et oubli du passé.

- Affirmation des fournisseurs de matériel (souvent optimistes).

- Estimation des concepteurs (à vérifier).

- Considérations théoriques (par exemple le fait que les arrivées de 2 « clients » successifs
dans une file d'attente suivent une loi exponentielle, que les variations de longueur de
pièces en série suivent une loi normale, ...).


Deux cas sont à considérer, soit on a une connaissance partielle des données du
système (moyenne, minimum, maximum, ...), soit on dispose des données du système.


IV.1 CONNAISSANCE PARTIELLE DES DONNÉES


C'est le cas des systèmes qui n'existent pas encore, ou pour lesquels il est impossible
de disposer des données désirées (temps, ressources). On doit se baser sur l'estimation des
opérateurs, des concepteurs, des fournisseurs de matériel, ...
20
Trois cas se présentent souvent : On dispose seulement de la moyenne, on dispose seulement
du minimum et du maximum, ou on dispose seulement du minimum, de la valeur la plus
probable (≠ de la moyenne, voir la loi triangulaire) et du maximum.

1. Seule la moyenne M est disponible
On peut alors utiliser (si cela est justifié) :
- Directement M comme valeur constante de la variable si la dispersion (écart type) est
petite,
- Une distribution exponentielle (grande dispersion : forte variabilité) de paramètre M si la
nature du phénomène le justifie.

2. Min et Max sont disponibles
On peut alors utiliser (si cela est justifié) :
- Une distribution uniforme de paramètres Min et Max, c'est la distribution de l'ignorance
(il n'y a pas de raison de penser que les probabilités ne sont pas équiprobables),
- Si les données sont centrées autour de la moyenne M = (Min + Max)/2, on peut appliquer
une distribution normale centrée autour de M ; à partir de l'étendue des données (Etendue
= Max-Min), on peut calculer l'écart type : Si les données sont nombreuses, σ =
Etendue/6, sinon σ = Etendue/4.

3. Min, Max et la valeur la plus probable m sont disponibles
On peut alors utiliser (si cela est justifié) une distribution triangulaire de paramètres Min, m
et Max.


IV.2 DONNÉES EXISTANTES (accessibles à la mesure)


Le problème P2 n'ayant pas de réponse claire, les logiciels de simulation proposent
souvent les deux possibilités.

Il est souvent intéressant, pour des raisons théoriques et pratiques, de pouvoir décrire une loi
de probabilité par une distribution théorique. Ceci revient à exprimer sous forme analytique
les probabilités ) (
k
x p en fonction de l'indice k. On peut alors appliquer au calcul des
probabilités des méthodes bien connues d'analyse mathématique, évitant ainsi des calculs
numériques fastidieux.

- Si les données empiriques sont directement utilisées, elles sont entrées sous forme de
distributions empiriques cumulatives (histogramme des fréquences : regroupement des
observations en classes, nombres de classes = O( ns observatio d n
bre
' )).
- Si on veut faire des tirages à partir des distributions théoriques, il faut :
a) Choisir une distribution en fonction de sa forme (et celle de l'histogramme des
données),
b) Estimer ses paramètres,
c) Tester l'hypothèse : distribution correspond bien aux données.


21
L'étape a) est effectuée, connaissant les caractéristiques des distributions courantes et en
comparant visuellement la distribution théorique et la distribution empirique (histogramme
des fréquences).
L'étape b) implique l'utilisation des estimateurs classiques.
L'étape c) peut s'effectuer visuellement, ou en utilisant des tests statistiques d'hypothèses (Khi-
deux, Kolmogorov-Smirnov).

Exemple : On s'intéresse au temps de traitement d'une machine. On dispose d'un ensemble de
500 valeurs représentant l'intervalle de temps (obtenu à l'aide d'un chronomètre) entre chaque
apparition d'une pièce en sortie de la machine. L'entrée de la machine est toujours
approvisionnée. On considère 21 classes pour construire l'histogramme des fréquences.

























REAL data Data pts =500 intervals = 21 Range : -1 to 12
Mean = 5,02 StdDev = 1,88 Min = -0,4531 Max = 11,3

NORMAL DISTRIBUTION : NORM.(5,02 ; 1,88)
Sq Error = 0,0008231

(*) Hypothèse : Valeurs Min et Max finies.
Une valeur ) 21 1 ( ≤ ≤ ∈ n n Classe x ⇔
21 21
) 1 (
Min Max
n Min x
Min Max
n Min

+ ≤ ≤

− + .






N
bre
de valeurs appartenant à la
classe n° 1, n°2, ... (*)
Min
Cl. 1 …. Cl. n
Max
22
Si la valeur Min (respectivement Max) = - ∞ (respectivement + ∞), on considère une classe
[- ∞, valeur réelle] (respectivement [valeur réelle, + ∞]).
23
V. VÉRIFICATION ET VALIDATION DES MODÈLES


Les programmes de simulation se caractérisent par une évolution constante (tests de
scénarii, que se passe-t-il si ?, ...). La difficulté majeure est de savoir :

• Comment avoir confiance dans le modèle ?
• Comment le transmettre à l'utilisateur ?

Avant de tirer des inférences des résultats statistiques d'un modèle/programme de simulation,
il faut s'assurer qu'il est correct au sens où il représente bien le système. Ceci passe
habituellement par deux étapes : la vérification et la validation.


V.1 VÉRIFICATION

La vérification consiste à s'assurer que le modèle fonctionne comme le concepteur le
désire (pas d'erreur de logique), ce qui nécessite de pouvoir isoler les erreurs (étape la plus
difficile) afin de les corriger. La vérification est rendue plus facile si on commence par un
modèle simple qu'on améliore (enrichi) progressivement. Les techniques (ou comportement à
avoir) suivantes permettent l'isolation des erreurs :

1. Considérer toujours que le modèle contient des erreurs et les chercher (approche
destructive, plutôt que constructive).

2. Impliquer des personnes non concernées par la conception et l'implémentation.

3. Réviser le modèle et les données avec l'aide d'au moins un client et un connaisseur du
langage (en plus du développeur).

4. Effectuer des tests :
- Remplacer des temps aléatoires par des constantes,
- Tester seulement une partie du modèle,
- Tester le modèle dans des conditions limites. Pour cela :
- Augmenter le taux d'arrivée et/ou diminuer le taux de service pour créer des
congestions, ou des phénomènes de « famines » de machines,
- Réduire la taille des stocks pour créer des blocages,
- Modifier la distribution des types de pièces (job mix) pour augmenter l'arrivée
des pièces de types moins fréquents,
- Augmenter le taux d'occurrence des événements moins fréquents (par exemple
une panne).

5. Générer et analyser la trace du modèle pour vérifier le cheminement des pièces, les
changements d'état à l'issue d'une attente (au niveau d'une file, par une activité, ...).

6. Utiliser l'animation (technique puissante).

7. Corriger les erreurs en identifiant les vraies causes et ne pas traiter seulement les
symptômes (le raisonnement logique reste la meilleure approche).
24

8. Eviter des erreurs classiques, notamment vis-à-vis :
- De la saisie des données d'entrée,
- De la phase d'initialisation (unités de mesures),
- Du contrôle du flux,
- De l'existence de blocages,
- Des erreurs arithmétiques (parenthèses, conversion de types, ...),
- Des erreurs d'enregistrement (temps d'arrivée des pièces, compteurs, ...),
- D'une mauvaise utilisation des primitives ou fonctions du langage.


V.2 VALIDATION


Trois questions doivent être posées :

• Le modèle représente-t-il correctement le système réel (validité conceptuelle) ?
• Les données sur le comportement générées par le modèle sont-elles caractéristiques
de celles du système réel (validité opérationnelle) ?
• L'utilisateur a-t-il confiance dans les résultats du modèle (confiance) ?

Trois points de vue sont à prendre en compte :

- Celui du développeur,
- Celui d'une personne évaluant le modèle (superviseur, client),
- Celui de l'utilisateur final (décideur).

Trois types de tests :

1. Le comportement est-il raisonnable ?

- Continuité : Petits changements dans les paramètres d'entrée
→ petits changements dans les variables de sortie et les variables d'état.

- Consistance : Exécutions presque identiques
→ résultats presque identiques (exemple : Générateur aléatoire changé).

- Dégénérescence : Suppression d'une composante (d'un « mode ») du modèle
→ effets sur les résultats (exemple : Une machine supprimée).

- Conditions absurdes : Paramètres d'entrées absurdes
→ résultats absurdes (exemple : Porter le budget de la publicité à l'infini ne doit
pas entraîner des ventes infinies).

2. Test des données et de la structure du modèle

Les théories et les hypothèses doivent être correctes et la représentation du modèle doit être en
adéquation par rapport à l'utilisation désirée.
25

→ Validité de « façade » : Le comportement semble correct pour des personnes familières
avec le système réel (logique, entrées-sorties).

→ Vérification de la structure et des limites : Correspondance entre le modèle conceptuel et le
système de référence.

3. Test du comportement du modèle

Il consiste à étudier le comportement du modèle en relation avec le système de référence.

→ Comparaison de comportements : Tests statistiques pour comparer les résultats (Khi-deux,
Kolmogorov-Smirnov, ...).

→ Générer des symptômes :
- Le modèle génère des difficultés déjà connues dans le système ?
- Le modèle produit des résultats connus pour des entrées données ?

→ Anomalie de comportement : Une anomalie dans le modèle peut amener à découvrir
l'anomalie équivalente dans le système réel ?

→ Prédiction de comportement : Prédiction du modèle contre des tests sur le terrain.
26
VI INTERPRÉTATION DES RÉSULTATS



Selon le logiciel utilisé, l'exécution d'un programme de simulation peut générer :
- Un rapport de simulation comprenant les moyennes, les écarts types, les minimums et
maximums des variables observées, ...
- Un historique de l'évolution de ces variables au cours de la simulation.

La qualité de la moyenne (arithmétique) comme estimateur de la vraie moyenne dépend, entre
autres, du nombre des observations. De même, l'écart type est biaisé pour un petit nombre
d'observations. On peut utiliser son rapport à la moyenne pour mesurer la dispersion des
valeurs (en plus du minimum et du maximum).


Un tel rapport de simulation ne suffit pas pour tirer des conclusions crédibles sur les
performances du système. Il suffit de changer le générateur de nombres aléatoires pour que le
même modèle génère des résultats différents. L'animation graphique n'est pas suffisante non
plus. En fait, on a souvent tendance à se contenter du rapport de simulation et/ou de
l'animation, surtout quand le projet est en retard.


Les résultats générés par un modèle jouent le rôle de mesures sur un échantillon. Il faut donc
les exploiter pour effectuer des procédures statistiques. A chaque variable (inconnue), il faut
associer un intervalle de confiance.


Rappel (Intervalle de confiance) : L'intervalle de confiance [c
1
, c
2
] du paramètre inconnu λ
est défini à l'aide de 2 grandeurs statistiques
2 1
, C C de telle sorte qu'il recouvre, avec une
probabilité donnée α − 1 , la (vraie) valeur inconnue de λ , soit :

α λ − = ≤ ≤ 1 ) (
2 1
C C p .

La probabilité α − 1 , associée à cette estimation par intervalle, est appelée niveau de
confiance ou seuil de confiance. Les valeurs les plus souvent utilisées pour α − 1 sont : 0,90 ;
0,95 ; 0,99 et 0,999.

Chaque réalisation des deux statistiques
2 1
, C C donne lieu à un intervalle de confiance
numérique [c
1
, c
2
]. La notion de niveau de confiance est alors à interpréter dans le sens
suivant. Si l'on effectue un grand nombre de réalisations des deux statistiques (
2 1
, C C ), alors
la valeur inconnue du paramètre λ sera recouverte par environ % ) 1 ( 100 α − des intervalles
[c
1
, c
2
] ainsi obtenus.

La longueur d'un intervalle de confiance diminue :
• En augmentant la taille n de l'échantillon,
• En diminuant la dispersion de la variable aléatoire λ étudiée,
• En choisissant un seuil de confiance moins élevé.

27

Il existe deux types de systèmes : Les systèmes finis – c'est-à-dire, ayant un événement de fin
qui détermine la fin de la simulation - et les systèmes qui ne se terminent pas - c'est-à-dire,
n'ayant pas d'événement de fin de simulation. Par exemple, un commerce qui ouvre et qui
ferme à intervalles réguliers est un système fini ; par contre, un hôpital où il y a toujours au
moins un patient est un système qui n'est pas fini.


VI.1 ANALYSE DES SYSTÈMES FINIS


Ils sont plus faciles à analyser que les systèmes qui ne se terminent pas. On ne peut contrôler
que le nombre des répétitions des expériences. A chaque répétition, on peut utiliser un autre
générateur des nombres aléatoires.

Deux sources de données d'observation :
a) Observations individuelles dans chaque répétition/expérience (par exemple, le temps
de traitement de chaque pièce),
b) Moyennes, écarts-types, maximums, minimums des observations dans chaque
répétition (par exemple, le temps de traitement moyen des pièces).


Si l’on change le générateur des nombres aléatoires d'une répétition à l'autre, on peut
considérer que les observations de type b) d'un ensemble de répétitions sont telles que :
- Elles sont indépendantes,
- Les moyennes sont normalement distribuées.

Cette dernière propriété est due au fait qu'elles sont sommes, ou moyennes, d'observations
individuelles (théorème central limite).
Les procédures classiques de statistiques peuvent alors s'appliquer pour les moyennes. Pour
les minimums et maximums, certaines procédures de statistiques s'appliquent encore.
A partir des observations de type b), on peut calculer en particulier :
- Des intervalles de confiance autour de la moyenne, du maximum et du minimum,
- Des intervalles de confiance autour de la différence entre les moyennes, les maximums
et les minimums de deux systèmes différents.

Cette comparaison de deux systèmes est utile pour évaluer par exemple la différence entre
deux dimensionnements, deux règles d'ordonnancement, ... Si l'intervalle de confiance ne
contient pas 0, on peut en déduire que les deux systèmes sont différents.


Procédure générale :

- Simuler un grand nombre d'expériences/répétitions (minimum 20) et récupérer chaque fois
les observations souhaitées (moyennes, maximum, minimum, ...) ;
- Analyser le comportement du système en se basant sur la valeur moyenne pour chaque
expérience :
- Utilisation de l'histogramme,
- Calcul de l'intervalle de confiance.
28
- Déterminer le nombre expériences à l'aide de l'analyse des résultats en fonction des
précisions souhaitées pour l'intervalle de confiance. Utiliser la formule
2
2 1 1 2
) / ( h h n n = où
1
n est le nombre d’expériences déjà réalisées,
2
n est le nombre total d’expériences,
1
h est la moitié de l'intervalle de confiance déjà obtenu,
2
h est la moitié de l'intervalle de confiance souhaité.
- Simuler encore : Soit tout recommencer, soit rajouter les résultats des nouvelles simulations
à ceux des premières ;
- Analyser : Intervalle de confiance, histogramme.


VI.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS

On s’intéresse à l'étude des performances stationnaires d’un système du fait d’un régime
transitoire souvent favorable aux performances du système ; ce peut être, par exemple, le cas
d’un atelier vide au début de la simulation. L'état stable du système correspond à son
comportement après un certain temps et est indépendant de l'état de départ.
Le but est de calculer un intervalle de confiance autour de la moyenne. Deux problèmes
peuvent se poser :
- Pas de point de passage précis entre le régime transitoire et le régime stationnaire,
- Corrélation entre les observations.


Problème du régime transitoire
Il existe trois méthodes pour traiter le problème du régime transitoire :
- Choisir des conditions de départ qui ressemblent aux conditions de régime permanent
(par exemple : Charger les machines, mettre les pièces dans les files d'attente).
- Faire des simulations assez longues pour rendre le régime transitoire insignifiant.
- Ecarter les valeurs enregistrées pendant le régime transitoire. Pour cela, on peut
éventuellement utiliser le filtre de la moyenne glissante (moyenne arithmétique des k
observations récentes) pour réduire la variabilité de la variable.

C'est cette dernière méthode qui est couramment utilisée. Il existe certaines règles pour
sélectionner la partie à tronquer, mais il n'y a aucune méthode complètement satisfaisante. La
plus utilisée est d'évaluer (visuellement) la période transitoire à l'aide des graphes (courbes,
histogrammes, moyennes mobiles).


Intervalles de confiance
Deux méthodes sont couramment utilisées :
- Répétition d'expériences indépendantes comme pour les systèmes finis (problème du
régime transitoire à chaque fois),
- Longue simulation et décompositions des données générées en sous ensembles (batchs).

Cette dernière méthode consiste à :
- Ecarter le régime transitoire,
- Décomposer les observations restantes en n batchs de taille m et sans chevauchement,
29
- Remplacer chaque batch
j
B (j = 1, 2, .., n) par
j
X , moyenne des m observations dans
j
B ,
- Calculer l'intervalle de confiance à partir des observations
j
X , j = 1, 2, .., n.

Ici encore, les conditions du théorème central limite sont considérées vraies et le calcul de
l'intervalle de confiance justifié (indépendance et normalité des observations
j
X ).

Indications : n = 10. lag*,
m de 10 à 20.

Corrélogramme → lag* : Le plus grand nombre d'observations pour lequel la
corrélation est encore significative.

Cette méthode (présentée pour des variables ne dépendant pas du temps comme le nombre de
pièces finies) est évidemment applicable pour les variables persistantes (dépendant du temps)
comme les tailles des files d'attente. Il suffit de définir les batchs par des intervalles de temps
réguliers au lieu d'un nombre fixé de données.
30
VII NOTIONS ELÉMENTAIRES SUR LES RÉSEAUX DE PETRI



VII.1 GÉNÉRALITÉS


Définition (Réseau de Petri)
Un réseau de Petri (RdP) est un graphe constitué de 2 sortes de nœuds : Les places
(représentées par des ronds) et les transitions (représentées par des barres). Le graphe est
orienté : Des arcs vont d'une sorte de nœuds à l'autre (jamais de places à places, ou de
transitions à transitions directement). Voir exemple dans la figure suivante.













De façon plus formelle, un RdP peut-être défini par un 4-uplet <P, T, Pré, Post> tel que :
{ }
n
P P P P , , ,
2 1
L = est un ensemble fini et non vide de places ;
{ }
m
T T T T , , ,
2 1
L = est un ensemble fini et non vide de transitions ;
{ } 1 , 0 : → × T P ré P est l'application d'incidence avant ;
{ } 1 , 0 : → × T P ost P est l'application d'incidence arrière.
) , (
j i
T P ré P est le poids de l'arc (orienté) reliant la place
i
P à la transition
j
T ; ce poids vaut
1 si l'arc existe et 0 sinon.
) , (
j i
T P Post est le poids de l'arc (orienté) reliant la transition
j
T à la place
i
P .

Marquage des places
Les places sont marquées par des jetons (points noirs) qui vont circuler dans les places selon
certaines règles (définies ci-dessous). Cette circulation symbolise l'évolution dynamique du
système. Le marquage initial (celui indiqué sur le dessin) donne la position initiale des jetons.

Règles de fonctionnement et circulation des jetons
Pour qu'une transition puisse être activée, la présence d'un jeton au moins est requise dans
chaque place située en amont de la transition. L'activation (le tir) de la transition a pour effet
de prélever ces jetons des places amont et de rajouter dans chaque place aval un nouveau
jeton.
De façon plus formelle, le franchissement (tir) d'une transition
j
T ne peut s'effectuer que si le
marquage de chacune des places
i
P directement en amont de cette transition est tel que :
31
) , ( ) (
j i i
T P ré P P m ≥ (condition nécessaire).
Le franchissement (tir) de
j
T consiste à retirer ) , (
j i
T P ré P jetons dans chacune des places
directement en amont de
j
T et à ajouter ) , (
j k
T P Post jetons dans chacune des places
k
P
directement en aval de
j
T .

Modélisation de la concurrence (ou logique) et de la synchronisation (et logique)
- Concurrence à la fourniture de jetons dans une place : C'est la convergence d'arcs sur
une place (voir figure a suivante).
- Concurrence à la consommation des jetons d'une place : C'est la divergence d'arcs à
partir d'une place (voir figure b suivante). Ce conflit structurel doit être arbitré par une
règle de priorité quelconque lorsque le conflit est effectif (c'est-à-dire lorsque les
transitions aval en compétition pourraient effectivement être activées). Ne pas arbitrer
un conflit effectif fait que le comportement du système n'est pas entièrement spécifié.
- Synchronisation dans la consommation de jetons de plusieurs places : C'est la
convergence de plusieurs arcs sur une transition (voir figure c suivante).
- Synchronisation dans la fourniture de jetons à plusieurs places : C'est la divergence
d'arcs à partir d'une transition (voir figure d suivante).









Temporisation des places et/ou des transitions
A priori, on peut penser à l'activation d'une transition comme au déroulement d'une tâche : Il
faudrait alors mettre une temporisation sur les transitions. Par ailleurs, si on pense à une place
comme un endroit où une ressource séjourne en attendant de poursuivre son parcours, il peut y
avoir une durée minimale de séjour à respecter : Penser par exemple au séjour d'une pièce
dans un four pour atteindre une température souhaitée.
On est donc tenté de mettre à la fois :
- Une durée d'activation pour les transitions : Durée pendant laquelle un jeton situé dans
chaque place amont de la transition activée est « réservé » pour cette transition (avant
de disparaître), et au delà de laquelle un jeton apparaît dans chacune des places aval ;
- Une durée minimale de séjour dans les places : Durée pendant laquelle tout jeton qui
vient d'être produit dans une place ne peut pas encore servir à l'activation de transitions
aval.
En fait, il n'y a aucune perte de généralité à ne mettre de temporisations que sur les transitions,
ou que sur les places. La figure suivante montre la transformation d'une transition de durée t
en 2 transitions instantanées (le début et la fin) séparées par une place de temporisation t.






a b c d
t
t
32
On notera aussi l'existence de RdP temporels, pour lesquels on associe aux places et/ou aux
transitions une temporisation dont la valeur peut se situer à l'intérieur d'un intervalle [ ] b a, .


VII.2 GRAPHES D'ÉVÉNEMENTS


Restrictions et capacités de modélisation
Les graphes d'événements sont une sous-classe de RdP pour lesquels toute place a exactement
une transition amont et une transition aval (les situations représentées dans les figures a et b
précédentes sont interdites). Aussi, les graphes d'événements peuvent modéliser des
phénomènes de synchronisation, mais pas de concurrence.

A l'opposé, les graphes d'état refusent les configurations représentées dans les figures c et d
précédentes pour ne retenir que celles représentées dans les figures a et b. Aussi, les graphes
d'état, tels que toute transition a exactement une place d'entrée et une place de sortie,
permettent de visualiser des phénomènes de concurrence (décision), mais pas de
synchronisation.

Une propriété fondamentale des graphes d'événements
Le nombre total de jetons le long de tout circuit d'un graphe d'événements reste constant. Ceci
n'est généralement pas vérifié dans le cas d'un RdP (le nombre de jetons total d'un RdP ne
reste pas nécessairement constant au cours de l'évolution du marquage du réseau).


VII.3 EXEMPLES


Soit une machine représentée dans la figure suivante. Chaque pièce qui arrive est, soit traitée
immédiatement par la ressource machine, soit mise en attente dans le stock (à capacité infinie)
jusqu'à ce que la ressource machine soit disponible. Le temps de traitement de la ressource
machine est de 3 unités de temps. Après traitement, chaque pièce sort.







arrivée
pièce
stock
ressource
machine
sortie
pièce
33
Le RdP suivant modélise ce système.









L'état du système modélisé par le RdP est représenté par le marquage définissant le nombre
de jetons contenus dans chaque place. L'évolution de l'état (représentant la dynamique du
système) correspond à l'évolution du marquage (produit par le franchissement de transitions).

Modifications

a) Le modèle RdP suivant indique une capacité de stockage limitée à 5 pièces.











b) Le stock en amont de la ressource machine est remplacé par un convoyeur correspondant à
une file composée de 5 compartiments (gestion First-In, First-Out du convoyeur). Le
temps de déplacement du convoyeur est de 6 unités de temps. Le système est représenté par
le modèle RdP suivant.









3
stock
ressource machine libre
ressource machine occupée
Arrivée
pièce
Sortie
pièce
Démarrage
3
stock
ressource machine libre
ressource machine occupée
Arrivée
pièce
Sortie
pièce
5
Démarrage
Arrivée
pièce

6/5
6/5 6/5
34
c) La machine a une capacité de traitement de 2 : Elle est capable de traiter 2 pièces
simultanément. Le système est représenté par le modèle RdP suivant.











d) La machine a un temps de setup de 1,5 unités de temps. Le système est représenté par le
modèle RdP suivant.











VII.4 AUTRES CLASSES DE RÉSEAUX DE PETRI


Réseau de Petri synchronisé
Un ensemble d'événements externes est associé au RdP ; ces événements permettent le
franchissement de certaines transitions. Un tel RdP est dit synchronisé.

Considérons le RdP modélisant la machine décrite dans VII.3. On associe à ce RdP l'ensemble
d'événements { } S D A , , où A désigne l'événement « Arrivée pièce », D l'événement
« Démarrage service », S l'événement « Sortie pièce ». La figure suivante représente le
système modélisé par un RdP synchronisé.












3
ressources machine libres
ressources machine occupées
Sortie
pièce
Démarrage
2
3
ressources machine libres
ressources machine occupées
Sortie
pièce
Démarrage
2
1,5
3
stock
ressource machine libre
ressource machine
occupée
Arrivée
pièce
Sortie
pièce
A
D
S
T
1

T
2

T
3

Démarrage
35
Le tir de la transition T
1
est lié à l'occurrence de l'événement A.
Le tir de la transition T
2
est lié :
- A la validation de la transition, matérialisée par la présence d'au moins un jeton dans la
place « stock » et d'un jeton dans la place « ressource machine libre » ;
- Au démarrage effectif du service (occurrence de l'événement D).
Le tir de la transition T
3
est lié à l'occurrence de l'événement S.


Réseau de Petri généralisé
Un RdP généralisé est un RdP dans lequel les poids associés aux arcs sont des nombres entiers
strictement positifs. Ces poids peuvent être différents de 0 ou 1.
Tous les arcs, dont le poids n'est pas explicitement spécifié, ont un poids de 1.
Soit un arc reliant une place P
i
à une transition T
j
ayant un poids égal à p, alors la transition T
j

ne sera validée que si la place P
i
contient au moins p jetons. Lors du franchissement de cette
transition, p jetons seront retirés de la place P
i
.
Le fait qu'un arc relie une transition T
j
à une place P
i
avec un poids égal à p, signifie que lors
du franchissement de cette transition, p jetons seront ajoutés à la place P
i
.








Réseau de Petri à arcs inhibiteurs
Un arc inhibiteur est un arc orienté qui part d'une place pour aboutir à une transition (et non
l'inverse). Son extrémité est marquée par un petit cercle. La présence d'un arc inhibiteur entre
une place P
i
et une transition T
j
signifie que la transition T
j
n'est validée que si la place P
i
ne
contient aucun jeton. Le franchissement de la transition T
j
consiste à retirer un jeton dans
chaque place située en amont de la transition à l'exception de la place P
i
, et à ajouter un jeton
dans chaque place située en aval de la transition.






Assemblage
2
transition
franchissable
transition
non franchissable
36
VIII LE LANGAGE DE SIMULATION SIMAN-ARENA


SIMAN-ARENA
7
- conçu en 1982 par C.D. Pedgen de System Modeling Corporation - est un
langage de simulation du type interaction de processus, ARENA représentant la version
« graphique » de SIMAN. La description du modèle (logiciel) du système simulé se fait à
l'aide d'un assemblage constitué de mise en série, en parallèle ou en feedback de différents
blocs fonctionnels, issus de bibliothèques (templates) d’ARENA. Une telle approche de
modélisation permet d'obtenir une structure du modèle (logiciel) proche de celle du système
(réel) à simuler.


VIII.1 NOTIONS DE BASE


Entité : Une entité est un objet qui évolue dans les différents blocs fonctionnels constituant le
modèle du système. Elle correspond en général à un objet concret, par exemple, une
personne ou une pièce dans un atelier. Le déplacement des entités au sein des
différents blocs - par exemple le déplacement de pièces dans un atelier - provoque un
changement d'état du modèle de simulation, ce qui est analogue aux déplacements
des jetons dans un modèle RdP.

Attribut : Un attribut est une variable associée individuellement aux entités (la variable est
locale) pour représenter leurs états ou des paramètres qui leur sont propres. Par
exemple, chaque entité, représentant une pièce circulant dans un atelier, peut avoir
les attributs suivants :
- Type_de_piece afin de désigner le type d'une pièce (par exemple, Type_de_piece =
A ou B) ;
- Indice_de_priorite afin de désigner l'indice de priorité d'une pièce (par exemple,
Indice_de_priorite = faible ou importante) ;
- Date_arrivee_ds_le_modele (par exemple, Date_arrivee_ds_le_modele = TNOW).

Variable globale : Une variable globale concerne l'ensemble du modèle. Par exemple, la
variable TNOW (variable prédéfinie dans SIMAN) désigne la date à laquelle se trouve
la simulation, c'est le temps courant - mis à jour à chaque avancée dans l'échéancier
des événements – s’écoulant durant une simulation du modèle.

Le principe de fonctionnement du logiciel ARENA est de suivre chacune des entités évoluant
d'un bloc fonctionnel vers un autre dans le modèle, de sa création à sa destruction.
L’ordonnancement dans le temps des différents événements rattachés à l'évolution des entités
dans les blocs constituant le modèle se fait au travers d’un échéancier.


7
Une documentation électronique est fournie avec le logiciel SIMAN-ARENA à travers différents fichiers
(ArenaBEUsersGuide.pdf, ArenaVariablesGuide.pdf, ArenaSEUsersGuide.pdf) accessibles dans le répertoire
\Rockwell Software\Arena\.
37
Quand une entité est introduite dans un bloc fonctionnel, elle déclenche/active le « service »
qui lui est associé, ce qui provoque une modification de l'état du modèle. Un « service » peut
agir :
- sur l'entité au travers de la valeur de ses attributs. Par exemple, à travers un bloc Assign,
on peut affecter à l'attribut indice_de_priorite d'une entité représentant une pièce,
présente dans le bloc, la valeur importante ;
- sur les variables globales du modèle logiciel. Par exemple, le passage d’une entité dans un
bloc Delay provoque un retard pur, ce qui aura une conséquence sur la variable TNOW.

Un programme (ou modèle logiciel) élaboré avec ARENA est sauvegardé dans un fichier
ayant pour extension .doe et est constitué :
- d'une partie modèle, qui représente l'algorithme décrivant les caractéristiques statiques et
dynamiques des différents blocs fonctionnels composant le modèle ;
- du cadre expérimental, qui regroupe les données précisant les paramètres spécifiques à
une simulation donnée (conditions initiales, durée de la simulation, …).
En fait, les entités traversent uniquement les blocs fonctionnels de la partie modèle.

Considérons un simple tapis roulant, ayant un temps de transport de 3 unités de temps,
représenté par le modèle logiciel décrit comme suit :

Le bloc Create, issu du template Basic Process, est tel qu'une entité est créée à partir de
l’instant 0, ceci toute les 2 unités de temps.
Le bloc Delay, issu du template Advanced Process, force une entité à séjourner 3 unités de
temps dans le bloc.
Le bloc Dispose, issu du template Basic Process, détruit toute entité entrant dans le bloc.

A travers le menu Run/Setup/Replication Parameters, on peut notamment fixer :
- le nombre de réplications (champ Number of Replications),
- le temps où se termine une réplication (champ Replication Length).
38


A travers le menu Run/Setup/Project Parameters, on peut notamment donner :
- un titre au projet (champ Project Title),
- le nom du programmeur (champ Analyst Name),
- un commentaire (champ Project Description).



39
Les 2 fichiers générés par SIMAN-ARENA (au format txt) sont accessibles via le menu
Run/SIMAN/View (voir ci-dessous un listage partiel de ces fichiers).

• fichier Exemple.mod : (partie modèle)

; Model statements for module: Create
2$ CREATE, 1,HoursToBaseTime(0.0),Entity 1:HoursToBaseTime(2):NEXT(0$);
;
; Model statements for module: Delay
0$ DELAY: 3,,Other:NEXT(1$);
;
; Model statements for module: Dispose
1$ DISPOSE: Yes;

0$, 1$, 2$ sont des étiquettes.

• fichier Exemple.exp : (cadre expérimental)

PROJECT,"Premier exemple","ISTIA",,,No,Yes,Yes,Yes,No,No,No,No,No,No;
REPLICATE, 1,,HoursToBaseTime(10),Yes,Yes,,,,24,Hours,No,No,,,Yes;

Le modèle RdP correspondant à la partie modèle du modèle logiciel précédent est décrit dans
la figure suivante :








ARENA permet de construire un modèle en proposant des primitives de représentation
(appelées par la suite, blocs ou modules) plus ou moins détaillées. Il permet également de
créer des animations graphiques pour visualiser le comportement du modèle durant la
simulation. Les blocs sont regroupés dans différentes bibliothèques (templates).

Afin de bénéficier d’une animation, nous allons utiliser les templates Basic Process et
Advanced Process. Sont décrits en Annexe les templates Blocks et Elements lesquels
contiennent des blocs plus élémentaires (à chacun de ces blocs correspond une ligne dans les
fichiers générés par SIMAN-ARENA).


VIII.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA
CONSTRUCTION D’UN MODÈLE

3
2
40

a) Create (issu du template Basic Process) : Un bloc Create permet de créer des entités. Celui
représenté dans la figure suivante est intitulé Create 1 (champ Name = Create 1). Sont
indiqués :
- la période de création des lots d’entités (cadre Time Between Arrivals, par exemple :
champ Type = Constant, champ Value = 2),
- la taille des lots (champ Entities per Arrival = 1),
- le nombre total de lots à créer (champ Max Arrivals = Infinite),
- la date de création du premier lot (champ First Creation = 0).
Les valeurs considérées sont telles qu'1 entité est créée toute les 2 unités de temps à partir de
l’instant 0, ceci une infinité de fois.



Le RdP suivant permet de décrire le bloc Create 1.










Le nombre de jetons présents dans la place P correspond au nombre d'entités créées par le
bloc Create 1.

b) Dispose (issu du template Basic Process) : Un bloc Dispose permet de détruire des entités.
Celui représenté dans la figure suivante est intitulé Dispose 1 (champ Name = Dispose 1), une
entité entrant dans ce bloc est immédiatement détruite.

Time Between
Arrivals (2)
Max
Arrivals
(∞)
Entities per
Arrival (1)
First
Creation
(0)
P
41


En termes de RdP, ce bloc équivaut à une transition puit, c'est-à-dire, une transition sans place
située en aval.

c) Delay (issu du template Advanced Process) : Un bloc Delay permet de retarder le passage
d'entités. Celui représenté dans la figure suivante est intitulé Delay 1 (champ Name = Delay
1), quand une entité entre dans ce bloc, elle y reste inconditionnellement pendant la durée
(aléatoire ou non) indiquée dans le champ Delay Time.



Le RdP suivant permet de décrire un bloc Delay.









Le nombre de jetons présents dans la place correspond au nombre d'entités présentes dans le
bloc Delay.

d) Seize (issus du template Advanced Process) : Une entité présente dans un bloc Seize ne
peut sortir de ce bloc que s’il existe un nombre suffisant de ressources disponibles (le nombre
et le type de ressources étant spécifiés dans le bloc) ; en attendant l’entité est stockée
(« patiente ») dans une file d’attente interne au bloc Seize. Le fait qu'une entité sorte du bloc
indique que les ressources, disponibles en nombre suffisant, sont « saisies » (et donc plus
disponibles).
Delay Time
Entrée d'une entité
dans le bloc Delay
Sortie de l'entité
du bloc Delay
42
Le bloc représenté dans la figure suivante est intitulé Seize 1 (champ Name = Seize 1). Pour
simplifier la compréhension, considérons que seulement un type de ressource est concerné
(dans l’exemple, Resource 1), alors :
- le nom de la ressource est spécifié dans le champ Resource Name, soit Resource Name =
Resource 1 (l’ajout d’un autre type de ressource donnerait lieu à une ligne supplémentaire
dans la liste Resources),
- le nombre (minimum) de ressources (de type Resource 1) disponibles est spécifié dans le
champ Quantity, par exemple Quantity = 1.
Sachant qu'une ressource peut ne pas être disponible, les entités, en attente d'un nombre
suffisant de ressources disponibles, sont stockées dans une file d'attente, intégrée (en amont)
au bloc Seize, et dont le nom est indiqué dans le champ Queue Name (soit Queue Name =
Seize 1.Queue).



Le RdP suivant permet de décrire un bloc Seize dans le cas où un seul type de ressource (dans
l’exemple, Resource 1) est requis.
















La transition T pour être activée doit :
- contenir (au moins) un jeton dans la place P1, ce qui correspond à la présence dans la file
d’attente d'au moins une entité dans le bloc Seize.
représentation graphique de la file
d’attente associée au bloc Seize 1
File d’attente
(Seize 1.Queue)
T
P1
P2
Quantity
Entrée d'une entité
dans le bloc Seize
Sortie de l'entité
du bloc Seize
Saisie de (Quantity = 1) ressources
(Resource Name = Resource 1)
ressources
disponibles
43
- contenir (au moins) Quantity jetons dans la place P2, ce qui signifie qu’au moins
Quantity ressources Resource Name sont disponibles.
Le fait de franchir la transition T a pour effet d'ôter 1 jeton dans la place P1 et d’ôter Quantity
jetons dans la place P2, ce qui représente la sortie d’une entité du bloc Seize et la « saisie » de
Quantity ressources Resource Name.

Le nombre de jetons présents dans la place P1 correspond au nombre d'entités présentes (en
attente) dans le bloc Seize.

Une file d’attente est caractérisée (configurée) par le bloc Queue (issu du template Basic
Process, appartenant au cadre expérimental et donc non traversé par une entité), voir la
figure suivante :
- le champ Name permet de déclarer une file d’attente, par exemple Seize 1.Queue,
- le champ Type permet d’indiquer le mode de gestion de la file d’attente. Par défaut, le
mode de gestion est de type First In, First Out (FIFO).
Le bloc Queue permet de définir plusieurs files d'attente dans un même modèle.



Les types de ressource, ainsi que le nombre pour chaque type de ressources, sont indiqués
dans le bloc Resource (issu du template Basic Process, appartenant au cadre expérimental
et donc non traversé par une entité), voir la figure suivante :
- le champ Name permet de déclarer une ressource, par exemple Resource 1,
- le champ Capacity permet de définir le nombre d’unité de la ressource, par exemple 1.
Le bloc Resource permet de définir plusieurs types de ressources dans un même modèle.



e) Release (issu du template Advanced Process) : Un bloc Release permet de « relâcher » des
ressources. Celui représenté dans la figure suivante est intitulé Release 1 (champ Name =
Release 1). Quand une entité entre dans ce bloc, elle libère (relâche) la, ou les ressources dont
le nom est spécifié dans le champ Resource Name, par exemple Resource 1, le nombre de
ressources libérées est spécifié dans le champ Quantity, par exemple 1. On peut noter que
l’exécution de cette tâche est instantanée, autrement dit le temps de passage d’une entité dans
un bloc Release est nul. Pour simplifier, seul un type de ressource est concerné (dans
l’exemple, Resource 1), l’ajout d’un autre type de ressource donnerait lieu à une ligne
supplémentaire dans la liste Resources.

44


Le RdP suivant permet de décrire un bloc Release dans le cas où un seul type de ressource
(dans l’exemple, Resource 1) est libéré.












Le fait de franchir la transition T' provoque l'apparition de Quantity jetons dans la place P1, ce
qui représente la sortie d’une entité du bloc Release et la mise en disponibilité (le
« relâchement ») de Quantity ressources Resource Name.

f) Assign (issu du template Basic Process) : Un bloc Assign permet d’assigner une valeur,
notamment, à un attribut, une variable (éventuellement propre à SIMAN, par exemple relative
à l’état d’une ressource), durant l’exécution d’une simulation. Quand une entité entre dans un
bloc Assign, l’expression - logique ou mathématique - spécifiée dans le champ New Value est
évaluée et assignée, selon le contenu du champ Type (Attribute, Variable, …), à un attribut
(rattaché à l’entité « activant » le bloc) ou une variable. Dans la figure suivante, le bloc intitulé
Assign 1 (champ Name = Assign 1) permet de déclarer :
- une variable Variable 1 à 1 ;
- un attribut Attribute 1 à TNOW ;
- une variable Variable 2 à STATE(resource 1). La variable STATE(resource 1) restitue
l’état courant de la ressource resource 1 (les valeurs possibles sont : -1=Idle ; -2=Busy ;
-3=Inactive ; -4=Failed) ;
- une Variable 3 à Attribute 1.
Cet exemple est proposé dans \Exemples\Assign\Assign.doe.


T'
P1
Quantity
Entrée d'une entité
dans le bloc Release
Sortie de l'entité
du bloc Release
ressources
disponibles
45


Le RdP suivant permet de décrire le bloc Assign 1.










Le bloc Variable (issu du template Basic Process, appartenant au cadre expérimental et donc
non traversé par une entité) permet de déclarer des variables.



g) Decide (issu du template Basic Process) : Un bloc Decide permet d’aiguiller un flux
d’entités vers différents blocs de destination, il comporte une entrée et plusieurs sorties.
L’aiguillage est réalisé, selon le contenu du champ Type, d’après un critère de type condition,
Variable 1 := 1
Attribute 1 := TNOW
Variable 2 := STATE(resource 1)
Variable 3 := Attribute 1
Entrée d'une entité
dans le bloc Assign
Sortie de l'entité
du bloc Assign
46
ou probabilité. Les conditions sont par exemple basées sur des valeurs d’attributs, de
variables, une expression. Le routage se fait via un ensemble de branches.

Quand une entité entre dans un bloc Decide, chaque condition de branchement est testée de
manière séquentielle (i.e., dans l’ordre de leurs déclarations dans le bloc). La branche
sélectionnée par une entité est la première branche pour laquelle la condition de branchement
est satisfaite ; l’entité est alors aiguillée vers le bloc correspondant. Si aucune branche n’est
satisfaite, l’entité est détruite. Un bloc Decide, intitulé Decide 1 (champ Name = Decide 1),
est décrit dans la figure suivante. Le critère d’aiguillage vers les 2 sorties possibles est réalisé
à partir de la condition If Variable 1 >= 1 (avec un résultat True ou False).



Le critère utilisé par le bloc Decide 2 est de type probabilité (2 sorties, ayant chacune une
probabilité égale à 0.5, sont possibles).



47
Le RdP suivant permet de décrire un bloc Decide.











Notons que toutes les sorties d’un bloc Decide doivent être connectées à un bloc
(éventuellement un bloc Dispose si la sortie n’est pas « utile »).


h) Match (issu du template Advanced Process) : Un bloc Match permet de synchroniser la
progression de deux, voire de plusieurs, entités situées dans différentes files d’attentes. Quand
toutes les files d’attentes, associées au bloc Match, ont une, voire plusieurs entités, ces entités
sont libérées, de façon synchrone, vers les sorties correspondantes. Dans la figure qui suit, le
bloc Match 1 (champ Name = Match 1) effectue une synchronisation entre deux entrées. Une
synchronisation se produit lorsqu’au moins une entité est présente dans chacune des deux files
d’attente, à savoir Match 1.Queue1 et Match 1.Queue2. Les entités à l’origine de la
synchronisation sont ensuite dirigées vers les sorties correspondantes. Le fait d’avoir le champ
Type = Any Entities (et non Based on Attribute) fait que la synchronisation ne s’effectue pas
en fonction de la valeur d’un éventuel attribut (rattaché aux entités).








Le bloc Queue (issu du template Basic Process) décrit ci-dessous indique la définition des
files d’attente Match 1.Queue1 et Match 1.Queue2.

Entrée d'une entité
dans le bloc Decide
.
.
.
Sorties du bloc
Decide
critère
de type
condition ou
probabilité

Match 1
Match 1.Queue1
Match 1.Queue2
48


Voir une description du bloc Match 1 à l'aide du RdP suivant.












Notons que toutes les sorties d’un bloc Match doivent être connectées à un bloc
(éventuellement un bloc Dispose si la sortie n’est pas « utile »).

i) Separate (issu du template Basic Process) : Un bloc Separate permet de dupliquer des
entités lorsque le champ Type = Duplicate Original. Le nombre de duplication créée est
spécifié dans le champ # of Duplicates. Lorsqu’une entité entre dans ce bloc et comporte des
attributs, les attributs de toutes les entités dupliquées sont identiques aux valeurs courantes
des attributs de l’entité à dupliquer. L'entité originale sort par la sortie Original, les # of
Duplicates entités (celles dupliquées) sortent par la sortie Duplicate. Un bloc Separate,
intitulé Separate 1 (champ Name = Separate 1), est décrit dans la figure suivante. Un exemple
est donné dans \Exemples\Separate\Separate.doe.



Match 1.Queue1
Match 1.Queue2
Sorties du
bloc Match
Entrées du
bloc Match
synchronisation
49
Le RdP qui suit permet de décrire un bloc Separate.














j) Process (issu du template Basic Process) : Un bloc Process permet de simuler le
comportement d’une machine, sachant que différents modes de fonctionnement sont autorisés
selon le contenu du champ Action (situé dans le cadre Logic lorsque le champ Type =
Standard).
Un bloc Process, intitulé Process 1 (champ Name = Process 1), est décrit dans la figure
suivante.



Lorsque le champ Action contient la valeur :
i) Delay, la machine se ramène à un simple bloc Delay, ce qui permet de simuler un temps
de traitement (voir le cadre Delay Type pour assigner un temps de traitement) et le fait
qu’il n’y a pas de contrainte vis-à-vis de la ressource de la machine.
Entrée de
l‘entité
Sortie de l’entité
originale
Sortie de
(# of Duplicates)
entités dupliquées

Separate
Entrée
de
l'entité
Original (sortie de l'entité originale)
Duplicate (sortie de (# of
Duplicates) entités dupliquées
50
2i) Seize Delay, la machine nécessite une, voire plusieurs ressources (voir le cadre
Resources pour assigner le type, ainsi que le nombre, de ressources concernées) durant un
temps (relatif au temps de traitement) minimum indiqué dans le cadre Delay (le
relâchement de la ressource est supposé réalisé en aval).
3i) Seize Delay Release, idem. au cas 2i) avec une gestion au niveau du relâchement de la
ressource « saisie ».
4i) Delay Release, idem. au cas 3i) sans la gestion de l’allocation de la, voire des ressources
nécessaires au traitement d’une pièce (cette gestion est supposée réalisée en amont du
bloc).
Le RdP correspondant au cas i) est décrit au VIII.2.c. Les RdP correspondant au cas 2i, 3i, 4i
sont issus de concaténation des RdP décrits au VIII.2.c,d,e.


VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT L’ANALYSE
D’UN MODÈLE


Les blocs décrits au VIII.2 permettent de modéliser un système physique, sans pour autant
fournir d’informations (exceptées celles données par défaut dans le rapport final). La collecte
d’informations spécifiques se fait en utilisant des blocs supplémentaires. Quelques-uns de ces
blocs sont décrits ci-dessous. Un exemple est donné dans le fichier
\Exemples\Record_Statistic\Stat_File.doe.

1) Le bloc Record (issu du template Basic Process) permet, selon le contenu du champ Type,
de :
- compter le nombre d'entités traversant le bloc (Type = Count) (voir 1.a)) ;
- recueillir les temps de passage successif de 2 entités (Type = Time Between) (voir 1.b)) ;
- recueillir les temps mis par les entités traversant une partie (ou l'ensemble) d'un modèle
(Type = Time Interval) (voir 1.c)).

1.a) Lorsque le champ Type = Count, le bloc Record permet de compter le nombre d'entités
qui transitent par ce bloc. Le compteur s'incrémente d'une valeur (Value, par défaut égale à 1)
à chaque passage d'une entité. Le nom du compteur est spécifié dans le champ Counter Name.
Voir le bloc Statistic (voir 2.c) pour effectuer un enregistrement des données.



compteur = + 1
transition
51
1.b) Lorsque le champ Type = Time Between, le bloc Record permet de recueillir les temps de
passage entre 2 entités successives. Le nom du tally
8
est spécifié dans le champ Tally Name.
Voir le bloc Statistic (voir 2.c) pour effectuer un enregistrement des données.



1.c) Lorsque le champ Type = Time Interval, le bloc Record permet de recueillir les temps
mis par les entités traversant une partie (ou l'ensemble) d'un modèle. Le nom du tally est
spécifié dans le champ Tally Name.

Par exemple, on souhaite pour chaque entité recueillir la différence entre le temps de sortie du
bloc M et le temps de sortie du bloc N. Soient ) ( ), ( i t i t
M N
les temps de sortie de l'entité n° i des
blocs N et M respectivement (cf. schéma suivant).






Pour réaliser cela, on dispose :
- Un bloc Assign (cf. VIII.2.f) placé juste après le bloc N afin d'assigner le temps de
passage, à savoir TNOW, de chaque entité dans un attribut, noté par exemple Attribute 1
(un attribut est une variable associée individuellement aux entités).
- Un bloc Record 1 (avec Type = Time Interval) placé juste après le bloc M afin de
disposer des temps de parcours de la sortie du bloc N au bloc M. Le lien avec l'attribut
Attribute 1 se fait via le champ Attribute Name.
Voir le schéma suivant pour avoir une vue schématique des blocs N, Assign, M, Record et la
figure suivante où est décrit un bloc Record de Type Time Interval.

8
"To keep a tally of …" signifie "tenir le compte de …".
Bloc N Bloc M
t
N
(i)
t
M
(i)
transition
X
X(k + 1) - X(k)
X(k) : tps de
franchissement
de l’entité n° k
52














2) Le bloc Statistic (issu du template Advanced Process, appartenant au cadre expérimental et
donc non traversé par une entité) permet, selon le contenu du champ Type, de :
- collecter durant la simulation des statistiques issues de variables SIMAN, telles que le
nombre d’entités contenues dans une file d'attente (variable NQ, cf. 2.a), le taux
d’occupation d’une ressource (variable NR, cf. 2.b) (Type = Frequency) ;
- spécifier les fichiers dans lesquels seront sauvegardées les données d’observations
individuelles, par exemple :
- celles issues d’un bloc Record (relatif à un compteur ou un tally) (Type = Count
ou Tally) (cf. 2.c)) ;
- celles issues d’une variable SIMAN (le nombre d’entités contenues à chaque
instant dans une file d'attente, le taux d’occupation à chaque instant d’une
ressource (Type = Frequency) (cf. 2.c)).
2.a) Lorsque le champ Type = Frequency et le champ Frequency Type = Value, le bloc
Statistic permet, à travers la variable NQ (abréviation de Number in Queue) - mise à jour
automatiquement par SIMAN, de disposer du nombre d’entités contenues dans une file
d'attente. Par exemple, en supposant défini une file d'attente intitulée Process 1.Queue, la
variable Statistic 3 (champ Name = Statistic 3) permet de connaître le nombre d’entités
présentes à chaque instant dans la file d’attente Process 1.Queue lorsque le champ Expression
= NQ(Process 1.Queue) (voir figure ci-dessous).

Bloc N Bloc M
t
N
(1),
t
N
(2),
.
.
t
M
(1),
t
M
(2),
.
.
Assign
(Attribute 1
= TNOW)
Record 1
(Attribute
Name =
Attribute 1)
t
M
(1) - t
N
(1),
t
M
(2) - t
N
(2),
.
.
53
2.b) Lorsque le champ Type = Frequency et le champ Frequency Type = Value, le bloc
Statistic permet, à travers la variable NR (abréviation de Number of busy Resource units) -
mise à jour automatiquement par SIMAN, de disposer du taux d’occupation d’une ressource.
Par exemple, une machine constituée de n ressources permet le traitement en parallèle de n
pièces. Une ressource peut être occupée (busy), soit disponible (idle). Par exemple,
considérons une machine, représentée par un bloc Process 1, utilisant une ressource Resource
1 de capacité égale à 3 (donnée déclarée dans un bloc Resource), la variable Statistic 4
(champ Name = Statistic 4) permet de connaître le nombre de ressources Resource 1 occupées
au cours du temps (ce nombre pouvant être égal à 0, 1, 2 ou 3) lorsque le champ Expression
=NR(Resource 1) (voir figure ci-dessous).

2.c) Le nom du fichier - ainsi que son répertoire si celui-ci est différent du répertoire
contenant l’application - dans lequel sont enregistrées les données issues d’un bloc Record ou
d’une variable SIMAN (NQ ou NR) est indiqué dans le champ Counter Output File ou Tally
Output File (selon que le bloc Record est relatif à un compteur ou un tally) ou Output File
(pour une variable SIMAN NQ ou NR). Le contenu du champ Type est respectivement égal à
Counter, Tally ou Frequency selon que les données sont issues d’un compteur, d’un tally ou
d’une variable SIMAN (NQ ou NR). Afin de disposer des données au format csv (abréviation
de comma-separated-value, « comma » signifiant virgule), il suffit de mettre l’extension .csv
au fichier de sauvegarde. Ce format est reconnu notamment par MatLab (via la commande
CSVREAD) et Excel. Au préalable, il faut indiquer que le fichier de sauvegarde est au format
texte ; pour cela cocher la case Write Statistics Output Files as Text accessible via le menu
Run/Setup/Run Control/Advanced.




VIII.4 ANIMATION GRAPHIQUE

L'animation permet de décrire graphiquement l'évolution dynamique de l'état du système
simulé, notamment à travers une visualisation :
du flux des entités (par exemple, des pièces circulant le long d'une ligne de
production),
de l'état des ressources (par exemple, l'état libre (idle), occupée (busy) ou inactive
(inactive) d'une machine, d'un robot),
de l'évolution des variables, des attributs (par exemple, le contenu d'une variable
indiquant le temps de traitement d'une machine, l'état d'un stock).

L'animation est un moyen très efficace de communication. D'un abord facile, notamment pour
les décideurs non nécessairement initiés aux aspects techniques, elle permet - sous réserve
bien sûr que les conditions de simulation soient crédibles - de mettre en avant les phénomènes
54
étudiés. Elle permet également lors de la conception du modèle de simulation de vérifier son
bon fonctionnement à travers une visualisation étape par étape (voir commande Step ►| ) du
cheminement des entités dans le modèle de simulation.

Un exemple est donné dans le fichier \Exemples\Animation_Un_exemple\Animation.Doe.


Animation des entités

Une animation, rattachée aux connecteurs, est proposée par défaut (voir option Animate
Connectors dans le menu Object). Elle permet de visualiser le flux des entités le long des
connecteurs, i.e., les liens reliant les modules entre eux :






Notons que le mouvement des entités le long des connecteurs n'a pas d'impact sur le temps de
simulation (TNOW).
La simulation de temps de transport nécessite l'utilisation du bloc STATION du template
Advanced Transfer.

L'image initiale utilisée pour représenter un type d'entité donné est définie dans le bloc Entity
(issu du template Basic Process, appartenant au cadre expérimental et donc non traversé par
une entité). L'image est par défaut celle notée Picture.Report et est indiquée dans le champ
Initial Picture du module Entity. Le changement de l'image associée à une entité se fait via
son passage dans un bloc Assign en assignant une nouvelle image à l'attribut Entity Picture
(par exemple, Type : Entity Picture, Entity Picture : Picture.Truck).
Le menu Edit/Entity Picture permet d'accéder à d'autres images (contenues dans des fichiers
.plb). Le bouton Open permet d’ouvrir un fichier .plb particulier, lequel contient des images.
Par exemple, le fichier machine.plb met à disposition des images relatives à des machines.
Il est également possible de créer ses propres images, lesquelles seront sauvegardées dans un
fichier .plb. Pour créer une image, cliquez sur le bouton Add de droite, ce qui fait apparaître
une case grise. Le fait de double cliquer dans cette case permet d’ouvrir une fenêtre (Picture
Editor) où il est possible de concevoir une image. Fermer la fenêtre une fois l’image conçue ;
elle apparaîtra alors à la place de la case grise. Le bouton Save permet de sauvegarder dans un
fichier .plb de votre choix la, voire les images créées.

La barre d'outils Animation (Animate)

Cette barre d'outils fournit une interface avec les objets de base de l'animation (cocher la case
Animate de la fenêtre issue du menu View/Toolbars… pour faire apparaître – si nécessaire –
cette barre d'outils).

Create
Process
0
0
connecteur
55









Ces objets sont décrits ci-dessous :
- Affichage d'état :
- Clock permet d'afficher le temps de simulation en heures, minutes et secondes,
- Date permet d'afficher le temps de simulation en jours, mois et années,
- Variable permet d'afficher la valeur numérique d'une expression mathématique ou
logique,
- Level affiche la valeur d'une expression relative à des valeurs minimum et maximum
spécifiées,
- Histogram permet d'afficher la distribution de la valeur d'une expression dans une
plage spécifiée,
- Plot permet d'afficher les valeurs passées d'une expression sur une plage de temps
spécifiée.

- Zone d'attente :
- Queue permet d'afficher les entités en attente d'un événement spécifié (par exemple, la
disponibilité d'une ressource).

- Image :
- Resource permet de disposer d'un objet (par exemple, une machine) à capacité limitée
pouvant être alloué à des entités. Une ressource peut être dans l'état idle, busy ou
inactive. Durant la simulation, l'image d'une ressource change en fonction de son état.
- Global permet d'associer des images à une expression (variable, attribut). Durant la
simulation, l'image de l'expression change en fonction sa valeur par rapport à une
valeur spécifiée.

La barre d'outils Dessin (Drawing)

Les objets de cette barre d'outils permettent l'ajout de dessins statiques, ou de texte :







Affichage d'état : Clock Date Variable Level Histogram Plot
Zone d'attente : Queue
Image : Resource Global
Line Polyline Arc Bezier curve Box Polygon Ellipse Text Couleur
56
VIII.5 DONNÉES D'ENTRÉES

Le module Input Analyser d'ARENA permet l'exploitation de données d'entrées en
déterminant automatiquement la loi de probabilité la plus adaptée de la distribution empirique
obtenue à partir des données d'entrée (regroupées dans un fichier).
Les données d’entrées sont contenues dans un fichier au format .dst où une ligne contient un
nombre (réel). En fait, ce fichier est de type texte et donc lisible, par exemple, via le
WordPad. Voir, à titre d’exemple, le fichier test1.dst, ou test2.dst, dans le répertoire
\Exemples\Distribution. Pour analyser un fichier de données (.dst), faire : Rockwell
Software/Arena/Input Analyzer afin d’ouvrir l’application Input Analyzer. Une fois dans cette
application, faire : File/New afin d’ouvrir une fenêtre Input1. A près avoir cliquer dans la
fenêtre grisée, faire File/Data File/Use Existing…
9
, ce qui permet de récupérer le fichier (.dst)
contenant les données à convertir en une loi de distribution : il en résulte l’affichage d’un
histogramme des données.



Dans la fenêtre grisée, sont décrites des informations relatives aux données (le nombre de
données, les valeurs minimale et maximale, la moyenne, l’écart type) et à l’histogramme (la
portée (la plus petite valeur et la plus grande valeur considérées dans l’histogramme), le
nombre d’intervalles (en ) ( pts de nbre O et compris entre 5 et 40)).

9
A ce niveau, vous pourriez créer un fichier de données (.dst) correspondant à une certaine
distribution en sélectionnant Generate New….
57
Pour modifier les paramètres de l’histogramme des données, à savoir le nombre d’intervalles,
la borne inférieure (les données ayant des valeurs inférieures étant ignorées) et la borne
supérieure (les données ayant des valeurs supérieures étant ignorées), faire :
Options/Parameters/Histogram….

Pour trouver la meilleure distribution correspondant à cet histogramme, faire : Fit/Fit All
10
.



VIII.6 ANALYSE DES RÉSULTATS

Le module Output Analyser d'ARENA permet, à l'issue d'une simulation, le calcul de résultats
statistiques tels que la moyenne, l'écart type, la valeur minimum, la valeur maximum. Il est
également possible de récupérer l'historique complet des valeurs récoltées au cours de la
simulation dans des fichiers (exploitables par exemple via le logiciel Excel).
Outre les tracés de courbes et d'histogrammes, ce module intègre différentes fonctions
statistiques, telles que le calcul d'intervalles de confiance, la construction de corrélogrammes,
la comparaison et l'analyse de moyennes, l'analyse de variances, le test d'hypothèses, …



10
« To fit » signifie « ajuster ».
58
ANNEXE : UTILISATION DES TEMPLATES ELEMENTS ET BLOCKS


A.1 PRÉSENTATION DE SIMAN-ARENA

Le langage SIMAN-ARENA s'articule autour d'un ensemble de programmes organisés selon
le schéma suivant ; soit exemple, le nom du programme correspondant au modèle (logiciel) du
système considéré. On retrouve dans le schéma les 2 programmes constituant le modèle
logiciel, à savoir le programme, nommé exemple.mod, issu de la partie modèle, et le
programme, nommé exemple.exp, issu du cadre expérimental. Ces 2 programmes sont des
fichiers de type texte, i.e., lisible par exemple via le logiciel Notepad.

Les fichiers MODEL.EXE, EXPMT.EXE, LINKER.EXE, SIMAN.EXE sont fournis par
SIMAN/ARENA (ces fichiers sont placés dans le répertoire \Rockwell Software\Arena afin de
compiler et linker les 2 programmes (exemple.mod et exemple.exp).
































exemple.mod
exemple.exp
MODEL.EXE
(compilateur SIMAN)
LINKER.EXE
(linkeur SIMAN)
EXPMT.EXE
(compilateur SIMAN)
exemple.e
(données
compilées)
exemple.m
(modèle
compilé)
exemple.doe
exemple.out
SIMAN.EXE
partie modèle
(cheminement des entités)
cadre expérimental
(condition de simulation)
sorties
particulières
sorties
standards
.doe : modèle animé
.p : modèle non animé
59
Reprenons l'exemple du tapis roulant considéré dans la section VIII.1. Soit un tapis roulant,
ayant un temps de transport de 3 unités de temps, représenté dans SIMAN-ARENA par le
modèle logiciel décrit comme suit :

Les blocs Create, Delay, Dispose sont issus du template Blocks. Le bloc Create crée 1 entité à
partir de l’instant 0, ceci toute les 2 unités de temps. Le bloc Delay force une entité à
séjourner 3 unités de temps dans le bloc. Le bloc Dispose détruit toute entité entrant dans le
bloc.

Les blocs Project, Replicate sont issus du template Elements. Le bloc Project permet
notamment de donner un nom au projet (Premier exemple) et le nom du programmeur
(ISTIA), de manière analogue à l'entête d'un programme informatique. Le bloc Replicate
permet notamment de fixer le temps où se termine la simulation, ici égale à 10 unités de temps
(champ : Replication Length).

Les 2 fichiers - de type texte - générés par SIMAN-ARENA (accessibles à l'aide du menu
Run/SIMAN/View) sont listés ci-dessous.

• fichier exemple.mod : (partie modèle)

0$ CREATE, 1:2:NEXT(1$);
1$ DELAY: 3,,Other:NEXT(2$);
2$ DISPOSE: No;

0$, 1$, 2$ sont des étiquettes.

• fichier exemple.exp : (cadre expérimental)

PROJECT, "Premier
exemple","ISTIA",,Yes,No,Yes,No,No,No,No,No;
REPLICATE, 1,0.0,10,Yes,Yes,0.0,,,24.0,Hours,No,No;

2 3
10
60
Le modèle RdP correspondant à la partie modèle du modèle logiciel précédent est décrit dans
la figure suivante :











ARENA est l'environnement de programmation graphique de SIMAN, il permet de construire
un modèle en proposant des primitives de représentation plus ou moins détaillées. Il permet
également de créer des animations graphiques pour visualiser le comportement du modèle
durant la simulation. Les primitives de représentation sont regroupées dans différentes
bibliothèques (templates). Les 2 templates contenant les blocs les plus élémentaires sont :
- Le template Blocks qui regroupe les blocs fonctionnels élémentaires de SIMAN
relativement à la partie modèle ; un bloc est l'équivalent d'une ligne du fichier .mod.
L'utilisation de ce template entraîne généralement l'utilisation du template Elements.
- Le template Elements qui regroupe les blocs fonctionnels élémentaires de SIMAN
relativement au cadre expérimental ; un bloc est l'équivalent d'une ligne du fichier .exp.
Ces templates ne sont pas disponibles par défaut dans l’environnement de SIMAN-ARENA,
pour permettre d'attacher (importer) un template non fourni par défaut, utiliser le menu
File/Template Panel/Attach.


A.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA
CONSTRUCTION DU MODÈLE

a) CREATE (issu du template Blocks) : Ce bloc permet de créer des entités. On peut préciser
la date de première création (champ : First Creation), la période de création (champ : Interval)
et la taille des lots (champ : Batch Size) ainsi que le nombre total de lots à créer (champ :
Maximum Batches) (cf. figure suivante).

3
CREATE DELAY
DISPOSE
2
2
3
61


Voir une description de ce bloc à l'aide du RdP suivant.











Le nombre de jetons présents dans la place P correspond au nombre d'entités créées par le
bloc CREATE.

b) DISPOSE (issu du template Blocks) : Une entité entrant dans ce bloc est immédiatement
détruite (cf. figure suivante). C'est l'équivalent d'une transition puit, c'est-à-dire, d'une
transition sans place amont.



Interval (∞)
Maximum
Batches
(∞)
Batch Size
(1)
First
Creation
(0)
P
62
c) DELAY (issu du template Blocks) : Quand une entité entre dans ce bloc, elle y reste
inconditionnellement pendant la durée (aléatoire ou non) indiquée dans le bloc (champ :
Duration) (cf. figure suivante).



Voir une description de ce bloc à l'aide du RdP suivant.








Le nombre de jetons présents dans la place P correspond au nombre d'entités présentes dans le
bloc DELAY.

d) QUEUE, SEIZE (issus du template Blocks) : Pour entrer dans un bloc SEIZE, une entité
doit disposer d'un certain nombre de ressources (le nom de la ressource est spécifié dans le
champ Resource ID, le nombre de ressources nécessaires est spécifié dans le champ Number
of Units). Afin de simplifier la compréhension, le type de ressources (Resource ID) réclamées
est supposé unique. Sachant qu'une ressource peut être occupée, est placée en amont du bloc
SEIZE un bloc QUEUE qui va représenter une file d'attente dans laquelle seront stockées les
entités en attente d'une, voire de plusieurs ressources nécessaires à l'entrée des entités dans le
bloc SEIZE aval (cf. figure suivante).

Duration (0)
Entrée d'une entité
dans le bloc DELAY
Sortie de l'entité
du bloc DELAY
P
63



Voir une description d’un bloc QUEUE et d’un bloc SEIZE à l'aide du RdP suivant.



















La transition T pour être activée doit :
- Contenir (au moins) un jeton dans la place P1, ce qui correspond à la présence d'(au
moins) une entité dans le bloc QUEUE en attente d'une, voire de plusieurs
ressources.
- Contenir (au moins) Number of Units jetons dans la place P2, ce qui signifie qu'une
entité – présente dans le bloc QUEUE – doit pouvoir disposer du nombre requis de
ressources (à savoir Number of Units ressources Resource ID).
Le fait de franchir la transition T a pour effet d'ôter 1 jeton dans la place P1 et d’ôter Number
of Units jetons dans la place P2, ce qui représente la sortie d’une entité du bloc SEIZE et la
« saisie » de Number of Units ressources Resource ID.

bloc
QUEUE
bloc
SEIZE
T
P1
P2
Number
of Units
(1)
Entrée d'une entité
dans le bloc QUEUE
Entrée de l'entité
dans le bloc SEIZE
Sortie de l'entité
du bloc SEIZE
Sortie de l'entité
du bloc QUEUE
64
Le bloc QUEUE est caractérisé (configuré) par le bloc QUEUES issu du template Elements, à
travers :
- Le champ Name qui permet de nommer le bloc QUEUE, par exemple, stock machine 1 ;
- Le champ Ranking Criterion qui indique le mode de gestion du bloc QUEUE. Par
défaut, le mode de gestion est de type « First In, First Out » (FIFO).
Le bloc QUEUES permet de définir plusieurs blocs QUEUE, au sens où il peut y avoir
plusieurs files d'attente dans un même modèle.

Le bloc SEIZE est lié au bloc RESOURCES issu du template Elements, à travers le champ
Name qui permet de nommer la, ou les ressources qui vont être saisies.

e) RELEASE (issu du template Blocks) : Quand une entité entre dans ce bloc, elle libère
(relâche) la, ou les ressources dont le nom est spécifié dans le champ Resource ID (le nombre
de ressources libérées est spécifié dans le champ Quantity to Release) (cf. figure suivante).



Voir une description à l'aide du RdP suivant.













Le fait de franchir la transition T' provoque l'apparition de Quantity to Release jetons dans la
place P1. Afin de simplifier le graphe précédent, le type de ressources (Resource ID) libérées
est supposé unique. Le fait de franchir cette transition correspond à ce qu’une entité sorte du
bloc RELEASE et à la mise en disponibilité de Quantity to Release ressources (Resource ID).

T'
P1
Quantity
to Release
(1)
Entrée d'une entité
dans le bloc RELEASE
Sortie de l'entité
du bloc RELEASE
65
Comme pour le bloc SEIZE, le bloc RELEASE est lié au bloc RESOURCES, issu du template
Elements, à travers le champ Name qui permet de nommer la, ou les ressources qui vont être
libérées.

f) ASSIGN (issu du template Blocks) : Ce bloc permet d’assigner une valeur à un attribut, une
variable ou à l’état d’une ressource, durant l’exécution d’une simulation. Quand une entité
entre dans un bloc ASSIGN, l’expression - logique ou mathématique - spécifiée dans le champ
Value est évaluée et assignée à l’attribut (rattaché à l’entité présente dans le bloc), la variable
ou l’état de la ressource, spécifié dans le champ Variable or Attribute (cf. figure suivante).



Les blocs VARIABLES et ATTRIBUTES, issus du template Elements, permettent de
déclarer respectivement les variables et les attributs. Le bloc STATESETS, issus du template
Elements, permet de définir pour une ressource un état non standard (i.e., autre que Idle, Busy,
Inactive, et Failed).

Voir une description du bloc ASSIGN à l'aide du RdP suivant.











g) BRANCH (issu du template Blocks) : Ce bloc permet d’aiguiller un flux d’entités vers
différents blocs de destination, il comporte une entrée et plusieurs sorties.
Le routage se fait via un ensemble de branches. A chaque branche sont rattachées deux
opérandes :
- la condition de branchement, indiquée dans le champ Condition or Probability,
spécifie la condition pour laquelle une entité sélectionne la branche ;
Attribut_1 := val_1
Variable_1 := val_2
Attribut_2 := val_3
STATE(machine_1) := val_4
.
.
.
Entrée d'une entité
dans le bloc ASSIGN
Sortie de l'entité
du bloc ASSIGN
66
- le label destination, indiqué dans le champ Send To Label, aiguille l’entité vers le bloc
approprié.
Quand une entité entre dans un bloc BRANCH, chaque condition de branchement est testée de
manière séquentielle (i.e., dans l’ordre de leurs déclarations dans le bloc). La branche
sélectionnée par une entité est la première branche pour laquelle la condition de branchement
est satisfaite ; l’entité est alors aiguillée vers le bloc indiqué via le label destination. Si aucune
branche n’est satisfaite, l’entité est détruite.
Quatre types de test sont possibles :
- If, Condition, Send To Label ;
- With, Probability, Send To Label permet un branchement probabiliste (la somme des
probabilité de toutes les branches ne peut pas dépassée 1) ;
- Else, Send To Label ;
- Always, Send To Label.



Voir une description de ce bloc à l'aide du RdP suivant.












h) MATCH (issu du template Blocks) : Ce bloc permet de synchroniser la progression de
deux, voire de plusieurs entités situées dans différents blocs QUEUE. Le lien entre ces blocs
QUEUE et le bloc MATCH se fait via des labels (indiqués dans les champs Label des blocs
QUEUE et dans les champs Queue Label du bloc MATCH), ce qui nécessite de cocher
l’option Detach des blocs QUEUE afin de les « détacher ». Quand tous les blocs QUEUE
associés au bloc MATCH ont une, voire plusieurs entités, ces entités sont libérées vers les
Entrée d'une entité
dans le bloc BRANCH
Sorties
.
.
.
Sélection d’une transition :
- If, Condition, Send To Label
- With, Probability, Send To Label
- Else, Send To Label
- Always, Send To Label
BRANCH
Condition
Probability
If
With
Else
Always
67
blocs spécifiés à travers des labels de destination (indiqués dans les champs Destination
Label). Notons que les entités issues d’un bloc QUEUE sont détruites si le label de destination
correspondant n’est pas indiqué (cf. figure suivante).



Voir une description de ce bloc à l'aide du RdP suivant.













i) DUPLICATE (issu du template Blocks) : Ce bloc permet de dupliquer des entités et de les
envoyer vers différents blocs via des labels (indiqués dans les champs Duplicate Destination).
QUEUE
Q_1
QUEUE
Q_2
MATCH
Lab_dest_1
Lab_dest_2
Lab_1
Lab_2
bloc QUEUE Q_1
Lab_dest_1
Lab_dest_2
bloc QUEUE Q_2
blocs QUEUE
Q_1 et Q_2
bloc MATCH
Lab_1
Lab_2
68
Le nombre de duplication créée est spécifié dans le champ Quantity to Duplicate. Lorsqu’une
entité entre dans ce bloc et comporte des attributs, les attributs de toutes les entités dupliquées
sont identiques aux valeurs courantes des attributs de l’entité à dupliquer.



Voir une description de ce bloc à l'aide du RdP suivant.













A.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT UNE ANALYSE DU
MODÈLE


Les blocs décrits dans A.2 ont pour objectif de modéliser un système physique. La collecte de
résultats spécifiques à un système donné se fait en utilisant des blocs supplémentaires.
Quelques uns de ces blocs sont définit ci-dessous.

a) Le bloc COUNT, issu du template Blocks, permet de compter le nombre d'entités qui
transitent par ce bloc. Le bloc COUNT, dont le nom est spécifié dans le champ Counter ID,
est lié au bloc COUNTERS, issu du template Elements, à travers le champ Name, ce dernier
permet de déclarer (définir) le (ou les différents) bloc(s) COUNT présent(s) dans la partie
modèle. Voir plus bas en ce qui concerne un éventuel enregistrement des données.
DUPLICATE
.
.
.
Quantity to
Duplicate
Entrée de l‘entité
dans le bloc DUPLICATE
.
.
.
Sortie de l’entité
Sorties des
N entités
dupliquées
Quantity to
Duplicate := N
69

b) Le bloc TALLY, issu du template Blocks, permet :
- De recueillir les temps de passage successif de 2 entités. Pour cela, indiquer BET
(pour BETween) dans le champ Value.
- De recueillir les temps mis par les entités traversant une partie (ou l'ensemble) d'un
modèle. Par exemple, on souhaite pour chaque entité recueillir la différence entre le
temps de sortie du bloc fonctionnel M et le temps de sortie du bloc fonctionnel N.
Soient ) ( ), ( i t i t
M N
les temps de sortie de l'entité n° i des blocs N et M respectivement
(cf. schéma suivant).






Pour réaliser cela, on dispose :
- Un bloc ASSIGN (cf. A.2.f) (juste) après le bloc N afin d'assigner le temps de
passage, à savoir TNOW, de chaque entité dans un attribut, noté par exemple
Tps_entrée (un attribut est une variable associée individuellement aux entités).
- Un bloc TALLY (juste) après le bloc M afin de disposer des temps de parcours de la
sortie du bloc N au bloc M. Pour cela, indiquer dans le champ Value la donnée
« INT(Tps_entrée) » (INT pour INTerval).
(Voir le schéma suivant).















Le bloc TALLY
11
est lié au bloc TALLIES, issu du template Elements, à travers le champ
Name, ce dernier permet de nommer le (ou les différents) bloc(s) TALLY utilisé(s) dans la
partie modèle. Voir plus bas en ce qui concerne un éventuel enregistrement des données.

Le bloc ASSIGN est lié au bloc ATTRIBUTES, issu du template Elements, à travers le champ
Name qui permet de nommer un attribut.

Remarque : Il est possible d’assigner pour chaque entité sortant d’un bloc CREATE son temps
de création (TNOW) dans un attribut (Tps_entrée) sans utiliser un bloc ASSIGN (situé juste en

11
« To keep a tally of … » signifie « tenir le compte de … ».
Bloc N Bloc M
t
N
(i)
t
M
(i)
Bloc N Bloc M
t
N
(1),
t
N
(2),
.
.
t
M
(1),
t
M
(2),
.
.
ASSIGN
(Tps_entrée
= TNOW)
TALLY
(Value =
INT(Tps_
entrée))
t
M
(1) - t
N
(1),
t
M
(2) - t
N
(2),
.
.
TALLIES
ATTRIBUTES
70
aval du bloc CREATE). Pour cela il suffit de mettre l’attribut Tps_entrée dans le champ Mark
Attribute du bloc CREATE (voir la figure décrivant le bloc CREATE).

c) La variable NQ (abréviation de Number in Queue) est mise à jour automatiquement par
SIMAN et permet de disposer du nombre d’entités contenues dans un bloc QUEUE durant la
simulation. Par exemple, en supposant défini un bloc QUEUE intitulé Stock_1, la variable
NQ(Stock_1) permet de connaître le nombre d’entités présentes à chaque instant dans le bloc
QUEUE intitulé Stock_1.
Une variable NQ est déclarée dans un bloc DSTATS, issu du template Elements, à travers les
champs :
- SIMAN Expression, dans lequel on indique NQ(Stock_1) ;
- Name, utilisé pour identifier le résultat donné dans le rapport à l’issue de la
simulation, soit par exemple Evolution_Stock_1 ;
- Output File, pour un éventuel enregistrement des données.

d) La variable NR (abréviation de Number of busy Resource units) est mise à jour
automatiquement par SIMAN et permet de connaître durant la simulation le taux d’occupation
d’une ressource. Par exemple, une machine constituée de n ressources permet le traitement en
parallèle de n pièces. Une ressource peut être occupée (busy) (cf. bloc SEIZE), soit disponible
(idle) (cf. bloc RELEASE). Par exemple, en supposant définie une ressource Machine_1 de
capacité égale à 3 (déclarée dans un bloc RESOURCES), la variable NR(Machine_1) permet
de connaître le nombre de ressources Machine_1 occupées au cours du temps (ce nombre
pouvant être égal à 0, 1, 2 ou 3).
Une variable NR est déclarée dans un bloc DSTATS, issu du template Elements, à travers les
champs :
- SIMAN Expression, dans lequel on indique NR(Machine_1) ;
- Name, utilisé pour identifier le résultat donné dans le rapport à l’issue de la
simulation ;
- Output File, pour un éventuel enregistrement des données.


Enregistrement des données issues d’un bloc COUNT ou TALLY, d’une variable NQ ou
NR : Le répertoire ainsi que le nom du fichier dans lequel sont enregistrées les données issues
respectivement d’un bloc COUNT ou TALLY ou d’une variable NQ ou NR est indiqué entre
guillemets à travers le champ Output File respectivement du bloc COUNTERS, TALLIES ou
DSTATS (pour les variables NQ ou NR). Afin de disposer des données au format csv
(abréviation de comma-separated-value, « comma » signifiant virgule), il suffit de mettre
l’extension .csv au fichier de sauvegarde (par exemple : « D:\Simulation\Fichier_1.csv »). Ce
format est reconnu notamment par MatLab (via la commande CSVREAD) et Excel. Au
préalable, il faut indiquer que le fichier de sauvegarde est au format texte ; pour cela faire :
Run/Setup/Run Control/Advanced, puis cocher la case Write Statistics Output Files as Text.

Annexe : Utilisation des templates Elements et Blocks

Bibliographie
Introduction to Simulation Using SIMAN. Second Edition, C. Dennis Pegden, R.E. Shannon, R.P. Sadowski, Ed. Mc Graw-Hill. Handbook of Simulation: Principles, Methodology, Advances, Applications, and Practice, J. Bank , Wiley Interscience, 1998. Discrete Event Systems - Modeling and Performance Analysis, Christos G. Cassandras, Aksen Associates Incorporated Publishers, ISBN 0-256-11212-6. Optimisation des flux de production : Méthodes et simulation, A. Ait Hssain, Ed. Dunod, 2000. Probabilités et statistiques. 3ème édition, A. Ruegg, Presses Polytechniques Romandes. Du Grafcet aux réseaux de Petri. R. David, H. Alla, Hermès, 1989. Cours de « Simulation des systèmes de production », A. Ait Hssain, Ed. 96/97 - INSA Lyon. Cours de « Simulation », N. Mebarki, 97/98 - IUT OGP Nantes. Cours de « Simulation informatique des systèmes de production », P. Castagna, A. L'Anton, N. Mebarki, 97/98 - IUT OGP Nantes. Cours de « Réseaux de files d'attente et simulation », J. P. Chemla, 96/97 - Université de Tours. Cours de « Simulação de Sistemas Dinâmicos », R. Santos Mendes, 02/03 - UNICAMP - Campinas, Brésil (http://www.dca.fee.unicamp.br/~rafael/). Dossier de présentation « Arena. La solution simulation », Ouroumoff Diffusion, Lyon.

1

I INTRODUCTION À LA SIMULATION
La simulation est un processus qui consiste à : - Concevoir un modèle du système (réel) étudié, - Mener des expérimentations sur ce modèle (et non pas des calculs), - Interpréter les observations fournies par le déroulement du modèle et formuler des décisions relatives au système. Le but peut être de comprendre le comportement dynamique du système, de comparer des configurations, d’évaluer différentes stratégies de pilotage, d’évaluer et d’optimiser des performances. La simulation est une technique, appliquée dans ce cours aux systèmes de production, permettant d'étudier le comportement d'un système dynamique en construisant un modèle logiciel de celui-ci.
CREATE SEIZE
Operateur 1

DELAY

DELAY
10

DELAY
1

RELEASE
Operateur

ASSIGN
Date de sortie

DISPOSE

SCHEDULES
Calendrier

VARIABLES
Date de sortie

DSTATS
NR(Machine) NR(Operateur)

Modélisation

Analyse des résultats

Les domaines d'application sont divers. Sont listés ci-dessous quelques classes d’applications et quelques exemples de problèmes typiques rattachés à ces classes : Systèmes de flux de production - équilibrage de lignes d’assemblage, - conception de systèmes de transfert entre des postes, - dimensionnement des stocks d’un atelier, - comparaison de pilotage, - évaluation de la charge prévisionnelle, - étude de la synchronisation entre les réceptions des pièces et l’assemblage. Flux logistiques et systèmes de transport - conception et dimensionnement d’entrepôts,
2

VII). . on utilise une modélisation conceptuelle par réseaux de Petri (cf. . ce langage de simulation permet également d’extraire des résultats issus de différentes expérimentations (cf. Méthodologie générale On distingue classiquement quatre phases distinctes : La modélisation (représenter le comportement du système). .étude de procédures de contrôle des flux de véhicules en circulation.gestion d’hôpitaux (personnel. . Dans le cadre de ce cours. Systèmes informatiques et télécommunications . . . Programme de simulation Modèle conceptuel : Le modèle n'est qu'une approximation du système..gestion de restaurants. il est conditionné par l'objectif de l'étude. les jeux.étude des comportements des utilisateurs. . …).. service d’urgence. …). (a) Le passage du système au modèle conceptuel est une étape essentielle pour la simulation.évaluation de protocoles de gestion des transactions de bases de données.étude de transactions bancaires.dimensionnement d’une flotte de camions.le nucléaire. l'expérimentation et l'interprétation des résultats (accompagnée d’actions).comparaisons de politiques de maintenance des avions. chp. Production des services .domaine militaire (support logistique. chp. 3 . Le passage du modèle conceptuel au modèle/programme de simulation se fait en utilisant le langage Siman-Arean .conception et dimensionnement de hubs (« moyeu »). Autres classes d’applications . lits.. coordination des opérations. (b) Expérimentation : Il s'agit de construire des théories.étude de la file d’attente mémoire d’un serveur. la programmation. . la météo. qui prennent en compte le comportement observé. Validation Analyse & Modélisation Modèle conceptuel(a) Système (réel) Interprétation & Action Correction Vérification Expérimentation(b) Programmation Résultats Correction Figure 1 : Méthodologie d'une simulation. ou hypothèses. . VIII).

I. • Définir la dynamique du système (entités qui circulent entre les éléments. modèle logiciel (Simulink. 4 . d'autres sont dues aux produits actuellement disponibles sur le marché (notons qu’une formation sur les logiciels utilisés est souvent nécessaire) : • La programmation demande un certain niveau d'expertise. +). Différents points doivent être abordés : • Définir l'objectif de la modélisation (lié au cahier des charges) : Pourquoi modélise-t-on ? Qu'étudie-t-on ? Que veut-on améliorer. • Abstraction (choisir les éléments du système pertinents pour l'étude).1 L’ÉTAPE DE MODÉLISATION L’étape de modélisation est une phase essentielle à la simulation. C'est une technique entièrement itérative qui ne propose pas de solution finale mais qui permet seulement à l'utilisateur d'envisager des choix possibles. bond graphs). Elle ne peut qu'établir les performances d'une solution conçue et imaginée par l'utilisateur. • Souvent pour des raisons financières. On étudie des phénomènes aléatoires et les techniques d'analyse demandent de la rigueur . ni trop précis).2 LES LIMITES DE LA SIMULATION Certaines limites sont dues à la technique elle-même. La difficulté liée à la simulation est double : • Les résultats de simulation sont souvent complexes à interpréter.I. chaînes de Markov). les sorties). ou d'un processus) et les limites du système (les entrées. on doit aller au plus vite vers une solution finale (sans passer trop de temps à explorer d’autres solutions intermédiaires). Siman-Arena). modèle graphique (réseaux de Petri. conceptualisation : Modèle mathématique (algèbre (max. En tout état de cause. • La simulation n'est pas une technique d'optimisation au sens propre. c'est lui qui devra décider de ce qui répond le mieux aux problèmes posés. • Formalisation. La qualité des résultats fournis lors de l'analyse des solutions est liée à la qualité de la modélisation et au savoir-faire du « modélisateur » (la modélisation est un métier). ou faire ? • Définir les éléments du système (via la réalisation d'une fonction. comportement du système au cours du temps). • Définir les interactions entre ces éléments (hiérarchie). il est souvent difficile de faire la part du crucial et de l'anecdotique (le modèle doit être ni trop grossier.

L'évaluation de performances1.. exploite ces données pour : . . …). Il est traversé par un flux d'informations (présence d'une pièce. Modèle Historique. i.sont caractérisés par une forte complexité et flexibilité. Le système à étudier peut être existant. Le modèle décrit le fonctionnement du système (sa structure et son comportement dynamique) avec le degré de détail nécessaire à la résolution du problème posé.. pièces). état d'une machine) et un flux physique (matière première. les systèmes de communication.). les transitions entre états sont associées à l'occurrence d'événements discrets asynchrones). d'un système de conduite (partie commande) et d'un système d'informations reliant ces deux derniers. . contraintes technologiques).). 1 L’évaluation de performances se base souvent sur le temps de cycle (nombre moyen de pièces par unité de temps). . . C'est une représentation de la circulation des flux de produits : . temps de transfert. dont certains sont provoqués (départ d’un train. nombre total de pièces dans le système à chaque instant). le WIP (Work In Process. à modifier ou non encore construit. statistiques Programme Système de production Evaluation de performances Un système de production est constitué d'un système opérant (physique). ils peuvent être spécifiés par des modèles à événements discrets (un modèle est à événements discrets lorsque l’espace d'état est à événements discrets. en terme de circulation de produits. les taux d'engagements des ressources. ..Le flux est dirigé par les règles de conduite (système de contrôle).Le flux est ralenti par des activités qui mobilisent des ressources (après avoir attendu leur disponibilité) pendant un certain temps (durées opératoires.Déterminer des performances absolues (temps de cycle maximum. temps de transports des pièces d'un lieu à un autre.Prédire des performances dans certaines conditions.à l'initiative de l'Homme . le makespan (intervalle de temps entre le début et la fin de la production des pièces). L'historique et les statistiques portent sur les déplacements (temps de séjour des pièces.II LA SIMULATION DES SYSTÈMES DE PRODUCTION Les systèmes automatisés de production . les longueurs des files d'attente. les systèmes informatiques sont d'autres exemples de systèmes dynamiques dont l'activité est due à des événements discrets.Faire une analyse de sensibilité (parmi des choix semblables). appui sur une touche d'un clavier) et d'autres pas (panne d'un équipement).Le flux est contraint par des règles opératoires (gammes.. 5 . . Selon un certain point de vue. ferroviaire... .. Les systèmes de trafic (aérien.e. système sans panne).

Les modèles (et programmes) de simulation. dont la valeur change au cours du temps. Dans le cas où les changements d’état s’effectuent. la description se fait.De variables. taille.Comparer des alternatives (parmi des choix possibles). il y a : . ou des variables d’état. ? » pour l'étude de systèmes de production complexes (structure.e. t1B) L'état du système à un instant donné est caractérisé par l'ensemble des valeurs des variables et des attributs de tous les objets. clients. la description se fait. à des instants discrets dans le temps. . 6 ..Les réseaux de Petri → analyse des propriétés. . comportement dynamique. par exemple. exemple : Occupation d’une machine). ressources) caractérisés par des attributs : Fixes (i. simulation. si une variable représente le nombre de pièces dans un stock alors ses valeurs varient seulement aux instants où des pièces entrent. Par exemple. ou variables (i. Le modèle reproduit l'évolution au cours du temps de l'état3 du système sous l'effet des activités qui y sont réalisées.Les réseaux de files d'attente → évaluation analytique de performances.e.. ou sortent.Des relations entre ces objets (services effectués au cours du temps). 2 Les changements d’état de tels systèmes s’opèrent instantanément.. à des moments discrets dans le temps.1 OUTILS DE MODÉLISATION Les systèmes de production font partie des systèmes (dynamiques) à événements discrets2.. Exemple : M2 Pièces A Pièces B M1 t1A t1B M3 Attributs fixes : Pièces A. le modèle est à événements discrets. Pièces B Attributs variables : Temps de traitement de la machine M1 (t1A. . via des équations différentielles. un modèle est composé : . le modèle est continu. Parmi les modèles utilisés pour l'étude de ces systèmes. dont la valeur ne change pas au cours du temps. . évaluation de performances. La simulation permet de répondre à la question « que se passe-t-il si . du stock. instantanément. 3 Dans le cas d’une évolution continue de l’état.D'objets (centres de services. exemple : Type de pièce). II. De façon générale.. choix multiples).

• Prise en compte de tous les aspects (données techniques. on obtient des valeurs des indicateurs de performances liés au volume de production.Evolution d'une simulation événementielle : Le modèle du système passe au cours du temps d'un état à un autre suite au déclenchement d'un événement. outils. machines (en fonctionnement. . Indicateurs de performances et prise de décision A partir de l'historique de circulation des flux de produits.Nombre et type de pièces produites. capacité des files d'attente.Volume de production : .. géométrie du réseau de transport.. .2 APPLICATION AUX SYSTÈMES DE PRODUCTION 1. où apparaissent conjointement des comportements continus et des comportements dus à des événements discrets. .. .. 7 . .. à l'engagement des ressources et éventuellement à la satisfaction du client. inoccupées. par exemple. interactions très fortes entre les différents éléments d'un système de production : Nécessité d'une approche globale. Pourquoi ? • Complexité croissante.... ou de plusieurs événements. en panne). Ces indicateurs de performances sont ensuite agrégés pour des prises de décisions relatives à l'aide à la conception.Nombre et type de pièces défectueuses. A chaque événement est associée une fonction à exécuter laquelle peut modifier l'état du système à travers le déclenchement d'un. contraintes sociales. . personnel. Certains problèmes nécessitent des modèles dits hybrides.Engagement des ressources : . travail en équipe. à la conduite. à l’aide d’un réseau de Petri. Événement X Moteur Événement C Événement B Événement A Événements datables Exécution de l’événement dont la date d’occurrence est la plus proche Échéancier II.Taux d'utilisations : Machines. . stock.Temps passé par un élément dans un état : Ressources. heures supplémentaires). . cycle de pièce. 2..

A quel niveau ? a) La simulation : une aide à la conduite Réalité Système de commande Paramétrage automatique Simulation Modèle de commande Proposition de décisions Système physique Décision Résultats Modèle du système physique Le système présente un problème (il ne répond plus aux besoins des utilisateurs). disponibilité).Systèmes de transfert (nature. Les données à utiliser (recueil non exhaustif) : . taux rebut.Stocks (nature. ..Produits (type. stocks. personnel. On peut chercher à améliorer le système. . gestion). horaires). Bien mettre en évidence les dysfonctionnements par rapport aux besoins et proposer des solutions permettant de pallier à ces dysfonctionnements au moindre coût. gamme). .. capacité. caractéristiques). .Opérateurs (qualification. . soit en agissant sur la capacité des ressources.Stratégie(s) de gestion de production. • Définir les performances à mesurer. .Règles de fonctionnement (mode nominal ou dégradé). et pour un scénario de production donnée. coût. 8 .3. .Caractéristiques des automates (règles de commande). . • Déterminer les ressources goulets (machines. moyens de manutention. soit sur la manière dont on utilise ces ressources (règles de gestion). nombre.Moyens de production (capacité des machines.) qui agissent le plus sur les performances.

processus) Historique (produits. .b) La simulation : une aide à la traçabilité (implicite/explicite) Réalité Système de commande Identification Simulation Modèle de commande Identification Proposition de décisions Système de traçabilité Identification Historique (produits. recenser le contenu de l'historique des produits et du (des) processus. horaires). . au moyen d'une identification enregistrée (1994. systèmes de transfert (état). définir les informations éventuellement utilisées dans le système de commande. . développer un système de traçabilité. Les données à utiliser (recueil non exhaustif) concernent l'ensemble de l'état (dynamique) du système piloté dans le but « de retrouver l'historique.Opérateurs (qualification. l'utilisation ou la localisation d'un article ou d'une activité. . Bien mettre en évidence les entités à identifier. 9 .Produits. . articles. Le système de traçabilité devant être adapté à sa structure.Moyens de production (capacité des machines). On peut chercher à synthétiser un système de traçabilité qui soit fiable (le reflet de la réalité) et robuste (l'outil de simulation permettant la prise en compte de différents scenarii possibles. ceci sans risque pour le système (réel)). nombre.Stocks. processus) Modèle de traçabilité Identification Système physique Décisions Résultats Modèle du système physique L'objectif est de concevoir. lots (entités).Système d'identification. ISO 8402) » : . conforme à l'attente de l'environnement et en accord avec les standards et les règlements.Structure de traitement des données recueillies.

appelé simulateur. capacité des stocks. SIMAN est un des principaux logiciels standards en France (version éducative à prix étudié).). organisation du travail (cellules. Les moyens informatiques sont les langages de programmation généraux (C.. 10 . Cette alternative présente l’avantage de ne pas programmer (seules des données sont à entrer). 2. comme SIMAN. proposent des primitives de modélisation particulièrement adaptées aux systèmes de production (primitives de modélisation des ressources et fonction de transport). nombre de Kanban). taille des lots. stratégies de gestion de production (gestion des stocks. Ce type de logiciel offre une grande flexibilité mais avec des coûts de développement parfois importants. lignes. mixte). La mise en œuvre peut être longue. Evaluation des différents scénarii en fonction des critères les plus pertinents. Exemples d'applications : • Dimensionnement d'ateliers : Nombre et type des équipements (en fonction du coût). par contre on dispose d’une grande flexibilité.3 UTILISATION DE L’INFORMATIQUE On a trois alternatives : 1. Certains langages. 3. nature du système de transport • Choix de production (étude de rentabilité) II.c) La simulation pour définir un futur système Simulation Modèle de commande Implémentation Conception du système Réalité Système de commande Modèle du système physique Système physique Aide à la décision d'investissement : Choix technologiques et organisationnels : Equipements. dédié à un type de systèmes et un type de problème. Ecrire le programme correspondant au problème et au système donnés. Le modèle est donné et il suffit de le paramétrer pour l'adapter au cas étudié. choix de gamme. Fortran. Le développement d'un modèle de simulation est réalisé au travers d'un programme écrit par l'utilisateur à partir de primitives de modélisation offertes par le langage (les langages de simulation).. par contre il n’est pas toujours simple de trouver le logiciel dédié adapté au système et au problème concernés. seuils de réapprovisionnement. Utiliser un logiciel. . Pascal.

de variables caractéristiques. jugée telle en raison de son lien avec la première : La déduction est une inférence.L'absentéisme des opérateurs. . . l'outil statistique est une alternative pour prendre en compte. le théorème centrale limite4).L'estimation de moyennes. étudier et maîtriser les conséquences des variations aléatoires des systèmes. Pour les distributions rencontrées dans la pratique courante. Les modèles probabilistes permettent de représenter approximativement les données observées (imprécision. de résumer l'information contenue dans les données. par exemple : . → Méthodes de classification des individus en groupes homogènes . de nombreux phénomènes ont un caractère aléatoire. On parle alors d'événements aléatoires. L'échantillon étant tiré au hasard. La prévision statistique permet de trouver une relation entre une variable et plusieurs variables → régression linéaire. répartition dans la population) comme des variables aléatoires suivant une certaine loi de probabilité → modèles simplificateurs.. d'échantillons.La période d'arrivée des ordres de fabrication déclenchant une production. branche des mathématiques. Le but est de recueillir des données d'observation. de les traiter et de les interpréter. 4 La moyenne d'un échantillon de taille n extrait d'une population quelconque de moyenne µ et d'écart type σ est distribuée selon une loi pratiquement normale de moyenne µ et d'écart type σ n quand la taille de l'échantillon est suffisamment grande. Dans un système de production.La durée de vie d'un outil. . 11 . On parle alors de population d'individus.. La statistique repose sur l'observation de phénomènes concrets. le théorème centrale limite est valable pour tout n. erreurs. plus la loi se rapproche de la loi normale.. de moyennes. plus la taille de l'échantillon est grande.La durée opératoire d'une opération manuelle. La statistique inférentielle5 permet notamment : .III RAPPELS DE PROBABILITÉS ET STATISTIQUES Sachant qu'il est impossible – quelque soit la puissance des ordinateurs . les caractéristiques des données à traiter sont des variables aléatoires → application de théorèmes de probabilités (par exemple. analyse des correspondances) résumant les variables par des composantes synthétiques. la moyenne d'un échantillon est distribuée de façon sensiblement normale. . de lois de probabilité. La théorie des probabilités. 5 Inférence : Opération intellectuelle par laquelle on passe d'une vérité (une proposition) à une autre vérité (proposition).de simuler toutes les déviations possibles d'un système. On peut considérer qu'à partir de n égale à 30. . de variables aléatoires. Pour une population de départ de distribution normale.. .Le test (ou la vérification) d'hypothèses. permet de modéliser et d'étudier des phénomènes aléatoires. → Méthodes factorielles (analyse en composantes principales. La statistique exploratoire ou descriptive (analyse de données) permet de structurer.

La probabilité attachée à un événement A est un nombre P(A) compris entre 0 et 1.∀ A ⊆ E . Un événement quelconque est défini comme un sous-ensemble A de E contenant tous les événements élémentaires de E composant l'événement A.Si les événements sont en nombre infini. soit P(u ≤ X ≤ v) = ∫ f ( x) dx u b−a 1 / (b − a) si a ≤ x ≤ b où f (x) =  .1 VARIABLES ALÉATOIRES CONTINUES Une variable aléatoire continue X est une fonction à valeurs réelles définie sur un ensemble Ω (ensemble des événements possibles. B ⊆ E . . v ] . 0 sinon 12 .. noté X(Ω). observation ou simulation). on peut définir sur cet ensemble une densité de répartition de probabilité. Le problème de l'attribution de probabilités à un ensemble d'événements peut être résolu dans un certain nombre de cas de la façon suivante : . v ] ( ⊂ [a. b] ) est proportionnelle à la longueur de [u. Définition de la probabilité On considère l'ensemble E des éventualités possibles résultant d'une épreuve (expérience. est un intervalle fini ou infini. Exemple de la loi uniforme continue : Soit X une variable aléatoire susceptible de prendre toutes les valeurs d'un intervalle fini [a.L'événement de l'ensemble vide a une probabilité nulle. .. b] (on parle d'événements équiprobables). b] .Si les événements élémentaires sont en nombre fini. sans privilégier aucune région de [a. chacune de ces éventualités étant appelée événement élémentaire. on a 0 ≤ P( A) ≤ 1 .L'événement E a une probabilité égale à 1. Aussi. . on a P( A ∪ B) = P( A) + P ( B) si A ∩ B = ∅. face} dans le cas du lancé d'une pièce de monnaie) telle que l'ensemble des valeurs prises par X. intervalles de confiance.Approcher des données empiriques par des distributions de probabilités → des fonctions intégrées dans le modèle de simulation (lois de distributions). d'où v v−u P (u ≤ X ≤ v) = .Interpréter statistiquement les données générées par le modèle → moyennes.La simulation utilise les résultats des probabilités-statistiques essentiellement pour : . .∀ A. . on peut procéder à une série de répétitions de l'épreuve : La fréquence d'apparition de chaque événement permet de disposer d'une estimation de sa probabilité. obéissant à certaines règles axiomatiques. la probabilité que X prenne une valeur appartenant à l'intervalle [u. III. par exemple : Ω = {pile. en particulier : . .

variance) : La moyenne constitue un paramètre de position. En effet. définit le comportement aléatoire (stochastique) de la variable aléatoire X et permet ainsi de caractériser sa loi de probabilité (distribution). f (x) est une densité de probabilité  f ( x ) ≥ 0 ∀x ∈ R  ⇔  +∞ f ( x) dx = 1 (c. encore égale à ∫ ( x −M ) 2 f ( x) dx . par : M =∫ +∞ −∞ x f ( x) dx . 13 . La variance est une mesure de la dispersion de ces valeurs autour de leur moyenne.d . on a : P( x ≤ X ≤ x) = 0 . Plus la variance est faible ( ≥ 0 ). on a : M =∫ b a b x2 x a+b (b − a ) 2 a +b dx = et σ 2 = ∫ dx −  . aussi appelée espérance mathématique E(X). probabilité de l ' événement certain = 1)  −∞  ∫ . b] . appelée densité de probabilité.  = a b−a b−a 2 12  2  2 On définit l'écart type (standard deviation) par σ = σ 2 . considérer un événement du type « X = x » n'a pas de sens. Nous allons à présent voire les principales lois de distributions.a. Exemple : Dans le cas de la loi uniforme précédente.1 b−a 0 f(x) aire = P(u ≤ X ≤ v) a u v b x La fonction f (x) . Remarque : Pour une variable aléatoire continue. La loi uniforme (distribution of maximum ignorance) est utilisée lorsque l'on a aucune information exceptée la connaissance du domaine [a. aussi notée Var(X). plus les valeurs prises par X sont concentrées autour de la moyenne. La plus grande partie des phénomènes aléatoires rencontrés dans la pratique peut être étudiée via un nombre restreint de lois de distribution.. qui renseigne sur l'ordre de grandeur des valeurs prises par la variable aléatoire X. On définit la moyenne M. On définit la variance σ 2 ( σ 2 ≥ 0 ). par : +∞ +∞ σ 2 =  ∫ x 2 f ( x) dx  − M 2 .  −∞  −∞   Rappel (Moyenne.

b) LOI EXPONENTIELLE f(x) 1 β 1 −x / β  si x > 0 ( β > 0)  f ( x) = e β   f ( x) = 0 si non  0 x D = [0. b ] . 14 . σ 2 = β 2 .5) ).III.2 LOIS DE DISTRIBUTION STANDARD a) LOI TRIANGULAIRE f(x) 2 b−a aire = 1 a m b x 2( x − a )   f ( x) = (m − a )(b − a ) si a ≤ x ≤ m  2(b − x)  si m ≤ x ≤ b  f ( x) = (b − m)(b − a )   f ( x) = 0 si non   D = [a. Réponse : 0. M = β . + ∞ [ . b = 3 .75. 3 18 Application : On utilise cette loi lorsqu'on dispose d'une estimation du minimum. calculer P(1 ≤ X ≤ 2. du maximum et de la valeur la plus probable.σ 2 = . M = a+m+b a 2 + m 2 + b 2 − am − ab − mb . Exercice : Soient a = 0. m = 2.

P( B ) . à x + x0 . dépend uniquement de la longueur de cet intervalle. on a : P( X ≥ x + x0 X ≥ x0 ) = P( X ≥ x) . Aussi P( B A) équivaut à P( X ≥ x0 + x X ≥ x0 ) . c'est-à-dire P(T ≥ t + u T ≥ u ) . Autrement dit. Par exemple. En effet. et est indépendante de la valeur de x0 . ou égale. et non de sa position par rapport à l'axe des temps (on a : P(T ≥ t + u T ≥ u ) = P (T ≥ t ) ). P( A) Sachant que P( A B) équivaut à P( X ≥ x0 X ≥ x0 + x) = 1 . Par exemple. dans le cas de temps séparant les arrivées de 2 « clients » successifs dans l'étude d'un phénomène d'attente. on a P( B A) = Ainsi +∞ 0 P( B) P( X ≥ x0 + x) P( B A) = = = P( A) P( X ≥ x0 ) ∫ x +x β ∫x +∞ 0 1 − u e − β u du =  − − e    − − e   u β         +∞ − x0 + x +∞ ( x0 + x ) = e − β x0 − x =e β 1 β e β u du β e x0 β qui est fonction de x uniquement (indépendant de x0 ). Sachant que : P( A ∩ B) = P( A) × P ( B A) = P( B) × P( A B ) (probabilité conditionnelle). u + t ] . ou dans le cas d'une durée de bon fonctionnement d'un équipement technique. il est souvent admis que la durée de vie T d'un dispositif électronique obéit à une loi exponentielle.Application : Cette loi est souvent utilisée en pratique. Démonstration : Soient l'événement A correspondant au fait que X ≥ x0 et l'événement B correspondant au +∞ x0 + x fait que X ≥ x0 + x . On a P( X ≥ x0 ) = ∫ +∞ x0 f ( x) dx et P ( X ≥ x0 + x ) = ∫ f ( x) dx . ou égale. la probabilité que X soit supérieure. Aussi la probabilité de bon fonctionnement dans un intervalle de temps [u. 15 . La loi exponentielle est la seule loi continue à permettre la prise en compte de phénomènes sans mémoire. à x0 . sachant que X est supérieure. dépend de la valeur de x. on a P( B A) = P( B) × P( A B) P ( A) .

On a : F ( x) = P( X ≤ x) = ∫ x −∞ f (u ) du pour −∞ < x <+∞ . on peut utiliser la fonction de répartition F(x) pour caractériser la distribution d'une variable aléatoire X. variance = σ . + ∞ [ .σ M M+ σ x x M 2 D = ] − ∞ . en effet P (a < X ≤ b) = F (b) − F (a ) . l'ensemble des probabilités associées est tel que : 16 .c) LOI NORMALE f (x) points d'inflexion 1 σ 2π f(x) = 1 σ 2π e − ( x−M ) f (x) 2 / 2σ 2 σ petit σ grand 2 2 0 M.3 VARIABLES ALÉATOIRES DISCRÈTES Une variable aléatoire est discrète si elle ne peut prendre qu'un nombre fini de valeurs. Rappel : A la place de la densité de probabilité f (x). Application : Cette loi s'applique dans le cas de processus dont la distribution est symétrique et pour lesquels la moyenne et l'écart type sont estimés. telle que F (− ∞) = 0 et F (+ ∞) = 1 . F(x) est une fonction continue. on associe la probabilité p ( xi ) d'apparition de cette valeur. Exemple : Variations de la longueur de pièces fabriquées en séries. Pour chaque valeur xi . III. F ' ( x) = f ( x) . monotone croissante. Pour N valeurs. Elle permet de calculer des probabilités de la forme P (a < X ≤ b) ) sans effectuer une intégration (ce qui est le cas en utilisant f ( x) ) . moyenne = M . Cette loi permet de modéliser une donnée qui est la somme d'un grand nombre de données aléatoires (théorème central limite).

celle d'avoir un produit 3 est égale à 1/3 et celle d'avoir un produit 4 est égale à 1/6. La loi est représentée soit par le diagramme en bâtons suivant indiquant p ( xi ) en fonction de xi : p(xi) 1/3 1/6 0 xi 1 2 3 4 soit par un histogramme6 : p(xi) 1/3 1/6 0 1 2 3 4 xi Définitions La moyenne (arithmétique) M est égale à ∑ xi p ( xi ) . 3. celle d'avoir un produit 2 est égale à 1/3. Exemple : On définit un système capable de produire quatre types de produits notés 1. i =1 N 6 Ensemble de rectangles de même largeur dont les surfaces sont proportionnelles aux probabilités p(xi). on sait que la probabilité d'avoir un produit 1 est égale à 1/6. 4. 2. Lors de l'arrivée des ordres de fabrication. 17 .∑ i =1 N p ( xi ) = 1 si N couvre l'ensemble des valeurs.

on a : p c ( x1 ) = 1 1 5 . 6 2 6 Application : Les variables aléatoires discrètes s'appliquent dans le cas d'injection directe de données empiriques dans le modèle.Exercice : Calculer la moyenne considérée dans l'exemple précédent. La variance σ2 est égale à (∑ xi2 p ( xi )) −M 2 . Exemples : Types de pièces. l =1 i Dans l'exemple précédent. 18 . p c ( x 2 ) = . i =1 N On définit la probabilité cumulée (notion utilisée dans le logiciel SIMAN-ARENA) par p c ( xi ) = ∑ p ( x l ) . p c ( x 4 ) = 1 . taille des lots. p c ( x3 ) = .

ressources).Affirmation des fournisseurs de matériel (souvent optimistes). .. . minimum. que les variations de longueur de pièces en série suivent une loi normale.Enregistrement du passé → bases de données à interroger (problèmes de mise à jour)... les temps de bon fonctionnement..1 CONNAISSANCE PARTIELLE DES DONNÉES C'est le cas des systèmes qui n'existent pas encore.. . ... . les taux de rebut. Deux problèmes se posent principalement : P1) Collecte des données → lesquelles ? disponibles ? pertinentes ? comment les collecter ? P2) Systèmes stochastiques → lecture directe des données empiriques ou tirage à partir d'une distribution théorique associée ? Les sources possibles de données sont de nature différente : .Systèmes similaires → attention aux inférences.).IV DONNÉES D'ENTRÉE DU SYSTÈME La qualité des données est aussi importante que la qualité du modèle (garbage in garbage out) . . .Estimation des concepteurs (à vérifier). soit on a une connaissance partielle des données du système (moyenne.Estimation des opérateurs (humains) → négligence des extrêmes et oubli du passé.. des concepteurs. par exemple dans le cas d'un système de production. ou pour lesquels il est impossible de disposer des données désirées (temps. 19 .Considérations théoriques (par exemple le fait que les arrivées de 2 « clients » successifs dans une file d'attente suivent une loi exponentielle.Observation du système → ressources humaines (erreurs). IV. . . On doit se baser sur l'estimation des opérateurs.). . ceci concerne. des fournisseurs de matériel. Deux cas sont à considérer. maximum. soit on dispose des données du système. les temps opératoires.

b) Estimer ses paramètres. les logiciels de simulation proposent souvent les deux possibilités. nombres de classes = O( n bre d ' observations )).Une distribution uniforme de paramètres Min et Max. sinon σ = Etendue/4. évitant ainsi des calculs numériques fastidieux. ou on dispose seulement du minimum. Min. Max et la valeur la plus probable m sont disponibles On peut alors utiliser (si cela est justifié) une distribution triangulaire de paramètres Min. c'est la distribution de l'ignorance (il n'y a pas de raison de penser que les probabilités ne sont pas équiprobables). Seule la moyenne M est disponible On peut alors utiliser (si cela est justifié) : . de pouvoir décrire une loi de probabilité par une distribution théorique. Min et Max sont disponibles On peut alors utiliser (si cela est justifié) : . Ceci revient à exprimer sous forme analytique les probabilités p ( x k ) en fonction de l'indice k. pour des raisons théoriques et pratiques. Il est souvent intéressant.Une distribution exponentielle (grande dispersion : forte variabilité) de paramètre M si la nature du phénomène le justifie. On peut alors appliquer au calcul des probabilités des méthodes bien connues d'analyse mathématique.Si les données empiriques sont directement utilisées. 1. . on dispose seulement du minimum et du maximum. . 20 . IV.Directement M comme valeur constante de la variable si la dispersion (écart type) est petite. σ = Etendue/6. à partir de l'étendue des données (Etendue = Max-Min).Si on veut faire des tirages à partir des distributions théoriques.2 DONNÉES EXISTANTES (accessibles à la mesure) Le problème P2 n'ayant pas de réponse claire. voir la loi triangulaire) et du maximum. . de la valeur la plus probable (≠ de la moyenne.Si les données sont centrées autour de la moyenne M = (Min + Max)/2. m et Max. c) Tester l'hypothèse : distribution correspond bien aux données. 2. il faut : a) Choisir une distribution en fonction de sa forme (et celle de l'histogramme des données). on peut calculer l'écart type : Si les données sont nombreuses.Trois cas se présentent souvent : On dispose seulement de la moyenne. 3. on peut appliquer une distribution normale centrée autour de M . . elles sont entrées sous forme de distributions empiriques cumulatives (histogramme des fréquences : regroupement des observations en classes.

n Max Max − Min Max − Min . 1 …. L'entrée de la machine est toujours approvisionnée. On considère 21 classes pour construire l'histogramme des fréquences. (*) REAL data Mean = 5. Exemple : On s'intéresse au temps de traitement d'une machine. n°2. Kolmogorov-Smirnov). L'étape b) implique l'utilisation des estimateurs classiques. .88) (*) Hypothèse : Valeurs Min et Max finies.02 .0008231 NORM.3 NORMAL DISTRIBUTION : Sq Error = 0.88 intervals = 21 Min = -0. Une valeur x ∈ Classe n (1 ≤ n ≤ 21) ⇔ Min + (n − 1) Min Cl.. Cl.L'étape a) est effectuée. connaissant les caractéristiques des distributions courantes et en comparant visuellement la distribution théorique et la distribution empirique (histogramme des fréquences). 1.4531 Range : -1 to 12 Max = 11. L'étape c) peut s'effectuer visuellement. ou en utilisant des tests statistiques d'hypothèses (Khideux.(5.. Nbre de valeurs appartenant à la classe n° 1. ≤ x ≤ Min + n 21 21 21 .02 Data pts =500 StdDev = 1. On dispose d'un ensemble de 500 valeurs représentant l'intervalle de temps (obtenu à l'aide d'un chronomètre) entre chaque apparition d'une pièce en sortie de la machine.

valeur réelle] (respectivement [valeur réelle.Si la valeur Min (respectivement Max) = . 22 .∞ (respectivement + ∞). on considère une classe [. + ∞ ]).∞.

. 3. Les techniques (ou comportement à avoir) suivantes permettent l'isolation des erreurs : 1.Augmenter le taux d'arrivée et/ou diminuer le taux de service pour créer des congestions..Modifier la distribution des types de pièces (job mix) pour augmenter l'arrivée des pièces de types moins fréquents.Remplacer des temps aléatoires par des constantes. . plutôt que constructive). 4. Pour cela : ..Réduire la taille des stocks pour créer des blocages. Corriger les erreurs en identifiant les vraies causes et ne pas traiter seulement les symptômes (le raisonnement logique reste la meilleure approche). ou des phénomènes de « famines » de machines. . Utiliser l'animation (technique puissante). 7. .)..1 VÉRIFICATION La vérification consiste à s'assurer que le modèle fonctionne comme le concepteur le désire (pas d'erreur de logique). Considérer toujours que le modèle contient des erreurs et les chercher (approche destructive. ce qui nécessite de pouvoir isoler les erreurs (étape la plus difficile) afin de les corriger. La difficulté majeure est de savoir : • Comment avoir confiance dans le modèle ? • Comment le transmettre à l'utilisateur ? Avant de tirer des inférences des résultats statistiques d'un modèle/programme de simulation. Réviser le modèle et les données avec l'aide d'au moins un client et un connaisseur du langage (en plus du développeur). 2. Générer et analyser la trace du modèle pour vérifier le cheminement des pièces. par une activité. . VÉRIFICATION ET VALIDATION DES MODÈLES Les programmes de simulation se caractérisent par une évolution constante (tests de scénarii. Effectuer des tests : . 6.V. que se passe-t-il si ?.Tester le modèle dans des conditions limites. Ceci passe habituellement par deux étapes : la vérification et la validation. V.).. 23 . 5. les changements d'état à l'issue d'une attente (au niveau d'une file. . il faut s'assurer qu'il est correct au sens où il représente bien le système.Augmenter le taux d'occurrence des événements moins fréquents (par exemple une panne). Impliquer des personnes non concernées par la conception et l'implémentation. La vérification est rendue plus facile si on commence par un modèle simple qu'on améliore (enrichi) progressivement. .Tester seulement une partie du modèle.

. . notamment vis-à-vis : .Celui du développeur. 2. .De la phase d'initialisation (unités de mesures). Trois types de tests : 1.Celui d'une personne évaluant le modèle (superviseur. Le comportement est-il raisonnable ? . .De l'existence de blocages. . Test des données et de la structure du modèle Les théories et les hypothèses doivent être correctes et la représentation du modèle doit être en adéquation par rapport à l'utilisation désirée.).. Eviter des erreurs classiques.D'une mauvaise utilisation des primitives ou fonctions du langage.Dégénérescence : Suppression d'une composante (d'un « mode ») du modèle → effets sur les résultats (exemple : Une machine supprimée). . compteurs.Du contrôle du flux. .. . .)..Celui de l'utilisateur final (décideur). . V.8. .Continuité : Petits changements dans les paramètres d'entrée → petits changements dans les variables de sortie et les variables d'état.Des erreurs arithmétiques (parenthèses.2 VALIDATION Trois questions doivent être posées : • • • Le modèle représente-t-il correctement le système réel (validité conceptuelle) ? Les données sur le comportement générées par le modèle sont-elles caractéristiques de celles du système réel (validité opérationnelle) ? L'utilisateur a-t-il confiance dans les résultats du modèle (confiance) ? Trois points de vue sont à prendre en compte : . conversion de types. . .De la saisie des données d'entrée.Consistance : Exécutions presque identiques → résultats presque identiques (exemple : Générateur aléatoire changé). client).. 24 .Conditions absurdes : Paramètres d'entrées absurdes → résultats absurdes (exemple : Porter le budget de la publicité à l'infini ne doit pas entraîner des ventes infinies).Des erreurs d'enregistrement (temps d'arrivée des pièces.

).→ Validité de « façade » : Le comportement semble correct pour des personnes familières avec le système réel (logique. . → Vérification de la structure et des limites : Correspondance entre le modèle conceptuel et le système de référence.. entrées-sorties).Le modèle génère des difficultés déjà connues dans le système ? . Test du comportement du modèle Il consiste à étudier le comportement du modèle en relation avec le système de référence. → Générer des symptômes : . Kolmogorov-Smirnov.Le modèle produit des résultats connus pour des entrées données ? → Anomalie de comportement : Une anomalie dans le modèle peut amener à découvrir l'anomalie équivalente dans le système réel ? → Prédiction de comportement : Prédiction du modèle contre des tests sur le terrain. 25 . 3.. → Comparaison de comportements : Tests statistiques pour comparer les résultats (Khi-deux.

du nombre des observations. est appelée niveau de confiance ou seuil de confiance. La probabilité 1 − α . soit : p(C1 ≤ λ ≤ C 2 ) = 1 − α . C 2 donne lieu à un intervalle de confiance numérique [c1. on a souvent tendance à se contenter du rapport de simulation et/ou de l'animation. La notion de niveau de confiance est alors à interpréter dans le sens suivant. Si l'on effectue un grand nombre de réalisations des deux statistiques ( C1 .VI INTERPRÉTATION DES RÉSULTATS Selon le logiciel utilisé..99 et 0. On peut utiliser son rapport à la moyenne pour mesurer la dispersion des valeurs (en plus du minimum et du maximum). c2]. c2 ] ainsi obtenus.. Rappel (Intervalle de confiance) : L'intervalle de confiance [c1.Un rapport de simulation comprenant les moyennes. • En choisissant un seuil de confiance moins élevé.90 . En fait. Chaque réalisation des deux statistiques C1 . 26 . l'écart type est biaisé pour un petit nombre d'observations. Il faut donc les exploiter pour effectuer des procédures statistiques.Un historique de l'évolution de ces variables au cours de la simulation. 0. l'exécution d'un programme de simulation peut générer : . Un tel rapport de simulation ne suffit pas pour tirer des conclusions crédibles sur les performances du système. Les valeurs les plus souvent utilisées pour 1 − α sont : 0. associée à cette estimation par intervalle. il faut associer un intervalle de confiance. Il suffit de changer le générateur de nombres aléatoires pour que le même modèle génère des résultats différents. C 2 ). • En diminuant la dispersion de la variable aléatoire λ étudiée. la (vraie) valeur inconnue de λ . entre autres. .95 . A chaque variable (inconnue). les écarts types. les minimums et maximums des variables observées. La longueur d'un intervalle de confiance diminue : • En augmentant la taille n de l'échantillon. alors la valeur inconnue du paramètre λ sera recouverte par environ 100 (1 − α ) % des intervalles [c1. C 2 de telle sorte qu'il recouvre.999. surtout quand le projet est en retard. De même. La qualité de la moyenne (arithmétique) comme estimateur de la vraie moyenne dépend. L'animation graphique n'est pas suffisante non plus. Les résultats générés par un modèle jouent le rôle de mesures sur un échantillon. c2] du paramètre inconnu λ est défini à l'aide de 2 grandeurs statistiques C1 . avec une probabilité donnée 1 − α . 0. .

on peut considérer que les observations de type b) d'un ensemble de répétitions sont telles que : . A chaque répétition.Analyser le comportement du système en se basant sur la valeur moyenne pour chaque expérience : . VI. écarts-types. par contre. Deux sources de données d'observation : a) Observations individuelles dans chaque répétition/expérience (par exemple. les maximums et les minimums de deux systèmes différents.. 27 . Si l’on change le générateur des nombres aléatoires d'une répétition à l'autre..Simuler un grand nombre d'expériences/répétitions (minimum 20) et récupérer chaque fois les observations souhaitées (moyennes. minimum.Des intervalles de confiance autour de la moyenne. on peut calculer en particulier : . deux règles d'ordonnancement. Cette comparaison de deux systèmes est utile pour évaluer par exemple la différence entre deux dimensionnements. Les procédures classiques de statistiques peuvent alors s'appliquer pour les moyennes. Cette dernière propriété est due au fait qu'elles sont sommes. minimums des observations dans chaque répétition (par exemple. le temps de traitement de chaque pièce). Procédure générale : . certaines procédures de statistiques s'appliquent encore.Il existe deux types de systèmes : Les systèmes finis – c'est-à-dire. maximum.et les systèmes qui ne se terminent pas .Utilisation de l'histogramme. Par exemple.Elles sont indépendantes. Si l'intervalle de confiance ne contient pas 0. . ou moyennes. . le temps de traitement moyen des pièces). n'ayant pas d'événement de fin de simulation. on peut utiliser un autre générateur des nombres aléatoires. un commerce qui ouvre et qui ferme à intervalles réguliers est un système fini .. . du maximum et du minimum. A partir des observations de type b).. ayant un événement de fin qui détermine la fin de la simulation . . on peut en déduire que les deux systèmes sont différents.c'est-à-dire. un hôpital où il y a toujours au moins un patient est un système qui n'est pas fini. Pour les minimums et maximums. d'observations individuelles (théorème central limite).Calcul de l'intervalle de confiance. .Les moyennes sont normalement distribuées.1 ANALYSE DES SYSTÈMES FINIS Ils sont plus faciles à analyser que les systèmes qui ne se terminent pas.Des intervalles de confiance autour de la différence entre les moyennes. b) Moyennes.) . . maximums. On ne peut contrôler que le nombre des répétitions des expériences.

. Utiliser la formule n2 = n1 (h1 / h2 ) 2 où n1 est le nombre d’expériences déjà réalisées. on peut éventuellement utiliser le filtre de la moyenne glissante (moyenne arithmétique des k observations récentes) pour réduire la variabilité de la variable.Répétition d'expériences indépendantes comme pour les systèmes finis (problème du régime transitoire à chaque fois). VI.Décomposer les observations restantes en n batchs de taille m et sans chevauchement. soit rajouter les résultats des nouvelles simulations à ceux des premières . histogramme. Pour cela.Simuler encore : Soit tout recommencer. C'est cette dernière méthode qui est couramment utilisée. h1 est la moitié de l'intervalle de confiance déjà obtenu. La plus utilisée est d'évaluer (visuellement) la période transitoire à l'aide des graphes (courbes.Déterminer le nombre expériences à l'aide de l'analyse des résultats en fonction des précisions souhaitées pour l'intervalle de confiance.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS On s’intéresse à l'étude des performances stationnaires d’un système du fait d’un régime transitoire souvent favorable aux performances du système .Pas de point de passage précis entre le régime transitoire et le régime stationnaire. Problème du régime transitoire Il existe trois méthodes pour traiter le problème du régime transitoire : . Le but est de calculer un intervalle de confiance autour de la moyenne.Analyser : Intervalle de confiance. . Cette dernière méthode consiste à : . mettre les pièces dans les files d'attente). . ce peut être. 28 .Ecarter les valeurs enregistrées pendant le régime transitoire. L'état stable du système correspond à son comportement après un certain temps et est indépendant de l'état de départ.Corrélation entre les observations. histogrammes. . . Deux problèmes peuvent se poser : . mais il n'y a aucune méthode complètement satisfaisante. par exemple.Longue simulation et décompositions des données générées en sous ensembles (batchs). h2 est la moitié de l'intervalle de confiance souhaité. le cas d’un atelier vide au début de la simulation. . Il existe certaines règles pour sélectionner la partie à tronquer. . Intervalles de confiance Deux méthodes sont couramment utilisées : . n2 est le nombre total d’expériences.Ecarter le régime transitoire. . moyennes mobiles).Choisir des conditions de départ qui ressemblent aux conditions de régime permanent (par exemple : Charger les machines.Faire des simulations assez longues pour rendre le régime transitoire insignifiant.

29 . Indications : n = 10.. Il suffit de définir les batchs par des intervalles de temps réguliers au lieu d'un nombre fixé de données. Cette méthode (présentée pour des variables ne dépendant pas du temps comme le nombre de pièces finies) est évidemment applicable pour les variables persistantes (dépendant du temps) comme les tailles des files d'attente.Remplacer chaque batch B j (j = 1. m de 10 à 20.. n. 2. . lag*. moyenne des m observations dans Bj .. 2. Corrélogramme → lag* : Le plus grand nombre d'observations pour lequel la corrélation est encore significative.Calculer l'intervalle de confiance à partir des observations X j . j = 1. Ici encore. . . n) par X j .. les conditions du théorème central limite sont considérées vraies et le calcul de l'intervalle de confiance justifié (indépendance et normalité des observations X j )..

Règles de fonctionnement et circulation des jetons Pour qu'une transition puisse être activée. T.VII NOTIONS ELÉMENTAIRES SUR LES RÉSEAUX DE PETRI VII.L . Le marquage initial (celui indiqué sur le dessin) donne la position initiale des jetons. L'activation (le tir) de la transition a pour effet de prélever ces jetons des places amont et de rajouter dans chaque place aval un nouveau jeton. T j ) est le poids de l'arc (orienté) reliant la place Pi à la transition T j . T2 . Post : P × T → {0.1 GÉNÉRALITÉS Définition (Réseau de Petri) Un réseau de Petri (RdP) est un graphe constitué de 2 sortes de nœuds : Les places (représentées par des ronds) et les transitions (représentées par des barres). L . De façon plus formelle. Marquage des places Les places sont marquées par des jetons (points noirs) qui vont circuler dans les places selon certaines règles (définies ci-dessous). Cette circulation symbolise l'évolution dynamique du système. ce poids vaut 1 si l'arc existe et 0 sinon. le franchissement (tir) d'une transition T j ne peut s'effectuer que si le marquage de chacune des places Pi directement en amont de cette transition est tel que : 30 . Post> tel que : P = {P1 . Pré : P × T → {0. Pré ( Pi . Voir exemple dans la figure suivante. Post ( Pi . P2 . Pn } est un ensemble fini et non vide de places . T j ) est le poids de l'arc (orienté) reliant la transition T j à la place Pi . Tm } est un ensemble fini et non vide de transitions . la présence d'un jeton au moins est requise dans chaque place située en amont de la transition. De façon plus formelle. ou de transitions à transitions directement). Le graphe est orienté : Des arcs vont d'une sorte de nœuds à l'autre (jamais de places à places. 1} est l'application d'incidence avant . 1} est l'application d'incidence arrière. un RdP peut-être défini par un 4-uplet <P. T = {T1 . Pré.

on peut penser à l'activation d'une transition comme au déroulement d'une tâche : Il faudrait alors mettre une temporisation sur les transitions. Ce conflit structurel doit être arbitré par une règle de priorité quelconque lorsque le conflit est effectif (c'est-à-dire lorsque les transitions aval en compétition pourraient effectivement être activées). ou que sur les places.Synchronisation dans la consommation de jetons de plusieurs places : C'est la convergence de plusieurs arcs sur une transition (voir figure c suivante). Par ailleurs.m( Pi ) ≥ Pré ( Pi . Ne pas arbitrer un conflit effectif fait que le comportement du système n'est pas entièrement spécifié. . t t 31 . . si on pense à une place comme un endroit où une ressource séjourne en attendant de poursuivre son parcours.Une durée minimale de séjour dans les places : Durée pendant laquelle tout jeton qui vient d'être produit dans une place ne peut pas encore servir à l'activation de transitions aval. . Le franchissement (tir) de T j consiste à retirer Pré ( Pi . En fait. a b c d Temporisation des places et/ou des transitions A priori.Une durée d'activation pour les transitions : Durée pendant laquelle un jeton situé dans chaque place amont de la transition activée est « réservé » pour cette transition (avant de disparaître). T j ) jetons dans chacune des places Pk directement en aval de T j . . il peut y avoir une durée minimale de séjour à respecter : Penser par exemple au séjour d'une pièce dans un four pour atteindre une température souhaitée. et au delà de laquelle un jeton apparaît dans chacune des places aval .Synchronisation dans la fourniture de jetons à plusieurs places : C'est la divergence d'arcs à partir d'une transition (voir figure d suivante). T j ) (condition nécessaire). La figure suivante montre la transformation d'une transition de durée t en 2 transitions instantanées (le début et la fin) séparées par une place de temporisation t.Concurrence à la fourniture de jetons dans une place : C'est la convergence d'arcs sur une place (voir figure a suivante). T j ) jetons dans chacune des places directement en amont de T j et à ajouter Post ( Pk . Modélisation de la concurrence (ou logique) et de la synchronisation (et logique) .Concurrence à la consommation des jetons d'une place : C'est la divergence d'arcs à partir d'une place (voir figure b suivante). On est donc tenté de mettre à la fois : . il n'y a aucune perte de généralité à ne mettre de temporisations que sur les transitions.

les graphes d'événements peuvent modéliser des phénomènes de synchronisation. soit traitée immédiatement par la ressource machine.2 GRAPHES D'ÉVÉNEMENTS Restrictions et capacités de modélisation Les graphes d'événements sont une sous-classe de RdP pour lesquels toute place a exactement une transition amont et une transition aval (les situations représentées dans les figures a et b précédentes sont interdites).On notera aussi l'existence de RdP temporels. Chaque pièce qui arrive est. les graphes d'état refusent les configurations représentées dans les figures c et d précédentes pour ne retenir que celles représentées dans les figures a et b. Aussi. arrivée pièce sortie pièce stock ressource machine 32 . mais pas de synchronisation. mais pas de concurrence. permettent de visualiser des phénomènes de concurrence (décision). pour lesquels on associe aux places et/ou aux transitions une temporisation dont la valeur peut se situer à l'intérieur d'un intervalle [a. Aussi. VII. les graphes d'état. soit mise en attente dans le stock (à capacité infinie) jusqu'à ce que la ressource machine soit disponible. Le temps de traitement de la ressource machine est de 3 unités de temps. Une propriété fondamentale des graphes d'événements Le nombre total de jetons le long de tout circuit d'un graphe d'événements reste constant. A l'opposé. Ceci n'est généralement pas vérifié dans le cas d'un RdP (le nombre de jetons total d'un RdP ne reste pas nécessairement constant au cours de l'évolution du marquage du réseau). tels que toute transition a exactement une place d'entrée et une place de sortie. b]. Après traitement. chaque pièce sort. VII.3 EXEMPLES Soit une machine représentée dans la figure suivante.

Arrivée pièce 6/5 6/5 … 6/5 Démarrage 33 . ressource machine libre Démarrage Arrivée pièce stock 3 ressource machine occupée Sortie pièce L'état du système modélisé par le RdP est représenté par le marquage définissant le nombre de jetons contenus dans chaque place. ressource machine libre 5 Arrivée pièce stock 3 ressource machine occupée Sortie pièce b) Le stock en amont de la ressource machine est remplacé par un convoyeur correspondant à une file composée de 5 compartiments (gestion First-In. Modifications a) Le modèle RdP suivant indique une capacité de stockage limitée à 5 pièces. L'évolution de l'état (représentant la dynamique du système) correspond à l'évolution du marquage (produit par le franchissement de transitions). Le système est représenté par le modèle RdP suivant. Le temps de déplacement du convoyeur est de 6 unités de temps.Le RdP suivant modélise ce système. First-Out du convoyeur).

5 unités de temps.c) La machine a une capacité de traitement de 2 : Elle est capable de traiter 2 pièces simultanément. On associe à ce RdP l'ensemble d'événements {A.4 AUTRES CLASSES DE RÉSEAUX DE PETRI Réseau de Petri synchronisé Un ensemble d'événements externes est associé au RdP .5 Sortie pièce 3 ressources machine occupées VII. D l'événement « Démarrage service ». ressources machine libres 2 Démarrage Sortie pièce 3 ressources machine occupées d) La machine a un temps de setup de 1. Le système est représenté par le modèle RdP suivant. D. ressource machine libre T1 Arrivée pièce Démarrage T3 Sortie pièce A stock D T2 3 ressource machine occupée S 34 . Le système est représenté par le modèle RdP suivant. S } où A désigne l'événement « Arrivée pièce ». Un tel RdP est dit synchronisé. La figure suivante représente le système modélisé par un RdP synchronisé. Considérons le RdP modélisant la machine décrite dans VII.3. ces événements permettent le franchissement de certaines transitions. ressources machine libres 2 Démarrage 1. S l'événement « Sortie pièce ».

. transition franchissable transition non franchissable 35 . Lors du franchissement de cette transition. p jetons seront retirés de la place Pi. 2 Assemblage Réseau de Petri à arcs inhibiteurs Un arc inhibiteur est un arc orienté qui part d'une place pour aboutir à une transition (et non l'inverse). Le fait qu'un arc relie une transition Tj à une place Pi avec un poids égal à p. Tous les arcs. ont un poids de 1. Le franchissement de la transition Tj consiste à retirer un jeton dans chaque place située en amont de la transition à l'exception de la place Pi .Le tir de la transition T1 est lié à l'occurrence de l'événement A. Réseau de Petri généralisé Un RdP généralisé est un RdP dans lequel les poids associés aux arcs sont des nombres entiers strictement positifs. et à ajouter un jeton dans chaque place située en aval de la transition. Ces poids peuvent être différents de 0 ou 1.A la validation de la transition. p jetons seront ajoutés à la place Pi. alors la transition Tj ne sera validée que si la place Pi contient au moins p jetons. Le tir de la transition T3 est lié à l'occurrence de l'événement S. Le tir de la transition T2 est lié : . Son extrémité est marquée par un petit cercle. matérialisée par la présence d'au moins un jeton dans la place « stock » et d'un jeton dans la place « ressource machine libre » . La présence d'un arc inhibiteur entre une place Pi et une transition Tj signifie que la transition Tj n'est validée que si la place Pi ne contient aucun jeton.Au démarrage effectif du service (occurrence de l'événement D). Soit un arc reliant une place Pi à une transition Tj ayant un poids égal à p. dont le poids n'est pas explicitement spécifié. signifie que lors du franchissement de cette transition.

est un langage de simulation du type interaction de processus. Pedgen de System Modeling Corporation .pdf.Indice_de_priorite afin de désigner l'indice de priorité d'une pièce (par exemple.pdf. Date_arrivee_ds_le_modele = TNOW). par exemple. c'est le temps courant . issus de bibliothèques (templates) d’ARENA. Le principe de fonctionnement du logiciel ARENA est de suivre chacune des entités évoluant d'un bloc fonctionnel vers un autre dans le modèle. de sa création à sa destruction. la variable TNOW (variable prédéfinie dans SIMAN) désigne la date à laquelle se trouve la simulation.conçu en 1982 par C. Par exemple. Elle correspond en général à un objet concret. La description du modèle (logiciel) du système simulé se fait à l'aide d'un assemblage constitué de mise en série.Type_de_piece afin de désigner le type d'une pièce (par exemple.provoque un changement d'état du modèle de simulation. . Le déplacement des entités au sein des différents blocs . Une telle approche de modélisation permet d'obtenir une structure du modèle (logiciel) proche de celle du système (réel) à simuler. Type_de_piece = A ou B) . ARENA représentant la version « graphique » de SIMAN. 7 Une documentation électronique est fournie avec le logiciel SIMAN-ARENA à travers différents fichiers (ArenaBEUsersGuide.D. VIII.1 NOTIONS DE BASE Entité : Une entité est un objet qui évolue dans les différents blocs fonctionnels constituant le modèle du système. Variable globale : Une variable globale concerne l'ensemble du modèle. 36 .pdf) accessibles dans le répertoire \Rockwell Software\Arena\.par exemple le déplacement de pièces dans un atelier .Date_arrivee_ds_le_modele (par exemple. ce qui est analogue aux déplacements des jetons dans un modèle RdP. ArenaSEUsersGuide. L’ordonnancement dans le temps des différents événements rattachés à l'évolution des entités dans les blocs constituant le modèle se fait au travers d’un échéancier. Attribut : Un attribut est une variable associée individuellement aux entités (la variable est locale) pour représenter leurs états ou des paramètres qui leur sont propres. peut avoir les attributs suivants : .VIII LE LANGAGE DE SIMULATION SIMAN-ARENA SIMAN-ARENA7 . chaque entité. une personne ou une pièce dans un atelier. Par exemple. ArenaVariablesGuide.mis à jour à chaque avancée dans l'échéancier des événements – s’écoulant durant une simulation du modèle. . en parallèle ou en feedback de différents blocs fonctionnels. Indice_de_priorite = faible ou importante) . représentant une pièce circulant dans un atelier.

issu du template Advanced Process. force une entité à séjourner 3 unités de temps dans le bloc. le passage d’une entité dans un bloc Delay provoque un retard pur. Un « service » peut agir : . issu du template Basic Process.doe et est constitué : . …).Quand une entité est introduite dans un bloc fonctionnel. qui regroupe les données précisant les paramètres spécifiques à une simulation donnée (conditions initiales. durée de la simulation. Par exemple. Le bloc Delay. issu du template Basic Process. elle déclenche/active le « service » qui lui est associé. ceci toute les 2 unités de temps. est tel qu'une entité est créée à partir de l’instant 0.le nombre de réplications (champ Number of Replications). . ayant un temps de transport de 3 unités de temps.d'une partie modèle. Le bloc Dispose. on peut notamment fixer : . on peut affecter à l'attribut indice_de_priorite d'une entité représentant une pièce. ce qui aura une conséquence sur la variable TNOW. . les entités traversent uniquement les blocs fonctionnels de la partie modèle. Considérons un simple tapis roulant. la valeur importante . Par exemple. ce qui provoque une modification de l'état du modèle.du cadre expérimental. qui représente l'algorithme décrivant les caractéristiques statiques et dynamiques des différents blocs fonctionnels composant le modèle . A travers le menu Run/Setup/Replication Parameters. 37 . . présente dans le bloc. En fait.sur les variables globales du modèle logiciel. représenté par le modèle logiciel décrit comme suit : Le bloc Create. à travers un bloc Assign.sur l'entité au travers de la valeur de ses attributs. Un programme (ou modèle logiciel) élaboré avec ARENA est sauvegardé dans un fichier ayant pour extension . détruit toute entité entrant dans le bloc.le temps où se termine une réplication (champ Replication Length).

. on peut notamment donner : .un commentaire (champ Project Description). . 38 .le nom du programmeur (champ Analyst Name).A travers le menu Run/Setup/Project Parameters.un titre au projet (champ Project Title).

Yes. Il permet également de créer des animations graphiques pour visualiser le comportement du modèle durant la simulation. Afin de bénéficier d’une animation.No."ISTIA".Les 2 fichiers générés par SIMAN-ARENA (au format txt) sont accessibles via le menu Run/SIMAN/View (voir ci-dessous un listage partiel de ces fichiers). • fichier Exemple. 2$ sont des étiquettes..HoursToBaseTime(0.24. • fichier Exemple. VIII. Model statements for module: Dispose 1$ DISPOSE: Yes. Sont décrits en Annexe les templates Blocks et Elements lesquels contiennent des blocs plus élémentaires (à chacun de ces blocs correspond une ligne dans les fichiers générés par SIMAN-ARENA).mod : (partie modèle) .exp : (cadre expérimental) PROJECT.Entity 1:HoursToBaseTime(2):NEXT(0$). ...No. 0$.No. 1.No.Yes. blocs ou modules) plus ou moins détaillées.Hours.. 1.No. REPLICATE. .No. Le modèle RdP correspondant à la partie modèle du modèle logiciel précédent est décrit dans la figure suivante : 3 2 ARENA permet de construire un modèle en proposant des primitives de représentation (appelées par la suite..Yes. .Other:NEXT(1$)."Premier exemple"..Yes. Model statements for module: Delay 0$ DELAY: 3..No. . nous allons utiliser les templates Basic Process et Advanced Process..HoursToBaseTime(10)..2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA CONSTRUCTION D’UN MODÈLE 39 . 1$.0).Yes.No.Yes. Les blocs sont regroupés dans différentes bibliothèques (templates).No. Model statements for module: Create 2$ CREATE.

a) Create (issu du template Basic Process) : Un bloc Create permet de créer des entités. Sont indiqués : . Le RdP suivant permet de décrire le bloc Create 1. Celui représenté dans la figure suivante est intitulé Create 1 (champ Name = Create 1). Les valeurs considérées sont telles qu'1 entité est créée toute les 2 unités de temps à partir de l’instant 0.la date de création du premier lot (champ First Creation = 0). ceci une infinité de fois. Celui représenté dans la figure suivante est intitulé Dispose 1 (champ Name = Dispose 1). Max Arrivals (∞) First Creation (0) Time Between Arrivals (2) Entities per Arrival (1) P Le nombre de jetons présents dans la place P correspond au nombre d'entités créées par le bloc Create 1. champ Value = 2). par exemple : champ Type = Constant. . une entité entrant dans ce bloc est immédiatement détruite.la taille des lots (champ Entities per Arrival = 1).le nombre total de lots à créer (champ Max Arrivals = Infinite). . b) Dispose (issu du template Basic Process) : Un bloc Dispose permet de détruire des entités. . 40 .la période de création des lots d’entités (cadre Time Between Arrivals.

Celui représenté dans la figure suivante est intitulé Delay 1 (champ Name = Delay 1). ce bloc équivaut à une transition puit. sont « saisies » (et donc plus disponibles). d) Seize (issus du template Advanced Process) : Une entité présente dans un bloc Seize ne peut sortir de ce bloc que s’il existe un nombre suffisant de ressources disponibles (le nombre et le type de ressources étant spécifiés dans le bloc) . 41 . en attendant l’entité est stockée (« patiente ») dans une file d’attente interne au bloc Seize. Le fait qu'une entité sorte du bloc indique que les ressources. elle y reste inconditionnellement pendant la durée (aléatoire ou non) indiquée dans le champ Delay Time. disponibles en nombre suffisant. c'est-à-dire. une transition sans place située en aval. Entrée d'une entité dans le bloc Delay Sortie de l'entité du bloc Delay Delay Time Le nombre de jetons présents dans la place correspond au nombre d'entités présentes dans le bloc Delay. quand une entité entre dans ce bloc.En termes de RdP. Le RdP suivant permet de décrire un bloc Delay. c) Delay (issu du template Advanced Process) : Un bloc Delay permet de retarder le passage d'entités.

intégrée (en amont) au bloc Seize. représentation graphique de la file d’attente associée au bloc Seize 1 Le RdP suivant permet de décrire un bloc Seize dans le cas où un seul type de ressource (dans l’exemple. File d’attente (Seize 1. Sachant qu'une ressource peut ne pas être disponible.contenir (au moins) un jeton dans la place P1. alors : .Queue). .Queue) Saisie de (Quantity = 1) ressources (Resource Name = Resource 1) Quantity Entrée d'une entité dans le bloc Seize ressources disponibles P2 P1 T Sortie de l'entité du bloc Seize La transition T pour être activée doit : . sont stockées dans une file d'attente. ce qui correspond à la présence dans la file d’attente d'au moins une entité dans le bloc Seize. soit Resource Name = Resource 1 (l’ajout d’un autre type de ressource donnerait lieu à une ligne supplémentaire dans la liste Resources). 42 .le nom de la ressource est spécifié dans le champ Resource Name. par exemple Quantity = 1. considérons que seulement un type de ressource est concerné (dans l’exemple. les entités. Resource 1). Pour simplifier la compréhension. et dont le nom est indiqué dans le champ Queue Name (soit Queue Name = Seize 1. Resource 1) est requis.le nombre (minimum) de ressources (de type Resource 1) disponibles est spécifié dans le champ Quantity. en attente d'un nombre suffisant de ressources disponibles.Le bloc représenté dans la figure suivante est intitulé Seize 1 (champ Name = Seize 1).

Par défaut.Queue.le champ Name permet de déclarer une file d’attente. Le nombre de jetons présents dans la place P1 correspond au nombre d'entités présentes (en attente) dans le bloc Seize.contenir (au moins) Quantity jetons dans la place P2. sont indiqués dans le bloc Resource (issu du template Basic Process. seul un type de ressource est concerné (dans l’exemple. Pour simplifier.le champ Capacity permet de définir le nombre d’unité de la ressource. Le bloc Queue permet de définir plusieurs files d'attente dans un même modèle. 43 . par exemple Resource 1. ou les ressources dont le nom est spécifié dans le champ Resource Name. . e) Release (issu du template Advanced Process) : Un bloc Release permet de « relâcher » des ressources. voir la figure suivante : . Le bloc Resource permet de définir plusieurs types de ressources dans un même modèle. par exemple 1. Une file d’attente est caractérisée (configurée) par le bloc Queue (issu du template Basic Process. voir la figure suivante : . appartenant au cadre expérimental et donc non traversé par une entité). par exemple Resource 1. par exemple Seize 1. autrement dit le temps de passage d’une entité dans un bloc Release est nul. Quand une entité entre dans ce bloc.le champ Type permet d’indiquer le mode de gestion de la file d’attente. appartenant au cadre expérimental et donc non traversé par une entité). First Out (FIFO). Resource 1). le mode de gestion est de type First In. par exemple 1. On peut noter que l’exécution de cette tâche est instantanée. ce qui signifie qu’au moins Quantity ressources Resource Name sont disponibles. ainsi que le nombre pour chaque type de ressources. elle libère (relâche) la. Le fait de franchir la transition T a pour effet d'ôter 1 jeton dans la place P1 et d’ôter Quantity jetons dans la place P2.le champ Name permet de déclarer une ressource. l’ajout d’un autre type de ressource donnerait lieu à une ligne supplémentaire dans la liste Resources. ce qui représente la sortie d’une entité du bloc Seize et la « saisie » de Quantity ressources Resource Name. Celui représenté dans la figure suivante est intitulé Release 1 (champ Name = Release 1). le nombre de ressources libérées est spécifié dans le champ Quantity. Les types de ressource. ..

spécifiée dans le champ New Value est évaluée et assignée.un attribut Attribute 1 à TNOW . ce qui représente la sortie d’une entité du bloc Release et la mise en disponibilité (le « relâchement ») de Quantity ressources Resource Name. -4=Failed) . -3=Inactive .logique ou mathématique . Quand une entité entre dans un bloc Assign. Dans la figure suivante. par exemple relative à l’état d’une ressource). …).doe. Cet exemple est proposé dans \Exemples\Assign\Assign.une variable Variable 1 à 1 . Resource 1) est libéré. Variable. f) Assign (issu du template Basic Process) : Un bloc Assign permet d’assigner une valeur. selon le contenu du champ Type (Attribute.une variable Variable 2 à STATE(resource 1). durant l’exécution d’une simulation. .une Variable 3 à Attribute 1. -2=Busy . notamment. . La variable STATE(resource 1) restitue l’état courant de la ressource resource 1 (les valeurs possibles sont : -1=Idle . à un attribut. P1 ressources disponibles Quantity Entrée d'une entité dans le bloc Release Sortie de l'entité du bloc Release T' Le fait de franchir la transition T' provoque l'apparition de Quantity jetons dans la place P1. .Le RdP suivant permet de décrire un bloc Release dans le cas où un seul type de ressource (dans l’exemple. 44 . une variable (éventuellement propre à SIMAN. le bloc intitulé Assign 1 (champ Name = Assign 1) permet de déclarer : . l’expression . à un attribut (rattaché à l’entité « activant » le bloc) ou une variable.

g) Decide (issu du template Basic Process) : Un bloc Decide permet d’aiguiller un flux d’entités vers différents blocs de destination.Le RdP suivant permet de décrire le bloc Assign 1. L’aiguillage est réalisé. 45 . il comporte une entrée et plusieurs sorties. appartenant au cadre expérimental et donc non traversé par une entité) permet de déclarer des variables. Entrée d'une entité dans le bloc Assign Sortie de l'entité du bloc Assign Variable 1 := 1 Attribute 1 := TNOW Variable 2 := STATE(resource 1) Variable 3 := Attribute 1 Le bloc Variable (issu du template Basic Process. selon le contenu du champ Type. d’après un critère de type condition.

Le critère d’aiguillage vers les 2 sorties possibles est réalisé à partir de la condition If Variable 1 >= 1 (avec un résultat True ou False).. l’entité est détruite. Le routage se fait via un ensemble de branches. chaque condition de branchement est testée de manière séquentielle (i. l’entité est alors aiguillée vers le bloc correspondant. dans l’ordre de leurs déclarations dans le bloc). de variables. intitulé Decide 1 (champ Name = Decide 1). une expression. Les conditions sont par exemple basées sur des valeurs d’attributs. Un bloc Decide.5. Si aucune branche n’est satisfaite.e. ayant chacune une probabilité égale à 0. Quand une entité entre dans un bloc Decide. est décrit dans la figure suivante. La branche sélectionnée par une entité est la première branche pour laquelle la condition de branchement est satisfaite . sont possibles).ou probabilité. Le critère utilisé par le bloc Decide 2 est de type probabilité (2 sorties. 46 .

Les entités à l’origine de la synchronisation sont ensuite dirigées vers les sorties correspondantes. . ont une. 47 . le bloc Match 1 (champ Name = Match 1) effectue une synchronisation entre deux entrées. Entrée d'une entité dans le bloc Decide critère de type condition ou probabilité . Quand toutes les files d’attentes.Queue2 Match 1 Le bloc Queue (issu du template Basic Process) décrit ci-dessous indique la définition des files d’attente Match 1. voire plusieurs entités. associées au bloc Match.Queue2. . voire de plusieurs. h) Match (issu du template Advanced Process) : Un bloc Match permet de synchroniser la progression de deux. ces entités sont libérées.Queue1 Match 1. Le fait d’avoir le champ Type = Any Entities (et non Based on Attribute) fait que la synchronisation ne s’effectue pas en fonction de la valeur d’un éventuel attribut (rattaché aux entités). Match 1.Le RdP suivant permet de décrire un bloc Decide. Dans la figure qui suit. de façon synchrone. vers les sorties correspondantes. entités situées dans différentes files d’attentes.Queue2.Queue1 et Match 1. à savoir Match 1. Une synchronisation se produit lorsqu’au moins une entité est présente dans chacune des deux files d’attente. Sorties du bloc Decide Notons que toutes les sorties d’un bloc Decide doivent être connectées à un bloc (éventuellement un bloc Dispose si la sortie n’est pas « utile »).Queue1 et Match 1.

Voir une description du bloc Match 1 à l'aide du RdP suivant.

synchronisation Entrées du bloc Match Match 1.Queue1 Sorties du bloc Match

Match 1.Queue2

Notons que toutes les sorties d’un bloc Match doivent être connectées à un bloc (éventuellement un bloc Dispose si la sortie n’est pas « utile »).
i) Separate (issu du template Basic Process) : Un bloc Separate permet de dupliquer des entités lorsque le champ Type = Duplicate Original. Le nombre de duplication créée est spécifié dans le champ # of Duplicates. Lorsqu’une entité entre dans ce bloc et comporte des attributs, les attributs de toutes les entités dupliquées sont identiques aux valeurs courantes des attributs de l’entité à dupliquer. L'entité originale sort par la sortie Original, les # of Duplicates entités (celles dupliquées) sortent par la sortie Duplicate. Un bloc Separate, intitulé Separate 1 (champ Name = Separate 1), est décrit dans la figure suivante. Un exemple est donné dans \Exemples\Separate\Separate.doe.

48

Le RdP qui suit permet de décrire un bloc Separate.
Original (sortie de l'entité originale) Separate Duplicate (sortie de (# of Duplicates) entités dupliquées Entrée de l‘entité

Entrée de l'entité

Sortie de l’entité originale Sortie de (# of Duplicates) entités dupliquées

j) Process (issu du template Basic Process) : Un bloc Process permet de simuler le comportement d’une machine, sachant que différents modes de fonctionnement sont autorisés selon le contenu du champ Action (situé dans le cadre Logic lorsque le champ Type = Standard). Un bloc Process, intitulé Process 1 (champ Name = Process 1), est décrit dans la figure suivante.

Lorsque le champ Action contient la valeur : i) Delay, la machine se ramène à un simple bloc Delay, ce qui permet de simuler un temps de traitement (voir le cadre Delay Type pour assigner un temps de traitement) et le fait qu’il n’y a pas de contrainte vis-à-vis de la ressource de la machine.

49

2i) Seize Delay, la machine nécessite une, voire plusieurs ressources (voir le cadre Resources pour assigner le type, ainsi que le nombre, de ressources concernées) durant un temps (relatif au temps de traitement) minimum indiqué dans le cadre Delay (le relâchement de la ressource est supposé réalisé en aval). 3i) Seize Delay Release, idem. au cas 2i) avec une gestion au niveau du relâchement de la ressource « saisie ». 4i) Delay Release, idem. au cas 3i) sans la gestion de l’allocation de la, voire des ressources nécessaires au traitement d’une pièce (cette gestion est supposée réalisée en amont du bloc). Le RdP correspondant au cas i) est décrit au VIII.2.c. Les RdP correspondant au cas 2i, 3i, 4i sont issus de concaténation des RdP décrits au VIII.2.c,d,e.

VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT L’ANALYSE D’UN MODÈLE
Les blocs décrits au VIII.2 permettent de modéliser un système physique, sans pour autant fournir d’informations (exceptées celles données par défaut dans le rapport final). La collecte d’informations spécifiques se fait en utilisant des blocs supplémentaires. Quelques-uns de ces blocs sont décrits ci-dessous. Un exemple est donné dans le fichier \Exemples\Record_Statistic\Stat_File.doe.
1) Le bloc Record (issu du template Basic Process) permet, selon le contenu du champ Type, de : - compter le nombre d'entités traversant le bloc (Type = Count) (voir 1.a)) ; - recueillir les temps de passage successif de 2 entités (Type = Time Between) (voir 1.b)) ; - recueillir les temps mis par les entités traversant une partie (ou l'ensemble) d'un modèle (Type = Time Interval) (voir 1.c)). 1.a) Lorsque le champ Type = Count, le bloc Record permet de compter le nombre d'entités qui transitent par ce bloc. Le compteur s'incrémente d'une valeur (Value, par défaut égale à 1) à chaque passage d'une entité. Le nom du compteur est spécifié dans le champ Counter Name. Voir le bloc Statistic (voir 2.c) pour effectuer un enregistrement des données.

transition

compteur = + 1

50

Le lien avec l'attribut Attribute 1 se fait via le champ Attribute Name.b) Lorsque le champ Type = Time Between. Record et la figure suivante où est décrit un bloc Record de Type Time Interval.c) Lorsque le champ Type = Time Interval. VIII.Un bloc Record 1 (avec Type = Time Interval) placé juste après le bloc M afin de disposer des temps de parcours de la sortie du bloc N au bloc M. t M (i) les temps de sortie de l'entité n° i des blocs N et M respectivement (cf.c) pour effectuer un enregistrement des données. Le nom du tally8 est spécifié dans le champ Tally Name. Par exemple. . M. transition X X(k + 1) . le bloc Record permet de recueillir les temps de passage entre 2 entités successives.2.1. Assign. Bloc N tN (i) Bloc M tM (i) Pour réaliser cela.f) placé juste après le bloc N afin d'assigner le temps de passage. on dispose : . le bloc Record permet de recueillir les temps mis par les entités traversant une partie (ou l'ensemble) d'un modèle. 8 "To keep a tally of …" signifie "tenir le compte de …". Voir le bloc Statistic (voir 2. on souhaite pour chaque entité recueillir la différence entre le temps de sortie du bloc M et le temps de sortie du bloc N.Un bloc Assign (cf. schéma suivant). Le nom du tally est spécifié dans le champ Tally Name. 51 .X(k) X(k) : tps de franchissement de l’entité n° k 1. noté par exemple Attribute 1 (un attribut est une variable associée individuellement aux entités). à savoir TNOW. Soient t N (i ). de chaque entité dans un attribut. Voir le schéma suivant pour avoir une vue schématique des blocs N.

tN (1). tM (2) .spécifier les fichiers dans lesquels seront sauvegardées les données d’observations individuelles. tM (1) . 2) Le bloc Statistic (issu du template Advanced Process. .Bloc N Assign (Attribute 1 = TNOW) Bloc M Record 1 (Attribute Name = Attribute 1) tM (1). de disposer du nombre d’entités contenues dans une file d'attente. en supposant défini une file d'attente intitulée Process 1. . telles que le nombre d’entités contenues dans une file d'attente (variable NQ. par exemple : .b) (Type = Frequency) . . . le taux d’occupation à chaque instant d’une ressource (Type = Frequency) (cf.Queue) (voir figure ci-dessous). 2.celles issues d’une variable SIMAN (le nombre d’entités contenues à chaque instant dans une file d'attente. tM (2). tN (1). le taux d’occupation d’une ressource (variable NR. . 52 . 2. 2.collecter durant la simulation des statistiques issues de variables SIMAN. tN (2).c)) . de : . à travers la variable NQ (abréviation de Number in Queue) . 2. selon le contenu du champ Type.c)). appartenant au cadre expérimental et donc non traversé par une entité) permet.tN (2).Queue. .celles issues d’un bloc Record (relatif à un compteur ou un tally) (Type = Count ou Tally) (cf.a).mise à jour automatiquement par SIMAN. cf. . le bloc Statistic permet. 2. Par exemple.a) Lorsque le champ Type = Frequency et le champ Frequency Type = Value. la variable Statistic 3 (champ Name = Statistic 3) permet de connaître le nombre d’entités présentes à chaque instant dans la file d’attente Process 1. .Queue lorsque le champ Expression = NQ(Process 1. cf.

représentée par un bloc Process 1.csv au fichier de sauvegarde. Ce format est reconnu notamment par MatLab (via la commande CSVREAD) et Excel. Au préalable. 2 ou 3) lorsque le champ Expression =NR(Resource 1) (voir figure ci-dessous). pour cela cocher la case Write Statistics Output Files as Text accessible via le menu Run/Setup/Run Control/Advanced. notamment pour les décideurs non nécessairement initiés aux aspects techniques. d’un tally ou d’une variable SIMAN (NQ ou NR). de disposer du taux d’occupation d’une ressource. utilisant une ressource Resource 1 de capacité égale à 3 (donnée déclarée dans un bloc Resource). l'état d'un stock). la variable Statistic 4 (champ Name = Statistic 4) permet de connaître le nombre de ressources Resource 1 occupées au cours du temps (ce nombre pouvant être égal à 0. 2. notamment à travers une visualisation : du flux des entités (par exemple. des pièces circulant le long d'une ligne de production).sous réserve bien sûr que les conditions de simulation soient crédibles . le bloc Statistic permet. Par exemple. l'état libre (idle).4 ANIMATION GRAPHIQUE L'animation permet de décrire graphiquement l'évolution dynamique de l'état du système simulé. à travers la variable NR (abréviation de Number of busy Resource units) mise à jour automatiquement par SIMAN. considérons une machine. Le contenu du champ Type est respectivement égal à Counter.b) Lorsque le champ Type = Frequency et le champ Frequency Type = Value. occupée (busy) ou inactive (inactive) d'une machine. il suffit de mettre l’extension .ainsi que son répertoire si celui-ci est différent du répertoire contenant l’application . il faut indiquer que le fichier de sauvegarde est au format texte . soit disponible (idle).2. Par exemple. de l'état des ressources (par exemple.c) Le nom du fichier . Une ressource peut être occupée (busy). elle permet . des attributs (par exemple. D'un abord facile. Afin de disposer des données au format csv (abréviation de comma-separated-value.dans lequel sont enregistrées les données issues d’un bloc Record ou d’une variable SIMAN (NQ ou NR) est indiqué dans le champ Counter Output File ou Tally Output File (selon que le bloc Record est relatif à un compteur ou un tally) ou Output File (pour une variable SIMAN NQ ou NR).de mettre en avant les phénomènes 53 . « comma » signifiant virgule). 1. d'un robot). L'animation est un moyen très efficace de communication. VIII. le contenu d'une variable indiquant le temps de traitement d'une machine. Tally ou Frequency selon que les données sont issues d’un compteur. de l'évolution des variables. une machine constituée de n ressources permet le traitement en parallèle de n pièces.

Il est également possible de créer ses propres images.plb particulier. les liens reliant les modules entre eux : connecteur Create 0 Process 0 Notons que le mouvement des entités le long des connecteurs n'a pas d'impact sur le temps de simulation (TNOW).plb. Elle permet également lors de la conception du modèle de simulation de vérifier son bon fonctionnement à travers une visualisation étape par étape (voir commande Step ►| ) du cheminement des entités dans le modèle de simulation. Par exemple. voire les images créées.Truck). i.plb). Un exemple est donné dans le fichier \Exemples\Animation_Un_exemple\Animation. La simulation de temps de transport nécessite l'utilisation du bloc STATION du template Advanced Transfer. appartenant au cadre expérimental et donc non traversé par une entité). L'image est par défaut celle notée Picture. Le bouton Save permet de sauvegarder dans un fichier . 54 . est proposée par défaut (voir option Animate Connectors dans le menu Object).Doe. La barre d'outils Animation (Animate) Cette barre d'outils fournit une interface avec les objets de base de l'animation (cocher la case Animate de la fenêtre issue du menu View/Toolbars… pour faire apparaître – si nécessaire – cette barre d'outils). le fichier machine.plb met à disposition des images relatives à des machines. rattachée aux connecteurs. Le menu Edit/Entity Picture permet d'accéder à d'autres images (contenues dans des fichiers . ce qui fait apparaître une case grise. Le bouton Open permet d’ouvrir un fichier . Type : Entity Picture. Pour créer une image. Le changement de l'image associée à une entité se fait via son passage dans un bloc Assign en assignant une nouvelle image à l'attribut Entity Picture (par exemple. elle apparaîtra alors à la place de la case grise. lequel contient des images. cliquez sur le bouton Add de droite. Entity Picture : Picture.e. L'image initiale utilisée pour représenter un type d'entité donné est définie dans le bloc Entity (issu du template Basic Process. Fermer la fenêtre une fois l’image conçue . Elle permet de visualiser le flux des entités le long des connecteurs.Report et est indiquée dans le champ Initial Picture du module Entity. lesquelles seront sauvegardées dans un fichier .étudiés. Animation des entités Une animation.plb de votre choix la. Le fait de double cliquer dans cette case permet d’ouvrir une fenêtre (Picture Editor) où il est possible de concevoir une image..

.Level affiche la valeur d'une expression relative à des valeurs minimum et maximum spécifiées. l'image d'une ressource change en fonction de son état. busy ou inactive.Zone d'attente : .Resource permet de disposer d'un objet (par exemple.Clock permet d'afficher le temps de simulation en heures. la disponibilité d'une ressource). Durant la simulation. . La barre d'outils Dessin (Drawing) Les objets de cette barre d'outils permettent l'ajout de dessins statiques.Date permet d'afficher le temps de simulation en jours.Variable permet d'afficher la valeur numérique d'une expression mathématique ou logique. . Durant la simulation. .Histogram permet d'afficher la distribution de la valeur d'une expression dans une plage spécifiée. . minutes et secondes. .Queue permet d'afficher les entités en attente d'un événement spécifié (par exemple. .Affichage d'état : Clock Date Variable Level Histogram Plot Zone d'attente : Queue Ces objets sont décrits ci-dessous : Image : Resource Global .Affichage d'état : . . l'image de l'expression change en fonction sa valeur par rapport à une valeur spécifiée.Image : . attribut).Plot permet d'afficher les valeurs passées d'une expression sur une plage de temps spécifiée. Une ressource peut être dans l'état idle. ou de texte : Line Polyline Arc Bezier curve Box Polygon Ellipse Text Couleur 55 .Global permet d'associer des images à une expression (variable. une machine) à capacité limitée pouvant être alloué à des entités. mois et années.

9 56 . l’écart type) et à l’histogramme (la portée (la plus petite valeur et la plus grande valeur considérées dans l’histogramme). dans le répertoire \Exemples\Distribution. En fait. sont décrites des informations relatives aux données (le nombre de données. vous pourriez créer un fichier de données (. faire File/Data File/Use Existing…9. ce qui permet de récupérer le fichier (. Voir. A ce niveau. faire : Rockwell Software/Arena/Input Analyzer afin d’ouvrir l’application Input Analyzer.dst. par exemple. la moyenne. Pour analyser un fichier de données (. ou test2.dst. ce fichier est de type texte et donc lisible.dst) contenant les données à convertir en une loi de distribution : il en résulte l’affichage d’un histogramme des données. faire : File/New afin d’ouvrir une fenêtre Input1.5 DONNÉES D'ENTRÉES Le module Input Analyser d'ARENA permet l'exploitation de données d'entrées en déterminant automatiquement la loi de probabilité la plus adaptée de la distribution empirique obtenue à partir des données d'entrée (regroupées dans un fichier). via le WordPad. Une fois dans cette application. Dans la fenêtre grisée.VIII.dst) correspondant à une certaine distribution en sélectionnant Generate New…. le nombre d’intervalles (en O ( nbre de pts ) et compris entre 5 et 40)). les valeurs minimale et maximale. le fichier test1.dst).dst où une ligne contient un nombre (réel). à titre d’exemple. Les données d’entrées sont contenues dans un fichier au format . A près avoir cliquer dans la fenêtre grisée.

Pour modifier les paramètres de l’histogramme des données. l'écart type. à l'issue d'une simulation. telles que le calcul d'intervalles de confiance. la valeur maximum. faire : Fit/Fit All10. l'analyse de variances. VIII. la comparaison et l'analyse de moyennes. Outre les tracés de courbes et d'histogrammes. Pour trouver la meilleure distribution correspondant à cet histogramme. le calcul de résultats statistiques tels que la moyenne. la construction de corrélogrammes. le test d'hypothèses. faire : Options/Parameters/Histogram…. à savoir le nombre d’intervalles. 57 . la borne inférieure (les données ayant des valeurs inférieures étant ignorées) et la borne supérieure (les données ayant des valeurs supérieures étant ignorées). … 10 « To fit » signifie « ajuster ». ce module intègre différentes fonctions statistiques. Il est également possible de récupérer l'historique complet des valeurs récoltées au cours de la simulation dans des fichiers (exploitables par exemple via le logiciel Excel). la valeur minimum.6 ANALYSE DES RÉSULTATS Le module Output Analyser d'ARENA permet.

issu de la partie modèle.ANNEXE : UTILISATION DES TEMPLATES ELEMENTS ET BLOCKS A.mod.mod et exemple. EXPMT. Ces 2 programmes sont des fichiers de type texte. et le programme.doe SIMAN.mod partie modèle (cheminement des entités) MODEL.EXE sont fournis par SIMAN/ARENA (ces fichiers sont placés dans le répertoire \Rockwell Software\Arena afin de compiler et linker les 2 programmes (exemple.1 PRÉSENTATION DE SIMAN-ARENA Le langage SIMAN-ARENA s'articule autour d'un ensemble de programmes organisés selon le schéma suivant . i.doe : modèle animé .EXE. soit exemple.EXE (compilateur SIMAN) exemple. SIMAN. le nom du programme correspondant au modèle (logiciel) du système considéré.exp. On retrouve dans le schéma les 2 programmes constituant le modèle logiciel.EXE exemple.EXE (linkeur SIMAN) exemple.EXE (compilateur SIMAN) exemple. issu du cadre expérimental.m (modèle compilé) LINKER.exp).out exemple.p : modèle non animé sorties standards sorties particulières EXPMT.e.EXE.e (données compilées) .EXE. LINKER.. à savoir le programme. nommé exemple. exemple. Les fichiers MODEL.exp cadre expérimental (condition de simulation) 58 . nommé exemple. lisible par exemple via le logiciel Notepad.

mod : (partie modèle) 0$ 1$ 2$ CREATE.No. Le bloc Dispose détruit toute entité entrant dans le bloc. Les 2 fichiers . ceci toute les 2 unités de temps.0.générés par SIMAN-ARENA (accessibles à l'aide du menu Run/SIMAN/View) sont listés ci-dessous.. DELAY: DISPOSE: 1:2:NEXT(1$).Reprenons l'exemple du tapis roulant considéré dans la section VIII. Le bloc Delay force une entité à séjourner 3 unités de temps dans le bloc.. 1$.0.10.No. ayant un temps de transport de 3 unités de temps..0. Les blocs Project. • fichier exemple.Other:NEXT(2$). de manière analogue à l'entête d'un programme informatique. Replicate sont issus du template Elements. REPLICATE. Soit un tapis roulant.24. Le bloc Replicate permet notamment de fixer le temps où se termine la simulation."ISTIA". Le bloc Project permet notamment de donner un nom au projet (Premier exemple) et le nom du programmeur (ISTIA). 1..Yes.Yes. No.No.Yes. Dispose sont issus du template Blocks.Yes. • fichier exemple. 0$.exp : (cadre expérimental) "Premier PROJECT. représenté dans SIMAN-ARENA par le modèle logiciel décrit comme suit : 2 3 10 Les blocs Create.1. exemple".de type texte .No. Le bloc Create crée 1 entité à partir de l’instant 0.0. ici égale à 10 unités de temps (champ : Replication Length).Hours. Delay. 59 . 2$ sont des étiquettes. 3.No.No.No.0.No.

. A.Le template Elements qui regroupe les blocs fonctionnels élémentaires de SIMAN relativement au cadre expérimental . Il permet également de créer des animations graphiques pour visualiser le comportement du modèle durant la simulation.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA CONSTRUCTION DU MODÈLE a) CREATE (issu du template Blocks) : Ce bloc permet de créer des entités. figure suivante). la période de création (champ : Interval) et la taille des lots (champ : Batch Size) ainsi que le nombre total de lots à créer (champ : Maximum Batches) (cf. Les primitives de représentation sont regroupées dans différentes bibliothèques (templates).Le template Blocks qui regroupe les blocs fonctionnels élémentaires de SIMAN relativement à la partie modèle . un bloc est l'équivalent d'une ligne du fichier . On peut préciser la date de première création (champ : First Creation).Le modèle RdP correspondant à la partie modèle du modèle logiciel précédent est décrit dans la figure suivante : 3 2 CREATE 2 DELAY 3 DISPOSE ARENA est l'environnement de programmation graphique de SIMAN. un bloc est l'équivalent d'une ligne du fichier . L'utilisation de ce template entraîne généralement l'utilisation du template Elements. Ces templates ne sont pas disponibles par défaut dans l’environnement de SIMAN-ARENA. il permet de construire un modèle en proposant des primitives de représentation plus ou moins détaillées. pour permettre d'attacher (importer) un template non fourni par défaut.mod. utiliser le menu File/Template Panel/Attach. 60 .exp. Les 2 templates contenant les blocs les plus élémentaires sont : .

figure suivante). c'est-à-dire. Maximum Batches ( ∞) First Creation (0) Interval (∞) Batch Size (1) P Le nombre de jetons présents dans la place P correspond au nombre d'entités créées par le bloc CREATE. 61 . d'une transition sans place amont. b) DISPOSE (issu du template Blocks) : Une entité entrant dans ce bloc est immédiatement détruite (cf. C'est l'équivalent d'une transition puit.Voir une description de ce bloc à l'aide du RdP suivant.

62 . Voir une description de ce bloc à l'aide du RdP suivant. Entrée d'une entité dans le bloc DELAY P Sortie de l'entité du bloc DELAY Duration (0) Le nombre de jetons présents dans la place P correspond au nombre d'entités présentes dans le bloc DELAY. Sachant qu'une ressource peut être occupée. une entité doit disposer d'un certain nombre de ressources (le nom de la ressource est spécifié dans le champ Resource ID. elle y reste inconditionnellement pendant la durée (aléatoire ou non) indiquée dans le bloc (champ : Duration) (cf. d) QUEUE. le type de ressources (Resource ID) réclamées est supposé unique. figure suivante). figure suivante). est placée en amont du bloc SEIZE un bloc QUEUE qui va représenter une file d'attente dans laquelle seront stockées les entités en attente d'une. voire de plusieurs ressources nécessaires à l'entrée des entités dans le bloc SEIZE aval (cf. Afin de simplifier la compréhension. SEIZE (issus du template Blocks) : Pour entrer dans un bloc SEIZE. le nombre de ressources nécessaires est spécifié dans le champ Number of Units).c) DELAY (issu du template Blocks) : Quand une entité entre dans ce bloc.

Voir une description d’un bloc QUEUE et d’un bloc SEIZE à l'aide du RdP suivant. ce qui représente la sortie d’une entité du bloc SEIZE et la « saisie » de Number of Units ressources Resource ID. Le fait de franchir la transition T a pour effet d'ôter 1 jeton dans la place P1 et d’ôter Number of Units jetons dans la place P2. voire de plusieurs ressources. ce qui signifie qu'une entité – présente dans le bloc QUEUE – doit pouvoir disposer du nombre requis de ressources (à savoir Number of Units ressources Resource ID).Contenir (au moins) Number of Units jetons dans la place P2. .Contenir (au moins) un jeton dans la place P1. bloc QUEUE bloc SEIZE Number of Units (1) Entrée d'une entité dans le bloc QUEUE P2 P1 Sortie de l'entité du bloc QUEUE T Sortie de l'entité du bloc SEIZE Entrée de l'entité dans le bloc SEIZE La transition T pour être activée doit : . ce qui correspond à la présence d'(au moins) une entité dans le bloc QUEUE en attente d'une. 63 .

par exemple. 64 .Le champ Ranking Criterion qui indique le mode de gestion du bloc QUEUE. Le bloc SEIZE est lié au bloc RESOURCES issu du template Elements. e) RELEASE (issu du template Blocks) : Quand une entité entre dans ce bloc. ou les ressources dont le nom est spécifié dans le champ Resource ID (le nombre de ressources libérées est spécifié dans le champ Quantity to Release) (cf. le mode de gestion est de type « First In. figure suivante). Le bloc QUEUES permet de définir plusieurs blocs QUEUE.Le champ Name qui permet de nommer le bloc QUEUE. à travers : . Le fait de franchir cette transition correspond à ce qu’une entité sorte du bloc RELEASE et à la mise en disponibilité de Quantity to Release ressources (Resource ID). . le type de ressources (Resource ID) libérées est supposé unique. Afin de simplifier le graphe précédent. ou les ressources qui vont être saisies. P1 Quantity to Release (1) Entrée d'une entité dans le bloc RELEASE Sortie de l'entité du bloc RELEASE T' Le fait de franchir la transition T' provoque l'apparition de Quantity to Release jetons dans la place P1. Par défaut.Le bloc QUEUE est caractérisé (configuré) par le bloc QUEUES issu du template Elements. stock machine 1 . First Out » (FIFO). à travers le champ Name qui permet de nommer la. Voir une description à l'aide du RdP suivant. elle libère (relâche) la. au sens où il peut y avoir plusieurs files d'attente dans un même modèle.

Les blocs VARIABLES et ATTRIBUTES. f) ASSIGN (issu du template Blocks) : Ce bloc permet d’assigner une valeur à un attribut. la variable ou l’état de la ressource. à travers le champ Name qui permet de nommer la. permet de définir pour une ressource un état non standard (i. . spécifié dans le champ Variable or Attribute (cf. une variable ou à l’état d’une ressource.logique ou mathématique . 65 .la condition de branchement. issus du template Elements. Quand une entité entre dans un bloc ASSIGN. issu du template Elements. le bloc RELEASE est lié au bloc RESOURCES. ou les ressources qui vont être libérées.e. A chaque branche sont rattachées deux opérandes : . l’expression . indiquée dans le champ Condition or Probability.Comme pour le bloc SEIZE. Entrée d'une entité dans le bloc ASSIGN Sortie de l'entité du bloc ASSIGN Attribut_1 := val_1 Variable_1 := val_2 Attribut_2 := val_3 STATE(machine_1) := val_4 . autre que Idle. Le routage se fait via un ensemble de branches. figure suivante). Le bloc STATESETS. il comporte une entrée et plusieurs sorties. durant l’exécution d’une simulation. permettent de déclarer respectivement les variables et les attributs. Busy. . issus du template Elements.spécifiée dans le champ Value est évaluée et assignée à l’attribut (rattaché à l’entité présente dans le bloc). g) BRANCH (issu du template Blocks) : Ce bloc permet d’aiguiller un flux d’entités vers différents blocs de destination. Inactive. Voir une description du bloc ASSIGN à l'aide du RdP suivant.. spécifie la condition pour laquelle une entité sélectionne la branche . et Failed).

l’entité est détruite. ce qui nécessite de cocher l’option Detach des blocs QUEUE afin de les « détacher ».Always. Send To Label . voire de plusieurs entités situées dans différents blocs QUEUE. Le lien entre ces blocs QUEUE et le bloc MATCH se fait via des labels (indiqués dans les champs Label des blocs QUEUE et dans les champs Queue Label du bloc MATCH).le label destination. Send To Label . Send To Label. . Quatre types de test sont possibles : . Condition. If With Else Always Condition Probability Voir une description de ce bloc à l'aide du RdP suivant. Send To Label permet un branchement probabiliste (la somme des probabilité de toutes les branches ne peut pas dépassée 1) . . Si aucune branche n’est satisfaite.Always.With. . Send To Label . dans l’ordre de leurs déclarations dans le bloc). chaque condition de branchement est testée de manière séquentielle (i. . Condition. Probability.If. BRANCH ..Else.If. l’entité est alors aiguillée vers le bloc indiqué via le label destination.e. aiguille l’entité vers le bloc approprié. Sélection d’une transition : Entrée d'une entité dans le bloc BRANCH .Else. Send To Label . La branche sélectionnée par une entité est la première branche pour laquelle la condition de branchement est satisfaite . voire plusieurs entités. Send To Label .With. Probability.. Send To Label . Quand une entité entre dans un bloc BRANCH. indiqué dans le champ Send To Label. ces entités sont libérées vers les 66 . Quand tous les blocs QUEUE associés au bloc MATCH ont une. Sorties h) MATCH (issu du template Blocks) : Ce bloc permet de synchroniser la progression de deux.

QUEUE Q_1 QUEUE Q_2 Lab_1 MATCH Lab_2 Lab_dest_1 Lab_dest_2 Voir une description de ce bloc à l'aide du RdP suivant.blocs spécifiés à travers des labels de destination (indiqués dans les champs Destination Label). Lab_dest_1 Lab_1 bloc QUEUE Q_1 Lab_2 Lab_dest_2 bloc QUEUE Q_2 bloc MATCH blocs QUEUE Q_1 et Q_2 i) DUPLICATE (issu du template Blocks) : Ce bloc permet de dupliquer des entités et de les envoyer vers différents blocs via des labels (indiqués dans les champs Duplicate Destination). Notons que les entités issues d’un bloc QUEUE sont détruites si le label de destination correspondant n’est pas indiqué (cf. 67 . figure suivante).

issu du template Elements. .Le nombre de duplication créée est spécifié dans le champ Quantity to Duplicate. Quelques uns de ces blocs sont définit ci-dessous. DUPLICATE Quantity to Duplicate . dont le nom est spécifié dans le champ Counter ID. permet de compter le nombre d'entités qui transitent par ce bloc. est lié au bloc COUNTERS. Entrée de l‘entité dans le bloc DUPLICATE Sortie de l’entité Quantity to Duplicate := N . Sorties des N entités dupliquées A. . . 68 .2 ont pour objectif de modéliser un système physique. ce dernier permet de déclarer (définir) le (ou les différents) bloc(s) COUNT présent(s) dans la partie modèle. issu du template Blocks. La collecte de résultats spécifiques à un système donné se fait en utilisant des blocs supplémentaires. Voir plus bas en ce qui concerne un éventuel enregistrement des données. a) Le bloc COUNT.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT UNE ANALYSE DU MODÈLE Les blocs décrits dans A. Le bloc COUNT. Lorsqu’une entité entre dans ce bloc et comporte des attributs. Voir une description de ce bloc à l'aide du RdP suivant. . à travers le champ Name. les attributs de toutes les entités dupliquées sont identiques aux valeurs courantes des attributs de l’entité à dupliquer.

issu du template Blocks.b) Le bloc TALLY. Pour cela. issu du template Elements. noté par exemple Tps_entrée (un attribut est une variable associée individuellement aux entités). Soient t N (i ). . permet : . .tN (2). indiquer BET (pour BETween) dans le champ Value.tN (1). Bloc M TALLY (Value = INT(Tps_ entrée)) tM (1). . de chaque entité dans un attribut. on souhaite pour chaque entité recueillir la différence entre le temps de sortie du bloc fonctionnel M et le temps de sortie du bloc fonctionnel N. .De recueillir les temps mis par les entités traversant une partie (ou l'ensemble) d'un modèle. Pour cela.2. tM (2) . . tM (2). t M (i) les temps de sortie de l'entité n° i des blocs N et M respectivement (cf. ATTRIBUTES TALLIES tM (1) . Le bloc TALLY11 est lié au bloc TALLIES. Remarque : Il est possible d’assigner pour chaque entité sortant d’un bloc CREATE son temps de création (TNOW) dans un attribut (Tps_entrée) sans utiliser un bloc ASSIGN (situé juste en 11 « To keep a tally of … » signifie « tenir le compte de … ». à savoir TNOW. (Voir le schéma suivant). issu du template Elements. Bloc N tN (i) Bloc M tM (i) Pour réaliser cela. à travers le champ Name qui permet de nommer un attribut. . Le bloc ASSIGN est lié au bloc ATTRIBUTES. schéma suivant).De recueillir les temps de passage successif de 2 entités. .f) (juste) après le bloc N afin d'assigner le temps de passage. Bloc N ASSIGN (Tps_entrée = TNOW) tN (1). Voir plus bas en ce qui concerne un éventuel enregistrement des données. . indiquer dans le champ Value la donnée « INT(Tps_entrée) » (INT pour INTerval). tN (2). 69 . à travers le champ Name. Par exemple. on dispose : .Un bloc ASSIGN (cf. ce dernier permet de nommer le (ou les différents) bloc(s) TALLY utilisé(s) dans la partie modèle.Un bloc TALLY (juste) après le bloc M afin de disposer des temps de parcours de la sortie du bloc N au bloc M. A.

Au préalable. Une ressource peut être occupée (busy) (cf. Ce format est reconnu notamment par MatLab (via la commande CSVREAD) et Excel. la variable NR(Machine_1) permet de connaître le nombre de ressources Machine_1 occupées au cours du temps (ce nombre pouvant être égal à 0. Par exemple. dans lequel on indique NQ(Stock_1) . « comma » signifiant virgule). Par exemple. 70 . à travers les champs : .csv au fichier de sauvegarde (par exemple : « D:\Simulation\Fichier_1. issu du template Elements. utilisé pour identifier le résultat donné dans le rapport à l’issue de la simulation. 2 ou 3). . c) La variable NQ (abréviation de Number in Queue) est mise à jour automatiquement par SIMAN et permet de disposer du nombre d’entités contenues dans un bloc QUEUE durant la simulation. .Name. .SIMAN Expression. en supposant défini un bloc QUEUE intitulé Stock_1. puis cocher la case Write Statistics Output Files as Text. une machine constituée de n ressources permet le traitement en parallèle de n pièces. Par exemple. bloc RELEASE).Output File. d’une variable NQ ou NR : Le répertoire ainsi que le nom du fichier dans lequel sont enregistrées les données issues respectivement d’un bloc COUNT ou TALLY ou d’une variable NQ ou NR est indiqué entre guillemets à travers le champ Output File respectivement du bloc COUNTERS. TALLIES ou DSTATS (pour les variables NQ ou NR). 1. Afin de disposer des données au format csv (abréviation de comma-separated-value. utilisé pour identifier le résultat donné dans le rapport à l’issue de la simulation . Une variable NQ est déclarée dans un bloc DSTATS. Enregistrement des données issues d’un bloc COUNT ou TALLY. la variable NQ(Stock_1) permet de connaître le nombre d’entités présentes à chaque instant dans le bloc QUEUE intitulé Stock_1. Pour cela il suffit de mettre l’attribut Tps_entrée dans le champ Mark Attribute du bloc CREATE (voir la figure décrivant le bloc CREATE).SIMAN Expression.Output File. Une variable NR est déclarée dans un bloc DSTATS. pour un éventuel enregistrement des données. soit disponible (idle) (cf.Name. dans lequel on indique NR(Machine_1) . pour un éventuel enregistrement des données. bloc SEIZE). en supposant définie une ressource Machine_1 de capacité égale à 3 (déclarée dans un bloc RESOURCES). pour cela faire : Run/Setup/Run Control/Advanced. il suffit de mettre l’extension . il faut indiquer que le fichier de sauvegarde est au format texte .csv »). soit par exemple Evolution_Stock_1 . . d) La variable NR (abréviation de Number of busy Resource units) est mise à jour automatiquement par SIMAN et permet de connaître durant la simulation le taux d’occupation d’une ressource.aval du bloc CREATE). issu du template Elements. à travers les champs : .

You're Reading a Free Preview

Télécharger
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->