You are on page 1of 36

Modlisation et simulation

INFO-F-305
Gianluca Bontempi
Dpartement dInformatique
Boulevard de Triomphe - CP 212
http://www.ulb.ac.be/di

Modlisation et simulation p. 1/36

Simulation statistique
Jusquici nos avons considr des modles dterministes. En ralit le
manque de connaissance, la procdure dabstraction accomplie
pendant la modlisation, les erreurs de mesures rendent souvent une
reprsentation dterministe de la ralit trop limite.
Il est important donc reprsenter lintrieur de notre modle
lincertitude et tre capable de la tenir en considration pendant la
simulation.
Le formalisme probabiliste a t souvent utilis dans les sciences pour
reprsenter et manipuler lincertitude.
Trouver une solution analytique dun modle probabiliste est souvent
impossible. Dans ces cas, la seule manire dtudier le systme est
donc la simulation.
Simuler un systme avec des paramtres ou des conditions initiales
probabilistes demande la capacit de gnrer des nombres selon une
distribution de probabilit.
On dfinit simulation statistique toute mthode qui utilise des squences
des nombres alatoires (ou random).
Modlisation et simulation p. 2/36

Les mthodes Monte Carlo


Les techniques de simulation Monte Carlo sont utilises pour simuler
des systmes dterministes avec des paramtres ou des entres
stochastiques.
Le nom a t propos par les scientifiques du projet Manhattan lors de
la deuxime guerre mondiale et fait allusion aux jeux de hasard
pratiqus Monaco.
Parmi les pionniers des mthodes MC nous retrouvons E. Fermi, J.
Neumann, S. Ulam, N. Metropolis.
Les mthodes MC sont aujourdhui utilises pour simuler des
phnomnes physiques complexes dans plusieurs domaines
scientifiques et appliqus: radioactivit, physique des hautes nergies,
rseaux, conomtrie, logistique.
La technique de simulation Monte Carlo sappuie sur lchantillonnage
des distributions des quantits incertaines.
Il peut tre visualis comme une boite noire o entre un flux de nombres
pseudo-alatoires (c.--d. gnrs par lordinateur) et un flux de
nombres sort; lestimation de la quantit dintrt est obtenu en
analysant loutput.
Modlisation et simulation p. 3/36

msure 1

paramtre 1
11.5

Simulateur

paramtre 2
2

?
msure 2

paramtre 3

Modlisation et simulation p. 4/36

Exemple
Supposons davoir une population dont la dcroissance est dcrite par
lquation diffrentielle
x = Kx,

x(0) = 10

o la quantit K < 0 nest pas connue de manire exacte mais qui peut
tre dcrite par une distribution de probabilit uniforme K U(4, 2).
Puisque K est alatoire, la quantit x(t) le sera aussi.
Supposons de vouloir rpondre aux questions suivants: Aura quelle
forme la distribution de la valeur x(t) pour t = 2? Sera-t-elle encore une
distribution uniforme? Quelle moyenne et/ou variance a-t-elle? Quelle
probabilit nous avons que x(t) soit entre .1 et .2?
Script MATLAB mc.m.

Modlisation et simulation p. 5/36

Histogramme de x(2)
500
450
400
350
300
250
200
150
100
50
0

0.05

0.1

0.15

0.2

1000 ralisations de la variable K.


Modlisation et simulation p. 6/36

Les mthodes Monte Carlo


La simulation Monte Carlo peut tre utilise toutes les fois que le
comportement dun systme peut tre dcrit par lvolution dune
densit de probabilit (par exemple la densit de x(t) dans lexemple
prcdent).
Il est intressant de remarquer que parfois mme des problmes non
random peuvent tre rsolus par une approche stochastique. Un
exemple est le calcul de la surface dun lac
La mthode est base sur (i) lchantillonnage des quantits alatoires,
(ii) de la rptition dune simulation dterministe (trial) pour chaque
quantit chantillonne et (iii) sur lagrgation des rsultats.
Ils existent problmes qui ne peuvent tre rsolus que par la mthode
de MC et des problmes qui sont plus faciles rsoudre par la mthode
de MC.
MC est souvent considre comme la mthode en dernier ressort
puisque elle demande des ressources computationnelles assez
consistantes.

