PDA

View Full Version : restarting calculations?



Joey2034
10-05-2004, 04:11 PM
My clients are restarting their calculations from scrath every now and then. Is this expected behavior? If so, what's the reasoning behind it? I expect it's probably a mechanism to avoid local maxima, but I'm finding it very annoying to get a decent click on the evolution, and then have to start over. Also, to me it seems that the fitness evaluation encourages modularization, because you have to go through perfect functionality and perfect off-line testing before you can get to perfect on-line testing. Is this the case? Or, what is the reasoning for making the fitness calculations behave like a dictionary? Why not just have the on-line testing be the only fitness function that contributes to 'reproduction', since that's the end goal?

DISCLAIMER: Not an expert by any means. Just looking to get educated.

Thanks

michaelgarvie
10-09-2004, 06:01 AM
Hi Joey, thanks for your message. All great questions!:thumbs:
I'll do my best to justify what's going on. And if I can't, well maybe we can improve something!


My clients are restarting their calculations from scrath every now and then. Is this expected behavior?
I have noticed this happening recently and aren't too happy about it either. It has to do with:
1) The migration rate has been decreased.
2) Several clients are hosting islands in the alternate project/world.
3) Populations are saved per location, not per client.

(3) means that the population you load when reconnecting may be someone else's and could be worse (or better) than the one you had before disconnect.

The reason for (1) is that this benchmark is larger than anything attempted before. We are on new ground here and learning how to deal with it. My main priority is to avoid convergence of the whole grid. Since evolution is so much slower with this benchmark migration at the same rate as before would lead to faster convergence since nothing is escaping. To avoid convergence I lowered migration. This combined with there being less islands (2) means that fit individuals aren't spreading that fast across the grid and if you've loaded an unfit population you keep working on it for quite a while. However from experience I can comfortably say this is preferable to having the whole cluster converged.

What has been done about this: I have made the maximum distance for migration 10 (manhattan distance) when migration does happen it can jump across the gaps in the topology. This should mean fit individuals do actually spread a bit more.


Or, what is the reasoning for making the fitness calculations behave like a dictionary?
I've been writing a chapter of my thesis on this recently. The way I see it is the following: If your circuit doesn't even perform the output function properly then the question of wether or not it is self-testing is kind of ill-defined. So basically you can only start asking this question once it performs the output function. So what you want to do is put selection pressure for evolution to move into areas of the fitness landscape in which the output function is performed properly. And within this subset of the fitness landscape it makes sense to enforce selection pressure on the self-testing. So in a way the dictionary sort is like a map telling evolution where to go next. As to why off-line and on-line are separated is to help direct evolution as much as possible. Experimentally it helps. I think it does because it makes sure the circuits have a good overall (off-line) self-testing performance before focusing more in-depth. I think when using only the on-line fitness score it would be more likely to super-optimise one half of the circuit testing but then ignore the other half and get stuck. And the size of the circuit has lowest priority because, again, making the circuit smaller is only defined in the context of having a functional self-testing circuit at all. So you only want to enforce this pressure within the subset of the search space of functional self-testing circuits. So its like telling evolution, OK first do the task, then get off-line fitness, then on-line and once you've done all that try and make the circuit smaller.

Miguel

adream
10-09-2004, 08:02 AM
hi people

just a thought here from my experiences yesterday..

i had a fan failure (intermitent) yesterday on one of my p4ht machines...

the machine was working on two dhep clents at the time

the failure symptoms of overheating was a repeated cycle of the dhep clients failing and restarting many time before i managed to isolate and solve the problem..

i know that this has little to do with the behaviour described in this thread, but it is also a reason for the clients to restart frequently (every five minutes or so)

i apologise to miguel as i imagine the one machine has messed things up by creating many islands with little work done on each, oops !

regards

adream




:elephant: :elephant: :elephant: :elephant:

michaelgarvie
10-09-2004, 09:38 AM
Well we can call those gaps you left in the topology map the adream ocean.

Water cooling is obviously the way to go. Don't know anyone who's had the balls to do it though!

:cheers: Miguel

adream
10-09-2004, 11:01 AM
he heh, lol

yup water cooling seems the way to go...

i thought my all singing and dancing copper heatpipe heatsink thing was pretty cool (he heh) but its just not up to the job... well at least the fan they supply with the thing is shagged

now when i get my dual 2.5 liquid cooled G5 then i'll be laughing... (dream on!)


adream

:elephant: :elephant: :elephant: :elephant:

Joey2034
10-09-2004, 11:32 AM
Miguel,

I'm not entirely sure how my population of 31 individuals is chosen. Are only individuals who have a 'better' fitness than everyone in the population allowed in, or is there some probability that a bad individual could sneak its way in?

This is why I made a comment about modularization. I don't know if it's true, but it seems to me that if you have an individual with function fitness of 1.0, the off-line testing can only improve without going below that 1.0 function fitness, so it can't really alter the functional circuit very much. That's probably not the case, but I'd like to hear what the case really is.

You said that you think if you didn't separate off-line and on-line fitness, the circuit would be half super-optimized and half moot and would get stuck. Have you done experiments to verify this? If so, is there anything out there on the internet I can read about it?

If BIST doesn't even make sense until function is done, then my understanding of how the simulation works needs improvement. The simulation isn't just like simulating a logic table, then? Is there an analog component to it?

I read an article in Popular Science a year or two ago about some people somewhere who were evolving analog hardware. Pretty neat stuff.

Thanks

michaelgarvie
10-11-2004, 01:11 PM
Once again i'm impressed by your questions!:thumbs:


Are only individuals who have a 'better' fitness than everyone in the population allowed in, or is there some probability that a bad individual could sneak its way in?

An immigrant will replace the worst individual of your population. The latter is usually pretty rubbish anyway. An immigrant is very likely to take over a population when it is fitter than all individuals in that population. The old population will either breed with the immigrant or become extinct.


but it seems to me that if you have an individual with function fitness of 1.0, the off-line testing can only improve without going below that 1.0 function fitness,
This is not the case since you are ignoring neutral changes to the circuit structure. Eg. changing an inverter for an and gate with both inputs on the same wire. The circuit structure is different but the circuit behaviour (and fitness) is equal. A clear example of this is logic optimisation where you start with a huge functional circuit and you try and minimise it so it uses less gates but performs the same function. Hence what goes on is that the circuit changes and changes but keeps its 1.0 fitness. There is evidence of this happening:
1) I have computed a signature (a unique number) based no the structure of a circuit and verified that it does indeed keep changing continually and never repeats.
2) The final evolved self-checking circuits generally use more logic for performing the function that they did originally. They have incorporated some redundancy within them that helps with self-checking.


You said that you think if you didn't separate off-line and on-line fitness, the circuit would be half super-optimized and half moot and would get stuck. Have you done experiments to verify this? If so, is there anything out there on the internet I can read about it?
Yes I have but have not published them. It could well be that the difference is not significant and I'm pretty sure it does no harm. But separating task, self-checking and size is definitively crucial.


The simulation isn't just like simulating a logic table, then?
It is, and then it is simulated under each fault in turn. But still, if there is no output function, then there is nothing to check.


I read an article in Popular Science a year or two ago about some people somewhere who were evolving analog hardware. Pretty neat stuff.
That could have been about my supervisor's work. He started the field of evolutionary electronics.

Cheers:cheers:
Miguel