Imaginez que votre enfant vous demande qui va gagner dans une partie de jeu de l'oie bien avancée. Comment savoir ? En faisant une simulation Monte Carlo.
On demande à l'ordinateur de choisir un nombre au hasard entre 1 et 6, on avance de ce nombre de cases et on applique la règle de la case sur laquelle on tombe. Puis on fait de même avec le joueur suivant, et ainsi de suite jusqu'à ce que quelqu'un gagne.
Sauf qu'évidemment avec des résultats différents aux dés le vainqueur aurait pu être différent. Donc on recommence au début : on demande à l'ordinateur de choisir un nombre au hasard entre 1 et 6, on avance de ce nombre de cases, on applique la règle de la case sur laquelle on tombe, puis on fait de même avec le joueur suivant. Et encore, et encore, et encore. On simule mille parties. On simule un million de parties. Et on conclue que le joueur rouge gagne 42,6 % du temps, le bleu 32,8 % et le jaune 24,6 %. (Ça ne nous dit pas qui va gagner la partie en court, mais ça nous donne la probabilité de victoire de chaque joueur.)
Le principe d'une simulation Monte Carlo est aussi simple que ça.
Aléatoire signifie au hasard. Un phénomène aléatoire est un phénomène dont on ne peut prédire l'issue (par exemple lancer un dé). Un nombre aléatoire est un nombre choisi au hasard.
Quand on demande à un ordinateur un nombre au hasard, ce qu'il génère est en fait un nombre pseudo-aléatoire. La séquence de nombres produite paraît aléatoire (il ne semble n'y a avoir aucun lien entre nombre successifs) mais ça n'est pas vraiment le cas. (En pratique on les appelle souvent plus simplement des nombres aléatoires, mais sans perdre de vue qu'ils ne le sont pas vraiment.)
Une simulation probabiliste ou stochastique est une simulation numérique basée sur des nombres aléatoires. Le résultat sera sous la forme d'une probabilité, alors qu'avec les simulations déterministes, l'issue est toujours la même.
Dans certains cas on sait parfaitement prédire ce qui va arriver : quand je tape dans une balle de tennis avec une raquette, je sais où la balle va aller. Sa trajectoire n'est pas due au hasard : elle est entièrement déterminée par la position initiale de la balle, la force, l'orientation de la raquette, etc. — la trajectoire est déterministe. Le tirage du loto est en revanche affaire de hasard. Mais il y a des situations plus subtiles, à la limite entre déterministe et non-déterministe.
La météo par exemple n'est pas due au hasard (elle obéit aux lois de la physique) mais elle est néanmoins dure à prévoir. Une situation qui est à la fois déterministe en théorie et dure à prédire en pratique est dite chaotique.
Lancer une pièce ou un dé est suffisamment chaotique pour qu'on puisse considérer le résultat comme aléatoire. Mais dans certains cas l'aspect déterministe revient en force : il est possible de tricher à la roulette avec une caméra qui localise la bille en mouvement par rapport aux chiffres et un ordinateur qui calcule sur quels chiffres elle va sans doute s'arrêter.
À l'inverse on peut parfois traiter de manière non-déterministe un phénomène qui est en fait déterministe. Par exemple, le temps qu'il fera dans deux semaines n'est pas réellement aléatoire, mais il serait difficile à connaître. On peut donc utiliser des statistiques disant qu'à cette époque de l'année la probabilité qu'il pleuve est de 15 % et dans la simulation utiliser des nombres aléatoires pour décider s'il pleuvra.
Les simulations Monte Carlo ne sont donc pas uniquement utiles dans des situations vraiment aléatoires (comme le jeu de l'oie). On peut aussi s'en servir quand des détails déterministes donnent des résultats apparemment aléatoires. Il y a donc une décision à prendre dans la modélisation : traitera-t-on le phénomène qui nous intéresse comme déterministe ou pas ? Ainsi, en science, on calcule parfois minutieusement ce qui peut se passer, mais d'autres fois (y compris pour le même phénomène) on se contente de dire que tel ou tel événement a une certaine probabilité d'arriver et on regarde les conséquences.
En plus de l'application évidente des jeux de hasard, regardons l'utilisation des simulations Monte Carlo pour deux applications : la physique et les placements financiers.
On veut étudier les déplacements (ce qu'on appelle la diffusion) d'un atome, par exemple sur une surface. On dit qu'en une nanoseconde (1 ns), l'atome a une certaine probabilité de se déplacer vers la gauche, vers la droite, le haut ou le bas. Il peut aussi ne pas bouger. La somme de ces cinq probabilités fait bien sûr 100 %. La probabilité des quatre directions peut être identique (isotropie) ou bien il peut y avoir jusqu'à quatre valeurs différentes.
On tire donc un chiffre au hasard pour décider du déplacement de l'atome. (C'est comme lancer un dé à cinq faces, mais où chaque face pourrait avoir une taille différente.) On répète l'opération pour la nanoseconde suivante, et la suivante, etc. On peut ainsi créer image par image le film des déplacements de cet atome.
Évidemment, avec d'autres chiffres aléatoires on aurait obtenu un résultat différent. Donc on recommence depuis le début pour obtenir une nouvelle trajectoire, et encore une autre, et encore une autre. Quelques milliers ou millions de trajectoires plus tard, on a des statistiques : on peut connaitre par exemple la distance moyenne parcourue depuis le point de départ, la direction, etc.
La diffusion d'un atome n'est pas vraiment entièrement due au hasard, c'est juste que le phénomène est tellement compliqué (chaotique) que l'issue semble aléatoire. On peut donc aussi simuler la diffusion avec des techniques déterministes, comme la dynamique moléculaire. L'avantage de Monte Carlo est qu'on ne s'occupe pas de tous les détails qui prennent du temps à calculer et qu'on se focalise sur leurs conséquences (les probabilités des différents événements) : la simulation est donc beaucoup plus rapide. En revanche, ça nécessite de simplifier (et donc d'ignorer certains détails) et des données sur les probabilités (venant d'expériences ou de simulations déterministes).
Avec des placements comme la Bourse, on ne sait pas à l'avance combien on va gagner. On sait que sur le long terme les actions rapportent plus que des livrets d'épargne, mais on ne sait pas si la Bourse va monter ou baisser demain. On peut donc simuler les marchés comme une série de lancers de dés : comme avec les dés on ne connaît pas les résultats un par un, mais on connaît leur moyenne (le rendement moyen des actions).
Imaginons que vous soyez dans la situation suivante :
Chaque année, la différence entre revenus et dépenses est placée dans un portefeuille boursier actions–obligations. Jusqu'à quel âge pourrez-vous retirer de l'argent sur votre épargne ?
Vous n'en savez fichtrement rien, je suppose. Et pourtant on peut répondre à la question : avec une simulation Monte Carlo. C'est-à-dire qu'on simule des milliers d'évolutions possibles des marchés et on regarde combien de temps vous tenez en moyenne, ou bien quelle probabilité vous avez d'être à sec dans trente ans, etc.
Comme la performance du marché n'est pas connue à l'avance, le résultat est une fourchette de possibilités : la majeure partie des résultats (60 %) sera dans la zone bleue, avec les zones orange et vertes représentant 15 % de probabilités chacune. Il y a une probabilité de 5 % au-dessus du vert et autant sous l'orange. La ligne noire de la figure ci-contre correspond à l'épargne cumulée (c'est-à-dire sans les gains et pertes sur les placements).
Le résultat de la simulation ci-dessus montre deux goulets d'étranglement, en 2025 et 2047. Cette information vous permet par exemple de prévoir de réduire vos dépenses quelques années avant, et ensuite de simuler à nouveau jusqu'à obtenir un résultat satisfaisant — c'est-à-dire, jusqu'à ce que votre stratégie vous donne une bonne probabilité d'atteindre tous vos objectifs.
On pourrait aller plus loin et coupler la simulation Monte Carlo à un programme optimisant l'allocation d'actifs dans le temps pour maximiser votre probabilité d'atteindre vos objectifs. (L'allocation en actions par exemple serait automatiquement plus élevée en phase d'accumulation et plus basse à la retraite.)