[galib] custom scaling scheme
Michele Conconi
michele.conconi at unibo.it
Mon Apr 27 05:49:02 EDT 2009
Hi everybody.
I'm trying to define a distance function to pass to the GAShering
scaling method. My code is
float
MyDistance(const GAGenome & c1, const GAGenome & c2, const GAPopulation
& pi){
GARealGenome & a = (GARealGenome &)c1;
GARealGenome & b = (GARealGenome &)c2;
float den=pi.best().score()-pi.worst().score();
float dist=0;
if(den!= 0)
{
dist=fabs(a.score()-b.score())/den;
}
else
{
...
}
return dist;
}
This not works, returning the error message
error C2664: 'GASharing::GASharing(GAGenome::Comparator,float,float)' :
cannot convert parameter 1 from 'float (__cdecl *)(const GAGenome
&,const GAGenome &,const GAPopulation &)' to 'GAGenome::Comparator'
Clearly i can not pass GAPopulation as a third argument to the
comparator. So, how could pass information about best and worst score in
the population to my distance function?
Basically I'm trying to do this because, evaluating my objective
function for different genome, I obtain very large values which differ
not much compared with their magnitude, so that the fitness scores of
different genomes are close each other. Could this method represent a
solution?
Thanks in advance
Michele
--
* Eng. Michele Conconi*
Ph.D. student
DIEM - Dept. of Mechanical Engineering
Alma Mater Studiorum - University of Bologna
Viale Risorgimento 2, 40136, Bologna, Italy
Email: michele.conconi at unibo.it
Website: http://www.diem.ing.unibo.it/grab
Office: (+39) 051 20 93451
Mobile: (+39) 329 0287996
* INFORMAZIONE RISERVATA E CONFIDENZIALE *
Questo messaggio contiene informazioni riservate e confidenziali.
Se il lettore non fosse il destinatario del messaggio, inoltrato e
ricevuto per errore,
il testo dovrà essere immediatamente cancellato dal computer del ricevente.
E' assolutamente proibita qualunque circolazione, disseminazione o
copia del messaggio spedito e/o ricevuto per errore.
* CONFIDENTIALITY and WARNING NOTICE *
This message may contain legally privileged or confidential information.
If the reader is not the intended recipient, you received this message
in error
and it should therefore be deleted from your computer at once.
Any dissemination, distribution and copying of a message
mistakenly sent or received is strictly forbidden.
More information about the galib
mailing list