Vous êtes sur la page 1sur 56

# SIMULATION

SYSTMES DE PRODUCTION
RSEAUX DE PETRI
SIMAN - ARENA
Jean-Louis Boimond

## Table des matires

I INTRODUCTION LA SIMULATION ........................................................................................................... 2
I.1 LTAPE DE MODLISATION ............................................................................................................. 4
I.2 LES LIMITES DE LA SIMULATION .................................................................................................... 4
II LA SIMULATION DES SYSTMES DE PRODUCTION .............................................................................. 5
II.1 OUTILS DE MODLISATION .............................................................................................................. 6
II.2 APPLICATION AUX SYSTMES DE PRODUCTION ...................................................................... 7
II.3 UTILISATION DE LINFORMATIQUE ............................................................................................ 10
III RAPPELS DE PROBABILITS ET STATISTIQUES .................................................................................. 11
III.1 VARIABLES ALATOIRES CONTINUES ....................................................................................... 12
III.2 LOIS DE DISTRIBUTION STANDARD ........................................................................................... 13
III.3 VARIABLES ALATOIRES DISCRTES ....................................................................................... 16
IV DONNES D'ENTRE DU SYSTME ........................................................................................................ 18
IV.1 CONNAISSANCE PARTIELLE DES DONNES ............................................................................ 18
IV.2 DONNES EXISTANTES (accessibles la mesure) .......................................................................... 19
V. VRIFICATION ET VALIDATION DES MODLES .................................................................................. 21
V.1 VRIFICATION ..................................................................................................................................... 21
V.2 VALIDATION ......................................................................................................................................... 22
VI INTERPRTATION DES RSULTATS....................................................................................................... 24
VI.1 ANALYSE DES SYSTMES FINIS ..................................................................................................... 25
VI.2 ANALYSE DES SYSTMES QUI NE SE TERMINENT PAS ........................................................ 26
VII NOTIONS ELMENTAIRES SUR LES RSEAUX DE PETRI ................................................................ 27
VII.1
VII.2
VII.3
VII.4

GNRALITS ................................................................................................................................... 27
GRAPHES D'VNEMENTS ............................................................................................................ 29
EXEMPLES .......................................................................................................................................... 29
AUTRES CLASSES DE RSEAUX DE PETRI ............................................................................... 30

## VIII LE LANGAGE DE SIMULATION SIMAN-ARENA ................................................................................ 32

VIII.1 NOTIONS DE BASE .......................................................................................................................... 32
VIII.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA CONSTRUCTION DUN
MODLE ......................................................................................................................................................... 36
VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LANALYSE DUN MODLE .... 47
VIII.4 ANIMATION GRAPHIQUE ............................................................................................................ 51
VIII.5 DONNES D'ENTRES ................................................................................................................... 54
VIII.6 ANALYSE DES RSULTATS .......................................................................................................... 55

Bibliographie

Introduction to Simulation Using SIMAN. Second Edition, C. Dennis Pegden, R.E. Shannon, R.P.
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 : Mthodes et simulation, A. Ait Hssain, Ed. Dunod, 2000.
Probabilits et statistiques. 3me dition, A. Ruegg, Presses Polytechniques Romandes.
Du Grafcet aux rseaux de Petri. R. David, H. Alla, Herms, 1989.
Cours de Simulation des systmes 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 systmes de production , P. Castagna, A. L'Anton, N. Mebarki,
97/98 - IUT OGP Nantes.
Cours de Rseaux de files d'attente et simulation , J. P. Chemla, 96/97 - Universit de Tours.
Cours de Simulao de Sistemas Dinmicos , R. Santos Mendes, 02/03 - UNICAMP - Campinas, Brsil
(http://www.dca.fee.unicamp.br/~rafael/).
Dossier de prsentation Arena. La solution simulation , Ouroumoff Diffusion, Lyon.

I INTRODUCTION LA SIMULATION
La simulation est un processus qui consiste :
- Concevoir un modle du systme (rel) tudi,
- Mener des exprimentations sur ce modle (et non pas des calculs),
- Interprter les observations fournies par le droulement du modle et formuler des
dcisions relatives au systme.
Le but peut tre de comprendre le comportement dynamique du systme, de comparer des
configurations, dvaluer diffrentes stratgies de pilotage, dvaluer et doptimiser des
performances.
La simulation est une technique, applique dans ce cours aux systmes de production,
permettant d'tudier le comportement d'un systme dynamique en construisant un modle
logiciel de celui-ci.
CREATE

SEIZE

DELAY

DELAY
10

Operateur
1

DELAY

RELEASE

ASSIGN

Operateur

Date de sortie

DISPOSE

SCHEDULES
Calendrier

VARIABLES
Date de sortie

DSTATS
NR(Machine)
NR(Operateur)

Modlisation

Analyse des
rsultats

Les domaines d'application sont divers. Sont lists ci-dessous quelques classes dapplications
et quelques exemples de problmes typiques rattachs ces classes :

## Systmes de flux de production

- quilibrage de lignes dassemblage,
- conception de systmes de transfert entre des postes,
- dimensionnement des stocks dun atelier,
- comparaison de pilotage,
- valuation de la charge prvisionnelle,
- tude de la synchronisation entre les rceptions des pices et lassemblage.

## Flux logistiques et systmes de transport

- conception et dimensionnement dentrepts,
- dimensionnement dune flotte de camions,
- tude de procdures de contrle des flux de vhicules en circulation.
2

## Production des services

- tude de transactions bancaires,
- gestion de restaurants,
- comparaisons de politiques de maintenance des avions.

## Systmes informatiques et tlcommunications

- valuation de protocoles de gestion des transactions de bases de donnes,
- tude de la file dattente mmoire dun serveur,
- tude des comportements des utilisateurs,
- conception et dimensionnement de hubs ( moyeu ).

## Autres classes dapplications

- domaine militaire (support logistique, coordination des oprations, ),
- gestion dhpitaux (personnel, lits, service durgence, ),
- le nuclaire, la mto, les jeux, ...

Mthodologie gnrale

## On distingue classiquement quatre phases distinctes : La modlisation (reprsenter le

comportement du systme), la programmation, l'exprimentation et l'interprtation des
rsultats (accompagne dactions).
Validation
Systme (rel)
Analyse & Modlisation

Interprtation
& Action

Modle conceptuel

(a)

Programmation

Correction
Vrification
Exprimentation(b)

Rsultats
Correction

Programme de
simulation

## Modle conceptuel : Le modle n'est qu'une approximation du systme, il est conditionn

par l'objectif de l'tude.
(b) Exprimentation : Il s'agit de construire des thories, ou hypothses, qui prennent en
compte le comportement observ.
(a)

Le passage du systme au modle conceptuel est une tape essentielle pour la simulation.
Dans le cadre de ce cours, on utilise une modlisation conceptuelle par rseaux de Petri (cf.
chp. VII). Le passage du modle conceptuel au modle/programme de simulation se fait en
utilisant le langage Siman-Arena ; ce langage de simulation permet galement dextraire des
rsultats issus de diffrentes exprimentations (cf. chp. VIII).

## I.1 LTAPE DE MODLISATION

Ltape de modlisation est une phase essentielle la simulation. Diffrents points doivent
tre abords :
Dfinir l'objectif de la modlisation (li au cahier des charges) : Pourquoi modlise-t-on ?
Qu'tudie-t-on ? Que veut-on amliorer, ou faire ?
Dfinir les lments du systme (via la ralisation d'une fonction, ou d'un processus) et les
limites du systme (les entres, les sorties).
Dfinir les interactions entre ces lments (hirarchie).
Dfinir la dynamique du systme (entits qui circulent entre les lments, comportement du
systme au cours du temps).
Abstraction (choisir les lments du systme pertinents pour l'tude).
Formalisation, conceptualisation : Modle mathmatique (algbre (max, +), chanes de
Markov), modle logiciel (Simulink, Siman-Arena), modle graphique (rseaux de Petri,
bond graphs).

## I.2 LES LIMITES DE LA SIMULATION

Certaines limites sont dues la technique elle-mme, d'autres sont dues aux produits
actuellement disponibles sur le march (notons quune formation sur les logiciels utiliss est
souvent ncessaire) :
La programmation demande un certain niveau d'expertise. La qualit des rsultats fournis
lors de l'analyse des solutions est lie la qualit de la modlisation et au savoir-faire du
modlisateur (la modlisation est un mtier).
La simulation n'est pas une technique d'optimisation au sens propre. Elle ne peut qu'tablir
les performances d'une solution conue et imagine par l'utilisateur. C'est une technique
entirement itrative 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
dcider de ce qui rpond le mieux aux problmes poss.

## Les rsultats de simulation sont souvent complexes interprter. On tudie des

phnomnes alatoires et les techniques d'analyse demandent de la rigueur ; il est souvent
difficile de faire la part du crucial et de l'anecdotique (le modle doit tre ni trop grossier,
ni trop prcis).
Souvent pour des raisons financires, on doit aller au plus vite vers une solution finale
(sans passer trop de temps explorer dautres solutions intermdiaires).

## II LA SIMULATION DES SYSTMES DE PRODUCTION

