Author Topic: A little evolution for everyone!  (Read 19755 times)

Offline Sprotiel

  • Bot Destroyer
  • ***
  • Posts: 135
    • View Profile
A little evolution for everyone!
« Reply #45 on: June 23, 2005, 11:21:18 AM »
Mmm... Let's try a simple model. Consider that a bot has N meaningful DNA instructions and J junk instructions. Consider also that when it mutates :
1. N remains constant.
2. Deletions of meaningful DNA is fatal
3. A proportion (1-r) of insertions in meaningful DNA is fatal and that non-fatal insertions yield junk DNA.
4. Insertions or deletions of junk DNA have no effect on fitness.
Call d the rate of deletions and I the rate of insertions.

Then at each generation, you have I (rN + J) insertions and dJ deletions and the new junk DNA length J' = J + I r N + (I-d) J.

So there are 3 cases:
Case 1: I>d : junk DNA grows exponentially.
Case 2: I=d : junk DNA grows linearly.
Case 3: I<d : junk DNA reaches an equilibrium value equal to I /(I-d) *r N

Now, all we have to do is testing this!

Offline Greven

  • Bot Destroyer
  • ***
  • Posts: 345
    • View Profile
A little evolution for everyone!
« Reply #46 on: June 23, 2005, 11:26:29 AM »
This is very sprotiel, but what about normal substitutions, dont we have to take this into accout to?
10010011000001110111110100111011001101100100000110110111000011101011110010110000
011000011000001100010110010111101001110100110010111100101000001000001111001011101
001101001110011011010011100011110100111000011101100100000100110011010011100110110
010110000011100111101001110110111101011101100110000111101001101001110111111011101
01100100000111010011010001100001110111010000010001001000010100001

Offline Ulciscor

  • Bot Destroyer
  • ***
  • Posts: 401
    • View Profile
A little evolution for everyone!
« Reply #47 on: June 23, 2005, 11:29:04 AM »
Argh my head exploded reading that; it's extremely clever! Go [Sprotiel]!
:D Ulciscor :D

I used to be indecisive, but now I'm not so sure.

Offline Sprotiel

  • Bot Destroyer
  • ***
  • Posts: 135
    • View Profile
A little evolution for everyone!
« Reply #48 on: June 23, 2005, 11:38:54 AM »
Quote
This is very sprotiel, but what about normal substitutions, dont we have to take this into accout to?
Bah! Let's say substitutions will wreck good DNA and transform junk into junk. OK, there's also the possibility that substitutions in good DNA improve the fitness of the bot, but it doesn't change anything to DNA structure. The key point in my crude model is that junk doesn't turn into good DNA (too bloody unlikely) and that good DNA doesn't turn into junk (this would "kill" the bot).

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
A little evolution for everyone!
« Reply #49 on: June 23, 2005, 12:11:14 PM »
I'd just like to point out that the only "cost" of having Junk DNA is having to copy it every time you reproduce.

In DB, this doesn't cost anything, so there's no downward force on the DNA length aside from deletious mutations (mm, delicious mutations).

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
A little evolution for everyone!
« Reply #50 on: June 23, 2005, 12:25:32 PM »
I'm not arguing that "junk" DNA cannot become useful. It obviously can.

I am looking at present "junk" in a non-mutating environment to see whether it has any effect whatsoever.

As greven said, if it has an effect then it is a bug. I am attempting to find out if there is a bug or not. That is all.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Greven

  • Bot Destroyer
  • ***
  • Posts: 345
    • View Profile
A little evolution for everyone!
« Reply #51 on: June 24, 2005, 06:57:31 AM »
What about adding cost to reproducing? say 1 nrg for every 10th instruction or so?
10010011000001110111110100111011001101100100000110110111000011101011110010110000
011000011000001100010110010111101001110100110010111100101000001000001111001011101
001101001110011011010011100011110100111000011101100100000100110011010011100110110
010110000011100111101001110110111101011101100110000111101001101001110111111011101
01100100000111010011010001100001110111010000010001001000010100001

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
A little evolution for everyone!
« Reply #52 on: June 24, 2005, 08:56:41 AM »
Back when I were a lad, it used to cost energy to reproduce.

