Author Topic: Temporal continuity  (Read 3432 times)

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Temporal continuity
« on: January 24, 2010, 12:09:27 AM »
Ok, so, is there any way for DB to not use "cycles"?  It seems much more natural...

Offline Shasta

  • Administrator
  • Bot Destroyer
  • *****
  • Posts: 231
    • View Profile
Temporal continuity
« Reply #1 on: January 24, 2010, 04:38:46 AM »
Quote from: jknilinux
Ok, so, is there any way for DB to not use "cycles"?  It seems much more natural...

In short no, every single game and most simulations work in essentially the same way as Darwinbots at the basic level. You update (run a cycle), draw the result, rinse, and repeat. There really isn't any other way for a computer to do this.

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Temporal continuity
« Reply #2 on: January 24, 2010, 01:37:46 PM »
Well you could run one command per cycle, but it would make it harder to write bots manualy. (It would allow jumps though, since an infinite loop wouldn't be a problem.)
And even though it may be a litle harder to write bot code, it would also make it a litle more interesting.
Downside would be slower sims though (In the sense that you want to evolve bot code but are spending most your time on physics and vision), unless you only update physics and vision every X cycles, and that just makes it even more confusing to write a bot (And harder to read evo bots).

So overall it's sometimes best to keep it simple, stick with something you know works and doesn't cause too much trouble.

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
Temporal continuity
« Reply #3 on: January 24, 2010, 02:22:21 PM »
Quote from: jknilinux
Ok, so, is there any way for DB to not use "cycles"?  It seems much more natural...

You could run it on a parrallel computer assuming that they exist and you could program db on it. I think supercomputers use something like this. The idea is you have tons of mini procesors and memory units which distribute the memory and processes over the entire network. So you could have every bots memory and dna spread out over dozens of these mini units and it would be less cycle like, more like a flowing, smooth analog simulation. Imagine Conway's game of life running on this. Each cell would be represented by one of these proccessors and would automaticly be alive if it was next to 2 or 3 other cells, dead if it was next to fewer than 2 etc. But unless you have access to a super computer theres not much you can do though.

Quote
Well you could run one command per cycle, but it would make it harder to write bots manualy. (It would allow jumps though, since an infinite loop wouldn't be a problem.)
And even though it may be a litle harder to write bot code, it would also make it a litle more interesting.
Downside would be slower sims though (In the sense that you want to evolve bot code but are spending most your time on physics and vision), unless you only update physics and vision every X cycles, and that just makes it even more confusing to write a bot (And harder to read evo bots).
Why just one command per cycle. You can run say 500 every cycle. Any bot with 500 or less commands would still work and infinite loops be allowed but at the cost to the bot and not the rest of the simulator.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Temporal continuity
« Reply #4 on: January 24, 2010, 03:07:47 PM »
Quote from: jknilinux
Ok, so, is there any way for DB to not use "cycles"?  It seems much more natural...

For physics, you could almost do this.  The fact that floating point numbers don't have infinite precision means that at a very low level it would essentially be cycle based, though.  But the cycle length would be sort of like Planck time in real life, and the computer could skip over arbitrary lengths of time instead of plodding from one cycle to the next.

But DNA, as Moonfisher pointed out, is inherently discrete.  You can't really execute DNA in anything but a cycle pattern.

Quote from: Moonfisher
Well you could run one command per cycle, but it would make it harder to write bots manualy. (It would allow jumps though, since an infinite loop wouldn't be a problem.)
And even though it may be a litle harder to write bot code, it would also make it a litle more interesting.
Downside would be slower sims though (In the sense that you want to evolve bot code but are spending most your time on physics and vision), unless you only update physics and vision every X cycles, and that just makes it even more confusing to write a bot (And harder to read evo bots).

So overall it's sometimes best to keep it simple, stick with something you know works and doesn't cause too much trouble.

Quote from: Houshalter
Why just one command per cycle. You can run say 500 every cycle. Any bot with 500 or less commands would still work and infinite loops be allowed but at the cost to the bot and not the rest of the simulator.


Lots of other ALife programs do the X commands per cycle approach, but I've never been a fan because it usually results in short genome bots that can reproduce out competing more complex life forms just because they can reproduce faster.

And in real life, the genome is basically a massive super computer.  Each protein, RNA strand, base pair, etc. is a processing element in the cell.  The larger the genome the more processing power a cell has.  So I rather like the way Darwinbots lets us execute arbitrary length genomes without penalty.


Quote from: Houshalter
Quote from: jknilinux
Ok, so, is there any way for DB to not use "cycles"?  It seems much more natural...

You could run it on a parrallel computer assuming that they exist and you could program db on it. I think supercomputers use something like this. The idea is you have tons of mini procesors and memory units which distribute the memory and processes over the entire network. So you could have every bots memory and dna spread out over dozens of these mini units and it would be less cycle like, more like a flowing, smooth analog simulation. Imagine Conway's game of life running on this. Each cell would be represented by one of these proccessors and would automaticly be alive if it was next to 2 or 3 other cells, dead if it was next to fewer than 2 etc. But unless you have access to a super computer theres not much you can do though.

If you have a recent generation video card on your machine you're sitting on a 1 Teraflop super computer with thousands of individual programmable CPUs.  CUDA/Open CL lets applications write code that can run on this super computer like it's a normal processor.

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
Temporal continuity
« Reply #5 on: January 24, 2010, 06:27:46 PM »
Found this interesting.