Méthode de Monte-Carlo

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Monte-Carlo (homonymie).

Le terme méthode de Monte-Carlo, ou méthode Monte-Carlo, désigne toute méthode visant à calculer une valeur numérique en utilisant des procédés aléatoires, c'est-à-dire des techniques probabilistes. Le nom de ces méthodes, qui fait allusion aux jeux de hasard pratiqués à Monte-Carlo, a été inventé en 1947 par Nicholas Metropolis[1], et publié pour la première fois en 1949 dans un article coécrit avec Stanislaw Ulam[2].

Les méthodes de Monte-Carlo sont particulièrement utilisées pour calculer des intégrales en dimensions plus grandes que 1 (en particulier, pour calculer des surfaces et des volumes). Elles sont également couramment utilisées en physique des particules, où des simulations probabilistes permettent d'estimer la forme d'un signal ou la sensibilité d'un détecteur. La comparaison des données mesurées à ces simulations peut permettre de mettre en évidence des caractéristiques inattendues, par exemple de nouvelles particules.

La méthode de simulation de Monte-Carlo permet aussi d'introduire une approche statistique du risque dans une décision financière. Elle consiste à isoler un certain nombre de variables-clés du projet, tels que le chiffre d'affaires ou la marge, et à leur affecter une distribution de probabilités. Pour chacun de ces facteurs, un grand nombre de tirages aléatoires est effectué dans les distributions de probabilité déterminées précédemment, afin de trouver la probabilité d'occurrence de chacun des résultats.

Le véritable développement des méthodes de Monte-Carlo s'est effectué sous l'impulsion de John von Neumann et Stanislas Ulam notamment, lors de la Seconde Guerre mondiale et des recherches sur la fabrication de la bombe atomique. Notamment, ils ont utilisé ces méthodes probabilistes pour résoudre des équations aux dérivées partielles dans le cadre de la Monte-Carlo N-Particle transport (MCNP).

Théorie[modifier | modifier le code]

Nous disposons de l'expression de l'espérance mathématique d'une fonction g de variable aléatoire X, résultant du théorème de transfert, selon lequel

G = E(g(X))=\int g(x)f_X(x) \, \mbox{d}x

f_X est une fonction de densité sur le support [a;b]. Il est fréquent de prendre une distribution uniforme sur [a;b]:

f_X(x) = \frac{1}{b-a}

Ceci peut être étendu aux probabilités discrètes en sommant grâce à une mesure \nu discrète, de type Dirac.

L'idée est de produire un échantillon (x_1,x_2,...,x_N) de la loi X (donc d'après la densité f_X) sur le support [a;b], et de calculer un nouvel estimateur dit de Monte-Carlo, à partir de cet échantillon.

La loi des grands nombres suggère de construire cet estimateur à partir de la moyenne empirique :

\tilde{g_N} = \frac{1}{N} \sum_{i=1}^{N} g(x_i),

qui se trouve être, par ailleurs, un estimateur sans biais de l'espérance.

Ceci est l'estimateur de Monte-Carlo. Nous voyons bien qu'en remplaçant l'échantillon par un ensemble de valeurs prises dans le support d'une intégrale, et de la fonction à intégrer, nous pouvons donc construire une approximation de sa valeur, construite statistiquement.

Cette estimation est sans biais, dans le sens où

E(\tilde{g_N})= G = E(g(X))

Il faut aussi quantifier la précision de cette estimation, via la variance de \tilde{g_N}. Si l'échantillon est supposé iid, cette variance est estimée à l'aide de la variance empirique

 S^2_{g(X)} = \frac{1}{N} \sum_{i=1}^N (g(x_i) - \tilde{g_N})^2 \simeq \sigma_g^2

avec

\sigma_g^2= E(g^2(X)) - E(g(X))^2 = \int_{\Omega} g^2(x) f_X(x) \,\mbox{d} x - G^2


Par le théorème de la limite centrale, on sait que la variable :

