Poll

Do you run evo-simulation?

No, I have never run a evo-sim!
0 (0%)
Yes once, but it was to difficult to figure out the best settings.
0 (0%)
Yes. A few times, nothing interesting evolves.
2 (18.2%)
Yes. Many times, nothing interesting evolves.
2 (18.2%)
Yes I have, and interesting bots/behavior evolves!
7 (63.6%)

Total Members Voted: 11

Author Topic: Do you run evo-simulation?  (Read 10580 times)

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Do you run evo-simulation?
« Reply #30 on: May 24, 2005, 09:18:54 AM »
Quote
It may take atleast a week more!

If you can get a working version up by Christmas I will be impressed.

This is one heck of a huge job that you have taken on.  :blink:
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline AZPaul

  • Bot Builder
  • **
  • Posts: 76
    • View Profile
Do you run evo-simulation?
« Reply #31 on: May 25, 2005, 08:43:31 PM »
Evo-sims come in two flavors, chocolate and vanilla.

The vanilla kind involve creating a bot, some food, maybe an enemy, an environment and letting DB mutations act over x million cycles to see what happens. This is fun. Not really very productive, but fun in that it is interesting to see what can develop, which isn’t much, usually, but it's fun anyway.

The chocolate kind is a bit more complex. In a chocolate flavored evo-sim you are setting up a system to test some very specific evolutionary concept. You must take care to control everything but the test variable and be careful to NOT guide the test variable where you think you want it to go.

DBII mutations may be random but they are also overly extensive, coarse and extreme; well outside natural events.

Look at a mutation in nature. Except for muto-toxic poisoning which can change entire segments of genes (thalidomide) the vast majority of mutations involve changing one letter of the three-letter codon on a gene. In some cases this mutation does nothing since there are multiple codons coding for the same amino acid in the protein syntheses. In the other cases the codon change causes a different amino to be placed into the protein at that specific location. The resulting protein may fold differently and may have different electrochemical properties. It may or may not act differently within the system (cell). If the protein is a vital function agent, like hemoglobin, or is essential to other vital systems the mutant individual may not live. In other cases the individual may live but have a slightly longer arm, more muscle fibers in the biceps, truncated ganglia in the spine, you name it. The environment then determines if the individual prospers or not.

Most mutations in DBII are of the muto-toxin variety. No subtlety.  Most DBII mutations radically change the gene function in the extreme or make the operation nonsensical.

cond
  *.eye5 40 >
  *.in1 *.out1 !=
  *.refnrg 3000 <
  *.attacked 0 =
  *.horny 0 =
start
  mult mult 625
stop

A series of DBII mutations is apt to take the above gene and do this:

cond
  *.memval 40 >
  *.in1 *.out1 !=
  *.aimdx .shootval <
  *.attacked 0 =
  *.horny 0 =
start
  mult mult *.hitsx
stop

or this:

cond
  *.eye5 40 >
  *.repro *.out1 !=
  *.shot 3000 <
  *.attacked 0 =
  *.horny 0 =
start
store
  dec  sub  inc  6  sub  inc  inc  sub  inc  inc  rnd  sub  inc  store
  store
  6  6  store
  inc  store
  5  rnd  rnd  6  div  sub  mult .vel 625
stop

A more realistic mutation would take a constant and randomly apply a +- 10%.

cond
  *.eye5 36 >
  *.in1 *.out1 !=
  *.refnrg 3300 <
  *.attacked 0 =
  *.horny -1 =
start
  mult mult 688
stop

Or change a variable or operator  to some other related type.

cond
  *.eye1 40 >
  *.in1 *.out2 =
  *.nrg 3000 <
  *.attacked 0 =
  *.horny 0 =
start
  mult  rnd 625
stop

This will still change the function of a specific gene and may kill the individual but it may also lend more subtlety with less radical change thereby allowing, IMO, more realistic and more useful change to develop.

For chocolate sims the DBII mutations are too coarse. In my mind DBII mutations are too coarse in the extreme for any reasonable evo-sim, even vanilla flavored, except as a game. But, you gotta start somewhere and I can imagine the coding effort is already quite intense. Besides, I can turn off mutations.

I do chocolate-flavored un-guided non-creationist evo-sims. At least I would do them if [begin hint] .sexrepro was working [end hint] which, in my genius, I managed to work around except now I can’t get to the data since [begin hint] there is no way to dump memvals into a text file [end hint] for analysis.

Having said all this I hold out much hope for the future.  DBII is by far the only system with the flexibility and capability to approach my needs. You folk have already done a superb job in putting this thing together and from what I’ve read in this forum your plans for the future are all stellar.

For now I lurk the updates with hope. And I’m learning that coarse vanilla can be quite fun.

Verbosely yours as always,

-P
« Last Edit: May 25, 2005, 08:44:30 PM by AZPaul »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Do you run evo-simulation?
« Reply #32 on: May 25, 2005, 08:58:43 PM »
When I'm done playing with the minor changes in DB and when I get tired of working on the egrid (so many problems!  So little computer memory) I'd like to set up a comprehensive and hierarchial list of mutations and how they should work.

If anyone has any good references to how other ALife sims deal with their mutations (I was passively looking into Avida) I'd love to get a look and compare them all.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Do you run evo-simulation?
« Reply #33 on: May 26, 2005, 09:27:01 AM »
As far as values in memory locations is concerned, DB was recently altered so that mutations don't jump vast differences in value any more. (Change was applied for 2.36)
It now uses a gaussian function for mutations so that when a value is changed, the new value will probably be very similar to the old one.

It is now virtually impossible for something like..

854 .depth =

to mutate to.....

25687 .depth =

It is highly likely that the new value will be within 10% of the original value in the new code.

The same formula is (unfortunately) applied to memory locations too, as the DNA parser sees numbers and memory locations in very much the same way. This means that .depth (217) could easily mutate to any of the following.

shdn 211
shdx 212
shsx 213
edge 214
fixed 215
fixpos 216
depth 217
daytime 218
xpos 219
ypos 217
kills 220

In most cases the sysvars are reasonably well related to each other but it wouldn't be too hard for .....

854 .depth =

to mutate to.....

854 .fixpos store

That would have a pretty bad outcome since the robot will then lose all ability to move.

We are heading in the right direction but the mutations certainly do need to be tightened still further.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Do you run evo-simulation?
« Reply #34 on: May 26, 2005, 11:09:13 AM »
Perhaps we should go through the program and the sysvars file and drastically rearrange the order of all of them.  They're about 60% related to each other by location in the file, but if we can increase that, mutations would be more likely to give good results.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Do you run evo-simulation?
« Reply #35 on: May 26, 2005, 12:14:41 PM »
That would probably be a good idea but the one problem I see with doing it is that some mutated bots that are using direct memory stores instead of sysvars, would then work completely different.
I have a mutated Hunter that has absolutely no repro commands in its DNA, yet it still reproduces.
Also Devincio Solo uses a similar repro technique. If .repro was changed from 300 to something like 500 then these robots would no longer be viable.

Just something to think about.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Do you run evo-simulation?
« Reply #36 on: May 26, 2005, 12:23:32 PM »
It's definately a trade off.  But if we can devise a relatively logical and consistant sysvars pattern we'd only have to do this once.

There are only ~200 sysvars, so we should be able to scatter the sysvars around so that even future sysvars have a logical place they should go.