Modlisation et simulation p. 7/36

Calcul surface dun lac


Considrons une zone rectangulaire ou carre dont la surface A terrain
est connue. Au sein de cette aire se trouve un lac dont la superficie A lac
est inconnue.
Pour trouver laire du lac, on demande une arme de tirer N coups de
canon de manire alatoire et uniforme sur cette zone. On compte
ensuite le nombre N0 de boulets qui sont rests sur le terrain et ainsi le
nombre N N0 de boulets qui sont tombs dans le lac.
Puisque la probabilit quun boulet tombe dans une rgion daire A est
proportionelle laire mme, il suffit de calculer:
A terrain
N
=
=
A lac
N N0

A lac

(N N0 )
A terrain
=
N

Si A terrain = 1000 m2 et larme tire N = 500 boulets et que


N N0 = 100 projectiles sont tombs dans le lac alors lestimation est:
A lac 100/500 1000 = 200 m2.
Daprs la loi des grands nombres, la qualit de lestimation samliore
en augmentant le nombre de tirs et en sassurant que les artilleurs ne
visent pas toujours le mme endroit mais couvrent bien la zone.
Modlisation et simulation p. 8/36

Composantes dun algorithme MC


Description probabiliste:

un modle stochastique du problme.

un gnrateur de nombres
alatoires uniformment distribus sur lintervalle [0, 1].

Gnrateur uniforme de nombrs alatoires:

une technique pour chantillonner une distribution de


probabilit gnrique.

Loi dchantillonnage:

un simulateur dterministe qui renvoie loutput quand tous les


paramtres sont connus.

Simulateur:

Collecteur des outputs:

structure des donnes pour stocker tous les outputs de

la simulation.
ensemble de techniques statistiques qui permettent de
tirer conclusions partir des donnes gnres par le simulateur.

Analyseur de loutput:

ceci permet dassocier chaque quantit estime partir


de loutput une indication sur lerreur ou sur la confiance (par exemple
en fonction du nombre de rptitions).

Estimateur derreur:

Modlisation et simulation p. 9/36

Variables alatoires continues


Considrons une variable alatoire z relle et continue. Il est possible
dfinir les quantits suivantes:
Dfinition. La fonction de rpartition de z est la fonction

Fz (z) = Prob {z z}

(1)

Dfinition. La fonction de densit de z est la drive de la fonction de rpartition:

dFz (z)
pz (z) =
dz

(2)

La probabilit dune v.a. continue nest pas dfinie pour des valeurs z
ponctuelles mais seulement pour des intervalles de valeurs
Prob {a < z < b} =

pz (z)dz,
a

pz (z)dz = 1

Modlisation et simulation p. 10/36

Moyenne et variance dune v.a. continue


Esprance (moyenne):

zp(z)dz
l

Variance:
2

=
Moments dordre r

(z )2 p(z)dz
l

:
r = E[z r ] =

z r p(z)dz
l

Modlisation et simulation p. 11/36

Le problme Monte Carlo


Considrons une variable alatoire x Rn de dimensionnalit n. Les
mthodes Monte Carlo essaient de rsoudre les deux problmes suivants
: comment gnrer une srie dchantillons indpendantes
{xi }, i = 1, . . . , N , qui soient tous tirs partir de la mme densit de
probabilit px (x).

Echantillonnage

: tant donne la fonction g(x) et la variable alatoire x Rn ,


estimer lesprance de la variable alatoire g(x)

Estimation

= E[g(x)] =

g(x)p(x)dx

est la moyenne de la variable alatoire g(x) qui reprsente la sortie du


systme.

Modlisation et simulation p. 12/36

La solution du premier problme rend possible la solution du deuxime.


