You are on page 1of 46

Gnration des nombres

Pseudo - Alatoires
Introduction
nombres alatoires (ou nombres au hasard) : une
suite de nombres alatoires distribus suivant
une loi uniforme sur [0,1]
Alatoire exprience alatoire (d, cartes,
roulettes )
lenteur
impossibilit de reproduire les nombres
alatoires
Tables (1
re
: 10.400, Rand : 1.000.000)
Sur ordinateur
Tables : encombrement mmoire, lenteur du
traitement


Recours des mthodes rcursives donnant
des nombres qui ressemblent des nombres
alatoires


Nombres pseudo-alatoires
La mthode Mid - Square (J ohn Von Newmann (1946)
X
0
un entier m chiffres
X
1
= entier constitu des m chiffres centraux du
carr de X
0
X
2
= entier constitu des m chiffres centraux du
carr de X
1


X
i
= entier constitu des m chiffres centraux du
carr de X
i-1

Inconvnients
La distribution obtenue n'est pas celle
d'une loi uniforme
Rapide dgnrescence; par exemple :
X
0
= 253 (X
0
)
2
= 6 400 9
X
1
= 400 (X
1
)
2
= 01 600 00
X
2
= 600 (X
2
)
2
= 03 600 00
L'intrt de la mthode double :
historique
alatoire pseudo-alatoire
Mthodes congruentielles linaires
Priodique et comporte au maximum m entiers
compris entre 0 et m-1
est le reste de la division
Exemples
Exemple 1 :
Exemple 2 :
X
1
= 4 X
2
= 3 X
3
= 11 X
4
= 7
X
5
= 9 X
6
= 8 X
7
= 1 X
8
= 12
X
9
= 14 X
10
= 13 X
11
= 6 X
12
= 2
X
1
= 0 X
2
= 5 X
3
= 10
Mthodes congruentielles multiplicatives
Mthodes congruentielles multiplicatives :
Cas m = 2
o

Gnrateurs congruentiels
multiplicatifs priode maximale
Si X
0
est premier avec m :
a est une racine primitive de m si P = m -1
X
0

quelconque
(plus grand entier sur machine 32 bits)
car m est premier !!
Implmentation dun gnrateur
congruentiel multiplicatif sans overflow
Overflow erreurs
Eviter l'overflow ?
Bratley, Fox et Schrage (1983) :




Calcul de k ?
Combinaison de gnrateurs
Wichman et Hill (1982)
171, 172 et 170 racines primitives de 30269, 30307, et 30323
< 2
15
= 32768 (mthode prcdente sur machine 16 bits)
Priode = 6.95 x 10
12

Gnration de nombres alatoires
distribus selon une loi quelconque
4 mthodes :
Transformation Inverse
Acceptation-Rejet
Composition
Convolution
Mthode de la transformation inverse
Cas dune loi continue : F
x

u
x
U(0,1)
0
1
F
X

Mthode de la transformation inverse
Cas dune loi discrte
0
1
Fonction de
rpartition
x
2
x
3
x
4

u U(0,1)
Mthode de la transformation inverse
} ) ( inf{ ) (
1
u x F x u F
X X
> =

Exemple 1
Pour gnrer une variable X~U(a,b) :
on gnre u~U(0,1)
et on cherche F
-1
(u).
x = (b - a)*u+a
x = F
-1
(u) F(x) = u
Exemple 2
Pour gnrer une variable X dont la fonction de
probabilit est :


x
i
-1 2 3 6
P(X=x
i
) 0,15 0,20 0,40 0,25
1. On calcule la fonction de rpartition aux points x
i

x
i
-1 2 3 6
P(Xx
i
) 0,15 0,35 0,75 1
2. On tire un nombre u~U(0,1)
(u = 0,60)
3. On cherche le plus petit x
i
/ F(x
i
) u
4. x = x
i

(x = 3)
Mthode dacceptation-rejet : principe
Gnrer x, selon une loi dont la pdf est
f(x), peut tre difficile ou impossible
On gnre alors y selon une autre loi dont
la pdf est g(x)
Puis on rejette ou on accepte x = y selon
la valeur dun nombre u tir dune U[0,1]

Mthode dacceptation-rejet : dfinitions
Soit f(x) la pdf de la distribution gnrer
Soit h(x) une fonction / h(x) f(x) x
h(x) nest pas ncessairement une pdf

Mais h(x) doit tre choisie / c soit fini
g(x)= h(x)/c; g(x) une pdf

Mthode dacceptation-rejet : algorithme
1. Gnrer un nombre y dune variable Y ayant g
comme fonction de densit de probabilit
2. Gnrer un nombre u dune variable U
distribue selon la loi uniforme sur [0,1] et
indpendante de Y
3. Si u f(y)/h(y), prendre x = y. Sinon, reprendre
partir de ltape 1

Remarque : Le nombre moyen de tirages ncessaires
pour accepter un nombre x est gal c
Exemple 3
Gnrer un nombre y dune loi uniforme sur [0,1]
Gnrer un nombre u dune loi uniforme sur [0,1], indpendant de Y
Si u 60y
3
(1-y)
2
/ 2,0736, prendre x = y. Sinon, reprendre partir de
ltape 1

Soit f la pdf dune loi Beta(4,3) :
f(x) admet un maximum de 2,0736 au point x = 0,6
Pour utiliser la mthode dacceptation-rejet, on peut procder comme suit :
c = 2,0736
g(x) ~ U(0,1)
On prend
Les tapes de lalgorithme pour tirer un nombre x dune loi Beta(4,3) sont :
Mthode de composition : notations
Soit F est la fonction de rpartition telle que :

Les sommes
peuvent tre finies
o F
i
sont des fonctions de rpartition
Une autre condition quivalente serait :
o f et les f
i
sont des fonctions de densit de probabilit.
Les sommes
peuvent tre finies
Mthode de composition : algorithme
Pour gnrer des nombres selon la loi F (f), la
mthode procde comme suit :
Gnrer un entier I tel que P(I = i) = p
i

pour i = 1,2, .....
Gnrer un nombre X selon la loi de
probabilit associe F
I
(ou f
I
).
Le nombre X ainsi obtenu serait distribu selon la
loi de probabilit associe F (ou f).
Exemple 4
Soit f la pdf dune loi Triangulaire (0,1,2) :
o : et: sont deux pdf
Exemple 4 (suite)
Les tapes de lalgorithme pour tirer un nombre x dune loi
Tri(0,1,2) sont :
Gnrer un nombres u
1

Si u
1
0,5 tirer selon F
1

Gnrer un nombre u
2
indpendamment de u
1
i.e. prendre
Si u
1
> 0,5 tirer selon F
2

Gnrer un nombre u
2
indpendamment de u
1
i.e. prendre

Mthode de convolution
Supposant quune variable alatoire X peut tre exprime
comme suit :
X = a
1
X
1
+ a
2
X
2
+...... + a
k
X
k

o les a
i
sont des constantes et X
1
,X
2
, , X
n
des variables
indpendantes.
Dans ce cas, la mthode de convolution consiste :
gnrer, dune manire indpendante, k nombres X
1
, X
2
,
...., X
k
et puis utiliser lgalit prcdente pour calculer X
Exemple 5
Par le thorme central limite, on sait que la somme de n variables
indpendantes distribues selon U [0,1] est approximativement de
distribution Normale de moyenne n/2 et de variance n/12.
Pour gnrer une N(0,1), on procdera comme suit :
Gnrer n variables U
i
indpendantes distribues selon une loi
Uniforme sur (0,1), o n est un entier quelconque assez
grand.
Calculer
Quelques distributions usuelles
Loi exponentielle de paramtre o : Exp(o)
Pour gnrer une variable X~Exp(o), on gnre U~U(0,1) et on cherche linverse
X= F
-1
(U).
1-U ~ U(0,1)
X= F-
1
(U)
Quelques distributions usuelles
Loi Erlang de paramtre k et o : Erlang(k, o)

Si X
1
, X
2
, . , X
k
sont iid selon une loi exponentielle de paramtre o,
alors X = X
1
+X
2
+ . + X
k
~ Erlang(k, o)
o U
i
~U(0,1)
Quelques distributions usuelles
Loi normale de paramtre et o : N(, o)
Mthode de Box et Muller (1958)
Si X et Y indpendantes et ~ N(0,1)
Posons X = r cos(O) , Y = r sin(O)
La loi du couple (R, O) des nouvelles variables est
R et O sont indpendantes O ~U[0, 2t]
Pour gnrer O, on pose O = 2t*U1 avec U1~U(0,1)
Pour gnrer R, on pose
Puisque 1 U
2
~ U(0,1) on pose
Quelques distributions usuelles
Loi normale de paramtre et o : N(, o)
Mthode de Box et Muller (1958)
O = 2t*U1 avec U
1
~U(0,1)
X = R cos(O) , y = R sin(O)
avec U
2
~U(0,1)
Si U
1
et U
2
sont indpendantes
et
sont deux variables alatoires indpendantes et distribues selon N(0,1).
Quelques distributions usuelles
Loi normale de paramtre et o : N(, o)
Mthode Polaire (1964)
Amlioration de la mthode de Box Muller car elle vite le calcul des
fonctions sin et cos
Approximation numrique de linverse (Odel et Evans 1974)
U~U(0,1)
p
0
= -0.322232431088 q
0
= 0.099348462606
p
1
= -1 q
1
= 0.588581570495
p
2
= - 0.342242088547 q
2
= 0.531103462366
p
3
= - 0.0204231210245 q
3
= 0.10353775285
p
4
= - 0.0000453642210148 q
4
= 0.0038560700634
La prcision relative est
de six dcimales
Valable que pour 0,5 < U < 1
Mais si U X
1-U -X
Quelques distributions usuelles
Loi de Poisson de paramtre
Rappel : Poisson Exponentielle
T
1
T
2
T
3
T
4

T
i
iid et ~ Exp(o)
Events selon Processus de Poisson de paramtre o
X = # events dans un intervalle de longueur A ~ Poisson(oA)
Si o = 1 et A = , X ~ Poisson()

1 2 X -1 X X + 1
T
1
T
2
T
X
T
X+1

Quelques distributions usuelles
Loi de Poisson de paramtre
Ti ~ Exp (1 )
1) p = 1 ; X = 0
2) Gnrer U ~U(0,1) ; p = p*U
3) Si e
-
> p, arrter la procdure et retourner X;
sinon, X = X+1 et reprendre ltape 2.
Algorithme
Test des gnrateurs
Deux types :
1. Les tests dadquation
2. Les tests dindpendance
Test des gnrateurs : Tests dadquation
Test de Chi_deux
Dcoupez lchantillon en n classes.
Notez par :
O
i
: nombre dlments observs dans la classe i
E
i
: nombre espr dlments dans la classe i
Calculez :
Si E
i
5 i D ~ Chi-deux (n-1) degrs de libert
F
S
x
1
x
2
x
3

