Author Topic: Another infinite energy? OPEN  (Read 3573 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Another infinite energy? OPEN
« on: September 22, 2007, 03:26:15 AM »
[attachment=650:attachment]
This is a sim where multiply has managed to get 10K bots going.  They all seem to have 2 body (reproduced as much as they could apparently), so I'm not 100% sure if this was just 1 or 2 cancerous individuals or what.  All I know is that the population spiked from about 20 to 10K in under 2000 cycles.

BTW, it would be nice if the cyc/sec counter switched to sec/cycle when appropriate.  0 cyc/sec doesn't tell me much, but 40 oe 50 sec/cycle tells me quite a bit.

I wasn't running the latest version.  This is version I.
« Last Edit: October 05, 2007, 12:29:09 PM by EricL »

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Another infinite energy? OPEN
« Reply #1 on: September 22, 2007, 05:53:00 AM »
Wow, my computer's having a hard time loading it, I ques this growth is becouse of a simple nothing doing bot, it doesn't move and doesn't shoot until neceserily. Uses almost no energy in that way and I gues it has to go down after time, I think.
I am not if all settings are coming along but I see there aren't any dynamic costs, So an idiotic multiply could maybe do something like it.

Quote
''''''''''''''''''''''''Gene  8: Last 'stop' at position  133''''''''''''''''''''''',

 cond
 *.robage 1 =
 .deltie inc
 store
 stop

''''''''''''''''''''''''Gene  9: Last 'stop' at position  141''''''''''''''''''''''',

I saw this in gene 9 propably hasn't do with it, but can there be a store before start.
Oh my god, who the hell cares.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Another infinite energy? OPEN
« Reply #2 on: September 22, 2007, 11:21:07 AM »
Quote from: Numsgil
This is a sim where multiply has managed to get 10K bots going.  They all seem to have 2 body (reproduced as much as they could apparently), so I'm not 100% sure if this was just 1 or 2 cancerous individuals or what.  All I know is that the population spiked from about 20 to 10K in under 2000 cycles.
I don't see anything obvious.  If you turn off the sun, the sim nrg delta declines as it should as does the total nrg for the multiply species.  The costs are all morpholigical with no age cost so bots that don't create ties or move have totally flat nrg usage profiles.  I think it's cancer.   My guess is a mutation resulted in runaway reproduction in a high nrg individual which resulted in a huge population of dead-end organisms which simply havn't become prey yet do the slow sim speed, small number of preditors and perhaps random sim-limit population control taking out Preditors.

I'll let it run a while longer and keep an eye on it, but the population is already falling and the sim nrg loss is consistant.  Pretty sure its not a leak.

It's not clear to me what we should do about cancerous reproduction if anything.  I've toyed with the idea of a reproduction cost or a minimum recovery time from reproduction but I hate artifical, externally imposed, species independent restrictions like that.  Just becuase we like elephants shouldn't mean we should prevent locusts from evolving.  I could expose options and choices for non-cost based population control - a total sim limit above which bots could be killed according to various user specified criteria I.e. lowest nrg first, smallest first, largest first, youngest first, those that havn't reproduced first, etc.   Or we could change reproduction itself in some way as has been disucssed - make reproducing sooner cost more or require a higher body limit or a higher offspring nrg percentage...  I'm not really a fan of any these for the same reasons as above.  Ideas appreciated.    


Quote from: Numsgil
BTW, it would be nice if the cyc/sec counter switched to sec/cycle when appropriate.  0 cyc/sec doesn't tell me much, but 40 oe 50 sec/cycle tells me quite a bit.

An excellent idea.  I'll put it on the list.
Many beers....

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Another infinite energy? OPEN
« Reply #3 on: September 22, 2007, 12:05:19 PM »
Ah damn.  I take that back.  There's a leak somewhere.  The nrg delta goes positive occasionally.  I suspect an order of operation issue with tie feeding but finding this is going to be a total bitch.  Damn.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Another infinite energy? OPEN
« Reply #4 on: September 23, 2007, 12:06:51 AM »
Your welcome

Some way to control bot population levels would be nice.  I'm not a fan of them for their own sake, but it's not fair for my bots to have to close and restart a sim because they get too successful.

Also, I've never seen the program get above 10K bots.  Is there a hard limit on the bot array?

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Another infinite energy? OPEN
« Reply #5 on: September 23, 2007, 02:28:30 AM »
Yea, the rob array is capped at 10k.  Used to be 5k.  I increased in a while back, before I did some perf work.  Now it stays compacted and the loops only iterate through the occupied portion.  Would be easy to grow and shrink it dynamically and lose the cap completely or at least make it 32000.  I suspect we will have lots of integer related problems pushing it further than that even if someone had the horsepower to run it.  Things like ties refernecing bots and the like....
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Another infinite energy? OPEN
« Reply #6 on: September 23, 2007, 02:39:38 AM »
My thoughts on limiting reproduction:

We can impose some extra-time being required between reproduction events. It would be a bit artificial, but you can make it proportional to the length of DNA, so that it would be "time to copy DNA".

We can also impose some minimal nrg level for a bot to be alive. Say if nrg falls below 10, then the bot dies. Again, this is an imposed rule and we don't like that, but here some logical approach: We used to have a rule (not sure if still do) that if a bot looses more than 25% (or something like that) of its energy in a single cycle, then it dies of "shock". Well, make reproduction cost something, some small amount, say 3 nrg and charge it to both parent and off-spring. Then if a very small bot repros, it looses >25% of its energy and dies.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Another infinite energy? OPEN
« Reply #7 on: September 23, 2007, 02:55:15 AM »
I like the time to copy DNA idea.  It places a cost on DNA length that is morphologically derrived.  I had considerred a count down timer for reproduction based on bot size or one that requires more nrg to reproduce before the timer expires, but not on DNA length.

There is a minimal nrg level for a bot to be alive.  It's 0.  Having your nrg go to zero is the definition of death in most of the code.  That are places however where the rule is violated.  Nrg sharing via ties for example.  If a bot with a low number in the rob array sucks another down to 0, I have to keep the bot alive until he gets a turn to suck back.   Things like that.  That is where the energy leaks lurk I.e. a bot tryign to suck another guy's nrg below zero, gaining more than was there in the first place then the code setting the suckee's nrg at zero.  That kind of thing.  Hard to find.  Order of operation stuff bites.

Shock still exists.  The way the code reads, if a bot has nrg > 3000 and looses 50% or more in a single cycle, then all that bot's nrg is turned into body.   The shock code comes after the code that handles body feeding, so this essentially kills the bot, even if it has a body feeding gene.  Reproduction is a special case where shock doesn't apply.

Reproduction does cost something today actually.  It costs 0.1% of the nrg given to the offspring.  The parent and the offspring each pay the percentage.

The thing that keeps small bots from reproducing today is the body limit.  You have to have body > 2 to reproduce.
« Last Edit: September 23, 2007, 02:57:14 AM by EricL »
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Another infinite energy? OPEN
« Reply #8 on: September 23, 2007, 06:16:17 AM »
You want to be careful penalizing DNA length.  Most other sims that let bots run only X commands in a cycle or whatever suffer from problems.  The push to shrink the DNA overpowers any push to make the DNA more sophisticated.

Our own DNA is billions of base pairs, and easily the majority of it doesn't really do anything.  And copying DNA is usually done in massive parallel.  I like the idea of complex and simple DNA being on the same footing.

I do think that reproduction delay is a good way to go, but maybe it should be a ramping nrg cost.  Like the shorter your generation time, the less time the repro mechanisms have had to recover, and the more cost you have to pay.  Wait a hundred cycles and reproing is almost free.  Try to do it every cycle and you have to pay X for every body you have, or something like that.  Some sort of atan relationship.