ECJ-INTEREST-L Archives

April 2013

ECJ-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Mime-Version:
1.0
Sender:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Subject:
From:
Courtney Falk <[log in to unmask]>
Date:
Mon, 15 Apr 2013 13:21:48 -0400
Content-Type:
multipart/mixed; boundary="part-lL-8ld2-VJl3Alg8Ca0N82IfC3L4DAe9WMRXXdY3S1hqZ"
Content-Transfer-Encoding:
7bit
Reply-To:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Parts/Attachments:
I'm working on a regression problem.  The goal is to have GP evolve a
comparator function for ordering lists.

But the problem is that I changed the way I score the fitness.  Originally I
would give a score of 0.0 if the correct result was first in the list.  Now
I changed so that the score is the natural log of how far from the first
position that the correct result is in the hopes that a more continuous
fitness score would improve evolution.

The head-scratching problem I have is that with the new fitness score I
always get a evolution that halts after one generation:

Initializing Generation 0
Subpop 0 best fitness of generation: Fitness: Standardized=0.0 Adjusted=1.0
Hits=0
Found Ideal Individual
Subpop 0 best fitness of run: Fitness: Standardized=0.0 Adjusted=1.0 Hits=0

I always had multiple generations previously.  And I've debugged the code to
make sure that setStandardizedScore is being passed a value greater than
zero.  So why does it say that the standardized score is 0 when I know I'm
passing it non-zero values?

I've attached the entire class for reference.  But the gist is that:

sum += 1.0f;

changed to :

sum += (float) Math.log(position + 1);


Courtney Falk


ATOM RSS1 RSS2