Author Topic: Genome structure  (Read 7077 times)

Offline Sprotiel

  • Bot Destroyer
  • ***
  • Posts: 135
    • View Profile
Genome structure
« Reply #15 on: January 09, 2007, 12:23:44 PM »
Quote from: Endy
I've been taking a look at the Evolve4.0 dna structure, since they seem to have something like this already. I do like how they can have conditions daisy chained to each other ie.

Conditions can easily be chained in DB:

'A
cond
...
start
...
1
stop

'B
cond
0 !=
...
start
...
1
stop

'C
cond
0 !=
...
start
...
stop

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Genome structure
« Reply #16 on: January 09, 2007, 10:06:29 PM »
Not really as smooth to look at though, and you wind up with partial conditions everywhere.

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Genome structure
« Reply #17 on: January 10, 2007, 11:16:31 AM »
Nye, I missed the post about the condstarts. Mixin' it:

Let boolean operators drop true (1) or false (0) in the integer stack and get rid of the boolean stack.

Then the condstart reads the last stack value and if true, executes the commands. No more cond's in the code! And bool ops would be useful too for the actions code.

So codes like these would work:

*.robage condstart ... store stop

*.up sgn condstart ... store stop

... start 50 .aimdx *.eye5 0 = mult store stop
« Last Edit: January 10, 2007, 11:18:13 AM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Genome structure
« Reply #18 on: January 10, 2007, 11:26:23 PM »
I've thought about this sort of thing from time to time, but I just don't think it'd work very well.  Consider what a negative number would mean.  Or what 86 would mean.

And then you're also increasing the complexity of use of store commands (taking 3 stack values instead of 2).  I just think that this would be the wrong direction.

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Genome structure
« Reply #19 on: January 11, 2007, 05:21:04 PM »
It isn't the store the one picking the value, but the start.

So, when the last number in the normal stack is a true value, as it would result from a condition operation, the following start activates. Stores wouldn't change at all in this last suggestion.

It's so a small change it at least could be an option...
« Last Edit: January 11, 2007, 05:24:11 PM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline Sprotiel

  • Bot Destroyer
  • ***
  • Posts: 135
    • View Profile
Genome structure
« Reply #20 on: January 11, 2007, 08:45:30 PM »
Quote from: MacadamiaNuts
It isn't the store the one picking the value, but the start.

So, when the last number in the normal stack is a true value, as it would result from a condition operation, the following start activates. Stores wouldn't change at all in this last suggestion.

It's so a small change it at least could be an option...

Removing the condition stack is not a small change, but I think it's worth considering.

Your proposal isn't totally clear so here is a detailed proposition of implementation:
  • cond stack is removed, bots only use the integer stack
  • tests output 1 for true and 0 for false
  • for flow commands, 0 means false and everything else means true. The first 'start' command after a 'cond' sets a flag that's used by subsequent 'start' and  'else' to decide if the corresponding blocks of code are executed.
  • logic functions behave as 'cond' for input and as tests for output
There's one problem with this, though. It becomes impossible to automatically and together all conditions when a 'start' is executed, which breaks backward compatibility.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Genome structure
« Reply #21 on: January 19, 2007, 03:08:10 AM »
Ran into an interesting site here: Evolving Evolution about the idea of evolving the interpreted dna language itself. Essentially it'd be a contest between the evolvable languages themselves.

It might even be possible to have the bots do this themselves, perhaps with some sort of dna interpretation operators. Would have to be limited in scope somehow, since any change could have dramatic effects on how their own dna is interpreted. That would be the true goal, life evolving it's own evolvability.