previous up next contents index
Previous: 3. Exemples de simulations Up: 3. Exemples de simulations Next: 3.2 Simulation d'une file   Contents   Index

Subsections

3.1 Observateurs simples, observateurs par lots

3.1.1 Résultats bruts

Dans sa généralité, le déroulement d'une simulation utilise les générateurs décrits au chapitre précédent pour instancier les "événements élémentaires" d'un système, puis fait évoluer le système en fonction de ces instanciations. Il existe alors plusieurs façons de procéder pour extraire l'information utile (qui consiste le plus souvent en un petit nombre d'encadrements portant sur les grandeurs intéressantes).

On peut essayer d'extraire au vol cette information, ce qui permet un évident gain de place (et de temps), ou bien enregistrer tout et ne traiter les données qu'une fois la simulation terminée. De telles traces peuvent prendre une place considérable, mais il est clair que la compréhension d'un "comportement inattendu" (dû à une erreur, de calcul ou de modélisation) nécessite de disposer d'une plus grande masse de données que pour un calcul direct.

De toutes façons, l'utilisation de générateurs pseudo-aléatoires permet une réexécution à l'identique d'une simulation : il suffira d'extraire au deuxième passage les informations qui manquaient à la compréhension du phénomène.

Un programme de simulation doit donc distinguer clairement entre la routine principale, qui se contente de simuler, et un ensemble de routines d'observation appelées par la routine principale. Cette remarque s'applique d'autant plus qu'il est intéressant de découper une simulation de taille maths en une suite de maths lots, constitués chacun d'une simulation de taille maths (avec maths) : il faut donc disposer d'une hiérarchie d'observateurs, les uns étant des observateurs par lot, et les autres des observateurs globaux.

Avant de décrire le fonctionnement détaillé de ces routines d'observation, commençons par décrire les résultats que nous en attendons. Le tableau ci-dessous résume les résultats d'une simulation d'une file d'attente, composée de maths événements, découpée en maths lots de maths événements, au cours de laquelle nous avons observé maths variables (inter-arrivées, service résiduel, service de l'éventuel deuxième client, longueur de la file).



   arriv   resid   serv2   queue 
n_tot 1600 1222 947 1600
moy_t 13.449 10.201 9.9659 3.2863
var_t 192.38 99.239 100.06 11.617
sum_j 20 20 20 20
moy_n 80 61.10 47.35 80
var_n 0 76.590 188.83 0
moy_x 13.449 10.031 9.7916 3.2863
var_x 1.6213 3.9498 2.8267 4.0023
moy_y 193.26 94.777 96.131 7.9135
var_y 3034.2 1919.4 1945.0 42.991


Pour chaque variable observée, maths est le nombre total d'événements favorables. Ainsi, à chacune des maths observations, la file d'attente avait une longueur, tandis qu'un service résiduel (c'est à dire une file non vide) n'a été observé que maths fois. Les quantités maths et maths sont, à l'issue de la simulation, les meilleurs estimateurs possible de maths et maths, respectivement moyenne et variance de la variable maths étudiée.

La quantité maths compte le nombre de blocs dans lesquels la variable a été observée au moins deux fois, permettant le calcul de la variance d'échantillon pour le lot considéré. Les quantités maths et maths sont les estimations obtenues pour les paramètres de dispersion de la variable "nombre d'événements par lot".

Les quantités maths et maths sont les estimations obtenues pour les paramètres de dispersion de la variable "moyenne par lot". La quantité maths permet d'estimer la variance de maths en tant qu'estimateur de maths. La quantité maths est un estimateur de maths, mais d'une qualité inférieure à maths.

Les quantités maths et maths sont les estimations obtenues pour les paramètres de dispersion de la variable "variance d'échantillon par lot". La quantité maths permet d'estimer la variance de maths en tant qu'estimateur de maths. La quantité maths est un estimateur de maths, mais d'une qualité inférieure à maths.

3.1.2 Observateurs élémentaires

Décrivons maintenant les routines d'observation. Si nous voulons évaluer une variable apparaissant à chaque observation, la procédure OBSV4 (algorithme 41) permet de cumuler les valeurs et leurs carrés. La moyenne et l'écart-type seront obtenus en fin de cycle sachant qu'il est survenu maths événements par lot. Lorsque l'objectif est d'évaluer une variable conditionnelle (comme un service résiduel, qui n'a lieu que si la file est non vide), il faut disposer d'un booléen permettant de décider si le cumul doit avoir lieu, et il faut en outre enregistrer le nombre d'événements (compteur maths de OBS4).


maths

Lorsque l'objectif est de dresser l'histogramme des valeurs prises par une variable, le choix des points de subdivision est évidemment décisif. Dans l'algorithme 42, nous supposons que les valeurs se répartissent dans l'intervalle maths, une valeur maths servant à coder l'absence d'observation. Les valeurs supérieures à maths sont regroupées en une seule classe. En outre un cumul global, avant troncature, est effectué de façon à disposer d'une estimation non perturbée de la moyenne et de l'écart-type de la variable.


maths

Bien entendu, les accumulateurs doivent être initialisés en début de chaque lot (algorithme 43).


maths

3.1.3 Observateurs par lots

A la fin de chaque lot, les paramètres de dispersion pour le lot sont calculés, fournissant des estimateurs maths pour les variables "nombre par lot", "moyenne par lot" et "variance par lot". Afin d'obtenir une estimation des paramètres de dispersion de ces nouvelles variables, de nouveaux cumuls doivent être gérés à la fin de chaque lot. Dans l'algorithme 44, le paramètre maths est le nombre de variables à gérer, tandis que les quantités maths contiennent les cumuls globaux concernant la variable maths étudiée, tandis que les quantités maths contiennent les cumuls relatifs aux variables "estimateurs par lot".


maths

Bien entendu, les accumulateurs doivent être initialisés en début de simulation (algorithme 45).


maths

En fin de simulation, un ultime traitement donne les moyennes et les variances des observateurs par lots et des observateurs globaux (algorithme 50). Pour des raisons de lisibilité, nous avons choisi de border le tableau par une colonne maths donnant les légendes, et le tableau lui même est accédé par des indices nominaux comme maths plutôt que par des numéros (maths) anonymes.


previous up next contents index
Previous: 3. Exemples de simulations Up: 3. Exemples de simulations Next: 3.2 Simulation d'une file   Contents   Index


douillet@ensait.fr
2005-01-04