Les systmes automatiss de production - l'initiative de l'Homme - sont caractriss
par une forte complexit et flexibilit. Selon un certain point de vue, ils peuvent tre spcifis
par des modles vnements discrets (un modle est vnements discrets lorsque lespace
d'tat est vnements discrets, i.e., les transitions entre tats sont associes l'occurrence
d'vnements discrets asynchrones). Les systmes de trafic (arien, ferroviaire, ), les
systmes de communication, les systmes informatiques sont d'autres exemples de systmes
dynamiques dont l'activit est due des vnements discrets, dont certains sont provoqus
(dpart dun train, appui sur une touche d'un clavier) et d'autres pas (panne d'un quipement).

Modle
Systme de
production

Historique,
statistiques

Evaluation de
performances

Programme

Un systme de production est constitu d'un systme oprant (physique), d'un systme de
conduite (partie commande) et d'un systme d'informations reliant ces deux derniers. Il est
travers par un flux d'informations (prsence d'une pice, tat d'une machine) et un flux
physique (matire premire, pices). Le systme tudier peut tre existant, modifier ou non
encore construit.
Le modle dcrit le fonctionnement du systme (sa structure et son comportement dynamique)
avec le degr de dtail ncessaire la rsolution du problme pos. C'est une reprsentation
de la circulation des flux de produits :
- Le flux est ralenti par des activits qui mobilisent des ressources (aprs avoir attendu
leur disponibilit) pendant un certain temps (dures opratoires, temps de transfert, ...),
- Le flux est contraint par des rgles opratoires (gammes, contraintes technologiques),
- Le flux est dirig par les rgles de conduite (systme de contrle).
L'historique et les statistiques portent sur les dplacements (temps de sjour des pices, temps
de transports des pices d'un lieu un autre, ...), les taux d'engagements des ressources, les
longueurs des files d'attente, ...
L'valuation de performances1, en terme de circulation de produits, exploite ces donnes
pour :
- Dterminer des performances absolues (temps de cycle maximum, systme sans
panne),
- Prdire des performances dans certaines conditions,
- Faire une analyse de sensibilit (parmi des choix semblables),
- Comparer des alternatives (parmi des choix possibles).
1

Lvaluation de performances se base souvent sur le taux de production (nombre moyen de pices par unit de
temps), le WIP (Work In Process, nombre total de pices dans le systme chaque instant), le makespan
(intervalle de temps entre le dbut et la fin de la production des pices).

## La simulation permet de rpondre la question que se passe-t-il si ... ? pour l'tude de

systmes de production complexes (structure, comportement dynamique, taille, choix
multiples).

## II.1 OUTILS DE MODLISATION

Les systmes de production font partie des systmes (dynamiques) vnements discrets 2.
Parmi les modles utiliss pour l'tude de ces systmes, il y a :
- Les rseaux de files d'attente valuation analytique de performances,
- Les rseaux de Petri analyse des proprits, valuation de performances,
simulation,
- Les modles (et programmes) de simulation.
De faon gnrale, un modle est compos :
- De variables,
- D'objets (centres de services, clients, ressources) caractriss par des attributs :
Fixes (i.e., dont la valeur ne change pas au cours du temps, exemple : Type de
pice),
ou
variables (i.e., dont la valeur change au cours du temps, exemple : Occupation
dune machine),
- Des relations entre ces objets (services effectus au cours du temps).
Exemple :
M2
Pices A
Pices B

M1
t1A
t1B

M3

## Attributs fixes : Pices A, Pices B

Attributs variables : Temps de traitement de la machine M1 (t1A, t1B)
L'tat du systme un instant donn est caractris par l'ensemble des valeurs des variables
et des attributs de tous les objets. Le modle reproduit l'volution au cours du temps de l'tat3
du systme sous l'effet des activits qui y sont ralises.

Les changements dtat de tels systmes soprent instantanment, des moments discrets dans le temps. Par
exemple, si une variable reprsente le nombre de pices dans un stock alors ses valeurs varient seulement aux
instants o des pices entrent, ou sortent, du stock.
3
Dans le cas dune volution continue de ltat, le modle est continu, la description se fait, par exemple, via des
quations diffrentielles, ou des variables dtat. Dans le cas o les changements dtat seffectuent,
instantanment, des instants discrets dans le temps, le modle est vnements discrets, la description se fait,
par exemple, laide dun rseau de Petri. Certains problmes ncessitent des modles dits hybrides, o
apparaissent conjointement des comportements continus et des comportements dus des vnements discrets.

## Evolution d'une simulation vnementielle : Le modle du systme passe au cours du temps

d'un tat un autre suite au dclenchement d'un vnement. A chaque vnement est associe
une fonction excuter laquelle peut modifier l'tat du systme travers le dclenchement
d'un, ou de plusieurs vnements.

vnement X
Moteur

chancier

vnement C

vnement B
vnement A

vnements
datables

Excution de
lvnement
dont la date
doccurrence
est la plus
proche

## II.2 APPLICATION AUX SYSTMES DE PRODUCTION

1. Pourquoi ?
Complexit croissante, interactions trs fortes entre les diffrents lments d'un systme de
production : Ncessit d'une approche globale.
Prise en compte de tous les aspects (donnes techniques, gomtrie du rseau de transport,
capacit des files d'attente, contraintes sociales, travail en quipe, heures supplmentaires).
2. Indicateurs de performances et prise de dcision
A partir de l'historique de circulation des flux de produits, on obtient des valeurs des
indicateurs de performances lis au volume de production, l'engagement des ressources et
ventuellement la satisfaction du client.
- Volume de production :
- Nombre et type de pices produites,
- Nombre et type de pices dfectueuses, ...
- Engagement des ressources :
- Taux d'utilisations : Machines, outils, personnel, stock, ...,
- Temps pass par un lment dans un tat : Ressources, machines (en fonctionnement,
inoccupes, en panne), cycle de pice, ...
Ces indicateurs de performances sont ensuite agrgs pour des prises de dcisions relatives
l'aide la conception, la conduite, ...

3. A quel niveau ?
a) La simulation : une aide la conduite

Ralit

Paramtrage automatique

Systme de
commande

Systme
physique

Modle de
commande

Proposition
de dcisions

Dcisions

Simulation

Rsultats

Modle du
systme
physique

Le systme prsente un problme (il ne rpond 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 cot.
Dfinir les performances mesurer.
Dterminer les ressources goulets (machines, stocks, moyens de manutention,
personnel, ...) qui agissent le plus sur les performances, et pour un scnario de production
donn.
On peut chercher amliorer le systme, soit en agissant sur la capacit des ressources, soit
sur la manire dont on utilise ces ressources (rgles de gestion).
Les donnes utiliser (recueil non exhaustif) :
- Produits (type, gamme),
- Moyens de production (capacit des machines, cot, taux rebut, disponibilit),
- Systmes de transfert (nature, caractristiques),
- Caractristiques des automates (rgles de commande),
- Stocks (nature, capacit, gestion),
- Oprateurs (qualification, nombre, horaires),
- Stratgie(s) de gestion de production,
- Rgles de fonctionnement (mode nominal ou dgrad).

Ralit

Simulation

Systme de
commande

Proposition
de dcisions

Identification

Systme de
traabilit

Modle de
commande
Identification

Historique

Historique

(produits,
processus)

(produits,
processus)

Identification

Systme
physique

Modle de
traabilit
Identification

Dcisions

Rsultats

Modle du
systme
physique

## L'objectif est de concevoir, dvelopper un systme de traabilit.

Bien mettre en vidence les entits identifier, recenser le contenu de l'historique des produits
et du (des) processus, dfinir les informations ventuellement utilises dans le systme de
commande.
Le systme de traabilit devant tre adapt sa structure, conforme l'attente de
l'environnement et en accord avec les standards et les rglements.
On peut chercher synthtiser un systme de traabilit qui soit fiable (le reflet de la ralit)
et robuste (l'outil de simulation permettant la prise en compte de diffrents scenarii possibles,
ceci sans risque pour le systme (rel)).
Les donnes utiliser (recueil non exhaustif) concernent l'ensemble de l'tat (dynamique) du
systme 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 enregistre (1994, ISO 8402) :
- Produits, articles, lots (entits),
- Moyens de production (capacit des machines),
- Stocks, systmes de transfert (tat),
- Oprateurs (qualification, nombre, horaires),
- Systme d'identification,
- Structure de traitement des donnes recueillies.

Simulation

Ralit

Modle de
commande

Systme de
commande
Implmentation

Conception
du systme

Modle du
systme
physique

Systme
physique

## Aide la dcision d'investissement :

Choix technologiques et organisationnels : Equipements, stratgies de gestion de production
(gestion des stocks, taille des lots, seuils de rapprovisionnement, nombre de Kanban),
organisation du travail (cellules, lignes, mixte), choix de gamme.
Evaluation des diffrents scnarii en fonction des critres les plus pertinents.
Exemples d'applications :
Dimensionnement d'ateliers : Nombre et type des quipements (en fonction du cot),
capacit des stocks, nature du systme de transport
Choix de production (tude de rentabilit)

## II.3 UTILISATION DE LINFORMATIQUE

On a trois alternatives :
1. Ecrire le programme correspondant au problme et au systme donns. Les moyens
informatiques sont les langages de programmation gnraux (C, Fortran, Pascal, ...). La mise
en uvre peut tre longue, par contre on dispose dune grande flexibilit.
2. Utiliser un logiciel, appel simulateur, ddi un type de systmes et un type de problme.
Le modle est donn et il suffit de le paramtrer pour l'adapter au cas tudi. Cette alternative
prsente lavantage de ne pas programmer (seules des donnes sont entrer), par contre il
nest pas toujours simple de trouver le logiciel ddi adapt au systme et au problme
concerns.
3. Le dveloppement d'un modle de simulation est ralis au travers d'un programme crit
par l'utilisateur partir de primitives de modlisation offertes par le langage (les langages de
simulation). Ce type de logiciel offre une grande flexibilit mais avec des cots de
dveloppement parfois importants. Certains langages, comme SIMAN, proposent des
primitives de modlisation particulirement adaptes aux systmes de production (primitives
de modlisation des ressources et fonction de transport). SIMAN est un des principaux
logiciels standards en France (version ducative prix tudi).

10

## III RAPPELS DE PROBABILITS ET STATISTIQUES

Sachant qu'il est impossible quelle que soit la puissance des ordinateurs - de simuler
toutes les dviations possibles d'un systme, l'outil statistique est une alternative pour prendre
en compte, tudier et matriser les consquences des variations alatoires des systmes.
La thorie des probabilits, branche des mathmatiques, permet de modliser et d'tudier des
phnomnes alatoires. On parle alors d'vnements alatoires, de lois de probabilit, de
variables alatoires, ...
Dans un systme de production, de nombreux phnomnes ont un caractre alatoire, par
exemple :
- La dure opratoire d'une opration manuelle,
- La dure de vie d'un outil,
- L'absentisme des oprateurs,
- La priode d'arrive des ordres de fabrication dclenchant une production.
La statistique repose sur l'observation de phnomnes concrets. Le but est de recueillir des
donnes d'observation, de les traiter et de les interprter. On parle alors de population
d'individus, de variables caractristiques, d'chantillons, de moyennes, ...
Les modles probabilistes permettent de reprsenter approximativement les donnes
observes (imprcision, erreurs, rpartition dans la population) comme des variables
alatoires suivant une certaine loi de probabilit modles simplificateurs.
L'chantillon tant tir au hasard, les caractristiques des donnes traiter sont des variables
alatoires application de thormes de probabilits (par exemple, le thorme centrale
limite4).
La statistique exploratoire ou descriptive (analyse de donnes) permet de structurer, de
rsumer l'information contenue dans les donnes.
Mthodes de classification des individus en groupes homognes ;
Mthodes factorielles (analyse en composantes principales, analyse des
correspondances) rsumant les variables par des composantes synthtiques.
La prvision statistique permet de trouver une relation entre une variable et plusieurs
variables rgression linaire.
La statistique infrentielle5 permet notamment :
- L'estimation de moyennes,
- Le test (ou la vrification) d'hypothses.
La simulation utilise les rsultats des probabilits-statistiques essentiellement pour :
- Approcher des donnes empiriques par des distributions de probabilits
4

La moyenne d'un chantillon de taille n extrait d'une population quelconque de moyenne et d'cart type est

## quand la taille de l'chantillon

n

est suffisamment grande. Pour une population de dpart de distribution normale, le thorme centrale limite est
valable pour tout n. Pour les distributions rencontres dans la pratique courante, plus la taille de l'chantillon est
grande, plus la loi se rapproche de la loi normale. On peut considrer qu' partir de n gale 30, la moyenne d'un
chantillon est distribue de faon sensiblement normale.
5
Infrence : Opration intellectuelle par laquelle on passe d'une vrit (une proposition) une autre vrit
(proposition), juge telle en raison de son lien avec la premire : La dduction est une infrence.

11

## des fonctions intgres dans le modle de simulation (lois de

distributions),
- Interprter statistiquement les donnes gnres par le modle
moyennes, intervalles de confiance, ...
Dfinition de la probabilit
On considre l'ensemble E des ventualits possibles rsultant d'une preuve (exprience,
observation ou simulation), chacune de ces ventualits tant appele vnement lmentaire.
Un vnement quelconque est dfini comme un sous-ensemble A de E contenant tous les
vnements lmentaires de E composant l'vnement A. La probabilit attache un
vnement A est un nombre P(A) compris entre 0 et 1, obissant certaines rgles
axiomatiques, en particulier :
- L'vnement de l'ensemble vide a une probabilit nulle.
- L'vnement E a une probabilit gale 1.
- A E , on a 0 P( A) 1 .
- A, B E , on a P( A B) P( A) P( B) si A B .
Le problme de l'attribution de probabilits un ensemble d'vnements peut tre rsolu dans
un certain nombre de cas de la faon suivante :
- Si les vnements lmentaires sont en nombre fini, on peut procder une srie de
rptitions de l'preuve : La frquence d'apparition de chaque vnement permet de
disposer d'une estimation de sa probabilit.
- Si les vnements sont en nombre infini, on peut dfinir sur cet ensemble une densit
de rpartition de probabilit.

## III.1 VARIABLES ALATOIRES CONTINUES

Une variable alatoire continue X est une fonction valeurs relles dfinie sur un
ensemble (ensemble des vnements possibles, par exemple : = {pile, face} dans le cas
du lancer d'une pice 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 alatoire susceptible de prendre
toutes les valeurs d'un intervalle fini a, b , sans privilgier aucune rgion de a, b (on parle
d'vnements quiprobables). Aussi, la probabilit que X prenne une valeur appartenant
l'intervalle u, v ( a, b ) est proportionnelle la longueur de u, v , d'o
v
vu
P (u X v)
, soit P(u X v) f ( x) dx
u
ba
1 / (b a) si a x b
o f (x) =
.
0 sinon
f(x)

aire =

12

## La fonction f (x) , appele densit de probabilit, dfinit le comportement alatoire

(stochastique) de la variable alatoire X et permet ainsi de caractriser sa loi de probabilit
(distribution).
La loi uniforme (distribution of maximum ignorance) est utilise lorsque l'on a aucune
information excepte la connaissance du domaine a, b .
Remarque : Pour une variable alatoire continue, considrer un vnement du type X = x
n'a pas de sens. En effet, on a : P( x X x) 0 .
f (x) est une densit de probabilit
f ( x) 0 x R

f ( x) dx 1 (c.a.d., probabilit de l ' vnement certain 1)

x f ( x) dx .

## On dfinit la variance 2 ( 2 0 ), aussi note Var(X), par :

2 x 2 f ( x) dx M 2 , encore gale ( xM ) 2 f ( x) dx .

## Rappel (Moyenne, variance) : La moyenne constitue un paramtre de position, qui renseigne

sur l'ordre de grandeur des valeurs prises par la variable alatoire 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 concentres autour de la moyenne.
Exemple : Dans le cas de la loi uniforme prcdente, on a :
M

b
a

b x2
(b a) 2
x
ab
a b
dx
et 2
.
dx

a ba
12
ba
2
2

## On dfinit l'cart type (standard deviation) par = 2 .

La plus grande partie des phnomnes alatoires rencontrs dans la pratique peut tre tudie
via un nombre restreint de lois de distribution. Nous allons prsent voir les principales lois
de distributions.

## III.2 LOIS DE DISTRIBUTION STANDARD

a) LOI TRIANGULAIRE
f(x)

aire = 1

x
13

2( x a )

f
(
x
)

si a x m

(m a )(b a )

2(b x)

si m x b
f ( x)
(b m)(b a )

f ( x) 0 si non

D a, b ; M

amb
a 2 m 2 b 2 am ab mb
.
; 2
3
18

## Application : On utilise cette loi lorsqu'on dispose d'une estimation du minimum, du

maximum et de la valeur la plus probable.
Exercice : Soient a 0, m 2, b 3 , calculer P(1 X 2,5) ). Rponse : 0,75.

b) LOI EXPONENTIELLE
f(x)
1

f ( x) e x / si x 0 ( 0)

f ( x) 0 sinon

D 0, ; M ; .
2

Application : Cette loi est souvent utilise en pratique. Par exemple, dans le cas de temps
sparant les arrives de 2 clients successifs dans l'tude d'un phnomne d'attente, ou dans
le cas d'une dure de bon fonctionnement d'un quipement technique.
La loi exponentielle est la seule loi continue permettre la prise en compte de phnomnes
sans mmoire. En effet, la probabilit que X soit suprieure, ou gale, x x0 , sachant que X
est suprieure, ou gale, x0 , dpend de la valeur de x, et est indpendante de la valeur de x0
(on a : P( X x x0 X x0 ) P( X x) ).
Autrement dit, une loi exponentielle modlise la dure de vie dun phnomne sans mmoire,
ou sans vieillissement, ou sans usure : la probabilit que le phnomne dure au moins s + t
units de temps sachant quil a dj dur t units de temps sera la mme que la probabilit de
durer s units de temps partir de sa mise en fonction initiale. Par exemple, il est souvent
admis que la dure de vie T d'un dispositif lectronique obit une loi exponentielle. Aussi la
probabilit de bon fonctionnement dans un intervalle de temps u, u t , c'est--dire

## P(T t u T u) , dpend uniquement de la longueur de cet intervalle, et non de sa position

par rapport l'axe des temps (on a : P(T t u T u) P(T t ) ).

14

## Dmonstration : Soient l'vnement A correspondant au fait que X x0 et l'vnement B

correspondant

au

P ( X x0 x)

fait

x0 x

X x0 x .

que

On

P ( X x0 )

x0

f ( x) dx

et

f ( x) dx . Aussi P( B A) quivaut P( X x0 x X x0 ) .

on a P( B A)

P( B) P( A B)
P( A)

## Sachant que P( A B) quivaut P( X x0 X x0 x) 1 , on a P( B A)

P( B)
.
P( A)

Ainsi

P ( B ) P ( X x0 x)
P( B A)

P( A)
P ( X x0 )

x x

du

u
e

du

x0 x

( x0 x )

x0

x0

## qui est fonction de x uniquement (indpendant de x0 ).

c) LOI NORMALE
f (x)

