Cours de Simulation et Prototypage
Cours de Simulation et Prototypage
2016
Simulation & Prototypage
Support de Cours
Spécialités
Auteur
91
Support de Cours
Simulation & Prototypage
Spécialité
Système d’Information & Aide à la Prise de Décision (SIAD)
Présenté par
Dr. KERKOUCHE El-Hillali
Le cours de Simulation & Prototypage est préparé pour servir comme support
pédagogique d’étudiants inscrits en première année Master de spécialités système
d’information et aide à la prise de décision (SIAD) filière informatique.
Table des Matières
i
Table des Matières
Chapitre 03 : StateCharts
3.1 Introduction –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 24
ii
Table des Matières
Bibliographie 64
iii
Chapitre 01 :
Chapitre 01 Modélisation & Simulation : une Introduction
1.1 Introduction
Durant la dernière décennie, les systèmes ont connu un développement sans précédent qui s’est
accompagné d’un accroissement important de leur complexité. Pour maîtriser la complexité de tels
systèmes, il est nécessaire de disposer d’outils performants permettant de comprendre leurs
comportements dynamiques, prédire leurs performances, d’évaluer et de comparer les différentes
configurations ou stratégies opératoires et de les optimiser.
Etudier un système consiste, dans la plupart des cas, à faire un ensemble de suppositions sur son
fonctionnement. Ces suppositions, prennent généralement la forme de relations mathématiques ou
logiques, constituent ainsi un modèle qui est utilisé comme support pour conduire des expériences afin
d’évaluer et de déduire les performances du système qu’il le représente. Si les relations qui composent le
modèle sont assez simples il peut être possible d'utiliser des méthodes mathématiques (telle que l'algèbre,
la théorie des probabilités) pour obtenir des réponses exactes aux questions qui nous intéressent. Une telle
solution s'appelle une solution analytique. Cependant, les systèmes qu'on trouve dans la réalité sont le
plus souvent trop complexes pour pourvoir se prêter a une évaluation analytique, et leurs modèles doivent
être étudiés au moyen de la simulation.
La simulation est reconnue comme une technique puissante pour la conception et l’analyse des
systèmes. En générale, elle est perçue comme un outil d’aide à la décision dont le but principal est
d’étudier les performances d’un système complexe avant sa construction, ou d’évaluer les performances
d’un système existant pour l’améliorer s’il y a une grand différence au niveau de performances. Dans une
simulation, on utilise l'ordinateur pour évaluer numériquement un modèle dans le but d'estimer les
caractéristiques souhaitées du modèle.
La simulation peut être utilisée dans plusieurs domaines d'application, tels que :
1
Chapitre 01 Modélisation & Simulation : une Introduction
Le plus important ce n’est pas d’énoncer une définition précise du terme mais d’essayer de faire
ressortir les mots clés qui semblent bien caractériser la notion de système. De là, on peut dire qu’un
système est caractérisé par :
¾ Les parties ont des liens ou relations entre elles pour atteindre un but.
¾ Il est influencé par le milieu dans lequel il existe et qui réagit sur lui.
2
Chapitre 01 Modélisation & Simulation : une Introduction
Donc, décrire un système consiste à déterminer ses éléments, ses relations, leurs propriétés et les
valeurs que peuvent prendre ainsi que son activité et l’organisation qui en découle.
"Un système est une entité complexe traitée (en égard à certaines finalités) comme une totalité
organisée, formée d'éléments et de relations entre ceux-ci, les uns et les autres étant définis en
fonction de la place qu'ils occupent dans cette totalité et cela de telle sorte que son identité soit
maintenue face à certaines évolutions." [AFCET 77].
La complexité d’un système provient de la multiplicité des éléments qui le composent, de leurs
objectifs qui peuvent être en conflit, de la diversité de leurs relations (ou interactions), et de l’incertitude
concernant l’évolution globale du système. L’analyse du système doit disposer de méthodes et d'outils
capables de représenter ces systèmes. Ces représentations ne doivent pas être trop simples afin de ne pas
perdre de l'information sur le fonctionnement dynamique, et ne doivent pas être trop complexes et
inexplicables pour simplifier l'analyse.
3
Chapitre 01 Modélisation & Simulation : une Introduction
Exemple
Une usine de production représente un bon exemple de système. Les parties de ce système pourraient
être (voir la Figure 1.1) :
) Administration
) Employés
) Service Production (Ateliers, Machines, …).
) Service approvisionnement.
) Service ventes.
) Service de gestion de stocks.
) …
Employés Maintenance
Stocks Ateliers
Administration Machines
Vente Approvisionnement
Prix
Fournisseurs
4
Chapitre 01 Modélisation & Simulation : une Introduction
"Un modèle est un schéma qui, pour un champ de questions, est pris comme représentation
abstraite d'une classe de phénomènes dégagés de leur contexte par un observateur pour servir de
support à l'investigation, et/ou à la communication." [AFCET 77] .
Un modèle est donc une représentation d’un système (réel ou imaginaire, existant ou en cours de
conception) dont le but est d’expliquer et de prédire certains aspects du comportement de ce système.
Cette représentation est plus ou moins fidèle pour répondre au compromis entre adéquation modèle-
système et facilité d’analyse du modèle:
* le modèle devra être assez complet afin de pouvoir répondre aux diverses questions qu’on
peut se poser sur le système qu’il représente.
* le modèle ne doit pas être trop complexe pour pouvoir être facilement manipulé.
Il est clair que lorsque le modèle est détaillé, les résultats seront précis mais il y aura quand même
une difficulté à l’analysé. En revanche, si le modèle est moins détaillé, les résultats ne seront pas très
exacts alors que l’analyse sera plus facile.
Le modèle ne tient compte que des aspects essentiels du fonctionnement du système, et négligeant
les facteurs les moins influents. Par conséquent, on peut représenter un système par plusieurs modèles
différents qui ne sont pas forcément comparables.
Les principaux avantages de manipuler un modèle plutôt que le système qu’il modélise sont:
Le processus de construction d’un modèle peut être schématisé par la Figure 1.2 .
Le modèle conceptuel est une approximation mathématique ou logique du système réel conditionné
pour une étude particulière. Il est obtenu dans la phase d'analyse et de modélisation. Le modèle
programmé ou de simulation est la mise en œuvre du modèle conceptuel sur un calculateur. Il est obtenu
dans la phase de programmation et de mise en œuvre. Les renseignements sur le système réel sont
obtenus à la suite d'expérimentations sur le modèle programmé ou de simulation dans la phase
d'expérimentation. L’expérimentation consiste à construire des théories, ou hypothèses, qui prennent
en compte le comportement observé.
5
Chapitre 01 Modélisation & Simulation : une Introduction
Système Réel
Modélisation
Interprétation
Performance
Expérimentation Programmation
Implémentation
& Vérification
Mise en œuvre
Modèle Programmé
Evaluation
Résultats Action
En simulation, il existe deux grandes classes de modèles qui distinguent les modèles Physiques des
modèles symboliques [Law 91].
6
Chapitre 01 Modélisation & Simulation : une Introduction
d'entraînement : simulateurs de vol, de conduite, maquettes de véhicules pour des essais aérodynamiques
en soufflerie, ...
Modèles Statiques
Les modèles statiques représentent les systèmes qui ne changent pas avec le temps, c'est-à-dire les
variables d’état ne sont pas définies en fonction du temps. Par exemple : modèle comptable
permettant de calculer un profit en fin d’exercice à l’aide d’un tableur, les systèmes décrits par la
programmation linéaire (affectation, plus court chemin,…).
Modèles Dynamiques
Dans lesquels le temps est un facteur essentiel de l’évolution de l’état d’un système, c'est-à-dire ses
variables d’état changent avec le temps. Par exemple : réacteur chimique qui régi par des équations
différentielles, système de manutention dans une usine, les mouvements des planètes du système
solaire, etc. L’évolution de l’état d’un système a toujours un caractère continu, mais selon l’objectif
de la modélisation et la logique de changement d’état, le modèle développé est de nature différente :
• Modèle Continu
Lorsque le changement d’état du système est caractérisé par des paramètres dont la valeur
évolue de façon continue dans le temps (voir la Figure 1.3). L’évolution de ces variables
peut être décrite par un système d’équations algébriques ou différentielles. Par exemple,
la pression atmosphérique, la position d’une planète dans son orbite, etc.
Etat du système
Temps
7
Chapitre 01 Modélisation & Simulation : une Introduction
• Modèle Discret
Dans lequel l’état ne change qu’à certaines dates. Autrement dit, les variables d’état sont
discrètes (discontinues). Dans ce type de modèles, les systèmes évoluent de manière
discrète dans le temps, c’est-à-dire qu’il existe une suite strictement croissante de
nombres réels positifs représentant les instants : t(i), i=0,1,2,..., telle que entre l’instant
t(i) et l’instant t(i+1) l’état d’un tel système n’évolue pas. Par exemple, la suite croissante
des dates de début et de fin d’un ensemble d’opérations réalisées pour usiner une pièce
dans un système de production, une file d’attente devant un guichet, les variables d’états
comme la longueur de cette file d’attente changent de façon discrète, etc. A l’intérieur des
modèles Discret, on trouve :
Etat du système
En
E2
E1
Temps
Une autre distinction concerne la prise en compte de variations aléatoires dans les modèles
dynamiques. En réalité, tous les systèmes dynamiques sont déterministes. C'est-à-dire, on peut prévoir
leur évolution avec certitude. Cependant dans la pratique, on ne dispose pas de toutes les informations
nécessaires ou ils sont trop complexes. On fait appelle alors à la notion d’aléatoire. Il s’agit de remplacer
les informations manquantes ou trop complexes à exploiter par une caractérisation probabiliste dans leurs
modèles.
Les modèles dynamiques peuvent être soit déterministes ou bien stochastiques (non déterministes,
aléatoire ou probabilistes) :
8
Chapitre 01 Modélisation & Simulation : une Introduction
Modèles Déterministes
Sont des modèles où l’état futur est connu à l’avance ou prévisible, c'est-à-dire qu’il est facile de
déterminer avec certitude l’état prochain à partir de l’état actuel (un seul état futur correspondant).
Autrement dit, aucune variable de ce modèle n’est aléatoire.
Modèles Stochastique
Dans ces modèles, l’état prochain n’est pas connu avec certitude, il est donc imprévisible. Le
mécanisme de changement d’état est régi par les lois de probabilité. Par conséquent, plusieurs états
futurs sont candidats.
Modèle du système
Déterministe
Modèle
Modèle
Modèle
Discret
Stochastique
Pour décrire un système d’une manière compréhensible, il est nécessaire d’utiliser un langage de
modélisation. Ces langages sont basés sur des formalismes permettant d’utiliser des règles et des
contraintes facilitant le passage du système réel au modèle. Il faut note que certains outils de modélisation
ne se basent pas sur des formalismes pour l’écriture des modèles, mais autorise une représentation
algorithmique du comportement des systèmes avec le degré de finesse souhaité. L’absence de formalisme
rend la tâche de modélisation difficile et complexe.
9
Chapitre 01 Modélisation & Simulation : une Introduction
Comme indiqué précédemment, la modélisation vise, entre autres, à représenter afin d’analyser et
d’évaluer les performances des systèmes. L’évaluation de modèles est l’étude des propriétés du modèle
pour en déduire des propriétés associées au système qu’il le représente. Il existe deux types d'évaluation
pour un système, l'évaluation Qualitative et l'évaluation Quantitative [Aissani 07].
10
Chapitre 01 Modélisation & Simulation : une Introduction
Æ Le taux d’occupation, … .
Æ Temps de séjour d’un client dans le système.
Æ Nombre moyen de clients dans le système.
Æ Le temps moyen d’attente.
Æ Temps de réponse.
Pour calculer ces indices, on distingue deux grandes familles de méthodes d’analyse quantitative:
L'analyse qualitative utilise les langages formels tels que les Machines d’états finis, les Statecharts
et les Réseaux de Petri. L'analyse quantitative fait appel aux chaines de Markov, aux Réseaux de files
d’attente et aux Réseaux de Petri stochastique.
11
Chapitre 01 Modélisation & Simulation : une Introduction
1.4 Simulation
La simulation est une méthode qui consiste à étudier le fonctionnement d’un système en imitant
son fonctionnement au cours du temps en manipulant un modèle. Cette méthode est basée sur la
génération d’un historique artificiel des changements d’état du système (une trajectoire d’état) et
l’observation et l’analyse de cet historique pour faire des déductions sur ses caractéristiques de
fonctionnement. La simulation est devenue incontournable et pratique permettant de modéliser aussi bien
des systèmes à concevoir que des systèmes existants déjà pour analyser et valider des choix des
solutions. Elle peut être utilisée pour:
" La simulation est l'étude du comportement dynamique d'un système, grâce à un modèle que l'on
fait évoluer dans le temps en fonction de règles bien définies, à des fins de prédiction." [Pritsker 87].
À partir de cette définition, on peut dire que le terme de simulation pourrait être caractérisé par les
mots clés suivants :
Í Le modèle est manipulé sur ordinateur, cette manipulation fournissant des solutions.
Í Son but est de choisir parmi les solutions celle qui semble être la meilleure.
La simulation est une expérimentation indirecte (voir la Figue 1.7) car elle est portée sur le modèle
et non pas sur le système. Elle ne résout pas le problème posé en trouvant la bonne solution, mais elle
aide seulement à prendre parmi plusieurs solutions la meilleure possible.
12
Chapitre 01 Modélisation & Simulation : une Introduction
Objectifs
Système Modélisation Modèle du Système
Résultats du Résultats du
Système Modèle
La programmation d'un modèle pour la simulation peut se faire dans un langage quelconque, on
distingue :
ª les langages universels impératifs (ou procéduraux) ayant un fort pouvoir d'expression. On
trouve des modèles écrits en C, en lisp, en shell ou en PERL. La mise en œuvre peut être longue,
par contre on dispose d’une grande flexibilité.
ª les langages déclaratifs ou non procéduraux, on utilise alors un langage du même type pour
décrire l'application. Le plus connu de ces langages est PROLOG. On ne décrit pas les
algorithmes à exécuter pour produire les résultats mais les objets et les relations entre eux.
ª Utilisation des Simulateurs dédiés à un type de systèmes et un type de problème. il suffit de
paramétrer le modèle pour l'adapter au cas étudié. Cette alternative présente l’avantage de ne pas
programmer (seules des données sont à entrer), par contre il n’est pas toujours simple de trouver
le simulateur dédié adapté au système et au problème concernés.
ª les langages spécifiques (les langages de simulation) qui proposent des primitives de
modélisation particulièrement adaptées à un type de domaine. Ces primitives permettent à
l'utilisateur de développer d'un modèle de simulation réalisé au travers d'un programme. Ce type
de logiciel offre une grande flexibilité mais avec des coûts de développement parfois importants.
par exemple, dans le domaine du temps réel on peut citer les langages LUSTRE, SIGNAL ou
ESTEREL qui sont à la fois langages de spécification, prototypage et réalisation. Dans le
domaine de modélisation des ressources et fonction de transport, SIMAN est un des principaux
logiciels standards.
13
Chapitre 01 Modélisation & Simulation : une Introduction
La simulation est souvent caractérisée dans la littérature comme la méthode de dernier ressort. Ceci
veut dire que si on a la possibilité de résoudre le problème posé avec des méthodes analytiques, il serait
préférable de les utiliser car elles conduisent à des solutions optimales. En effet, pour un problème donné
et des objectifs fixés, on peut avoir le choix entre différentes approches pour le résoudre parmi lesquelles
il y a la simulation comme le montre la Figure 1.8.
Expérimentation avec
le système
Système
Modèle Physique
Expérimentation avec
un modèle du système
Modèle symbolique
Les résultats avec les formules analytiques ne sont pas toujours existants, mais s’ils existent ça sera
exact, contrairement à la simulation qui donne des résultats approximative.
U Coûteuse en termes de temps : elle nécessite beaucoup de dépenses en temps pour la conception du
modèles de simulation, la programmation, l’expérimentation et la validation. En outre, elle
demande un certain niveau d'expertise; la qualité des résultats est liée à la qualité de la
modélisation et de la programmation.
14
Chapitre 01 Modélisation & Simulation : une Introduction
U Les résultats de simulation sont souvent complexes à interpréter : les modèles utilisés pour
étudier les systèmes à grande échelle ont tendance à être très compliqués, et l'analyse des résultats
fournis par la simulation des ces modèles peut être une tâche difficile.
U Non exhaustive : en effet, la simulation n'est pas une technique d'optimisation de performance d'un
système au sens propre. Elle peut seulement évaluer les performances d'une solution conçue et
imaginée par l'utilisateur. Cette technique est entièrement itérative qui ne propose pas de solution
finale optimale, mais qui permet seulement à l'utilisateur d'envisager des choix possibles. En tout
état de cause, c'est l'utilisateur qui devra décider de ce qui répond le mieux aux problèmes posés. la
simulation ne peut résoudre des problèmes mais seulement fournir des indications à partir
desquelles des solutions approximatives peuvent être déduites.
1.5 Résumé
Dans ce chapitre, nous avons introduit la terminologie de base que nous allons utiliser tout le long
de ce cours. Nous avons montré que la simulation est un outil de résolution de problèmes, mais elle peut
être inutile si elle n’est pas utilisée intelligemment. En effet, parce que la simulation parait facile à
utiliser, l’utilisateur est tenté de ne pas consentir l’effort de comprendre ce qu’il fait et en conséquence
elle résulte en des coûts très lourds.
15
Chapitre 02 :
Chapitre 02 Machines d’Etats Finis
2.1 Introduction
Les Machines d’états finis sont un outil de modélisation formelle basé sur la théorie des automates
[ Alur 94]. Le terme Machines d’états finis est surtout utilisé par ceux qui s’intéressent à la modélisation
de systèmes. Le terme automate est plus général. Les automates constituent des techniques de base que
l’informaticien se doit de connaître. Ils sont utilisés essentiellement dans la théorie des langages et dans la
modélisation et vérification de systèmes complexes où il existe un nombre fini de possibilités (c'est-à-dire
un nombre fini d’états).
La notion d’automates est utilisée dans différentes méthodes de conception (les diagrammes
dynamiques d’UML "Unified Modeling Language", SDL "Specification and Description Language" et
autres), avec des notations graphiques souvent différentes d’une méthode à l’autre.
La machine d’états finis est une machine séquentielle algorithmique ayant un état courant (elle est
supposée se trouver dans un état précis à un moment précis) et d’autres états par lesquels elle est déjà
passée ou par lesquels elle passera (éventuellement) dans le futur. Un état dans la machine est caractérisé
par la ou les valeurs d’une ou plusieurs variables d'état qui correspond à une situation particulière du
système. L'apparition d'un évènement (stimuli, sollicitation, …) est susceptible de faire passer la machine
d’un état à un autre. Le changement d’état s’appelle transition. De manière simplifiée, un système se
trouve dans un état initial et change d’état en fonction de l’arrivée des événements qui lui parviennent de
son environnement.
2.2 Définition
Une Machine d’états finis ou Un automate est un quadruplet , , , , ,
= ensemble d’états.
|
| = l’état initial de l’automate ( ∈ ).
| = ensemble des états finaux de l’automate ( ⊆ ).
Où :
| = ensemble fini des étiquettes des transitions.
|
= ensemble des transitions ( ⊆ ).
2.3 Représentation
Les machines d’états finis sont généralement représentées de manière graphique (c’est d’ailleurs
l’un des atouts des automates). Cette représentation, comme illustre la Figure 2.1, permet de visualiser
les transitions entre les états selon l’événement de simulation reçu par l’environnement :
Æ Les états sont représentés par des cercles. Le nom rattaché à chaque état est à l’intérieur du
cercle qui le représente.
16
Chapitre 02 Machines d’Etats Finis
Æ Les transitions entre les états sont représentées par des arcs dirigés reliant les cercles.
Æ Les étiquettes associées aux transitions peuvent être composées de trois types d’éléments
selon la syntaxe suivante (ces éléments ne sont ni nécessaires ni exclusifs) :
2. Une condition de Garde, une expression booléenne (exprimée généralement sur les
variables de l’automate) qui doit être vraie lorsque l’évènement arrive pour que la
transition soit déclenchée. C’est une condition nécessaire, mais pas suffisante.
3. Des actions effectuées par l’automate avant de changer d’état. Par exemple :
affectations de variables, envois d’événements, ... .
Remarques :
− Si l’étiquette associée à une transition est vide, cela signifie que la transition se fait de manière
aléatoire ou de manière implicite connue par celui qui a fait la modélisation.
− Si l’étiquette ne contient pas d’événement, cela signifie que le franchissement est aléatoire et
est lié uniquement à la garde si elle existe. Pour des raisons de déterminisme, il faut éviter
d’utiliser des transitions sans événements.
Etiquette
Etat
17
Chapitre 02 Machines d’Etats Finis
Un automate d’états finis peut aussi être représenté sous forme d’une table de transition, qui
indique pour chaque état l’état à atteindre pour chaque nouvel évènement (voir la Figure 2.2) :
Í Chaque ligne correspond à un état de l’automate (l’état initial est précédé d’une flèche " ";
l’état final d’une étoile "*").
Transitions
evnt1 evnt 2 … evntn
Etat1
Etats
Etat2
…
Etatm
20 DA
E0 E2 Transitions
10 DA 20 DA OK
→*E0 E1 E2 -
Etats
10 DA 10 DA E1 E2 E3 -
10 DA OK/ Café ;
E2 E3 - -
E3 - - E0
E1 E3
20 DA
18
Chapitre 02 Machines d’Etats Finis
L'automate correspondant comporte 4 états. Dans les états , , , les chargeurs de pièces sont
ouverts, le bouton OK est bloqué. Dans l'état , les chargeurs de pièces sont fermés, le bouton OK est
débloqué. Les états , , , enregistrent le crédit courant en multiples de 10 Dinars. On passe d'un
état à un autre soit en insérant une pièce dans une des deux chargeurs de pièces, soit en appuyant sur le
bouton OK. Au début, le distributeur est dans l'état . Ceci est résumé par le schéma et la table de
transition de la Figure 2.3.
Lorsque l’ensemble des états, , est fini on parle d’automate d’états finis et lorsqu’il est infini on
parle d’automate d’états infinis (ou d’automate à états tout simplement) [Arnold 92].
Par exemple, un automate qui modélise les états (valeurs) d’une variable réelle est infini (puisque le
nombre de valeurs est infini). Par contre, l’automate de la Figure 2.4 qui modélise l’état d’une lampe est
fini, si on ne s’intéresse qu’aux états Lampe Allumée et Lampe Eteinte.
Lampe Lampe
Allumée Eteinte
Dans ce qui suit, nous nous intéressons aux automates d’états finis seulement.
Un automate est dit déterministe si pour tout couple (état, étiquette), le choix de la transition est
unique. Il est indéterministe s’il existe au moins un état qui a deux transitions étiquetées de la même
manière mais qui mènent vers deux états différents [Arnold 92] .
L’automate de la Figure 2.4 est déterministe. Par contre, celui de la Figure 2.5 n’est pas
déterministe, car à la réception d’un message, on peut soit traiter le message soit l’ignorer.
L’indéterminisme peut être volontairement choisi pour modéliser des aspects indéterministes comme la
perte de messages dans un réseau ou la défaillance de machines dans un système de production.
19
Chapitre 02 Machines d’Etats Finis
Attente Traiter
Message Massage
= ensemble d’états.
|
| = l’état initial de l’automate ( ∈ ).
| = ensemble des états finaux de l’automate ( ⊆ ).
|
Où : = ensemble fini des étiquettes des transitions.
|
= ensemble des transitions ( ⊆ ).
|
| = une application qui associe à chaque état l’ensemble des
|
propriétés de vérifiées dans cet état.
C’est généralement pour pouvoir prouver des propriétés sur un système que l’on rajoute le
cinquième élément l’automate, celui qui associe à tout état de , l’ensemble des propriétés élémentaires
vérifiées dans cet état. Cet élément n’est pas nécessaire pour utiliser les automates. Si toutes (ou
certaines) propriétés liées aux états sont connues à l’avance, il est préférable de les noter sur l’automate,
cela simplifiera la preuve de certaines propriétés sur l’automate.
Un chemin d’un automate est une suite , finie ou infinie, de transitions , , de qui
20
Chapitre 02 Machines d’Etats Finis
2.7.2 Exécution
Une exécution partielle d’un automate est un chemin partant de l’état initial de cet automate. Une
exécution complète est une exécution que l’on ne peut plus prolonger (car le système a atteint un état de
blocage ou bien l’exécution est infinie) [Wolper 91].
Un arbre d’exécution est l’ensemble des exécutions possibles décrivant la dynamique d’un
système. L’arbre d’exécution peut être infini [Wolper 91].
2.7.4 Atteignabilité
Un état est dit atteignable (ou accessible) s’il apparaît au moins une fois dans l’arbre d’exécution
de l’automate [Wolper 91].
La notion d’atteignabilité est importante, car elle est souvent utilisée pour démonter des propriétés
du système. En effet, le passage par un état (donc cet état est atteignable) peut correspondre à une
propriété particulière du système ou bien ce passage est nécessaire pour que la propriété soit vérifiée. Par
exemple, si dans un automate correspondant à la commande d’un moteur d'un véhicule, il y a un état
moteur_Eteint, démonter la propriété « Le moteur peut être éteint» revient à démontrer que l’état
moteur_Eteint est atteignable .
; Propriétés de sûreté (safety): le fonctionnement d’un système ne doit pas conduire à des
situations catastrophiques ou dangereuses. Le non-blocage est un exemple de propriétés de sûreté.
les propriétés les plus élémentaires (qui sont liées aux automates) sont souvent vérifiées pour
démontrer des propriétés plus globales. Il s’agit notamment des propriétés suivantes [Arnold 92]:
* Accessibilité : un état est accessible s’il existe un chemin l’atteignant depuis l’état initial.
* Réinitialisabilité : un automate est réinitialisable s’il existe un chemin depuis chaque état vers l’état
initial.
* Manque de blocage : une situation de blocage (deadlock) indique qu’aucune transition n’est plus
possible à un instant donné.
21
Chapitre 02 Machines d’Etats Finis
* Manque de famine : la famine est une situation où l’automate boucle sur une partie, ce qui
empêche tout accès à d’autres parties de l’automate.
* Equité (fairness) : l’équité indique que si deux chemins non-déterministes sont possibles à partir
d’un état, ce n’est pas toujours le même chemin qui est emprunté.
2.9 Exercices
Exercice N° 1
Spécifier à l’aide d’une machines d’états finis le comportement d’un système de communication
téléphonique : Décrocher, Composer le numéro, Répondre à un appel, Parler, Raccrocher, ... ?
Exercice N° 2
Soit une machine d’états finis dont la relation de transition est donnée par la table suivante :
a b
→E0 E1 E4
E1 E4 E2
*E2 E3 E4
E3 E4 E2
E4 E4 E4
− Représenter cette machine sous forme de diagramme ?
Exercice N° 3
En En prêt
Initial Disponible
commande
rendre
constater retard
rendre
En
retard
22
Chapitre 02 Machines d’Etats Finis
Exercice N° 4
Soit la machine d’états finis suivante qui représente le fonctionnement d’un Guichet Automatique de
Banque :
Attente
Insertion carte /
demander code
Carte invalide/
Rendre carte
Code erroné/ Attente
Avaler carte Code
Code bon /
demander montant
Attente
Montant
Montant
23
Chapitre 03 :
Chapitre 03 StateCharts
3.1 Introduction
Les StateCharts sont un formalisme défini au début des années 80 par David Harel [Harel 87] pour
la spécification de systèmes complexes. Ils représentent un des premiers formalismes graphiques pour
modéliser le comportement des systèmes larges (en termes d’états et de transitions) constitués d’un grand
nombre d’entités ou de composants en interaction. Ils décrivent les séquences possibles d’états et
d’actions qu’une entité peut traiter au cours de son cycle de vie en réaction à des évènements. La vision
globale du système est moins apparente sur ces diagrammes, car la liaison entre les parties du système est
assurée implicitement par le mécanisme d’envoie d’évènements.
Un StateChart est un automate d’états finis dont les états peuvent contenir un ou plusieurs
automates représentant ainsi un sous-système ou une sous-fonction du système global. Lorsque le système
entre dans un tel état, le sous-système ou la sous-fonction du système est démarré. Le mécanisme de
structuration des états dans les StateCharts limite l'explosion combinatoire des états et des transitions.
L’originalité des StateCharts provient non seulement de la description graphique des changements d’états
du système, mais aussi de la représentation graphique de la hiérarchie (plusieurs niveaux d’abstraction),
du parallélisme et de la concurrence. Il est à noter que nous présentons dans ce cours qu’un sous ensemble
de concepts et notations des StateCharts.
3.2 Définition
Les StateCharts sont une représentation graphique et formelle permettant de factoriser les
informations contenues dans un automate d’états finis. Plus précisément, il s’agit d’une extension des
automates d’états finis avec trois notions pour décrire des comportements complexes :
ª La Hiérarchie : Une des limitations du modèle de automates d’états est que la complexité des
diagrammes augmente de façon dramatique avec le nombre d’états. Les StateCharts permettent
d’imbriquer des états les uns dans les autres (super-états ou états composites qui englobent
chacun plusieurs états), ce qui rend le diagramme plus compréhensible et lisible et permet
plusieurs niveaux d’abstraction.
24
Chapitre 03 StateCharts
3.3 Représentation
Un StateChart rassemble et organise les états et les transitions d’une entité ou d’un composant du
système pendant sa durée de vie. Bien entendu, le modèle dynamique du système comprend plusieurs
StateCharts. Tous les automates d’états finis des StateCharts d’un système s’exécutent concurremment et
peuvent donc se communiquer et changer d’état de façon indépendante. Toutes ces notions sont
représentées graphiquement ce qui offre une vue synthétique du système. La Figure 3.1 illustre les
principaux éléments qui composent un StateChart.
Etat
Initial
Etat
Etat1 Nom d’état
Evènement
Evnt2 Evnt1 [Garde]/ Actions Transition avec
déclencheur
évènement,
garde et actions
Auto-
Etat2 Etat3
Transition
Transition
Automatique
Etat 5 Etat4
Etat
Composite
Etat
Final
3.3.1 Etat
Un état est une situation stable au cours de la vie d’un système (ou d’un sous-système) qui satisfait
certaines conditions. Un système reste dans un état pendant une durée déterminée pendant laquelle il
exécute une activité ou attend un évènement. Deux états sont particuliers : l’état initial qui indique l’état
de départ de l’automate et l’état final qui marque la fin de son exécution. Un état se compose
essentiellement de 5 parties dont certaines sont optionnelles (Figure 3.2) :
25
Chapitre 03 StateCharts
Æ Une action d’entrée: action exécutée quand le système entre dans l’état. Elle est spécifiée
via le mot clé "entry".
Æ Une action de sortie : action exécutée quand le système sort de l’état. Elle est spécifiée via
le mot clé "exit".
Æ Des activités : ce sont des activités effectuées une fois l’action d’entrée est exécutée.
Quand les activités sont terminées, le système attend un évènement pour changer d’état. Il
est à noter que les activités ont une certaine durée, et elles peuvent être par conséquent
interrompues. le mot clé "do" est utilisé pour spécifier les activités.
Æ Des sous-états : Un sous-état est un état emboîté dans un autre état (dit état composite). un
état composite peut être hiérarchisé en plusieurs sous-états. Un état composite a une sous-
structure qui permet de masquer à un certain niveau le fonctionnement interne de l’état
lorsque celui-ci est complexe (voir dans la section 3.3.3 les détails sur la manière de
spécifier des états composites).
3.3.2 Transition
Une transition définit la réponse d'un système à l'arrivée d'un événement. Elle indique qu'un
système qui se trouve dans un état (un état source) peut transiter vers un autre état (un état cible) et
exécuter certaines Actions, si un événement déclencheur se produit. Elle indique aussi sous quelle
condition de garde le système passe de l’état source à l’état cible.
Une transition entre deux états est représentée par un trait droit fléché de l'état source vers l'état
cible et étiqueté par un triplet (Evénement [Garde]/ Liste d’actions). Une transition comporte cinq parties
qui ne sont pas toutes obligatoires (Figure 3.3):
26
Chapitre 03 StateCharts
Æ Une action (optionnelle) : calcul exécuté par le système avant de passe à l’état cible. Il
s’agit généralement d’une opération qui peut être: envois d’événements, modification de
variables de l’automate, … . Il est à noter que les actions sont considérées comme
instantanées (c’est-`a-dire dont le temps d’exécution est négligeable) et atomique (c’est-à-
dire non interruptible)
Un état composite est un état qui contient d'autres états à l'intérieur (sous-états). Il existe deux
mécanismes de composition des sous-états afin de former des états composites : Orthogonale ou
Séquentielle. Un état composite est décomposé en régions contenant chacune un ou plusieurs sous-états.
Quand un état composite comporte plus d’une région, il est qualifié d’état orthogonal. Un état composite
ne comportant qu’une région est qualifié d’état séquentiel. Un sous-état est un état, il peut par conséquent
être à son tour un état composite. L’utilisation d’états composites permet :
27
Chapitre 03 StateCharts
Un état composite séquentiel est constitué de sous-états qui se suivent (voir la Figure 3.4). A partir
d’un état source externe, une transition peut cibler l’état composite ou un sous-état. Si la cible est un
sous-état, l’automate imbriqué commence au sous-état spécifié après exécution de l’action d’entrée
associée à l’état composite suivi par l’exécution de l’action d’entrée du sous-état. Si la cible est l’état
composite, la transition est équivalente à une transition ayant pour cible l’état initial de l’état composite.
L’automate imbriqué commence à l’état initial après exécution de l’action d’entrée associée à l’état
composite.
Une transition qui sort d’un état composite peut avoir pour source l’état composite ou un sous-état.
Dans les deux cas, l’action de sortie de l’état composite est exécutée avant de quitter l’état. Si la source
est un sous-état, l’action de sortie de ce sous-état est exécutée avant celle de l’état composite. Si la source
est l’état composite, si la transition ne porte pas d’évènement déclencheur explicite, elle sera
franchissable quand l’état final de l’état composite est atteint. Sinon (la transition avec un évènement
déclencheur), il est équivalente à des transitions qui s’appliquent à tout sous-état de l’état composite
source, cette transition interrompt l’activité de l’automate imbriqué (tous les sous-états deviennent
inactifs). Cette relation est transitive: la transition est franchissable depuis tout état imbriqué, quelle que
soit sa profondeur (c’est-à-dire, les différents niveaux d’imbrication) en traversant les frontières des états
composites. Un automate imbriqué peut avoir au maximum un état initial et un état final.
Sous-Etat Etat
Sous-Etat
initial Composite
Transition à
Etat 3 partir d’un
Evnt3 sous-état
Etat 4
Transition vers
un sous-état Transition à
Etat 3.1 Etat 3.3 partir de l’état
Evnt1 Evnt4 composite avec
Etat 1
évènement
Transition vers
l’état composite
Etat 5
Etat 3.2 Etat 3.4
Transition
Evnt2
Etat 2 automatique à
partir de l’état
entry/ … composite
exit/ …
Etat 6
28
Chapitre 03 StateCharts
La Figure 3.5 présente un modèle de la transmission automatique de vitesse en voiture. Les vitesses
sont passées dans l'ordre, et de chacune la transmission peut revenir au point mort. Le modèle de la
transmission de vitesses est composé de trois états Marche_avant, Marche_arrière et Point_mort. L’état
Marche_avant est un composite séquentiel incluant cinq états représentant les cinq rapports de vitesse. La
notion d'état initial et final devient relative au niveau d'imbrication. La transition passerPM de l’état
composite Marche_avant vers l'état Point_mort exprime que quelle que soit la vitesse enclenchée, la
transmission passe au point mort. La transition passerP de l'état Point_mort vers l’état composite
Marche_avant envoie dans l'état initial de l’état composite Marche_avant (c'est-à-dire, dans l'état
Première).
PasserMA
Point mort Marchr_arrière
PasserPM
PasserP PasserPM
Marche_Avant
Dans certaines situations, on a besoin que l’automate imbriqué se souvienne du dernier sous-état où
il était avant de le quitter pour la dernière fois. On peut modéliser ce besoin à l’aide d’état historique. Un
état historique est un pseudo-état qui mémorise le dernier sous-état actif d'un état composite.
Graphiquement, il est représenté par un cercle contenant la lettre H. Une transition ayant pour cible l'état
historique est équivalente à une transition qui a pour cible le dernier état visité de l'état englobant. Dans le
cas où un état composite contient d’autres sous-états qui eux-mêmes sont composites, il est possible de
définir un état historique profond représenté graphiquement par un cercle contenant la lettre H*. Cet état
permet d'atteindre le dernier état visité quel que soit son niveau d'imbrication.
29
Chapitre 03 StateCharts
stoppée (arrêt d’urgence, coupure d’électricité, …), lorsqu'elle est remise en route, elle repart du même
endroit mémorisé dans l’état historique.
EnMouvement
Monter
Démarrage
Montée
Arrivée
Pallier Arrivée
Descente
H
Monter
Stop Reprise
Stoppé
Lorsqu’un état composite orthogonal est atteint, les exécutions de tous ces régions sont déclenchées
à partir de leurs états initiaux, et se poursuivent en parallèle. Toutes les régions doivent atteindre leur état
final pour sortir de l’état composite. Il est à note qu’un état composite orthogonal n’a pas d’état initial car
chacune de ses régions concurrents a un état initial, ni d’état final car chacune de ses régions concurrents
a un état final.
À tout instant plusieurs automates imbriqués peuvent être actifs. Dans ce cas, plusieurs états
peuvent être actifs en même temps, l’état global étant alors caractérisé par l’ensemble des états actifs.
30
Chapitre 03 StateCharts
Séparation entre
les régions Nom de la région 2
concurrentes
Etat 2.1 Etat 2.2
Région
concurrente
Dans la Figure 3.8, le modèle présente l'utilisation d'un état composite orthogonal pour décrire le
fonctionnement d’un distributeur automatique de boissons. Après avoir sélectionné la boisson et validé le
montant par rapport au crédit, deux séquences d’actions sont déclenchées en parallèle : la préparation de
la boisson et le rendu de la monnaie.
Sélectionner Valider
boisson montant
Préparer Terminer
boisson préparation
Rendre monnaie
Gobelet en
attente
31
Chapitre 03 StateCharts
3) Extraire de ܶ un ensemble maximal non conflictuel ܶԢ. Les transitions les plus extérieures
ont la priorité, en cas de conflit à priorité égale, un tirage au sort est effectué.
4) Exécuter les actions de ܶԢ. En particulier, remplacer ܧpar l'ensemble des évènements
générés par les éléments de ܶ.
Remarques
ª L'exécution d'un pas présenté ci-dessus ne couvre qu'une partie du formalisme de Harel. Il existe
encore d’autres types d'états et de transitions tels que les états historiques qui tiennent compte de
l'histoire, les branchements conditionnels, etc.
ª De ce point de vue, un StateChart n'est qu'une abréviation d'un automate d’états finis. La
composition hiérarchique des états permet de diminuer le nombre de transitions et la composition
parallèle permet de diminuer le nombre d'états.
ª Les StateChart est un formalisme assez lisible, simple d'emploi et d'une grande expressivité. On
peut par contre lui reprocher de se prêter moins bien que certains de ses concurrents à la
vérification formel de propriétés. Pour remédier à ce défaut, deux voies sont possibles : la
première est de redéfinir la sémantique opérationnelle de manière à la rendre plus facilement
manipulable. La seconde est de définir une traduction des statecharts vers un formalisme
possédant de bons outils de vérification formelle, tels que les réseaux de Petri, les systèmes de
transitions.
32
Chapitre 03 StateCharts
3.5 Exercices
Exercice N° 1
Exercice N° 2
Exercice N° 3
Dessiner un Statecharts résumant les états possibles d’un “contrat” tel que décrit dans l’énoncé
suivant. Un ensemble de personnes décident d’établir un contrat. Pour ce faire elles rédigent un projet par
itération successive. Le contrat est ensuite informellement accepté par les parties, et devient ce que l’on
appelle un préaccord. A ce stade il peut toujours être l’objet de modification et revenir à l’état de projet.
Une fois le préaccord définitivement établi, le contrat est signé par les parties. Dès ce moment les
partenaires sont liés. Une fois signé le contrat peut être rendu exécutoire par une décision d’une des
parties. Un contrat en exécution peut faire l’objet de discussions qui sont réglées par un arbitre désigné à
cet effet. Le contrat une fois exécuté prend fin.
Exercice N° 4
33
Chapitre 04 :
Chapitre 04 Réseaux de Petri
4.1 Introduction
Les Réseaux de Petri (RdP) ont été introduit par Carl Adam Petri en 1962 à l’université Darmstadt
dans sa thèse intitulée : "Communication avec des automates" comme un outil de modélisation graphique
et mathématique permettant la modélisation et l’analyse des systèmes dynamiques à événements discrets.
En tant qu’outil graphique, les réseaux de Petri permettent la visualisation du comportement dynamique
du système. En tant qu’outil mathématique, ils permettent l'analyse des propriétés du système. Ce
formalisme bénéficie d’une riche panoplie de techniques d’analyse et d’outils de simulation. Les résultats
de cette analyse sont utilisés pour évaluer le système et en permettre la modification ou l’amélioration
[David 92].
4.2 Définition
Comme l’illustre le réseau de Petri de la Figure 4.1, un réseau de Petri est un graphe biparti orienté
(ayant deux types de nœuds): des places représentées par des cercles et des transitions représentées par
des rectangles. Les arcs du graphe ne peuvent relier que des places vers des transitions, ou des transitions
vers des places. Chaque arc possède un entier positif qui représente son poids [Brams 83]. Par
convention, lorsque le poids n'est pas précisé sur un arc, alors ce poids vaut 1.
Un réseau de Petri décrit un système dynamique à événements discrets. Les places permettent la
description des états possibles du système et les transitions permettent la description des événements ou
les actions qui causent le changement de l’état. Un réseau de Petri est un graphe muni d’une sémantique
opérationnelle, c’est-à-dire qu’un comportement est associé au graphe, ce qui permet de décrire la
dynamique du système représenté. Pour cela un troisième élément est ajouté aux places et aux transitions:
les jetons.
Une répartition des jetons dans les places à un instant donné est appelée marquage du réseau de
Petri. Un marquage donne l’état du système. Le nombre de jetons contenus dans une place est un entier
positif ou nul. Pour un marquage donné, une transition est franchissable si chacune de ses places d’entrée
contient au moins un jeton. L’ensemble des transitions franchissables pour un marquage donné défini
l’ensemble des changements d’états possibles du système depuis l’état correspondant à ce marquage.
C’est un moyen de définir l’ensemble des événements auxquels ce système est réceptif dans cet état.
34
Chapitre 04 Réseaux de Petri
Nom de la
t1 t3
Transition
Transition Place
P2 P4 Nom de la
Poids 1 Place
t2
Jeton
P1 P3
La représentation matricielle d'un réseau de Petri permet de définir les matrices correspondantes
aux applications Pré et Post ainsi que le vecteur de marquage.
35
Chapitre 04 Réseaux de Petri
1 1 0 1 0 0
P= {p1, p2, p3, p4} 0 0 1 1 0 0
Pré 0 0 0 Post 0 1 1
T= {t1, t2, t3} 0 0 0 0 0 1
1
0 -1 0
0
1 0 -1 M
C 0
0 -1 0
0
0 0 1
4.3.1 Dynamique
La dynamique d'un réseau de Petri est déterminée par sa structure statique et par son état. L'état
d'un réseau de Petri se modélise à l'aide d'un marquage que l'on fait évoluer en franchissant des
transitions, ce qui correspond à exécuter les actions qui lui sont associées. Les règles suivantes permettent
de représenter l'évolution des systèmes à modéliser [Brams 83]:
I. Une transition est dite franchissable pour le marquage si pour toute place telle que
é , 0 est marquée d'au moins é , jetons, C'est-à-dire,
si∀ ∈ , ≥ é , ( ≥ é ., pour la notation matriciel). On note ceci .
II. Une transition est franchie en retirant é , jetons de chaque place telle que
é , 0 , et en ajoutant , ’ jetons à chaque place ’ telle que , ’ 0,
c'est-à-dire, si est franchissable pour , alors le franchissement de fait passer le marquage
au marquage ’ de la façon suivante :
∀ ∈ , ’ é , , .
36
Chapitre 04 Réseaux de Petri
On note ceci ’, ce qui veut dire que lorsque la transition est franchie à partir d'un
marquage , il faut saisir é , jetons à partir de chaque place d'entrée à la transition et
déposer , jetons dans chaque place de sortie de la transition ce qui permet de
produire un nouveau marquage ’.
La notion de franchissement de transitions peut alors être étendue aux séquences de transitions.
Soit … une séquence de transitions. La séquence est franchissable à partir de et conduit
au marquage ’ ce qui sera note ’ si et seulement s’il existe des marquages
, ,….., ’ ∀ 0≤ ≤ 1 › .
L’idée la plus naturelle pour étudier le comportement d’un réseau de Petri est de construire le
graphe de tous ses marquages accessibles. Le graphe des marquages accessibles est un graphe dont
chaque sommet correspond à un marquage accessible et dont chaque arc correspond au franchissement
d’une transition permettant de passer d’un marquage à l’autre. On appelle l’ensemble des marquages
accessible d’un réseau de Petri à partir d’un marquage initial. La Figure 4.3 présente le graphe de
marquage du réseau de Petri à droite de la Figure. Deux situations peuvent alors se présenter :
1. Le graphe est fini. C’est la situation la plus favorable car dans ce cas toutes les propriétés
peuvent être déduites simplement par inspection de ce graphe.
2. Le graphe est infini. Dans ce cas, on construit un autre graphe appelé "graphe de couverture"
permettant de déduire certaines propriétés.
t4
P1 M2
0
t1 0
1
t2 1 t3 M4
M0 M1
1 0 0 0
P2 P3
0 1 0
t2 t3
t1
0 1 0
0 0 1
M3
0 0 0 1
t3 t2
P4 P5 1
0
t4
0
1
Graphe de marquages
37
Chapitre 04 Réseaux de Petri
Un graphe de marquage ne peut plus être construit quand le nombre de marquages accessibles est
infini. D'où le recourt au graphe dit de couverture. C’est un graphe à nombre de marquages fini.
L’algorithme de construction du graphe de couverture est comme suit :
Pas 01: A partir du marquage initial , on indique toutes les transitions validées et les
marquages accessibles successeurs correspondants. Si un des marquages est strictement
supérieur à , on met la variable pour chacune des composantes supérieures aux
composantes de . La variable matérialise le fait que la place peut contenir autant de
jetons que souhaité.
Pas 02 : Pour chaque nouveau marquage , on fait soit le pas 2.1 soit le pas 2.2 suivants :
Pas 2.1: S’il existe sur le chemin de jusqu’à (ce dernier exclut) un marquage
∀ ∈ ,
, alors n’a pas de successeurs.
Remarque
− Comme pour le graphe de marquages accessible, on peut déduire de l’observation du graphe de
couverture un certain nombre de propriétés pour le réseau de Petri.
38
Chapitre 04 Réseaux de Petri
P1 M2 M4
0 0
t1 1 t3 0
ω ω
t2 0 1
t2 M0 M1
P2 1 0
0 t1 1
t3 0 0
P3
0 0 M3
t3 0
0
P4
0
1
Graphe de couverture
A partir d’un marquage , on peut tirer une séquence de transitions et on trouve le marquage ’.
’ .
Remarque
− Les résultats de l’équation, même s’ils sont toujours calculables, n’ont de sens que si la
séquence s est effectivement franchissable. Pour le réseau de Petri de la Figure 4.3, calculer le
39
Chapitre 04 Réseaux de Petri
* Les conflits dans un réseau de Petri (Figure 4.4(a) et (b)): Si une place ce trouve en amont de
plusieurs transitions. On note le conflit de la place , , ,… ; Où , , . .. sont
les transitions en concurrence. On parle de conflit structurel car cela ne dépend pas du marquage.
Dans certains cas, le franchissement de l'une des transitions peut empêcher le franchissement de
l'autre (la Figure 4.4(a)). Le conflit devient conflit effectif quand il y a effectivement conflit, cela
dépend du marquage (la Figure 4.4(b)).
* RdP à choix libre (Figure 4.4(c)) : Un réseau de Petri à choix libre est un réseau dans lequel pour
tout conflit ( , , ,…, ) aucune des transitions , ,…, ne possède aucune autre
place d’entrée que .
* RdP simple (Figure 4.4(d)) : Un réseau de Petri simple est un réseau de Petri dans lequel chaque
transition ne peut être concernée que par un conflit au plus.
* RdP pur (Figure 4.4(e)): Un réseau de Petri pur est un réseau dans lequel il n’existe pas de
transition ayant une place d’entrée qui soit à la fois place de sortie de cette transition.
* Un réseau de Petri est un graphe d'état (Figure 4.4(f)) si et seulement si toute transition a
exactement une seule place d'entrée et une seule place de sortie.
* Un réseau de Petri est un graphe d'événement (Figure 4.4(g)) si et seulement si chaque place
possède exactement une seule transition d'entrée et une seule transition de sortie.
P1 P2 P1 P2 P1 P2 P1
T1 T2 T1 T2 T1 T2 T1 T2
T2
Non Pur
P2
(d) (e) (f) (g)
40
Chapitre 04 Réseaux de Petri
Ces propriétés dépendent à la fois du marquage initial et de la structure du réseau. Il s'agit ici de
faire ressortir les propriétés dynamiques du système étudié [Murata 89].
* Existence d’un marquage: Pour toute séquence de transitions , il existe un marquage tel que
celle-ci soit franchissable.
* Monotonie: L’augmentation de jetons dans les places d’un marquage préserve la possibilité de
franchissement d’une séquence de transitions.
* Séquence répétitive: Une séquence de transitions est dite répétitive si pour tout marquage tel
que : alors . La notion de séquence répétitive permet de définir une condition
nécessaire et suffisante pour qu’un réseau marqué ait la possibilité d’être infiniment actif.
* Caractère borné: Cette propriété définit et caractérise la possibilité pour une place d’accumuler
une quantité bornée ou pas de jetons au cours de l’évolution d’un réseau.
* Place k-bornée, non bornée: Pour un réseau réseau de Petri et un marquage , une place du
réseau marqué ( , ) est k-bornée si pour tout marquage accessible depuis , .
Dans le cas contraire la place est dite non-bornée.
* Réseau borné : Un réseau marqué est borné si toutes ses places sont bornées. Les réseaux 1-bornés
sont appelés des réseaux saufs.
* Activité d’un réseau : La notion d’activité d’un réseau recouvre deux classes de définitions. La
première concerne l’activité individuelle des transitions, la seconde concerne l’activité globale d’un
réseau (Indépendamment de transitions particulières).
* Pseudo-vivacité: Un réseau de Petri ( , ) est dit pseudo-vivant si pour tout marquage
accessible depuis le marquage initial, il existe toujours une transition qui puisse être franchie.
* Quasi-vivacité d’une transition: La quasi-vivacité d’une transition signifie que depuis le marquage
initial, cette transition peut être franchie au moins une fois. Par conséquent, une transition qui n’est
pas quasi-vivante est inutile.
* Quasi-vivacité d’un réseau: Un réseau est quasi-vivant si toutes ses transitions le sont.
* Monotonie et quasi-vivacité: La propriété de monotonie présentée plus haut, implique qu’une
transition quasi-vivante pour ( , ) le reste pour ( , ).
* Vivacité : Les deux propriétés précédentes assurent une certaine correction du système mais elles
ne permettent pas d’affirmer que, dans n’importe quel état atteint, le système dispose encore de
toutes ses fonctionnalités. Autrement dit, si toute transition peut toujours être ultérieurement
franchie à partir d’un état quelconque du système. Par exemple, dans un réseau quasi-vivant une
transition pourra être franchie une seule fois.
41
Chapitre 04 Réseaux de Petri
* Vivacité d’une transition: La vivacité d’une transition exprime le fait que quelque soit l’évolution
du réseau à partir du marquage initial, le franchissement à terme de cette transition est toujours
possible.
* Vivacité d’un réseau: Un réseau est vivant si toutes ses transitions le sont.
* État d’accueil: Un réseau de Petri possède un état d’accueil pour un marquage initial si
pour tout marquage accessible il existe une séquence telle que .
* RdP réversible: Un réseau de Petri est réversible pour un marquage initial si est un état
d’accueil.
* Absence de blocage: Cette propriété est plus faible que celle de vivacité. Elle implique seulement
que le réseau a toujours la possibilité d’évoluer.
* Marquage puit: Un marquage puit est un marquage à partir duquel aucune transition n’est tirable.
Un réseau marqué est sans blocage si aucun de ses marquages accessibles n’est un marquage puit.
4.5.1 Parallélisme
P1
T1
P3 P2
Processus 1 Processus 2
42
Chapitre 04 Réseaux de Petri
4.5.2 Synchronisation
P12 P6
T7
P13 P7
Processus 1 Processus 2
¾ Synchronisation par signal (sémaphore): Dans la synchronisation par signal, les opérations du
processus 2 ne peuvent se poursuivre que si le processus 1 a atteint un certain niveau dans la suite
de ses opérations. Par contre, L’avancement des opérations du processus 1 ne dépend pas de
l’avancement des opérations du processus 2.
T1
Attente
Signal
P3 T2
Processus 1 Processus 2
43
Chapitre 04 Réseaux de Petri
Si la place Signal est marquée et la place Attente ne l’est pas, cela signifie que le processus 1 a
envoyé le signal mais le processus 2 ne l’a pas encore reçu. Si, par contre, la place Signal n’est
pas marquée et que la place Attente est marquée, cela signifie que le processus 2 est en attente du
signal.
Cette structure va modéliser le fait qu’au sein du même système plusieurs processus partagent une
même ressource en utilisant le principe de l’exclusion mutuelle. Dans la Figure 4.9, Le jeton dans la
place présente une ressource mise en commun entre le processus 1 et le processus 2. Le franchissement
de la transition lors de l’évolution du processus 1 entraîne la consommation du jeton présenté dans la
place . La ressource que constitue ce jeton n’est alors plus disponible pour l´évolution du processus 2.
Lorsque la transition est franchie, un jeton est alors est placé dans la place : la ressource devient
alors disponible pour l’évolution des deux processus.
P12 P2
T1 T7
P13 P0 P3
T18 T8
Processus 1 Processus 2
4.5.4 Mémorisation
Dans tous les modèles, on peut compter le nombre de tirs d’une transition en utilisant une place
sans sortie. Dans La Figure 4.10 les places Attente et Compteur peuvent servir à indiquer combien
d’instances d’un processus sont en attente.
44
Chapitre 04 Réseaux de Petri
P1 Attente P1
T1 T1
P2 Compteur P2
4.6 Exercices
Exercice N° 1
Dessiner les graphes des marquages accessibles pour les réseaux de Petri suivants ?
P1 P1
t1
t1 t2
P2
P4
t3 P3
P3 P2 t2 t3
P5 P6
t4 t5
Exercice N° 2
P1
t1 t2 P1
T1 T3
P3 P2 t3
P2 P2
T2
45
Chapitre 04 Réseaux de Petri
Exercice N° 3
Producteur Consommateur
t1 t2
Tampon occupé
Tampon libre
Exercice N° 4
46
Chapitre 05 :
Chapitre 05 Chaînes de Markov
5.1 Introduction
Les systèmes que nous considérons dans ce chapitre sont des systèmes dynamiques faisant
intervenir de l’aléatoire dans leurs évolutions au cours du temps. Les Chaînes de Markov sont un outil
permettant de modéliser les processus dans lesquels une réalisation dépend de la réalisation précédente.
5.2.1 Evénement
On considère un ensemble qui représente l’ensemble des issues possibles d’une expérience. Dans
l’exemple du jet d’un dé, l’ensemble des issues possible est 1, 2, 3, 4, 5, 6 . C’est un ensemble
discret. Si, au contraire, l’expérience consiste à mesurer le temps jusqu’à ce que quelqu’un entre dans un
bureau de Poste, l’ensemble est continu : ∈ 0 .
Un évènement est un sous-ensemble de l’ensemble des issues possibles pour l’expérience. Si le
résultat de l’expérience appartient à , on dit que l’évènement s’est réalisé. Par exemple, on peut
s’intéresser à l’évènement 2, 4, 6 ⊂ que le jet d’un dé donne un nombre pair.
Remarques
Í Les évènements composés d’un seul élément de sont appelés événements élémentaires.
47
Chapitre 05 Chaînes de Markov
Quelques Propriétés
Í 0≤ ≤1
Í 1
Í φ 0
Í ∪ ∩
Í ∪ ∩ φ
Í 1
Í ≤ ⊂
L’occurrence d’un évènement peut dépendre du fait que l’évènement s’est produit. La
probabilité de l’évènement sachant que s’est produit est donnée par :
∩
/
On a donc :
∩ / .
Exemple
Soit trois cartes, la première carte a ses deux faces rouges (RR). La deuxième carte a ses deux faces
bleu (BB). Finalement, la troisième carte a une face rouge et l’autre bleu (RB).
On tire une carte et on ne regarde que la face dessus, elle est rouge. Quelle est la probabilité que
l’autre face soit bleu ?
Réponse: / ⅓
48
Chapitre 05 Chaînes de Markov
5.2.4 Indépendance
C'est-à-dire, Savoir que s’est produit n’apporte aucune information sur la probabilité que se
produit.
Si on lance 10 fois une pièce de monnaie à pile ou face. L’ensemble des issues possible est :
, ,…, , 2
Généralement, on s’intéresse au nombre de fois où la pièce est tombée sur face que la séquence de piles et
de faces obtenue. Par exemple, si on obtient le résultat , ce qui nous intéresse c’est que la
pièce est tombée 4 fois sur face.
De manière générale, on est intéressé par une mesure (c’est-à-dire un nombre) associé à
l’expérience que par le résultat proprement dit. Cette mesure est appelée variable aléatoire [Feller 60].
Une variable aléatoire est une fonction :
:
Exemple
On lance une pièce de monnaie trois fois. L’ensemble des issues possibles associées à cette
expérience est :
, , , , , , , , 8
Si on suppose la pièce équilibrées, on peut considérer que ces huit issues sont équiprobables. Notions le
nombre de cotés face obtenus. est une variable aléatoire qui prend les valeurs : 0, 1, 2 ou 3.
0, 1, 2, 3 . On note, par exemple, 2 l’évènement "le coté face est sorti exactement deux":
2 ∈ 2 . La Figure 5.1 illustre la fonction de la variable aléatoire avec
l’évènement 2 .
49
Chapitre 05 Chaînes de Markov
Variable aléatoire X
S E
ppp
ppf
0 x1
pfp
pff 1 x2
fpp
Evènement 2 x3
[X = 2] fpf
ffp 3 x4
fff
Remarques
− On n’a pas besoin de probabilité pour définir une variable aléatoire.
Pour illustrer, sur l’exemple précédant à la valeur 2, on peut associer la probabilité 1/8
puisque on a 3 chances sur 8 d’obtenir exactement deux fois le coté face.
50
Chapitre 05 Chaînes de Markov
En d’autres termes, un processus stochastique représente une évolution dans le temps d’une
variable aléatoire.
On peut s’intéresser au comportement transitoire du processus, c'est-à-dire à l’évolution des
fonctions de distribution de probabilité de la variable aléatoire au cours du temps . généralement, on
s’intéresse plutôt au comportement stationnaire (c'est-à-dire à l’équilibre) qui est obtenu si la distribution
de probabilité converge vers une distribution de probabilité unique indépendante du temps quand
∞. Il est noter que le régime permanent peut n’exister que sous certains condition et il faut
soigneusement établir ces conditions quand on étudie un processus stochastique [Guikhman 80].
,...,
Autrement dit, cette équation signifie que le processus est Markovien si son état dans le future ne
dépend que de l’état présent et pas des ses états passés. L’état courant du processus contient toute
l’information permettant de caractériser son évolution.
Un processus Markovien à espace d’état discret est appelée une chaine de Markov.
Processus Stochastique
On s’intéresse dans la suite de ce chapitre particulièrement aux chaines de Markov à temps discret.
51
Chapitre 05 Chaînes de Markov
cours du temps discret. A chaque changement, le nouvel état est choisi avec une distribution de
probabilité fixée au préalable, et ne dépendant que de l'état présent.
Une souris se déplace dans le labyrinthe de la Figure 5.3 qui comporte 5 cases numérotées de 1 à 5.
Initialement, elle se trouve dans la case N°1. A chaque minute, elle change de case en choisissant l'une
des cases adjacentes de manière équiprobable. Dès qu'elle atteint soit la nourriture (la case N°4), soit sa
tanière (la case N°5), elle y reste [Berglund 14].
Case N°1 (prob = 1) Case N°1 (prob = 0) Case N°1 (prob =(1/3*1/2)+(1/3*1/2) = 1/3)
1/3
1/3 1/2
Case N°2 (prob=0) Case N°2 (prob =1/3) 1/2 Case N°2 (prob =0)
1/3 1/2
Case N°3 (prob = 0) Case N°3 (prob = 1/3) 1/2 Case N°3 (prob = 0)
Case N°4 (prob = 0) Case N°4 (prob = 0) Case N°4 (prob= (1/3*1/2) +(1/3*1/2 ) = 1/3)
Case N°5 (prob = 0) Case N°5 (prob = 1/3) Case N°5 (prob = 1/3)
Par exemple, il est clair que la souris se retrouve dans sa tanière au bout d'une minute avec
probabilité 1/3. Sinon, elle passe soit dans la case 2, soit dans la case 3, et depuis chacune de ces cases
elle a une chance sur deux de trouver la nourriture. Il y a donc une probabilité de 2/6 que la souris trouve
la nourriture au bout de deux minutes. Dans les autres cas, elle se retrouve dans la case de départ, ce qui
permet d'établir une formule de récurrence pour les probabilités cherchées.
52
Chapitre 05 Chaînes de Markov
Cette manière de faire est très compliquée, et devient rapidement impossible à mettre en œuvre
quand la taille du labyrinthe augmente. Dans la suite, on va développer l’outil de Chaîne de Markov qui
permet de résoudre ces types de problèmes.
5.5.2 Définition
Remarque
− Le nombre d’états peut être fini.
Une Chaîne de Markov peut être caractérisée par ses probabilités de transition en une seule étape.
est la probabilité de passer de à en un pas de temps [Berglund 14]. On note que ces
probabilités ne dépendent pas de l’instant considéré. On dit dans ce cas que la Chaîne de Markov est
homogène dans le temps.
5.5.4 Représentation
Une Chaîne de Markov à temps discret peut être représentée de deux façons :
Les nœuds du graphe représentent les états que peut prendre le processus, et les arcs représentent
les transitions entre états. Les poids des arcs correspondent aux probabilités de réaliser ces transitions. La
Figure 5.5 présente le graphe de transition d’une Chaîne de Markov de l’exemple de la section 5.5.1.
1/ 2 1
Etat 3 4
Transition
1/ 2
Probabilité 1/ 2 1/3
de Transition 1/3
1 2
1/ 2
1/3
5
1
53
Chapitre 05 Chaînes de Markov
Remarque
− La somme des poids des arcs sortant d’un nœud vaut 1.
On appelle matrice des probabilités de transition la matrice carrée d’ordre (où est le
nombre d’éléments de l’espace d’états ),
p 00 p 01 … p 0n
p 10 p 11 … p 1n
P=
…
p n0 p n1 … p nn
Les éléments de la matrice correspondent aux probabilités de transition entre états. La ligne de
cette matrice donne la probabilité de passer de l’état vers tout autre état (y compris l’état lui-même)
en un pas de temps. La somme des éléments d’une ligne est égale à 1 (∑ 1). On parle alors de
matrice stochastique.
1 2 3 4 5
2 1/2 0 0 1/2 0
3 1/2 0 0 1/2 0
4 0 0 0 1 0
5 0 0 0 0 1
Si le processus passe de l’état à l’état en deux étapes, c’est qu’il est passé par un état (qui peut
Il claire que est l’élément , de la matrice . On peut ainsi établir que les
, 0
54
Chapitre 05 Chaînes de Markov
Cette équation est connue sous le nom d’équation de Chapman-Kolmogrov [Norris 97]. Elle
exprime que pour passer de à en étapes, il faut passer par un état à l’étape .
On note la probabilité que la Chaîne de Markov soit dans l’état à l’instant. Pour
manipuler ces probabilités d’états, on utilise le vecteur , ,… dont la somme des termes
vaut 1. Chaque Chaîne de Markov a un état initial. L’état initial d’une Chaîne de Markov est défini par le
Soient et deux états de . On dit que est accessible depuis si et seulement si il existe un entier
∈ et une suite d’états , ,..., tels que … 0.
En d’autres termes, est accessible depuis si il existe un chemin dans le graphe de transition,
partant de et arrivant en . Ceci se traduit également en termes des probabilités de transition en pas et
des probabilités de premier passage.
De façon générale, l’état est accessible depuis si et seulement si il existe tel que , 0.
États Communiquent
On dit que deux états et communiquent si l’état est accessible de l’état et l’état est
accessible de l’état . La relation de communication est transitive, si l’état communique avec l’état et
l’état communique avec l’état , alors l’état communique avec l’état .
55
Chapitre 05 Chaînes de Markov
Si tous les états de communiquent entre eux, tout entier est la seule classe irréductible. On dit
alors que la haîne est irréductible.
État Absorbant
Un état est dit absorbant si le processus ne peut pas sortir de cet état. Autrement, l’état est
absorbant si et seulement si 1.
État transitoire
On dit que est un état transitoire si après y avoir accéder, le processus peut ne plus y revenir.
Autrement dit, un état est transitoire si et seulement si il existe un état accessible de l’état et
n’est pas accessible de l’état . Par conséquent, un état transitoire est un état dans lequel on ne passe
qu’un nombre fini de fois.
État récurent
On dit que est un état récurrent si après y avoir accédé, le processus y reviendra. Autrement dit,
un état est récurrent si et seulement s’il n’est pas transitoire.
Remarque
− Tous les états d’une chaine de Markov irréductible sont récurent.
On dit que l’état est de période si égale au plus grand commun diviseur (P.G.C.D) de tous
les pour lesquels 0.
1, 0
Apériodique
Ergodique
Un état récurrent et apériodique est dit ergodique. Une Chaîne de Markov est dite ergodique si tous
ses états sont ergodiques.
56
Chapitre 05 Chaînes de Markov
1
3 4
0 1 2 Périodique
Absorbant 6
Transitoires
7 8
Ergodique
L’analyse d’une chaine de Markov au régime transitoire consiste à déterminer le vecteur des
probabilités d’états π à l’instant n. Il est à noter que l’évolution de distribution π dépend de la
distribution initiale. Rappelons que :
Dans l’exemple de la section 4.2.1, La matrice de transition à 2 pas est donnée par :
1 2 3 4 5
4 0 0 0 1 0
5 0 0 0 0 1
Partant de l’état à l’instant initial, les probabilités de transition en 2 étapes à partir de cet état est
donnée par la ligne de . Ainsi, si à l’instant initial la chaine de Markov est dans l’état 1 de façon
certaine ( 1, 0, 0, 0, 0 ), alors on sait que la distribution de probabilités des états à l’instant 2 est
donnée par :
, 0, 0, , .
57
Chapitre 05 Chaînes de Markov
1 2 3 4 5
4 0 0 0 1 0
5 0 0 0 0 1
0, , , , .
1 2 3 4 5
4 0 0 0 1 0
5 0 0 0 0 1
, 0, 0, ,
Après un grand nombre de transitions ( ∞), la probabilité que la Chaîne de Markov soit dans
un état donné est constante et ne dépend pas de l’état initial. On dit que la Chaîne de Markov atteint le
régime stationnaire ou un état d’équilibre. La distribution des états dans ce régime est la loi stationnaire
ou loi limite. On note cette loi par tel que :
Il est noter que le régime stationnaire n’est pas atteint par tous les systèmes, il y a des systèmes qui
n’atteindront jamais l’état stationnaire. Dans ce cas, soit y a un problème quelque part dans le système,
soit le système en question dépend d’autre facteurs qui changent a chaque fois.
58
Chapitre 05 Chaînes de Markov
Théorème de Kolmogrov
existe et est indépendante de l’état initial. La distribution stationnaire peut être calculée en résolvant le
système d’équations suivant [Norris 97] :
|
1
|
Remarque
− Si au moins une des puissances de la matrice P de la chaîne de Markov n’a que des termes
strictement positifs, alors la les conditions du théorème de Kolmogrov sont les mêmes.
Il est clair que la Chaîne de Markov de l’exemple de la section 4.2.1 ne vérifie pas les conditions
du théorème de Kolmogrov. La Chaîne de Markov n’est pas irréductible, les états 4 et 5 sont
Absorbants.
Exemple
Considérons une Chaîne Markov définie par la matrice de transition et le graphe de transition de
la Figure 5.7 :
1/ 2
0
0 1 2
0 1/2 0 1/2
1/ 2 1/ 4
1 1/4 1/2 1/4 1/ 3
2 1/3 1/3 1/3 1/3
1/ 3 2 1 1/ 2
1/4
Tous les états communiquent, donc la Chaîne est irréductible. Tous les états sont de manière
évidente de période 1 , donc la chaine est apériodique. D’après le théorème de Kolmogrov, on peut dire
qu’il existe une distribution stationnaire . est l’unique solution du système :
|
1
|
59
Chapitre 05 Chaînes de Markov
0 …... 1
| |
| |
| 0 | 0 0 …... 2
| | 0 …... 3
| |
| |
1 1 …... 4
On a :
3 1 0 …... 5
0 …... 6
1 1
On a donc :
La distribution stationnaire =[ , , ].
Lorsqu’on a affaire à une Chaîne de Markov absorbante, on est généralement intéressé par les deux
questions suivantes :
Î Combien de temps faudra-t-il pour que le processus soit absorbé, étant donné son état initial ? On
appelle le temps moyen jusqu’à l’absorption en partant de .
Î S’il existe plusieurs états absorbants, quelle est la probabilité pour un processus d’être absorbé
par un état donné. On appelle la probabilité que le processus soit absorbé dans si son état
initial est .
60
Chapitre 05 Chaînes de Markov
Théorème 1
Les quantités sont solution du système d’équations:
où est un état non absorbant et l’ensemble de tous les états non absorbants.
Théorème 2
Soit un état absorbant et l’ensemble de tous les états non absorbants. Alors les probabilités
sont solution du système d’équations :
Exemple
A la fin de chaque jour de service, l’état de la pièce est enregistré. La matrice de transition obtenue est :
1 2 3
1 0.7 0.2 0.1
3 0 0 1
Calculer la durée de vie moyenne d’une pièce se trouvant initialement en bonne condition ?
Réponse
La durée de vie moyenne d’une pièce est quantité de la solution du système :
1 0.7 0.2 0.3 0.2 1 …... 1
| |
| 1 0.5 0.3 | 0.5 0.7 1 …... 2
On a :
61
Chapitre 05 Chaînes de Markov
5.9 Exercices
Exercice N° 1 (fiabilité de deux éléments en parallèle)
Soit un dispositif technique comprenant deux éléments montés en parallèle et fonctionnant
indépendamment l’un de l’autre. Chaque élément a une fiabilité égale à au cours d’une journée (c'est-à-
dire. qu’il a une probabilité de 1 de tomber en panne). Il n’y a pas de possibilité de réparation. Si
è
est le nombre d’éléments en panne au début de la journée.
Exercice N° 2
Soit la Chaîne de Markov définie par son graphe de transition :
1. Dans le graphe de transition de la Chaîne de Markov, une des probabilités a été remplacée par .
Quelle est la valeur de ?
2. Donner la matrice de transition de cette Chaîne de Markov ?
3. Si l’état initial est 1, 0, 0 , donner les probabilités de présence dans chaque état au pas
1 et au pas 2 ?
4. Si elle existe, calculer la distribution stationnaire de cette Chaîne de Markov ?
5. Calculer le nombre de pas moyen pour aller pour la première fois dans l’état 3 ?
Exercice N° 3
Les météorologistes d’un pays ont établi un tableau qui donne la probabilité du temps du lendemain
en fonction de la météo du jour.
météo du
lendemain beau couvert pluie orageux
météo du jour
beau 0.7 0.2 0.0 0.1
couvert 0.2 0.4 0.0
pluie 0.6 0.0 0.4
orageux 0.6 0.0 0.3
62
Chapitre 05 Chaînes de Markov
Exercice N° 4
Un fumeur décide d’arrêter de fumer. Le premier jour suivant cette décision (jour 0), il ne fume
pas. On suppose que la probabilité qu’il fume le jour 1 s’il n’a pas fumé le jour est , et que la
probabilité qu’il ne fume pas le jour 1 s’il a fumé le jour est , Avec : 0 , 1.
1. Expliquer pourquoi on peut modéliser le système par une Chaîne de Markov à temps discret ?
2. Commenter la modélisation de ce problème par une Chaîne de Markov; donner son graphe et sa
matrice de transition ?
3. Calculer la probabilité qu’il ne fume pas les jours 3 et 4 ?
4. Si elle existe, calculer la distribution stationnaire de cette Chaîne de Markov ?
63
Bibliographie
Bibliographie
[AFCET 77] Association française de cybernétique économique et technique, "Modélisation et
maîtrise des systèmes techniques économiques sociaux", Paris, Ed. Hommes et
Techniques, 1977.
[Aissani 07] A. Aissani, "Modélisation et Simulation", Office des Publications Universitaires,
USTHB Alger, Algérie, 2007.
[Alur 94] R. Alur et D. Dill, "A theory of automata", Theoretical Computer Science Journal,
Vol. 2 N°126, 1994.
[Arnold 92] A. Arnold, "Systèmes de transitions finis et sémantique des processus
communicants", Editions Masson, 1992.
[Bank 98] J. Bank, "Handbook of Simulation: Principles, Methodology, Advances,
Applications, and Practice" , Wiley Interscience, 1998.
[Berglund 14] N. Berglund, "Processus aléatoires et applications", Master 2 Pro de Mathématiques,
Université d’Orléans, 2014.
[Bouleau 88] N. Bouleau, "Processus Stochastiques et Applications", Hermann, Paris, 1988.
[Brams 83] G.W. Brams, "Réseaux de Petri : Théorie et pratique", Masson, 1983.
[David 92] R. David et H. Alla, "Du Grafcet aux reseaux de Petri", Hermes, 1992.
[Feller 60] W. Feller, "An introduction to probability theory and its applications", John Wiley
and sons, 1960.
[Guikhman 80] I. I. Guikhman et A. V. Skorokhod, "Introduction à la Théorie des Processus
Aléatoires", Editions MIR, Moscou, 1980.
[Harel 87] D. Harel, "Statecharts : a Visual Formalism for Complex Systems", Science of
Computer Programming, 1987.
[Hopcroft 01] J. Hopcroft, R. Motwani et J. Ullman, "Introduction to Automata Theory, Languages
and Computation", 2nd edition, Addison-Wesley, 2001.
64