Author Topic: Enzyme System  (Read 2922 times)

Offline googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
Enzyme System
« on: December 27, 2007, 04:27:03 AM »
I know that enzymes won't be set up for quite a while, but I thought I could chip in my two cents.

So far, the primary idea is some sort of mutatable string that would consist of one or more enzymes.

I think I've got an idea that would allow both random mutations and programmers to utilize these enzyme strings.

So, let's say we've got a chart of some sort. In this chart, we'll have various base molecules aligned vertically. Lines could join these elements, and some other molecules could be added along the way. In theory, a single base element could have many branches.

So, the value should look something like this:
0120214
The first two digits would represent the base molecule (00 being the top molecule, 01 being the next one down on the chart, and so on. This could be truncated to one digit if we decide that we won't need more than ten base molecules.) Then, the next digit after that would represent the next "fork" on that reaction path. In this case it would be the third fork (0, 1, 2), then the first fork, the third, the second, and the fith.

Let's suppose that that last digit (the four) goes to a spot with only three possible forks. If that were the case, then that five (or any value from zero to nine) would be moded by the number of forks (no +1, since it starts at zero).

Now, let's suppose that one reaction path, for instance, only has one fork. This would mean that everything after the first two became "junk" enzyme data. This could mutate on its own and if an earlier fork changed, then this section could become useful.

Mutations could just randomly add or subtract one or two to one of the digits, with an higher likelihood for later digits (since that would change the overall reaction less).

In this system, humans could easily program an enzyme they wanted, while mutational algorithims would work. Furthermore, this is just the bit code (not really bits, but you get what I mean), that would determine what type of reaction it is, meaning that efficiency and whether or not DNA can effect it are somewhat seperate issues.

This system should be exstensible, seeing as how you could add additional molecules and reactions without breaking most bots (although mutants that relied on the moding might be broken).

Notes:
I'm really not sure how to model efficiency on these. Perhaps a seperate bit pattern could be affixed onto this for that.
Each enzyme in this manner would represent one full reaction.
The whole value could be made as long as the longest reaction, I guess.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Enzyme System
« Reply #1 on: December 31, 2007, 12:27:45 AM »
When I was toying with an enzyme system, I found a clever paper that describes a very simple system.  Each substance is made up of various groups, like CO3, H, etc. in organic chemistry.  Substances either have a single instance of a group or they don't.  So they can be represented as a binary string of six to eight digits long.  Something like 01000001, representing a substance with 2 groups.  The substance 00000000 is a substance too, representing something like a molecule with a base but no sub groups.

Substances could be transformed in to other substances by adding or removing groups.  Enzymes would take two substances, move a group on one to the other, and release the two substances back.  Substances could be made more or less specific by changing the profile of the substances they're looking for, with increased efficiency as the specificity increases.

Then, each substance (anywhere from 2^6 - 2^8, ie: anywhere from 64 to 256 of them) is arbitrarily assigned physical properties, like free nrg, shell, slime, muscle, etc.  This creates a complex (and very large) web of possible chemical pathways.  All substances in Darwinbots would be replaced by these chemical substances.  A bot's shell would just be the sum of all the shell properties for all the substances in the bot.  The only substance that exists right now that would remain is nrg.

A bot would gain or lose the nrg difference of a chemical reaction in an enzyme.  So to gain nrg to make a substance with lots of shell, a bot would need to convert a substance with high free nrg into a substance with low free nrg.

The resulting pathways would bear a strong resemblance to actual biochemical pathways.  Cycles, like the Krebs cycle in biology, would appear as a matter of course.  Bots with different biochemistries could exist in the same world, more or less oblivious of each other since they didn't directly compete for the same resources.

Veggies would simply be bots that can take a substance with low free nrg and convert it in to a substance with high free nrg using light.

In the end, however, I decided that, while elegant, this is a feature in search of a need.  It doesn't directly add anything to the simulation, just provides an abstract framework that all existing features can be tied in to.  Also, it's not at all natural for human programmers to work with.  You would have to constantly consult a lookup chart to determine what sort of biochemical pathways you wanted to create.

So I don't have any plans of implementing it in Darwinbots, and I doubt Eric does.  But it's a good, strong system in general.  I think it could work very well as the basis for another Alife sim.  Something that's a little more black box than Darwinbots is.  If you designed bots with enzyme receptors on their actions, like an enzyme receptor on the movement mechanism, so every time it converts substance 00100111 to 00100101 it fires, you could build alife organisms that really are abstractions of real life.  That's very close to the way real life works.

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Enzyme System
« Reply #2 on: January 04, 2008, 04:22:35 AM »
Quote
So I don't have any plans of implementing it in Darwinbots, and I doubt Eric does.

I'm sorry to hear that, because this sounds thrilling! Maybe you could at least think about it for later, because you or Eric are probably the guys to do it, seeing as all other alife programs are so far behind.
The internet is corrupt and controlled by criminally minded people.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Enzyme System
« Reply #3 on: January 04, 2008, 12:11:46 PM »
I have no plans to implement this.  My reasons are a bit different and basically go like this: Every additional artifical layer of abstraction we place on top of the "native" digital evironment limits the set of unexpected ineractions and thus moves us further away IMHO from ever seeing truly emergent complexity and digital life.

I would be much more interested in tearing down much of our exiting house of cards w.r.t. "artifical" substances, resources and means of interaction and replacing them with more "natural" mechanims.  What does that mean?  Well, things like shell and poision and body are just stuff we made up to provide bots a means to interact and compete in the artifical environment in which bot phenotypes inhabit.  Their "artifical" in my sense of the term in that they have little to do with the underlying ditigal genetype and more importantly, little to do with what IMHO should (evenutally) be a "more native" digital phenotype divorced from any noption of an artificaly imposed physics/graphics environment (the sole purpose of which is to provide humans something to look at which our brains are good at recognizing, because our brains evolved in a non-digital 3D world).  Things like having a body, colliding, friction, gravity, movement in a 2D or 3D space, etc. are intuitive to us, but they are artifical in the most "native" digitial environment one might imagine digital organimsms inhabiting.  An enzyme system as described above would IMHO just be more of the same.

Note that I am not saying here that there should not be separation of geneotype and phenotype, just that our goal (or rather, my goal - it may in the end not be a DB goal) should be to provide the phenotype as native an environment as possible so that interactions between organimsms need not necessitate deliberate programming to enable.  

I'll stop short of specific suggestions of what I would consider more native means of interaction here, but generally, they might include things like more/better direct DNA inspection/manipulation mechanisms (such as sequence-targeting viruses) or perhaps a parallel environmental space in which genotypes reside and can interact directly.  Providing a common address space in which all DNA resides and can be accessed for example.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Enzyme System
« Reply #4 on: January 05, 2008, 04:54:56 AM »
Quote from: EricL
I would be much more interested in tearing down much of our exiting house of cards w.r.t. "artifical" substances, resources and means of interaction and replacing them with more "natural" mechanims.  What does that mean?  Well, things like shell and poision and body are just stuff we made up to provide bots a means to interact and compete in the artifical environment in which bot phenotypes inhabit.  Their "artifical" in my sense of the term in that they have little to do with the underlying ditigal genetype and more importantly, little to do with what IMHO should (evenutally) be a "more native" digital phenotype divorced from any noption of an artificaly imposed physics/graphics environment (the sole purpose of which is to provide humans something to look at which our brains are good at recognizing, because our brains evolved in a non-digital 3D world).  Things like having a body, colliding, friction, gravity, movement in a 2D or 3D space, etc. are intuitive to us, but they are artifical in the most "native" digitial environment one might imagine digital organimsms inhabiting.  An enzyme system as described above would IMHO just be more of the same.

I strongly disagree on three points here.

1.  An enzyme system is actually a step towards removing "artifical" features.  It does not take a huge stretch of imagination to imagine the interactions between substances and enzymes as forming the basis for things like motion.  The system I suggest only takes in to account differences in free nrg as the "core" principle.  Other properties are tacked on.  But if you expand the system to create a rule set that described overall shape as an intrinsic property of the substances, you could build motors in the chemistry.  Machinations that take one type of substance and convert it in to another of a different shape.  If those substances were connected in a chain, suddenly you have a linear actuator, without explicitly programming a linear actuator.

It would still be a far cry from actual biochemistry, but it's certainly a movement in that direction.  So I definately think this would make a good basis for an alife program.  But the program would need to be built from the ground up based on that principle to work properly.

2.  Darwinbots follows a different geneology of Alife programs, one that I think is more promising.  What you're suggesting sounds like something following along the lines of Core Wars, Avida, etc.  Raw processes native to the computer as a whole.  Basically trying to construct life native not to a software mediator, but to the actual hardware computers are made of.

But I strongly believe this line is a dead end.  For all sorts of reasons I won't elaborate on too much, but in a nutshell raw hardware is way too hostile to anything like life.  It's like trying to evolve life in the cold, irradiated nether regions of outer space.  You need a medium for life to evolve in, wether that medium is a software environment or a tidal pool of thick, radiation absorbing water.  From there it could theoretically be possible for some sort of existing and clever life to "escape" from its medium, maybe by packaging its medium to itself (like a space ship), but I strongly doubt any life will truly be able to exist outside of its protective medium without some Intelligent Creator.

3.  Even assuming for a moment that alife can exist outside of its protective medium, you're still programing new features.  To make a printer, for example, someone still needs to craft a way to convert electrical impulses in to printed paper.  Or to implement multithreading, someone still needs to program a software interface.  All you'd be doing is moving the responsibility from the alife creator to the hardware manufacturers.

The fact is that something needs to craft the base ruleset within which life is to exist.  Laws of physics on the terrestrial level do not suddenly get new addendums.  Chemical relationships are just nearly infinite, so to our finite mind it seems like life is coming up with new things over the eons.  In reality chemical relationships stem from a few, finite and simple rules.  Those rules could just as easily be crafted by a person as arise naturally over the evolution of the universe.

The trick, you see, is to arrive at a ruleset that creates a huge solution space based on simple rules.  Raw hardware is such a ruleset, certainly.  One has only to look at the crazy assortment of programs available.  And things can run very fast.  Many tasks can be done much faster than any biological equivelant.  But it's not the most amenable to trial and error.  Another ruleset is biochemistry.  It's very robust to trial and error, but it's very hard to simulate on a computer.  I think it's in a middle ground between the two that rich alife could be born.
« Last Edit: January 05, 2008, 05:01:33 AM by Numsgil »