Lestimation de est obtenu partir des N chantillons xi par
N
X
1
=
g(xi )
N i=1

La loi des grands nombres nous garantit que


lim =

Il est possible aussi de montrer que cet estimateur a des proprits


intressantes dun point de vue statistique. Il est non polaris (en anglais
unbiased), c.--d.
=
E[]
et sa variance est

o 2 est la variance de g(x).

h i 2
=
Var
N

Modlisation et simulation p. 13/36

La racine de la variance est une mesure de lerreur moyenne commise

une fois que nous estimons avec .


est indpendante de la
Nous remarquons que la variance de
dimensionalit n.
La proprit la plus importante des mthodes MC est donc que la
prcision de lestimation renvoye par Monte Carlo est indpendante de la
dimensionnalit n de la variable x en entre.

Ceci signifie, que indpendamment de la dimensionnalit de x quelque


dizaine dchantillons de x peut tre suffisante pour estimer dune
manire satisfaisante.

Modlisation et simulation p. 14/36

Quest-ce que un nombre alatoire?


La simulation Monte Carlo sappuie sur la capacit de gnrer des
nombres alatoires. Un autre domaine qui est galement intress par
la capacit de gnrer des nombres alatoires est celui de la
cryptographie. Mais
Quest-ce que un nombre alatoire?
Peut un nombre alatoire tre gnr par une machine dterministe,
comme lordinateur?
Est-il possible de gnrer des squences vraiment alatoires?
Il nexiste pas une rponse universellement partage ce genre de
questions.
La raison est que plusieurs dfinitions de alatoire (en anglais
randomness) existent.
Selon le livre de Papoulis, deux dfinitions des nombres alatoires
peuvent tre formules.

Modlisation et simulation p. 15/36

Les dfinitions de nombre alatoire


une squence de nombres xi est appele alatoire
(random) si elle est gale la squence dchantillons dune variable
alatoire x.

Dfinition conceptuelle:

une squence de nombres xi est appele alatoire


(random) si ses proprits statistiques sont les mme que les proprit
dune squence de nombres obtenues dans une exprience alatoire.

Dfinition empirique:

La dfinition empirique est une dfinition oprationnelle qui suggre une


manire pratique pour rpondre la question si une squence de nombres
(par exemple gnrs par un ordinateur) est alatoire.

Latout de cette dfinition est que la randomness dune squence peut tre
dtermine par des outils statistiques conventionnels (tests dhypothse,...).

Modlisation et simulation p. 16/36

Les proprits des nombres alatoires


Considrons une squence de N nombres xi tirs partir dune distribution
uniforme de la variable alatoire x sur [0, 1]. Cette squence de nombres doit
satisfaire deux proprits:
1. uniformit, c.--d. ils sont equirepartis sur [0, 1].
2. indpendance, c.--d. la valeur xi ne doit avoir aucune relation ou
dpendance par rapport la valeur xi1 ou plus en gnral avec les
autres valeurs xj , j = 1, . . . , i 1, i + 1, . . . , N .
Il sensuit que
1. Si lintervalle [0, 1] est reparti en n sous-intervalles de la mme taille,
alors le nombre dobservations attendu dans chaque intervalle est N/n.
Notons que N doit tre suffisamment grand pour remarquer cette
proprit.
2. La probabilit dobserver une valeur dans un certain intervalle est
indpendante des valeurs tires lavance.

Modlisation et simulation p. 17/36

Gnration des nombres alatoires


Les nombres alatoires peuvent tre gnrs par les manires suivantes
observation dexpriences de nature alatoire:

mesurer un dispositif physique qui prsente certaines proprits


stochastiques (bruit dune rsistance, diode, compteur Geiger).
observer les lancement dune pice quilibre afin de gnrer une
squence alatoire de 0 (pile) et 1 (face);
extraire des billes dune urne (loterie);
utiliser les chiffres dcimaux de
par lordinateur

: ceux ci sont appels nombres pseudo-alatoires

Lapproche pseudo-alatoire est souvent prfrable puisque elle est plus


