Bots and Simulations > Evolution and Internet Sharing Sims
Idea: Evolving puppeteer genes
Welwordion:
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.
EricL:
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.
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.
Numsgil:
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
Welwordion:
--- Quote from: Numsgil ---It would work reasonably well if your pupeteer bots stay at point blank range to the larger puppet. Use velocity matching.
--- End quote ---
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
Navigation
[0] Message Index
[#] Next page
Go to full version