points d'inflexion
f(x) =

1
2

f (x)

2 petit

2 grand
0
M-

M+

## 68% des valeurs

D , ; moyenne = M ; variance = .
2

Application : Cette loi s'applique dans le cas de processus dont la distribution est symtrique
et pour lesquels la moyenne et l'cart type sont estims. Exemple : Variations de la longueur
de pices fabriques en sries.
Cette loi permet de modliser une donne qui est la somme d'un grand nombre de donnes
alatoires (thorme central limite).
Rappel : A la place de la densit de probabilit f (x), on peut utiliser la fonction de rpartition
F(x) pour caractriser la distribution d'une variable alatoire X.
On a : F ( x) P( X x)

f (u ) du pour x .

15

## F ' ( x) f ( x) . Elle permet de calculer des probabilits de la forme P(a X b) ) sans

effectuer une intgration (ce qui est le cas en utilisant f (x) ) ; en effet
P(a X b) F (b) F (a) .

## III.3 VARIABLES ALATOIRES DISCRTES

Une variable alatoire est discrte si elle ne peut prendre qu'un nombre fini de valeurs. Pour
chaque valeur xi , on associe la probabilit p( xi ) d'apparition de cette valeur.
Pour N valeurs, l'ensemble des probabilits associes est tel que :
N

p (x ) 1

i 1

## Exemple : On dfinit un systme capable de produire quatre types de produits nots 1, 2, 3, 4.

Lors de l'arrive 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 reprsente soit par le diagramme en btons suivant indiquant p( xi ) en fonction de
xi :
p(xi)

1/3

1/6

xi

0
1

## soit par un histogramme :

p(xi)
1/3

1/6

0
6

xi

Ensemble de rectangles de mme largeur dont les surfaces sont proportionnelles aux probabilits p(xi).

16

Dfinitions
N

xi p( xi ) .
i 1

N

i 1

## On dfinit la probabilit cumule (notion utilise dans le logiciel SIMAN-ARENA) par

i

p c ( xi ) p ( x l ) .
l 1

1
1
5
Dans l'exemple prcdent, on a : pc ( x1 ) , pc ( x2 ) , pc ( x3 ) , pc ( x4 ) 1.
6
2
6

Application : Les variables alatoires discrtes s'appliquent dans le cas d'injection directe de
donnes empiriques dans le modle. Exemples : Types de pices, taille des lots.

17

## IV DONNES D'ENTRE DU SYSTME

La qualit des donnes est aussi importante que la qualit du modle (garbage in garbage out) ; ceci concerne, par exemple dans le cas d'un systme de production, les temps
opratoires, les temps de bon fonctionnement, les taux de rebut, ...
Deux problmes se posent principalement :
P1) Collecte des donnes
lesquelles ? disponibles ? pertinentes ? comment les collecter ?
P2) Systmes stochastiques
lecture directe des donnes empiriques ou tirage partir d'une distribution
thorique associe ?
Les sources possibles de donnes sont de nature diffrente :
- Enregistrement du pass bases de donnes interroger (problmes de mise jour).
- Observation du systme ressources humaines (erreurs).
- Systmes similaires attention aux infrences.
- Estimation des oprateurs (humains) ngligence des extrmes et oubli du pass.
- Affirmation des fournisseurs de matriel (souvent optimistes).
- Estimation des concepteurs ( vrifier).
- Considrations thoriques (par exemple le fait que les arrives de 2 clients
successifs dans une file d'attente suivent une loi exponentielle, que les variations de
longueur de pices en srie suivent une loi normale, ...).

Deux cas sont considrer, soit on a une connaissance partielle des donnes du
systme (moyenne, minimum, maximum, ...), soit on dispose des donnes du systme.

## IV.1 CONNAISSANCE PARTIELLE DES DONNES

C'est le cas des systmes qui n'existent pas encore, ou pour lesquels il est impossible
de disposer des donnes dsires (temps, ressources). On doit se baser sur l'estimation des
oprateurs, des concepteurs, des fournisseurs de matriel, ...
Trois cas se prsentent 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,
18

## - Une distribution exponentielle (grande dispersion : forte variabilit) de paramtre M si la

nature du phnomne le justifie.
2. Min et Max sont disponibles
On peut alors utiliser (si cela est justifi) :
- Une distribution uniforme de paramtres Min et Max, c'est la distribution de l'ignorance
(il n'y a pas de raison de penser que les probabilits ne sont pas quiprobables),
- Si les donnes sont centres autour de la moyenne M = (Min + Max)/2, on peut appliquer
une distribution normale centre autour de M ; partir de l'tendue des donnes (Etendue
= Max-Min), on peut calculer l'cart type : Si les donnes 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 paramtres Min, m
et Max.

