Ciao a tutti, sono nuovo qui e mi pare che non ci sia una discussione simile. Spero di scrivere nella sezione giusta.
Ho un problema di ottimizzazione da risolvere con un programma scritto in C++. Mi spiego:
ho una serie di parametri, diciamo 10, che possono assumere centinaia di valori differenti, diciamo che possono assumere valori da 1 a 500 (per essere più precisi da 0.1 a 500 con step da 0.1, comunque il concetto è lo stesso). Questi parametri vengono utilizzati per costruire una curva (le ordinate della curva sono comprese tra 0.0 ed 1.0). Lo scopo è trovare la curva minima tra quelle possibili generate, cioè quella il cui integrale ha il valore più basso.
Ora, è da escludere un procedimento di tipo brute force in quanto richiede un tempo di calcolo troppo grande. Mi è stato consigliato di usare un algoritmo di ottimizzazione, qualcosa del tipo algoritmo genetico.
Non sono un grande esperto di C++ o di programmazione in generale, c'è un modo abbastanza semplice per implementare questo tipo di codice in base al problema esposto?
Spero di essermi spiegato.
Qualsiasi indizio è ben accetto; ora come ora non so da che parte iniziare.
Grazie in anticipo!
p.s.
Mi pareva di aver dimenticato un pezzo della spiegazione: le variabili vengono generate random, l'unico vincolo è che la somma di tutte le variabili dia un risultato minore di 500.
Ho nominato il C++ più che altro perchè mi hanno detto che forse ci sono delle librerie che permettono di implementare gli algoritmi genetici.
p.p.s.
Forse mi sono risposto da solo. Sul "Numerical Recipes" c'è quello che mi serve (vedi "Downhill simplex method" o simili).