Méthode de Monte-Carlo

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

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 (en), et publié pour la première fois en 1949 dans un article co-écrit avec Stanislas Ulam.

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

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

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

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

L'idée est de produire un échantillon (x1,x2,...,xN) de la loi X (donc d'après la densité fX) 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 :

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

Il faut aussi quantifier la précision de cette estimation, via la variance de

.

Si l'échantillon est supposé iid, cette variance est estimée à l'aide de la variance empirique

avec

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

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 . Si cette erreur est dénotée en, alors pour un niveau de risque α donné, on a:

avec probabilité 1 − α. Le réel z1 − α / 2 est le quantile de la loi normale centrée réduite. Par exemple, au niveau de risque , on trouve dans les tables z1 − α / 2 = 1,96 et l'erreur est majorée par . Cette méthode permet donc de quantifier l'erreur commise, à condition d'estimer σg par sa contre-partie empirique

On voit ainsi que l'erreur est de l'ordre de N : 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, σ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 variable de contrôle, la variable antithétique, la stratification (Monte-Carlo) et le conditionnement (Monte-Carlo).

Exemples

Résolution du Problème du voyageur de commerce

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)

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

Soit un point \scriptstyle\ M\ de coordonnées \scriptstyle\ (x, y)\, où \scriptstyle\ 0<x<1\ et \scriptstyle\ 0<y<1\.

On tire aléatoirement les valeurs de \scriptstyle\ x\ et \scriptstyle\ y\.

Si \scriptstyle\ x^2+y^2<1\ alors le point \scriptstyle\ M\ appartient au disque de centre \scriptstyle\ (0,0)\ de rayon 1.

La probabilité que le point \scriptstyle\ M\ appartienne au disque est π/4.

En faisant le rapport du nombre de points dans le disque par rapport 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 possible étant un carré de côté R

Détermination de la superficie d'un lac

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 : X-N. Il suffit ensuite d'établir un rapport entre les valeurs :

Par exemple, si le terrain fait 1000 m, 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 : 100*1000/500 = 200 m.

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

Estimation de la valeur d'un coup au Go

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 en évitant les coups stupides. Voir l'article dédié.

Estimation de la valeur d'un coup aux Échecs

Parfois, pour savoir si un coup hasardeux 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 pire ou la meilleure des solutions.

Estimation de la véracité de rumeurs

Pour savoir si une rumeur est probablement vraie, on teste la recherche sur internet, et son contraire. Il suffit de comparer les résultats sur un même moteur de recherche. C'est une méthode simple, rapide et gratuite, mais non fiable, par la multiplicité des sources non vérifiées. Exemples :

  • "Ben laden est vivant" : environ 99 500 résultats sur Google, le 25 décembre 2010.
  • "Ben laden est mort" : environ 292 000 résultats sur Google, le 25 décembre 2010, soit environ trois fois plus.

Il est donc plus probable, mais pas certain, qu'Ossama Ben Laden soit décédé. (Estimer la date de décès est plus difficile "Ben laden est mort le" donnant une date qui a pu être copiée de site en site).

De même, à titre de référence :

  • "François mitterrand est mort" : environ 44 900 résultats sur Google, le 25 décembre 2010.
  • "François mitterrand est vivant" : 5 résultats sur Google, le 25 décembre 2010.