Sono interessato a massimizzare a livello globale una funzione di molti ( ) parametri reali (risultato di una simulazione complessa). Tuttavia, la funzione in questione è relativamente costosa da valutare e richiede circa 2 giorni per ciascun set di parametri. Sto confrontando diverse opzioni e mi chiedevo se qualcuno avesse dei suggerimenti.
So che esiste una serie di metodi per questo tipo di processo che prevede lo sviluppo di funzioni approssimative e quindi la massimizzazione di quelle (ad es. Jones et al. "Ottimizzazione globale efficiente delle costose funzioni della scatola nera" ). Tuttavia, questo sembra essere relativamente coinvolto nel codice.
Ho la possibilità di eseguire un gran numero di simulazioni in parallelo (50+). Questo sembrava suggerire di usare qualcosa come algoritmi genetici per fare questa ottimizzazione, dal momento che posso creare una popolazione di soluzioni candidate il più rapidamente possibile.
Ecco le mie domande: 1) Qualcuno ha esperienze con implementazioni liberamente disponibili di questo tipo di solutori / raccomandazioni globali? 2) Ci sono ragioni per preferire o evitare algoritmi genetici qui?
Questo è un problema fisico e i miei primi esperimenti hanno mostrato che la figura del merito cambia abbastanza facilmente mentre cambio i parametri.
AGGIORNARE:
Grazie per l'aiuto! Qualche dettaglio in più: non ho bisogno di informazioni oltre la posizione del massimo. La simulazione è deterministica, non Monte Carlo, quindi la complicazione non è un grosso problema. Non ci sono limiti o vincoli espliciti sui parametri. Un'altra informazione che ho (e che non ho menzionato prima) è il senso della dimensione del massimo richiesto. Mentre cerco un massimo globale, sarei anche felice con qualsiasi cosa di questa scala o più grande - non so se questo fornirebbe alcun aiuto. Spero che se faccio la proiezione in modo più sistematico (ipercubi latini come suggerito da Brian Borchers), questo verrà mostrato.