## IV.2 DONNES EXISTANTES (accessibles la mesure)

Le problme P2 n'ayant pas de rponse claire, les logiciels de simulation proposent
souvent les deux possibilits.
Il est souvent intressant, pour des raisons thoriques et pratiques, de pouvoir dcrire une loi
de probabilit par une distribution thorique. Ceci revient exprimer sous forme analytique
les probabilits p( xk ) en fonction de l'indice k. On peut alors appliquer au calcul des
probabilits des mthodes bien connues d'analyse mathmatique, vitant ainsi des calculs
numriques fastidieux.
- Si les donnes empiriques sont directement utilises, elles sont entres sous forme de
distributions empiriques cumulatives (histogramme des frquences : regroupement des
observations en classes, nombres de classes = O( n bre d ' observations )).
- Si on veut faire des tirages partir des distributions thoriques, il faut :
a) Choisir une distribution en fonction de sa forme (et celle de l'histogramme des
donnes),
b) Estimer ses paramtres,
c) Tester l'hypothse (la distribution correspond-elle bien aux donnes ?).
L'tape a) est effectue, connaissant les caractristiques des distributions courantes et en
comparant visuellement la distribution thorique et la distribution empirique (histogramme
des frquences).
L'tape b) implique l'utilisation des estimateurs classiques.
L'tape c) peut s'effectuer visuellement, ou en utilisant des tests statistiques d'hypothses
(Khi- deux, Kolmogorov-Smirnov).
Exemple : On s'intresse au temps de traitement d'une machine. On dispose d'un ensemble de
500 valeurs reprsentant l'intervalle de temps (obtenu l'aide d'un chronomtre) entre chaque
apparition d'une pice en sortie de la machine. L'entre de la machine est toujours
approvisionne. On considre 21 classes pour construire l'histogramme des frquences.

19

## Nbre de valeurs appartenant la

classe n 1, n2, ... (*)

REAL data
Mean = 5,02

## Data pts =500

StdDev = 1,88

NORMAL DISTRIBUTION :
Sq Error = 0,0008231

intervals = 21
Min = -0,4531

Range : -1 to 12
Max = 11,3

NORM.(5,02 ; 1,88)

## (*) Hypothse : Valeurs Min et Max finies.

Une valeur x Classe n (1 n 21) Min (n 1)
Min
Cl. 1

Max Min
Max Min
.
x Min n
21
21

Max
.

Cl. n

## Si la valeur Min (respectivement Max) = - (respectivement + ), on considre une classe

[- , valeur relle] (respectivement [valeur relle, + ]).

20

## V. VRIFICATION ET VALIDATION DES MODLES

Les programmes de simulation se caractrisent par une volution constante (tests de
scnarii, que se passe-t-il si ?, ...). La difficult majeure est de savoir :
Comment avoir confiance dans le modle ?
Comment le transmettre l'utilisateur ?
Avant de tirer des infrences des rsultats statistiques d'un modle/programme de simulation,
il faut s'assurer qu'il est correct au sens o il reprsente bien le systme. Ceci passe
habituellement par deux tapes : la vrification et la validation.

V.1 VRIFICATION
La vrification consiste s'assurer que le modle fonctionne comme le concepteur le
dsire (pas d'erreur de logique), ce qui ncessite de pouvoir isoler les erreurs (tape la plus
difficile) afin de les corriger. La vrification est rendue plus facile si on commence par un
modle simple qu'on amliore (enrichi) progressivement. Les techniques (ou comportement
avoir) suivantes permettent l'isolation des erreurs :
1. Considrer toujours que le modle contient des erreurs et les chercher (approche
destructive, plutt que constructive).
2. Impliquer des personnes non concernes par la conception et l'implmentation.
3. Rviser le modle et les donnes avec l'aide d'au moins un client et un connaisseur du
langage (en plus du dveloppeur).
4. Effectuer des tests :
- Remplacer des temps alatoires par des constantes,
- Tester seulement une partie du modle,
- Tester le modle dans des conditions limites. Pour cela :
- Augmenter le taux d'arrive et/ou diminuer le taux de service pour crer des
congestions, ou des phnomnes de famines de machines,
- Rduire la taille des stocks pour crer des blocages,
- Modifier la distribution des types de pices (job mix) pour augmenter l'arrive
des pices de types moins frquents,
- Augmenter le taux d'occurrence des vnements moins frquents (par exemple
une panne).
5. Gnrer et analyser la trace du modle (cf. dans SIMAN au bloc TRACE de la bibliothque
ELEMENTS) pour vrifier le cheminement des pices, 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
symptmes (le raisonnement logique reste la meilleure approche).
8. Eviter des erreurs classiques, notamment vis--vis :
- De la saisie des donnes d'entre,

21

## - De la phase d'initialisation (units de mesures),

- Du contrle du flux,
- De l'existence de blocages,
- Des erreurs arithmtiques (parenthses, conversion de types, ...),
- Des erreurs d'enregistrement (temps d'arrive des pices, compteurs, ...),
- D'une mauvaise utilisation des primitives ou fonctions du langage.

V.2 VALIDATION
Trois questions doivent tre poses :
Le modle reprsente-t-il correctement le systme rel (validit conceptuelle) ?
Les donnes sur le comportement gnres par le modle sont-elles caractristiques
de celles du systme rel (validit oprationnelle) ?
L'utilisateur a-t-il confiance dans les rsultats du modle (confiance) ?
Trois points de vue sont prendre en compte :
- Celui du dveloppeur,
- Celui d'une personne valuant le modle (superviseur, client),
- Celui de l'utilisateur final (dcideur).
Trois types de tests :
1. Le comportement est-il raisonnable ?
- Continuit : Petits changements dans les paramtres d'entre
petits changements dans les variables de sortie et les variables d'tat.
- Consistance : Excutions presque identiques
rsultats presque identiques (exemple : Gnrateur alatoire chang).
- Dgnrescence : Suppression d'une composante (d'un mode ) du modle
effets sur les rsultats (exemple : Une machine supprime).
- Conditions absurdes : Paramtres d'entres absurdes
rsultats absurdes (exemple : Porter le budget de la publicit l'infini ne doit
pas entraner des ventes infinies).
2. Test des donnes et de la structure du modle
Les thories et les hypothses doivent tre correctes et la reprsentation du modle doit tre en
Validit de faade : Le comportement semble correct pour des personnes familires
avec le systme rel (logique, entres-sorties).
Vrification de la structure et des limites : Correspondance entre le modle conceptuel et le
systme de rfrence.
3. Test du comportement du modle

22

## Il consiste tudier le comportement du modle en relation avec le systme de rfrence.

Comparaison de comportements : Tests statistiques pour comparer les rsultats (Khi-deux,
Kolmogorov-Smirnov, ...).
Gnrer des symptmes :
- Le modle gnre des difficults dj connues dans le systme ?
- Le modle produit des rsultats connus pour des entres donnes ?
Anomalie de comportement : Une anomalie dans le modle peut amener dcouvrir
l'anomalie quivalente dans le systme rel ?
Prdiction de comportement : Prdiction du modle contre des tests sur le terrain.

23

## VI INTERPRTATION DES RSULTATS

Selon le logiciel utilis, l'excution d'un programme de simulation peut gnrer :
- Un rapport de simulation comprenant les moyennes, les carts types, les minimums et
maximums des variables observes, ...
- Un historique de l'volution de ces variables au cours de la simulation.
La qualit de la moyenne (arithmtique) comme estimateur de la vraie moyenne dpend, entre
autres, du nombre des observations. De mme, 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 crdibles sur les
performances du systme. Il suffit de changer le gnrateur de nombres alatoires pour que le
mme modle gnre des rsultats diffrents. 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 rsultats gnrs par un modle jouent le rle de mesures sur un chantillon. Il faut donc
les exploiter pour effectuer des procdures statistiques. A chaque variable (inconnue), il faut
associer un intervalle de confiance.
Rappel (Intervalle de confiance) : L'intervalle de confiance [c1, c2] du paramtre inconnu
est dfini l'aide de 2 grandeurs statistiques C1 , C2 de telle sorte qu'il recouvre, avec une
probabilit donne 1 , la (vraie) valeur inconnue de , soit :

p(C1 C2 ) 1 .
La probabilit 1 , associe cette estimation par intervalle, est appele niveau de
confiance ou seuil de confiance. Les valeurs les plus souvent utilises pour 1 sont : 0,90 ;
0,95 ; 0,99 et 0,999.
Chaque ralisation des deux statistiques C1 , C2 donne lieu un intervalle de confiance
numrique [c1, c2]. La notion de niveau de confiance est alors interprter dans le sens
suivant. Si l'on effectue un grand nombre de ralisations des deux statistiques ( C1 , C2 ), alors
la valeur inconnue du paramtre sera recouverte par environ 100 (1 ) % des intervalles
[c1, c2 ] 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 alatoire tudie,
En choisissant un seuil de confiance moins lev.
Il existe deux types de systmes : Les systmes finis c'est--dire, ayant un vnement de fin
qui dtermine la fin de la simulation - et les systmes qui ne se terminent pas - c'est--dire,
n'ayant pas d'vnement de fin de simulation. Par exemple, un commerce qui ouvre et qui
ferme intervalles rguliers est un systme fini ; par contre, un hpital o il y a toujours au
moins un patient est un systme qui n'est pas fini.

24

## VI.1 ANALYSE DES SYSTMES FINIS

Ils sont plus faciles analyser que les systmes qui ne se terminent pas. On ne peut contrler
que le nombre des rptitions des expriences. A chaque rptition, on peut utiliser un autre
gnrateur des nombres alatoires.
Deux sources de donnes d'observation :
a) Observations individuelles dans chaque rptition/exprience (par exemple, le temps
de traitement de chaque pice),
b) Moyennes, carts-types, maximums, minimums des observations dans chaque
rptition (par exemple, le temps de traitement moyen des pices).
Si lon change le gnrateur des nombres alatoires d'une rptition l'autre, on peut
considrer que les observations de type b) d'un ensemble de rptitions sont telles que :
- Elles sont indpendantes,
- Les moyennes sont normalement distribues.
Cette dernire proprit est due au fait qu'elles sont sommes, ou moyennes, d'observations
individuelles (thorme central limite).
Les procdures classiques de statistiques peuvent alors s'appliquer pour les moyennes. Pour
les minimums et maximums, certaines procdures 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 diffrence entre les moyennes, les maximums
et les minimums de deux systmes diffrents.
Cette comparaison de deux systmes est utile pour valuer par exemple la diffrence entre
deux dimensionnements, deux rgles d'ordonnancement, ... (si l'intervalle de confiance ne
contient pas 0, on peut en dduire que les deux systmes sont diffrents).
Procdure gnrale :
- Simuler un grand nombre d'expriences/rptitions (minimum 20) et rcuprer chaque fois
les observations souhaites (moyennes, maximum, minimum, ...) ;
- Analyser le comportement du systme en se basant sur la valeur moyenne pour chaque
exprience :
- Utilisation de l'histogramme,
- Calcul de l'intervalle de confiance.
- Dterminer le nombre dexpriences l'aide de l'analyse des rsultats en fonction des
prcisions souhaites pour l'intervalle de confiance. Utiliser la formule n2 n1 (h1 / h2 ) 2 o
n1 est le nombre dexpriences dj ralises,
n 2 est le nombre total dexpriences,
h1 est la moiti de l'intervalle de confiance dj obtenu,
h2 est la moiti de l'intervalle de confiance souhait.
- Simuler encore : Soit tout recommencer, soit rajouter les rsultats des nouvelles simulations
ceux des premires ;
- Analyser : Intervalle de confiance, histogramme.