rapide, plus facilement grable et permet la contrlabilit et la rptitivit de
lexprience si ncessaire (par exemple pour des raison de dbogage)

Modlisation et simulation p. 18/36

Gnration des nombres alatoires


The generation of random numbers is too important to be left to chance.
(Robert R. Coveyou (1969))
Anyone who considers arithmetical methods of producing random digits,
is, of course, in a state of sin (J. von Neuman (1951))

Modlisation et simulation p. 19/36

Gnration des nombres pseudo-alatoires


Le but est gnrer lordinateur des chantillons dune distribution de
probabilit gnrique.
Bien que les nombres pseudo-random ne soient pas vraiment alatoires
puisque ils ont t gnrs de manire dterministe, le but est de crer
une squence qui puisse apparaitre comme non dterministe
quelquun qui ne connait pas lalgorithme sous-jacent.
Dun point vue statistique apparaitre come alatoire revient passer des
test statistiques (comme le test Kolmogorov-Smirnov).
Toutefois, a ltat actuel, ceci nest pas fait de manire directe pour une
distribution pz () quelconque.
Normalement on commence par gnrer une squence de nombres
alatoires uniformes et aprs on applique une transformation pour
obtenir une squence qui appartient la distribution dsire pz ().
Nous verrons dans la suite comment gnrer des nombres alatoires
uniformes et les mthodes pour les transformer.

Modlisation et simulation p. 20/36

Proprits dun gnrateur pseudo-alatoire


Un bon gnrateur de nombres alatoires devraient satisfaire les critres
suivants:
Les points devraient tre distribus de manire conforme
la distribution chantillonne. Aussi, aucune corrlation (ni
dpendance) ne devrait tre observable entre les nombres gnrs
squentiellement.

Distribution correcte.

Comme un gnrateur de nombres alatoires est excut sur


un ordinateur dterministe, il devient de facto un algorithme
dterministe. Ses sorties sont invitablement entaches dune
caractristique absente dune vraie suite alatoire : la priodicit. Avec
des ressources limites (mmoire, nombre de registres, etc.), le
gnrateur retrouvera le mme tat interne au moins deux fois. Afin
dviter des corrlations non dsires, la quantit de nombres gnre
devrait toujours tre inferieure cette priode.

Longue priode.

Modlisation et simulation p. 21/36

Afin de faciliter lutilisation et le testing de code qui sappuie sur


la gnration des nombres alatoires il est ncessaire de pouvoir
reproduire une squence dj obtenue. Aussi il serait bien de pouvoir
gnrer de nouveau une partie de la squence sans recommencer du
dbut. A ce fin il est ncessaire dassocier un tat (graine ou seed en
anglais) au gnrateur afin de pouvoir rtablir une configuration dj
vue.

Rptabilit.

Pour des simulations de longues dures il


est important de pouvoir excuter plusieurs sous-simulations
indpendantes et de pouvoir les recombiner dans la suite en sassurant
que la proprits dindpendance soit satisfaite.

Longues squences non corrles.

ceci ne signifie pas seulement que le code devrait tre portable


(e.g. implment en un langage haut-niveau comme Fortran ou C) mais
aussi que il devrait gnrer exactement le mme squence sur des
machines diffrentes.

Portabilit.

La gnration dune squence de nombre pseudo-alatoires ne


devrait pas demander des ressources de calcul excessives. La plupart
des langages de programmation contient aujourdhui un gnrateur de
nombres pseudo-alatoires.

Efficacit.

Modlisation et simulation p. 22/36

La mthode de Von Neumann


