Estou interessado em maximizar globalmente uma função de muitos ( ) parâmetros reais (resultado de uma simulação complexa). No entanto, a função em questão é relativamente cara de avaliar, exigindo cerca de 2 dias para cada conjunto de parâmetros. Estou comparando opções diferentes e queria saber se alguém tinha sugestões.
Sei que há um conjunto de métodos para esse tipo de processo que envolve o desenvolvimento de funções aproximadas e a maximização (por exemplo, Jones et al. "Otimização global eficiente de funções caras da caixa preta" ). No entanto, isso parece estar relativamente envolvido no código.
Eu tenho a capacidade de executar um grande número de simulações em paralelo (mais de 50). Isso parecia sugerir o uso de algoritmos genéticos para fazer essa otimização - já que eu posso criar uma população de soluções candidatas tão rapidamente quanto possível.
Aqui estão minhas perguntas: 1) Alguém tem experiências com implementações disponíveis gratuitamente desse tipo de solucionadores / recomendações globais? 2) Existem razões para preferir ou evitar algoritmos genéticos aqui?
Esse é um problema físico, e meus primeiros experimentos mostraram que a figura do mérito muda bastante suavemente à medida que eu mudo os parâmetros.
ATUALIZAR:
Obrigado pela ajuda! Mais alguns detalhes: não preciso de nenhuma informação além da localização máxima. A simulação é determinística, não Monte Carlo, de modo que a complicação não é grande coisa. Não há limites ou restrições explícitos nos parâmetros. Uma outra informação que eu tenho (e não mencionei antes) é uma noção do tamanho do máximo necessário. Enquanto procuro um máximo global, também ficaria feliz com qualquer coisa dessa escala ou maior - não sei se isso forneceria alguma ajuda. Felizmente, se eu fizer a triagem de forma mais sistemática (hipercubos em latim, como sugerido por Brian Borchers), isso aparecerá.