Z := \frac{\tilde{g_N}-G}{\sigma_g / \sqrt{N}} \equiv \mathcal{N} \; \left(0;1\right)

qui est centrée et réduite, suit approximativement la loi normale centrée réduite, ou loi de Gauss. Il est alors possible de construire des intervalles de confiance, ce qui permet d'encadrer l'erreur commise en remplaçant G par \tilde{g_N}. Si cette erreur est dénotée e_n, alors pour un niveau de risque \alpha donné, on a:

|e_n| \leq z_{1-\alpha/2}\frac{\sigma_g}{\sqrt{N}}

avec probabilité 1-\alpha. Le réel z_{1-\alpha/2} est le quantile de la loi normale centrée réduite. Par exemple, au niveau de risque \alpha = 5 \%, on trouve dans les tables z_{1-\alpha/2}=1,96 et l'erreur est majorée par 1,96 \sigma_g/\sqrt{N}. Cette méthode permet donc de quantifier l'erreur commise, à condition d'estimer \sigma_g par sa contre-partie empirique

\hat{\sigma}_g = \sqrt{S^2_{g(X)}}.

On voit ainsi que l'erreur est de l'ordre de N^{-1/2} : par exemple, multiplier la taille de l'échantillon par 100 permet de diviser par 10 l'erreur d'estimation.

Il est à noter qu'en pratique, \sigma_g n'est pas connu et doit être estimé ; comme précisé plus haut, on peut utiliser sa contre-partie empirique. Diverses méthodes, dites techniques de réduction de la variance, permettent d'améliorer la précision — ou de diminuer le temps de calcul — en remplaçant g(X) par une autre variable aléatoire. Ces techniques rentrent en général dans l'une des classes suivantes : l'échantillonnage préférentiel, les variables de contrôle, la variable antithétique, la stratification et le conditionnement.

Exemples[modifier | modifier le code]

Résolution du Problème du voyageur de commerce[modifier | modifier le code]

La résolution du problème du voyageur de commerce est difficile, du fait de la complexité du problème, l'emploi de méthodes d'optimisation probabilistes peut s'avérer efficace pour obtenir une approximation de la meilleure solution, en un temps plus court que pour des méthodes déterministes.

Détermination de la valeur de π (pi)[modifier | modifier le code]

Cette méthode est proche de l'expérience de l'aiguille de Buffon.

Soit un point M de coordonnées (x, y), où 0<x<1 et 0<y<1. On tire aléatoirement les valeurs de x et y. Le point M appartient au disque de centre (0,0) de rayon 1 si et seulement si \scriptstyle x^2+y^2 \leq 1. La probabilité que le point M appartienne au disque est π/4.

En faisant le rapport du nombre de points dans le disque au nombre de tirages, on obtient une approximation du nombre π/4 si le nombre de tirages est grand.

représentation du calcul de la valeur de pi par rapport du nombre de points aléatoires étant contenus dans un quart de cercle, l'ensemble des possibles étant un carré de côté R

Détermination de la superficie d'un lac[modifier | modifier le code]

Cet exemple est un classique en vulgarisation de la méthode de Monte-Carlo. Soit une zone rectangulaire ou carrée dont les côtés sont de longueur connue. Au sein de cette aire se trouve un lac dont la superficie est inconnue. Grâce aux mesures des côtés de la zone, on connaît l'aire du rectangle. Pour trouver l'aire du lac, on demande à une armée de tirer X coups de canon de manière aléatoire sur cette zone. On compte ensuite le nombre N de boulets qui sont restés sur le terrain ; on peut ainsi déterminer le nombre de boulets qui sont tombés dans le lac : XN. Il suffit ensuite d'établir un rapport entre les valeurs :

\frac{\mathrm{superficie}_{~\mathrm{terrain}}}{\mathrm{superficie}_{~\mathrm{lac}}} = \frac{X}{X-N}
\Longrightarrow \qquad \mathrm{superficie}_{~\mathrm{lac}} = \frac{(X-N)}{X} \ \times \ \mathrm{superficie}_{~\mathrm{terrain}}

