Welcome To Darwinbots > Newbie
coexistence
Numsgil:
long term stability is interesting in its own right, but as long as there's some mutations I imagine something will change sooner or later.
hdggDalton:
--- Quote from: Numsgil on February 26, 2022, 06:51:31 PM ---long term stability is interesting in its own right, but as long as there's some mutations I imagine something will change sooner or later.
--- End quote ---
true i nevver thought of it that way, it is hard to get bots to evolve interesting adaptations since, the way it looks to me, if the bots are already doing well in their environment, they will just stagnate or add junk code because if they're doing well enough, i tried to come up with an explanation i call "beneficial mutation usefulness" to explain it
the possibility of a beneficial mutation = a
the positive effect of a potential beneficial mutation on a creatures ability to survive and reproduce = b
the creature's current ability to survive and reproduce = c
ideally, c+(a*b) should be quite higher than c in order for beneficial mutations to occur sufficiently often and sufficiently increase fitness so that natural selection favors them and they become more widespread in the population.
a is generally very low as neutral mutations that do nothing and harmful mutations like mutations that remove a creature's ability to reproduce or cause it to move uncontrollably are far more likely, to increase beneficial mutation usefulness, we can increase mutation rate which is a bit dodgy since it increases neutral and harmful mutations which may drown out the beneficial mutations (genetic drift)
b is random, a lot of the time it's extremely low like a small numerical change like going from needing 20000 energy to reproduce to 20348, but very rarely b becomes very high due to introducing completely new behavior like adding the ability to produce shell that wasn't there before, but i think on average b is very low. b is not manipulable because the nature of mutations make them completely random and out of control
c is determined by the environment, which includes environmental conditions like gravity and friction, amount of food (algae), potential prey, predators, even members of the creature's own species can fall in either category if they're cannibalistic (which happens sometimes). to increase beneficial mutation usefulness, we can decrease the survivability of the current environment, some ways to decrease c might be decrease amount of food, decrease light energy, increase energy cost for living and doing stuff, introduce predators, etc.
if c is relatively high, and they're prospering and thriving, the difference between c+(a*b) and c, which is a*b, is miniscule compared to c and the beneficial mutations are lost to randomness and genetic drift
but if c is too low everyone dies before beneficial mutations can even be introduced
so i feel there is this very small goldilocks zone where beneficial mutations are needed enough that they can take over, but the environment is not so dangerous that everyone dies, i think it's just really interesting how it works when YOU'RE the one trying to manipulate the environment so that they evolve cool stuff for our own amusement :D do you have any tips how to reach this goldilocks zone? my sim almost died once because i gave them too little food D:
edit: it has recovered since though, here is the current best bot with 25 descendants:
--- Code: ---
cond
*.eye5 *.trefvelyourdn >
*.tin3 .eye4width store
start
*.refveldx .dx store
822 .up addstore
ceil 7805 mult *348
'''''''''''''''''''''''' Gene: 1 Ends at position 18 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 2 Begins at position 19 '''''''''''''''''''''''
cond
inc
*.eye5 281 >=
*.refeye *.maxvel inc
start
-6 .shoot store
*317 *.trefnrg 822 .up substore
.memloc store
'''''''''''''''''''''''' Gene: 2 Ends at position 37 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 3 Begins at position 38 '''''''''''''''''''''''
start
%=
<
rndstore
24835 17302 sqr .aimright floorstore
*.refaim .mkchlr store
*.trefshoot *.venom *131 *.memval sqr 542 300 *.nrg 24591 >
*.in5 addstore
addstore
'''''''''''''''''''''''' Gene: 3 Ends at position 62 '''''''''''''''''''''''
--- End code ---
Numsgil:
This gets in to areas of actual biology research so smart people have had different opinions on the matter over the centuries, but personally I ascribe to a kind of haystack model. That's often discussed in terms of the problem of altruism but I think it works for the evolution of complex behavior generally.
The idea goes that an isolated population tends to become genetically homogenous over time. Sometimes beneficial mutations develop, sometimes harmful ones, sometimes lots of neutral mutations, but generally things have a tendency to spread out and either become universal or extinct. It's possible for such a population to even drive itself to extinction by accidentally getting into evolutionary dead ends.
Now imagine having dozens or hundreds of such populations, all from a common ancestor, and having them isolated long enough that they're all a bit different. Now suddenly mix them together into a single population. Each line has to fight for survival and a line with a beneficial mutation has an edge. Wait for the larger population to become homegenous again, then split the population back up into the original enclaves. Now repeat this on different time and size scales with different groups in a chaotic soup of isolating and recombining populations. You end up with a red queen's race of competing genetic lines fighting against each other. The lines that do this well survive, the ones that don't, don't. In sexual and horizontal gene transfer organisms the different lines can even create hybrids during the mixing process so you can have mutations that are neutral or even slighytly negative independently find each other and produce a beneficial result.
That's the theory. If you wanted to mimic something like this in Darwinbots you would run a simulation for a while until there are some number of mutations in the population and things seem to have stagnated. Then find an examplar bot and create a new simulation with clones of that bot and the original line. Run that for a while, find an examplar bot, then create a new simulation with the original, the 1st round examplar and this new examplar. Repeat ad nauseum, choosing which examplars go together in a sim arbitrarily/randomly. You end up with strong selective pressure without the possibility of a mutation meltdown. This is an awful lot like what DeepMind did for their Starcraft2 research: they built a ladder and pitted new versions of the AI against old version of the AI periodically to protect against "catastrophic forgetting". The ones that did well had to do well against not just their peers but previous iterations of themselves. The difference in biology is that there's no external fitness function outside of keeping your line represented in the future somehow.
It's worth noting as a human you can put your thumb on the scale and select for things you find interesting, but you don't have to and it'd be perfectly fine to choose your examplars randomly.
Also worth noting, in Darwinbots it's hard for DNA to get longer. There's some mutations set up for it but practically speaking it doesn't happen very often. You can help things along a bit if you add a bunch of 0s to your bots' DNA to give it a bit more room to develop mutations in.
hdggDalton:
--- Quote from: Numsgil on March 03, 2022, 12:10:58 AM ---The idea goes that an isolated population tends to become genetically homogenous over time. Sometimes beneficial mutations develop, sometimes harmful ones, sometimes lots of neutral mutations, but generally things have a tendency to spread out and either become universal or extinct. It's possible for such a population to even drive itself to extinction by accidentally getting into evolutionary dead ends.
--- End quote ---
yes that's it, over a long enough period of time there's very little space in between death and domination
i wonder if you can just put down a ton of shapes to block off the map into several different areas, with small gaps so bots can pass through sometimes, and that will do the trick of regularly isolating and recombining populations as you say
Numsgil:
Yeah that might work. Only one way to find out :)
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version