25

## VI.2 ANALYSE DES SYSTMES QUI NE SE TERMINENT PAS

On sintresse l'tude des performances stationnaires dun systme du fait dun rgime
transitoire souvent favorable aux performances du systme ; ce peut tre, par exemple, le cas
dun atelier vide au dbut de la simulation. L'tat stable du systme correspond son
comportement aprs un certain temps et est indpendant de l'tat de dpart.
Le but est de calculer un intervalle de confiance autour de la moyenne. Deux problmes
peuvent se poser :
- Pas de point de passage prcis entre le rgime transitoire et le rgime stationnaire,
- Corrlation entre les observations.
Problme du rgime transitoire
Il existe trois mthodes pour traiter le problme du rgime transitoire :
- Choisir des conditions de dpart qui ressemblent aux conditions de rgime permanent
(par exemple : Charger les machines, mettre les pices dans les files d'attente).
- Faire des simulations assez longues pour rendre le rgime transitoire insignifiant.
- Ecarter les valeurs enregistres pendant le rgime transitoire. Pour cela, on peut
ventuellement utiliser le filtre de la moyenne glissante (moyenne arithmtique des k
observations rcentes) pour rduire la variabilit de la variable.
C'est cette dernire mthode qui est couramment utilise. Il existe certaines rgles pour
slectionner la partie tronquer, mais il n'y a aucune mthode compltement satisfaisante. La
plus utilise est d'valuer (visuellement) la priode transitoire l'aide des graphes (courbes,
histogrammes, moyennes mobiles).
Intervalles de confiance
Deux mthodes sont couramment utilises :
- Rptition d'expriences indpendantes comme pour les systmes finis (problme du
rgime transitoire chaque fois),
- Longue simulation et dcompositions des donnes gnres en sous-ensembles (batchs).
Cette dernire mthode consiste :
- Ecarter le rgime transitoire,
- Dcomposer les observations restantes en n batchs de taille m et sans chevauchement,
- Remplacer chaque batch B j (j = 1, 2, .., n) par X j , moyenne des m observations dans
Bj,

## - Calculer l'intervalle de confiance partir des observations X j , j = 1, 2, .., n.

Ici encore, les conditions du thorme central limite sont considres vraies et le calcul de
l'intervalle de confiance justifi (indpendance et normalit des observations X j ).
Indications :
n = 10. lag*,
m de 10 20.
Corrlogramme lag* : Le plus grand nombre d'observations pour lequel la
corrlation est encore significative.
Cette mthode (prsente pour des variables ne dpendant pas du temps comme le nombre de
pices finies) est videmment applicable pour les variables persistantes (dpendant du temps)
comme les tailles des files d'attente. Il suffit de dfinir les batchs par des intervalles de temps
rguliers au lieu d'un nombre fix de donnes.

26

## VII NOTIONS ELMENTAIRES SUR LES RSEAUX DE PETRI

VII.1 GNRALITS
Dfinition (Rseau de Petri)
Un rseau de Petri (RdP) est un graphe constitu de 2 sortes de nuds : Les places
(reprsentes par des ronds) et les transitions (reprsentes par des barres). Le graphe est
orient : Des arcs vont d'une sorte de nuds l'autre (jamais de places places, ou de
transitions transitions directement). Voir exemple dans la figure suivante.
T1

T4
P3

P1

P5
P7

T5

T2
P2

P6
P4

T3

T6

De faon plus formelle, un RdP peut-tre dfini par un 4-uplet <P, T, Pr, Post> tel que :
P P1 , P2 ,, Pn est un ensemble fini et non vide de places ;
T T1 , T2 ,, Tm est un ensemble fini et non vide de transitions ;

## Pr : P T 0, 1 est l'application d'incidence avant ;

Post : P T 0, 1 est l'application d'incidence arrire.
Pr ( Pi , T j ) est le poids de l'arc (orient) reliant la place Pi la transition T j ; ce poids vaut
1 si l'arc existe et 0 sinon.
Post ( Pi , T j ) est le poids de l'arc (orient) reliant la transition T j la place Pi .
Marquage des places
Les places sont marques par des jetons (points noirs) qui vont circuler dans les places selon
certaines rgles (dfinies ci-dessous). Cette circulation symbolise l'volution dynamique du
systme. Le marquage initial (celui indiqu sur le dessin) donne la position initiale des jetons.
Rgles de fonctionnement et circulation des jetons
Pour qu'une transition puisse tre active, la prsence d'un jeton au moins est requise dans
chaque place situe en amont de la transition. L'activation (le tir) de la transition a pour effet
de prlever ces jetons des places amont et de rajouter dans chaque place aval un nouveau
jeton.
De faon plus formelle, 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 :
m( Pi ) Pr ( Pi , T j ) (condition ncessaire).
Le franchissement (tir) de T j consiste retirer Pr ( Pi , T j ) jetons dans chacune des places
directement en amont de T j et ajouter Post ( Pk , T j ) jetons dans chacune des places Pk
directement en aval de T j .
27

Exercice : Exprimer sous une forme matricielle les applications Pr et Post relatives au RdP
prcdent. Valider travers quelques exemples le bon fonctionnement de lquation
dvolution du marquage : = + ( ) ,
o est le vecteur de tirs permettant une volution du vecteur de marquage, de vers .
Modlisation 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
rgle de priorit quelconque lorsque le conflit est effectif (c'est--dire lorsque les
transitions aval en comptition pourraient effectivement tre actives). Ne pas arbitrer
un conflit effectif fait que le comportement du systme n'est pas entirement spcifi.
- 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 droulement d'une tche : Il
faudrait alors mettre une temporisation sur les transitions. Par ailleurs, si on pense une place
comme un endroit o une ressource sjourne en attendant de poursuivre son parcours, il peut
y avoir une dure minimale de sjour respecter : Penser par exemple au sjour d'une pice
dans un four pour atteindre une temprature souhaite.
On est donc tent de mettre la fois :
- Une dure d'activation pour les transitions : Dure pendant laquelle un jeton situ dans
chaque place amont de la transition active est rserv pour cette transition (avant
de disparatre), et au-del de laquelle un jeton apparat dans chacune des places aval ;
- Une dure minimale de sjour dans les places : Dure 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 gnralit ne mettre de temporisations que sur les
transitions, ou que sur les places. La figure suivante montre la transformation d'une transition
de dure t en 2 transitions instantanes (le dbut et la fin) spares par une place de
temporisation t.

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'intrieur d'un intervalle a, b.

28

## VII.2 GRAPHES D'VNEMENTS

Restrictions et capacits de modlisation
Les graphes d'vnements sont une sous-classe de RdP pour lesquels toute place a exactement
une transition amont et une transition aval (les situations reprsentes dans les figures a et b
prcdentes sont interdites). Aussi, les graphes d'vnements peuvent modliser des
phnomnes de synchronisation, mais pas de concurrence.
A l'oppos, les graphes d'tat refusent les configurations reprsentes dans les figures c et d
prcdentes pour ne retenir que celles reprsentes dans les figures a et b. Aussi, les graphes
d'tat, tels que toute transition a exactement une place d'entre et une place de sortie,
permettent de visualiser des phnomnes de concurrence (dcision), mais pas de
synchronisation.
Une proprit fondamentale des graphes d'vnements
Le nombre total de jetons le long de tout circuit d'un graphe d'vnements reste constant. Ceci
n'est gnralement pas vrifi dans le cas d'un RdP (le nombre de jetons total d'un RdP ne
reste pas ncessairement constant au cours de l'volution du marquage du rseau).
VII.3 EXEMPLES
Soit une machine reprsente dans la figure suivante. Chaque pice qui arrive est, soit traite
immdiatement 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 units de temps. Aprs traitement, chaque pice sort.
arrive
pice

sortie
pice

stock

## Le RdP suivant modlise ce systme.

ressource
machine
ressource machine libre

Dmarrage
Arrive
pice

Sortie
pice
stock

3
ressource machine occupe

L'tat du systme modlis par le RdP est reprsent par le marquage dfinissant le nombre
de jetons contenus dans chaque place. L'volution de l'tat (reprsentant la dynamique du
systme) correspond l'volution du marquage (produit par le franchissement de transitions).

29

Modifications
a) Le modle RdP suivant indique une capacit de stockage limite 5 pices.
ressource machine libre
5

Arrive
pice

Sortie
pice
3
ressource machine occupe

stock

## b) Le stock en amont de la ressource machine est remplac par un convoyeur correspondant

une file compose de 5 compartiments (gestion First-In, First-Out du convoyeur). Le
temps de dplacement du convoyeur est de 6 units de temps. Le systme est reprsent
par le modle RdP suivant.

Arrive
pice

6/5

Dmarrage

6/5

6/5

## c) La machine a une capacit de traitement de 2 : Elle est capable de traiter 2 pices

simultanment. Le systme est reprsent par le modle RdP suivant.
ressources machine libres
2
Dmarrage
Sortie
pice
3
ressources machine occupes

d) La machine a un temps de setup de 1,5 units de temps. Le systme est reprsent par le
modle RdP suivant.
ressources machine libres
2
Dmarrage

1,5
Sortie
pice

3
ressources machine occupes

## VII.4 AUTRES CLASSES DE RSEAUX DE PETRI

Rseau de Petri synchronis

30

## Un ensemble d'vnements externes est associ au RdP ; ces vnements permettent le

franchissement de certaines transitions. Un tel RdP est dit synchronis.
Considrons le RdP modlisant la machine dcrite dans VII.3. On associe ce RdP l'ensemble
d'vnements A, D, S o A dsigne l'vnement Arrive pice , D l'vnement
Dmarrage service , S l'vnement Sortie pice . La figure suivante reprsente le
systme modlis par un RdP synchronis.
ressource machine libre
T1

Dmarrage

T3

Arrive
pice

Sortie
pice
T2

stock

3
ressource machine
occupe

## Le tir de la transition T1 est li l'occurrence de l'vnement A.

