Author Topic: Sharks and grass  (Read 26962 times)

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Sharks and grass
« Reply #30 on: March 15, 2005, 05:38:57 PM »
Quote
However! (and this is the second new part) Larger enzymes take more time and/or energy and resources to transcribe. As before enzymes are continually wearing out and needing to be replaced.

This still seems over complicated to me.

Just have a bunch of different specialization bits (enzymes if you like) that can be turned on or off. Possibly at different bit levels like you said.

Just keep it simple. You really don't need to model this at the molecular level. All we need are rules that allow for a form of specialization.

I see an enzyme as a switch which can possibly have several states (10 maybe as an example)

You have a bank of these switches (maybe 10 again but it depends on how many different paths the robots can feed by) but you can only spend x amount of specialization points on all of them combined. Imagine that x = 20. That leave a bank of 10, 10-state switches with a maximum amount of 20 total points.

If you bang up photosynthesis to 10 and then Nitrate (waste) metabolism to 5, you only have 5 more points to use elsewhere. Perhaps you might want to put those onto Sulfer metabolism so that you can survive near a smoker.

Successive generations could potentially lose the photosynthesis in favor of Sulfer and so become smoker specialists while others may move toward sunlight and lose the Sulfer specialization in favor of something else.

Thisnk of it as enzymes if you like but it is really just rules for how the bot is able to interact with the e-grid environment.

I really don't see the need to try and actually model real enzymes. It just seems pointless.

This method still leave a lot of specialization in the hands of the genes too.

Simple, easy, no hassle.

 :D  PY  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sharks and grass
« Reply #31 on: March 15, 2005, 05:54:49 PM »
Quote
You have a bank of these switches (maybe 10 again but it depends on how many different paths the robots can feed by) but you can only spend x amount of specialization points on all of them combined. Imagine that x = 20. That leave a bank of 10, 10-state switches with a maximum amount of 20 total points.

If you bang up photosynthesis to 10 and then Nitrate (waste) metabolism to 5, you only have 5 more points to use elsewhere. Perhaps you might want to put those onto Sulfer metabolism so that you can survive near a smoker.

Not to be critical, but everyone who's weighed in has shown distaste for this kind of system.

Do we want the simplicity to be all the way through, or just what's visible to the bots?

In my head, the large degree of complexity is in how the program interprets the enzymes.  From the DNA's point of view, the system I'm thinking of would be very simple.  Still as simple as a collection of numbers tagged on the end of the genome.

I'm all for modeling complexity.  As the program becomes more and more figured out, new and interesting complexities are found in the interaction of simple parts.  Many things I've added have given rise to interesting and novel interactions with existing parts.

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sharks and grass
« Reply #32 on: March 15, 2005, 06:19:06 PM »
I would not say complete distaste.  I don't like the absoluteness of the "point system".  I would modify the system so that the numbers in enzymes mean relative efficiency.

You can assign each enzyme as many points as you like, from 0 to 9 (0 meaning no enzyme at all, 9 meaning very good enzyme).  Then you average all values and express them relative to the average.  Things that come out around 1 should be your default efficiencies, barely workable (so that older bots still work), whatver is above 1 - become more efficient, below 1 - less efficient.  This system actually incorporates your "pleiotropic fitness cost" theory much more than my "mutation accumulation" theory.  But I am OK with it.

On top of these efficiencies we can also add counters - to increase/decrease efficiency even further.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Sharks and grass
« Reply #33 on: March 15, 2005, 08:29:56 PM »
This fact still bugs me. Fact: Everything in biolagical life is passed on to offspring using DNA. They dont pass on binary data or anything like that.
More so:

How do you suppose we save a robot that evolved some kind of new enzime. Currently all robots are saved in .txt files [you]witch only have dna in them and some comments[/you]

Stuff like "hash" does not make sense to me and I delete it from the files anyway.

The buttom line:
I am not  Neo from The Matrix I dont understand Binary code. (Maybe when I will learn assembly ill give it a shot) So dont make saved robot files hard to understand please.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sharks and grass
« Reply #34 on: March 16, 2005, 12:13:04 AM »
Okay, first of all, there are is some hereditary information that is passed without DNA.  This is referred to as epigenetic inheritance.

Second, the hash function validates the mutations of your robot.  Anything with '# at the start of the line helps to ensure that your bot really mutated and you didn't just make up mutations and pass them off as real.

