Sie sind auf Seite 1von 54

La mthode de Monte-Carlo

(notes de cours SG241 2011 12)


par Rmi Peyre, matre de confrences lcole des Mines de Nancy
Dpartement Gnie Industriel & Mathmatiques Appliques
remi.peyre@univ-lorraine.fr Bureau 495 03.83.58.40.60
http://www.normalesup.org/~rpeyre/pro/enseignement.html
Ces notes de cours constituent la version en cours de rdaction dun polycopi
Mthode de Monte-Carlo & Application aux processus stochastiques ; en tant
quel telles, elles constituent donc un document inachev. Lauteur rejette ainsi la
responsabilit de toute coquille ou oubli pouvant rester dans la prsente version de
ce texte, et demande aux lves de ne pas diuser celui-ci en-dehors du groupe de
son cours.
Table des matires
I Principes 5
I.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
I.2 Base de la mthode . . . . . . . . . . . . . . . . . . . . . . . . 6
I.2.a Exemple introductif : le problme du yahtzee . . . . . 6
I.2.b Aspects thoriques . . . . . . . . . . . . . . . . . . . . 6
I.2.c Mthode gnrale de calcul dune esprance . . . . . . 7
I.2.d Illustration : la course pied . . . . . . . . . . . . . . 7
I.3 Intervalles de conance . . . . . . . . . . . . . . . . . . . . . . 7
I.3.a Problmatique . . . . . . . . . . . . . . . . . . . . . . 7
I.3.b Intervalles de conance gaussiens . . . . . . . . . . . . 8
I.3.c Exemple dapplication . . . . . . . . . . . . . . . . . . 10
I.3.d Annexe : table des intervalles de conance gaussiens . 11
I.4 Mthode de Monte-Carlo pour le calcul dune intgrale . . . . 12
I.4.a Fonctions support born . . . . . . . . . . . . . . . . 12
I.4.b Cas gnral . . . . . . . . . . . . . . . . . . . . . . . . 13
I.4.c Comparaison avec les mthodes dintgration dtermi-
nistes . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
I.5 Choix de lchantillonnage . . . . . . . . . . . . . . . . . . . . 17
I.5.a Notion decacit . . . . . . . . . . . . . . . . . . . . 17
I.5.b chantillonnage idal . . . . . . . . . . . . . . . . . . . 18
I.5.c Principe dchantillonnage prfrentiel . . . . . . . . . 19
I.5.d Exemples . . . . . . . . . . . . . . . . . . . . . . . . . 20
I.5.e Manipulations prliminaires lchantillonnage prf-
rentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
I.5.f chantillonnage interstrates . . . . . . . . . . . . . . . 25
I.5.g chantillonnage idal gnralis . . . . . . . . . . . . . 28
II Techniques de rduction de la variance 29
II.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
II.2 Conditionnement . . . . . . . . . . . . . . . . . . . . . . . . . 29
II.3 Variables antithtiques . . . . . . . . . . . . . . . . . . . . . . 31
II.3.a Exemple : dilemme rugbystique . . . . . . . . . . . . . 31
II.3.b Approche gnrale . . . . . . . . . . . . . . . . . . . . 33
II.4 Variables de contrle . . . . . . . . . . . . . . . . . . . . . . . 34
II.4.a Variable de contrle unique . . . . . . . . . . . . . . . 34
II.4.b Variables de contrle multiples . . . . . . . . . . . . . 35
II.4.c Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . 36
II.5 Stratication . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
II.5.a Approche thorique . . . . . . . . . . . . . . . . . . . . 37
II.5.b La stratication en pratique . . . . . . . . . . . . . . . 39
II.6 Optimisation du code . . . . . . . . . . . . . . . . . . . . . . 40
III Annexe : Codes MATLAB 42
III.1 Les codes pour le problme du yahtzee . . . . . . . . . . . . . 42
III.1.a Algorithme naf . . . . . . . . . . . . . . . . . . . . 42
III.1.b Algorithme avec conditionnement . . . . . . . . . . . . 43
III.1.c Algorithme avec chantillonnage prfrentiel . . . . . . 45
III.2 Le code pour la course pied . . . . . . . . . . . . . . . . . . 47
III.3 Codes pour les calculs de volume de boule . . . . . . . . . . . 47
III.3.a Mthode de Monte-Carlo sur le cube . . . . . . . . . . 47
III.3.b Mthode de Monte-Carlo avec chantillonnage prf-
rentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
III.4 Les codes pour le calcul de lintgrale cubique . . . . . . . . . 49
III.4.a chantillonnage selon la loi (auchy(1) . . . . . . . . . 49
III.4.b chantillonnage double-exponentiel . . . . . . . . . . . 50
III.4.c chantillonnage selon (auchy(0,65) . . . . . . . . . . . 50
III.4.d chantillonnage de type Pareto . . . . . . . . . . . . . 51
III.5 Grandes dviations de 100 lancers dune pice . . . . . . . . . 52
III.5.a Algorithme naf . . . . . . . . . . . . . . . . . . . . 52
III.5.b Avec chantillonnage prfrentiel . . . . . . . . . . . . 52
III.6 Code pour le dilemme rugbystique . . . . . . . . . . . . . . . 53
La mthode de Monte-Carlo
Chapitre I
Principes
I.1 Introduction
En mathmatiques, on appelle mthodes de Monte-Carlo les techniques
permettant dvaluer une quantit dterministe laide de lutilisation de
tirages alatoires. Cest de cette ide de recours au hasard que vient la dno-
mination Monte-Carlo , par allusion au clbre quartier de Monaco rput
pour son casino...
Historiquement, cest en 1949 que le physicien grco-amricain Nicholas
Metropolis et le mathmaticien amricain dorigine polonaise Stanisaw
Ulam publient larticle fondateur de cette mthode de calcul et lui donnent
son nom. Pour tre plus exact, lide de procder des tirages alatoires
pour valuer des intgrales compliques tait dans lair du temps parmi la
communaut des physiciens, mais lapport majeur de Metropolis & Ulam
fut de proposer la technique dchantillonnage prfrentiel (cf. I.5.c), qui
amliore largement lecacit de la mthode. Pour lanecdote, cest dans le
cadre des recherches du projet Manhattan sur le dveloppement de la bombe
atomique que ces chercheurs (avec quelques autres dont notamment John
von Neumann) avaient commenc dvelopper leurs ides.
Des dveloppements importants des mthodes de Monte-Carlo furent lal-
gorithme de Metropolis Hastings pour la simulation de certaines variables
alatoires en physique statistique (travaux dus notamment Marshall Ro-
senbluth en 1953 et Keith Hastings en 1970), algorithme qui son tour
fut la base de la mthode du recuit simul (1983) pour trouver des extrema
globaux de fonctions dnies sur des espaces de grande dimension. Plus r-
cemment (2008), on a aussi parl des mthodes de Monte-Carlo loccasion
de leur utilisation dans des logiciels joueurs de go (trs grossirement, lide
est que lordinateur value la qualit dune position en imaginant que les
joueurs terminent leur partie en jouant au hasard), o ces mthodes ont
permis des progrs spectaculaires.
[]
Dans ce cours, nous ne nous intresserons qu la mthode de Monte-
Carlo pour lvaluation dune intgrale (ou dune esprance).
[]. Avec notamment le logiciel MoGo, dvelopp au sein de laboratoires de recherche
franais !
cole des Mines de Nancy
6 La mthode de Monte-Carlo
I.2 Base de la mthode
I.2.a Exemple introductif : le problme du yahtzee
Pour bien comprendre la mthode de Monte-Carlo, commenons par tu-
dier un problme li au jeu du yahtzee. Le yahtzee se joue avec cinq ds quon
peut lancer trois fois : au premier lancer le joueur jette les cinq ds, puis aux
deux lancers suivants il choisit librement quels ds il veut relancer.
[]
Le
but du jeu est, lissue des trois lancers, dobtenir la meilleure combinaison
possible.
La combinaison de plus haute valeur, galement appele yahtzee, consiste
ce que tous les ds achent le mme chire. On se pose la question sui-
vante : quelle est la probabilit quun joueur se xant pour unique objectif
dobtenir un yahtzee atteigne son but lissue de ses trois lancers ?
Il est clair que la meilleure stratgie suivre pour les deuxime et troi-
sime lancers, dans ce cadre, consiste simplement regarder quel est le chire
qui apparat le plus souvent sur la table lissue du lancer prcdent,
[]
puis
choisir de relancer tous les ds nachant pas ce chire. En revanche, il
nest pas vident den dduire un calcul de probabilit pour la russite nale,
car cette russite peut passer par un grand nombre de scnarios dirents
en tout cas, les calculs sont particulirement compliqus. Du coup, on se
propose de simuler cette probabilit : on joue un trs grand nombre de fois,
et on sattend ce que le proportion de russite tende asymptotiquement
vers sa probabilit puisque cest l la dnition physique de ce quest
une probabilit ! videmment, il sera beaucoup plus rapide dutiliser un or-
dinateur que de vritables ds ; cest donc ainsi que nous allons procder.
Lalgorithme (informel) utilis est donc le suivant, pour un nombre dex-
priences N au choix de lexprimentateur :
1. Simuler un joueur eectuant ses trois lancers, avec la rgle quil ne
garde que les ds achant le chire qui apparat le plus souvent sur la
table ; le faire N fois en tout ;
2. chaque essai, regarder si le joueur a russi obtenir un yahtzee ;
compter le nombre total de ses succs, quon appellera succs ;
3. Retourner la valeur numrique de succs / N.
Le code correspondant est donn dans lannexe III.1.a. Un essai avec
N = 1 000 000 ma donn 46 161 succs, soit une proportion empirique
denviron 4,616 %, ce qui est eectivement proche de la valeur thorique
100 194 336/6
12
4,602 %.
I.2.b Aspects thoriques
Largument thorique qui permet dassurer le bon fonctionnement de
lagorithme est la loi des grands nombres. Dun point de vue abstrait, notre
algorithme revient en eet tirer N variables alatoires i.i.d. X
1
, . . . , X
N
,
telles que X
i
vaut 1 si le joueur a russi et 0 sinon, et renvoyer (X
1
+
[]. Il peut ventuellement choisir de nen relancer aucun, ou au contraire de les relancer
tous.
[]. Il se peut que plusieurs chires dtiennent ce record ex-quo ; dans ce cas, on dsigne
arbitrairement un de ces chires comme tant le chire qui apparat le plus souvent.
cole des Mines de Nancy
La mthode de Monte-Carlo
+ X
N
) / N =: p
N
comme estimation de P(X = 1) =: p. Or la loi des
grands nombres nous dit prcisment que quand N tend vers linni, la
moyenne empirique que renvoie lalgorithme tend en probabilit (et mme
presque-srement) vers E(X) = p. En dautres termes, p
N
est un estimateur
(fortement) convergent de p.
I.2.c Mthode gnrale de calcul dune esprance
Dans la section prcdente, nous avons utilis une mthode de Monte-
Carlo pour valuer une probabilit. Mais en fait, tout ce que nous avons
dit sadapte immdiatement lvaluation dune esprance ! Prsentons cela
sous la forme dun thorme de synthse :
.a Thorme. Soit X une variable alatoire relle L
1
et soient X
1
, X
2
, . . .
des v.a. i.i.d. de mme loi que X. Alors
m
N
:= N
1
N

i=1
X
i
(1)
est un estimateur de E(X) =: m qui converge (fortement) vers sa cible.
I.2.d Illustration : la course pied
Voyons maintenant un nouvel exemple concret. On imagine une course
entre 8 athltes dont les chronos sont modliss par autant de variables ala-
toires X
1
, . . . , X
8
i.i.d. de loi lnA(4; 0,03) (i.e. ln X suit la loi A(4; 0,03)).
Pour organiser ecacement la course, on a besoin de savoir quel temps,
en moyenne, met le plus lent de coureurs, cd. quon sintresse m :=
E(max
1i8
X
i
). Comme il ny a pas dexpression analytique pour cette quan-
tit, on recourt la mthode de Monte-Carlo.
Lalgorithme utilis est alors le suivant (voir le code en annexe III.2) :
1. Simuler les chronos des 8 coureurs et dterminer leur maximum; le
faire N fois en tout ;
2. Faire la somme des N chronos maximums obtenus, quon appellera
somme ;
3. Retourner la valeur numrique de somme / N.
Une simulation pour N = 10
4
ma donn pour m lestimateur 70,38,
comparer la valeur exacte 70,26.
I.3 Intervalles de conance
I.3.a Problmatique
Grce aux sections prcdentes, nous disposons donc dun estimateur
convergent pour le calcul dune esprance. Tout cela est bel et bien, mais
pour que cette mthode soit utilisable en pratique il faudrait aussi pouvoir
dire quelle est la qualit de cette valuation empirique. En dautres termes,
on souhaite rpondre aux deux questions suivantes :
cole des Mines de Nancy
8 La mthode de Monte-Carlo
1. Quel est lordre de grandeur de la dirence entre la moyenne empi-
rique et la vritable esprance ? Autrement dit, quelle prcision notre
estimation est-elle pertinente ?
2. Quel est la probabilit que la dirence entre moyenne empirique et
vritable esprance soit plus grande que son ordre de grandeur ty-
pique ; autrement dit, quel risque courons-nous que notre valuation
soit nettement fausse ? Car aprs tout il y a toujours une probabilit
non nulle que la moyenne empirique soit signicativement dirente de
lesprance ; par exemple, dans le cas du yahtzee, il se peut exception-
nellement que les N essais donnent autant de succs...
I.3.b Intervalles de conance gaussiens
Nous allons rpondre ces questions dans le cadre du thorme .a, i.e.
quand nous cherchons dterminer lesprance m dune variable alatoire X
dont on sait simuler la loi facilement. Ici, nous supposerons en outre que la
v.a. X est L
2
.
Nous sommes alors en mesure dappliquer le thorme-limite central
(TLC). Notant
2
:= Var(X), nous savons en eet que ( m
N
m)/N
1/2
converge en loi vers A(
2
) ;
[]
Par consquent, quand N tend vers linni, la
probabilit que [ m
N
m[ soit plus grand que 2/N
1/2
(par exemple) tend vers
P
_
A(1) > 2
_
5 %. Autrement dit, il y a une probabilit asymptotique de
plus de 95 % pour que m soit dans lintervalle [ m
N
2/N
1/2
, m
N
2/N
1/2
].
ce stade, il y a deux objections importantes :
Notre intervalle de conance est dni en fonction de , qua priori
nous ne connaissons pas !
Notre probabilit derreur nest valable quasymptotiquement, alors que
nous voudrions savoir ce quon peut dire pour une valeur xe de N...
La premire objection est la plus importante. Puisque nous ne connais-
sons pas a priori, la solution va tre destimer la variance, estimation
que nous faisons.... par la mthode de Monte-Carlo ! On utilise pour cela le
thorme suivant :
S.a Thorme. Soit X une variable alatoire relle L
2
; alors pour
X
1
, X
2
, . . . des v.a. i.i.d. de mme loi que X, la variance empirique

2
N
:= N
1
N

i=1
X
2
i

_
N
1
N

i=1
X
i
_
2
(2)
est un estimateur (fortement) convergent de
2
:= Var(X), et donc lcart-
type empirique
N
est un estimateur (fortement) convergent de .
Dmonstration. Daprs la loi des grands nombres, N
1

N
i=1
X
2
i
est un es-
timateur convergent de E(X
2
) et N
1

N
i=1
X
i
est un estimateur convergent
de E(X), donc
2
N
est un estimateur convergent de E(X
2
)E(X)
2
=
2
.
.b Remarque. On prconise parfois de choisir pour valuer
2
lestimateur
N/(N 1)
2
N
, qui a lavantage dtre sans biais, mais cela ne change pas
grand-chose en pratique.
[]. Convention : Dans ce cours, N(
2
) notera la loi normale centre de variance
2
.
cole des Mines de Nancy
La mthode de Monte-Carlo j
Passons maintenant la seconde objection : nous allons pas tout--fait
rpondre celle-ci, mais simplement faire observer quelle nest pas trop
importante. En eet, mme si notre approximation de la probabilit derreur
est assez mauvaise (par exemple, si on sattendait une probabilit derreur
de 5 % et quon a en fait une probabilit derreur de 6 %), lessentiel est
que lordre de grandeur de cette probabilit reste le mme : tout ce qui nous
intresse, cest de dire quil est trs peu probable que la vraie valeur de p soit
hors de notre intervalle de conance, et de ce point de vue cela ne change
pas grand-chose de savoir si notre estimation est able 95 % ou 94 %.
j.a Remarque. Attention toutefois : ce que nous venons de dire devient dou-
teux quand on cherche des intervalles correspondant des risques derreur
trs petits (disons, infrieurs 0,1 %), car un tel degr de prcision la
convergence vers la loi normale dans le thorme-limite central devient trop
lente. En eet, pour tre sr que la probabilit derreur relle soit raison-
nablement proche dune probabilit derreur estime , il faut grossirement
raliser au moins
2
expriences,
[]
soit au moins 1 000 000 expriences pour
sassurer quun intervalle de conance 99,9 % donn par lapproximation
normale est able alors que 500 expriences susent pour un intervalle
de conance 95 %.
De toutes faons, comme lestimateur de est convergent, lintervalle de
conance obtenu aura asymptotiquement le niveau souhait.
[]
Nous pouvons
rsumer tout cela par le thorme suivant :
q.b Thorme. Soit X une variable alatoire relle L
2
et soient X
1
, X
2
, . . .
des v.a. i.i.d. de mme loi que X. Notons
m
N
:= N
1
N

i=1
X
i
, (3)
resp.

2
N
:= N
1
N

i=1
X
2
i

_
N
1
N

i=1
X
i
_
2
. (4)
Alors, pour c
1
, c
2
0 (ventuellement innis), E(X) := m appartient
lintervalle [ m
N
c
1

N
/N
1/2
, m
N
+c
2

N
/N
1/2
] avec un niveau de conance
asymptotiquement gal P
_
A(1) [c
1
, c
2
]
_
=
_
c
2
c
1
e
x
2
/2
dx/

2.
j.c Remarque. Dans le cas o on dispose dun contrle a priori sur la loi
de X (par exemple si X est borne, comme ctait le cas pour le yahtzee
o on avait une indicatrice), il est aussi possible dtablir des intervalles
de conance non asymptotiques (dont lexpression serait plus complique).
Toutefois nous ne nous intresserons pas cette question dans ce cours.
j.d Remarque. Attention, tout ce que nous venons de dire nest valable que
quand X est L
2
!! (alors que la convergence de lestimateur de Monte-Carlo,
elle, marche ds que X est L
1
). Il faudra donc bien veiller rester dans ce
cadre pour appliquer le thorme j.b ci-dessus. En pratique, pour vrier
[]. Cela provient du thorme de BerryEssen.
[]. Cela provient du thorme de Slutsky, qui sera rappel en cours.
cole des Mines de Nancy
1o La mthode de Monte-Carlo
lhypothse X L
2
, on pourra souvent majorer grossirement [X[ (voir
la I.3.c pour un exemple). Dans les cas plus compliqus, on pourra ven-
tuellement faire de cette hypothse un acte de foi , mais alors il faudra
surveiller attentivement les indices qui alerteraient que celui-ci est erron (en
particulier, si lestimateur
2
N
semble ne pas converger), et dans tous les cas
rester trs prudent sur linterprtation des rsultats. noter que si X / L
2
mais quon sait que X L
p
pour un p > 1, il existe des thormes analogues
au thorme j.b pour obtenir des intervalles de conance asymptotiques,
avec une vitesse de convergence en N
1+1/p
(mais ce nest plus la loi gaus-
sienne qui intervient alors). Toutefois nous ne nous intresserons pas cette
question dans ce cours.
I.3.c Exemple dapplication
Voyons maintenant comment ce que nous venons de dire sapplique dans
un cas concret. Nous reprenons ici lexemple de la course pied du I.2.d, et
nous cherchons dterminer un intervalle de conance 80 % (ce qui,daprs
la table de la I.3.d infra, correspondra plus ou moins 1,29 fois lcart-type
autour de la valeur empirique) de largeur 10
1
pour m, en essayant de faire
le moins possible de calculs.
Commenons par vrier que la variable alatoire max
1i8
X
i
:= X

dont nous cherchons dterminer lesprance est bien L


2
. Comme tous les X
i
sont positifs, on a X

8
i=1
X
i
, do E[X
2

] =

8
i,j=1
E[X
i
X
j
] 64 E[X
2
]
(par lingalit de CauchySchwarz), o E
lnN(4;0,03)
[X
2
] = E
N(4;0,03)
[(e
X
)
2
]
= E
N(1)
[e
2(4+0,03
1/2
X)
] = e
8
E
N(1)
[e
20,03
1/2
X
] est ni vu que la loi normale
a tous ses moments exponentiels nis.
Avant de passer limplmentation, faisons deux remarques sur lvalua-
tion pratique de :
i.a Astuce. (i). Pour valuer , on peut se servir de la mme simulation
qui sert valuer m;
(ii). On na jamais besoin de connatre avec une prcision trop grande ;
par consquent on peut sen faire une premire ide en lanant quelques
centaines de simulations.
Notre algorithme suit les lignes suivantes (voir le code en annexe III.2) :
1. Choisir un nombre de simulations N ;
2. Simuler les chronos des 8 coureurs et dterminer leur maximum; le
faire N fois en tout ;
3. Faire la somme des N chronos maximums obtenus, quon appellera
somme, ainsi que la somme des carrs de ces chronos maximum, quon
appellera sommecarrs ;
4. Calculer :=
_
sommecarrs/N (somme/N)
2
_
1/2
, et acher cette
valeur pour information ;
5. Calculer m := somme/N et retourner les valeurs numriques des bornes
de lintervalle [ m1,29 /N
1/2
; m+ 1,29 /N
1/2
].
Nous commenons par lancer 500 simulations pour valuer la valeur de
: nous trouvons alors, dans mon cas, 8,31 Maintenant, combien dois-je
cole des Mines de Nancy
La mthode de Monte-Carlo 11
faire de simulations pour la largeur de mon intervalle de conance 80 %
soit infrieure 10
1
? La largeur de cet intervalle tant 2 1,29 N
1/2
,
il faut avoir N (2,58/0,1)
2
, qui vaut environ 46 000 en remplaant par
le que nous venons de trouver, valeur que nous arrondissons 50 000 pour
avoir un peu de marge.
La simulation avec N = 50 000 donne alors, dans mon cas, un intervalle
de conance gal [70,233; 70,321] (qui est bien de largeur plus petite que
10
1
), ce qui permet de conclure que m commence vraisemblablement par
70,2... ou 70,3... et cest eectivement le cas.
Au passage, quelle tait la pertinence de notre valuation de sur 500
simulations ? Notre simulation principale donne nalement une valeur de
gale 7,64 : ainsi, bien que notre estimation initiale ft assez grossire,
elle tait eectivement susamment proche de la valeur vritable pour tre
utilisable dans le calcul du nombre de simulations ncessaires lobtention
dun intervalle de conance de taille impose.
ii.a Astuce. Nous aurions pu garder en mmoire les rsultats de notre
premire srie de simulations [jentends par l les valeurs de somme et
sommecarrs] pour faire comme sil stait agi des 500 premires simulations
de notre seconde srie, de sorte que nous naurions plus eu que 49 500 simu-
lations eectuer. En loccurrence, lconomie apporte aurait t minime ;
toutefois cette ide peut savrer trs utile pour pousser plus loin un calcul de
Monte-Carlo dj coteux. Ainsi, si nous voulions passer de 50 000 70 000
simulations (par exemple, parce que lintervalle de conance obtenu serait
accidentellement plus grand que 10
1
), nous pourrions utiliser les rsultats
des 50 000 premires simulations an de ne plus avoir que 20 000 simulations
faire au lieu den recommencer 70 000 ! Il est donc recommand, de manire
gnrale, de toujours garder en mmoire les valeurs de somme et sommecarrs
donnes par une srie de simulations.
I.3.d Annexe : table des intervalles de conance gaussiens
Il peut tre utile de savoir convertir un niveau de conance en nombre
dcarts-types, autrement dit de savoir quelles valeurs de c
1
et c
2
susent
pour obtenir une valeur xe de P
_
A(1) [c
1
, c
2
]
_
. cette n, vous
trouverez ci-dessous une petite table dans le cas (le plus courant) o on
prend c
1
= c
2
: notez que dans ce cas, P
_
[A(1)[ c
_
sexprime en termes
de la fonction derreur dnie par :
erf(x) :=
2

_
x
0
e
y
2
dy = P
_
[A(1)[

2x
_
. (5)
c 0 0,68 1 1,29 1,65 1,96 2
P
_
[A(1)[ c
_
0 0,50 0,68 0,80 0,90 0,95 0,954
c 2,33 2,58 2,81 3 3,10 3,30
P
_
[A(1)[ c
_
0,98 0,99 0,995 0,997 3 0,998 0,999 1
Table 1 Niveau de conance en fonction du nombre dcarts-types. Tous les
arrondis sont faits de faon sous-valuer le niveau de conance.
cole des Mines de Nancy
1: La mthode de Monte-Carlo
I.4 Mthode de Monte-Carlo pour le calcul dune
intgrale
I.4.a Fonctions support born
Vous avez sans doute appris, lors de votre cours de probabilits, quune
esprance pouvait formellement se dnir comme une intgrale. Or la m-
thode de Monte-Carlo nous permet dvaluer facilement une esprance... Du
coup, nous avons lide de renverser le paradigme : en crivant une intgrale
comme une esprance, nous allons pouvoir utiliser la mthode de Monte-
Carlo pour calculer une intgrale !
Dtaillons un premier exemple. Supposons quon vous demande dvaluer
le volume de la boule unit de dimension 6 et que vous ne connaissiez pas
la formule pour celle-ci. Notant B notre boule, ce quon demande est en fait
de calculer
Vol :=
_
B
dx =
_
R
4
1
|x|1
dx. (6)
Comment interprter cette intgrale comme une esprance ? Commenons
par remarquer que B est incluse dans lhypercube centr en 0 de demi-arte 1,
que nous noterons Q, de sorte que
Vol =
_
Q
1
|x|1
dx. (7)
Notons maintenant P
Q
la probabilit uniforme sur Q, savoir dP
Q
(x) =
dx/64,
[]
de sorte que
Vol(B) = 64
_
Q
1
|x|1
dP
Q
(x) = 64 E
Q
[1
|X|1
]. (8)
Or, P
Q
est trs facile simuler, puisque la loi dun point (x
1
, . . . , x
6
) sous P
Q
revient tirer indpendamment les x
i
selon la loi uniforme sur [1, 1] ! On
en dduit donc lalgorithme de Monte-Carlo suivant pour calculer Vol(B) :
1. Pour N grand, simuler N variabes alatoires i.i.d. uniformes sur Q
(chacune tant simule par 6 v.a. i.i.d. uniformes sur [1, 1]) ;
2. Pour chaque x Q simul, calculer [x[ pour savoir si x B;
3. En dduire un intervalle de conance pour E(1
XB
) par la mthode du
thorme j.b ;
4. Multiplier cet intervalle par 64 pour en dduire un intervalle de
conance (de mme niveau) pour Vol(B).
Ici par exemple, en choisissant N = 1 000 000 et en cherchant un inter-
valle de conance 95 % (soit des uctuations de plus ou moins 1,96 fois
lcart-type), je trouve un intervalle de conance gal [5,140, 5,209], qui
contient eectivement la bonne rponse
3
/6 5,168
*
**
Nous pouvons immdiatement gnraliser cette mthode sous la forme
du thorme suivant :
[]. Le nombre 64 correspond au volume de Q, qui est simplement le produit de ses six
dimensions, soit 2
6
.
cole des Mines de Nancy
La mthode de Monte-Carlo 1
iz.a Thorme. Soit f : R
d
R une fonction L
1
telle que f est nulle en-
dehors dun pav Q := [a
1
, b
1
] [a
2
, b
2
] [a
d
, b
d
]. Alors, si P
Q
note la
loi dune v.a. uniforme sur Q, on a
_
R
d
f(x) dx =
d

i=1
(b
i
a
i
) E
Q
[f(X)], (9)
ce qui permet de calculer
_
f par la mthode de Monte-Carlo du thorme .a.
En outre, si f est L
2
, alors la v.a. f(X) est L
2
sous P
Q
, ce qui permet de cal-
culer des intervalles de conance pour f daprs la mthode du thorme j.b.
Par ailleurs, pour simuler une variabe alatoire X de loi P
Q
sur R
d
,
il sut de tirer des v.a. U
1
, . . . , U
d
uniformes sur [0, 1] et de poser X =
(a
1
+ [b
1
a
1
]U
1
, . . . , a
d
+ [b
d
a
d
]U
d
).
I.4.b Cas gnral
Imaginons maintenant quon cherche valuer lintgrale
_
+

1
1 +[x[
3
dx (10)
par la mthode de Monte-Carlo.
[]
On ne peut clairement pas appliquer le
thorme 1:.a, puisque la fonction intgrer nest pas support born...
Certes. Toutefois, rien dans la mthode de Monte-Carlo nexige que la loi
de probabilit utilise pour lchantillonnage (que nous appellerons dans la
suite de ce cours loi dchantillonnage) soit une loi de type uniforme ! Voyons
ainsi comment nous pouvons procder dans le cas de lintgrale (10). Soit P
1
la loi de Cauchy standard, de densit
dP
1
(x) =
dx
(1 +x
2
)
.
[]
(11)
On peut alors rcrire
_
+

1
1 +[x[
3
dx =
_
(1 +x
2
)
1 +[x[
3
dP
1
(x) = E
1
_
(1 +x
2
)
1 +[x[
3
_
, (12)
qui est bien lesprance dune fonction L
2
. Au nal, on peut donc valuer
(10) par lalgorithme suivant (voir le code en III.4.a) :
1. Simuler N variables indpendantes de loi de Cauchy standard ;
2. Pour chacune de ces variables, valuer (1 +x
2
) / (1 +[x[
3
) ;
3. Prendre la moyenne des valeurs obtenues pour obtenir un estimateur
de lintgrale (on peut galement calculer un intervalle de conance par
la mthode du thorme j.b).
[]. Dans ce cas prcis, cest vrai dire une ide plutt saugrenue, car les mthodes
dintgration dterministes seraient plus ecaces cf. I.4.c. On peut mme calculer un
expression analytique exacte si on se souvient de son cours de fonctions holomorphes...
[]. Rappelons que cette loi se simule facilement : cest la tangente dun angle uniforme
sur (/2, +/2).
cole des Mines de Nancy
1 La mthode de Monte-Carlo
Ainsi fait avec N = 60 000, jobtiens un intervalle de conance 95 %
gal [2,406; 2,425]. La vraie valeur est 4

3/9 2,418.
*
**
Bien sr, on aurait pu choisir une autre loi dchantillonnage que la loi
de Cauchy standard. Par exemple, si on avait pris la loi double-exponentielle
de paramtre 1, dont la densit est
dP
2
(x) =
dx
2e
|x|
, (13)
on aurait pu crire de mme
_
+

1
1 +[x[
3
dx = E
2
_
2e
|x|
1 +[x[
3
_
. (14)
Si nous regardons le rsultat obtenu pour N = 60 000 avec cette loi dchan-
tillonnage [voir lannexe III.4.b pour le code], je trouve pour ma part un
intervalle de conance gal [2,407; 2,422], ce qui est a priori de qualit
comparable la mthode prcdente.
Cependant, regardons de plus prs nos deux lois dchantillonnages en
poussant les calculs jusqu N = 1 000 000. Lintervalle de conance obtenu
pour la densit m
1
est alors [2,415 2; 2,419 8], tandis que celui pour la den-
sit m
2
est [2,409 4; 2,423 3] : cette fois-ci, la densit m
2
apparat comme
bien moins bonne que sa concurrente ! Pourquoi ? Eh bien, lchantillonnage
double-exponentiel prsente en fait un gros dfaut : la variable alatoire quil
conduit intgrer nest pas L
2
! En eet,
E
2
__
2e
|x|
1 +[x[
3
_
2
_
=
_
R
_
2e
|x|
1 +[x[
3
_
2
dx
2e
|x|
=
_
R
2e
|x|
(1 +[x[
3
)
2
dx = . (15)
Cette seconde mthode a donc une convergence asymptotique plus lente que
O(N
1/2
), et par-dessus le march, on ne pouvait pas lgitimement lui appli-
quer le thorme j.b sur les intervalles de conance gaussiens ! Les intervalles
de conance que nous avons crits pour la loi dchantillonnage m
2
navaient
donc pas de sens ; seuls les estimateurs de (10) (cd. les centres des inter-
valles de conance en question) en avaient un.
[]
*
**
De manire gnrale, on retiendra bien lide suivante :
iq.a Mmorandum.
Il ny a pas une faon de calculer une intgrale par la mthode de
Monte-Carlo, mais une innit, en fonction du choix de la loi dchan-
tillonnage.
Le choix de la loi dchantillonnage est pratiquement libre. Il doit tou-
tefois vrier les contraintes suivantes :
La loi dchantillonnage doit avoir une densit non nulle en
presque-tous les points o la fonction intgrer est non nulle ;
[]. Vous voyez donc sur cet exemple quil nest pas toujours vident de dtecter exp-
rimentalement que la condition L
2
nest pas vrie. On pourrait en fait montrer quici,
les chose se passent numriquement comme dans le cas L
2
tant que N 200 000.
cole des Mines de Nancy
La mthode de Monte-Carlo 1
Figure 1 chantillonnage de Monte-Carlo ( gauche) contre chantillonnage
rgulier ( droite)
On doit pouvoir calculer la densit de la loi dchantillonnage ;
Si on souhaite donner des intervalles de conance gaussiens, on
doit veiller ce que la variable alatoire quon se ramne intgrer
soit L
2
.
[]
i.a Remarque. videmment, tout ce que nous avons dit dans le cas des fonc-
tions support non borne sapplique aussi au fonctions support born :
le mmorandum 1.a reste entirement valables pour ces fonctions-l, et le
thorme 1:.a nest donc quune option parmi dautres.
I.4.c Comparaison avec les mthodes dintgration dtermi-
nistes
Reprenons lexemple de la I.4.a sur le calcul du volume de la 6-boule.
Que se serait-il pass si, au lieu de tirer nos points au hasard, nous les avions
rpartis rgulirement ? En dautres termes, nos 1 000 000 points auraient
constitu une grille hypercubique de
6

1 000 000 = 10 points de ct,


chaque point de la grille tant au centre dun petit hypercube pavant Q
(voir la gure I.4.c pour une illustration de cette ide en dimension 2). La
valeur de Vol(B) que nous aurions ainsi value aurait correspondu au calcul
de
64

(n
1
,...,n
6
){1,...,10}
6

_
_
1+2
n
1
1/2
10
_
2
+. . .+
_
1+2
n
6
1/2
10
_
2
1
__
1 000 000, (16)
o (A) est une notation alternative pour 1
A
. Cette valeur est gale environ
4,891, ce qui est nettement moins bon quavec la mthode de Monte-Carlo.
Pire : si nous essayons de calculer un intervalle derreur, en encadrant lint-
grale de 1
Q
sur chaque petit cube de notre maillage partir de ses inmum
et supremum sur ce cube, nous obtenons seulement que
Vol(B) [1,355; 15,619], (17)
[]. noter que le fait que la v.a. soit L
1
(qui est la condition pour que la mthode de
Monte-Carlo converge, sans spcication sur la vitesse) est automatiquement satisfait ds
que lintgrale calculer est bien dnie.
cole des Mines de Nancy
16 La mthode de Monte-Carlo
ce qui est certes juste, mais terriblement dcevant !
Comment se fait-il que la mthode de Monte-Carlo soit meilleure que la
mthode dterministe ? Le point est le suivant : quand on utilise la mthode
de Monte-Carlo, lerreur dvaluation en chaque point est importante, mais
comme ces erreurs sont centres et indpendantes, leur accumulation crot
seulement en N
1/2
quand il y a N termes sommer. Avec la mthode dter-
ministe, par contre, lerreur commise chaque terme est certes plus petite,
mais rien ne permet dexclure que toutes ces erreurs aillent dans le mme sens
(et de fait, cest le cas dans certaines situations), et du coup laccumulation
des erreurs fait cette fois apparatre un facteur N.
Ainsi, dans le cas de lintgration dterministe dune fonction rgulire
par la mthode du point mdian,
[]
lerreur dvaluation en chaque point
dcrot en O(N
2/d
), ce qui donne galement une erreur en O(N
2/d
) aprs
sommation; tandis quavec la mthode de Monte-Carlo, lerreur dvalua-
tion en chaque point est en O(1), mais aprs sommation on obtient du
O(N
1/2
). partir de la dimension 5, cest donc la mthode de Monte-Carlo
qui converge le plus vite.
De plus, quand on intgre une fonction peu rgulire (comme par exemple
notre fonction 1
|x|1
, qui tait discontinue), il peut arriver que la convergence
de la mthode dterministe soit encore plus lente,
[]
au point que la mthode
de Monte-Carlo (dont lecacit ne dpend pas de la rgularit de la fonc-
tion) lemporte mme en dimension infrieure 4.
On pourra donc retenir le mmorandum suivant :
i6.a Mmorandum.
cot de calcul x, les mthodes dintgration dterministes sont
dautant moins ecaces que la dimension de lespace ambiant est le-
ve.
La mthode de Monte-Carlo, en revanche, converge toujours vitesse
O(N
1/2
) quand on a N points simuler ( condition toutefois que la
variable intgrer soit L
2
), quelle que soit la dimension.
partir de la dimension 5, il est recommand dutiliser systmatique-
ment la mthode de Monte-Carlo, sauf cas trs particulier.
Les mthodes dterministes requirent en outre, pour fonctionner ef-
cacement, que la fonction intgrer soit susamment rgulire.
linverse, la mthode de Monte-Carlo est indirente la rgularit
de la fonction : on la privilgiera donc pour intgrer les fonctions peu
rgulires, mme en petite dimension.
[]. Il peut toutefois exister dautres mthodes dterministes plus ecaces quand la
fonction intgrer est de classe au moins C
3
.
[]. Dans le cas de la fonction 1
|x|1
, par exemple, la mthode dterministe avec inter-
valle de certitude converge seulement en O(N
1/6
). (Cela dit, on pourrait en fait montrer
que la valeur estime du volume converge pour sa part vitesse O(N
1/3
), soit aussi vite
que pour une fonction rgulire).
cole des Mines de Nancy
La mthode de Monte-Carlo 1
I.5 Choix de lchantillonnage
I.5.a Notion decacit
Nous avons soulign dans la dernire section ci-dessus quil existait plu-
sieurs faons dappliquer la mthode de Monte-Carlo pour le calcul dune
mme intgrale. Une question naturelle se pose alors : y en a-t-il qui soient
meilleures que dautres, et si oui lesquelles ?
Dans un premier temps, nous allons tudier cette problmatique dans
un cadre abstrait. Nous supposons donne une mesure de rfrence note dx
(dont la masse totale peut tre aussi bien nie quinnie) telle que lintgrale
calculer scrive
I :=
_

f(x) dx (18)
pour une certaine fonction dx-intgrable f. Pour calculer I par la mthode de
Monte-Carlo, nous utilisons une loi dchantillonnage P
m
ayant une densit
m par rapport dx, i.e. dP
m
(X = x) = m(x)dx; comme P
m
est une loi de
probabilit, cela signie quon doit avoir m(x) 0 x et
_

m(x) dx = 1. On
suppose en outre que m est telle que m(x) > 0 ou f(x) = 0 dx-presque-
partout ; on peut alors crire I = E
m
[f/m] et donc appliquer le thorme
.a. On aura convergence en O(N
1/2
) si f/m est L
2
pour la loi P
m
, cd. si
_

f(x)
2
m(x)
1
dx < .
Ce critre L
2
est donc la premire condition pour avoir une bonne vitesse
de convergence. Toutefois, il existe une innit de fonctions m qui le vrient,
et si toutes ces fonctions convergent certes en O(N
1/2
), la constante cache
dans la notation grand O peut tre trs dirente de lune lautre !
Quelle est cette constante ? La rponse est apporte par le thorme suivant,
qui est un simple ranement du thorme j.b en utilisant que lestimateur

N
converge vers :
i.a Thorme. Soient X une v.a. relle L
2
dont on cherche dtermi-
ner lesprance par la mthode de Monte-Carlo, et L un niveau de conance.
Alors lintervalle de conance de niveau asymptotique L donn par la m-
thode du thorme j.b a une longueur quivalente, quand le nombre dexp-
riences N tend vers linni,
2

2erf
1
(L) Var(X)
1/2
N
1/2
, (19)
o erf
1
dsigne la fonction derreur inverse, cd. la fonction rsiproque de
erf.
En outre, si X est maintenant une v.a. L
1
mais pas L
2
, alors la conver-
gence de la mthode de Monte-Carlo est strictement plus lente que O(N
1/2
),
au sens o N
1/2
[ m
N
E(X)[
pba
+ quand N .
Le thorme 1.a nous donne la vitesse de convergence dune mthode de
Monte-Carlo en fonction du nombre de simulations eectues. En pratique,
ce qui nous limite nest pas le nombre de simulations, mais le temps de
calcul. Ce temps de calcul est manifestement proportionnel au nombre de
simulations, mais le facteur de proportionnalit peut varier dune mthode
lautre, en fonction :
De la complexit de la simulation de la loi P
m
;
cole des Mines de Nancy
18 La mthode de Monte-Carlo
De la complexit du calcul de la densit m;
[]
Dans une moindre mesure, du fait que la mesure P
m
privilgie des
zones o les calculs sont plus ou moins compliqus.
Si nous notons
m
le temps moyen dune tape de calcul (chaque tape in-
cluant non seulement la simulation de la loi P
m
, mais aussi le calcul de f/m)
pour la loi dchantillonnage m, on voit donc que si on dispose dun temps de
calcul t, le temps de calcul pour obtenir un intervalle de conance de niveau
L de longueur est quivalent, quand 0,
8erf
1
(L)
2

m
Var
m
(X)
2
. (20)
iS.a Dnition. On dnit lecacit dune mthode de Monte-Carlo cor-
respondant la loi dchantillonnage P
m
comme c
m
:= 1/(
m
Var
m
(X)).
Lecacit est donc dnie de sorte qu niveau de conance et prcision
gaux, le temps de calcul ncessaire lvaluation une intgrale par la m-
thode de Monte-Carlo soit directement inversement proportionnel leca-
cit de cette mthode.
Par consquent, pour choisir entre deux mthodes de Monte-Carlo, la
rgle est simple : il faut toujours opter pour celle dont lecacit est la plus
grande !
i.b Remarque. Lecacit est une grandeur dimensionne : quand la quan-
tit valuer est adimensionne, elle est homogne linverse dun temps, et
plus gnralement si la quantit valuer est homogne un truc, lecacit
est homogne un truc
2
temps
1
.
i.c Remarque. Lecacit dpend des dtails de la programmation et de
la machine utilise. Il se peut mme quen fonction de ces paramtres, une
mthode soit tantt moins ecace quune autre et tantt plus !
Et comment valuer lecacit dune mthode ? Trs simplement, en lan-
ant une srie de simulations puis en regardant le temps mis et la variance
estime. Le nombre de simulations eectues sera choisi susamment grand
pour que lvaluation de lecacit soit assez prcise, mais pas trop an que
le temps de calcul consacr celle-ci reste faible. 1 000 simulations semble
un choix raisonnable.
i.d Astuce. Calculer lecacit dune mthode de Monte-Carlo prend peu
de temps par rapport la simulation nale ; nhsitez donc pas le faire chaque
fois que vous hsitez entre deux mthodes !
I.5.b chantillonnage idal
Dans cette sous-section, nous allons dterminer quelle est la loi dchan-
tillonnage la plus ecace nombre de simulations x. Lintrt de cette
[]. Notez que le fait quune loi soit simple simuler ne garantit aucunement que sa
densit soit simple calculer : ainsi, la somme indpendante dune loi normale et dune loi
de Cauchy na pas dexpression analytique... linverse, la plupart des lois dont la densit
est simple calculer peuvent tre simules assez facilement grce la mthode de rejet,
encore quil y ait des exceptions par exemple, je ne vois pas comment simuler par rejet
la loi sur R dont la densit en x vaut 2
n
si x est distance moins de 1/4
n
dun entier
n 2 et 0 sinon...
cole des Mines de Nancy
La mthode de Monte-Carlo 1j
tude sera videmment limit par le fait quelle ne prenne pas en compte le
temps de calcul par simulation, mais, comme nous lavons observ en 18.c,
ce dernier dpend des dtails dimplmentation et darchitecture de lordina-
teur et ne pourrait donc pas tre abord dun point de vue rigoureusement
mathmatique.
Si nous reprenons le formalisme de la I.5.a, le nombre de simulation
requis pour atteindre une prcision donne, daprs le thorme 1.a est
dautant court que Var
m
(f/m) est petit. Or
Var
m
(f/m) = E
m
(f
2
/m
2
) E
m
(f/m)
2
=
_

f(x)
2
m(x)
dx I
2
. (21)
Pour optimiser notre mthode de Monte-Carlo, il faut donc minimiser
_

f(x)
2
m(x)
1
dx sous la contrainte que m est une densit de probabilit.
Comme [f(x)[ = [f(x)
2
/m(x)]
1/2
m(x)
1/2
, daprs lingalit de
CauchySchwarz,
_

[f(x)[dx
_
_

f(x)
2
m(x)
_
1/2

_
_

m(x) dx
_
1/2
. (22)
Mais comme m est une densit de probabilit, la troisime intgrale de lex-
pression ci-dessus vaut 1, do
_

f(x)
2
m(x)
dx
_
_

[f(x)[ dx
_
2
. (23)
Si nous arrivons trouver un cas dgalit pour (23), celui-ci optimisera donc
la vitesse de convergence. Or pour avoir cas dgalit dans CauchySchwarz,
il sut (et il faut) que f(x)
2
/m(x) soit proportionnelle m(x), cd. que
m(x)
2
f(x)
2
, soit m(x) [f(x)[. Ainsi,
iq.a Thorme. Lunique loi qui minimise Var
m
(f/m) correpond la den-
sit
m
ideale
(x) =
[f(x)[
_

[f(x)[ dx
. (24)
ij.b Remarque. Pour une telle loi, la fonction f/m dont on prend lesprance
est alors de valeur absolue constante avec le mme signe que f. En particulier,
si f est de signe constant, on se retrouve alors avec f/m constante : la
mthode de Monte-Carlo revient alors calculer lesprance dune constante,
et la variance en rsultant est nulle !
Au vu de la remarque ci-dessus, le thorme 1j.a semble trop beau pour
tre honnte... De fait, il est inapplicable : en eet, pour calculer m
ideale
(x),
il faudrait connatre
_

[f(x)[ dx; or quand f est positive, cest prcisment


lintgrale que nous cherchons calculer depuis le dpart ! Et de manire
gnrale, il est peu plausible quon connaisse
_
[f[ si on ignore la valeur de
_
f. Sans compter quil faudrait aussi savoir simuler P
m
ideale
...
I.5.c Principe dchantillonnage prfrentiel
Malgr ses limitations pratiques, le thorme 1j.a suggre quand mme
lheuristique suivante pour choisir une loi dchantillonnage :
cole des Mines de Nancy
:o La mthode de Monte-Carlo
iq.c Mmorandum.
Pour obtenir une mthode de Monte-Carlo ecace, il faut essayer
de prendre une loi dchantillonnage dont la densit soit le plus
proportionnelle possible [f[.
Un bon critre est souvent de choisir m de sorte que m / [f[ soit
borne la fois infrieurement (par une quantit > 0 sentend) et
suprieurement. Si on ne peut satisfaire quune seule de ces conditions,
il faut toujours favoriser la premire.
Expliquons pourquoi il vaut toujours mieux que m / [f[ scarte vers de
grandes valeurs plutt que vers de petites. Sil y a un endroit o m est trs
grande par rapport [f[ (par exemple, o m serait non nulle alors que f
est nulle), tout ce que cela signie est quon va perdre un peu de temps
chantillonner une zone qui ne contribue presque pas lintgrale I. Mais si
linverse il y a un endroit o m est trop petite, cest beaucoup plus grave :
en eet, cest une zone dans laquelle [f[/m sera gigantesque, de sorte que
lestimateur de I sera extrmement sensible la moindre visite en plus ou
en moins dans cette zone (mme si ces visites seront rares) et que la variance
risque de devenir trs grande.
Pour illustrer cette ide, regardons les deux densits de probabilit f et
g sur [, +1] dnies par
_
f(x) := M
1
, g(x) := M pour x < 0 ;
f(x) := 1 M
1
, g(x) := 1 M pour 0 x 1,
(25)
o M 1 est destin tendre vers et M
1
est destin tendre
vers 0. En chantillonnant selon la densit g pour calculer
_
f, on trouve une
variance quivalente M, tandis quen chantillonnant selon la densit f
pour calculer
_
g, la variance est quivalente M
3
. Cela montre bien que
le cas o la densit est par endroits beaucoup plus grande que la fonction
intgrer est moins dfavorable que celui o cest linverse.
Dans le jargon des mthodes de Monte-Carlo, le choix dune loi dchan-
tillonnage privilgiant les endroits o la valeur de la fonction intgrer est
grande est appel chantillonnage prfrentiel [importance sampling en an-
glais].
I.5.d Exemples
Pour illustrer les ides du mmorandum 1j.c, voyons comment nous pou-
vons les appliquer au calcul de lintgrale (10). On aimerait trouver une loi
facile simuler, dont la densit soit facile calculer et ressemble le plus pos-
sible 1/(1+[x[
3
). Nous avons dj vu dans la I.4.b que le densit m
1
cor-
respondant la loi (auchy(1) semblait plus ecace que la loi Toublecxp(1),
ce qui ne nous tonne pas au vu des critres que nous avons donn pour trou-
ver une bonne densit m : en eet, le rapport m
1
/f (o f note 1/(1+[x[
3
))
est born infrieurement alors que le rapport m
2
/ f ne lest pas au point,
mme, que f/m
2
nest mme pas L
2
(P
2
) en loccurrence. Esayons mainte-
nant de trouver une loi dchantillonnage encore plus ecace que m
1
. Je
propose une loi de Cauchy de paramtre 0,65 :
m
3
(x) :=
0,65
(0,65
2
+x
2
)
, (26)
cole des Mines de Nancy
La mthode de Monte-Carlo :1
3 2 1 0 +1 +2 +3
f
m
1
m
2
m
3
m
4
Figure 2 La courbe de la fonction f(x) = 1/(1 +[x[
3
) et celles des densits m
1
,
m
2
, m
3
et m
4
. La fonction f a t mise lchelle pour que son intgrale vaille 1,
de faon faciliter la comparaison avec les direntes densits.
dont la densit ressemble beaucoup plus au prol de la fonction intgrer, au
moins visuellement (cf. gure 2). Lalgorithme de Monte-Carlo utilisant cette
loi dchantillonnage est prsent en III.4.c. Quand je compare lecacit de
cette mthode avec celle utilisant la densit de Cauchy m
1
, je trouve les
ecacits suivantes :
[]
Densit m
1
: 85 000 s
1
;
Densit m
3
: 160 000 s
1
.
On voit queectivement, le calcul avec la densit m
3
est plus ecace quavec
la densit m
1
: presque deux fois plus !
Une autre ide pour amliorer la proportionnalit entre m et f est de
carrment changer le type de loi utilis. En eet, un dfaut des densits de
Cauchy (quel que soit leur paramtre) pour notre objectif est quelles ont une
dcroissance en (x
2
) linni, ce qui fait quelles ne sont jamais bornes
infrieurement par rapport la fonction intgrer dont la dcroissance est
en (x
3
). Nous allons donc essayer de trouver une loi dont la densit soit
borne la fois infrieurement et suprieurement par rapport f, tout en
tant facile simuler et en ayant une densit facile calculer. Je propose la
densit suivante :
m
4
(x) :=
_
1/3 [x[
3
si [x[ > 1 ;
1/3 si [x[ 1,
(27)
qui eectivement ressemble visuellement beaucoup plus la vraie densit sur
toute la zone [x[ 2 [voir gure 2]. Un algorithme simple pour simuler cette
loi est le suivant :
1. Tirer une v.a. Y uniforme sur (0, 1) ;
[]. Jai fait mes calculs decacit avec N = 15 000, car pour N = 1 000 le calcul tait
tellement rapide que lvaluation du temps de calcul par MATLAB manquait de prcision.
cole des Mines de Nancy
:: La mthode de Monte-Carlo
2. Avec probabilit 1/6, renvoyer X = Y
1/2
; avec probabilit 4/6, ren-
voyer X = 1 + 2Y ; avec probabilit 1/6 renvoyer X = +Y
1/2
.
Si nous appliquons lalgorithme de Monte-Carlo avec cette loi [voir code
en III.4.d], on trouve une ecacit denviron 450 000 s
1
: la calcul est encore
presque trois fois plus rapide !
...a Remarque. Essayer davoir une densit dchantillonnage peu prs pro-
portionnelle lintgrande est une bon prcepte ; cependant il faut toujours
mettre cette recommandation en regard du temps de calcul ncessaire la
simulation de la variable alatoire et au calcul de la densit !
Dans les exemples ci-dessus, quand nous passions de la loi dchantillon-
nage P
1
la loi P
3
, seuls les paramtres changeaient, de sorte que nous
pouvions lgitimement nous attendre ce que le temps de calcul par tape
de simulation reste pratiquement inchang
[]
et donc que seul joue, pour
comparer lecacit des deux lois, lecacit par tape
[]
celle que le
thorme 1j.a optimise. Quand nous passons de la loi P
3
la loi P
4
, en re-
vanche, il nest pas vident de deviner si la complexit des calculs pour la
nouvelle loi sera plus grande ou plus petite (ventuellement de beaucoup !)
que celle pour lancienne...
[]
On aurait trs bien pu imaginer que la vitesse
de calcul de chaque tape devienne tellement plus lente avec la loi P
4
que
cela aurait compltement annul le gain au niveau de lecacit par tape !
...b Remarque. Pour continuer sur la remarque prcdente, il ne faut pas
perdre de vue non plus que loptimisation de la programmation peut aussi
conduire des gains de vitesse tout--fait consquents ! On pensera donc
ne pas seulement comparer lecacit entre deux mthodes de Monte-Carlo
direntes, mais aussi entre deux implmentations dune mme mthode de
Monte-Carlo...
...c Remarque. Mme sans tenir compte du critre du temps de calcul par
tape, il nest pas toujours facile de deviner a priori quelle densit aura la
meilleure ecacit par tape... Qui saurait dire, juste en regardant la gure 2,
que Var
4
(f/m
4
) est trois fois plus petit que Var
3
(f/m
3
), lui-mme deux
fois plus petit que Var
1
(f/m
1
), et que Var
2
(f/m
3
) est inni ? Les critres
du mmorandum 1j.c peuvent nous guider, mais eux-mmes ne marchent
pas toujours comme prvu... Il faut donc savoir rester ouvert desprit et ne
pas dnigrer trop vite un choix de densit : bien souvent, rien ne remplace
lexprience.
*
**
Dans les deux exemples prcdents, la mesure de rfrence que nous
avions tait une mesure de Lebesgue (resp. sur R et R
16
). Mais le prin-
cipe dchantillonnage prfrentiel marche en fait aussi bien par rapport
nimporte quel type de mesure de rfrence, y compris sur des espaces de
probabilit abstraits ! Voici un exemple illustrant cette ide.
[]. De fait, ctait eectivement le cas.
[]. Ce que jappelle ecacit par tape , en regard du thorme .a, est la
quantit 1/ Var
m
(f/m) : avec cette dnition, lecacit dune mthode est le produit
ecacite par etape nombre d

etapes calculees par unite de temps.


[]. En loccurrence, il se trouve que le temps que calcul par tape est pratiquement le
mme dans les deux cas.
cole des Mines de Nancy
La mthode de Monte-Carlo :
On considre ici la loi de probabilit P correspondant 100 lancers suc-
cessifs dune pice de monnaie quilibre, et on introduit la variable alatoire
X comptant le nombre de pile lissue de ces lancers. On cherche va-
luer la valeur de E((X 60)
+
) =: R, o a
+
:= max(x, 0) dsigne la partie
positive dun nombre a R. Daprs le thorme-limite central, X prendra
lessentiel de ses valeurs entre 40 et 60, de sorte que (X
6
0)
+
sera le plus
souvent nul : la loi P elle-mme est donc un mauvais chantillonnage ! Nous
cherchons donc une loi P

respectant mieux le principe dchantillonnage pr-


frentiel, qui soit facile simuler et donc on connaisse facilement la densit
par rapport P. Un exemple de telle loi est la loi correspondant 100 lancers
successifs dune pice pipe qui a une probabilit de 60 % de tomber sur pi-
le chaque lancer : en eet, si est une srie possible de 100 lancers dans
laquelle il y a X() pile et 100 X() face, on a P() = 1/2
1
00 contre
P

() = 0,6
X
() 0,4
100X()
, do
dP

dP
=
_
0,6
0,5
_
X
_
0,4
0,5
_
100X
. (28)
Le rle de m est ainsi jou par le membre de droite de (28), et on peut
nalement crire la formule dchantillonnage prfrentiel :
R = E

_
(X 60)
+
_
0,6
0,5
_
X
_
0,4
0,5
_
100X
_
. (29)
*
**
Pour nir, voyons un exemple o lchantillonnage prfrentiel est prati-
quement indispensable. Dans cet exemple, nous allons essayer de calculer le
volume de la boule unit de dimension 16. Naturellement, la mthode prsen-
te la I.4.a pour le volument de la 6-boule sadapte immdiatement ce
cadre ; hlas, les rsultats quelle donne sont cette fois-ci catastrophiques : en
eet, en lanant les calculs pour N = 100 000, je trouve un estimateur gal
... 0 (et avec un intervalle de conance de largeur nulle, donc compltement
faux) !! En dautres termes, nos 100 000 simulations sont toutes tombes en-
dehors de la boule... En poussant les calculs jusqu N = 10 000 000 (ce
qui commence prendre du temps, prs dune minute chez moi), je trouve
que 33 simulations seulement tombent dans la sphre ce qui me donne
un intervalle de conance 95 % gal [0,14; 0,30], soit gure quun ordre
de grandeur. Il se trouve en eet quen grande dimension, la sphre a une
forme trs dirente du cube (dans un sens qui pourrait tre rendu rigou-
reux), ce qui explique la faillite de notre mthode.
Du coup, on cherche plutt une loi dchantillonnage dont la densit res-
semble susamment 1
B
... Justement, les gaussiennes isotropes ont une
symtrie sphrique, aussi allons-nous essayer de prendre comme loi dchan-
tillonnage A(
1
16
I
16
) le facteur dchelle
1
16
est choisi de sorte que les
points que nous chantillonnerons auront une distance lorigine moyenne
(en moyenne quadratique
[]
) de 1, et seront donc proches du bord de la
[]. Ce quon appelle moyenne quadratique dune v.a. positive X est E[X
2
]
1/2
.
cole des Mines de Nancy
: La mthode de Monte-Carlo
boule, ce qui parat raisonnable.
[]
Cette loi est facile simuler comme 16-
uplet de variables A(
1
16
) indpendantes, et sa densit est tout aussi facile
calculer : m(x) = (8/)
8
exp(8|x|
2
2
). Ainsi programm avec N = 10 000,
je trouve en moins dune seconde de calcul un intervalle de conance 95 %
de [0,232 ;0,238], soit dj une prcision trs acceptable.
[]
En termes de-
cacit, le gain sur ma machine est dun facteur environ 50 000 !
..a Astuce. Lchantillonnage prfrentiel est particulirement crucial
quand la dimension est trs grande (donc en particulier en dimension in-
nie, comme cest gnralement le cas avec les processus) : en trs grande
dimension, un mauvais chantillonnage peut causer une perte decacit
dramatique au point de rendre le calcul non concluant !
I.5.e Manipulations prliminaires lchantillonnage prf-
rentiel
Le principe dchantillonnage prfrentiel, nous venons de le voir, peut
permettre des gains decacit spectaculaires, en particulier quand la fonc-
tion quon chantillonne est trs htrogne. Dans cette sous-section, nous
allons voir quil est parfois possible de procder certaines manipulations
prlimiaires an de transformer une esprance de fonction peu htrogne
(donc se prtant mal lchantillonnage prfrentiel) en une fonction sur
laquelle lchantillonnage prfrentiel est beaucoup plus ecace.
Dans la mesure o il ny pas de vritable thorie derrire cette astuce,
nous allons simplement en donner deux exemples pour la prsenter.
*
**
Dans notre premier exemple, nous reprenons la loi P du tirage de 100
lancers pile ou face et la variable X comptant le nombre de pile, et
notre objectif est dvaluer E([X 60[). Lintgrande [X 60[ nest pas
particulirement htrogne, de sorte quon voit mal quel chantillonnage
prfrentiel on pourrait appliquer ce cas. Mais maintenant, nous observons
que
[X 60[ = 2(X 60)
+
(X 60). (30)
Or, comme nous connaissons exactement E(X) = 50, nous pouvons en d-
duire que
E
_
[X 60[
_
= 10 2 E(X 60)
+
, (31)
ce qui nous ramne un des exemples de la I.5.d, pour lequel nous avons
vu que lchantillonnage prfrentiel tait trs ecace !
..b Remarque. Lide ci-dessus est proche de la technique de la variable de
contrle qui sera prsente la II.4, puisque dans les deux cas on sous-
trait la fonction intgrer une fonction auxiliaire desprence commune
pour amliorer les calculs. Toutefois, il y a une dirence importante entre
les deux mthodes. Dans la technique de la variable de contrle, en eet,
on utilise la fonction auxiliaire pour rduire la variance de la fonction in-
tgrer sans changer la loi dchantillonnage. Dans le cas que nous venons
[]. En fait, cest le seul choix raisonnable, car en grande dimension lessentiel de la
masse des boules se situe proximit immdiate de leurs bords.
[]. La valeur exacte est
8
/40 320 0,235 331.
cole des Mines de Nancy
La mthode de Monte-Carlo :
de prsenter, en revanche, la fonction auxiliaire ne rduit pas forcment la
variance de lintgrande (par exemple, la fonction auxiliaire peut trs bien
tre constante), mais le point est que la nouvelle fonction en laquelle elle
la transforme se prte bien changer la loi pour appliquer lchantillonnage
prfrentiel a posteriori. Vous observerez en particulier que la technique que
nous venons de dcrire sutilise avant le choix de la loi dchantillonnage,
alors que la technique de la variable de contrle sutilise aprs et du reste,
les deux techniques peuvent trs bien tre utilises ensemble dans certains
cas !
*
**
Dans notre second exemple, nous reprenons le problme du yahtzee de la
I.2.a. On cherche un chantillonnage prfrentiel qui favorise les yahtzees.
Une ide est de piper les ds pour quils retombent plus souvent sur 6, ce
qui augmente eectivement la frquence doccurrence des yahtzees de 6,
mais cet chantillonnage a en fait un gros cueil car il contribue aussi
notablement sous-reprsenter des yahtzees de 1, 2, 3, 4 ou 5, de sorte
quen fait la variance va exploser au lieu de diminuer ! Do lide suivante :
on observe que par des arguments de symtrie, la proportion de yahtzees de
6 est en fait un sixime de la proportion de yahtzee tout court,
[]
donc on
peut utiliser notre chantillonnage prfrentiel pour valuer la proportion de
yahtzee de 6 (cette fois-ci, lchantillonnage est eectivement adapt), puis
multiplier le rsultat obtenu par 6 pour valuer p. Le code correspondant est
donn en III.1.c.
I.5.f chantillonnage interstrates
..a Remarque. Cette sous-section est intimement lie la II.5, quil peut
donc tre utile de lire en mme temps que celle-ci.
Supposons quon nous demande de calculer une somme E
1
(f
1
) + E
2
(f
2
)
par la mthode de Monte-Carlo, et quon ait dj choisi les lois P
1
et P
2
qui
serviront chantillonner respectivement f
1
et f
2
(par exemple daprs le
principe dchantillonnage prfrentiel). Il nous reste encore un paramtre
rgler : quelle proportion de notre temps de calcul allons-nous consacrer
lvaluation de E
1
(f
1
), et quelle proportion celle de E
2
(f
2
) ?
Pour clarier notre prsentation, prenons un exemple. Imaginons que le
Pape dsire connatre avec prcisions nombre de catholiques sur lle dIr-
lande. Cette le est divise en deux parties assez homognes : lIrlande du
Sud, qui comporte une population totale dexactement M
1
= 4 500 000 hab
(ce quon sait daprs le recensement) et o il y a une proportion p
1
de
Catholiques valant grosso-modo 90 %, et lIrlande du Nord, qui comporte
exactement M
2
= 1 800 000 hab et o la proportion p
2
de Catholiques vaut
environ 50 %.
[]
On suppose quchantillonner lIrlande du Sud, resp. du
[]. Attention, ce nest pas tout--fait vrai dans le programme de lannexe III.1.a, car
celui-ci ne traite pas tous les chires de la mme faon : en cas dgalit, il retient en eet
le plus petit des chires les plus prsents, ce qui augmente la proportion de yahtzees de
1 au dtriment de ceux de 6. Il faudra donc modier cet algorithme pour le rendre
symtrique : voir annexe III.1.c.
[]. NdA : Bien quinspirs de la ralit pour des raisons pdagogiques, ces chires nont
cole des Mines de Nancy
:6 La mthode de Monte-Carlo
Nord, est facile, car il sut de prendre la premire route venue et dinterro-
ger les personnes quon y croise
[]
. Le temps requis pour procder au sondage
est proportionnel au nombre de personnes interroges dans les deux rgions,
mais un peu lent en Irlande du Sud (o lon croise une personne toutes les

1
= 3 min) quen Irlande du Nord (o on croise une toutes les
2
= 2 min).
Dans cet exemple, P
1
est la loi dchantillonnage uniforme au Sud, P
2
est
lchantillonnage uniforme au Nord, et f
1
et f
2
sont respectivement M
1
fois
lindicatrice dtre catholique et M
2
fois lindicatrice dtre catholique
En se rappelant que la variance de lindicatrice dun vnement de proba-
bilit p vaut p(1p), on calcule alors que lecacit de lvaluation de E
1
(f
1
)
par la mthode de Monte-Carlo est alors gale c
1
= 1/(
1
M
2
1
p
1
(1p
1
))
1,83 10
13
hab
2
min
1
au Sud, contre c
2
= 1/(
1
M
2
1
p
1
(1 p
1
))
6,17 10
13
hab
2
min
1
au Nord. Ce qui nous intresse, toutefois, est
de comprendre lecacit globale dun chantillonnage o lon passerait une
proportion
1
du temps au Nord et une propostion
2
= 1
1
au Sud.
Dans ce cas, si on consacre un temps total T notre sondage, la variance
sur lestimateur de E
1
(f
1
) est gale 1/(
1
T) / c
1
et celle sur lestima-
teur de E
2
(f
2
) est gale 1/(
2
T) / c
2
. Comme les deux estimateurs
sont indpendants, leurs variances sajoutent et la variance totale est ainsi
1/(
1
T) / c
1
+ 1/(
2
T) / c
2
, do une ecacit globale de
c =
_
_

1
c
1
_
1
+
_
(1
1
)c
1
_
1
_
1
. (32)
Optimiser cette expression en
1
est un exercice facile : on trouve quil faut
choisir les
i
proportionnels aux c
1/2
i
, soit

1
=
c
1/2
1
c
1/2
1
+c
1/2
2
64,8 %, (33)
et donc
2
35,2 %. On peut aussi calculer que lecacit globale associe
est de 7,67 10
14
hab
2
min
1
. Ainsi, bien que les Irlandais du Sud consti-
tuent 71,4 % de la population (et 81,8 % de la population catholique), on ne
passe que 64,8 % du temps les interroger et cest pire encore en termes
de nombre de personnes interroges : les Irlandais du Sud ne constituent que
55,1 % de notre chantillon !
*
**
La conclusion ci-dessus est paradoxale, car elle semble contrevenir au
principe dchantillonnage prfrentiel. Je mexplique. Notant M := M
1
+
M
2
= 6 300 000 hab la taille totale de la population f la fonction M
fois indicatrice dtre catholique et P la loi uniforme sur la population de
lle dIrlande, la quantit que nous cherchons calculer peut scrire E(f).
Lchantillonnage que nous venons de dcrire, savoir de constituer notre
chantillon avec des fractions dsquilibres de sudistes et de nordistes, est
simplement un chantillonnage prfrentiel : si nous notons
1
la fraction
de valeur quillustrative et ne prtendent aucunement reter la situation de la vritable
Irlande.
[]. Dans la vraie vie, un tel chantillonage ne serait videmment absolument pas ind-
pendant, ni mme uniforme !
cole des Mines de Nancy
La mthode de Monte-Carlo :
du panel constitu par les Sudistes et
2
= 1
1
celle constitue par les
Nordistes, la densit dchantillonnage est
1
M/M
1
au Sud et
2
M/M
2
au
Sud, ce qui correspond une loi dchantillonnage que nous noterons P

. La
formule de lecacit (dnition 18.a) donne alors :
c

=
_
E

() Var

(f)
_
1
. (34)
Loptimisation de cette ecacit en (sous la contrainte
1
+
2
= 1) donne,
daprs le thorme :8.a ci-aprs, un chantillonnage optimal correspondant

1
76,4 % de lchantillon pris au Sud, ce qui est donc au contraire un
surchantillonage du Sud et cest pire encore en termes de temps consacr :
82,9 % au Sud! Quant lecacit optimale que nous obtenons, elle nest
cette fois-ci que de 5,82 10
14
hab
2
min
1
...
O est lerreur ? En fait, la situation que nous venons de dcrire nest
pas quivalente la premire, car nous ny avons pas tenu compte de lin-
formation dont nous disposions sur la stratication, savoir les donnes
exactes des recensements. En dautres termes, dans notre nouvelle situation,
la proportion dhabitants du Sud et du Nord dans lchantillon peut uctuer
alatoirement autour de sa valeur moyenne, et on ne rectie pas ces uc-
tuations en fonction des donnes du recensement. Comme les proportions
de Catholiques au Sud et au Nord sont trs direntes, ces uctuations se
rpercutent sur la proportion globale de Catholiques dans notre chantillon,
et on a donc intrt les limiter en exagrant lchantillonnage du Sud. Cela
explique aussi que lecacit quon obtienne soit moins bonne que dans la
premire situation : ne tenant pas compte de linformation de stratication,
on perd ncessairement en variance !
Le paradoxe est donc rsolu. On en retiendra que le fait de tenir compte
de la stratication change radicalement les critres de lchantillonnage pr-
frentiel !
*
**
On peut immdiatement gnraliser lexemple que nous venons de traiter
en la rgle suivante :
z.a Thorme. Soit E
1
(f
1
) +. . . +E
k
(f
k
) une somme desprances quon
souhaite calculer par la mthode de Monte-Carlo associe aux chantillon-
nages respectifs P
1
, . . . , P
k
, ces chantillonnages tant raliss indpendam-
ment. Alors lallocation optimale des ressources de calcul consiste consacrer
au calcul de E
i
(f
i
) un temps proportionnel c
1/2
i
, et lecacit globale
vaut alors (c
1/2
1
+ +c
1/2
k
)
2
.
..b Remarque.
(i). Remarquez que nous avons bien prcis que nous nous placions dans
une situation o les chantillonnages taient raliss indpendamment :
si on a la possibilit dappliquer la technique des variables antithtiques
( II.3), il ny a donc pas lieu dutiliser ce thorme.
(ii). Remarquez galement que cest le temps de calcul consacr chaque
chantillonnage qui est proportionnel c
1/2
i
, et non pas le nombre
de simulations associes chaque calcul.
cole des Mines de Nancy
:8 La mthode de Monte-Carlo
z.c Corollaire. Dans le cas particulier o les temps de calcul par simu-
lation sont les mmes pour tous les E
i
(f
i
), le thorme ..a signie que le
nombre de simulations pour chaque E
i
(f
i
) doit tre inversement proportion-
nel lcart-type de f
i
.
I.5.g chantillonnage idal gnralis
Dans cette sous-section nous donnons une gnralisation du tho-
rme 1j.a qui tablit la loi dchantillonnage optimale en tenant compte :
Dune contrainte de type stratication, au sens o on ne sintresse
qu un sous-espace vectoriel de lensemble des lois dchantillonnage
possibles (ce qui nest pas de la stratication stricto sensu dans la
mesure o on ne prtend pas connatre la taille exacte de chanque
strate) ;
De lhtrognit ventuelle du temps de calcul par tape en fonction
de la strate dans laquelle on tombe (leet est rarement marqu pour les
simulations par mthode de Monte-Carlo, mais peut devenir important
en thorie des sondages).
zS.a Thorme. Soit (, /, P) un espace probabilis et B une sous-tribu
de /. Soit f : R une fonction de L
1
(/, P) dont on cherche dtermi-
ner lesprance par une mthode de Monte-Carlo, o lon choisit un chan-
tillonnage selon une densit m suppose B-mesurable.
[]
On suppose quune
valuation en prend un temps () et on note := E( [ B) ; on note
galement q := E(f
2
[ B). On note enn I = E(f). Alors loptimisation de
lecacit
c
m
=
_
_
E(q / m) I
2
_
E(m)
_
1
(35)
(sous la contrainte E(m) = 1) est atteinte pour
m =
_
q
I
2
+
_
1/2
, (36)
o est lunique constante assurant E(m) = 1.
Dmonstration (esquisse). On crit la drive de lecacit en utilisant les
drives logarithmiques, laquelle doit tre nulle ds lors que la perturbation
est desprance nulle : cela impose que le m optimal doit vrie une formule
de type m =
_
q / ( +)
_
1/2
. Les calculs donnent par ailleurs une relation
entre et (relation qui dpend de m elle-mme), relation qui se simplie
pour donner = I
2
quand on tient compte de lgalit E(m) = 1.
[]. Cest la tribu B qui exprime la stratication.
cole des Mines de Nancy
La mthode de Monte-Carlo :j
Chapitre II
Techniques de rduction de la
variance
II.1 Gnralits
Comme nous lavons vu dans la section prcdente, il importe davoir la
meilleure ecacit possible pour conomiser le temps de calcul et obtenir des
rsultats prcis par la mthode de Monte-Carlo. cette n, lchantillonnage
prfrentiel de la I.5.c est une premire technique tout--fait fondamentale.
Dans cette section, nous allons prsenter dautres mthodes permettant elles
aussi damliorer lecacit, qui cette fois-ci ne jouent pas sur le choix de
la loi dchantillonnage mais plutt sur une faon astucieuse de poser les
calculs.
Lensemble de ces techniques (incluant lchantillonnage prfrentiel)
sont appeles dans le jargon de Monte-Carlo techniques de rduction de va-
riance, puisque lecacit dune mthode de Monte-Carlo est inversement
proportionnelle, temps de calcul x, la variance de lestimateur fourni
par celle-ci.
Prcisons demble que rien nempche dutiliser conjointement les di-
verses techniques de rductions de variance : ces techniques ne sont donc pas
concurrentes, mais complmentaires !
II.2 Conditionnement
Pour expliquer la mthode de rduction de variance par conditionnement,
nous allons revenir au problme du yahtzee trait dans la I.2.a. Notons P
la loi dcrivant les rsultats successifs obtenus par le joueur au cours de ses
trois lancers (tant entendu que le joueur suit la stratgie optimale), et X
est la variable alatoire qui vaut 1 si le joueur a obtenu un yahtzee a lissue
de ses trois lancers et 0 sinon, de sorte que p scrive E(X). Maintenant,
notons B la tribu engendre par les rsultats des deux premiers lancers. On
peut toujours crire
p = E(X) = E
_
E(X[B)
_
(37)
daprs les rgles sur les esprances conditionnelles. A priori, cette rcriture
napporte aucune information nouvelle. Cependant, il se trouve que nous
sommes dans un cas o nous savons calculer facilement E(X [ B) =: Y ! En
cole des Mines de Nancy
o La mthode de Monte-Carlo
eet, lissue de ses deux premiers lancers, le joueur peut facilement calculer
la probabilit conditionnelle quil a dobtenir un yahtzee : sil a obtenu k
ds identiques, il va relancer les (5 k) autres ds en esprant que ceux-ci
tomberont tous sur la valeur des ds quil na pas relancs, ce qui se produit
avec probabilit (
1
6
)
5k
; on a donc Y = 6
K5
, o K est la variable alatoire
nombre de ds identiques obtenus lissue des eux premiers lancers ,
laquelle est bien B-mesurable.
Puisque p = E(Y ) et que nous savons simuler Y facilement, nous pouvons
valuer p par un mthode de Monte-Carlo que suggre cette criture. Le code
correspondant est donn lannexe III.1.b. On constate que lecacit de ce
nouvel algorithme est bien meilleure que celle de lalgorithme primitif :
sur ma machine, environ 800 000 s
1
contre 160 000 s
1
, soit un gain dun
facteur cinq !
Du point de vue thorique, il y a deux raisons pour lesquelles la mthode
valuant Y est plus ecace que la mthode valuant X :
Dune part, la variance de Y est plus petite que la variance de X (et
donc, daprs le thorme 1.a, lecacit par simulation est amlio-
re) : cela est assur par le thorme o.a sur lesprance conditionnelle
rappel ci-dessous.
Dautre part (et dans une moindre mesure), les simulations eectuer
sont plus simples puisquon na plus que deux lancers modliser au
lieu de trois.
Ces principes marchent de manire gnrale dans toute situation de
conditionnement. Aussi la mthode de conditionnement amliore-t-elle
presque systmatiquement lecacit (mme si pas forcment de faon fou-
droyante) quand on peut lappliquer. Nous rappelons ci-dessous le thorme
qui justie que lecacit par simulation est en tout cas toujours amliore :
o.a Thorme. Si X est une v.a. relle L
2
sur un espace probabilis
(, /, P) et que B une sous-tribu de /, alors Var
_
E(X[B)
_
Var(X), avec
galit (si et) seulement si X est B-mesurable (quitte la modier sur un
ensemble de mesure nulle).
.b Remarque. Quand lexpression calculer scrit sous forme intgrale, la
technique de conditionnement peut encore intervenir de faon dguise : si
on souhaite intgrer une fonction f(x, y) et quon connat
_
f(x, y) dy pour
tout x, le conditionnement consiste alors crire la formule de Fubini :
__
f(x, y) dxdy =
_
_
_
f(x, y) dy
_
dx. (38)
Il sagit bien de la mme ide, car le conditionnement est en fait une formule
du Fubini o le rle de dxdy et jou par P, celui de dx par la restriction de P
B et celui de dy par la loi conditionnelle de P connaissant B, f correspondant
alors X et
_
f(x, y) dy E(f [ B).
cole des Mines de Nancy
La mthode de Monte-Carlo 1
II.3 Variables antithtiques
II.3.a Exemple : dilemme rugbystique
Imaginons un match de rugby entre les quipes dAgen (A) et Brive
(B).
[]
Dans le modle simpli du rugby que nous prendrons ici, chaque
quipe dispose de 12 squences de jeu au cours du match. lissue de chacune
de ces squences, il se peut soit que lquipe soit repousse par son adversaire
(elle ne marque alors aucun point), soit quelle prenne lavantage. Quand
une quipe a pris lavantage, elle a le choix entre deux options : soit inscrire
une pnalit et marquer systmatiquement 3 points, soit tenter dinscrire un
essai. Dans ce dernier cas, lquipe marque 7 points si elle parvient inscrire
lessai, et aucun sinon.
Dans le match qui nous intresse, lquipe B sait quelle prendra lavan-
tage, en moyenne, dans 40 % de ses squences de jeu. Elle sait aussi que,
quand elle choisira de tenter lessai, elle y russira dans 35 % des cas. En
moyenne, tenter lessai rapporte donc moins que prendre la pnalit, mais
comme la variance est plus importante,
[]
cela introduit un facteur chance
plus important qui peut tre intressant face une quipe plus forte. Jus-
tement, lquipe A est un peu plus forte que lquipe B, puisquelle prend
lavantage dans 60 % de ses squences de jeu; quant sa stratgie, elle
est de systmatiquement prendre la pnalit dans ce cas (tant donn que
pour sa part elle na aucun intrt augmenter la variance). Lentraneur
de lquipe B se pose dans la question suivante : quelle stratgie adopter ?
Faut-il systmatiquement prendre la pnalit ? Tenter lessai ? Panacher les
deux stratgies ?
Pour q [0, 1], notons S
q
la stratgie consistant, lorsque lquipe B a
pris lavantage, tenter lessai avec probabilit q et prendre la pnalit
sinon ; et notons P
q
la loi de probabilit dcrivant le score dun match o
lquipe B a suivi la stratgie S
q
. On note B lvnement lquipe B gagne,
en supposant quen cas dgalit de points le vainqueur est tir la pice.
Lentraneur cherche donc maximiser P
q
(B) en fonction de q disons quil
veut au moins comparer les cinq stratgies S
q
pour q 0; 0,25; 0,5; 0,75; 1.
Dans un premier temps, lentraneur value les P
q
(B) par la mthode
de Monte-Carlo (les codes sont donns en III.6). Hlas, son ordinateur
nest pas trs puissant (on va dire que cest cause des restrictions bud-
gtaires...), ce qui fait quil ne peut gure monter au-del de 60 000 simula-
tions. Les intervalles de conance 2 quil obtient sont alors les suivants :
P
0
(B) [0,162, 0,169], P
0,25
(B) [0,163, 0,170], P
0,5
(B) [0,160, 0,167],
P
0,75
(B) [0,154, 0,160], P
1
(B) [0,154, 0,161]. Si cela lui permet dexclure
les stratgies pour q 0,75, il nest en revanche gure avanc pour compa-
rer les valeurs de q 0,5, vu que les intervalles de conance se recouvrent
largement...
Mais en fait, rchit lentraneur, ce qui est intressant nest pas tant
de calculer les P
q
(B) que leurs dirences ! Ny aurait-il donc pas un moyen,
[]. Tout lien avec la ville natale de lauteur de ce polycopi ne saurait tre que purement
fortuit...
[]. Si lquipe B choisit de systmatiquement prendre la pnalit, son esprance de gain
en chaque squence de jeu est de 1,2 points et sa variance de 2,16 points
2
, alors que si
elle tente systmatiquement lessai lesprance devient 0,98 et la variance environ 5,90.
cole des Mines de Nancy
: La mthode de Monte-Carlo
pour deux stratgies S
q
et S
q
, dvaluer directement P
q
(B)P
q
(B) de faon
plus ecace ?
*
**
Lide de lentraneur est la suivante. Soit P une loi de probabilit sous
laquelle on suppose quun certain vnement B se produit avec la probabilit
P
q
(B) tandis quun autre vnement B

se produit avec probabilit P


q
(B).
Par linarit de lesprance, on a alors
P
q
(B) P
q
(B) = E(1
B
) E(1
B
) = E(1
B
1
B
). (39)
Raliser ainsi les lois P
q
et P
q
partir dune mme troisime loi P est ce
quon appelle en mathmatiques un couplage de ces deux lois. Lavantage de
cette nouvelle formulation, cest quil y a plusieurs faons de procder un
tel couplage... Une premire faon, la plus vidente, est raliser les deux lois
indpendamment, mais cela reviendrait au mme que de calculer sparment
P
q
(B) et P
q
(B). Lapproche de lentraneur consiste plutt regarder, sur
le scnario dun mme match, ce que cela changerait dutiliser la stratgie
S
q
ou S
q
. Autrement dit, on imagine deux scnarios, lun avec une quipe
B et lautre avec une quipe B

, qui se droulent de la faon suivante (on


supposera ici q

> q) :
Le score de lquipe A est le mme, quelle joue contre B ou B

.
Lquipe B

est repousse lissue dune squence de jeu si et seulement


si lquipe B lest.
Quand lquipe B (et donc aussi B

) a pris lavantage lissue dune


squence de jeu :
Chaque fois que lquipe B tente daller lessai (ce qui a lieu avec
une probabilit q), lquipe B

le tente aussi ; en outre, le succs ou


lchec de cette tentative dessai est identique pour B et pour B

.
Avec probabilit (q

q), lquipe B

tente daller lessai (et le rus-


sit alors dans 35 % des cas, comme dhabitude) tandis que lquipe
B prend la pnalit.
Enn, avec probabilit (1 q

), les quipes B et B

prennent toutes
les deux la pnalit.
Enn, si la n dun match, aussi bien les quipes B que B

sont
galit avec lquipe A, le rsultat du tirage la pice est le mme pour
les deux.
Avec ce couplage, se dit lentraneur, les phnomnes alatoires susceptibles
dinuencer le rsultat seront aussi similaires que possibles entre les sc-
narios S
q
et S
q
, et par consquent, le seul niveau o lala jouera rel-
lement concernere uniquement la dirence entre les deux scnarios : on
sattend donc ce que la mthode de Monte-Carlo soit plus ecace dans
ce cas-l ! De fait, pour 60 000 simulations (voir les codes en III.6), la
mthode couple selon lide de lentraneur donne les rsultats suivants :
P
0,25
(B) P
0
(B) [+0,001; +0,007], P
0,5
(B) P
0,25
(B) [0,008; 0,002],
P
0,75
(B) P
0,5
(B) [0,010; 0,005], P
1
(B) P
0,75
(B) [0,003; +0,003].
Cette fois-ci, les rsultats sont nets : la meilleure stratgie est S
0,25
! Comme
prvu, le couplage a permis de rduire la variance dans des proportions si-
gnicatives.
[]
[]. Pour parler de la variance avant couplage, une remarque simpose. Dj, il serait
cole des Mines de Nancy
La mthode de Monte-Carlo
II.3.b Approche gnrale
Largument thorique derrire lexemple de la sous-section prcdente est
le thorme immdiat suivant :
.a Thorme. Soient f et g deux variables alatoires L
2
sur un mme
espace probabilis. Si f et g sont ngativement corrles
[]
(autrement dit si
Cov(f, g) < 0), alors il est plus rapide de calculer directement E(f + g) par
la mthode de Monte-Carlo que de calculer E(f) +E(g). Plus prcisment, la
variance par tape est Var(f)+Var(g)2[ Cov(f, g)[ en utilisant le couplage,
contre Var(f) + Var(g) si on calcule indpendamment E(f) et E(g).
.b Remarque. Outre la gain en variance, la mthode des variables antith-
tiques permet de gagner en temps de calcul par tape. En eet, quand on fait
les valuations indpendamment chaque tape demande deux simulations et
deux valuations de fonctions. Avec les variables antithtiques, on a toujours
deux valuations de fonctions faire par tape, mais plus quune seule si-
mulation ! Par consquent, on peut gagner jusqu un facteur 2 en temps
quand cest la simulation qui prend lessentiel du temps de calcul plutt que
lvaluation.
.c Remarque. En pratique, le plus dicile nest videmment pas dappli-
quer le thorme .a, mais bien de reprer quon est dans une situation
permettant de sy ramener !
.d Exemple. Voici un exemple o les variables antithtiques interviennent
de manire inattendue. Supposons quon veuille calculer par la mthode de
Monte-Carlo le moment exponentiel M := E
N(1)
(e
X
).
[]
Sous la loi A(1),
X suit la mme loi que X par symtrie, donc on a aussi M = E
N(1)
(e
X
), et
par consquent M =
_
E(e
X
) +E(e
X
)
__
2. Or les variables e
X
et e
X
sont
clairement ngativement corrles puisquelles varient en sens inverses, de
sorte quil est plus rapide dvaluer M partir de lexpression E(e
X
+e
X
)/2
qu partir de son expression intiale.
[]
.e Remarque. Dans le cas du dilemme rugbystique de la sous-section pr-
cdente, la quantit calculer se prsentait sous la forme dune dirence
de deux termes trs similaires, ce qui suggrait imdiatement lapproche par
couplage. Dans ce genre de cas, la mthode des variables antithtique est
plus volontiers appele mthode de lala commun .
faux de dire que lintervalle de conance sans couplage tait de largeur 0,006, puisque cela
nest la largeur de lintervalle que pour un des P
q
(B) ! Mais a contrario, il serait excessif de
soustraire navement les deux intervalles de conance et de dire quon avait une largeur de
0,012 pour la dirence : en eet, quand on ajoute deux v.a. indpendantes ce sont leurs
variances qui sajoutent et non leurs carts-types, de sorte que lintervalle de conance
correct associ la mthode nave avait une largeur de (2 0,006
2
)
1/2
0,009.
[]. Do ladjectif antithtiques.
[]. Cest juste un exemple pdagogique, vu que cette quantit svaluerait mieux par
intgration dterministe, et quon peut mme calculer quelle vaut excatement

e.
[]. Jai implicitement utilis quvaluer M partir de lexpression (E(e
X
) +E(e
X
))/2
prend le mme temps qu partir de son expression initiale, vu que cela prend pratiquement
le mme temps dvaluer e
X
que e
X
.
cole des Mines de Nancy
La mthode de Monte-Carlo
.f Remarque. Dans la mthode de lala commun, la quantit quon cherche
valuer est de la forme E(f

)E(f
0
), o f

est une fonction proche de f


0
. Si
f

varie en de faon rgulire, sous la forme f

= f
0
+g +o() (on laissera
tomber le o() dans la suite), on constate alors que lecacit relative de
la mthode reste bonne quand 0, puisque lala commun conduit alors
valuer E(g) partir de lexpression E(g), do une ecacit relative
constante. (Ce que jappelle lecacit relative est lecacit multiplie par
le carr de lordre de grandeur de la quantit calculer, de faon avoir
une mesure de lecacit qui soit invariante quand on multiplie la quantit
valuer par une constante. Ici on a une ecacit absolue qui crot en
2
pour une quantit valuer proportionnelle , ce qui correspond bien une
ecacit relative constante). A contrario, lecacit relative de la mthode
nave dcrotrait vers 0 en
2
... On en retiendra que dans ce genre de cas,
la mthode de lala commun permet donc de comparer ecacement deux
esprances E(f

) pour des paramtres arbitrairement proches, ce qui est


utile pour calculer avec prcision le paramtre qui otimise E(f

).
[]
.a Remarque. Thoriquement, il est possible, de manire symtrique,
dimaginer une mthode des variables prothtiques : si f et g sont positi-
vement corrles, il y a moins de variance calculer sparment E(f) +E(g)
qu calculer directement E(f + g)... En pratique cependant, cette ide est
presque toujours mauvaise, car la remarque .b nous dit que le gain en va-
riance dune telle manipulation a toutes les chances dtre compens par la
perte de temps par tape de calcul cause par une telle division des tches
ds lors que la simulation prend une part non ngligeable du temps de calcul
par rapport lvaluation de f et g. En outre, le gain en variance ne saurait
de toutes faons excder un facteur 2 dans ce sens-l, alors quil pouvait tre
arbitrairement grand dans lautre sens.
II.4 Variables de contrle
II.4.a Variable de contrle unique
Lide de la mthode de rduction de variance par utilisation de variables
de contrle est la suivante. In ne, une mthode de Monte-Carlo se ramne
au calcul dun esprance E(f(X)) par chantillonnage de X selon la loi P,
lecacit de la mthode tant inversement proportionnelle (entre autres)
Var(f). Maintenant, supposons quil existe une autre fonction g pour laquelle
nous sachions calculer exactement E(g(X)). En crivant E(f) = E(f g) +
E(g), o est un paramtre xer ultrieurement, on voit alors quon peut
ramener lvaluation E(f) par la mthode de Monte-Carlo lvaluation de
E(f g), le passage de lune lautre se faisant en temps ngligeable.
Pour peu quune tape de simulation pour (f g) ne prenne gure plus
de temps que pour f (ce qui est gnralement le cas si lexpression de g
nest pas trop complique) et que la variance de (f g) soit sensiblement
plus petite que celle de f, cette nouvelle mthode sera plus rapide que la
[]. Par contre, cela ne marche pas dans les cas o lvolution de f

se fait par sauts


comme dans lexemple rugbystique de la sous-section prcdente : dans ce cas, lecacit
relative dcrot en eet vers 0 en ce qui est tout de mme mieux que le
2
de la
mthode nave.
cole des Mines de Nancy
La mthode de Monte-Carlo
prcdente. Dans le jargon des mthodes de Monte-Carlo, la v.a. g(X) est
alors appele de variable de contrle. Pour trouver la valeur de qui minimise
Var(f g),
[]
on dispose du thorme suivant, dont la dmonstration est
immdiate :
j.a Thorme. Var(f g) est minimal pour
=
Cov(f, g)
Var(g)
, (40)
et vaut alors
_
1 [Corr(f, g)[
2
_
Var(f), (41)
o Corr(f, g) est le coecient de corrlation de Pearson entre f et g, cd.
Corr(f, g) := Cov(f, g) / Var(f)
1/2
Var(g)
1/2
.
.b Remarque. Rappelons que le coecient de corrlation de Pearson est,
en valeur absolue, toujours compris entre 0 et 1, quil vaut 0 entre autres
si f et g sont indpendantes, et quil vaut 1 si et seulement sil existe une
relation dterministe ane entre f et g.
.c Remarque. On voit dans la formule (41) que la rduction de variance par
variable de contrle nest intressante que si la corrlation de cette variable
avec la fonction intgrer est (en valeur absolue) assez proche de 1 : ainsi,
pour une corrlation de 1/2, le gain de variance nest dj plus que dun quart,
et pour une corrlation de 1/4, il nest que dun seizime et ne compense alors
sans doute mme plus laugmentation du temps de calcul par tape...
.d Astuce. Daprs le thorme .a, la dtermination du optimal, not
ici
opt
, demande dvaluer Cov(f, g) ainsi que Var(g) : pour ce faire, on peut
procder... encore et toujours par la mthode de Monte-Carlo ! De mme
que pour lvaluation de lecacit (cf. n de la I.5.a), cela peut se faire
rapidement car il nest pas ncessaire davoir une valeur trs prcise de
opt
en pratique : en prenant pour un estimateur de
opt
obtenu par quelques
milliers de simulations, la valeur de Var(f g) sera en gnral trs proche
de celle obtenu pour le vrai
opt
.
*
**
.e Exemple.
II.4.b Variables de contrle multiples
Dun point de vue abstrait, la technique de la variable de contrle du
thorme .a peut tre reformule ainsi : on rduit la variance de f en
projetant cette variable sur lorthogonal de la droite Rg dans L
2
(P). Ainsi
rcrit, on saperoit quil ny a aucune raison pour projeter f sur lortho-
gonal dune droite, et quon peut prendre en fait la place de Rg nimporte
quel sous-espace de dimension nie. Cela donne la procdure suivante :
j.f Mmorandum.
[]. Le temps de calcul ne dpend pratiquement pas de ds lors que est non nul, ce
qui fait que loptimisation de lecacit quivaut la minimisation de Var(f g).
cole des Mines de Nancy
6 La mthode de Monte-Carlo
Pour rduire la variance dune v.a. f L
2
(dont on cherche lesp-
rance) partir dune ou plusieurs variables de contrle g
1
, . . . , g
k
dont
on connat dj exactement lesprance, le principe est dcrire :
E(f) = E(f
1
g
1

2
g
2

k
g
k
)+
1
E(g
1
)+
2
E(g
2
)+ +
k
E(g
k
).
(42)
Il faut choisir les
i
de faon minimiser la variance de (f
1
g
1


k
g
k
). Les valeurs optimales des
i
sont donnes par le tho-
rme ^.a ci-dessous.
Il nest pas ncessaire de connatre la valeur exacte des
i
optimaux,
mais juste de les valuer avec une prcision susante : cela se fait en
calculant (43) par la mthode de Monte-Carlo avec quelques milliers
de simulations.
6.a Thorme. Supposons que la famille (1, g
1
, . . . , g
k
) est libre dans L
2
(P)
et notons
g
la matrice de covariance ((Cov(g
i
, g
j
)))
1i,jk
, qui est alors
inversible. Notons galement R
fg
le vecteur (Cov(f, g
i
))
1ik
. Alors la valeur
de

:= (
1
, . . . ,
k
) qui minimise Var(f
1
g
1

k
g
k
) est donne par

=
1
g
R
fg
,
[]
(43)
et la variance correspondante est
Var(f) R
T
fg

1
g
R
fg
=
_
1
R
T
fg

1
g
R
fg
Var(f)
_
Var(f). (44)
^.b Remarque. La quantit R
T
fg

1
g
R
fg
/ Var(f) qui apparat dans (44)
peut tre vue comme le carr du coecient de corrlation multidimension-
nel entre f et les g
i
: plus prcisment,
_
R
T
fg

1
g
R
fg
/ Var(f)
_
1/2
est le
cosinus de langle entre la droite Rf et le sous-espace Rg
1
+ +Rg
k
+R1
dans L
2
(P). En particulier, cette quantit est toujours comprise entre 0 et
1, elle vaut 0 entre autres si f et g sont indpendantes, et elle vaut 1 si et
seulement sil existe une relation dterministe ane entre f et les g
i
.
II.4.c Exemple
Voyons comment nous pouvons appliquer la technique des variables de
contrle pour le problme de la course pied. On rappelle quon y considre 8
chronos X
1
, . . . , X
8
i.i.d. lnA(4; 0,03) et quon cherche valuer E(max
i
X
i
)
on notera dans la suite max
i
X
i
=: X

. Je propose dintroduire les trois


variables de contrle suivantes :
Y
1
:= 1
X

65
; (45)
Y
2
:= 1
X

70
; (46)
Y
3
:= 1
X

75
. (47)
[]. Attention : dans la formule (43), jai pris le formalisme usuel en mathmatiques
consistant dire quun vecteur est un vecteur-colonne ; mais MATLAB a plutt tendance
manipuler des vecteurs-lignes : avec ce formalisme-l, la formule deviendrait

=
R
fg

1
g
.
cole des Mines de Nancy
La mthode de Monte-Carlo
Il est clair que ces deux variables de contrle seront fortement (ngativement)
corrles X

. Ce qui est moins vident, cest de comprendre en quoi les


esprances de celles-ci sont faciles calculer : le point est quon a
E(1
X

t) = P(max
i
X
i
t) =
8

i=1
P(X
i
t)
= P
_
lnA(4; 0,03) t
_
8
= P
_
A(1) (ln t 4)/0,03
1/2
_
8
=
_
1
2
+
1
2
erf
_
ln t 4

2 0,03
1/2
__
8
, (48)
et comme les logiciels comme MATLAB savent calculer trs prcisment la
fonction erf, on en dduit les valeurs exactes ( larrondi prs) suivantes :
E(Y
1
) = 0,255 024 592 ; (49)
E(Y
2
) = 0,762 034 518. (50)
Maintenant, laide dune srie de 2 000 simulations (voir annexe ??),
je trouve les corrlations suivantes :
[]
Cov(X,

Y )
_
2,38
2,54
_
et Var(

Y )
_
0,200 0,064 7
0,064 7 0,178
_
. (51)
Daprs (43), on en dduit que

opt
(8,30, 11,2) ; nous prendrons donc
(
1
,
2
) = (8, 11). Lalgorithme correspondant est donn en ??. Avec
lutilisation des variables de contrle, lecacit passe chez moi denviron
1,1 s
1
3,5 s
1
, soit un gain dun facteur 3 !
II.5 Stratication
.a Remarque. Toute cette section est intimement lie la I.5.f, quil peut
donc tre utile de lire en mme temps que celle-ci.
II.5.a Approche thorique
Imaginons quon cherche valuer par la mthode de Monte-Carlo une
expression de la forme E(f), o P est la loi dchantillonnage et f L
2
(P) la
quantit chantillonner ; et supposons donne une partition de lespace de
probabilit en un nombre ni dvnements A
1
, . . . , A
k
(on rappelle que
partition signie que les A
i
sont deux deux disjoints et que leur runion
est tout entier) pour laquelle on connat exactement la valeur de chaque
P(A
i
), note p
i
. On suppose en outre que les p
i
sont tous non nuls.
Pour chaque i 1, . . . , k, dnissons P
i
comme la loi conditionnelle
de P sous lvnement A
i
, cd. P
i
(B) := P(B A
i
) / P(A
i
), de sorte que
P =

i
p
i
P
i
. On peut alors crire E(f) =

i
p
i
E
i
(f
i
).
Maintenant, supposons quau lieu dchantillonner navement f sous
la loi P, on en fasse des chantillonnages spars conditionnellement chacun
[]. Noter quen loccurrence, la forme des variables Y
i
permettrait de calculer exacte-
ment Var(

Y ) partir des E(Y


i
), mais nous ferons comme si nous navions pas remarqu
cela an de mieux illustrer notre propos.
cole des Mines de Nancy
8 La mthode de Monte-Carlo
des A
i
. Plus prcisment, au lieu destimer directement f par lestimateur
m issu de N simulations i.i.d. sous P, on ralise plutt N
i
simulations de
chaque P
i
(avec

i
N
i
= N), puis on estime chaque E
i
(f) par lestimateur
m
i
issu de ces simulations, et on en dduit nalement un estimateur m
strat
:=

p
i
m
i
pour E(f). Les N
i
sont choisis de faon que N
i
N

i
N i, o les

i
, i 1, . . . , k sont une famille de paramtres strictement positifs et de
somme 1 qui peuvent tre gaux aux p
i
, mais pas forcment. Notez que
lhypothse de non-nullit des
i
implique que, pour N assez grand, tous les
N
i
sont non nuls, de sorte que a bien un sens d estimer E
i
(f) daprs N
i
simulations : dans la suite, on supposera toujours implicitement que cest
eectivement le cas.
Quelle est la variance de ce nouvel estimateur ? Puisque m
strat
sobtient
comme somme de k estimateurs indpendants, sa variance est la somme des
variances de chacun de ces estimateurs :
Var( m
strat
) =
k

i=1
Var( m
i
) =

i
Var
i
(f)
N
i
. (52)
Cette variance est asymptotiquement proportionnelle N
1
, linverse de
la constante de proportionnalit dnissant lecacit par simulation de la
mthode stratie :
S.a Thorme. Lecacit par simulation de la mthode stratie est
c
strat
= 1/ Var
strat
(f), o
Var
strat
(f) =

i
q
2
i

i
Var
i
(f). (53)
La formule (53) permet de calculer les
i
qui optimisent lecacit par
simulation : il faut prendre
i
q
i
Var
i
(f)
1/2
.
[]
. En pratique toutefois, ce
nest pas lecacit par simulation que nous cherchons optimiser, mais
lecacit tout court. Cest le problme de lchantillonnage interstrates, qui
a dj t trait par le thorme :.a dans la I.5.f. Je rappelle ce thorme
par souci de compltude :
S.b Thorme (Reformulation du thorme :.a). Les
i
qui optimisent
lecacit tout court sont donns par

i

1/2
i
q
i
Var
i
(f)
1/2
(54)
(sous la contrainte

i

i
= 1), soit
i
=
1/2
i
q
i
Var
i
(f)
1/2
_

_
k
j=1

1/2
j
q
j
Var
j
(f)
1/2
_
, o
i
est le temps moyen pris par une simu-
lation (incluant lvaluation de f) sous P
i
.
Mais revenons un instant lecacit par simulation. Comme nous le
verrons, dans nombre de situations on est en fait forc de prendre les
i
gaux aux q
i
. Le thorme suivant nous dit que dans ce cas, lecacit par
simulation est malgr tout toujours meilleure que si on na pas strati :
[]. Je ne donne pas la dmonstration de cette formule dans la mesure o, comme on
le fait remarquer juste aprs, le thorme .a est plus utile en pratique... Cela dit, pour
information, le calcul des
i
optimaux par nombre de simulation est compltement
similaire la dmonstration du thorme .a.
cole des Mines de Nancy
La mthode de Monte-Carlo j
S.c Thorme. Soit

f la fonction dnie par

f = E
i
(f) sur chaque A
i
;
autrement dit

f est lesprance de f conditionnellement la tribu engendre
par les A
i
. Alors, pour
i
= q
i
i,
Var(f) = Var(

f) + Var
strat
(f) ; (55)
en particulier on a toujours Var
strat
(f) Var(f), avec galit si et seulement
si

f est constante.
j.a Remarque. Les deux termes du membre de droite de (55) sont respec-
tivement appels variance interstrates (car cest la variance qui reste quand
on remplace f par sa moyenne sur chaque strate) et variance intrastrates
(car ce terme ne dpend que des Var
i
(f) et pas de lcart de

f dune strate
lautre).
Dmonstration. On calcule les trois termes impliqus dans (55) :
1. Par dnition, Var(f) = E(f
2
) E(f)
2
.
2. Vu que

f vaut E
i
(f) sur lensemble A
i
, on a Var(

f) = E(

f)
2
E(

f)
2
=

i
q
i
E
i
(f)
2
(

i
q
i
E
i
(f))
2
=

i
q
i
E
i
(f)
2
E(f)
2
.
3. Comme
i
= q
i
, Var
strat
(f) se rcrit comme

i
q
i
Var
i
(f), et vu que
par dnition Var
i
(f) = E
i
(f
2
) E
i
(f)
2
, on en tire que Var
strat
(f) =

i
q
i
E
i
(f
2
)

i
q
i
E
i
(f)
2
= E(f
2
)

i
q
i
E
i
(f)
2
.
Il est alors immdiat de vrier la formule.
j.b Remarque. Ce qui permet la mthode de stratication ce gain de-
cacit est le fait quon connaisse exactement la valeur des q
i
: il ne faut donc
utiliser la mthode que dans ce cas ! On pourrait se dire quon pourrait appli-
quer la stratication en valuant les q
i
par la mthode de Monte-Carlo, mais
cette mthode reviendrait en fait un chantillonnage non strati... Cest
prcisment lerreur sur lvaluation des q
i
qui explique que lchantillonnage
non strati soit moins ecace : pour plus de dtails, voir la discussion de
la I.5.f, page 26.
II.5.b La stratication en pratique
Il y a deux types de situations dans lesquelles on peut utiliser la strati-
cation :
On peut avoir un problme naturellement strati, cest--dire que
la probabilit dchantillonnage P scrit naturellement sous la forme

q
i
P
i
pour des probabilits P
i
deux deux trangres par na-
turellement , jentends ici que la faon la plus ecace de simuler P
consiste tirer i avec probabilit q
i
puis faire une simulation de P
i
.
Cest ce type de situation quon avait dans le problme du recensement
des Catholiques irlandais de la I.5.f. Dans ce cas, pas dhsitation : il
faut choisir les q
i
selon lchantillonnage interstrates optimal. Ce genre
de cas, vrai dire, ne peut pas vraiment tre quali de stratica-
tion puisque ce serait plutt de ne pas tenir compte de la structure
stratie du problme qui demanderait un eort...
cole des Mines de Nancy
o La mthode de Monte-Carlo
Plus frquemment, on dispose dinformations sur la taille des strates,
mais on na pas vraiment dautre moyen dchantillonner les P
i
qu
partir de la simulation de P... Cela nempche pas dutiliser la strati-
cation malgr tout, mais la faon de lutiliser dpendra du rapport de
force entre les parties simulation et valuation de la mthode
de Monte-Carlo :
Si cest la simulation qui prend lessentiel du temps, il faut utiliser
toutes les simulations eectues ; par consquent, ce quon fait est
de raliser N simulations de P et den dduire les N
i
en fonction des
A
i
dans lesquels les simulations sont tombes :
[]
contrairement
ce quil pourrait sembler, cela reste bien de la stratication car on
utilise linformation sur les q
i
dans la construction de lestimateur.
Dans ce cas, les
i
sont forcment gaux aux q
i
.
Si au contraire, la simulation (incluant la dtermination de la strate
dans laquelle on est tomb) prend un temps ngligeable par rapport
lvaluation de f, la situation est en pratique quivalente au cas
naturellement strati, vu quil nest pas plus coteux de simuler les
P
i
que P.
Mais dans la plupart des cas, chaque partie de la mthode prend
un certain temps... Dans ce cas, on peut essayer de sapprocher de
lchantillonnage interstrates optimal en dcidant de lancer ou non
lvaluation de f et fonction de la strate dans laquelle on se trouve
et du nombre dchantillons dj disponibles dans cette strate.
[]
La
dirence avec le cas de lchantillonnage naturellement strati est
quici lexprimentateur ne dcide pas lavance dans quelle strate
il va tomber.
II.6 Optimisation du code
Cela na rien de spcique aux mthodes de Monte-Carlo, mais rappelons
quand mme quun code mal conu peut faire perdre un temps considrable
quand il sagit dimplmenter un algorithme, compar un autre code ex-
primant la mme ide smantique mais dont les dtails sont penss de sorte
privilgier les voies de calcul que la machine excute le plus rapidement.
Loptimisation du code est une science pratique plus que thorique, dans
la mesure o dpend en grande partie de la machinerie de programmation
utilise,
[]
ainsi que de larchitecture du processeur (ou de lensemble de
processeurs) sur lequel sont eectus les calculs. Dans le cas dun langage
[]. Prsent comme tel, ce protocole a le dfaut quil se peut quun des N
i
soit acci-
dentellement nul, auquel cas on ne peut pas valuer m
strat
. Pour pallier cet inconvnient,
on peut, quitte augmenter la valeur de N, attendre que chaque N
i
soit au moins gal
1 ou mme que chaque N
i
soit au moins gal q
i
N si on veut aussi viter le risque
quun N
i
trop petit cre de grandes uctuations de lestimateur. Cela ne diminue pas lef-
cacit (en tout cas pas asymptotiquement), puisque les N
i
sont quivalents q
i
N pour
les grandes valeurs de N par la loi des grands nombres.
[]. En fait, cest encore un peu plus compliqu, car lchantillonnage interstrates optimal
dans cette mthode nest pas exactement celui donn par la formule (54) : en fonction du
temps relatif pris par la simulation et par lvaluation, il va plus ou moins sapprocher de
lchantillonnage naturel
i
= q
i
ou au contraire de lchantillonnage de (54).
[]. Cest dessein que je parle de machinerie et non pas de langage : le mme langage de
programmation peut en eet tre traduit de faon fort dirente au niveau de la machine en
cole des Mines de Nancy
La mthode de Monte-Carlo 1
interprt comme MATLAB, loptimisation est particulirement importante
puisquaucun compilateur ne fera lui-mme les raccourcis faciles que vous
auriez oubli de prendre en rdigeant votre code.
Je vous prsenterai quelques exemples concrets doptimisation de code
loccasion des TP, lorsque nous serons amens en rencontrer.
fonction de linterprteur (ou du compilateur) retenu, et les problmatiques doptimisation
de code seront alors elles aussi direntes.
cole des Mines de Nancy
: La mthode de Monte-Carlo
Chapitre III
Annexe : Codes MATLAB
III.1 Les codes pour le problme du yahtzee
III.1.a Algorithme naf
function yahtzee(N)
% La fonction "yahtzee" value la probabilit de faire un yahtzee en trois
% lancers par la mthode de Monte-Carlo. Elle prend en paramtre le nombre
% N de simulations demandes.
% La variable "succes" comptera le nombre de fois qu'on a russi obtenir
% un yahtzee.
succes = 0;
% Les 2 lignes suivantes servent seulement au calcul de l'efficacit.
sommecarres = 0;
tic;
% On lance une boucle de N expriences. La variable "i" numrote
% l'exprience qu'on est en train de raliser.
for i = 1:N,
% On fait jouer le joueur et on compte son succs ventuel. La fonction
% "troislancers" est une sous-routine qui simule le comportement du
% joueur effectuant ses trois lancers de ds en cherchant obtenir un
% yahtzee. Elle renvoie 1 si l'exprience est un succs et 0 si c'est
% un chec.
x = troislancers;
succes = succes+x;
% Dcommenter la ligne suivante pour calculer l'efficacit %
sommecarres = sommecarres+x*x; %
end
% La ligne suivante sert seulement au calcul de l'efficacit.
t = toc;
disp('Estimateur de la probabilite de succes :');
disp(succes/N);
% Commentez les 3 lignes suivantes si vous ne souhaitez pas calculer
% l'efficacit.
disp('Efficacit :');
moyenne = succes/N; variance = sommecarres/N-moyenne*moyenne; %
disp(N/t/variance); %
end
cole des Mines de Nancy
La mthode de Monte-Carlo
function resultat = troislancers
% La fonction "troislancers" simule le comportement du joueur effectuant
% ses trois lancers de ds en cherchant obtenir un yahtzee. Elle renvoie
% 1 si l'exprience est un succs et 0 si c'est un chec.
% On fait le premier lancer. La variable "des" est une srie de cinq
% lments reprsentant le chiffre affich par chacun des cinq ds.
des = randi([1,6],[1,5]);
% On relance les ds, deux fois. La fonction "relancer" est une
% sous-routine qui, partir des chiffres affichs par les ds sur la
% table, choisit quels ds le joueur relance et renvoie le nouvel affichage
% des ds aprs ce lancer.
des = relancer(des);
des = relancer(des);
% On teste si tous les ds ont la mme valeur.
resultat = all(des == des(1));
end
function desrelances = relancer(des)
% La fonction "relancer" choisit quels ds le joueur relance et renvoie le
% nouvel affichage des ds aprs ce lancer. Elle prend en paramtre la
% liste des valeurs affiches.
% La variable "occurrences" est une srie de six nombres destine
% contenir le nombre d'occurrences de chaque chiffre pour les ds.
% Autrement dit, occurrences(1) comptera le nombre de "1" prsents sur la
% tables, occurrences(2) comptera le nombre de "2", etc.
occurrences = zeros(1,6);
% On lance une boucle pour remplir la srie "occurrences". La variable "i"
% est le numro du d qu'on est en train de regarder.
for i = 1:5,
occurrences(des(i)) = occurrences(des(i))+1;
end
% La variable "recordman" est le chiffre qui apparat le plus souvent sur
% la table. Pour la trouver, on utilise la syntaxe deux sorties de la
% fonction "max".
[~, recordman] = max(occurrences);
% On va maintenant donner la srie des ds relancs. l'initialisation,
% tous les ds sont comme ils taient au dpart.
desrelances = des;
for i = 1:5,
% On relance le d seulement si le chiffre qu'il affichait n'tait pas
% le recordman.
if des(i) ~= recordman
desrelances(i) = randi([1,6]);
end
end
end
III.1.b Algorithme avec conditionnement
function yahtzeecondi(N)
% La fonction "yahtzeecondi" value la probabilit de faire un yahtzee en
% trois lancers par la mthode de Monte-Carlo, en utilisant la mthode de
cole des Mines de Nancy
La mthode de Monte-Carlo
% conditionnement l'issue du deuxime lancer. Elle prend en paramtre le
% nombre N de simulations demandes.
% La variable "succes" de la mthode nave est remplace ici par la
% variable "succescondi" qui est son analogue conditionnel.
succescondi = 0;
sommecarres = 0;
% On lance une boucle de N expriences. La variable "i" numrote
% l'exprience qu'on est en train de raliser.
tic;
for i = 1:N,
% On fait jouer le joueur et on compte son esprance de succs
% l'issue de ses deux premiers lancers. La fonction "deuxlancers" est
% une sous-routine qui simule le comportement du joueur effectuant ses
% deux premiers lancers de ds. Elle renvoie la probabilit
% conditionnelle qu'il obtienne un yahtzee l'issue du troisime
% lancer.
y = deuxlancers();
succescondi = succescondi+y;
sommecarres = sommecarres+y*y;
end
t = toc;
disp('Nouvel estimateur de la probabilite de succes :');
disp(succescondi/N);
disp('Nouvelle efficacit :');
moyenne = succescondi/N; variance = sommecarres/N-moyenne*moyenne;
disp(N/t/variance);
end
function resultatcondi = deuxlancers()
% La fonction "troislancers" simule le comportement du joueur effectuant
% ses deux premiers lancers de ds. Elle renvoie la probabilit
% conditionnelle qu'il obtienne un yahtzee l'issue du troisime lancer.
% On fait le premier lancer. La variable "des" est une srie de cinq
% lments reprsentant le chiffre affich par chacun des cinq ds.
des = randi([1,6],[1,5]);
% On relance les ds, une seule fois.
des = relancer(des);
% On compte le plus grand nombre de fois qu'un chiffre apparat, stock
% dans la variable "k". Pour ce faire, on commence par tablir la srie des
% occurrences de chaque chiffre, comme dans la sous-routine "relancer".
occurrences = zeros(1,6);
for i = 1:5,
occurrences(des(i)) = occurrences(des(i))+1;
end
k = max(occurrences);
% On renvoie la probabilit de succs conditionnellement l'issue du
% deuxime lancer, soit 6^{-5+k}.
resultatcondi = 6^(-5+k);
end
function desrelances = relancer(des)
cole des Mines de Nancy
La mthode de Monte-Carlo
occurrences = zeros(1,6);
for i = 1:5,
occurrences(des(i)) = occurrences(des(i))+1;
end
[~, recordman] = max(occurrences);
desrelances = des;
for i = 1:5,
if des(i) ~= recordman
desrelances(i) = randi([1,6]);
end
end
end
III.1.c Algorithme avec chantillonnage prfrentiel
function yahtzeepref(lambda,N)
% La fonction "yahtzeepref" value la probabilit de faire un yahtzee en
% trois lancers par la mthode de Monte-Carlo avec chantillonnage
% prfrentiel. lambda est la paramtre de pipage, compris entre 0 et 1,
% tel que "6" soit tir avec probabilit (1+5lambda)/6 et les autres
% chiffres avec probabilit (1-lambda)/6. N est le nombre de simulations
% demand.
somme = 0;
sommecarres = 0;
tic;
% On lance une boucle de N expriences. La variable "i" numrote
% l'exprience qu'on est en train de raliser.
for i = 1:N,
six = 0;
nonsix = 0;
% On fait jouer le joueur et on compte son succs ventuel. La fonction
% "troislancers" est une sous-routine qui simule le comportement du
% joueur effectuant ses trois lancers de ds en cherchant obtenir un
% yahtzee. Elle renvoie 1 si l'exprience est un succs et 0 si c'est
% un chec.
troislancers;
densite = (1+5*lambda)^six*(1-lambda)^nonsix;
x = resultat/densite;
somme = somme + x;
sommecarres = sommecarres+x*x; %
end
t = toc;
% Ne pas oublier qu'on vient d'valuer la probabilit d'un yahtzee de "6",
% donc il faut multiplier le rsultat obtenu par 6.
moyenne = 6*somme/N;
variance = 6*6*sommecarres/N-moyenne*moyenne;
disp('Intervalle de confiance 2 sigmas :');
disp(moyenne+sqrt(variance/N)*[-1,1]);
disp('Efficacit :');
disp(N/t/variance);
% Attention ! Ici il faut mettre les sous-routines / l'intrieur/ de la
% fonction-mre, car on veut qu'elles agissent sur certaines variables de
cole des Mines de Nancy
6 La mthode de Monte-Carlo
% la fonction-mre.
function troislancers
% Analogue pip de la sous-routine "troislancers" du code naf .
% Noter qu'ici on ne demande pas la fonction de retourner son
% rsultat ; elle se contente de l'crire dans la variable
% "resultat" de la fonction-mre.
des = [pipe,pipe,pipe,pipe,pipe];
des = relancer(des);
des = relancer(des);
resultat = all(des == 6);
end
function desrelances = relancer(des)
% Analogue pip de la fonction "desrelances" du code naf .
% Pour dpartager les ex-quo de faon symtrique, on initialise
% "occurrences" par des nombres fractionnaires alatoires.
occurrences = rand(1,6);
for j = 1:5,
occurrences(des(j)) = occurrences(des(j))+1;
end
[~, recordman] = max(occurrences);
desrelances = des;
for j = 1:5,
if des(j) ~= recordman
desrelances(j) = pipe;
end
end
end
function chiffre = pipe
% La sous-routine "pipe" tire un d pip. Elle tient en outre le
% compte des "6" et des "non-6" qu'elle a tir.
if(rand<lambda)
chiffre = 6;
else
chiffre = randi([1,6]);
end
% La condition suivante permet de compter le nombre total de "6" et
% de "non-6" qui ont t tirs.
if (chiffre == 6)
six = six + 1;
else
nonsix = nonsix + 1;
end
end
cole des Mines de Nancy
La mthode de Monte-Carlo
end
III.2 Le code pour la course pied
function course(N)
% La fonction "course" value la dure moyenne de la course par la mthode
% de Monte-Carlo. L'argument "N" est le nombre de simulations effectues.
% Les variables "somme" et "sommecarres", comme leurs noms l'indiquent,
% sont destines contenir la somme, resp. la somme des carrs de toutes
% las variables simules. On les initialise chacune 0.
somme = 0;
sommecarres = 0;
% On lance maintenant les N simulations.
for i = 1:N
% La variable "chronos" est la srie des 8 chronos raliss par les
% coureurs.
chronos = exp(4+sqrt(.03)*randn(1,8));
% La variable "dernier" est le temps du plus lent des coureurs.
dernier = max(chronos);
somme = somme + dernier;
sommecarres = sommecarres + dernier*dernier;
end
% On value maintenant la moyenne m de la variable alatoire "dernier" et
% son cart-type "sigma".
m = somme/N;
disp('Estimateur de m :');
disp(m);
sigma = sqrt(sommecarres/N-m*m);
disp('Estimateur de sigma :');
disp(sigma);
% On calcule l'intervalle de confiance 80 %.
I = m + 1.29*sigma/sqrt(N)*[-1 1];
disp('Intervalle de confiance 80 % :');
disp(I);
end
III.3 Codes pour les calculs de volume de boule
III.3.a Mthode de Monte-Carlo sur le cube
function volboule(d,N)
% La fonction "volboule" value la volume de la boule unit de dimension d
% par la mthode de Monte-Carlo en chantillonnant sur le cube la
% contenant. N est le nombre de simulations demandes.
% "positifs" compte le nombre de fois que l'chantillon est tomb dans la
% boule.
positifs = 0;
tic;
for i = 1:N
% x est le point du cube simul.
x = -1+2*rand(1,d);
% On teste si la distance l'origine est plus petite que 1.
cole des Mines de Nancy
8 La mthode de Monte-Carlo
if(sqrt(sum(x.*x))<1)
positifs = positifs+1;
end
end
t=toc;
p = positifs/N;
% Notez que comme la fonction value est une indicatrice, nous n'avons pas
% besoin de compter sparment la somme et la somme des carrs: la variance
% est automatiquement lie l'esprance.
sigma = sqrt(p*(1-p)/N);
disp('Intervalle de confiance :')
disp(2^d*[p-1.96*sigma,p+1.96*sigma]);
disp('Efficacit :')
if (sigma == 0)
disp('J''ai trouv une variance nulle... Efficacit estime infinie !');
else
% N'oubliez pas que le "sigma" donn ci-dessus ne tenait pas compte du
% facteur 2^d: il faut donc intgrer de facteur dans le calcul de
% l'efficacit.
disp(1/t/(2^d*sigma)^2);
end
III.3.b Mthode de Monte-Carlo avec chantillonnage pr-
frentiel
function volboulepref(d,N)
% La fonction "volboulepref" value le volume de la boule unit de
% dimension d par la mthode de Monte-Carlo en chantillonnant selon la
% gaussienne multidimensionnelle idoine. N est le nombre de simulations
% demandes.
% Cette fois-ci, la fonction value n'est plus une indicatrice, donc il
% faut compter sparment la somme et la somme des carrs.
somme = 0;
sommecarres = 0;
% C est la densit en 0 de la gaussienne qui sert notre chantillonnage :
% comme elle intervient chaque simulation et que son calcul prend un
% certain temps, on la calcule une fois pour toutes.
C = (sqrt(d)/sqrt(2*pi))^d;
tic;
for i = 1:N
% x est le point simul.
x = randn(1,d)/sqrt(d);
% r est la distance de x l'origine.
r = sqrt(sum(x.*x));
% On teste si la distance l'origine est plus petite que 1.
if(r<1);
% Il faut tenir compte de la densit d'chantillonnage.
y = 1/(C*exp(-d*r*r/2));
somme = somme+y;
sommecarres = sommecarres+y;
end
end
t=toc;
m = somme/N;
cole des Mines de Nancy
La mthode de Monte-Carlo j
sigma = sqrt((sommecarres/N-m*m)/N);
disp('Intervalle de confiance :')
disp([m-1.96*sigma,m+1.96*sigma]);
disp('Efficacit :')
disp(1/t/(sigma*sigma));
end
III.4 Les codes pour le calcul de lintgrale cubique
III.4.a chantillonnage selon la loi (auchy(1)
function integrale1(N)
% Cette fonction value \int_R dx/(1+|x|^3) en chantillonnant selon une
% loi de Cauchy standard.
% Initialisation de la somme et de la somme des carrs.
somme = 0;
sommecarres = 0;
% Dmarrage du chronomtre. Je ne chronomtre que a boucle, dans la mesure
% o le temps pris par la partie hors de la boucle ne dpend pas de N.
tic;
for i = 1:N
% chantillonnage selon la loi de Cauchy standard.
x = tan(pi*(rand-.5));
% Calcul de la quantit dont on veut connatre l'esprance. Notez que
% le facteur pi qui ressort pourrait tre factoris pour conomiser les
% calculs, mais attention, il faudrait aussi penser dans ce cas
% multiplier la variance par pi^2.
y = pi*(1+x*x)/(abs(x)^3+1);
% Incrmentation de la somme et de la somme des carrs
somme = somme+y;
sommecarres = sommecarres+y*y;
end
t=toc;
% Calcul des quantits qui nous intressent. m estla moyenne empirique, v
% la variance empirique, err la marge d'erreur et I l'intervalle de
% confiance. Les noms des trois autres quantits calculs sont
% transparents.
m = somme/N;
v = sommecarres/N-m*m;
err = 1.96*sqrt(v/N);
I = [m-err m+err];
eff_par_etape = 1/v;
etape_par_s = N/t;
eff_par_s = eff_par_etape*etape_par_s;
disp('Estimateur :');
disp(m);
disp('Intervalle de confiance :');
disp(I);
disp('Temps de calcul (s) :');
disp(t);
disp('Nombre d''tapes de calcul par seconde :')
disp(etape_par_s);
disp('Efficacit par tape :');
disp(1/v);
cole des Mines de Nancy
o La mthode de Monte-Carlo
disp('Efficacit par seconde :')
disp(eff_par_s)
end
III.4.b chantillonnage double-exponentiel
function integrale2(N)
% Cette fonction value \int_R dx/(1+|x|^3) en chantillonnant selon une
% loi double-exponentielle standard.
somme = 0;
sommecarres = 0;
tic;
for i = 1:N
% chantillonnage selon la loi double-exponentielle standard.
if (randi([0,1]))
x = -log(rand);
else
x = log(rand);
end
% Calcul de la quantit dont on veut connatre l'esprance. Attention,
% ce n'est pas la mme que dans le cas prcdent puisqu'on a chang la
% loi d'chantillonnage.
y = 2*exp(abs(x))/(abs(x)^3+1);
somme = somme+y;
sommecarres = sommecarres+y*y;
end
t=toc;
m = somme/N;
% Attention ! Ici je laisse quand mme le calcul de v, err, eff_par_etape
% et eff_par_s pour que vous puissiez voir ce que cela donne, mais je ne
% devrais pas puisque y n'est pas L^2 ! Pus prcisment, v va diverger et
% eff_par_etape et eff_par_seconde tendre vers 0, tandis que err ne
% correspond plus un intervalle d'erreur 95 %.
v = sommecarres/N-m*m; err = 1.96*sqrt(v/N); I = [m-err m+err];
eff_par_etape = 1/v; etape_par_s = N/t; eff_par_s = eff_par_etape*etape_par_s;
disp('Estimateur :'); disp(m);
disp('Pseudo intervalle de confiance :'); disp(I);
disp('Temps de calcul (s) :'); disp(t);
disp(['Nombre d''tapes de calcul par seconde :']); disp(etape_par_s);
disp('Pseudo efficacit par tape :'); disp(1/v);
disp('Pseudo efficacit par seconde :'); disp(eff_par_s)
end
III.4.c chantillonnage selon (auchy(0,65)
function integrale3(N)
% Cette fonction value \int_R dx/(1+|x|^3) en chantillonnant selon une
% loi de Cauchy de paramtre 0,65.
somme = 0;
sommecarres = 0;
tic;
for i = 1:N
x = .65*tan(pi*(rand-.5));
cole des Mines de Nancy
La mthode de Monte-Carlo 1
y = pi/.65*(.65*.65+x*x)/(abs(x)^3+1);
somme = somme+y;
sommecarres = sommecarres+y*y;
end
t=toc;
m = somme/N; v = sommecarres/N-m*m; err = 1.96*sqrt(v/N); I = [m-err m+err];
eff_par_etape = 1/v; etape_par_s = N/t; eff_par_s = eff_par_etape*etape_par_s;
disp('Estimateur :'); disp(m);
disp('Intervalle de confiance :'); disp(I);
disp('Temps de calcul (s) :'); disp(t);
disp('Nombre d''tapes de calcul par seconde :'); disp(etape_par_s);
disp('Efficacit par tape :'); disp(1/v);
disp('Efficacit par seconde :'); disp(eff_par_s);
end
III.4.d chantillonnage de type Pareto
function integrale4(N)
% Cette fonction value \int_R dx/(1+|x|^3) en chantillonnant selon la loi
% P_4 du cours, laquelle est de type Pareto.
somme = 0;
sommecarres = 0;
tic;
for i = 1:N
y = rand;
r = rand;
if r<1/6
x = -y^(-1/2);
f = 3*abs(x)^3/(abs(x)^3+1);
elseif r<5/6
x = -1+2*y;
f = 3/(abs(x)^3+1);
else
x = y^(-1/2);
f = 3*abs(x)^3/(abs(x)^3+1);
end
somme = somme+f;
sommecarres = sommecarres+f*f;
end
t=toc;
m = somme/N; v = sommecarres/N-m*m; err = 1.96*sqrt(v/N); I = [m-err m+err];
eff_par_etape = 1/v; etape_par_s = N/t; eff_par_s = eff_par_etape*etape_par_s;
disp('Estimateur :'); disp(m);
disp('Intervalle de confiance :'); disp(I);
disp('Temps de calcul (s) :'); disp(t);
disp('Nombre d''tapes de calcul par seconde :'); disp(etape_par_s);
disp('Efficacit par tape :'); disp(1/v);
disp('Efficacit par seconde :'); disp(eff_par_s);
end
cole des Mines de Nancy
: La mthode de Monte-Carlo
III.5 Grandes dviations de 100 lancers dune pice
III.5.a Algorithme naf
function pileoufacenaif(N)
% La fonction "pileoufacenaif" value R par chantillonnage non biais. N
% est le nombre de simulations demand.
somme = 0;
sommecarres = 0;
tic;
for i = 1:N
omega = (rand(1,100)<1/2);
X = sum(omega);
y = max(X-60,0);
somme = somme+y;
sommecarres = sommecarres+y*y;
end
t = toc;
m = somme/N;
sigma = sqrt(sommecarres/N-m*m);
disp('Intervalle de confiance :');
disp([m-2*sigma/sqrt(N),m+2*sigma/sqrt(N)]);
disp('Temps de calcul :');
disp(t);
end
III.5.b Avec chantillonnage prfrentiel
function pileoufacepref(N)
% La fonction "pileoufacepref" value R par chantillonnage prfrentiel. N
% est le nombre de simulations demand.
somme = 0;
sommecarres = 0;
% Comme on aura besoin de la valeur de (1/2)^100 chaque simulation et que
% son calcul prend un certain temps, on calcul cette valeur une fois pour
% toutes.
C = (1/2)^100;
tic;
for i = 1:N
omega = (rand(1,100)<.6);
X = sum(omega);
y = C*max(X-60,0)/(.6^X*.4^(100-X));
somme = somme+y;
sommecarres = sommecarres+y*y;
end
t = toc;
m = somme/N;
sigma = sqrt(sommecarres/N-m*m);
disp('Intervalle de confiance :');
disp([m-2*sigma/sqrt(N),m+2*sigma/sqrt(N)]);
disp('Temps de calcul :');
disp(t);
end
cole des Mines de Nancy
La mthode de Monte-Carlo
III.6 Code pour le dilemme rugbystique
function AgenBrive(q,qbis,N)
% La fonction AgenBrive value, d'une part la probabilit de victoire de
% l'quipe B en suivant la stratgie S_q, d'autre part la diffrence entre
% les probabilits associes aux stratgies S_q et S_qbis. N est le nombre
% de simulations demand.
% "victoires" et "sommecarresv" sont respectivement la somme et la somme des
% carrs associes au calcul de la probabilit de succs sous S_q.
victoires = 0;
sommecarresv = 0;
% "difference" et "sommecarresd" sont respectivement la somme et la somme
% des carrs associes au calcul de la diffrence des probabilits de succs.
difference = 0;
sommecarresd = 0;
% On lance N simulations de matchs, avec chaque fois un couplage entre
% l'quipe B suivant la stratgie S_q et une quipe fictive Bbis suivant la
% stratgie S_qbis.
for i = 1:N
% "A" est le score de l'quipe A.
A = 3*sum(rand(12,1)<.6);
% Pour tenir compte du tirage la pice ventuel, on ajoute A un
% nombre fractionnaire plus petit que 1 qui a une chance sur deux
% d'tre positif.
A = A+rand-.5;
% "avantage" est une srie qui, en i-ime position, contient 1 si
% l'quipe B (et donc aussi Bbis) a pris l'avantage l'issue de sa
% i-ime squence de jeu, et 0 sinon.
avantage = (rand(12,1) < .4);
% rand12 est la srie de variables alatoires qui sert coupler les
% comportements des quipes B et Bbis.
rand12 = rand(12,1);
% "Btenteessai" et "Bbistenteessai" disent si les quipes B et Bbis,
% respectivement, tentent l'essai l'issue de la i-ime squence de
% jeu. "Bprendpenalite" et "Bbisprendpenalite", l'inverse, disent si
% les quipes ont plutt pris la pnalit. Attention, tout cela
% n'a de sens que sous rserve que les quipes aient pris
% l'avantage !
Btenteessai = (rand12 < q);
Bprendpenalite = 1-Btenteessai;
Bbistenteessai = (rand12 < qbis);
Bbisprendpenalite = 1-Bbistenteessai;
% "essaireussi" dit si l'essai tent la i-ime squence de jeu a t
% russi. Attention, cela n'a de sens que sous rserve que l'essai ait
% effectivment t tent!
essaireussi = (rand(12,1) < .35);
% "B" et "Bbis" sont les scores respectifs des quipes B et Bbis.
B = sum(avantage.*(3*Bprendpenalite+7*Btenteessai.*essaireussi));
Bbis = sum(avantage.*(3*Bbisprendpenalite+7*Bbistenteessai.*essaireussi));
% La simulation est maintenant termine ; il ne reste plus qu' faire
% les comptes !
if(B>A)
victoires = victoires+1;
sommecarresv = sommecarresv+1;
cole des Mines de Nancy
La mthode de Monte-Carlo
end
if((Bbis>A) && (B<A))
difference = difference+1;
sommecarresd = sommecarresd+1;
elseif((Bbis<A) && (B>A))
difference = difference-1;
sommecarresd = sommecarresd+1;
end
end
% Calcul et affichage des intervalles de confiance.
p = victoires/N;
v = (sommecarresv/N-p*p)/N;
disp('Intervalle de confiance pour P_q(B) :')
disp([p-2*sqrt(v),p+2*sqrt(v)]);
m = difference/N;
w = (sommecarresd/N-m*m)/N;
disp('Intervalle de confiance pour P_qbis(B) - P_q(B) :')
disp([m-2*sqrt(w),m+2*sqrt(w)]);
end
cole des Mines de Nancy

Das könnte Ihnen auch gefallen