Par exemple, si le terrain fait 1 000 m2, que l'armée tire 500 boulets et que 100 projectiles sont tombés dans le lac, alors une estimation de la superficie du plan d'eau est de : 1000×100÷500 = 200.

Estimation de la surface du lac grâce à des tirs d'artillerie aléatoires

La qualité de l'estimation s'améliore en augmentant le nombre de tirs et en s'assurant que les artilleurs ne visent pas toujours le même endroit mais couvrent bien la zone. Cette dernière remarque est à mettre en parallèle avec la qualité du générateur aléatoire qui est primordiale pour avoir de bons résultats dans la méthode de Monte-Carlo. Un générateur biaisé est comme un canon qui tire toujours au même endroit : les informations qu'il apporte sont réduites.

Application au modèle d'Ising[modifier | modifier le code]

Article détaillé : Modèle d'Ising.

Recouvrement de courbes et méthode contrainte-résistance[modifier | modifier le code]

Méthode contrainte-résistance : la fréquence de défaillance correspond à l'aire sous l'intersection des courbes rouge et bleue (haut).

La méthode de Monte-Carlo peut-être utilisée pour déterminer l'aire sous l'intersection de deux courbes, qui n'est qu'une surface particulière.

Les courbes peuvent être les courbes représentatrices des densités de probabilité de deux lois. C'est par exemple utilisé dans la méthode contrainte-résistance :

  • un système est soumis à une contrainte — une sollicitation quelle qu'elle soit (effort mécanique, variation de température, passage de courant électrique, …) — dont l'intensité est une variable aléatoire S ;
  • le système est conçu pour résister à cette contrainte, sa résistance est exprimée par une valeur, une variable aléatoire R ;
  • le système est validé si la résistance est supérieure à la contrainte — R > S — dans un certain nombre de cas (typiquement 99 % ou 99,9 %).

La probabilité complémentaire — les cas de défaillance, celle pour laquelle S ≤ R — est l'aire sous l'intersection des deux courbes représentant les lois.

On peut déterminer la probabilité P(R > S) en faisant des tirages aléatoires sur R et S et en dénombrant les cas pour lesquels « R > S » est vrai.

Estimation de la valeur d'un coup au go[modifier | modifier le code]

Aux échecs, il est facile de mesurer la valeur d'une position, et donc d'un coup y menant, en comptant le nombre de pièces sur l'échiquier, en les pondérant (1 point par pion, 5 par tour...), et en ajustant la valeur trouvée par les libertés, les protections des pièces... Cela n'est pas possible au go. On a alors recours à une analyse de Monte-Carlo : on joue "au hasard" un grand nombre de parties, et on comptabilise la proportion que l'on en gagne. Cette estimation statistique peut s'affiner en biaisant le hasard de façon à éviter les coups stupides.

Estimation de la valeur d'un coup aux échecs[modifier | modifier le code]

Parfois, pour savoir si un coup ambigu doit être fait (échange de pièces par exemple), lorsqu'on manque d'information, ou pour choisir entre plusieurs coups menant tous à des pertes de matériel, il est possible de lancer plusieurs parties rapides au hasard, pour savoir quelle est la moins mauvaise ou la meilleure des solutions.

Notes et références[modifier | modifier le code]

  1. Nicholas Metropolis, « The Beginning of the Monte Carlo Method », Los Alamos Science, no 15,‎ 1987, p. 125-130 (lire en ligne)
  2. Nicholas Metropolis et Stanislaw Ulam, « The Monte Carlo Method », Journal of the American Statistical Association, vol. 44, no 247,‎ septembre 1949, p. 335-341 (lire en ligne).

Voir aussi[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Codes de simulation utilisant des méthodes de Monte-Carlo

Liens externes[modifier | modifier le code]