Author Topic: Darwinbots enzyme system  (Read 40588 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots enzyme system
« on: March 16, 2005, 12:07:58 PM »
Here it is, written into a document.  Lucky you.

Note that this is different from the system to specialize in actions like shooting and moving, etc.  Related, but seperate.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Darwinbots enzyme system
« Reply #1 on: March 16, 2005, 12:44:04 PM »
Thats a nice document and all. But I still have no Idea how to design my own Enzimes , Shvartz did you get it? help me out.

If I can't understand it, I cant see what robots mutated and Injoy.

I think we need a Detailed document, describing each specific enzyme and muta-enzyme , ( what effects does this enzyme have on the motabolism of the robot? How do this enzymes look like incoded into the robot save file?)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots enzyme system
« Reply #2 on: March 16, 2005, 12:52:10 PM »
I specifically made it so you can't design your own enzymes per se, but you can run some simulations to find good ones.  And then make a document somewhere where you store your uber impressive enzymes.

Near the end of the document, you see this:
Quote
My bot has mutated.  What are all these new enzymes doing?

Within the program an enzyme analyzer will be added.  Simply copy and paste an enzyme into the analyzer and it will tell you all the substances the enzyme acts one, what it turns those substances in to, and how efficiently it does all that.

So to figure out what an enzyme does you copy and paste it into a field and the program will tell you what it's doing.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Darwinbots enzyme system
« Reply #3 on: March 16, 2005, 12:56:05 PM »
O , kool

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Darwinbots enzyme system
« Reply #4 on: March 16, 2005, 01:30:16 PM »
The good thing about this is that an almost infinite number of possible enzymes is available but we can never know the best ones except by trial and error.

Nice system  B)

The only thing I don't like is that the DNA file would be able to actively encourage an enzyme to be produced. Should leave it all down to behind the scenes nature to do that in the method described.

If it's in the stomach then digest it with available enzymes and eject the rest as waste which then just enriches the environment stored in the e-grid

How about a limit to the number of possible enzymes that a robot can produce. without a limit the robot could become the ultimate carnivore while still retaining photosynthesis.

Maybe certain enzymes have to be mutually exclusive but then even that will have problems. For instance I would like it to be possible for a photosynthesizing robot to gradually mutate carnivorous tendencies. The way I see it with this system (as it is outlined) the robot could become able to eat flesh without losing the photosynthesizing enzyme.

Again there would be no incentive for any robot to lose one specialization in favor of a different one. I also don't see how it could be a gradual change (taking from one to give to the other) Robots would tend to keep both and that would be just plain unfair  :(

 :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
Darwinbots enzyme system
« Reply #5 on: March 16, 2005, 01:42:35 PM »
That's why I searched for 'why aren't all animals omnivores' I was telling you about before.  As schvarz has been contending for a while, there's nothing stopping real creatures from producing all enzymes possible.  So why don't they?

I'm not against any of the suggestions you've made.  In fact, at first glance they'd be my idea too.  But I'd like to see if schvarz is right or not.  What do you think schvarz?
« Last Edit: March 16, 2005, 01:43:13 PM by Numsgil »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Darwinbots enzyme system
« Reply #6 on: March 16, 2005, 01:42:40 PM »
I think I understand how the system is supposed to work.
What I like about it is complexity - there is a lot of it, allowing A LOT of possible combinations.
What I don't like about it is complexity - it is hard to grasp the causes and effects in this system.  If some bot finds a bug in the program that would allow it to become super-bot, it would be very hard to trace it.  It is also hard to judge if a super-enzyme is possble in this system.

Also, what I don't like is all this conspiracy with shuffling - it begs to get hacked :)  

I am OK with enzymes produced from DNA code.  But how do you do that?

cond
start
EA45A
mkenzyme
stop

???

How do you mutate this gene?  What if the "name" that is mutated is not in the list of enzymes at the end?

Finally a big question - could you give more details on how the enzymes would affect metabolism.  You mention briefly in the file, but I want more info.  Where are all those 20-30 reactions coming from?  Sounds like a lot to me...
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots enzyme system
« Reply #7 on: March 16, 2005, 01:56:16 PM »
I'm still collecting all the reactions, but there are alot.

