Author Topic: Idea: Evolving puppeteer genes  (Read 7799 times)

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Idea: Evolving puppeteer genes
« on: December 03, 2007, 11:08:34 AM »
Ok by realising in my "niemand"(genetic template bot) project that virus based modularity currently works just to slow, I came up with a different  project idea, how about  storing each gene in a different bot and then letting them work collectively and modular?
My first thought was letting them form a big multibot, but the problems involved with that are just to large son instead I came up with a different method, do not let the genebots operate themself, no create an empty, dnaless puppet and let the genebots only operate this  puppet by information shoots.

What do you think of the idea? Whats the best way to bind the success of the genebots to their puppets?
How do I ensure energy share among all bots with the minimum amount of extra Dna and only 4 ties from the puppet?
Particulary the genebots have to be as minimalistic as possible to not be able to evolve and succeed without their puppets.
« Last Edit: December 03, 2007, 11:09:34 AM by Welwordion »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Idea: Evolving puppeteer genes
« Reply #1 on: December 03, 2007, 02:27:20 PM »
Controling via info shots is probably also prone to lots of reliability problems.  Shots missing, etc.

I think you might want each bot to contain all genes, but only activate certain genes in certain cells by setting some state via genetic memory.  Not every cell woudl reproduce for example.  Then perhaps you control the overall organism centrally through the in/out sysvars.
Many beers....

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Idea: Evolving puppeteer genes
« Reply #2 on: December 03, 2007, 03:01:07 PM »
You seem to misunderstand this is not about the controlling of multibots its about independant evolution of genes.
And while the in and out method allows a suitable data transfer it does not change swarm specific problems like independant positions that need specific calulation to correct aim etc.
By having a bunch of extremely small bots that only read and manipulate the genes of a larger puppet bot we can evolve genes which later can be combined into the genome of one bot.

But your mentioning of genetic memory gave me an idea, I can probably treat my puppeteer bots like classic
template bots place their numbers into the genetic memory and  write a mutation gene thats get apllied to these numbers.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Idea: Evolving puppeteer genes
« Reply #3 on: December 03, 2007, 03:22:07 PM »
It would work reasonably well if your pupeteer bots stay at point blank range to the larger puppet.  Use velocity matching.  And while using the in/out sysvars to communicate from the puppeteers, you can use it to communicate from the puppet.  Information that refvars don't provide, eyes, etc.  You'd just need the puppet bot to do some simple things like:

*.eye5 .out1 store

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Idea: Evolving puppeteer genes
« Reply #4 on: December 03, 2007, 03:51:35 PM »
Quote from: Numsgil
It would work reasonably well if your pupeteer bots stay at point blank range to the larger puppet.  Use velocity matching.

Right  thats what I had in mind, as for the rest:

cond
0 *.memloc =
start
*974 .memloc store
stop


cond
*973 abs *975 3 mod sgn abs 1 sub abs mult *.memval abs *975 3 mod sgn abs 1 sub abs mult =
*973 abs *.memval abs *975 3 mod 1 sub sgn abs 1 sub abs mult >
*973 abs *975 3 mod 2 sub sgn abs 1 sub abs mult *.memval abs <
start
*971 .shoot abs store
*972 .shootval store
stop

How about this instead of in and out? *971 ---> .shoot  *972  ---> .shootval  *973  -->hard value for condition
*974  --> puppets memory location to investigate *975 ---> determines if = > or < is used for condition.

 A gene to sometimes change these values randomy at robage 0 has yet to be added:

cond
*.robage 0 =
start
1000 rnd *971 1 rnd mult 1 rnd mult 1 rnd mult 1 rnd mult store
1000 rnd *972 1 rnd mult 1 rnd mult 1 rnd mult 1 rnd mult store
1000 rnd *973 1 rnd mult 1 rnd mult 1 rnd mult 1 rnd mult store
1000 rnd *974 1 rnd mult 1 rnd mult 1 rnd mult 1 rnd mult store
1000 rnd *975 1 rnd mult 1 rnd mult 1 rnd mult 1 rnd mult store
stop

edited: I attach my first try of the puppeteer , probably the intialization is a little to random
« Last Edit: December 04, 2007, 07:43:37 AM by Welwordion »

Offline Gobo

  • Bot Builder
  • **
  • Posts: 67
    • View Profile
