GA1DArrayAlleleGenome & GASharing
G.Spagnuolo
spanish at ieee.org
Thu Feb 14 13:03:17 EST 2002
Hi all!
I am working with galib under VC++6.0 and I need to use the genome class
GA1DArrayAlleleGenome (or GARealGenome with alleles) together with the
GASharing scaling function.
In the following I report a test example to clarify my problem.
I have the first gene whose value is in the set [1..10] and the second one
whose value is in the range [2..8], both integers.
The compiler gives no errors during compiling, linking and so on, but I
have a runtime error when the line
ga.scaling(scale);
is executed.
In particular, the error occurs when
sclscm = s.clone();
is executed.
Of course, I have the same error if I use the GARealGenome with alleles.
Any hint?
Thanks in advance.
G.Spagnuolo
#include <ga.h>
#include <GAAllele.C>
#include <GA1DArrayGenome.C>
GAAlleleSet<float>;
GAAlleleSetCore<float>;
GAArray<float>;
GA1DArrayGenome<float>;
GA1DArrayAlleleGenome<float>;
float objective (GAGenome & genome)
{
GA1DArrayAlleleGenome<float> & g = (GA1DArrayAlleleGenome<float>
&)genome;
return 0;
}
float Comparator(const GAGenome& g1, const GAGenome& g2)
{
return 0;
}
int main ()
{
GAAlleleSet<float> set1;
for (int i1=1;i1<=10;i1++)
set1.add((float)i1);
GAAlleleSet<float> set2;
for (int i2=2;i2<=8;i2++)
set2.add((float)i2);
GAAlleleSetArray<float> alleles;
alleles.add(set1);
alleles.add(set2);
GA1DArrayAlleleGenome<float> genome(alleles,objective);
GASteadyStateGA ga(genome);
ga.set(gaNpopulationSize, 5);
ga.set(gaNpCrossover, 0.5);
ga.set(gaNpMutation, 0.05);
ga.set(gaNnGenerations, 100);
ga.set(gaNpReplacement, 0.50);
ga.minimize();
ga.initialize();
GASharing scale(Comparator);
ga.scaling(scale);
ga.evolve();
return 0;
}
--
Dr. Giovanni Spagnuolo, Ph.D.
Assistant Professor
University of Salerno
Dipartimento di Ingegneria dell'Informazione ed Ingegneria Elettrica
D.I.I.I.E.
Via Ponte Don Melillo
84084 Fisciano - Salerno - Italy
phone: +39 089 964258
fax: +39 089 964218
e-mail: spanish at ieee.org
"You can tell whether a man is clever by his answers.
You can tell whether a man is wise by his questions."
Naguib Mahfouz
More information about the galib
mailing list