evolution statistical data

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

evolution statistical data

Jakub Siberski
Hey all.

I am writing school project about GA, where I would like to use JGAP. My assignment is to write application that shows what is happening inside GA when it is running.
I need to gather some detailed data about how population is evolving. Some of those information would be:
 - how population looked before mutation, and how after?
 - which individuals were used in crossing and what individuals was created in this process?
 - which individuals passed selection and which not?

My application has educational character, as it should show how given individual in given generation looked before mutation, how it looked after mutation and how its fitness changed in this process? Which pairs of individuals were chosen to crossover, and what offspring each pair produced?

Given that I wonder if there is some mechanism in JGAP to gather this kind of data? Some class that monitors whole population or each individual I could use? Or do I have to implement this kind of mechanism on my own?






------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
jgap-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jgap-users
Reply | Threaded
Open this post in threaded view
|

Re: evolution statistical data

Klaus Meffert-5
Jakub,
 
there are monitoring classes (see package org.jgap.audit and examples.audit.CoinsExample), but they do not help in monitoring mutation and crossing over.
However, to get the current and the next population, just use the evolve method incrementally, and after each call, inspect the population (see examples.MinimizingMakeChange for an interated call to evolve(), for instance).
 
To inspect mutation, e.g., copy the MutationOperator class and modify it so that a log is written according to your needs. Alternatively, you could modify class GABreeder, methode evolve (write your log before and after applyGeneticOperators(...) is called).
 
In case you need help please come back, maybe with a partially functionally source code.
 
Best

Klaus
www.klaus-meffert.com

PS: I find it useful to monitor mutation effects, so there will be an audit feature for this in the future.

 


From: Jakub Siberski [mailto:[hidden email]]
Sent: Thursday, December 31, 2009 3:01 PM
To: [hidden email]
Subject: [jgap-users] evolution statistical data

Hey all.

I am writing school project about GA, where I would like to use JGAP. My assignment is to write application that shows what is happening inside GA when it is running.
I need to gather some detailed data about how population is evolving. Some of those information would be:
 - how population looked before mutation, and how after?
 - which individuals were used in crossing and what individuals was created in this process?
 - which individuals passed selection and which not?

My application has educational character, as it should show how given individual in given generation looked before mutation, how it looked after mutation and how its fitness changed in this process? Which pairs of individuals were chosen to crossover, and what offspring each pair produced?

Given that I wonder if there is some mechanism in JGAP to gather this kind of data? Some class that monitors whole population or each individual I could use? Or do I have to implement this kind of mechanism on my own?






------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
jgap-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jgap-users
Reply | Threaded
Open this post in threaded view
|

Re: evolution statistical data

Jakub Siberski

From: Jakub Siberski <[hidden email]>
Date: Mon, Jan 4, 2010 at 11:10 PM
Subject: Re: [jgap-users] evolution statistical data
To: Klaus Meffert <[hidden email]>


That's what I was afraid. I was hoping for some api that would allow me track detailed information about individuals. But it looks I will need to add few lines here and there ;)

What approach would you suggest for following in this situation:

1) tracking fitness (min, max, average..) - evolving population one generation at the time and
  • for fitnessMax - saving genotype.getFittestChromosome().getFitnessValue();
  • for FitnessMin - finding it manually
  • for average - calling Evaluator.avgFitnessValue
2) tracking each individual data - adding unique id to each Chromosome and
  • for mutation - overload used mutation operator and add code for logging which individual was mutated
  • for cross over - overload used crossover operator and add code for monitoring which individuals were mating and what offspring was the result
  • for selection - by comparing N and N+1 generation I will now which individuals were selected to next population
On the other hand as you suggested I've looked into GABreeder and BreederBase, they perform most of operations I want to track. It seems that adding here code for tracking changes in Individuals is better idea.

Wheere would you put your hooks?



------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
jgap-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jgap-users