Modèles Discrets et Réseaux de Petri
Modèles Discrets et Réseaux de Petri
Présenté par :
Dr. Bendiaf M.
Maître de conférences - classe B -
Département d’Informatique.
Université de Bordj Bou Arréridj
[email protected]
2
CHAPITRE 2 :
Les modèles discrets
3
1. Classification des modèles
2. Rôles des modèles
3. Qualités d’un modèle de simulation
4. Outils de modélisation
4
5
Parfois, il est impossible d’étudier le système directement du fait qu’il soit
inaccessible, ou trop coûteux pour qu’on puisse faire dessus des
expériences directement, du fait qu’il change trop rapidement ou trop
lentement ; dans ces cas, on considère un système de manière globale, par
abstraction de certaines contraintes, nous pouvons associer à un système
complexe une représentation simplifiée de sa structure et de son
fonctionnement, cette représentation plus simple à décrire et à utiliser
s’appelle un modèle.
6
Le modèle conceptuel est une représentation (mathématiques logique,
verbale, etc.) du système réel (ou retenu pour une étude particulière), il
est obtenu dans une phase d'analyse et de modélisation. Le modèle
programmé est la mise en œuvre du modèle conceptuel sur un
calculateur, il est obtenu dans une phase de programmation et de mise en
œuvre. Les enseignements sur le système réel sont obtenus à la suite
d'expérimentations sur le modèle programmé dans une phase
d'expérimentation.
8
Pour un système donné, il est possible de construire plusieurs types de
modèles selon les objectifs poursuivis ou les contraintes à satisfaire.
9
Modèle descriptif :
Un modèle décrit un système par son état et par son évolution prévisible. Selon
le poids accordé à l’un ou à l’autre, le modèle est descriptif ou prédictif.
Le modèle descriptif est une sorte de photographie de la réalité.
Celle-ci est décrite dans l’état où elle se présente à une période donnée. On
suppose que les éléments retenus n’évoluent que très lentement. Lorsque la
réalité aura évolué rendant son modèle caduc, on procèdera à la mise à jour du
premier modèle.
Modèle prédictif:
Un modèle prédictif s’attache à décrire l’évolution d’un phénomène de manière à
pouvoir prédire un état futur à partir d’un état initial connu.
10
Parmi les modèles analogiques, on peut citer par exemple, une
maquette d’avion permettant d’évaluer l’écoulement de l’air sur les
ailes.
11
- Les modèles physiques sont ceux dans lesquels le système réel est
représenté par une réplique ou une maquette, à une échelle différente et
éventuellement à l'aide de matériaux différents. Ils sont utilisés à des
fins d'entraînement : simulateurs de vol, de conduite, maquettes de
véhicules pour des essais aérodynamiques,...
14
- les modèles continus, plus adaptés aux flux continus, qui utilisent des
équations mathématiques pour prendre en compte les changements
d'état qui s'effectuent de façon continue au cours du temps. Les valeurs
des variables d'état sont recalculées régulièrement selon un pas d'horloge
d'après ces équations. Exemple : un réacteur chimique.
- les modèles combinés (ou mixtes), qui intègrent les deux aspects.
Exemple : industrie métallurgique ou agro-alimentaire.
15
La méthodologie présentée par [QUERE 97] décompose le processus de
modélisation en quatre phases consécutives et éventuellement itératives :
(dans un formalisme
mathématique ou de
programmation)
17
(Exemple)
18
Modèle d’action (exemples)
Les modèles nous aident à visualiser un système tel qu’il est ou tel
que nous voudrions qu’il soit.
21
Un modèle doit être :
– Le plus simple et le plus clair possible
– Valide (et validable !)
– Le plus fidèle possible par rapport au besoin de la simulation
– Le plus efficace par rapport au but poursuivi
22
1- Les Réseaux de Petri (Définition)
23
3- Marquage
Chaque place contient un nombre entier positif ou nul de marques ou
jetons. Le marquage M définit l'état du système décrit par le réseau à un
instant donné. C'est un vecteur colonne de dimension le nombre de places
dans le réseau. Le iéme élément du vecteur correspond au nombre de
jetons contenus dans la place Pi .
24
4- Franchissement d'une transition
Une transition est franchissable lorsque toutes les places qui lui sont
en amont (ou toutes les places d'entrée de la transition) contiennent
au moins un jeton.
Le franchissement de T1 consiste
à enlever un jeton de P1 et un
jeton de P2 et à rajouter un jeton
dans P3 et un jeton dans P4.
Le franchissement de T1 consiste à
enlever un jeton de P1 et à ajouter
un jeton à chacune des places P2,
P3 et P4.
26
Une transition franchissable n'est pas forcément immédiatement franchie.
Une transition sans place d'entrée est toujours franchissable : c'est une
transition source.
Exemple 7: transition source
et 3 avec et
28
6- Marquages accessibles
L'ensemble des marquages accessibles est l'ensemble des marquages Mi qui
peuvent être atteint par le franchissement d'une séquence S à partir du
marquage initial M0.
On le note *M0.
avec ; ;
et
29
7- Graphe de marquages
On utilise le graphe de marquages quand le nombre de marquages accessibles
est fini.
Chacune des transitions T1, T2, T3, T4 et T5 possède une seule place
d'entrée et une seule place de sortie.
2- Graphe d'événement
Un RdP est un graphe d'événement si et seulement si chaque place possède
exactement une seule transition d'entrée et une seule transition de sortie.
Exemple 16 :
[P1 , {T1,T2}]
4- RdP à choix libre
Un RdP est à choix libre est un réseau dans lequel pour tout conflit [Pi ,
{T1,T2,…,Tn}] aucune des transitions T1,T2,…,Tn ne possède aucune autre
place d’entrée que Pi .
Exemple 17 :
5- RdP simple
Un Réseau de Pétri simple est un RdP dans lequel chaque transition ne peut
être concernée que par un conflit au plus.
Exemple 18 :
6- RdP pur
Un RdP 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.
Exemple 19 :
Exemple 21 :
-1 1
1 -1
Pré (Pi, Tj) = Post (Pi, Tj)= C=Post-Pré =
1 -1
1 -1
1 -1
les propriétés dépendantes, c'est à dire les propriétés qui sont dépendantes du
marquage initial Mo.
conflit effectif
Un conflit effectif pour un marquage Mo sur une place Pi est un conflit structurel
tel que le nombre de jetons dans Pi est inférieur strictement au nombre de
transitions franchissables en aval de Pi.
On note ce conflit effectif: <Pi, {Tj, Tk...}, Mo>.
Place bornée
Soit un réseau R et un marquage Mo. Une place Pj du réseau marqué (R,Mo) est
k-bornée si pour tout marquage Mi accessible depuis Mo , Mi (Pj) <= k.
RdP borné
Un RdP marqué est borné si toutes ses places sont bornées.
Dans le cas contraire la place Pj est dite non bornée. Il s’en suit que le RdP est
qualifié de non borné.
Exemple : Soit une machine dont l'état est soit en marche soit en arrêt (son état
initial). Proposez un RdP qui compte le nombre de passage de cet état dans la
valeur marche. Est-il borné ?
Réponse : La place P3 n'est pas bornée.
Exemple :
Le premier réseau est 3-borné puisque toutes ses places sont 3-bornées. De plus, la
séquence t1t1t2t1 est répétitive et nous ramène toujours sur le marquage initial.
Le second réseau n’est pas borné puisque la place P2 ne l’est pas. Par contre sa
place P1 est 1-bornée.
Transition vivante
Une transition Tj est vivante pour un marquage initial Mo, si pour tout marquage
accessible, il existe une séquence de franchissement qui contienne Tj à partir de
ce marquage accessible.
Cela signifie que quelle que soit l'évolution, il subsistera toujours une
possibilité de franchir Tj.
Transition quasi-vivante
Une transition Tj est quasi-vivante pour un marquage initial Mo si il
existe une séquence de franchissement qui contienne Tj à partir de Mo :
Réponse :
La transition T1 est quasi-vivante, non vivante et
T2 est vivante, et donc quasi-vivante.
RdP vivant
un RdP est vivant pour un marquage initial Mo si toutes ses
transitions sont vivantes pour Mo.
RdP quasi-vivant
un RdP est quasi-vivant pour un marquage initial Mo si toutes ses
transitions sont quasi-vivantes pour Mo.
Etat d'accueil
un RdP dispose d'un état d'accueil Ma pour un marquage initial Mo si :
RdP #1 RdP #2
48
1- Exemples
et :
- Serveurs informatiques
-Télécommunications
(téléphonie, call-centers)
- Trafic aérien
- …..
50
Une file d'attente est caractérisée par :
µ
• Un flot d'arrivées λ
• Un mécanisme de service "Salle" d'attente
• Une salle d'attente
• Une discipline de service mécanisme de
service
– Flot d'arrivée
• suite stochastique
• Tn: est le temps du neme client
• sn: la charge apportée par le neme client, service nécessaire.
• Les clients arrivent successivement, un à la fois, il n'y a pas
d'accumulation: 0<T1<T2<T3<......<Tn<Tn+1<...
– Mécanisme de service
• nombre de serveurs et leur vitesse, σn unités de temps par
service.
51
– Capacité de la file d'attente:
• nombre de places possibles : limité ou illimité.
• Si capacité limitée: les clients supplémentaires sont perdus ou rejoignent une
autre file d'attente.
• Le nombre de clients dans le système est différent du nombre de clients dans
la file d'attente
– Discipline de service: règle d'ordonnancement des clients au service.
• FIFO: first in first out (exemple file d’attente à la cantine, 1er arrivé 1er servie)
• LIFO : Last in first out (ex : l’ascenseur : dernier rentré, premier sortie)
• PS : processor sharing, un serveur donne à chaque client en attente une
'tranche' de service.
• ALEA un serveur libre choisit un client au hasard dans la file
• Priorité: on ajoute une suite {Un}, n appartient à N+, au flot des arrivées où
Un est une variable aléatoire prenant ses valeurs dans l'ensemble des classes
de priorités P. Un=i, signifie que le neme client, arrivant au temps Tn est de la
classe i.
• Priorité préemptive: le programme préemptif passe en premier devant tous
les autres et est servi en premier (ex: système préemptif peut en permanence
décider d'interrompre un processus, principalement si celui-ci échoue et
provoque l'instabilité du système.)
52
Loi de Poisson
Cette loi est souvent utilisée dans la modélisation des files d'attente : nombre de
clients en attente a une caisse de supermarché, nombre de conducteurs passes a
un péage pendant une période de temps. . .
Exemple
A un guichet d'une banque, on sait que le nombre moyen de clients par heure est de 12. On
suppose que le nombre de clients par heure est distribue selon une loi de Poisson.
Quelle est la probabilité pour qu'en une heure, le guichetier s'occupe de plus de 15 clients ?
k!
53
Les notations de Kendall (1953)
File (système) d’attente décrite par :
A/B/m/N/S
où :
A est la distribution des arrivées : stochastique ou déterministe ;
{M = markovien ; D=déterministe (temps d’inter-arrivées ou de
service constant) ; G=générale (quelconque)}
B est la distribution des temps de service : idem ;
m est le nombre de serveurs ;
N est le nombre maximum de clients dans le système ;
S est la discipline de service (FIFO, LIFO, RAND. . .)
Exemple:
M/M/1 Modèle le plus classique
M/M/5/20
M/M/5/infini/LIFO
54
Exemple: Application aux réseaux de communications et aux systèmes
informatiques:
• clients = tâches, programmes, paquets, …
• temps de service = durée de tâche
• serveur = processeur
• salle d'attente = tampon
4- Loi de little
• HYPOTHESES
Lorsqu'un client, ayant terminé son service, quitte le système, il laisse,
en moyenne, derrière lui, un nombre de clients égal à E(k).
Ce client a trouvé en arrivant E(k) clients déjà présents et a passé dans
le système un temps, E(T).
Nous supposons que:
• Le nombre moyen des arrivées est égal au nombre moyen des
départs du système.
• La longueur moyenne de la file lors des arrivées est égale à la
longueur moyenne de la file lors des départs
55
la loi de Little dit
que le nombre moyen de clients dans un système stable est égal à leur
fréquence moyenne d'arrivée multipliée par leur temps moyen passé
dans le système :
Ls = nombre espéré de clients dans le système (à un instant quelconque dans le long terme)
Lq = nombre espéré de clients dans la file d'attente (à un instant quelconque dans le long terme)
Ws = temps espéré passé par chaque client dans le système (dans le long terme)
Wq = temps espéré passé par chaque client dans la file d'attente (dans le long terme).
La loi de Little est valide sous des hypothèses très générales et sous une
interprétation très large du mot « système ». En particulier, elle reste valide lorsque
la file d'attente elle-même est interprétée comme un système:
56
• VALIDITE
Régime permanent
Les formules de Little sont valides pour les files
G/G/S. Elles ont un caractère très général. En
effet, il n' y a aucune restriction quant à :
la loi d'arrivée, la loi des services, le nombre de
serveurs.
Elles peuvent prendre en compte le cas où il
existe plusieurs classes de clients mais la
discipline de service doit être définie, nous avons
considéré la discipline FIFO.
57
Exemple
Le gestionnaire d'un petit atelier enregistre en moyenne 5 commandes par
jour. Les 6 ouvriers employés dans l’atelier sont très polyvalents, si bien que
chaque commande peut être réalisée par n’importe lequel d’entre eux.
Néanmoins, le gestionnaire est inquiet car il constate que les ouvriers sont
occupés en permanence et que son carnet de commandes contient, en
moyenne, une vingtaine de commandes en cours (enregistrées, mais non
satisfaites).
Pour mieux comprendre la situation, le gestionnaire aimerait estimer le temps
moyen consacré par les ouvriers à chaque commande. Il voudrait également
pouvoir annoncer à ses clients, au moment de la passation de commande, un
délai de livraison attendu.
58
On a: leff = 1000 et Lq = 8. Donc, par la loi de Little, Wq=8/1000 sec
: taux de traffic
: taux moyen d’arrivée des clients
: taux moyen de traitement, débit du serveur, taux de service du serveur
60
Condition de stabilité :
activité du serveur <1
Débit d’entrée < débit du serveur
Temps moyen inter-arrivée > temps de service moyen
61
Nombre moyen de clients dans le système, Ls
: taux de traffic
Ls: Nombre de client dans le système
Nombre moyen de clients dans la file, Lq
: Taux de traffic
Lq: Nombre moyen de client dans la file
Temps moyen, Ws, passé par un client dans le système
: taux de traffic
Ws: temps passé par un client dans le système
62
: taux moyen de traitement, débit du serveur, taux de service
Temps moyen, Wq, passé par un client dans la file d'attente
donc
63
6- File M/M/S
M/M/S = statistique du processus d’arrivée : markovien / statistique des
lois de service : markovien / S serveurs
(Condition de stabilité) λ
µ
: taux de traffic
S serveurs
: taux moyen d’arrivée des clients
: taux moyen de traitement, débit du serveur, taux de service du serveur
S : Nombre de serveurs
64
Nombre moyen de guichets, g, occupés :
µ
65
{g guichets occupés}
Nombre moyen de clients, (Lq) , dans la file :
* Il existe un file d'attente si k>S
k>s, k : nombre de clients, s nombre de serveurs
Lq
66
67
Un peu d'humour sur la théorie des files d'attentes
68
3-1 Introduction
La simulation discrète représente, dans plusieurs situations, une
expérimentation statistique contrôlée. Les modèles de simulation incluent
généralement des éléments stochastiques de nature. Par exemple, des
expériences sont conduites par des séquences d’entrée aléatoires, comme
le temps des arrivées à un système, et produisent des séquences de sortie
aléatoires, comme le temps de service.
69
La raison pour laquelle on se contente d’un rendu pseudo-aléatoire est :
il est difficile d’obtenir de « vrais » nombres aléatoires et que, dans
certaines situations, il est possible d’utiliser des nombres pseudo-
aléatoires, en lieu et place de vrais nombres aléatoires ;
ce sont des générateurs particulièrement adaptés à une implémentation
informatique, donc plus facilement et plus efficacement utilisables.
Générer des nombres aléatoires sur ordinateur revient à créer une suite d'entiers:
Sn+1 = f(Sn)
Où f est une fonction qui doit être choisie judicieusement pour que la
répartition des nombres Sn ne puisse pas être distinguée de ce que
donnerait le hasard. On parle alors de nombres pseudo aléatoires.
70
La suite peut fournir M nombres aléatoires dans l'intervalle [0, M-1].
M dépend du type des entiers :
entiers 16 bits : M = 216 = 65 536
entiers 32 bits : M = 232 = 4 294 967 296 (soit plus de 4 milliards de
nombres aléatoires)
La valeur de départ S0, appelée graine (seed), doit être fournie par
l'utilisateur.
71
Nous décrivons ici une des méthodes permettant de générer des
nombres aléatoires qui est celles des générateurs congruentiels,
c'est à dire définis par le choix de la valeur entière initiale S0 (le
"random seed") et par la récurrence on aura :
72
Prenant comme exemple (simpliste) p=2m= 8 et a= 5, b= 1 on obtient :
Si pour un intérêt plus particulier avec plus détail sur les générateurs
de nombres aléatoires, nous suggérons le site web
[www.random.org].
73
3-3 Quelques générateurs pseudo-aléatoires
La méthode de Von Neumann
En 1946, John von Neumann propose un générateur pseudo-aléatoire
connu sous le nom de la méthode middle-square (carré médian). Très
simple, elle consiste à prendre un nombre, à l’élever au carré et à prendre
les chiffres au milieu comme sortie. Celle-ci est utilisée comme graine pour
l’itération suivante.
Exemple: prenons le nombre 1111. Les étapes de l’algorithme sont:
1. 11112= 1234321
2. on récupère les chiffres du milieu: 3432. C’est la sortie du générateur.
3. 34322= 11778624
4. on récupère les chiffres du milieu: 7786, et ainsi de suite.
75
La valeur initiale z0 est appelée la graine (ou seed) de la séquence.
suite ui = zi /m ∈[0, 1] est la suite de nombres pseudo-aléatoires qui sont
renvoyé par le générateur LCG.
Si c = 0 le générateur est appelé générateur multiplicatif.
La séquence de nombres entiers zi prenne valeur entre 0 et m - 1; il s’ensuit
que si nous exécutons l’itération pour m étapes, au moins deux valeurs zi (et
donc deux valeurs ui ) seront identiques.
La séquence est donc périodique pour N > m avec une période m0 ≤ m. Si la
période est m0=m alors on dit que le générateur est à période maximale.
Une séquence périodique ne peut évidemment pas être une séquence
aléatoire. Toutefois, pour des applications où le nombre de ui, la périodicité
n’a aucun effet.
Il est possible montrer que seulement quelque ensemble de paramètres
permet la génération d’une séquence avec des bonnes propriétés statistiques.
Des choix communs pour les paramètre du LCG sont: a = 75 (=16807), c = 0 et
m = 231 -1 (=2147483647) Générateur LGM (Lewis, Goodman, Miller, 1969)
76
on présente quelques pseudo-aléatoires générateurs
congruentiels utilisés sur des gammes d’ordinateurs ou
par des logiciels connus.
LCG(m,a,b, y0)
77
ANSIC : est le générateur utilisé par le ANSIC rand()
fonction, version BSD .et proposé par [Park et al. 1988]
LCG(231,1103515245,12345,12345)
MINSTD: Ce générateur a été suggéré par [Lewis et al. 1969]
LCG(231- 1, 16807, 0, 1)
SIMSCRIPT: Ce générateur [Fishman et al 1982], [Fishman et
al 1986, Fishman 1996]] est implémenté dans le langage de
simulation SIMSCRIPT II.
LCG(231 - 1, 630360016, 0, 1)
BCSLIB: Ce générateur provient de [Knuth 67] et il a été
utilisé par BCSLIB (Boeing Computer Services).
LCG(235 , 515 , 7261067085,0)
APPLE : Ce générateur est implémenté sur les machines
Apple en se basant sur les travaux de [Jennergren 1983].
LCG(235 , 513 = 1220703125, 0,1)
78