GA1DArrayAlleleGenome & GASharing
Markku Laukkanen
markku at hybrid.fi
Fri Feb 15 01:15:43 EST 2002
On Thu, 14 Feb 2002, G.Spagnuolo wrote:
> 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?
Hmm, with gcc 3.03 & linux & ga 2.45 doesn't coredump. Have you compiled
or is the library compiled with the same version of VC ?
PKY
>
> 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