Hi All,

I use a simple evolutionary simulation in which agents can navigate an environment to gather food while avoiding predation. The agents are controlled by artificial neural networks with weights between -10 and 10. Successful agents reproduce and pass their weight configuration on to their offspring (the weights do not change during an agent's 'lifetime', hence there is no learning involved). When a weight is copied to an offspring it mutates slightly according to the following formula.

where r is a random real between <0, 1>. If r = 0.5 the mutation is 0. If r is smaller than 0 the mutation is negative and if r is larger the mutation is positive. On average the mutation is then of course 0. However, someone asked me what the average weight change is, i.e. the average on the absolute outcome of the function. Since the part left and right of r = 0.5 are equal the answer is equal to the average outcome between r=0.5 and r=1. To get at that I can use:

For the average I take the above function and divide it by half, because I only calculate the average between r=0.5 and r=1.

And here I try to fill in r=1, but since r = 1 does not exist I have to calculate the limit of the function approaching 1. And this is beyond my mathematical skills (and I apoligize apriori if my formating or formulations confuse you. I tried my best to copy the style of the forum but I'm new here and don't know if I succeeded).

Intuitively I had the idea that the surface below the graph is not infinite. The graph goes to infinite but does this on an infinitely small part. Besides I actually use the first function to calculate the weights' mutation and they are mostly small (choosing random value I seem to get an average mutation around 0.139).

I would be grateful for any comments and will be pleased to clear any confusions in my story.

Bram