En 1946, John von Neumann propose un gnrateur pseudo-alatoire connu
sous le nom de la mthode middle-square (carr mdian). Trs simple, elle
consiste prendre un nombre, llever au carr et prendre les chiffres au
milieu comme sortie. Celle-ci est utilise comme graine pour litration
suivante.
Exemple: prenons le nombre 1111. Les tapes de lalgorithme sont:
1. 11112 = 1234321
2. on rcupre les chiffres du milieu: 3432. Cest la sortie du gnrateur.
3. 34322 = 11778624
4. on rcupre les chiffres du milieu: 7786, et ainsi de suite.
La mthode a surtout une importance historique. Elle est faible et la qualit
des sorties dpend de la graine. Par exemple ltat 0000 produit toujours la
mme squence et constitue un tat absorbant de lalgorithme.

Modlisation et simulation p. 23/36

Gnrateur congruentiel linaire


Le gnrateur congruentiel linaire (en anglais linear congruential
generator (LCG)) a t propose en 1951 par Lehmer pour gnrer des
nombres pseudo-alatoires selon une distribution uniforme U(0, 1).
Un gnrateur LCG gnre une squence zi de nombres entiers non
ngatifs grce la formule de rcurrence (aussi connue comme l
algorithme de Lehmer)
zi = (azi1 + c) mod m

i1

o a, c,sont des entiers, m est un nombre premier trs grand et mod


dnote le reste de la division entire (par exemple 15 mod 4 = 3).

Modlisation et simulation p. 24/36

La valeur initiale z0 est appele la graine (ou seed) de la squence.


La suite ui = zi [0, 1] est la suite de nombres pseudo-alatoires qui
m
sont renvoy par le gnrateur LCG.
Si c = 0 le gnrateur est appel gnrateur multiplicatif.
La squence de nombres entiers zi prenne valeur entre 0 et m 1; il
sensuit que si nous excutons litration pour m tapes, au moins deux
valeurs zi (et donc deux valeurs ui ) seront identiques.
La squence est donc priodique pour N > m avec une priode
m0 m. Si la priode est m0 = m alors on dit que le gnrateur est
priode maximale.
Une squence priodique ne peut videmment pas tre une squence
alatoire. Toutefois, pour des applications o le nombre de ui gnr est
inferieur m0 , la priodicit na aucun effet.
Il est possible montrer que seulement quelque ensemble de paramtres
permet la gnration di une squence avec des bonnes proprits
statistiques.
Des choix communs pour les paramtre du LCG sont: a = 75 , c = 0 et
m = 231 1.
Modlisation et simulation p. 25/36