Le tir de la transition T2 est li :
- A la validation de la transition, matrialise par la prsence d'au moins un jeton dans la
place stock et d'un jeton dans la place ressource machine libre ;
- Au dmarrage effectif du service (occurrence de l'vnement D).
Le tir de la transition T3 est li l'occurrence de l'vnement S.
Rseau de Petri gnralis
Un RdP gnralis est un RdP dans lequel les poids associs aux arcs sont des nombres
entiers strictement positifs. Ces poids peuvent tre diffrents de 0 ou 1.
Tous les arcs, dont le poids n'est pas explicitement spcifi, ont un poids de 1.
Soit un arc reliant une place Pi une transition Tj ayant un poids gal p, alors la transition Tj
ne sera valide que si la place Pi contient au moins p jetons. Lors du franchissement de cette
transition, p jetons seront retirs de la place Pi.
Le fait qu'un arc relie une transition Tj une place Pi avec un poids gal p, signifie que lors
du franchissement de cette transition, p jetons seront ajouts la place Pi.
2

Assemblage

## Rseau 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 extrmit est marque par un petit cercle. La prsence d'un arc inhibiteur entre
une place Pi et une transition Tj signifie que la transition Tj n'est valide que si la place Pi ne
contient aucun jeton. Le franchissement de la transition Tj consiste retirer un jeton dans
chaque place situe en amont de la transition l'exception de la place Pi , et ajouter un jeton
dans chaque place situe en aval de la transition.

transition
franchissable

transition
non franchissable

31

## VIII LE LANGAGE DE SIMULATION SIMAN-ARENA

SIMAN-ARENA7 - conu en 1982 par C.D. Pedgen de System Modeling Corporation - est un
langage de simulation du type interaction de processus, ARENA reprsentant la version
graphique de SIMAN. La description du modle (logiciel) du systme simul se fait
l'aide d'un assemblage constitu de mise en srie, en parallle ou en feedback de diffrents
blocs fonctionnels, issus de bibliothques (templates) dARENA. Une telle approche de
modlisation permet d'obtenir une structure du modle (logiciel) proche de celle du systme
(rel) simuler.

## VIII.1 NOTIONS DE BASE

Entit : Une entit est un objet qui volue dans les diffrents blocs fonctionnels constituant le
modle du systme. Elle correspond en gnral un objet concret, par exemple, une
personne ou une pice dans un atelier. Le dplacement des entits au sein des
diffrents blocs - par exemple le dplacement de pices dans un atelier - provoque un
changement d'tat du modle de simulation, ce qui est analogue aux dplacements
des jetons dans un modle RdP.
Attribut : Un attribut est une variable associe individuellement aux entits (la variable est
locale) pour reprsenter leurs tats ou des paramtres qui leur sont propres. Par
exemple, chaque entit, reprsentant une pice circulant dans un atelier, peut avoir
les attributs suivants :
- Type_de_piece afin de dsigner le type d'une pice (par exemple, Type_de_piece =
A ou B) ;
- Indice_de_priorite afin de dsigner l'indice de priorit d'une pice (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 modle. Par exemple, la
variable TNOW (variable prdfinie dans SIMAN) dsigne la date laquelle se trouve
la simulation, c'est le temps courant - mis jour chaque avance dans l'chancier
des vnements scoulant durant une simulation du modle.
Le principe de fonctionnement du logiciel ARENA est de suivre chacune des entits voluant
d'un bloc fonctionnel vers un autre dans le modle, de sa cration sa destruction.
Lordonnancement dans le temps des diffrents vnements rattachs l'volution des entits
dans les blocs constituant le modle se fait au travers dun chancier.
Quand une entit est introduite dans un bloc fonctionnel, elle dclenche/active le service
qui lui est associ, ce qui provoque une modification de l'tat du modle. Un service peut
agir :

Une documentation lectronique est fournie avec le logiciel SIMAN-ARENA travers diffrents fichiers
(ArenaBEUsersGuide.pdf, ArenaVariablesGuide.pdf, ArenaSEUsersGuide.pdf) accessibles dans le rpertoire
\Rockwell Software\Arena\.

32

- 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 reprsentant une pice,
prsente dans le bloc, la valeur importante ;
- sur les variables globales du modle logiciel. Par exemple, le passage dune entit dans
un bloc Delay provoque un retard pur, ce qui aura une consquence sur la variable
TNOW.
Un programme (ou modle logiciel) labor avec ARENA est sauvegard dans un fichier
ayant pour extension .doe et est constitu :
- d'une partie modle, qui reprsente l'algorithme dcrivant les caractristiques statiques et
dynamiques des diffrents blocs fonctionnels composant le modle ;
- du cadre exprimental, qui regroupe les donnes prcisant les paramtres spcifiques
une simulation donne (conditions initiales, dure de la simulation, ).
En fait, les entits traversent uniquement les blocs fonctionnels de la partie modle.
Considrons un simple tapis roulant, ayant un temps de transport de 3 units de temps,
reprsent par le modle logiciel dcrit comme suit :

Le bloc Create, issu du template Basic Process, est tel qu'une entit est cre partir de
linstant 0, ceci toute les 2 units de temps.
Le bloc Delay, issu du template Advanced Process, force une entit sjourner 3 units de
temps dans le bloc.
Le bloc Dispose, issu du template Basic Process, dtruit toute entit entrant dans le bloc.
A travers le menu Run/Setup/Replication Parameters, on peut notamment fixer :
- le nombre de rplications (champ Number of Replications),
- le temps o se termine une rplication (champ Replication Length).

33

## 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).

34

Les 2 fichiers gnrs 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 modle)

; 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 exprimental)

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 modle RdP correspondant la partie modle du modle logiciel prcdent est dcrit dans
la figure suivante :
3
2

## ARENA permet de construire un modle en proposant des primitives de reprsentation

(appeles par la suite, blocs ou modules) plus ou moins dtailles. Il permet galement de
crer des animations graphiques pour visualiser le comportement du modle durant la
simulation. Les blocs sont regroups dans diffrentes bibliothques (templates).
Afin de bnficier dune animation, nous allons utiliser les templates Basic Process et
Advanced Process. Sont dcrits en Annexe les templates Blocks et Elements lesquels
contiennent des blocs plus lmentaires ( chacun de ces blocs correspond une ligne dans les
fichiers gnrs par SIMAN-ARENA).
Des liens sont utiliss pour permettre les assemblages en srie, en parallle, en feedback, entre
les blocs, voir une illustration de tels assemblages dans le RdP qui suit.

35

## VIII.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA

CONSTRUCTION DUN MODLE
a) Create (issu du template Basic Process) : Un bloc Create permet de crer des entits. Celui
reprsent dans la figure suivante est intitul Create 1 (champ Name = Create 1). Sont
indiqus dans le cadre Time Between Arrivals :
- la priode de cration des lots dentits (par exemple : champ Type = Constant, champ
Value = 2),
- la taille des lots (champ Entities per Arrival = 1),
- le nombre total de lots crer (champ Max Arrivals = Infinite),
- la date de cration du premier lot (champ First Creation = 0).
Les valeurs considres sont telles qu'1 entit est cre toute les 2 units de temps partir de
linstant 0, ceci une infinit de fois.

## Le RdP suivant permet de dcrire le bloc Create 1.

Max
Arrivals
()

Entities per
Arrival (1)

First
Creation
(0)

P
Sortie de
lentit du
bloc Create
36

Type:Value (2)

Le nombre de jetons prsents dans la place P correspond au nombre d'entits cres par le
bloc Create 1. Notons que le bloc Create na pas dentre.
b) Dispose (issu du template Basic Process) : Un bloc Dispose permet de dtruire des entits.
Celui reprsent dans la figure suivante est intitul Dispose 1 (champ Name = Dispose 1), une
entit entrant dans ce bloc est immdiatement dtruite.

En termes de RdP, ce bloc, qui na pas de sortie, quivaut une transition puit, c'est--dire,
une transition sans place situe en aval.
c) Delay (issu du template Advanced Process) : Un bloc Delay permet de retarder le passage
d'entits. Celui reprsent 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 dure
(alatoire ou non) indique dans le champ Delay Time.

## Le RdP suivant permet de dcrire un bloc Delay.

Entre d'une entit
dans le bloc Delay
Sortie de l'entit
du bloc Delay
Delay Time

Le nombre de jetons prsents dans la place correspond au nombre d'entits prsentes dans le
bloc Delay.
d) Seize (issus du template Advanced Process) : Une entit prsente dans un bloc Seize ne
peut sortir de ce bloc que sil existe un nombre suffisant de ressources disponibles (le nombre
et le type de ressources tant spcifis dans le bloc) ; en attendant lentit est stocke

37

( patiente ) dans une file dattente 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).
Le bloc reprsent dans la figure suivante est intitul Seize 1 (champ Name = Seize 1). Pour
simplifier la comprhension, considrons que seulement un type de ressource est concern
(dans lexemple, Resource 1), alors :
- le nom de la ressource est spcifi dans le champ Resource Name, soit Resource Name =
Resource 1 (lajout dun autre type de ressource donnerait lieu une ligne supplmentaire
dans la liste Resources),
- le nombre (minimum) de ressources (de type Resource 1) disponibles est spcifi dans le
champ Quantity, par exemple Quantity = 1.
Sachant qu'une ressource peut ne pas tre disponible, les entits, en attente d'un nombre
suffisant de ressources disponibles, sont stockes dans une file d'attente, intgre (en amont)
au bloc Seize, et dont le nom est indiqu dans le champ Queue Name (soit Queue Name =
Seize 1.Queue).
reprsentation graphique de la file
dattente associe au bloc Seize 1

Le RdP suivant permet de dcrire un bloc Seize dans le cas o un seul type de ressource (dans
lexemple, Resource 1) est requis.
File dattente
(Seize 1.Queue)

## Saisie de (Quantity = 1) ressources

(Resource Name = Resource 1)

Quantity
Entre d'une entit
dans le bloc Seize

ressources
disponibles

P2

P1

Sortie de l'entit
du bloc Seize

## La transition T pour tre active doit :

38

- contenir (au moins) un jeton dans la place P1, ce qui correspond la prsence dans la file
dattente d'au moins une entit dans le bloc Seize.
- contenir (au moins) Quantity jetons dans la place P2, ce qui signifie quau 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 dter Quantity
jetons dans la place P2, ce qui reprsente la sortie dune entit du bloc Seize et la saisie de
Quantity ressources Resource Name.
Le nombre de jetons prsents dans la place P1 correspond au nombre d'entits prsentes (en
attente) dans le bloc Seize.
Une file dattente est caractrise (configure) par le bloc Queue (issu du template Basic
Process, appartenant au cadre exprimental et donc non travers par une entit), voir la
figure suivante :
- le champ Name permet de dclarer une file dattente, par exemple Seize 1.Queue,
- le champ Type permet dindiquer le mode de gestion de la file dattente. Par dfaut, le
mode de gestion est de type First In, First Out (FIFO).
Le bloc Queue permet de dfinir plusieurs files d'attente dans un mme modle.

Les types de ressource, ainsi que le nombre pour chaque type de ressources, sont indiqus
dans le bloc Resource (issu du template Basic Process, appartenant au cadre exprimental
et donc non travers par une entit), voir la figure suivante :
- le champ Name permet de dclarer une ressource, par exemple Resource 1,
- le champ Capacity permet de dfinir le nombre dunit de la ressource, par exemple 1.
Le bloc Resource permet de dfinir plusieurs types de ressources dans un mme modle.