Third, enzymes wouldn't be stored in binary.  It would be stored in the much more compact form of hexedecimal.  Last: yes, they'll just be tacked onto the end.

cond
start
stop
end

ENZYMES:
687A9D
1A567B
end

you get the idea.  The idea is that you don't know what enzymes do.  They're just numbers to you.  I wanted people to run mutation sims looking for new, better enzymes.

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sharks and grass
« Reply #35 on: March 16, 2005, 11:04:52 AM »
What if you want to design a bot?  Or you evolved a bot and want to know what exactly it developed?  I'm with bots on this.

The way I would do this is to choose an arbitrary number of possible enzymes that we want to have, say 32, then just take necessary functions and assign them to the some enzymes.  Say enzyme 1 allows photosynthesis, enzyme 2 allows use of waste and so on.  For now not all enzymes would have functions, but we'll assign these when necessary.  The quality of enzyme would be described in a number from 0 to 9.  Then all enzyme section of genome would be a string of 32 numbers:
42847093028743028474....  so on.

We'll need a fancy mutation for this string.  For one thing, getting from 0 to 1 should be VERY rare (after all, we are talking about creation of a totally new enzyme).  Then, most mutations should change the numbers only by 1, but with some frequency we should allow big mutations too.  Finally, we need to incorporate my "mutation accumulation" hypothesis, which relies on the fact that most mutations are bad.  So, mutations should be scewed to change values down more often than up.  That's how I would do that.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sharks and grass
« Reply #36 on: March 16, 2005, 11:28:49 AM »
Give me a minute and I'll write up exactly what I'm proposing into a text document.  I think you'll see the simplistic beauty of what I'm thinking.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Sharks and grass
« Reply #37 on: March 16, 2005, 12:30:07 PM »
one more thing, If you just going to " tack onto the end" the Enzymes. Why not do so for mutation rates as well? (Now in 2.35 after I see the robot I like: I have to open its mutation rates , press printscreen and save the mutation rates in a seporate black'n'white bmp; Then when I create a new simulation I have to manualy enter the mutation rates from the bitmap , ITS ANNOYING AS HELL < HELP )

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Sharks and grass
« Reply #38 on: March 16, 2005, 12:33:31 PM »
I and Shvartz bouth agree that we must be able to see and edit everything about the robot manualy (I like the "see" part more , love to see what a computer thinks up) So If you write a document Num , please share it with all of us , not only with Shvartz.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sharks and grass
« Reply #39 on: March 16, 2005, 12:34:34 PM »
The document is up over at the suggestions forum.

Or you can click on me

Bots, we could do that, it wouldn't be too hard at all.  I guess the thinking before was that mutations are a product of the environment and not the bot itself.  Silly thinking... :P

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Sharks and grass
« Reply #40 on: March 16, 2005, 12:37:28 PM »
thx Num

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Sharks and grass
« Reply #41 on: March 16, 2005, 12:53:10 PM »
Yes I kind of like the idea that the mutation rates could be tacked onto the end (or the start) of the DNA files.

I also like what Shvarz is saying. It seems very similar to the idea that I outlined above. The main difference being that I envisioned keeping the specializarion points at exactly the same level (gain one here. lose one there)

I'm gonna have a read of Num's idea now.

 :D  PY  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sharks and grass
« Reply #42 on: March 16, 2005, 01:04:02 PM »
Bots, could you explain what you mean by mutation rates?

Quote
Now in 2.35 after I see the robot I like: I have to open its mutation rates , press printscreen and save the mutation rates in a seporate black'n'white bmp; Then when I create a new simulation I have to manualy enter the mutation rates from the bitmap


This confuses me so much, I don't even know where to start ask questions.  What are you talking about here?
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Sharks and grass
« Reply #43 on: March 16, 2005, 01:07:40 PM »
It is just that the only way to find a robot's mutation rates after it has been mutating a while is to go to the mutations control panel and read them off.

Bots is printing this panel (as a bitmap) then using the saved robot file in another sim with the same mutation rates that it had before.

Each robot has a different set of rates (in case you didn't know that)

 :D  PY  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sharks and grass
« Reply #44 on: March 16, 2005, 02:05:19 PM »
You guys are killing me...  Each robot has different mutation rates?  Where did that come from?  How do you go to mutation control panel?  Where is it? WTF????????? :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:  :banghead:
"Never underestimate the power of stupid things in big numbers" - Serious Sam