Idea: Evolving puppeteer genes
« Reply #5 on: December 04, 2007, 12:14:13 AM »
How do you imagine reproduction of the whole conglomerate?

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Idea: Evolving puppeteer genes
« Reply #6 on: December 04, 2007, 07:15:16 AM »
Well I do not assume a complete and tidy reproduction of the conglomerate, rather puppeteers will reproduce and accumulate around a bot and when another empty bot comes near enough puppeteer will accidently switch their puppets and such be distributed and shared among bots.
Atleast thats the idea.
 
Note: a little mistake I put *971 etc into the intialization instead of 971. It also does not yet behave completely like its supposed to
« Last Edit: December 04, 2007, 07:32:48 AM by Welwordion »

Offline Gobo

  • Bot Builder
  • **
  • Posts: 67
    • View Profile
Idea: Evolving puppeteer genes
« Reply #7 on: December 04, 2007, 07:40:28 AM »
Quote from: Welwordion
Well I do not assume a complete and tidy reproduction of the conglomerate, rather puppeteers will reproduce and accumulate around a bot and when another empty bot comes near enough puppeteer will accidently switch their puppets and such be distributed and shared among bots.
Do you plan puppeteers reproduce by themselves, or there would be a special repro puppeteer, which would induce others' reproduction?

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Idea: Evolving puppeteer genes
« Reply #8 on: December 04, 2007, 07:54:15 AM »
We should try to keep  the puppeteers as simple as  possibly (which will also save computation time) so I vote for letting them reproduce on their own.
Also as we do not mutate their genome, but simple change the numbers in their genetic memory we do not have to fear that they will change their basic behaviour pattern, which however also means this basic behaviour pattern has to be optimized by ourself.

(particulary their speedmatching and staying close has to be optimized, also like I said the gene initialization is yet to random there are just to many possible combinations)

Note: I tested it by giving my puppeteer a non random start configuration giving them 30 .up shoots when *.eye5 0 = , it was quite funny although the puppeteers did not follow fast enough so I changed their approaching speed a little.
« Last Edit: December 04, 2007, 07:58:41 AM by Welwordion »

Offline fulizer

  • Bot Destroyer
  • ***
  • Posts: 198
    • View Profile
Idea: Evolving puppeteer genes
« Reply #9 on: December 05, 2007, 09:02:56 AM »
to admit it sending info from a tie will work
"If this is coffee bring me tea, If this is tea, bring me coffee"

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Idea: Evolving puppeteer genes
« Reply #10 on: December 05, 2007, 03:20:57 PM »
wellt ties are the easy solution but they also limit the number of puppeteers and consume the possibility of ties for the puppet, I hope there is a way to do it with shots.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Idea: Evolving puppeteer genes
« Reply #11 on: December 05, 2007, 03:27:31 PM »
Quote from: Welwordion
wellt ties are the easy solution but they also limit the number of puppeteers and consume the possibility of ties for the puppet, I hope there is a way to do it with shots.
FYI, the limt on number of ties is about to go away completly.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Idea: Evolving puppeteer genes
« Reply #12 on: December 05, 2007, 03:38:54 PM »
But there are still logistical limits.  100 bots attached to a single bot isn't going to work no matter what

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Idea: Evolving puppeteer genes
« Reply #13 on: December 05, 2007, 04:35:42 PM »
hmm changed bot to ties added

cond
*.robage 0 =
start
300 971 store
50 972 store
10000 973 store
310 974 store
2 975 store
*.thisgene .delgene store
stop

cause I wanted to make the puppets reproduce.

Note: those who read this previously just had the end command at the wrong point
« Last Edit: December 06, 2007, 03:59:31 PM by Welwordion »

Offline rsucoop

  • Bot Destroyer
  • ***
  • Posts: 166
    • View Profile
Idea: Evolving puppeteer genes
« Reply #14 on: February 13, 2008, 12:55:04 PM »
Quote from: Welwordion
You seem to misunderstand this is not about the controlling of multibots its about independant evolution of genes.
And while the in and out method allows a suitable data transfer it does not change swarm specific problems like independant positions that need specific calulation to correct aim etc.
By having a bunch of extremely small bots that only read and manipulate the genes of a larger puppet bot we can evolve genes which later can be combined into the genome of one bot.

But your mentioning of genetic memory gave me an idea, I can probably treat my puppeteer bots like classic
template bots place their numbers into the genetic memory and  write a mutation gene thats get apllied to these numbers.


It may be better to develop two different dnas, one for a master that just transfers information to where they need to go, and another that is forever controled and combative.