Author Topic: Bot DNA  (Read 19810 times)

Offline googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
Bot DNA
« Reply #30 on: August 02, 2007, 06:05:30 AM »
As far as I can tell, conditions are almost always deletrious to an evobot. Take this simple gene, for example:
cond
*.nrg 500 >
start
50 .repro store
stop

There's 6 commands in there, not counting the cond, start, and stop. If any of them in the conditions section is changed, the bot will probably die very quickly. For instance:
*.nrg 500 <
Well, we've now got a bot that suicides if it's hungry. Not particularly smart, unless it's a veggie.

*.robage 500 >
This one will go cancer after a few hundred cycles. Not particularly bright of  a bot to do, is it?

*.tmemloc 500 >
Something like this will pretty much make the bot sterile, as in an evolved enviroment, how often are you going to see tmemloc and tmemval be used?

Not only are conditions remarkably fragile, but no matter whether they work or not, they charge the bot energy (at least under most configurations). That essentially means, that unless every condition is really important, it's gonna get dropped fairly fast. Essentially, evo-bots are encouraged to kill off complex decision making and just run around randomly and shoot.

We really need a way of encouraging conditional logic. I suspect that removing or lessening the costs to check  conditions under default/F1 settings would aid this (as well as make conditionless bots less uber, hoorah!). I've even toyed around with the idea of using negative costs to encourage conditions, movement, and things like that.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Bot DNA
« Reply #31 on: August 02, 2007, 11:46:18 AM »
"cond
*.tmemval *.setbuoy >=

Can I have my free energy now?"


 

Evolution will take advantage of negative costs, creating junk DNA to grab the rewards with the minimum of effort. There's nothing in the contract that says the condition has to be useful! Zero costs are good, since then there's no selective pressure away from conditions (useful ones included).

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Bot DNA
« Reply #32 on: August 02, 2007, 12:44:34 PM »
The fragility of contional DNA logic is related to the the issue of the low probability of evolving it in a sim complex enough to select for it's maintance.    As Googlyfinglongname correctly points out, it takes a long sequence of base pairs, correctly orderred to convey useful conditional logic.  Thus, the probability of evolving DNA with a useful conditional is low and the probability of destroying it is high.  But this is only part of the problem.  Evolving conditional logic in a sim complex enough to provide selective pressures to maintain it once it does evolve (or is hand coded to begin with) is highly unlikly today given the simplisitic natures of the sims we can run.   This is why zerobots don't evolve conditional logic and why hand coded bots loose it over time.  Our sims are just to simple to select for the evoloution or maintence of complex behaviour, conditional or otherwise

We need several things.  More sim complexity is key - evironment grid stuff, abilitiy for specialization and evolution towards niches, more simultanious bots per sim (perf perf perf) larger sims in general, topological separation for long periods of time, etc.

I might also suggest some structal changes to DNA which make the evolution of conditional logic more likely.  Higher level commands that impart conditional logic in fewer base pairs for example or mutation logic that respects gene structure so copy mutations preserve useful conditional sequences intact.....
Many beers....

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Bot DNA
« Reply #33 on: January 05, 2008, 02:18:28 AM »
Would it be possible to allow different levels of variables?

A sim-wide level(most of these being read only), a radius based level around individual bots(to allow things like sound), and an MB level to allow easier communication to all the other bots in a MB.

Might also be an idea to allow bots to create basically a searchable array of features for the bots they are tied to. Then they could affect a variable in just that bot or bots.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bot DNA
« Reply #34 on: January 05, 2008, 03:48:45 AM »
Quote from: Endy
Would it be possible to allow different levels of variables?

A sim-wide level(most of these being read only), a radius based level around individual bots(to allow things like sound), and an MB level to allow easier communication to all the other bots in a MB.

I'm planning on creating a simple "smell" sense.  Smells would be used to communicate over sim-wide levels.  Most other senses will be rather local in all probability.

For MBs, I'm strongly working towards a system that dramatically increases the amount of information that can be communicated.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Bot DNA
« Reply #35 on: January 06, 2008, 01:32:28 AM »
Cool

Definitly need an easier system for MB's.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bot DNA
« Reply #36 on: January 06, 2008, 02:12:58 AM »
The ideal system for MBs would let a cell at one end of a worm communicate freely with a cell 100 cells down on the worm in a single cycle.  That way the size of the MB doesn't effect its response time.

Offline fulizer

  • Bot Destroyer
  • ***
  • Posts: 198
    • View Profile
Bot DNA
« Reply #37 on: January 07, 2008, 08:38:50 AM »
how about rahter than rewriting the dna toatly use the same one but with the new stuff and move up move down turn up and turn down.
also ties could be grappling hook things when they are shot the pull the bots together
"If this is coffee bring me tea, If this is tea, bring me coffee"

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bot DNA
« Reply #38 on: January 07, 2008, 11:11:03 AM »
There are non-backward compatible changes I want/need to make.  The system is still largely based on existing DNA.  I don't know what you mean by  "move up move down turn up and turn down".

Offline fulizer

  • Bot Destroyer
  • ***
  • Posts: 198
    • View Profile
Bot DNA
« Reply #39 on: January 08, 2008, 10:51:30 AM »
want there something about db3 being in 3d?
"If this is coffee bring me tea, If this is tea, bring me coffee"

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Bot DNA
« Reply #40 on: January 08, 2008, 03:32:35 PM »
Quote from: fulizer
want there something about db3 being in 3d?
Physics engine
Eh, no.
Oh my god, who the hell cares.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bot DNA
« Reply #41 on: January 09, 2008, 01:42:50 AM »
3D is a distant idea I'm toying with.  The initial version won't be.

Offline fulizer

  • Bot Destroyer
  • ***
  • Posts: 198
    • View Profile
Bot DNA
« Reply #42 on: January 09, 2008, 08:36:58 AM »
oh fair enought I heard something about it being in 3d sorry.
also im a bot master now the warmness and fizziness is starting to work
« Last Edit: January 09, 2008, 08:37:34 AM by fulizer »
"If this is coffee bring me tea, If this is tea, bring me coffee"

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Bot DNA
« Reply #43 on: January 09, 2008, 01:19:44 PM »
Quote from: fulizer
also im a bot master now the warmness and fizziness is starting to work
Alright.., Ha, me botlord, me higher.    

And now I am wondering what post count stands for the point you get blue stars.
Oh my god, who the hell cares.

Offline Shasta

  • Administrator
  • Bot Destroyer
  • *****
  • Posts: 231
    • View Profile
Bot DNA
« Reply #44 on: January 09, 2008, 08:00:01 PM »
Quote from: Numsgil
The ideal system for MBs would let a cell at one end of a worm communicate freely with a cell 100 cells down on the worm in a single cycle.  That way the size of the MB doesn't effect its response time.

So in this system are you planning on letting any cell know the values of any memory location on any other cell, just doing something like:
Code: [Select]
start
10 .cell store
*.pain 60 store
*.mycell .cell store
60 *.pain >
10 .cell store
100 .give store
stop
Would cell X give cell 10 100 nrg (ok, yeah I made up a few sysvars, but I think you get the point)
If so, sysvars that returned the cell number highest or lowest values (or the values for all of the bots in an array, but this is just wishful thinking and probably too complex) would be very useful.