Bulk fitness functions (again)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Bulk fitness functions (again)

Christoph Langguth-3
Hi,

I'm currently taking a look at JGAP to replace my "home-grown" GA mini-setup for a project I'm
working on. So far, I like it a lot :-)

However, while investigating the bulk fitness functions, I ran into a problem - namely that
essentially nothing evolves at all. Taking a closer look at the sources and browsing the latest
archive, I ended up at this post:

http://sourceforge.net/mailarchive/forum.php?thread_name=4ABD5ED8.8090202%40lizanddavid.com&forum_name=jgap-users

I couldn't see or download the attachments from the post, but I think that my approach and
conclusion are pretty much the same as the original author's:

Why is the bulk fitness function applied *after* the selection?
In other words: determining the current fitness should be a prerequisite for the selection -- what
good is it to know the theoretical fitness of an individual after it has been thrown out of the
population, based on old facts? ;-)

I simply took the stock GABreeder, put it into my own class and, inside the evolve() method, changed
the order to be bulkFunction.evaluate(); updateChromosomes(); applyNaturalSelectors(); (that's
around lines 115-130 of GABreeder.java).

Then things looked correct to me, whereas, as said above, with the original GABreeder, no evolution
at all took place.

Could someone please comment on whether this is indeed a bug, or whether just a couple of people are
misunderstanding the purpose of the BulkFitnessFunction?

Even browsing through the Javadoc and looking at things like BulkFitnessOffsetRemover, it seems like
these classes are intended to be applied before the selection, aren't they?

Thanks & cheers
Chris

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
jgap-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jgap-users

smime.p7s (9K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Bulk fitness functions (again)

Klaus Meffert-5
Christoph,

your thoughts sound logical. To be honest, I don't know how the position of
the call to the bulk fitness function evolved.
I changed the call sequence as you suggested. After some tests I will check
in the changes to CVS.
A new release of JGAP should appear within the next few weeks.

Best

Klaus
www.klaus-meffert.com

 

> -----Original Message-----
> From: Christoph Langguth [mailto:[hidden email]]
> Sent: Wednesday, October 07, 2009 8:28 PM
> To: [hidden email]
> Subject: [jgap-users] Bulk fitness functions (again)
>
> Hi,
>
> I'm currently taking a look at JGAP to replace my
> "home-grown" GA mini-setup for a project I'm working on. So
> far, I like it a lot :-)
>
> However, while investigating the bulk fitness functions, I
> ran into a problem - namely that essentially nothing evolves
> at all. Taking a closer look at the sources and browsing the
> latest archive, I ended up at this post:
>
> http://sourceforge.net/mailarchive/forum.php?thread_name=4ABD5
> ED8.8090202%40lizanddavid.com&forum_name=jgap-users
>
> I couldn't see or download the attachments from the post, but
> I think that my approach and conclusion are pretty much the
> same as the original author's:
>
> Why is the bulk fitness function applied *after* the selection?
> In other words: determining the current fitness should be a
> prerequisite for the selection -- what good is it to know the
> theoretical fitness of an individual after it has been thrown
> out of the population, based on old facts? ;-)
>
> I simply took the stock GABreeder, put it into my own class
> and, inside the evolve() method, changed the order to be
> bulkFunction.evaluate(); updateChromosomes();
> applyNaturalSelectors(); (that's around lines 115-130 of
> GABreeder.java).
>
> Then things looked correct to me, whereas, as said above,
> with the original GABreeder, no evolution at all took place.
>
> Could someone please comment on whether this is indeed a bug,
> or whether just a couple of people are misunderstanding the
> purpose of the BulkFitnessFunction?
>
> Even browsing through the Javadoc and looking at things like
> BulkFitnessOffsetRemover, it seems like these classes are
> intended to be applied before the selection, aren't they?
>
> Thanks & cheers
> Chris
>


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
jgap-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jgap-users