Ciao!
Ok entro nei dettagli. Devo realizzare un codice ibrido usando l'algoritmo genetico e il Tabu Search per trovare il massimo della funzione t=-x^2-y^2+5. Il codice, in una prima parte, consiste nel generare una popolazione random fatta di individui chiamati cromosomi, ordinarli in base alla fitness (ovvero il valore della funzione calcolata nel punto) e applicarvi le operazioni di crossover e mutation in modo da generare ad ogni passo una nuova popolazione che si avvicini sempre più al massimo ottimale (questo è il GA= Genetic Algorithm). La seconda parte del codice consiste invece nell'implementare il Tabu Search cioè quella parte di programma che evita di far convergere la ricerca in un massimo locale e fa in modo di espanderla considerando pure altri punti del piano. Esso non deve far altro che conservare (in una Tabu list appunto) tutti i migliori valori trovati ad ogni iterazione e mantenerli memorizzati fino alla scadenza di un certo tempo chiamato TENURE. Un punto viene dichiarato tabu (cioè viene inserito nella tabu list) se è sostanzialmente distante da tutti i punti già presenti nella tabu list (nel programma ho imposto che la distanza minima tra i candidati ad essere tabu e i punti già presenti nella tabu list deve essere almeno S. Se le distanze sono minori di S i punti candidati non vengono inseriti nella tabu list perchè considerati troppo vicini ai punti già visitati.
Non so se ho reso l'idea ma questa che ho presentato è una panoramica generale di quello che ho implementato. Purtroppo non posso scriverti qui il codice perchè lo visualizza senza andare a capo avendo cosi una pessima visualizzazione dello stesso. Posso inviarti una mail con il codice sorgente scritto in DEV C++.

Il mio indirizzo e-mail è mbistato@hotmail.it


Il problema è che il programma si imballa quando tento di eseguirlo e non so da dove realmente deriva la causa. Mi potresti dare qualche dritta?