Estoy interesado en maximizar globalmente una función de muchos ( ) parámetros reales (resultado de una simulación compleja). Sin embargo, la función en cuestión es relativamente costosa de evaluar y requiere aproximadamente 2 días para cada conjunto de parámetros. Estoy comparando diferentes opciones y me preguntaba si alguien tenía sugerencias.
Sé que hay un conjunto de métodos para este tipo de procesos que implican desarrollar funciones aproximadas y luego maximizarlas (por ejemplo, Jones et al. "Optimización global eficiente de funciones de caja negra costosas" ). Sin embargo, esto parece estar relativamente involucrado con el código.
Tengo la capacidad de ejecutar una gran cantidad de simulaciones en paralelo (50+). Esto parecía sugerir el uso de algoritmos genéticos para hacer esta optimización, ya que puedo crear una población de soluciones candidatas tan rápido como puedo hacer una.
Aquí están mis preguntas: 1) ¿Alguien tiene experiencias con implementaciones disponibles gratuitamente de este tipo de solucionadores / recomendaciones globales? 2) ¿Hay razones para preferir o evitar algoritmos genéticos aquí?
Este es un problema físico, y mis primeros experimentos han demostrado que la figura del mérito cambia con bastante suavidad a medida que cambio los parámetros.
ACTUALIZAR:
¡Gracias por la ayuda! Algunos detalles más: no necesito ninguna información más allá de la ubicación del máximo. La simulación es determinista, no Monte Carlo, por lo que la complicación no es gran cosa. No hay límites ni restricciones explícitos en los parámetros. Otra información que tengo (y no mencioné antes) es una idea del tamaño del máximo requerido. Si bien estoy buscando un máximo global, también estaría contento con cualquier cosa de esta escala o mayor, no sé si esto me ayudaría. Espero que si hago la detección de manera más sistemática (hipercubos latinos como lo sugiere Brian Borchers), esto aparecerá.