Je souhaite maximiser globalement une fonction de nombreux ( ) paramètres réels (résultat d'une simulation complexe). Cependant, la fonction en question est relativement coûteuse à évaluer, nécessitant environ 2 jours pour chaque ensemble de paramètres. Je compare différentes options et je me demandais si quelqu'un avait des suggestions.
Je sais qu'il existe une série de méthodes pour ce type de processus qui impliquent le développement de fonctions approximatives et leur maximisation (par exemple, Jones et al. "Efficient Global Optimization of Expensive Black-Box Functions" ). Cependant, cela semble être relativement impliqué dans le code.
J'ai la possibilité d'exécuter un grand nombre de simulations en parallèle (50+). Cela semblait suggérer d'utiliser quelque chose comme des algorithmes génétiques pour faire cette optimisation - car je peux créer une population de solutions candidates aussi rapidement que je peux en créer une.
Voici mes questions: 1) Quelqu'un a-t-il des expériences avec des implémentations disponibles gratuitement de ce type de solveurs / recommandations globales? 2) Y a-t-il des raisons de préférer ou d'éviter les algorithmes génétiques ici?
C'est un problème physique, et mes premières expériences ont montré que la valeur du mérite change assez facilement lorsque je change les paramètres.
METTRE À JOUR:
Merci pour l'aide! Encore quelques détails: je n'ai besoin d'aucune information au-delà de l'emplacement du maximum. La simulation est déterministe, pas Monte Carlo, de sorte que la complication n'est pas un gros problème. Il n'y a pas de limites ou contraintes explicites sur les paramètres. Une autre information dont je dispose (et que je n'ai pas mentionnée auparavant) est une idée de la taille du maximum requis. Bien que je recherche un maximum global, je serais également satisfait de tout élément de cette échelle ou plus - je ne sais pas si cela pourrait vous aider. J'espère que si je fais la projection de manière plus systématique (hypercubes latins comme suggéré par Brian Borchers), cela apparaîtra.