Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - Algoritmi Genetici
Forum - Delphi - Algoritmi Genetici

Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 21:03
Lunedì, 26/09/2011
salve a tutti,

ho bisogno di minimizzare l'errore fra un numero reale e uno simulato da una funzione con 5 variabili.

molti mi hanno suggerito di usare gli algoritmi genetici, ed ho anche capito in linea di massima il loro funzionamento, che cercano la combinazione migliore fra queste 5 variabili sfruttando meno risorse.

Ma, dove posso trovare esempi di questi algoritmi (in delphi e se possibile in italiano) dato che molti ne parlano ma tanti fanno riferimento solo all'utilizzo di Matlab?

algoritmo tipo dovrebbe essere il seguente

Codice sorgente - presumibilmente Delphi

  1. while finito<>true
  2.  
  3.   genera una combinazione di 5 variabili a, b, c, d, e
  4.  
  5.   calcola il valore di F=f(a,b,c,d,e)
  6.   calcola l'errore rispetto al valore reale Fo



systemgvp.altervista.org
PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1791
Iscritto: 26/06/2009

Up
3
Down
V
Segnala al moderatore
Postato alle 23:19
Lunedì, 26/09/2011
Esaurire in un post l'argomento è impossibile (io ho 3 libri che a malapena danno un'infarinatura generale).

Il tuo problema rientra nella mega-classe dei problemi di "ottimizzazione". Se la tua funzione F è una combinazione lineare dei parametri, allora parliamo di "ottimizzazione lineare" e solitamente esistono metodi deterministici per trovare l'ottimo (cioè i valori massimi, minimi, zeri o quello che serve a te cioè il minimo di una differenza tra una costante ed F).

Se F non è lineare, allora si chiama "ottimizzazione di problemi non lineari" e sono volatili poco zuccherati.

In questo caso puoi soltanto affidarti ad algoritmi evolutivi, simulated annealing, tabu search o altri simili...

La cosa tragica è che non esiste una soluzione valida sempre, ma devi sperimentare varie strategie per trovare quella che si adatta meglio alla particolare funzione da ottimizzare.

Adesso che sai come si chiamano, ti verrà più facile trovare codici di esempio specifici. Tuttavia ti conviene spendere un mesetto a studiarti la teoria...

io ricado nelle equazioni non lineari e mi sa, che siccome ho poco tempo a disposizione, mi tocca crearmi qualcosa da me. Ne frattempo proverò a cercare qualcosa in basa alla tua veloce risposta. - systemgvp - 27/09/11 16:33


Software Failure: Guru Meditation
PM