Tests daleatoiret
Supposons davoir gnr N nombres pseudo-alatoires xi par un
gnrateur uniforme.
Test des moments: si x U(0, 1) alors les trois premiers moments
devraient tre 1/2, 1/3 et 1/4, respectivement.
Test chi-carr: supposons de diviser lintervalle [0, 1] en s
sous-intervalles Ij de taille gale. Soit
cj = {#xi Ij },

j = 1, . . . , s

la quantit de valeurs observe lintrieur du jme intervalle. La


quantit
2
s 
X
s
N
C=
cj
N j=1
s
est une mesure de concordance entre les valeurs observes et les
valeurs attendues. Si les nombres avaient t gnrs par une variable
alatoire uniforme alors la quantit C devrait tre distribue comme une
variable 2 avec s 1 degrs de libert.
Modlisation et simulation p. 26/36

Tests daleatoiret (II)


Goodness of fit: ceci calcule lcart
KN = sup |Fx (x) Fx (x)|
x

entre la fonction de rpartition empirique


#xi x
Fx (x) =
N
et la fonction de rpartition attendue Fx
Test dautocorrelation.
Test du maximum.
Test des squences binaires.

Modlisation et simulation p. 27/36

Transformation des variables alatoires


Considrons une variable continue x X de densit px (x).
Dfinissons une nouvelle variable alatoire y Y en sort que y = F (x)
est une fonction monotone non dcroissante.
Que pouvons nous dire sur la densit py (y)?
Selon la dfinition de densit de probabilit nous avons
px (x)dx = py (y)dy
et donc
py (y) =

px (x)
dF
dx

si F (x) est une fonction monotone non dcroissante.

Modlisation et simulation p. 28/36

Fonction de rpartition
Prenons comme fonction F (x) la fonction suivante
F (x) = Fx (x)
o Fx : R [0, 1] est la fonction de rpartition de x.
Puisque Fx (x) est une fonction monotone non dcroissante et
dy
dFx (x)
=
= px (x)
dx
dx
Nous obtenons
py (y) = 1
En dautres termes la variable y = Fx (x) est toujours distribue de
manire uniforme sur [0, 1] pour quelconque densit de probabilit px (x).
Ce rsultat a un rle cl pour la gnration dchantillons partir de
distributions autres que luniforme.

Modlisation et simulation p. 29/36

La mthode de la transformation inverse


La mthode de la transformation inverse sappuie sur la proprit de
monotonie non dcroissante de la fonction de rpartition Fx () et sur la
proprit y = Fx (x) U(0, 1).
Soit x une variable alatoire avec fonction de rpartition Fx (x). La
mthode de la transformation inverse dchantillonnage de la variable x
effectue les deux oprations suivantes
1. un nombre u est tir partir de la distribution U(0, 1)
2. la valeur x = F 1 (u) est calcul.
Cette rgle connue comme la Golden Rule for Sampling a t
propose par von Neumann en 1947.

Modlisation et simulation p. 30/36

F(x)
1
u1

u2
x2

x1

Modlisation et simulation p. 31/36

Exemples de transformation inverse


Soit x U(a, b) une variable alatoire distribue de
manire uniforme entre a et b a

Distribution uniforme

Fx (x) =

xa
ba

Si u est un chantillon de U(0, 1) alors une ralisation de U(a, b)


obtenue, selon la mthode inverse par
xa
= u x = a + (b a)u
ba

Modlisation et simulation p. 32/36

Exemples de transformation inverse (II)


Distribution exponentielle

. Soit x E() et
Fx (x) = 1 ex

Si u est une ralisation de la variable uniforme U(0, 1) alors une


ralisation de E() est obtenue par
1
1 ex = u x = ln(1 u)

Il est important, toutefois, remarquer que pour plusieurs distributions (par


exemple Gaussiens) il nexiste pas une forme analytique de linverse de la
fonction de rpartition. Mthodes alternatives ou mthodes numriques (par
exemple bases sur linterpolation) doivent tre appliques dans ces cas.

Modlisation et simulation p. 33/36

Mthode de rejection
Pour des distributions difficiles grer dun point vue analytique, von
Neumann a propos en 1951 un algorithme trs gnral et indirect
connu sous le nom de mthode de rejection
Cet algorithme permet dchantillonner une fonction px (x) de manire
indirecte en passant par une densit de probabilit h(x) telle que
Ch(x) px (x),

x X

avec C > 1.
Supposons de
1. savoir comment chantillonner la densit h(x).
2. savoir calculer la valeur de px (x) pour un x donn.

Modlisation et simulation p. 34/36

Lalgorithme de rejection
La mthode est compose des tapes suivantes
1. Tirer un chantillon u selon la distribution U(0, 1)
2. Tirer un chantillon y selon la distribution h(y), indpendante de u.
p(y)
, la mthode renvoie x = y, autrement elle rejette y et
3. Si u Ch(y)
passe ltape 1.

Il est possible montrer que la squence gnre suit la distribution


target px (x).

Modlisation et simulation p. 35/36

Exemple
Supposons de vouloir gnrer des nombres partir de la densit de
probabilit suivante
(
2x,
0x1
p(x) =
0,
ailleurs
par la mthode de rejection. Nous fixons h(x) = U(0, 1) et C = 2. Il sensuit
que
Ch(x) p(x)
x X
Lalgorithme de rejection effectue les tapes suivantes
1. Tirer un chantillon u selon la distribution U(0, 1)
2. Tirer un chantillon y selon la distribution U(0, 1), indpendante de u.
p(y)
3. Si u Ch(y)
= 2y
2 = y, la mthode renvoie x = y, autrement elle rejette
y et passe ltape 1.

Modlisation et simulation p. 36/36

You might also like