Cours Simulation
Cours Simulation
abb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbbc
d Polycopié du Cours e
d e
d e
d e
d e
d e
Modélisation et Simulation
fgg
ggg
ggg
ggg
ggg
ggg
ggg
ggg
ggg
ggg
ggg
ggg
ggg
ggg
gggh
Préparé par :
Pr. CHERFAOUI Mouloud
Bibliographie 17
i
Chapitre 1
Simulation et génération des nombres
pseudo-aléatoires
Introduction
Lorsqu’une résolution mathématique exactes d’un problème n’est pas possible, on fait
appel aux méthodes d’approximation. Entre autres, figure la méthode de la simulation qui est
un outil puissant et idéal dans la majorité des sciences actuelles (Informatique, Physique, Chi-
mie, Télécommunications,...) en plus est un outil de résolution numérique et une discipline de
modélisation.
1.1 Simulation
Le terme ”Simulation” est dérivé du mot latin SIMULARE qui veut dire : copier, feindre,
faire paraı̂tre comme réelle une chose qui ne l’est pas. Nous conduit aussi vers le chemin qui
nous permet de déduire les caractéristiques du fonctionnement d’un système réel. En d’autre
terme, la simulation est l’étude du comportement d’un système dynamique à travers un modèle
(grâce à un modèle que l’on fait évoluer dans le temps), elle désigne un procédé selon lequel
on exécute un programme informatique sur ordinateur en vue de simuler un phénomène ou une
organisation particulière : Chaı̂ne de montage en industrie, trafic routier dans une agglomération,
bloc opératoire dans un hôpital, etc.
La simulation ne résout pas le problème posé en trouvant la solution, mais elle nous aide à
prendre parmi plusieurs solutions la meilleure d’entre elles.
La simulation a pour rôle d’imiter l’évolution d’un système dans le temps et calculer ensuite
ses caractéristiques. On a souvent recours à la simulation lorsque :
1. L’expérience sur le système est impossible ou dangereuse (exemple de réacteurs nucléaires).
2. Le système évolue rapidement de telle sorte qu’on ne peut pas l’observer avec précision
(exemple de réactions chimiques).
3. Le système évolue très lentement (exemple de simulation du climat à long terme).
4. L’expérience est coûteuse financièrement.
5. Le système est en phase de conception.
6. On veut valider des résultats analytiques.
1
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
1.1.1 Terminologies
Définition 1.1 Un système est un ensemble doté d’une structure, d’un groupe d’éléments et de
relations entre ceux-ci dans un environnement fermé. Il est affecté par les éventuels changements
de son environnement.
Dans le domaine de la simulation, plusieurs définitions ont été attribuées au concept
”Modèle”, en voici celle donnée par l’AFCET (Association Française pour la Cybernétique économique
et Technique)
Définition 1.2 ”Un modèle est un schéma, c’est-à-dire une description mentale (intériorisée), ou
figurée (diagramme, formules mathématiques, etc.) qui pour un champ de questions est pris comme
représentation abstraite d’une classe de phénomènes, plus ou moins habilement dégagés de leur
contextes par un observateur pour servir de support à l’investigation, et/ou la communication”.
Le modèle est une représentation simplifiée d’un système réel ou imaginé exprimer sous
forme verbale, graphique ou mathématique dans le but de l’étudier. Toutefois, il doit contenir assez
de détails pour tirer des conclusions valables sur le système réel.
Définition 1.3 Les variables d’état sont les informations nécessaires qui ont pour but de définir
ce qui est en train de se passer dans un système.
Définition 1.4 Les entités sont les éléments ou les objets du système qui subissent des opérations
et se déplacent en générale dans le système (message dans un réseau,...). Une entité peut être active
ou peut se résoudre d’une manière pacifique (passive), permanente ou temporaire.
Définition 1.5 Les ressources sont des éléments qui exécutent des opérations, et généralement
ne se déplacent pas dans le système (Machine, Unité Centrale,...). Mais on peut trouver des objets
qui peuvent exécuter une opération tout en se déplaçant à l’intérieur du système (une machine
transportant des palettes dans une usine, chariot transportant une pièce dans un atelier).
Définition 1.6 Les attributs sont des variables identification qui caractérisent les entités ou les
ressources. On distingue cependant deux types d’attributs :
1. Fixes : Contiennent les caractéristiques constantes de l’objet (durée de service, date d’ar-
rivée dans le système, ...).
2. Variables : Contiennent les caractéristiques changeantes de l’objet (état d’une ressource,
longueur de la file associée à une ressource,...).
Définition 1.7 L’activité est un processus qui provoque un changement dans l’état du système,
ce changement d’état est appelé événement. Les objets exécutent quelques opérations et dès que ces
dernières seront initiées (ou terminées) à chaque événement, elles seront appelées des activités.
Les activités utilisées dans la simulation à événement discret possèdent des durées.
Définition 1.8 L’événement est la réalisation instantanée qui peut changer l’état du système. On
distingue des événements internes au système (endogènes) et des événements externes (exogènes).
Définition 1.9 Un processus est le rassemblement d’un certain nombre d’événements dans lequel
ces derniers sont produits.
Définition 1.10 Un simulateur est un programme contenant l’algorithme utilisé pour simuler le
système étudié. Il est constitué d’un ensemble d’entités qui décrivent une composante du système
réel.
2
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
(A) (B)
Comparaisons Modélisation Analyse
Système Modèle Performance
Système Réel
Abstraction Modèle Résolution Résultats
Figure 1.1: (A) : Processus de validation et (B) : Processus d’analyse et interprétation des
résultats
3
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
4
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
On peut définir les conditions de régime permanent comme une situation dans laquelle le
résultat d’essais consécutifs ne varie pas significativement. Les modèles analytiques et la simulation
de Monté Carlo ont les mêmes problèmes, à savoir, la validité du modèle. Cependant, dans le cas
de la simulation de Monté Carlo, la taille de l’échantillon doit être assez grande pour faire décroı̂tre
la validité d’échantillonnage à un niveau acceptable. Les probabilités des événements doivent être
basées sur les jugements de personnes impliquées dans le projet, utilisées avec le jugement du
décideur.
où f est une fonction qui doit être choisie minutieusement et précisément, pour que la répartition
des nombres Jn se rapproche de ce que donnerait le hasard. C’est à partir de là que la notion
de nombres pseudo-aléatoires est apparue qui n’est autre qu’une suite de nombres aléatoires
générée par un algorithme déterministe.
Avec :
• m : module, m > 0.
• a : multiplicateur, 0 ≤ a < m
• c : l’incrément, 0 ≤ c < m.
Dans le cas où :
1. c=0 : le générateur congruentielle est dit linéaire.
2. c 6= 0 : le générateur congruentielle est dit mixte.
Propriétés et vocabulaire de la méthode congruentielle
• Xi < m.
• Le nombre maximum de valeurs possibles de la suite est m.
• Dès qu’un nombre est répété, toute la séquence recommence.
5
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
Théorème 1.1 Un générateur est de période maximum p = m si et seulement si les trois condi-
tions suivantes sont vérifiées :
• c et m n’ont pas de diviseur commun,
• a = 1 modulo g pour tous les nombres premiers g diviseurs de m (Pour rappel, a = i modulo j
si a peut s’exprimer comme a = i + kj où k est un entier positif ou nul).
Remarque 1.1 Pour obtenir des nombres pseudo aléatoires uniformément répartis sur [0,1], il
suffit de prendre :
xn
Un = . (1.3)
m
Il s’agit de procréer (engendrer) une variable aléatoire X de fonction de densité f (x), et de
fonction de répartition F(x), suivant une loi uniforme sur [0, 1] en se basant sur des techniques
connues dont certaines s’appliquent à la génération de variables pseudo-aléatoires de distributions
quelconques, tant dit que d’autres ne s’appliquent qu’aux distributions continues ou discrètes.
Parmi les principales techniques de génération de nombres pseudo-aléatoires, on distingue :
1. Méthode d’inversion Si la fonction de répartition est explicitement connue, et la fonction
de répartition inverse F−1 existe. Dans ce cas, la méthode de la transformation inverse peut
être utilisée comme suit :
a) Générer des variables Y Uniforme [0, 1] ;
b) Écrire Y en fonction de F(X) ;
c) Déduire : x=F−1 (y).
Remarque 1.2 La technique de transformation inverse est utilisée pour des distributions
dont F(x) est simple.
xi x0 x1 ... xN
pi p0 p1 ... pN
F(x) p0 p0 + p1 ... 1
Algorithme
Début
Pour i allant de 1 à N faire :
Générer Y U [0, 1] ;
Pn n+1
P
Trouver n tel que pj ≤ y < pj
j=0 j=0
xi = xn ;
Fin Pour ;
Fin ;
6
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
Dans ce cas, les étapes précédentes b), c) et d) deviennent sous la forme suivante :
a) Générer y selon h.
b) Générer U [0, 1].
c) Si u≤ fg(y)
(y)
, alors on prend x = y ;
sinon, on rejette et on revient à l’étape a).
3. Méthode de convolution : La distribution de la somme de plusieurs variables aléatoires
indépendantes est appelée : convolution des distributions initiales. Cette méthode consiste
à sommer deux variables (ou plus) pour obtenir une variable aléatoire distribuée selon la loi
de probabilité souhaitée (voir l’exemple 1). Si la variable aléatoire qu’on désire générer peut
se représenté comme somme d’autres variables que l’on peut générer aisément :
X = Y1 + Y2 + Y3 + ... + Yn , alors on génère les Yi et on obtient X en les sommant.
7
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
Exemple 1
• Une loi Gamma est une somme des lois Exponentielles de même paramètre.
• Une loi Khi-Deux (χ2n ) à n degré de liberté est une somme de n lois Normales [0, 1]
indépendantes au carré.
• Une loi Binomiale(n, p) est une somme de n lois Bernoulli(p).
Génération d’une variable qui suit une loi normale On dit que X suit une loi
normale N(m,σ), lorsque la densité de sa loi est donnée par :
1 1 x−m 2
f (x) = √ e− 2 ( σ ) .
σ 2π
La fonction de répartition de la loi Normale ne peut pas être explicitée, donc la méthode
d’inversion ne s’applique pas. On la génère de la manière suivante :
X = σY + m,
où Y est une variable aléatoire Normale centrée réduite, calculée à partir d’une suite de n
variables aléatoires U1 , U2 , U3 , . . . , Un uniformément distribuées entre [0, 1].
n
Ui − n2
P
i=1
Y = pn . (1.6)
12
n
P
Remarque 1.3 Cette écriture est justifiée par le théorème des grands nombres : Xi
1
N (nX, nσX ), ∀ la loi de X.
4. Méthode de décomposition
Il s’agit dedécomposer la fonction de répartition F de la variable aléatoire X comme suit :
X
F(x) = pi Fi (x). (1.7)
i≥1
8
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
1. Test de Khi-Deux
Soit X1 , X2 , ..., Xn un n-échantillon issu d’une variable aléatoire X. On partage le domaine
D de la variable √ X, partie de l’ensemble des réels R, en r classes c1 , c2 , ...., cr . Généralement,
on prend r ' n.
Soit :
• ni : l’effectif de la classe ci .
• pi : la probabilité de se trouver dans la classeci . Elle est déduite à partir de la loi de
probabilité à tester.
• ni pi : effectif théorique de la classe ci .
Pearson a démontré que la variable aléatoire
r
X (ni − npi )2
Kn2 = , (1.8)
i=1
npi
suit asymptotiquement une loi de Khi-Deux à (r − 1) degré de liberté. ni étant une variable
aléatoire représentant l’effectif de la classe ci et dont la réalisation est ni . Soit kn2 la réalisation
de la variable aléatoire Kn2 .
La règle de décision est alors sous la forme :
• Si kn2 < χ2(r−1,α) , on accepte l’ajustement de la variable aléatoire X par la loi choisie.
• Si kn2 ≥ χ2(r−1,α) , on rejette l’ajustement de la variable aléatoire X par la loi choisie.
Lorsque les paramètres de la loi à valider sont estimés à partir de l’échantillon, le degré
de liberté du Khi-Deux est alors égal à (r − q − 1), q étant le nombre de paramètres estimés.
L’application du test Khi-Deux doit satisfaire les conditions suivantes :
(a) Le nombre de classes doit être supérieur ou égal à 7.
(b) L’effectif théorique de chaque classe doit être supérieur ou égal à 8.
(c) Les effectifs théoriques des k classes doivent être sensiblement égaux.
2. Test de Kolmogorov-Smirnov
Ce test est plus puissant que le précédent car, c’est celui dans lequel le risque d’accepter H0
à tort est plus faible. La procédure à suivre est la suivante :
• On tire un échantillon de n observations à l’aide du générateur ;
• On classe les observations selon un ordre croissant ;
• On compare la fonction de répartition empirique Fn (x) calculée à partir de ces n nombres
pseudo-aléatoires avec la fonction de répartition théorique F(x) (loi uniforme sur [0, 1]) et
on calcul :
Dn = max|Fn (x) − F(x)| = maxD(xu ), (1.9)
où
{nombre d’observations ≤ x}
Fn (x) =
la taille de l’échantillon
et
F(x) = x, si x ∈ [0, 1].
On fixe un seuil de signification α, et soit d(α) la valeur tabulée (obtenue à partir de la
table de Kolmogorov-Smirnov), tel que P (Dn > d(α)) = α. La règle de décision est alors
de la forme :
• On rejette H0 Si Dn > d(α) ;
• On accepte H0 Sinon.
9
Chapitre 1. Simulation et génération des nombres pseudo-aléatoires
où
X : est la moyenne de l’échantillon / mth : est la moyenne théorique.
Ce test est basé sur la statistique suivante :
√
(X − mth ) n − 1
Tn−1 = , (1.10)
S
avec : n
2 1X
S = (Xi − X)2 .
n i=1
H0 est acceptée si :
Tn−1 < t(n−1, α2 ) , (1.11)
où t(n−1, α2 ) est la quantité de Student au seuil α.
Conclusion
La simulation à événements discret est un outil puissant et universel. Les gains à tirer d’une
expérience de simulation sont variés : description (validation d’une architecture), explication (ob-
servation, expérimentation sur une maquette), et prédiction (mesure de performances, ou prévision
de comportement). Son champ d’application recouvre les problèmes d’analyse, de conception, d’op-
timisation.
La simulation nous permet d’étudier les conditions d’opération extrême du système et d’évaluer
les conséquences sans mettre en danger le système ou son environnement. Permet de concevoir des
systèmes très complexes, elle devient le moyen le plus sure pour la compréhension d’un système
quand son étude s’avère difficile. C’est un instrument idéal de ”décideur”, aussi bien que de
technicien.
Malgré tout ce qu’elle présente comme avantages la simulation est un outil coûteux en termes
de temps de calcul, consommateur de ressources informatiques, et ne fournit que des estimations
de ce que l’on cherche.
10
Chapitre 2
Simulation de lois usuelles et la fonction
RANDOM sous Matlab
f (x) = λe−λx , ∀x ≥ 0,
sa fonction de répartition est définie par :
F (x) = 1 − e−λx , ∀x ≥ 0.
11
Annexe A : Simulation de lois usuelles et la fonction RANDOM sous Matlab
(λt)(k−1) −λt
f (t) = λ e ,t ≥ 0
(k − 1)!
La fonction de répartition est ainsi donnée comme suit :
Z∞
F(t) = 1 − f (x)dx
t
Les paramètres λ et k sont appelés respectivement paramètre d’échelle et de forme. Pour cette
distribution, on a :
k k
E(X) = et σ 2 (X) = 2 .
λ λ
La loi d’Erlang est un cas particulier de la loi de Beta(a, b) lorsque a ∈ N.
Pour générer une variable aléatoire selon une loi d’Erlang d’ordre k de paramètre λ, on peut
utiliser les algorithmes de génération des nombre aléatoire d’une loi Gamma. Mais sa définition
nous permet de construire un simple algorithme de simulation étant donnée une somme k variable
aléatoire d’une loi exponentielles de paramètre λ.
L’algorithme
Début
Générer k v.a uniforme sur [0, 1] (U1 , U2 , ....., Un ) ;
n n
X ← (− λ1 ) log(Ui ) = − λ1 log( Ui ) ;
P Q
ı=1 ı=1
Retourner X ;
fin ;
où : α > 0 est un paramètre d’échelle, β > 0 est un paramètre de forme et ν ∈ R est un paramètre
de position. Son espérance et sa variance sont respectivement :
1 2 2 2 1
E(X) = αΓ 1 + + ν et V ar(X) = α Γ 1 + −Γ 1+ .
β β β
R∞
avec Γ(x) = 0 tx−1 e−t , x ∈ R (la fonction gamma).
12
Annexe A : Simulation de lois usuelles et la fonction RANDOM sous Matlab
13
Chapitre 3
Applications : Modélisation et simulation
Introduction
L’objectif du présent passage est, à travers des exemples de différents champs, d’expliquer à
l’étudiant les différentes étapes à suivre, de la modélisation à l’interprétation des résultats, pour
résoudre un problème réel ou théorique à l’aide de la technique de simulation.
Question :
1. Donner la forme générale de la densité de X (sans développement) qu’on note f .
2. Implémenter sous MATLAB une fonction qui nous permette de générer un échantillon de
taille n dont les paramètres d’entrer sont : N br, µ, σ, λ, α, β et la taille de l’échantillon n.
3. Générer un échantillon de taille n (utiliser différentes taille n) et visualiser graphiquement
l’estimateur à noyau de la densité f (utiliser la fonction ksdensity ).
14
Applications : Modélisation et simulation
Supposons que le modèle (3.1) est construit selon les hypothèses suivantes :
– Le processus de comptage {N (t), t ≥ 0} est un processus de Poisson d’intensité λ.
– Les montants des réclamations est une suite de variables aléatoires indépendantes et identi-
quement distribuées selon une loi de Weibull de paramètres α et β.
– La réserve initiale u = 1000 unités monétaires et la prime c = 20 unités monétaires.
– Afin d’éviter une ruine certaine, nous supposons que le chargement de sécurité relative
θ = c−λλ m
m
> 0 avec m le montant moyen des réclamations donné par : m = αΓ (1 + β −1 )
(moyenne de la loi de Weibull).
15
Applications : Modélisation et simulation
16
Bibliographie
17