Bonjour,
On entend parler de plus en plus souvent de la méthode de Monte-Carlo,
J'aimerais bien avoir des avis d'utilisateurs, leur domaine d'utilisation, leur sentiment sur la fiabilité.
Merci.
-----
Bonjour,
On entend parler de plus en plus souvent de la méthode de Monte-Carlo,
J'aimerais bien avoir des avis d'utilisateurs, leur domaine d'utilisation, leur sentiment sur la fiabilité.
Merci.
C'est utilisé en mathématiques financières, physique statistique, intelligence artificielle, problèmes d'optimisation combinatoire... l'article wikipedia en anglais sur le sujet donne un bon aperçu des domaines ou ce type d'algorithme est utilisé.
Pour la "fiabilité", tout dépend de ce que l'on cherche à calculer, chaque domaine a souvent des "problèmes" qui lui sont propres. La méthode de Monte-carlo étant plus une méta-méthode qu'un algorithme précis
La méthode de Monte-Carlo permet d'estimer une espérance à partir du moment où l'on sait simuler la variable aléatoire dont on veut calculer l'espérance.
De très nombreuses choses peuvent se mettre sous la forme d'une espérance (par exemple des solutions d'équations aux dérivées partielles, aussi étrange que cela puisse paraître).
L'avantage de cette méthode est qu'elle est très résiliente et facile à implémenter. L'inconvénient est que le résultat est probabiliste et donc les vitesses de convergence seront toujours au sens probabiliste.
Pour ce qui est de l'efficacité, grossièrement on a une précision en 1/\sqrt{n}, où n est le nombre de points utilisés, et ce quelque soit la dimension. En gros on peut retenir que (une fois la question posée sous forme d'un calcul d'intégral) :
- pour aller jusqu'à la dimension 4 il vaut mieux utiliser une méthode déterministe (éléments finis)
- entre 4 et 20 en gros les méthodes de quasi-MonteCarlo sont adaptées
- au délà Monte Carlo est la seule méthode qui peut donner des résultats en un temps raisonnable
sinon comme l'a dis Tryss c'est une méthode archi utilisée (avec divers raffinements) et enseignée un peu
partout...
P.S : a oui mais pour comprendre Monte Carlo il faut déjà savoir ce qu'est une espérance, ou même simplement ce qu'est une variable aléatoire...
Bonjour,
voilà mon petit témoignage :
je mène depuis 2 ou 3 mois des calculs intensifs faisant intervenir des puissances de 5 à plusieurs milliards. C'est en C/C++ sur des machines 64 bits en réseau partageant un disque commun pour les données.
Avec les variantes à faibles puissances , disons au dessous de 100 et l'usage de double , j'obtiens la courbe recherchée avec une certaine précision. Au delà, la précision s'effondre.
J'ai testé plusieurs librairies mathématiques à précision arbitraire. Avec l'une des meilleures et l'usage de 256 chiffres significatifs, le domaine de validité de l'algo est monté jusqu'à 120. Là c'est le temps de traitement qui s'est effondré pour un gain négligeable. A 512 et 1024 chiffres, l'algo ramait trop pour attendre la fin des tests.
Finalement, j'ai transformé la partie grosse puissance du calcul en méthode de Monte-Carlo. La précision est optimale après des tests jusqu'à des puissances de 3 milliards. Pour les puissances inférieures à 120, la précision est triple. C'est lent mais après optimisation , acceptable. Et surtout le résultat espéré est au rendez-vous pour tout le domaine d'application de la fonction.
Donc, ca peut aussi être un moyen de contourner les problèmes de précisions en calcul intensif.
J'en profite pour rappeler de faire attention à l'initialisation des randomisateurs surtout si le travail est réparti ou fait par sessions successives.
Salut
Les randomises logicielles sont pseudo aléatoires. avec la même valeur initiale, la série est reproduite a l'identique.
Je crois qu'il existe une carte pc qui utilise le bruit blanc pour générer du vrai aléatoire (physique)
Mais j'en sais pas plus (sur ces cartes)
c'est pas dur a construire.
Une malheureuse résistance pourrie antique en carbone aglo, un ampli opérationnel, enfin assez pour un niveau de signal suffisant et derriere on génère une valeur vraiment aléatoire.
Cordialement
Zoldick
Bonjour,
c'est inutile , la plupart des systèmes d'exploitation contiennent des fichiers variables.
Il suffit de faire une fonction qui parte de la somme des tailles de quelques fichiers à laquelle on peut ajouter, par exemple, le checksum de la dernière ligne d'un fichier de logs. Si le programme doit tourner en plusieurs exemplaires qui risquent de démarrer dans la même tranche d'horloge, il faut par exemple ajouter le no interne de la session ( pid )
On peut, sans introduire de biais particuluer , initialiser une base d'initialisateurs différents et les utiliser les uns à la suite des autres.
Quels sont les critères de qualité d'une suite aléatoire ? Comment analyser par exemple une production de 10^6 sorties et conclure ?
Je ne suis pas sûr que ça soit une question facile.
Minsky is an actor in an artificial intelligence koan (attributed to his student, Danny Hillis) from the Jargon file:
In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.
"What are you doing?" asked Minsky.
"I am training a randomly wired neural net to play Tic-tac-toe," Sussman replied.
"Why is the net wired randomly?", asked Minsky.
"I do not want it to have any preconceptions of how to play," Sussman said.
Minsky then shut his eyes.
"Why do you close your eyes?" Sussman asked his teacher.
"So that the room will be empty."
At that moment, Sussman was enlightened.[35]
What I actually said was, "If you wire it randomly, it will still have preconceptions of how to play. But you just won't know what those preconceptions are." --Marvin Minsky
Si tu utilises du hasard physique, il y a toujours un moyen de reproduire la série. Simplement, tu ignores comment.
ce n'est pas une question facile en effet, mais on connaît des critères de qualité. Cherche par exemple "runs up and down". La littérature sur le sujet est énorme.
C'est tout à fait fiable si on comprend ce qu'on fait, c'est à dire si on maitrise les conditions de convergence, la propagation des erreurs, etc.
D'un point de vue mathématique, c'est bien compris et justifié. Après, il y a quelques pièges dans l'implémentation.
Comme indiqué plus haut, il faut s'assurer de la qualité du générateur aléatoire, et de la précision des calculs.
J'utilise ces méthodes depuis 20 ans, essentiellement sur des problèmes d'optique et transferts de flux radiatifs. C'est loin d'être la plus efficace sur tous les problèmes en temps de calcul, mais c'est la plus universelle et la plus simple à implémenter.
Dans mon cas, les caractéristiques radiométriques des sources et matériaux (indicatrice d'émission, de diffusion, etc.) s'interprètent naturellement comme des densités de probabilités, et le travail consiste à transformer cela en générateurs aléatoires.
A+