Author Topic: zerobot sim  (Read 4812 times)

Offline -venom-

  • Bot Neophyte
  • *
  • Posts: 47
    • View Profile
zerobot sim
« on: January 18, 2007, 09:24:29 PM »
ok I saw a topic about zerobot sims. I have just one thing to ask what the heck is a zerobot sim?
If this were a perfect world, nobody would have let me into it.

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
    • http://www.franontanaya.com/blog/
zerobot sim
« Reply #1 on: January 18, 2007, 10:40:33 PM »
It's a sim where the code of the starting bot is just a bunch of spaced 0's. So, when you start the simulation, they sit there until point mutations (they can happen anytime, without reproduction), make them start "doing things". So the idea is to wait and see if a functional a-life can evolve from zero.

I usually start a zerobot sim with all bots as vegetables, so they are kept well fed. Dynamic costs and speed limit are useful too because, since those bots aren't very good at hunting things, you want to help them if they can't stay alive by themselves.

The first step for zerobots is learn to reproduce. Then they need to move and shot. Once they learn these three steps and they don't do dumb things like fixing themselves they are more or less ready to be run as heterotrophs. The fun part is to pick some of these after a long time and try to guess how their code works... which usually I couldn't tell. Zerobots tend to use brute force methods to achieve their goals, like increasing values of random sysvars until they hit one useful. The bots in the sim I'm evolving now have never used a '.repro store' code.
Sometimes you win, and sometimes you lose...

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7716
    • View Profile
zerobot sim
« Reply #2 on: January 19, 2007, 07:03:20 AM »
Excellent summary Maca, couldn't have said it better myself!

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
zerobot sim
« Reply #3 on: January 19, 2007, 01:45:59 PM »
I would be extremenly interested in hearing more from anyone who has evolved any complex trait which leverages conditional logic (of any geneic structure) from a zerobot starting organism without hand-coded gene contamination.  To my knowledge, it has yet to be accomplished, particularily given the recently discoverred limits on the maximum time sims could possibly be run pre 2.42.9t.

I define a 'complex trait which leverages conditional logic' as any evolved trait where it can be demonstrated that a bot does different things as a function of different environmental conditions.  Matching velocity, stopping next to or and closing on a stationary bot, accurate targeting, delibert movement torards or away from a shape are all examples.  Reproduction attempts every N cycles, constant or cyclic movement, constant or cyclic shooting, constant or cyclic spinning, like orientation due to environmental factors are all examples of traits which do not use conditional logic.
Many beers....

Offline -venom-

  • Bot Neophyte
  • *
  • Posts: 47
    • View Profile
zerobot sim
« Reply #4 on: January 20, 2007, 11:03:29 PM »
omg I have to try this

could some one explain how to get one going (like setings and a starting bot)?
« Last Edit: January 20, 2007, 11:11:50 PM by -venom- »
If this were a perfect world, nobody would have let me into it.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
zerobot sim
« Reply #5 on: January 21, 2007, 01:21:58 AM »
I think it'd probably learn to share feed first. It's relativly easy for them to randomly form ties. Then simply store any large value into sharenrg and they'd receive the maximum nrg of other bots tied to them.

Offline -venom-

  • Bot Neophyte
  • *
  • Posts: 47
    • View Profile
zerobot sim
« Reply #6 on: January 23, 2007, 09:11:24 PM »
ok what exactly does a zero bot look like?
If this were a perfect world, nobody would have let me into it.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
zerobot sim
« Reply #7 on: January 23, 2007, 10:32:18 PM »
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Many beers....

Offline -venom-

  • Bot Neophyte
  • *
  • Posts: 47
    • View Profile
zerobot sim
« Reply #8 on: January 24, 2007, 06:12:11 AM »
Quote from: EricL
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

o ok



now I feel stupid I thought it needed cond start stop
If this were a perfect world, nobody would have let me into it.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
zerobot sim
« Reply #9 on: January 24, 2007, 09:30:21 AM »
So did I not so long ago.  I'm such a smart ass some times.  

About the only thing to be aware of is that the longer you make the string of 0's of the starting bots (and the more of them you start with) the fewer cycles it will take for a mutation to hit upon a replicator.  Only point mutations occur outside reproduction, so I suppose you could start with just:

0 0

and wait for

300 inc

to evolve and then for reproduction time mutations to grow the genome via insertions, but that will take a long time.
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
zerobot sim
« Reply #10 on: January 24, 2007, 11:09:11 AM »
Maybe it's just me, but I tried using

300 inc

and that did not work for me.  You need the start command

start
300 inc

So, I think starting with just "0 0" is not going to work at all.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
zerobot sim
« Reply #11 on: January 24, 2007, 11:30:01 AM »
It's not you.  You are exactly correct.

The finite state machine that handles DNA execution gets initialized to be in the 'clear' state before beginning the execution of each bot's DNA which basically means that everythig in the DNA will be ignored until some flow control statement is encounterred which toggles the FSM's state into one of the three other FSM states:  'cond', 'body' or 'bodyelse'.  Boolean operations only work in the cond state, store operations (including inc and dec) only work in the body or bodyelse states.

So, currently the minimal zero bot must have three 0's and the smallest possible replicator I can think of will be either

start 300 inc

or

else 300 inc ' the else statement also toggles the FSM into a state where stores can be performed.

I stand corrected.

We could decide to make the inital FSM state the 'body' state, which would allow

300 inc

to work.  But as it stands, only the DNA that follows a flow control statement will do anything.
Many beers....

Offline Sprotiel

  • Bot Destroyer
  • ***
  • Posts: 135
    • View Profile
zerobot sim
« Reply #12 on: January 24, 2007, 01:24:21 PM »
Quote from: EricL
else 300 inc ' the else statement also toggles the FSM into a state where stores can be performed.
This one doesn't work: cond flag is initialised to True.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
zerobot sim
« Reply #13 on: January 24, 2007, 01:39:38 PM »
Ah, yes.  I stand corrected (again).
Many beers....

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
zerobot sim
« Reply #14 on: January 24, 2007, 02:25:14 PM »
so should one start a zero bot sim with 'start 0 0 0 0 0 0 0 0' or just '0 0 0 0 0 0 0 0'?