e) Release (issu du template Advanced Process) : Un bloc Release permet de relcher des
ressources. Celui reprsent dans la figure suivante est intitul Release 1 (champ Name =
Release 1). Quand une entit entre dans ce bloc, elle libre (relche) la, ou les ressources dont
le nom est spcifi dans le champ Resource Name, par exemple Resource 1, le nombre de
ressources libres est spcifi dans le champ Quantity, par exemple 1. On peut noter que
lexcution de cette tche est instantane, autrement dit le temps de passage dune entit dans
un bloc Release est nul. Pour simplifier, seul un type de ressource est concern (dans
lexemple, Resource 1), lajout dun autre type de ressource donnerait lieu une ligne
supplmentaire dans la liste Resources.

39

Le RdP suivant permet de dcrire un bloc Release dans le cas o un seul type de ressource
(dans lexemple, Resource 1) est libr.
P1
Quantity

ressources
disponibles

## Entre 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,
ce qui reprsente la sortie dune entit du bloc Release et la mise en disponibilit (le
relchement ) de Quantity ressources Resource Name.
f) Assign (issu du template Basic Process) : Un bloc Assign permet dassigner une valeur,
notamment, un attribut, une variable (ventuellement propre SIMAN, par exemple relative
ltat dune ressource), durant lexcution dune simulation. Quand une entit entre dans un
bloc Assign, lexpression - logique ou mathmatique - spcifie dans le champ New Value est
value et assigne, selon le contenu du champ Type (Attribute, Variable, ), un attribut
(rattach lentit activant le bloc) ou une variable. Dans la figure suivante, le bloc
intitul Assign 1 (champ Name = Assign 1) permet de dclarer :
- une variable Variable 1 1 ;
- un attribut Attribute 1 TNOW ;
- une variable Variable 2 STATE(resource 1). La variable STATE(resource 1) restitue
ltat 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.

40

## Le RdP suivant permet de dcrire le bloc Assign 1.

Entre 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, appartenant au cadre exprimental et donc
non travers par une entit) permet de dclarer des variables.

g) Decide (issu du template Basic Process) : Un bloc Decide permet daiguiller un flux
dentits vers diffrents blocs de destination, il comporte une entre et plusieurs sorties.
Laiguillage est ralis, selon le contenu du champ Type, daprs un critre de type condition,

41

ou probabilit. Les conditions sont par exemple bases sur des valeurs dattributs, 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 teste de
manire squentielle (i.e., dans lordre de leurs dclarations dans le bloc). La branche
slectionne par une entit est la premire branche pour laquelle la condition de branchement
est satisfaite ; lentit est alors aiguille vers le bloc correspondant. Si aucune branche nest
satisfaite, lentit est dtruite. Un bloc Decide, intitul Decide 1 (champ Name = Decide 1),
est dcrit dans la figure suivante. Le critre daiguillage vers les 2 sorties possibles est ralis
partir de la condition If Variable 1 >= 1 (avec un rsultat True ou False).

Le critre utilis par le bloc Decide 2 est de type probabilit (2 sorties, ayant chacune une
probabilit gale 0.5, sont possibles).

42

## Entre d'une entit

dans le bloc Decide

critre
de type
condition ou
probabilit

.
.
.

Sorties du bloc
Decide

Notons que toutes les sorties dun bloc Decide doivent tre connectes un bloc
(ventuellement un bloc Dispose si la sortie nest pas utile ).

## h) Match (issu du template Advanced Process) : Un bloc Match permet de synchroniser la

progression de deux, voire de plusieurs, entits situes dans diffrentes files dattentes. Quand
toutes les files dattentes, associes au bloc Match, ont une, voire plusieurs entits, ces entits
sont libres, de faon synchrone, vers les sorties correspondantes. Dans la figure qui suit, le
bloc Match 1 (champ Name = Match 1) effectue une synchronisation entre deux entres. Une
synchronisation se produit lorsquau moins une entit est prsente dans chacune des deux files
dattente, savoir Match 1.Queue1 et Match 1.Queue2. Les entits lorigine de la
synchronisation sont ensuite diriges vers les sorties correspondantes. Le fait davoir le champ
Type = Any Entities (et non Based on Attribute) fait que la synchronisation ne seffectue pas
en fonction de la valeur dun ventuel attribut (rattach aux entits).

Match 1.Queue1
Match 1.Queue2

Match 1

Le bloc Queue (issu du template Basic Process) dcrit ci-dessous indique la dfinition des
files dattente Match 1.Queue1 et Match 1.Queue2.

43

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

synchronisation
Entres du
bloc Match

Match 1.Queue1

Sorties du
bloc Match

Match 1.Queue2

Notons que toutes les sorties dun bloc Match doivent tre connectes un bloc
(ventuellement un bloc Dispose si la sortie nest pas utile ).

i) Batch (issu du template Basic Process) : Un bloc Batch permet de regrouper des entits
entre-elles. Les entits une fois regroupes gnrent la sortie dune entit (notons que cette
entit peut avoir un nouveau Type dentit, ce qui peut tre indiqu dans le champ
Representative Entity Type). Le groupement peut tre rversible (ou non) selon que le champ
Type = Temporary (ou Permanent) : un regroupement rversible (Temporary) permet en
utilisant un bloc Separate - de dgrouper par la suite les entits. Le nombre ncessaire
dentits pour former un groupe est indiqu dans le champ Batch Size. Une entit arrivant
dans un bloc Batch est place dans la file dattente associe au bloc, ceci tant que le nombre
dentits accumules dans la file dattente nest pas suffisant pour effectuer un regroupement.
Le champ Rule assign la valeur By Attribute permet deffectuer le regroupement dentits
en fonction dun attribut, dans le cas contraire (cas par dfaut) le champ Rule est assign la
valeur Any Entity.
Un exemple est dcrit dans la figure suivante :

44

## Le RdP suivant dcrit le comportement du bloc Batch 1.

Entre du
bloc Batch

Sortie du
bloc Batch
Batch Size
(2)

j) Separate (issu du template Basic Process) : Un bloc Separate permet de dupliquer des
entits lorsque le champ Type = Duplicate Original. Le nombre de duplication cre est
spcifi dans le champ # of Duplicates. Lorsquune entit entre dans ce bloc et comporte des
attributs, les attributs de toutes les entits dupliques sont identiques aux valeurs courantes
des attributs de lentit dupliquer. L'entit originale sort par la sortie Original, les # of
Duplicates entits (celles dupliques) sortent par la sortie Duplicate. Un bloc Separate,
intitul Separate 1 (champ Name = Separate 1), est dcrit dans la figure suivante. Un
exemple est donn dans \Exemples\Separate\Separate.doe.

45

Entre
de
l'entit

## Original (sortie de l'entit originale)

Separate
Duplicate (sortie de (# of
Duplicates) entits dupliques
Entre de
lentit
# of
Duplicates

Sortie de lentit
originale
Sortie de
(# of Duplicates)
entits dupliques

## k) Process (issu du template Basic Process) : Un bloc Process permet de simuler le

comportement dune machine, sachant que diffrents modes de fonctionnement sont autoriss
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 dcrit dans la figure
suivante.

## Lorsque le champ Action contient la valeur :

i) Delay, la machine se ramne 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
quil ny a pas de contrainte vis--vis de la ressource de la machine.
2i) Seize Delay, la machine ncessite une, voire plusieurs ressources (voir le cadre
Resources pour assigner le type, ainsi que le nombre, de ressources concernes) durant un

46

temps (relatif au temps de traitement) minimum indiqu dans le cadre Delay (le
relchement de la ressource est suppos ralis en aval).
3i) Seize Delay Release, idem. au cas 2i) avec une gestion au niveau du relchement de la
ressource saisie .
4i) Delay Release, idem. au cas 3i) sans la gestion de lallocation de la, voire des
ressources ncessaires au traitement dune pice (cette gestion est suppose ralise en
amont du bloc).
Le RdP correspondant au cas i) est dcrit au VIII.2.c. Les RdP correspondant au cas 2i, 3i, 4i
sont issus de concatnation des RdP dcrits au VIII.2.c,d,e.

## VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LANALYSE

DUN MODLE
Les blocs dcrits au VIII.2 permettent de modliser un systme physique, sans pour autant
fournir dinformations (exceptes celles donnes par dfaut dans le rapport final). La collecte
dinformations spcifiques se fait en utilisant des blocs supplmentaires. Quelques-uns de ces
blocs sont dcrits 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'entits traversant le bloc (Type = Count) (voir 1.a)) ;
- recueillir les temps de passage successif de 2 entits (Type = Time Between) (voir 1.b)) ;
- recueillir les temps mis par les entits traversant une partie (ou l'ensemble) d'un modle
(Type = Time Interval) (voir 1.c)).
1.a) Lorsque le champ Type = Count, le bloc Record permet de compter le nombre d'entits
qui transitent par ce bloc. Le compteur s'incrmente d'une valeur (Value, par dfaut gale 1)
chaque passage d'une entit. Le nom du compteur est spcifi dans le champ Counter Name.
Voir le bloc Statistic (voir 2.b) pour effectuer un enregistrement des donnes.

transition

compteur = + 1

47

1.b) Lorsque le champ Type = Time Between, le bloc Record permet de recueillir les temps de
passage entre 2 entits successives. Le nom du tally8 est spcifi dans le champ Tally Name.
Voir le bloc Statistic (voir 2.b) pour effectuer un enregistrement des donnes.

transition
X

X(k + 1) - X(k)
X(k) : tps de
franchissement
de lentit n k

1.c) Lorsque le champ Type = Time Interval, le bloc Record permet de recueillir les temps
mis par les entits traversant une partie (ou l'ensemble) d'un modle. Le nom du tally est
spcifi dans le champ Tally Name.
Par exemple, on souhaite pour chaque entit recueillir la diffrence entre le temps de sortie du
bloc M et le temps de sortie du bloc N. Soient t N (i), t M (i) les temps de sortie de l'entit n i des
blocs N et M respectivement (cf. schma suivant).
Bloc N

Bloc M
tN (i)

tM (i)

## Pour raliser cela, on dispose :

- Un bloc Assign (cf. VIII.2.f) plac juste aprs 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 associe individuellement aux entits).
- Un bloc Record 1 (avec Type = Time Interval) plac juste aprs 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 schma suivant pour avoir une vue schmatique des blocs N, Assign, M, Record et la
figure suivante o est dcrit un bloc Record de Type Time Interval.

48

Bloc N

Assign
(Attribute 1
= TNOW)

tN (1),
tN (2),
.
.

Bloc M

tM (1) - tN (1),
tM (2) - tN (2),
.
.

Record 1
(Attribute
Name =
Attribute 1)

tM (1),
tM (2),
.
.

## 2) Le bloc Statistic (issu du template Advanced Process, appartenant au cadre exprimental et