Well actually about a year ago. I had to remove the feature.

Here is the problem with doing it that way.

imagine a robot busy feeding on a patch of veggies with its face (do DBs have faces?) buried in its food, shooting away and building up vast amounts of energy.

He/she/it passes the repro threshold and tries to make a baby. The repro gene activates. The program goes through all the motions of making a new baby. All costs are applied including the cost of replicating the DNA.
Then what happens?
There isn't room for the young 'un to be created so all the effort and cost has gone for nothing due to an arbitrary decision by the program that there ain't enough space.

There is just no justification for charging all that energy to do absolutely nothing. It just put an effective cap on how much energy a robot could colect.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Sprotiel

  • Bot Destroyer
  • ***
  • Posts: 135
    • View Profile
A little evolution for everyone!
« Reply #53 on: June 24, 2005, 10:00:53 AM »
The solution is rather obvious: charge the ehergy only when the bot reproduces!

Offline Greven

  • Bot Destroyer
  • ***
  • Posts: 345
    • View Profile
A little evolution for everyone!
« Reply #54 on: June 24, 2005, 10:06:14 AM »
No that is stupid Sprotiel  :boing:  :)

I think, like real cells, a bot divides, not repoduces, and therefore, the daughter cell(bot) should appear were there are any empty space! or something like it!
10010011000001110111110100111011001101100100000110110111000011101011110010110000
011000011000001100010110010111101001110100110010111100101000001000001111001011101
001101001110011011010011100011110100111000011101100100000100110011010011100110110
010110000011100111101001110110111101011101100110000111101001101001110111111011101
01100100000111010011010001100001110111010000010001001000010100001

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
A little evolution for everyone!
« Reply #55 on: June 24, 2005, 10:20:56 AM »
I think I agree with sprotiel on this one.  Only apply the cost if a baby is successfully produced.

Offline Greven

  • Bot Destroyer
  • ***
  • Posts: 345
    • View Profile
A little evolution for everyone!
« Reply #56 on: June 24, 2005, 10:26:59 AM »
Yes maybe Sprotiel is right!!!
10010011000001110111110100111011001101100100000110110111000011101011110010110000
011000011000001100010110010111101001110100110010111100101000001000001111001011101
001101001110011011010011100011110100111000011101100100000100110011010011100110110
010110000011100111101001110110111101011101100110000111101001101001110111111011101
01100100000111010011010001100001110111010000010001001000010100001

Offline Ulciscor

  • Bot Destroyer
  • ***
  • Posts: 401
    • View Profile
A little evolution for everyone!
« Reply #57 on: June 24, 2005, 10:35:20 AM »
I think so too. Since the offspring never actually comes into being no resources should be spent. Unless a portion of the energy is used attempting to make the offspring and the rest used only if it exists.
:D Ulciscor :D

I used to be indecisive, but now I'm not so sure.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
A little evolution for everyone!
« Reply #58 on: June 24, 2005, 10:43:24 AM »
Quote
The solution is rather obvious: charge the ehergy only when the bot reproduces!
I didn't claim that the solution wasn't obvious.

It just isn't that easy to implement.

I agree that a bot should only be charged when the reproduction is successful. The trouble is in telling when it has actually been successful.

I spent a few hours attempting to figure this out then decided it wasn't worth the effort so I just removed the cost altogether. There should probably be some minor cost involved to copy the DNA so if need be we can put in the time to code it again.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
A little evolution for everyone!
« Reply #59 on: June 24, 2005, 10:50:59 AM »
PY, you are saying the robots currently lose half there energy during 50 .repo if there was not enough room?