Print

Print


This question makes a number of mistaken assumptions of some concern.

1. Breeding does not produce "new" individuals.  It selects and breeds individuals from parts of the older ones. 

2. ECJ's EC algorithms are stochastic.  They make a number of decisions involving random choices.  Those choices are picked from a random number generator.  The "seed" determines the initial state of the random number generator.

3. Random number generators change their state every time they provide you with a new random number.

4. ECJ normally produces identical results from identical seeds.  There are a few exceptions however:
	A. If you have multiple threads, and specify a custom chunk-size in evaluation, and your evaluation procedure involves random numbers.
	B. If you use island models or certain kinds of distributed evaluation.
	C. If your evaluation procedure involves soliciting input from the user.

	I'm guessing these don't apply to you.

Sean

On Mar 27, 2014, at 2:52 AM, SUBSCRIBE ECJ-INTEREST-L Anonymous <[log in to unmask]> wrote:

> Hi,
> 
> I'm trying to understanding how seeds are used in ecj.
> 
> My first question extends from the previous post's example. Let's say we specify 
> only one seed 8000, there is only one thread and we run it for 10 generations. 
> What can we expect the breeder to breed? Would it breed the same chromosome 
> set across all 10 generations?
> 
> I have read that when the same seeds are used, we can replicate the result. This 
> helps in testing and debugging. My second question is in what condition would 
> two runs of the ecj, using the same seeds, produce different 
> chromosomes/results?
> 
> Thanks