Basically you have all the stuff bots can have in their bodies that's digestible.

Then you have photosyntehsis.

Then you have the sulfur cycle.

Then you have the nitrogen cycle.

Then you have a few isoalted reactions, like oxidizing iron with sulfur.



The complexity of the system definately is daunting.  In the DNA, this is how I'd imagine stimulating enzyme production:

100 .fat .stimulate

This would trick the stomach into thinking that there's 100 more fat in the stomach than there really is.  That would prompt the stomach into trying to produce extra fat digesting enzymes.



Yeah, there's definately a huge possibility for it to be hacked.  I can't stop that.  Best I can do is make a .dll so the source code for enzymes aren't visible to the end user.

I just really want users to experiment in mutation sims for new enzymes.  I don't want us to write 5 or 6 and forget any others.



It is possible to come up with 'uber proteins' that digest everything, but since they're so expensive (the longer the enzyme, the more it costs to make) they'd only be useful under the right circumstances.

Also, since it's possible for one activation site to overlap with another activation site or the efficiency code, you might see a mutation wreck an enzyme's ability to digest A while making it better able to produce enzyme B.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Darwinbots enzyme system
« Reply #8 on: March 16, 2005, 04:54:46 PM »
[hint]I'd love to see all this metabolism.... [/hint]

But you are probably scared that I'll criticise it to hell..... :pokey:
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Darwinbots enzyme system
« Reply #9 on: March 16, 2005, 05:14:01 PM »
Ok then here is one interesting point which may actually work to the benefit of your system.

Nitrogen cycles (Nitrobacter, nitrosomonas) need ammonium and zero Oxygen. They are anaerobic bacteria by default.
Normal enzymes need the presence of Oxygen.

It would be a little on the impossible side for both of these to be active in the same robot.

On the other hand, it is feasible that one robot could perform both these operations under different e-grid conditions.
In some circumstances Nitrobacter can be persuaded to work in the opposite way to cleave the nitrate molecule into gaseous Nitrogen and Oxygen, using a small amount of the Oxygen as fuel.

I think I would just like to see how all this works out.  :D

The e-grid and niches will play a large part I think.

 :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
Darwinbots enzyme system
« Reply #10 on: March 16, 2005, 05:20:36 PM »
Okay, this is what I have so far.  Not all of them are balanced, it's still a work in progress.

Light + CO2 + H20 -> carbs + O2
Light + CO2 + H2S -> carbs + H20 + S (poisoned by O2)
S + H20 + O2 -> 2SO4 + nrg
H2S + CO2 -> S + H20 + carbs (or nrg)
FeS + H2S -> FeS2 + nrg
NH3 + 3O2 -> NO2 + H20 + nrg
NO2 + O2 -> NO3
digesting fats -> fats
digesting nrg -> nrg
digesting carbs -> carbs
metablozing poison (ie: this is how poison is cleaned from the system after you eat it.  Without this, you have to wait until you pass it out through your waste)
metablozing venom
digesting muscles -> proteins
digesting proteins -> proteins
digesting limestone(calcium) to use in shell
digesting silicate to use in shells
digesting slime -> carbs

(not sure about these)
digesting protiens -> NH3 + CO2 + nrg + aminoacids
NO3 + carbs + aminoacids-> proteins + O2
amino acids -> nrg?

That's all I've been able to find so far.  The last three are just my guesses, but the rest have been preened from one source or another.  The problem is I'm coming up with stuff as I go along, so I'm sure I've missed all kinds.

If you know a link to a list of all the reactions cells do to create energy, I'd love to have it!

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Darwinbots enzyme system
« Reply #11 on: March 16, 2005, 06:09:40 PM »
How far are you on coding these?
I assume that all these compounds can make it to the stomach (including light and CO2).  Is that the idea?

My personal feeling is that iron and sulphur reactions are a waste of time.  These are such marginal scenarios, almost no one uses them anymore, why bother coding them in?  They are low efficiency/low energy type of metabolism and they are killed by the presence of oxygen (even in small amounts).  I would drop them for now.  Also, I would drop water, CO2 and O2 out of equations.  We must assume that these are available, unless we simulate a) some weird ecological niche or B) large-scale changes in Earth's biosphere.  Besides, it makes metabolism so much simpler and easier to follow.

