Upload
mziou-hammadi
View
215
Download
0
Embed Size (px)
Citation preview
8/18/2019 Generation Aleatoire
1/11
1
1
La génération de nombres aléatoires
2
Cadre d’utilisation
(6) Validation du modèle de simulation
(3) Collecte des données(2) Construire un modèle
(4) Choix d’un outil de simulation
Modèle validé ?
Non
(1) Formulation du problème
Non
(7) Génération d’un plan d’expériences
(8) Expérimentations et analyse des résultats
(9) Exploitation des résultats & prise de décision
Oui
(5) Programmation du modèle
Générer des observations
aléatoires à partir d’unedistribution de probabilité
(5) Programmation du modèle
8/18/2019 Generation Aleatoire
2/11
2
3
Un nombre aléatoire
Un nombre aléatoire est uneobservation aléatoire qui suit une loi dedistribution uniforme (tous les nombrespossibles sont équiprobables). Un nombre aléatoire entier (discret)
Distribution uniforme discrète. Un nombre aléatoires uniforme (continu)
Distribution uniforme continue
4
Générateur de nombres aléatoires
Un générateur de nombres aléatoiresest une méthode permettant deproduire une séquence de nombresindépendants qui suivent unedistribution de probabilité spécifique. Algorithme ALEA() sous Excel etc.
8/18/2019 Generation Aleatoire
3/11
3
5
Propriétés d’un bon générateur Les propriétés d’un bon générateur : – distribution de probabilité spécifique, aucune
corrélation – reproductible – rapide – possibilité de produire plusieurs nombres aléatoires en
série (séquences)Nombres pseudo-aléatoires (aléatoire apparent : prédictible
et reproductible)
Exemple de générateurs de nombres aléatoires :Générateur congruentiel linéaire mixte
6
Générateur congruentiel linéaire mixte
Génère une séquence de nombres aléatoires entiersentre 0 et m-1
Avec :a
= multiplicateurc = l’incrémentx 0 = la valeur de départ (seed)0 < m , a < m , c < m , x 0 < m
Obtenir m nombres aléatoire uniforme entre 0 et 1 :
)modulo)(( 1 mcax x nn +≡ −
petitestmsi 2
1
grandestmsi
m
x
z
m
x z
n
n
nn
+
=
=
n : 0,1,…m-1
n : 0,1,…m-1
8/18/2019 Generation Aleatoire
4/11
4
7
Exemple d’application
Générer une séquence de nombresaléatoires entre 0 et 7, en considérant a= 5, c = 7 et x0 = 4.
Déduire une séquence de nombresaléatoires uniforme
Générer une séquence de nombresaléatoires entre 0 et 7, en considérant a= 4, c = 7 et x0 = 3.
8
Solution pour a = 5, c = 7 etx0 = 4
C y c l e
= 8
Un bon générateur de nombres aléatoires
0,562541 + 4/8121n = 7
0,187512 + 1/8172n = 6
0,312525 + 2/8427n = 5
0,937570 + 7/870n = 4
0,062504 + 0/8325n = 3
0,687554 + 5/8376n = 2
0,812562 + 6/8223n = 1
0,437533 + 3/8274n = 0
Xn+1
xn+1
(5xn
+ 7)/85xn
+ 7xn
n
8/18/2019 Generation Aleatoire
5/11
5
9
Solution pour a = 4, c = 7 et
x0 = 3
n xn 4xn + 7 (4xn + 7)/8 xn+1n = 0 3 19 2 + 3/8 3
Impossible de générer une séquence de nombres aléatoires
Bien choisir a et c de façon à avoir un cycle de longueur m
10
Génération d’une observation aléatoireà partir d’une distribution de probabilité
8/18/2019 Generation Aleatoire
6/11
6
11
Une distribution simple et discrète Générer des nombres aléatoires
entiers (ou encore continues) enutilisant le congruentiel linéaire parexemple (ou alea() sous Excel)
Associer les variables générées aux
sorties observées selon leur probabilitéd’occurrence.
12
00,6253
00,7009
00,5699
00,9651
10,1030
10,3162
10,2999
00,7677
00,9245
00,7626
10,1009
00,7402
Résultat (0: Pile ; 1: Face)Nombre aléatoire entre 0 et 1 (N)
Exemple sous Excel : Le jet d’un jeton
=ALEA() =SI(N
8/18/2019 Generation Aleatoire
7/11
7
13
Méthode de la transformation
inversePour des lois de probabilité plus compliquées :F(x) = P(X≤x)
0
1
Observation aléatoire
r=0.3478
Générer un nombrealéatoire uniforme r entre0 et 1
Résoudre F(x) = r etdéduire x Géométriquement En utilisant les tablesde probabilité Analytiquement
14
Loi exponentielle
Loi exponentielle de moyenne
α
α
α
α
−
−=
−=−
−=
=−=
−
−
)1ln(
)1ln(
1
1)(
r x
r x
r e
r e xF
x
x
α
1
8/18/2019 Generation Aleatoire
8/11
8
15
Loi Erlang (gamma) La somme de k variables exponentielles
indépendantes, chacune de moyenneest une loi Erlang de paramètre k et demoyenne Étant donnée k nombres uniformes entre 0
et 1 : r1, r2, r3,…rk Une observation aléatoire à partir d’une loi
d’Erlang est donnée par :
α
1
α k 1
∑= −
−=
k
i
i
k
r x
1
)1ln(
α
16
Loi Normale Théorème de la limite centrale : une somme de n nombres
aléatoires uniformes (loi uniforme entre 0 et 1) de moyenne½ et d’écart type a approximativement unedistribution normale de moyenne n/2 et d’écart type
Étant donnée n nombres uniformes entre 0 et 1: r1, r2,r3,…rn
: Loi normale (0,1).
En particulier cette approximation est valide pour n=12
Z* = µ + σ Z : loi normale (µ,σ )
12n
121
12
21
n
nr
z
n
i
i∑=
−
=
8/18/2019 Generation Aleatoire
9/11
9
17
Loi ki2
Une observation x qui suit une loi dedistribution de ki2 avec n degrés delibertés est la somme carré de nnombres aléatoires yi (i=1..n) quisuivent une loi normales de moyenne 0
et d’écart type 1
∑ == n
i i y x
1
2
18
Ne pas oublier…EXCEL
GÉNÉRER UN NOMBRE ALÉATOIREUNIFORME ENTRE 0 ET 1 ET UTILISEREXCEL POUR FAIRE L’INVERSE EN
UTILISANT SES FONCTIONS PRÉDÉFINISLOI.NORMALE.STANDARD.INVERSE()LOI.NORMALE.INVERSE()KHIDEUX.INVERSE()FISHER.INVERSE()…
8/18/2019 Generation Aleatoire
10/11
10
19
Méthode de l’Acceptation-Rejet
Dans certains cas, il est impossibled’appliquer la méthode de latransformation inverse
Méthode de l’Acceptation-Rejet
20
Exemple d’application
Une distribution triangulaire dedensité f(x) /
≤≤
≤≤
=
sinon 0
2x1si1)-(x-1
1x0si x
f(x)
8/18/2019 Generation Aleatoire
11/11
11
21
Exemple d’application
1. Générer un nombre aléatoire uniforme(réel) r1 entre 0 et 1. Prendre x=2r1(ainsi x ∈ [0,2])
2. Accepter x avec la probabilité définiecomme suit « x est l’observation
aléatoire désirée ». Sinon Rejeter x
≤≤
≤≤=
2x1si1)-(x-1
1x0si xProbabilité
22
3. Générer r2 un nombre aléatoireuniforme entre 0 et 1. r2 représentel’événement aléatoire d’acceptation oude rejet Accepter x si r2 ≤ f(x) Rejeter x si r2 > f(x)Si x est rejeté, revenir à l’étape 1.
Exemple d’application