donc non travers par une entit) permet de collecter des statistiques issues dun bloc Record
ou de variables SIMAN (mise jour automatiquement par SIMAN), telles que le nombre
dentits contenues dans une file d'attente ou le taux doccupation dune ressource.
La variable NQ (abrviation de Number in Queue), permet de disposer du nombre dentits
contenues dans une file d'attente. Par exemple, la variable NQ(Process 1.Queue) permet de
connatre le nombre dentits prsentes dans la file dattente Process 1.Queue.
La variable NR (abrviation de Number of busy Resource units), permet de disposer du taux
doccupation dune ressource. Soit une machine constitue de n ressources, ce qui permet le
traitement en parallle de n pices, une ressource peut tre occupe (busy) ou disponible
(idle). Par exemple, considrons une machine, reprsente par un bloc Process 1, utilisant une
ressource Resource 1 de capacit gale 3 (donne dclare dans un bloc Resource), alors la
variable NR(Resource 1) permet de connatre le nombre de ressources Resource 1 occupes
(ce nombre pouvant tre gal 0, 1, 2 ou 3).
a) On accde diffrents types de donnes statistiques selon la configuration du bloc
Statistic :
i) A travers une statistique, note Statistic 1, on peut disposer de la moyenne, du minimum, du
maximum du nombre dentits prsentes dans la file dattente, par exemple,
Process 1.Queue. Pour cela, prendre la configuration suivante :
champ Name = Statistic 1, champ Type = Time-Persistent, champ Expression =
NQ(Process 1.Queue) (voir figure ci-dessous).

49

2i) A travers une statistique, note Statistic 2, on peut disposer de la moyenne, du minimum,
du maximum du nombre de ressources, par exemple, Resource 1, occupes. Pour cela,
prendre la configuration suivante :
champ Name = Statistic 2, champ Type = Time-Persistent, champ Expression =
NR(Resource 1) (voir figure ci-dessous).
3i) A travers une statistique, note Statistic 3, on peut disposer de donnes statistiques de la
file d'attente, par exemple, Process 1.Queue, classes par catgorie, avec pour chacune des
catgories, son nombre d'occurrences, le temps moyen de chaque occurrence et le pourcentage
des temps d'occurrences par catgorie. Considrons, par exemple, les 3 catgories suivantes :
- Vide lorsque la file d'attente ne contient pas d'entit ;
- Moitie chargee lorsque la file d'attente contient entre 1 et 10 entits ;
- Chargee au-del de 10 entits.
Pour cela, prendre la configuration suivante :
champ Name = Statistic 3, champ Type = Frequency, champ Frequency Type =
Value, champ Expression = NQ(Process 1.Queue), 3 lignes dfinir dans le
champ Categories, savoir :
Constant or Range

Value

Constant

Range

Range

10

High
Value

Category Name

Category Option

Vide

Include

10

Moitie chargee

Include

1000

Chargee

Include

## voir figure ci-dessous.

Remarque : La valeur 1000, contenue dans le tableau, correspond une borne suprieure du
nombre d'entits dans la file d'attente.
4i) A travers une statistique, note Statistic 4, on peut disposer de donnes statistiques de la
ressource, par exemple Resource 1, classes par catgorie, avec pour chacune des catgories,
son nombre d'occurrences, le temps moyen de chaque occurrence, et le pourcentage des temps
d'occurrences par catgorie. Considrons, par exemple, les 4 catgories suivantes :
- Zero lorsque la ressource est libre ;
- Une lorsqu'une (seule) ressource est occupe ;
- Deux lorsque 2 ressources sont occupes ;
- Trois lorsque toutes les ressources (c'est--dire, 3) sont occupes.
Pour cela, prendre la configuration suivante :
champ Name = Statistic 4, champ Type = Frequency, champ Frequency Type =
Value, champ Expression = NR(Resource 1), 4 lignes definer dans le champ
Categories, savoir :

Constant or Range

Value

Category Name

Category Option

Constant

Zero

Include

50

Constant

Une

Include

Constant

Deux

Include

Constant

Trois

Include

## voir figure ci-dessous.

b) Le bloc Statistic permet galement de sauvegarder les donnes dobservations
individuelles, acquises tout au long de la simulation, par exemple, issues dun bloc Record
(relatif un compteur ou un tally), ou dune variable SIMAN (le nombre dentits contenues
chaque instant dans une file d'attente, le taux doccupation chaque instant dune ressource).
Pour cela, il suffit de complter le bloc Statistic en indiquant 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), le nom du fichier - ainsi que son rpertoire si celui-ci
est diffrent du rpertoire contenant lapplication.
Afin de disposer des donnes au format csv (abrviation de comma-separated-value,
comma signifiant virgule), reconnu notamment par MatLab (via la commande CSVREAD)
et Excel, il suffit de mettre lextension .csv au fichier de sauvegarde et dindiquer que le
fichier de sauvegarde est au format texte en cochant la case Write Statistics Output Files as
Par exemple, la statistique, note Statistic 5, permet via le compteur Record 1 dfini dans le
bloc Record 1 de disposer dans le fichier Compteur.csv du nombre dentits qui ont transit
tout instant dans ce bloc.

## VIII.4 ANIMATION GRAPHIQUE

L'animation permet de dcrire graphiquement l'volution dynamique de l'tat du systme
simul, notamment travers une visualisation :
du flux des entits (par exemple, des pices circulant le long d'une ligne de
production),
de l'tat des ressources (par exemple, l'tat libre (idle), occupe (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 trs efficace de communication. D'un abord facile, notamment pour
les dcideurs non ncessairement initis aux aspects techniques, elle permet - sous rserve
bien sr que les conditions de simulation soient crdibles - de mettre en avant les phnomnes
tudis. Elle permet galement lors de la conception du modle de simulation de vrifier son

51

bon fonctionnement travers une visualisation tape par tape (voir commande Step | ) du
cheminement des entits dans le modle de simulation.
Un exemple est donn dans le fichier \Exemples\Animation_Un_exemple\Animation.Doe.
Animation des entits
Une animation, rattache aux connecteurs, est propose par dfaut (voir option Animate
Connectors dans le menu Object). Elle permet de visualiser le flux des entits le long des
connecteurs, i.e., les liens reliant les modules entre eux :
connecteur
Create
0

Process
0

Notons que le mouvement des entits le long des connecteurs n'a pas d'impact sur le temps de
simulation (TNOW).
La simulation de temps de transport ncessite l'utilisation du bloc STATION du template
L'image initiale utilise pour reprsenter un type d'entit donn est dfinie dans le bloc Entity
(issu du template Basic Process, appartenant au cadre exprimental et donc non travers par
une entit). L'image est par dfaut celle note Picture.Report et est indique dans le champ
Initial Picture du module Entity. Le changement de l'image associe 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'accder d'autres images (contenues dans des fichiers
.plb). Le bouton Open permet douvrir 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 crer ses propres images, lesquelles seront sauvegardes dans un
fichier .plb. Pour crer une image, cliquez sur le bouton Add de droite, ce qui fait apparatre
une case grise. Le fait de double cliquer dans cette case permet douvrir une fentre (Picture
Editor) o il est possible de concevoir une image. Fermer la fentre une fois limage conue ;
elle apparatra alors la place de la case grise. Le bouton Save permet de sauvegarder dans un
fichier .plb de votre choix la, voire les images cres.
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 fentre issue du menu View/Toolbars pour faire apparatre si ncessaire
cette barre d'outils).
Affichage d'tat : Clock Date Variable Level Histogram Plot

52

## Ces objets sont dcrits 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 annes,
- Variable permet d'afficher la valeur numrique d'une expression mathmatique ou
logique,
- Level affiche la valeur d'une expression relative des valeurs minimum et maximum
spcifies,
- Histogram permet d'afficher la distribution de la valeur d'une expression dans une
plage spcifie,
- Plot permet d'afficher les valeurs passes d'une expression sur une plage de temps
spcifie.
- Zone d'attente :
- Queue permet d'afficher les entits en attente d'un vnement spcifi (par exemple, la
disponibilit d'une ressource).
- Image :
- Resource permet de disposer d'un objet (par exemple, une machine) capacit limite
pouvant tre allou des entits. 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 spcifie.
La barre d'outils Dessin (Drawing)
Les objets de cette barre d'outils permettent l'ajout de dessins statiques, ou de texte :
Line Polyline Arc Bezier curve Box Polygon Ellipse Text

Couleur

53

## VIII.5 DONNES D'ENTRES

Le module Input Analyser d'ARENA permet l'exploitation de donnes d'entres en
dterminant automatiquement la loi de probabilit la plus adapte de la distribution empirique
obtenue partir des donnes d'entre (regroupes dans un fichier).
Les donnes dentres sont contenues dans un fichier au format .dst o une ligne contient un
nombre (rel). En fait, ce fichier est de type texte et donc lisible, par exemple, via le
WordPad. Voir, titre dexemple, le fichier test1.dst, ou test2.dst, dans le rpertoire
\Exemples\Distribution. Pour analyser un fichier de donnes (.dst), faire : Rockwell
Software/Arena/Input Analyzer afin douvrir lapplication Input Analyzer. Une fois dans cette
application, faire : File/New afin douvrir une fentre Input1. Aprs avoir cliqu dans la
fentre grise, faire File/Data File/Use Existing9, ce qui permet de rcuprer le fichier (.dst)
contenant les donnes convertir en une loi de distribution : il en rsulte laffichage dun
histogramme des donnes.

Dans la fentre grise, sont dcrites des informations relatives aux donnes (le nombre de
donnes, les valeurs minimale et maximale, la moyenne, lcart type) et lhistogramme (la
porte (la plus petite valeur et la plus grande valeur considres dans lhistogramme), le
nombre dintervalles (en O( nbre de pts ) et compris entre 5 et 40)).
9

A ce niveau, vous pourriez crer un fichier de donnes (.dst) correspondant une certaine
distribution en slectionnant Generate New.
54

Pour modifier les paramtres de lhistogramme des donnes, savoir le nombre dintervalles,
la borne infrieure (les donnes ayant des valeurs infrieures tant ignores) et la borne
suprieure (les donnes ayant des valeurs suprieures tant ignores), faire :
Options/Parameters/Histogram.
Pour trouver la meilleure distribution correspondant cet histogramme, faire : Fit/Fit All10.

## VIII.6 ANALYSE DES RSULTATS

Le module Output Analyser d'ARENA permet, l'issue d'une simulation, le calcul de rsultats
statistiques tels que la moyenne, l'cart type, la valeur minimum, la valeur maximum. Il est
galement possible de rcuprer l'historique complet des valeurs rcoltes au cours de la
simulation dans des fichiers (exploitables par exemple via le logiciel Excel).
Outre les tracs de courbes et d'histogrammes, ce module intgre diffrentes fonctions
statistiques, telles que le calcul d'intervalles de confiance, la construction de corrlogrammes,
la comparaison et l'analyse de moyennes, l'analyse de variances, le test d'hypothses,

10

55