Vous êtes sur la page 1sur 11

La gnration de nombres alatoires

Cadre dutilisation
(1) Formulation du problme
(2) Construire un modle

(3) Collecte des donnes

(4) Choix dun outil de simulation


Gnrer des observations
alatoires partir dune
distribution de probabilit

(5) Programmation du modle


(6) Validation du modle de simulation

Non

Non
Modle valid ?
Oui
(7) Gnration dun plan dexpriences
(8) Exprimentations et analyse des rsultats
(9) Exploitation des rsultats & prise de dcision

Un nombre alatoire


Un nombre alatoire est une


observation alatoire qui suit une loi de
distribution uniforme (tous les nombres
possibles sont quiprobables).


Un nombre alatoire entier (discret)




Distribution uniforme discrte.

Un nombre alatoires uniforme (continu)




Distribution uniforme continue


3

Gnrateur de nombres alatoires




Un gnrateur de nombres alatoires


est une mthode permettant de
produire une squence de nombres
indpendants qui suivent une
distribution de probabilit spcifique.




Algorithme
ALEA() sous Excel
etc.
4

Proprits dun bon gnrateur


Les proprits dun bon gnrateur :
distribution de probabilit spcifique, aucune
corrlation
reproductible
rapide
possibilit de produire plusieurs nombres alatoires en
srie (squences)

 Nombres pseudo-alatoires (alatoire apparent : prdictible


et reproductible)


Exemple de gnrateurs de nombres alatoires :


Gnrateur congruentiel linaire mixte

Gnrateur congruentiel linaire mixte




Gnre une squence de nombres alatoires entiers


entre 0 et m-1

Avec :

xn (axn1 + c)(modulo m)

n : 0,1,m-1

a = multiplicateur
c = lincrment
x0 = la valeur de dpart (seed)
0 < m, a < m, c < m, x0 < m


Obtenir m nombres alatoire uniforme entre 0 et 1 :


zn =

xn
m

si m est grand

xn +
zn =

1
2

n : 0,1,m-1
si m est petit

Exemple dapplication


Gnrer une squence de nombres


alatoires entre 0 et 7, en considrant a
= 5, c = 7 et x0 = 4.
Dduire une squence de nombres
alatoires uniforme
Gnrer une squence de nombres
alatoires entre 0 et 7, en considrant a
= 4, c = 7 et x0 = 3.
7

Solution pour a = 5, c = 7 et
x0 = 4

Cycle = 8

xn

5xn + 7

(5xn + 7)/8

xn+1

Xn+1

n=0

27 3 + 3/8

0,4375

n=1

22 2 + 6/8

0,8125

n=2

37 4 + 5/8

0,6875

n=3

32 4 + 0/8

0,0625

n=4

7 0 + 7/8

0,9375

n=5

42 5 + 2/8

0,3125

n=6

17 2 + 1/8

0,1875

n=7

12 1 + 4/8

0,5625

 Un bon gnrateur de nombres alatoires


8

Solution pour a = 4, c = 7 et
x0 = 3
n
n=0

xn

4xn + 7
3

(4xn + 7)/8
19 2 + 3/8

xn+1
3

Impossible de gnrer une squence de nombres alatoires

Bien choisir a et c de faon avoir un cycle de longueur m


9

Gnration dune observation alatoire


partir dune distribution de probabilit

10

Une distribution simple et discrte




Gnrer des nombres alatoires


entiers (ou encore continues) en
utilisant le congruentiel linaire par
exemple (ou alea() sous Excel)
Associer les variables gnres aux
sorties observes selon leur probabilit
doccurrence.

11

Exemple sous Excel : Le jet dun jeton


P(pile)=P(face)=1/2
Nombre alatoire entre 0 et 1 (N)

=ALEA()

0,7402

Rsultat (0: Pile ; 1: Face)

=SI(N<0,5;1;0)

0,1009

0,7626

0,9245

0,7677

0,2999

0,3162

0,1030

0,9651

0,5699

0,7009

0,6253

0
12

Mthode de la transformation
inverse
Pour des lois de probabilit plus compliques :
F(x) = P(Xx)
 Gnrer un nombre
alatoire uniforme r entre
0 et 1

 Rsoudre F(x) = r et
dduire x
 Gomtriquement
 En utilisant les tables
de probabilit
 Analytiquement

r=0.3478

0
Observation alatoire

13

Loi exponentielle


Loi exponentielle de moyenne

F ( x ) = 1 e x = r
e x = 1 r
x = ln(1 r )
x=

ln(1 r )

14

Loi Erlang (gamma)




La somme de k variables exponentielles


indpendantes, chacune de moyenne 1 k
est une loi Erlang de paramtre k et de
moyenne 1


tant donne k nombres uniformes entre 0


et 1 : r1, r2, r3,rk
Une observation alatoire partir dune loi
dErlang est donne par :
k
ln(1 ri )
x=
k
i =1

15

Loi Normale


Thorme de la limite centrale : une somme de n nombres


alatoires uniformes (loi uniforme entre 0 et 1) de moyenne
et dcart type 1 12 a approximativement une
distribution normale de moyenne n/2 et dcart type n12
 tant donne n nombres uniformes entre 0 et 1: r1, r2,
r3,rn
n

z =

ri

i = 1

n
12

n
2

: Loi normale (0,1).

En particulier cette approximation est valide pour n=12

Z* = + Z : loi normale (, )
16

Loi ki2


Une observation x qui suit une loi de


distribution de ki2 avec n degrs de
liberts est la somme carr de n
nombres alatoires yi (i=1..n) qui
suivent une loi normales de moyenne 0
et dcart type 1

x = i =1 yi2
n

17

Ne pas oublierEXCEL
GNRER UN NOMBRE ALATOIRE
UNIFORME ENTRE 0 ET 1 ET UTILISER
EXCEL POUR FAIRE LINVERSE EN
UTILISANT SES FONCTIONS PRDFINIS
LOI.NORMALE.STANDARD.INVERSE()
LOI.NORMALE.INVERSE()
KHIDEUX.INVERSE()
FISHER.INVERSE()

18

Mthode de lAcceptation-Rejet


Dans certains cas, il est impossible


dappliquer la mthode de la
transformation inverse


Mthode de lAcceptation-Rejet

19

Exemple dapplication


Une distribution triangulaire de


densit f(x) /
si 0 x 1
x

f(x) = 1 - (x - 1) si 1 x 2
0
sinon

20

10

Exemple dapplication
1. Gnrer un nombre alatoire uniforme
(rel) r1 entre 0 et 1. Prendre x=2r1
(ainsi x [0,2])
2. Accepter x avec la probabilit dfinie
comme suit x est lobservation
alatoire dsire . Sinon Rejeter x
si 0 x 1
x
Probabilit =
1 - (x - 1) si 1 x 2
21

Exemple dapplication
3. Gnrer r2 un nombre alatoire
uniforme entre 0 et 1. r2 reprsente
lvnement alatoire dacceptation ou
de rejet
Accepter x si r2 f(x)
 Rejeter x si r2 > f(x)
Si x est rejet, revenir ltape 1.


22

11