Chapitre 3 - grainiabid
Dans ce modèle, quand l'enseignant se connecte sur Internet, ou corrige les ...
Les réseaux de Petri permettent ainsi de décrire les relations temporelles ...
part of the document
Chapitre 3 La simulation informatique
3.1 Introduction
Lidée de la simulation informatique (computer simulation) est venue de lutilisation des ordinateurs pour imiter, simuler, les opérations des différents types de facilités ou processus du monde réel. Ces processus sont appelés des systèmes, et dans un but de les étudier scientifiquement nous faisons souvent des formulations sur leur fonctionnement. Ces formulations, qui prennent souvent la forme mathématique où relations logiques, constituent un modèle qui est utilisé pour essayer de comprendre comment le système correspondant se comporte.
Si les relations qui composent le modèle sont simples, il est possible dutiliser des méthodes mathématiques pour obtenir des informations exactes sur des questions qui nous intéressent. Cest ce quon appelle une solution analytique. Cependant, la vaste majorité des systèmes du monde réel sont si complexes pour permettre davoir des modèles réalistes afin de les évaluer analytiquement, et ces modèles doivent être étudiés par le moyen de la simulation.
3.2 Les systèmes, les modèles et la simulation
Un système est défini comme étant une collection dentités, par exemple des personnes où des machines, qui agissent et interagissent ensemble dans un but daccomplir une fin logique. Cette définition a été propose par [Schmidt et Taylor 1970] :
A system is defined to be a collection of entities, e.g. people and machines, that act and interact together toward the accomplishment of some logical end.
En pratique, ce qui forme un système dépend des objectifs de létude visée. Lensemble des entités qui composent le système dans une étude peut être un sous ensemble de tout le système dans une autre étude. La description des entités, des attributs et des activités en un point de temps qui est nécessaire pour prédire le comportement futur dun système définit létat du système et les variables correspondantes sont appelées les variables détat. Les variables détat relient le passé au futur via le présent.
Le choix du nombre et la nature des variables d état sont dictées par les exigences et les besoins de létude en cause. Ce choix impose de faire une abstraction sur les composants du système et prendre en considération ceux qui aident et donnent une forte sémantique lors de lanalyse des résultats de létude.
Dans létude des systèmes on a tendance à les classer en deux catégories : les systèmes discrets et les systèmes continus. Un système discret est celui dont les variables détat changent en des points de temps séparés. Un système continu est celui dont les variables détat changent continuellement. En réalité peu de systèmes sont totalement discrets ou totalement continus, mais le fait quun type de changement prédomine on classifie le système soit quil est continu où discret.
En des moments du cycle de vie dun grand nombre de systèmes, il y a un besoin de les étudier pour se faire une idée sur leur comportement et cela dans un objectif de les évaluer. La figure 3.1 indique les différentes manières détudier un système.
SHAPE \* MERGEFORMAT
Ainsi, létude dun système se fait au moyen dun modèle qui est une représentation imaginaire ou abstraite, et dont lévolution dans une perspective préalablement définie, représente celles de certains aspects du système en cause. Un même système peut être représenté par plusieurs modèles, selon laspect concerné par létude ; et la valeur du modèle se juge par la contribution quil apporte à lexplication du système tout en restant dans le contexte de létude.
Les modèles sont utilisés dans la simulation dans le but dobserver les comportements futurs et éventuels dun système. En dautres termes, un modèle de simulation a pour fonction de déduire le comportement dans des situations non encore observées, à partir dune bonne connaissance du système ou de certains de ses aspects. De cette présentation, il ressort que létude des systèmes en se basant sur un modèle et en utilisant lordinateur forme ce quon appelle une simulation informatique (a computer simulation).
La littérature propose plusieurs définitions de la simulation informatique. Ces définitions sont parfois proches, équivalentes ou complémentaires [Pritsker 1986] [Fishwick 1997]. Selon [Shannon 1975] par exemple, elle est définie comme étant le processus de conceptualisation dun modèle informatique dun système (où dun processus) et la conduite dexpériences avec ce modèle dans un but soit de comprendre le comportement du système où dévaluer les différentes stratégies de fonctionnement du système.
Simulation is the process of designing a computerized model of a system (or a process) and conducting experiments with this model for the purpose either of understanding the behaviour of the system or evaluating various strategies for the operation of the system.
Du fait de la nécessité davoir un bon modèle pour mener à bien une simulation, il est suggéré de classifier les modèles de simulation selon les dimensions suivantes [Law et al. 1991] :
Modèle de simulation statique : un modèle de simulation statique est une représentation du système en un point du temps, où simplement celui qui peut être utilisé pour représenter un système où le temps ne joue aucun rôle.
Modèle de simulation dynamique : un modèle de simulation dynamique représente un système quand il évolue dans le temps.
Modèle de simulation déterministe : un modèle de simulation déterministe ne contient aucun composant aléatoire.
Modèle de simulation stochastique : un modèle de simulation stochastique contient des composants aléatoires.
Modèle de simulation continu : un modèle de simulation représente un système continu.
Modèle de simulation discret : un modèle de simulation discret représente un système discret.
De cette taxonomie et de ce dimensionnement de la modélisation, la simulation est généralement catégorisée comme suit :
La simulation continue, où le système se présente sous la forme d' HYPERLINK "http://fr.wikipedia.org/wiki/%C3%89quation_diff%C3%A9rentielle" \o "Équation différentielle" équations différentielles à résoudre. Elle permet de suppléer à la résolution HYPERLINK "http://fr.wikipedia.org/wiki/Fonction_analytique" \o "Fonction analytique" analytique quand celle-ci est impossible. Effectuée au départ sur des HYPERLINK "http://fr.wikipedia.org/wiki/Calculateur_analogique" \o "Calculateur analogique" calculateurs analogiques.
La simulation statistique où de Monte Carlo, où le système en cause présente des phénomènes stochastiques, c'est-à-dire on fait appel à des techniques probabilistes. Le nom de ces méthodes fait allusion aux HYPERLINK "http://fr.wikipedia.org/wiki/Jeu_de_hasard" \o "Jeu de hasard" jeux de hasard pratiqués à HYPERLINK "http://fr.wikipedia.org/wiki/Monte-Carlo" \o "Monte-Carlo" Monte-Carlo.
La simulation par agents, où la simulation est segmentée en différentes entités qui interagissent entre elles. Elle est surtout utilisée dans les simulations économiques et sociales, où chaque agent représente un individu ou un groupe d'individus. Par nature, son fonctionnement est asynchrone.
La simulation discrète dans laquelle le système est soumis à une succession d'évènements qui le modifient. Ces simulations ont vocation à appliquer des principes simples à des systèmes de grande taille.
Dans cette thèse, on sintéresse aux modèles de simulation discrets doù le type de la simulation discrète par évènements (Discrete-Event Simulation).
3.3 Processus de simulation
Quand on fait appel à la simulation pour étudier un problème, les quatre phases suivantes sont appliquées [Shannon 1975] :
Phase dobservation et didentification du système : elle permet détablir une certaine relation entre un observateur et un système du monde réel.
Phase de formulation où de modélisation : elle est généralement formulée de deux étapes. La première étape est celle de la représentation du système, ou des images symboliques dobjets, des rapports et des modèles de comportement sont liées dans des structures, des hypothèses et des concepts. La deuxième étape est celle de la conception du modèle. Dans le contexte de la simulation informatique, [Zeigler et al. 1979] considère un modèle comme étant un ensemble dinstructions pour générer un comportement (séquences temporisées de valeurs de variables). Dici létape de conception prend en charge la transformation des images symboliques et les hypothèses sur les objets en des structures de données et des procédures de calcul exprimées par une certaine forme informatique.
Conduite dexpériences : dans le contexte informatique cest lexécution de lensemble des instructions (computer simulation program) représentant le système en cause.
Phase danalyse : durant cette phase on essai de comprendre le comportement généré par les expériences en évaluant les différentes stratégies pour le fonctionnement du système en cause.
De manière relativement simplifiée, le processus de simulation peut être présenté selon la figure 3.2. La modélisation fournit un modèle symbolique (modèle de connaissance), la programmation fournit un modèle informatique (modèle daction), la simulation ou lexpérimentation fournit les résultats obtenus du modèle, lanalyse des résultats permet dévaluer le processus à modéliser.
SHAPE \* MERGEFORMAT
3.4 Gestion du temps et des évènements de la simulation discrète
3.4.1 Introduction
En simulation discrète, nous ne savons pas à lavance la valeur dincrémentation du temps; au contraire cette valeur est déterminée individuellement pour chaque pas de temps, en se basant sur les actions qui composent le modèle. Les évènements sont déterminés par la séquence de chaque entité à commencer et à terminer une activité. Les actions globales de la simulation sont la conquête dans ces séquences à avoir ces entités concourantes. La discrétisation du temps est dici implicite dans le système lui-même, plutôt que dêtre imposer par le simulateur. Le programme de simulation dici sintéresse aux évènements intercalés entre les activités, sans pour autant se soucier des périodes de laction active, menant à une inversion distinctive du souci.
Lutilisation du mot évènement, dans ce contexte, est une spécialisation de sa sémantique de tous les jours, qui veut dire simplement larrivée et la production (happening) de quelque chose signifiante. Son origine étymologique du mot latin est ex-venire (va venir ; yet to come). Pour nos objectifs, on sépare les idées des arrivées instantanées de celles qui ont une durée significative ; pour les premières se sont des évènements discrets, ou tout simplement des évènements, et les dernières sont les activités. Ce choix nous permet de considérer lavancement du temps dun évènement à un autre. [Zeigler 1976] décrit lavancement du temps dans les systèmes à évènements discrets comme un moyen de liaison des frontières dun intervalle de temps entre un évènement et un autre en supposant que rien ne se passe dans cet intervalle.
3.4.2 Mécanismes de gestion du temps de la simulation discrète
Dans un modèle de simulation, la variable temps est capitale, car elle intervient pour synchroniser les éléments constitutifs du modèle, et pour ordonner les activités.
Due à la nature dynamique des modèles de simulation discrète, nous devons avoir le moyen de connaître le temps actuel de simulation et avoir aussi un mécanisme davancement du temps quand la simulation avance c'est-à-dire quand les évènements apparaissent.
En simulation lunité de représentation du temps varie de la petite unité qui pourrait être la seconde, la minute, lheure, le jour, le mois, lannée et même le siècle. La nature du système sous létude impose le choix de lunité du temps. Traditionnellement, La variable temps où lhorloge de simulation peut être gérée de deux façons :
Méthode de lhorloge où à incrément fixe : lhorloge de la simulation (cest-à-dire la variable qui enregistre le temps courant de la simulation) progresse dune unité de temps fixe ("t), tout au long de la simulation, pour explorer la liste des évènements et déterminer si l un d eux doit avoir lieu à cette date. Le choix de cette unité ("t) est très important pour une bonne simulation. En général cette méthode est utilisée dans les systèmes déterministes. Figure 3.3 est une illustration de cette méthode.
Méthode de léchéancier où à incrément variable: dans cette méthode (Figure 3.4) les seuls temps accessibles sont les dates dévènements. Lhorloge de simulation est avancée du temps (T) au temps (T + ´t) si un où plusieurs évènements sont programmés à cette date (T + ´t). Ainsi seuls les évènements sont représentés explicitement ; et les temps morts sont traités comme inactifs.
SHAPE \* MERGEFORMAT
SHAPE \* MERGEFORMAT
3.4.3 Structure dune notification dun évènement futur
Dans une simulation discrète, les évènements proviennent dun ensemble de notifications dévènements futurs qui est géré par lexécutif de la simulation. Une notification dun évènement futur peut être vue comme une entrée à un calendrier détenant un rendez vous futur. Quand la date et lheure du rendez vous arrive, celui-ci aura lieu. Naturellement, quand un rendez vous ait lieu on lenlève du calendrier.
Les opérations sur le calendrier ont des analogies directes dans les opérations de lexécutif de la simulation. Au lieu dun calendrier, nous appelons la collection des notifications des évènements futurs lensemble des évènements futurs. Les notifications dévènements futurs sont recherchées dans lensemble des évènements futurs selon lordre croissant du temps : la base sur laquelle lhorloge de simulation avance. Par contre, les notifications nouvelles dévènements futurs, provenant des actions effectuées lors de loccurrence dun évènement quelconque, sont insérées dans lensemble des évènements futurs (Figure 3.5). Les opérations effectuées sur cet ensemble sont appelées programmation dévènements futurs.
Dici il y a deux informations essentielles quon doit associer à une notification dévènement futur :
Le temps doccurrence de lévènement,
Un pointeur aux actions de lévènement de ce temps.
Le parcours des temps doccurrence des évènements futurs dans le modèle pour choisir le minimum sera certainement suffisant pour exécuter la fonction dactivation dévènements dans la séquence temporelle correcte. Mais comme le nombre de notifications futures devient grand, cette méthode deviendra consommatrice de temps dexécution et inefficace. La première amélioration, évitant le parcours de toutes les occurrences futures, est de lier les notifications des évènements futurs dans lordre chronologique de leur apparition.
Si lordonnancement entre les notifications des évènements futurs est fait dune manière ascendante comme indiqué dans la figure 3.6, un parcours simple à partir du début de la liste (la notification la plus proche) permettra facilement dinsérer une nouvelle notification dévènement futur juste avant la première notification qui a juste un temps supérieur à elle.
SHAPE \* MERGEFORMAT
3.5 Outils de modélisation de la simulation discrète
3.5.1 Introduction
La plupart des applications de la simulation discrète sont des systèmes de files dattente dune manière ou dune autre. La file dattente est généralement constituée dun ensemble dentités qui attendent la satisfaction et la vérification de certaines conditions, ou la disponibilité de certaines ressources, pour commencer et participer dans des activités. Une file dattente peut être un ensemble de tâches dun système manufacturier attendant dêtre traitées par une ou plusieurs machines, comme elle peut être un ensemble de clients dans un supermarché attendant leur tour pour être servi. On a coutume, dans la littérature, dappeler ces types de files dattente par Le modèle clients/serveur ou le modèle producteur/consommateur. La figure 3.7 est une schématisation de ces modèles.
Arrivées
La modélisation des systèmes dans un but de simulation nécessite la prise en compte des systèmes à ressources multiples. Ces structures complexes imposent létude et la prise en charge des réseaux de files dattente, plutôt quà celle des files dattente simples. De ce fait, un ensemble doutils de modélisation est, généralement, utilisé pour générer le modèle de simulation du système en cause. Les outils et les dispositifs de modélisation quon introduit ici, vu leur importance à la simulation, sont les diagrammes de cycles dactivités et les réseaux de Petri.
3.5.2 Les diagrammes de cycles dactivités
Les ACD (Activity Cycle Diagrams) dus à [Tocher 1962] sont un moyen de modélisation des interactions des entités et sont particulièrement utiles pour les systèmes à files dattente complexes. Leur popularité revient aux travaux de [Hills 1971] qui les a associés au système de simulation à trois phases qui sera développé dans le prochain chapitre. Les ACD font utilisation de trois éléments graphiques, comme cest indiqué dans la figure 3.8. Un grand cercle représente une file dattente ou un état oisif dune classe dentité, un rectangle représente une activité ou un état actif et un petit cercle représente une ressource.
SHAPE \* MERGEFORMAT
Le diagramme en lui-même est un schéma du cycle de vie de chaque classe dentités et montre graphiquement leurs interactions. Chaque classe dentités a un cycle de vie formé dun ensemble détats. Les entités passent dun état à un autre au fur et à mesure que leur durée de vie sécoule.
Un état actif englobe souvent la coopération des différentes classes dentités. La durée de létat actif est souvent connue à lavance et déterminée par léchantillonnage à partir dune distribution de probabilité si le modèle de simulation est stochastique.
En utilisant les ACD, modélisons les activités quotidiennes dun enseignant universitaire qui passe sa journée entre les locaux pédagogiques (Amphi, salle de cours, salle de TD, salle de TP ou laboratoire) et son bureau faisant des consultations avec ses étudiants ou dans certaines situations dans une réunion (un comité pédagogique, un conseil scientifique, préparation de manifestations scientifiques etc.).
Pour un objectif visé, on distingue ici 3 classes dentités ;
un enseignant faisant ses tâches ;
locaux pédagogiques ;
une salle de réunion.
Nous modélisons les activités de chacune de ces classes.
i) Lenseignant :
Lenseignant a trois activités essentielles (En cours, En consultation, En Réunion). Quand lenseignant nest pas dans une de ces activités on peut le considérer comme il est dans un état oisif. Dici le diagramme de cycle dactivités de lenseignant est comme prend la forme de la figure 3.9.
ii) Les locaux pédagogiques:
Un local peut être dans une des deux activités (En Cours, En entretien) sinon il est dans un état libre (figure 3.10).
iii) La salle de réunion :
La salle de réunion, comme le montre la figure 3.11, peut être dans une des deux activités (En réunion, En nettoyage) sinon elle est dans un état oisif (fermée).
SHAPE \* MERGEFORMAT
Les trois cycles peuvent être combinés pour former le diagramme des cycles dactivités de ce modèle comme il est illustré dans la figure 3.12.
SHAPE \* MERGEFORMAT
Dans ce modèle, quand lenseignant se connecte sur Internet, ou corrige les examens ou prépare son cours est considéré comme une oisiveté ou une activité non concernée par la modélisation.
La logique de modélisation en utilisant les ACD impose le respect de certaines règles de base où une file dattente contient un seul type dentités, une activité est toujours précédée et suivie dune file dattente (la même ou une autre) et tout le cycle de vie dune entité doit être fermé.
3.5.3 Les diagrammes de cycles dactivités étendus
Pour plus defficacité dans la modélisation des systèmes discrets, [Pooley 1991a, 1991b] et [Pooley et al. 1991] ont proposé des extensions aux ACD qui couvrent certains aspects manquants au niveau des ACD simples. Cette extension est connue sous le nom des X-ACD [Extended Activity Cycle Diagrams). Les X-ACD ont principalement amené une amélioration dans la spécification des producteurs dentités entrants dans le système en fonction dune loi et les consommateurs dentités sortantes du système. En plus une distinction est faite entre les files dattentes selon que lattente est conditionnelle ou non conditionnelle. La figure 3.13 résume ces extensions.
SHAPE \* MERGEFORMAT
Comme illustration de lutilisation des X-ACD dans un objectif de simulation, considérons un système dutilité particulière à notre santé qui est celui dun hôpital. Nous nous intéressons dans ce système aux classes de patients qui sont admis pour suivre un traitement particulier et aux patients qui nécessitent une opération chirurgicale ou une intervention particulière.
Dans ce système, on peut constater quil y a deux classes dentités (Patient 1 et Patient 2) et une entité particulière modélisant le bloc opératoire. La figure 3.14 représente Le modèle X-ACD de lhôpital.
SHAPE \* MERGEFORMAT
Laccès à lhospitalisation nest conditionné que par la disponibilité dun lit au sens médical. Il n y a pas de manques de ressources humaines spécialisées. Une hospitalisation de traitement dure une période selon le cas.
Dans une hospitalisation qui nécessite une intervention chirurgicale, le patient doit passer une période avant lopération à faire un bilan et il doit rester aussi une durée post-opération de convalescence.
3.5.4 Les réseaux de Petri
En premier lieu, notons que le formalisme des réseaux de Petri [Petri 1962] est un cas particulier du formalisme général des systèmes de transitions. Lexemple le plus connu de systèmes de transitions est celui des automates à états finis où lon donne explicitement tous les états, et tous les changements possibles détats. Par rapport aux automates finis, les réseaux de Petri introduisent la possibilité davoir un ensemble infini détats, et une notion de localité : un système est considéré comme composé dun ensemble de sites. La possibilité deffectuer une action dépend de conditions locales à certains sites, et cette action modifie uniquement létat de certains sites.
Le parallélisme, c'est-à-dire le fait que plusieurs actions soient effectuées simultanément, est possible quand ces actions dépendent de sites différents, ou bien que les conditions sur un site commun à certaines de ces actions ne sont pas incompatibles. Les réseaux de Petri permettent ainsi de décrire les relations temporelles existant entre les différentes actions. Un système est vu au travers de ces relations, et les propriétés du système prouvables à partir du réseau qui le représente proviendront de ces relations.
Structurellement, un réseau de Petri est donné par des objets de quatre types :
- Les places qui correspondent à des sites.
- Le marquage dune place (représentant létat dun site) est un nombre pouvant indiquer la satisfaction de conditions, ou plus généralement le nombre de ressources présentes dans le site.
- Les transitions qui correspondent aux actions.
- La fonction de transition donne pour chaque transition (action) les conditions qui doivent être remplies pour chacun des sites afin que cette action soit possible. Elle indique aussi leffet de chaque transition sur létat des sites.
Par exemple, dans un atelier dassemblage de téléviseurs, une action consiste à placer le châssis au tube cathodique et visser avec quatre vis à laide dun tournevis pneumatique. Un site contient les tubes cathodiques, le deuxième contient les châssis, le troisième contient les vis, le quatrième lélément assemblé. Lun des aspects les plus agréables des réseaux de Petri est quil est extrêmement aisé de les visualiser.
En effet, un réseau de Petri utilise la forme géométrique du cercle pour représenter un site avec une appellation de place et le point pour exprimer les éléments du site avec une appellation de jeton. Le trait représente une action appelée une transition. Les places et les transitions sont reliées par des arcs étiquetés entrants et sortants. Létiquette sur un arc entrant à une transition provenant dune place, qui est généralement un nombre naturel, exprime le nombre de ressources nécessaires à laction. Létiquette sur un arc sortant dune transition vers une place, qui est généralement un nombre naturel, exprime leffet du passage de la transition sur la structure du système. Enfin, un état initial du réseau de Petri est exprimé par un certain nombre initial de jetons dans chaque site.
Latelier décrit plus haut sera modélisé par le réseau de Petri de la figure 3.15.
SHAPE \* MERGEFORMAT
3.5.5 Les réseaux de Petri temporisés
La nature dynamique des modèles de simulation discrète impose lidée quon doit avoir un mécanisme qui se charge et contrôle la variable temps qui est primordiale. Le temps est introduit dans les réseaux de Petri pour modéliser la réalité comme un ensemble dactivités en interaction prenant en compte leur temps de début et leur temps de terminaison. Le temps peut être introduit dans les réseaux selon différentes approches [Hillion 1989]. On peut lassocier aux places, aux jetons et aux transitions.
De cela, on peut avoir des places temporisées, des jetons temporisés et des transitions temporisées. Le temps peut être associé aux places où les jetons générés, dans une place de sortie dune transition, deviennent disponibles pour franchir une transition seulement après lécoulement dun certain délai; le délai est un attribut de la place. Par exemple dans la figure 3.16, la place temporisée P1 contient deux jetons prêts à tirer à partir, peut être, des moments différents et elle contient aussi trois autres jetons qui attendent lécoulement de certains délais peut être différents.
SHAPE \* MERGEFORMAT
Quand le temps est associé aux jetons, ces derniers prennent des durées comme des étiquettes ou des timbres (Time stamp) comme il est indiqué dans la figure 3.17. Ces temps indiquent les dates de disponibilité de tirer une transition ; ces dates peuvent être incrémentés en cas de besoin.
SHAPE \* MERGEFORMAT
Dans le cas où le temps est associé avec les transitions (Figure 3.18), on peut assumer quune transition correspond à une activité dont le temps de son début correspond à la date de début de franchissement de la transition et sa fin correspond à la fin du franchissement de la transition.
SHAPE \* MERGEFORMAT
Quand le temps est associé aux transitions, [Azeme et al. 1997] ont proposé plusieurs stratégies de franchissement :
Franchissement à trois phases :
Les jetons sont consommés des places en entrée quand la transition est prête à être franchie.
Ecoulement du délai.
Des jetons sont générés dans les places de sortie.
Franchissement atomique :
Les jetons restent dans places dentrée jusquà écoulement du délai de la transition ; ils sont consommés des places dentrée et générés dans des places de sortie une fois la transition tire.
3.6 Outils statistiques de la simulation
3.6.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 dentré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.
Lutilisation dune distribution de probabilité pour représenter le temps de service implique que le temps tiré pour un service particulier a deux propriétés. Premièrement, le temps tiré se trouve à lintérieur des valeurs de cette distribution. Deuxièmement, la probabilité dapparition de certaines valeurs particulières est guidée par la loi de cette distribution. Dici, il est connu à lavance lintervalle du temps de service mais ce qui nest pas connu exactement cest quand est ce que ces valeurs apparaissent. Ces phénomènes sont généralement représentés par une variable aléatoire épuisant ses valeurs à partir dun générateur de nombres aléatoires.
3.6.2 Les générateurs de nombres aléatoires
Selon lencyclopédie libre WIKIPEDIA [www.fr.wikipedia.org], un générateur de nombres aléatoires est un algorithme qui génère une séquence de nombres présentant certaines propriétés du hasard. Cependant, les sorties d'un tel générateur ne sont pas entièrement aléatoires. Elles s'approchent seulement des propriétés idéales des sources complètement aléatoires.
La raison pour laquelle on se contente dun rendu pseudo-aléatoire est : dune part quil est difficile dobtenir de « vrais » nombres aléatoires et que, dans certaines situations, il est possible dutiliser des nombres pseudo-aléatoires, en lieu et place de vrais nombres aléatoires ; dautre part, que 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.
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. La même graine donnera toujours la même suite de nombres. D'autre part, la suite se reproduit au bout d'un nombre de valeurs appelé période. Cette période doit être la plus grande possible.
Si la fonction f a été correctement choisie, chaque nombre a la même probabilité d'apparaître. On dit que les nombres aléatoires suivent une loi uniforme.
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 :
Sj+1 = modp(Sj x a + b, p) c'est-à-dire
Sj+1 = Le reste de [(Sj x a + b)/ p)
Les nombres fournis par le générateur étant les restes de (Sj x a + b)/ p. On peut en effet calculer aisément la période d'un tel générateur.
Examinons les cas réellement utiles : p = 2m et p premier. L'intérêt du premier cas est évident car l'arithmétique modulaire se simplifie considérablement lorsque 2m est égal à la taille du "mot machine" ou est une puissance de celui-ci.
Prenant comme exemple (simpliste) p = 2m = 8 et a= 5, b= 1 on obtient :
INCLUDEPICTURE "http://193.48.37.48/~douillet/preprint/simul/img73.gif" \* MERGEFORMATINET
Prenant comme exemple (simpliste) p = 7 a= 5, b= 0 on obtient :
INCLUDEPICTURE "http://193.48.37.48/~douillet/preprint/simul/img77.gif" \* MERGEFORMATINET
Un exemple "réel" de ce procédé est le générateur lgm, proposé par [Lewis et al. 1973] en 1969. On part d'un nombre et l'on calcule ses successeurs par la récurrence Sj+1 = modp(Sj x a + b, p) où le nombre p = 2147483647, le nombre a= 16807 et b= 0. On obtient l'algorithme (figure 2.19) dans lequel lgm_seed contient les instanciations successives de l'entier Sj.
LGM := proc PR( ) global lgm_seed
lgm_seed := modp(lgm_seed X 16807, 214783647)
return evalf(lgm_seed % 214783647)
Figure 3. 19 Générateur lgm(Lewis, Goodman, Miller, 1969)
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].
3.6.3 Quelques générateurs pseudo-aléatoires
Dans cette section on présente quelques pseudo-aléatoires générateurs congruentiels utilisés sur des gammes dordinateurs ou par des logiciels connus. Le générateur congruentiel linéaire (linear congruentiel generator) est initialement proposé par [Lehmer 1948].
Le pseudo générateur est de la fome :
Yn+1 = [ayn + b] (mod m) et un seed y0 et on lexprime par LCG(m,a,b, y0)
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é utilsé 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)
3. 7 Résumé du chapitre
Les concepts fondamentaux de la modélisation et la simulation discrète ont été présentés. La simulation est le processus dimiter le comportement dun système réel à travers la réalisation dun modèle représentatif pour lexploiter dans différentes expériences. Un ensemble doutils de conceptualisation des éléments composants le système sous létude est nécessaire. Ces outils sintéressent à la représentation des entités, des attributs, des évènements, des activités et des processus de ces systèmes.
La modélisation se fait en tenant compte des aspects déterministes et/ou stochastiques du système. Le fait que la simulation utilise les données du présent pour comprendre les données futures du système ; un ensemble doutils statistiques, à lexemple des générateurs des nombres pseudo aléatoires, est nécessaire.
Chapitre 4 Paradigmes des approches de modélisation de la
simulation discrète
4.1 Introduction
Pour écrire un programme simulant les interactions entre les entités dun système il faut, comme suggéré dans le chapitre précédent, identifier lensemble des classes dentités et dresser leur cycle de vie dune manière ou dune autre en utilisant un outil de modélisation. Cependant, quand cette phase est achevée, la question qui se pose cest comment transformer les interactions entre les entités en une forme convenable et transformable en un programme informatique.
La simulation discrète, comme son nom lindique, est celle qui emploie la technique de gestion de temps à incrément variable surtout, ou encore méthode de léchéancier pour contrôler lexécution de la simulation.
Pour incarner et refléter exactement la dynamique dun système sous une forme programmable, le modèle prêt à la programmation doit se concevoir en se basant sur une des quatre approches :
lapproche par évènements ;
lapproche par activités ;
lapproche par interaction de processus ;
lapproche à trois phases.
Il est conseillé de ne jamais saventurer à écrire des simulations discrètes sans le positionnement dans une de ces quatre approches [Pidd 84] et sans considérer le fait quun système de simulation est une hiérarchie à trois niveaux en interaction:
le modèle de simulation résultat de une des quatre approches ;
lexécutif de simulation chargé du contrôle du modèle ;
la bibliothèque doutils statistiques nécessaires au modèle.
Notons que la logique opérationnelle de lexécutif de simulation et celle du modèle suit la logique de lapproche de modélisation choisie.
4.2 Lapproche par évènements
4.2.1 Introduction
Cette approche est implémentée dans le langage SIMSCRIPT [Markowitz et al. 1963). Elle est très répandue au USA quen Europe. Le souci majeur dans une simulation est lordonnancement des évènements suivant leur temps dapparition pour refléter lordonnancement des évènements dans le système réel. Il est tout à fait clair que la structure de notifications dévènements futurs forme un support très approprié pour prendre en charge ce souci dans les différentes approches avec plus au moins des petits amendements pour chacune dentre elles.
4.2.2 Méthodologie des routines dévènements
La méthodologie est basée sur lidentification des composants des modules dévènements. Lobservation du système en termes dentités et de ressources, est la première étape. Puis une liste dévènements qui peuvent apparaître est dressée. Chaque évènement est analysé individuellement en tenant compte de linteraction particulière entre lentité et la ressource. Cette description prend la forme dune procédure, appelée dans beaucoup de situations routine dévènement Event Routine, qui sera déclenchée une fois lévènement correspondant se produit ; c'est-à-dire quand une notification dévènement correspondant à ce type dévènement est rencontrée dans lensemble des évènements futurs.
Considérons le cas dun modèle client/serveur ou producteur consommateur ou les clients arrivent dune manière aléatoire à la file dattente et sont servis sur le principe du premier arrivée premier servi (First In First Out). Dans ce cas, il y a deux changements détat du système :
larrivée dun nouveau client ou une production ;
la fin de service et départ du client ou fin de consommation.
Dans le cas ou il n y a pas de différences entre les clients, les figures 4.1 et 4.2 sont une représentation algorithmique de ces deux évènements, respectivement, en supposant que les temps des inter-arrivées et les temps de service ou de consommation sont générés à partir de procédures déchantillonnage en utilisant un générateur pseudo aléatoire. Les évènements eux même sont programmés en interaction avec lexécutif de simulation.
Les actions de Event Routine Producteur consistent à générer le temps de la prochaine arrivée afin de lui créer une notification dévènement futur dans léchéancier. Par la suite, une vérification du consommateur sil est libre est faite. Dans le cas positif, le serveur est mis dans un état engagé puis une génération du temps de fin de consommation est faite pour créer la notification de lévènement fin de consommation. Dans le cas contraire, la file dattente est augmentée dun client.
Event Routine Producteur
BEGIN
Générer temps de la prochaine production
Programmer la prochaine production
IF (consommateur libre) THEN
Engager consommateur
Générer temps de consommation
Programmer fin de consommation
ELSE
Augmenter file dattente de un client.
ENDIF
END Event Routine Producteur
Figure 4.1 Lévènement Producteur
Les actions de Event Routine Consommateur Consistent à libérer le client. Puis voir sil y a au moins un client dans la file dattente. Dans le cas affirmatif, on enlève un client de la file dattente et on génère son temps de service ou de consommation afin de créer une notification de lévènement futur fin de consommation. Dans le cas contraire, on libère le consommateur ou le serveur.
Event Routine Consommateur
BEGIN
Libérer le client
IF (file dattente non vide) THEN
Diminuer file dattente de un client
Générer temps de consommation
Programmer fin de consommation
ELSE
Libérer consommateur
ENDIF
END Event Routine Consommateur
Figure 4.2 Lévènement Consommateur
4.2.3 Lexécutif basé évènements à deux phases
Une fois le modèle de simulation établi, on le soumet à un exécutif qui se charge de son exécution. Dans la première phase, laction principale queffectue un exécutif basé évènements est lavancement du temps de lhorloge de simulation pour le faire correspondre avec la plus proche date de lévènement ou des évènements se trouvant dans la liste de notification des évènements futurs. Une fois ce réglage de lhorloge de simulation est terminé, la liste des évènements notifiés à cette date est formulée. Dans la deuxième phase, lexécutif parcourt cette liste appelée liste des évènements courants et les exécute lun après lautre. Le pseudo code de la figure 4.3 est une illustration de lensemble des opérations queffectue lexécutif basé évènements.
BEGIN
WHILE (non fin de simulation) DO
Avancer le temps et régler lhorloge de simulation
Former la liste des évènements courants
Exécuter les évènements courants
ENDDO
Figure 4.3 Lexécutif basé évènement ou à deux phases
On peut remarquer dans cette approche, que les évènements arrivant à une même date peuvent être dépendants entre eux du fait quil n y a pas de distinction entre leur nature. Lordre dexécution de ces évènements parallèles nécessite un entretien particulier de la part du modeleur afin que la logique de son modèle ne dévie pas de celle du système réel. Chose qui peut devenir très compliqué dans le cas où le modèle est formé dun grand nombre dévènements avec une forte dépendance entre eux. Laffectation de priorité est appliquée dans plusieurs situations.
4.3 Lapproche orientée activités ou à trois phases
4.3.1 Introduction
Dune manière générale, lapproche basée activités est très utilisée en Grande Bretagne depuis son implémentation dans le langage de programmation CSL [Buxton et al. 1962], puis après les améliorations apportées par [Tocher 1963] elle est devenue connue sous le nom de lapproche à trois phases. Lavantage de cette approche cest quelle sappuie sur les diagrammes de cycles dactivités qui sont un outil très répandu dans la modélisation dun système. En plus dans cette approche, une séparation nette est faite dans la nature de lactivité avec celle de lévènement.
4.3.2 Méthodologie des activités B et des activités C
Dans cette approche les interactions entre les entités du système sont vues comme des participations dans des activités qui, pour certaines, durent une certaine période de temps. Les activités sont de deux catégories :
Les activités B [Bound activities] : Ce sont les opérations et actions qui apparaissent sans aucune condition.
Les activités C [Conditional activities] : Ce sont les opérations et actions dont leur exécution dépend soit de la coopération des différentes classes dentités ou de la satisfaction de certaines conditions.
Pour enlever les ambiguïtés, de compréhension et de séparation du concept évènement du concept activité, qui existaient ; [Crookes 1981] a suggéré de considérer une activité conditionnelle comme un ensemble dactions qui se passent dans une durée de temps avec une date de début et une date de fin. La date ou le point de début de lactivité correspond à un évènement conditionnel C (Conditional event : C-Event) et la date où le point de la fin de lactivité correspond à un évènement certain B (Bound Event : B-Event). En plus, on considère tous les processus darrivées de type producteur comme étant aussi des évènements certains.
De cette approche, le modèle Client/Serveur (Producteur/Consommateur) devient lensemble des évènements suivants :
Deux évènements certains (B events) :
Arrivée dun client ou Production.
Départ du client et fin de service ou fin de consommation.
Un évènement conditionnel (C events) :
Début de service ou début de consommation.
Les actions de lévènement B-Event Producteur, indiquées dans la figure 4.4, consistent à augmenter la taille de la file et générer le temps de la prochaine arrivée ou production afin de créer une notification à cet évènement.
B-Event Producteur
BEGIN
Augmenter file dattente de un client.
Générer temps de la prochaine production
Programmer la prochaine production
END B-Event Producteur
Figure 4.4 Lévènement B Producteur
Les actions de lévènement B-Event Fin-de-consommation, indiquées dans la figure 4.5, consistent à libérer le client et le consommateur.
B-Event Fin-de-consommation
BEGIN
Libérer le client
Libérer le consommateur
END B-Event Fin-de-consommation
Figure 4.5 Lévènement B Fin-de-consommation
Les actions de lévènement C-Event Début-de-consommation, indiquées dans la figure 4.6, consistent à tester si la file dattente nest pas vide et le consommateur est libre. Dans le cas positif, on enlève un client de la file, on engage le consommateur et on génère le temps de consommation afin de créer une notification dévènement de fin de consommation.
C-Event Début-de-consommation
BEGIN
IF (file dattente non vide) THEN
IF (consommateur libre) THEN
Diminuer file dattente dun client
Engager consommateur
Générer temps de consommation
Programmer fin de consommation
ENDIF
ENDIF
END C-Event Début-de-consommation
Figure 4.6 Lévènement début-de-consommation
4.3.3 Lexécutif basé activités ou à trois phases
Une fois le modèle de simulation établi, on le soumet à un exécutif qui se charge de son exécution. Dans la première phase, laction principale queffectue un exécutif basé activités est lavancement du temps de lhorloge de simulation pour le faire correspondre avec la plus proche date de lévènement B ou des évènements B se trouvant dans la liste de notification des évènements futurs. Une fois ce réglage de lhorloge de simulation est terminé, la liste des évènements B notifiés à cette date est formulée. Dans la deuxième phase, lexécutif parcourt cette liste appelée liste des évènements B courants et les exécute lun après lautre. Dans la troisième phase, lexécutif tente lexécution de tous les évènements conditionnels C du fait quil se peut quil y a eu libération de certaines entités et ressources nécessaires pour commencer certaines activités. Le pseudo code de la figure 4.7 est une illustration de lensemble des opérations queffectue lexécutif basé évènements.
BEGIN
WHILE (non fin de simulation) DO
Avancer le temps et régler lhorloge de simulation
Former la liste des évènements B courants
Exécuter les évènements B courants
FOR (i=1 à nombre dévènements C) DO
Exécuter évènement C-evenement(i)
ENDFOR
ENDDO
Figure 4.7 Lexécutif basé activités ou à trois phases
On peut remarquer dans cette approche, que les seuls évènements programmables avec une notification dévènement futur sont les évènements certains B qui sont totalement indépendants entre eux. Lordre dexécution des évènements B parallèles arrivant à une même date ninfluent pas sur la logique du modèle. Cependant, après lexécution de lensemble des évènements B pouvant apparaître à une date t, il faut tenter lexécution de tous les évènements conditionnels C.
4.4 Lapproche orientée processus
4.4.1 Introduction
Lapproche basée processus est une combinaison de lapproche basée évènements et lapproche basée activités. Au lieu dobserver le système comme étant un ensemble dévènements ou un ensemble dactivités, cette approche le considère comme un ensemble de processus. Cette approche est au cur du langage de programmation SIMULA [Hills 73] et du langage de simulation GPSS [Greenberg 1972].
4.4.2 Méthodologie des processus
En simulation, un processus est regardé comme étant une séquence dopérations à travers lesquelles une entité doit passer durant son cycle de vie dans le système. Il est important de noter que dans lapproche par processus on fait une classification entre les classes dentités. On appelle entité permanente celle qui dure tout le long de la simulation depuis sa création ; et on appelle entité temporaire celle qui se crée et participe dans des activités pendant une période donnée et quitte le système avant la fin de la simulation.
Considérons une nouvelle fois le système Client/Serveur ou Producteur/Consommateur qui peut être modélisé par le processus suivant :
Le Client arrive ou Production arrive;
attend jusquà tête de la file dattente;
avance vers le serveur ou le Consommateur pour être servi ou consommé;
reste avec le serveur ou le consommateur jusquà fin de service ou fin de consommation.
quitte le système.
Dici on déduit quun processus passe par des états actifs intercalés par des états de suspension. Typiquement, les suspensions ou les attentes de processus sont, dans certaines situations, conditionnelles ; par exemple lattente de la disponibilité dune ressource. Dans dautres situations, les attentes sont inconditionnelles ; par exemple lattente de lécoulement dun délai. Chaque processus dans ce cas possède des points de suspension et des points de réactivation.
Limplémentation informatique dun processus impose une description de son fonctionnement en termes de blocs qui peuvent être vus comme des évènements certains ou conditionnels ou une combinaison des deux. Lactivation et la réactivation se font à partir du début dun bloc. La suspension conditionnelle ou inconditionnelle prend effet juste après la fin dun bloc quelconque. La figure 4.8 indique une forme dimplémentation de processus.
PROCESS
BEGIN
CASE (évènement courant) OF
BEGINCASE
1: < Premier bloc>;
2: < Deuxième bloc> ;
:
Etc.
ENDCASE
ENDPROCESS
Figure 4.8 Forme dimplémentation dun processus
Du modèle Client/Serveur ou Producteur/Consommateur, on peut considérer que le processus client se réactive quand il arrive, quand il commence à être servi et quand il termine davoir être servi.
De ce fait trois points dactivation ou de réactivation seront considérés. Le premier bloc génère le temps de la prochaine arrivée en créant la notification de lévènement correspondant et teste sil y a des clients en attente ou le serveur est occupé. Si oui, le client processus sinsère dans la file dattente. Le second bloc correspond à lengagement du serveur et la programmation de la notification dévènement fin de service. Le troisième bloc est le point de réactivation où on libère le serveur et le client. Le pseudo code de ce processus peut prendre la forme de la figure 4.9.
PROCESS Client
BEGIN
Générer temps de larrivée prochaine
Programmer arrivée prochaine
IF ((file dattente non vide) OR (serveur occupé)) THEN
Augmenter file dattente dun client
Attendre jusquà arrivée à tête de file et serveur libre
ENDIF
Engager serveur et diminuer file dun client
Générer temps de service
Programmer fin de service
Libérer serveur
Libérer client
ENDPROCESS client
Figure 4.9 Processus dun client
4.4.3 Lexécutif basé processus
Le mécanisme de fonctionnement de lexécutif de simulation basé processus est plus compliqué que celui de lapproche orientée évènements ou lapproche orientée activités, parce quil contrôle lallocation des ressources aux entités. Dici, la tâche difficile des changements dans les files dattente et les ressources est transférée à lexécutif.
La stratégie de cet exécutif est basée sur lutilisation et la maintenance de deux listes ordonnées. La première liste est un calendrier des notifications des évènements courants dont leur temps correspondant au temps de simulation actuel qui nest que le temps de réactivation de certains processus suspendus en raison dattentes inconditionnelles. La deuxième liste est une chaîne des entités suspendues. Cette dernière est une structure contenant toutes les entités qui ont été suspendues quelque part durant leur processus ou qui sont en attentes conditionnelles. La chaîne est ordonnée selon le temps des arrivées.
Dici, lexécutif de simulation basé processus fonctionne selon un principe presque similaire à lexécutif à trois phases : avancement du temps, exécution des évènements courants et la vérification dexécution des processus suspendus. La figure 4.10 est une illustration des actions de cet exécutif.
BEGIN
WHILE (non fin de simulation) DO
Avancer le temps et régler lhorloge de simulation
Former la liste des évènements courants
Exécuter les évènements courants
FOREACH (processus suspendu) DO
Tenter sa réactivation
ENDFOREACH
ENDDO
Figure 4.10 Lexécutif basé processus
On peut remarquer dans cette approche, que les seuls évènements programmables avec une notification dévènement futur sont les évènements dus à une suspension inconditionnelle. En plus, les tentatives de réactivation de tous les processus suspendus peuvent ne pas être positives; ce qui peut rendre la chaîne des processus suspendus très grande.
4.5 Résumé du chapitre
Les trois approches importantes de modélisation et simulation traitées dans ce chapitre offrent un ensemble de stratégies différentes pour produire des modèles de simulation valides. Chacune de ses stratégies possède des avantages et des inconvénients. La comparaison peut se faire sur la base des avantages offerts au niveau de la modélisation et la programmation des modèles. Lapproche basée évènements ou à deux phase exige du modeleur un effort considérable pour anticiper des solutions à lavance au cas de production dun ensemble dévènements au même temps et qui sont en forte dépendance entre eux. Son avantage majeur réside dans la disponibilité de langages de simulation spécialisés utilisant cette approche à lexemple de SIMSCRIPT.
Lapproche basée activité ou à trois phases offre un cadre adéquat de production dun modèle surtout si on se base sur les diagrammes des cycles dactivités où il est facile darriver à un modèle composé dun ensemble dunités structurées qui sont les évènements certains B et les évènements conditionnels C. Cette structuration a son effet positif sur la maintenance du modèle de simulation.
Cependant, du point de vue programmation ; elle est coûteuse en terme de temps dexécution au niveau de sa troisième phase où on est obligé de parcourir tous les évènements conditionnels C pour tester leur condition pour une possibilité dexécution. En plus, elle noffre pas des langages de simulation spécialisés au sens propre du mot.
Dun point de vue conceptuel, lapproche basée processus offre un moyen facile de regarder les entités du système comme des processus réels. Son deuxième avantage réside, aussi, dans la disponibilité de langages spécialisés de simulation à lexemple de GPSS et SIMULA. Cependant, elle risque de consommer un temps dexécution énorme au cas où les processus représentant le système passent par un grand nombre détats de suspension. Elle est généralement évitée dans le cas de non disponibilité dun langage spécialisé du fait de la complication à programmer son exécutif.
La simulation informatique Par Boubetra Abdelhak -Département dinformatique -CUBBA
______________________________________________________________________________
PAGE
PAGE 62
Expérimentation avec le système réel
Expérimentation avec un modèle
Modèle
physique
Modèle mathématique
Solution analytique
Simulation
Figure 3.1 Façons détude des systèmes ; Source : [Law et al. 1991]
Processus à modéliser
Modèle
symbolique
Modèle
informatique
Résultats
obtenus du
modèle
Modélisation
Programmation
Expérimentation
Analyse
Figure 3.2 Processus de simulation
Début
Initialiser lhorloge de simulation
Fin de simulation ?
Changer l état du système si un évènement a eu lieu
Incrémenter l horloge d un temps "t
Fin
oui
non
Figure 3.3 : Méthode de l horloge
Début
Initialiser l horloge de simulation
Fin de simulation
?
Fin
Avancer l horloge au temps du prochain ensemble dévènements
Changer létat du système en fonction de cet ensemble dévènements
Figure 3.4 : Méthode de léchéancier
oui
non
Activations futures
Ensemble dévènements futurs
Notifications dévènements futurs
Modèle
Actions dévènements
Insertion dévènements programmés
Recherche du prochain évènement
Activation courante
Figure 3.5 Relation entre lensemble des évènements futurs et lactivation du modèle.
Temps Actions
doccurrence = 11 de lévènement
Temps Actions
doccurrence = 17 de lévènement
Temps Actions
doccurrence = 23 de lévènement
Figure 3.6. Liste chaînée des notifications dévènements futurs.
Début
Départs
Serveur ou Consommateur
Clients ou Producteur
Figure 3.7 Le modèle clients/serveur ou producteur/consommateur
Etat oisif
Etat actif
Figure 3.8 Symboles de diagramme de cycle dactivités
Ressource
En cours
En consultation
'(:*+[
6
O
R
ñ
ñò&'(*+ÿ¶¾Ìÿ
¯ÂÄá£ÂÃÄ=®ùOöêöâÚÓâÚÓȼȰӬÓâ}âÓ¬ÓÚÓÚÓ°ÓÚÓuÓuÓÚÓuÓuÓuÓhor÷hA©6(jhuzhA©CJUaJmHnHuhuzhA©CJaJjhuzhA©CJUaJhA©hor÷hA©6mH sH hA©hA©5mH sH hA©hA©mH sH hor÷hA©hor÷hA©5hA©CJaJh°*ÄhA©5CJ aJ hA©5CJ aJ .'(:_
*+[R
ñ
ò*
+ôôôååÝÝλÎÎÎÎôôôôôôôô$HÁdà]H^Áa$gdA©$dà`a$gdA©dhgdA©$dà`a$gdA©
$dha$gdA©7áâ0iýýý+ÿ
Ä£ùO&stuvwxyz
¢ªÈÑÙòãò×òãÉ×ò×ò×ò×Áº¯ò¤º¤òº ºòº¯òã¯ÁºÁ{i{i{"h5hA©56CJaJmH sH h5hA©5CJaJmH sH h
{dhA©CJaJh