Here are those that I do like:

Photosynthesis:
Light -> carbs

Digestion:
digesting fats -> fats
digesting nrg -> nrg
digesting carbs -> carbs
digesting proteins -> proteins

Conversion:
fats<->nrg
protein<->nrg + NH3
carbs<->nrg

Degrading stuff:
posion -> nothing
venom -> nothing
shell -> nothing
slime -> nothing

-------->digesting muscles -> proteins (what are muscles? muscles=proteins)

Extracting resources (I would not even put them in env.grid, just assume they are there):
nothing -> calcium
nothing -> NO2

Making shells and slime and venom and poison:
calcium -> shell
protein -> shell
carbs -> shell
carbs + protein -> slime
protein -> venom
protein -> poison

Extra reactions:
NO2+nrg ->NH3



In this form, we have pretty much complete metabolism.  Maybe I missed something, but I don't see what it is.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots enzyme system
« Reply #12 on: March 16, 2005, 06:28:50 PM »
The idea is that in the final system adding compounds or changing or adding reactions is trivial.  Plus, I love complexity.  Anything that can lead to emergence.

O2 and CO2 were first proposed way back in the old board.

There are some sulfur reactions that happen in black smokers that aren't poisoned by O2.  Also, there might be some places where there is low oxygen (say because of depth (oxygen sollubility changes with pressure)) where anaerobic processes can occur (in the soil for instance.  Or in a primitive sim you're running where you want to simulate the gradual poisoning of the atmosphere with O2).

I'm going to seperate proteins and muscles, so proteins + (nrg, carbs, or something else or nothing at all) -> muscles.

That's because muscles require upkeep, so you may want a large protein store without having them do anything.  There are a few other reasons too...

Things like silicate and limestone were going to be included in the grid so they could act like temporary walls that would have to be carved away.

Then ant bots could actually tunnel through the sand to form nests.  Very exciting possibilities.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Darwinbots enzyme system
« Reply #13 on: March 16, 2005, 09:49:20 PM »
Complexity is good.  If you imagine metabolism being a convoluted network, then all these sulphur-iron reactions are tiny half-dead branches in that network.  If you want complexity, I can give you real complexity of real metabolism :)

For example, if you want to play with anaerobic conditions, then you can split the reaction:

carb->nrg

into these:

carb->pyruvate+nrg
pyruvate->lactate+nrg
pyruvate+O2->CO2+lots of nrg

Same with nitrogen cycle, with aminoacids, etc...  Just ask for complexity and I'll provide :)

Back to our discussion:

What is the reason to have both - limestone and silicate?  Can't we just do with one?  Seems like a redundant system.  How are these going to be walls?  Env.grid locations that cannot be crossed?  Interesting idea....

Upkeep is necessary for all proteins - muscles and enzymes.  Are we going to recycle either of these?  They usually are recycled, but I don't know if that would make a big difference to us. One thing to add.  We can make bots to create stock of "proteins".  When an enzyme or a muscle is made, it has to take one of the proteins.  If none are available, then enzyme/muscle is not created.

I guess we can add C02 and 02.  But here is the problem I see: the presence of gases is not yes/no case.  It is a matter of efficiency.  In env. grid if a location has a single O2 molecule, that molecule will be extracted and used.  But in real life the air with tiny amount of O2 is simply not usable for us.  How can we simulate this?  My inclination is to leave it aside for now...
« Last Edit: March 16, 2005, 09:51:58 PM by shvarz »
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Darwinbots enzyme system
« Reply #14 on: March 16, 2005, 10:28:58 PM »
I don't really see a problem with CO2 and O2 although I do see what you mean.

The way I see it, the value in the e-grid will be pretty large most of the time anyway. When a robot performs an operation requiring Oxygen, the efficiency of the operation will be governed by the amount of O2 in the grid at his location. A small amount will be removed and replaced with CO2.

As the robots use up more and more Oxygen they will get more sluggish until they are almost unable to move or do anything. The veggies will be constantly converting CO2 back into Oxygen so a kind of veggie-carnivore equilibrium should eventually form.
We would also need to simulate diffusion from the water to the air for both of these types but it shouldn't be too large an amount, another options setting probably.

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

:D PY :D