Test des gnrateurs : Tests dadquation
Test de Kolmogorov-Smirnov
F fonction de rpartition de X; X
1
, X
2
, . , X
n
n tirages de X
S(x) = (nombre tirages x) / n
: Fonction de rpartition observe
Le test sintresse aux plus grands carts entre F(x) et S(x)
F
S
x
1
x
2
x
3

Test des gnrateurs : Tests dadquation
Test de Kolmogorov-Smirnov
maxima atteints en x
i
!
Test des gnrateurs : Tests dadquation
Test de Kolmogorov-Smirnov
1
x
3
x
2
x
1
S
F
x
2
x
1
S
F
Test des gnrateurs : Tests dindpendance
Test de corrlation srielle
~ U(0,1)
Y = Partie Entire (K*U) + 1
Y
2i

1 2 .. k
Y
2i-1

1
2
:
k
O
11
O
12
O
1k
O
21
O
22
O
2k
O
k1
O
k2
O
kk
k x k
classes
Si U
i
indpendants
Test de chi-deux
+ de prcision k grand beaucoup de classes N trs grand
Test des gnrateurs : Tests dindpendance
Test de corrlation srielle
k x k classes
k x k x k classes
k x k . x k classes

t fois
Il faut rsumer linformation contenue dans le t-uplet des U
Test des gnrateurs : Tests dindpendance
Test de permutation
Suite i :
Suite i e classe ( j
1
, j
2
, , j
p
)
Ordre
croissant
Exemple : (16,19,18,15) e classe (4,1,3,2)
Test de chi-deux :
p! classes
Test des gnrateurs : Tests dindpendance
Test de Kolmogorov-Smirnov pour le maximum
X
i
continue ~ F
Suite i :
Hypothse vrifier par le test KS