Mike Beedle’s position paper for the upcoming Feyerabend workshop at the Santa Fe Institute in
April of 2002.
Copyright Mike Beedle, 2001

I am a
believer that life started as a set of self-replicating molecule chains that
did not require cells or even bodies to exist.
And that cells, and even organisms simply serve as useful shells for
these self-replicating molecule chains.
As with living systems, let's say that a
"biological" computing system must be composed of:
autocatalytic processes
cellular processes
protein and protein interactions
organelles
etc.
I am interested in
trying to replicate the bottom of it all:
the autocatalytic processes that emerge into the living. Life, in my view, originates with the
self-replicating and autocatalytic processes -- everything else, in my view, is
frosting in the cake. To nail a true
biological metaphor of computing, I think this is the core of it. But again, I am open to accept other
positions.

In the computing
case, probably the closest model in which we can simulate this behavior is with
communities of software agents, where the equivalence of
agent == organelle + proteins
holds. Then
agents communities would form the equivalent of self-reproducing autocatalytic
chains and cell processes like glycolysis, meiosis, or mitosis. It is not a requirement for an
agent to be "alive". Quite on
the contrary, most agents are not "alive". Also, dumb agents are no harm, so in theory, even things like
amino acids can be considered "agents". This is specially true for the purposes of a conceptual
model. The question really is: is it
worth our while to think of them as agents? or even: is it a "useful"
model to us? Basically, it is quite arbitrary what one decides to make an agent
or not, as long as their behavioral rules are respected.
I think of a
cell as a multi-agent of organelles and proteins, that takes inputs from the
exterior, and processes inputs in a certain way given:
1) The nature of the incoming
requests: proteins, sugars, etc.; and
2) The system of proteins already
present within the cell.
Proteins, in my
view, are the lowest level intelligent agents, that typically do one, or at
most two things: enzymes, movers, transporters, supporters, regulators,
defenders, communicators, etc.
However, the
total work queue of the cell is given by both internal and external
requirements, because the cell also has to satisfy internal requests i.e. like
mitosis.
On the other
hand, not all cellular processes are "requirements" to do something;
for example, a process like glycolysis is more like eating or breathing.
It is also
interesting to think as the cell as a collection of concurrent processes,
supported by the agents, doing work by processing substances, following
instructions, building queues, prioritizing tasks through enzymes, etc.
From that
perspective the processes to be executed by the cell are mainly the
concentrations of proteins distributed throughout the cell parts: membrane,
wall, cytoplasm, organelles, nucleus, etc.; the generator of these processes
are then the ribosmes; and the generator of the generator of processes is the
DNA -- a simple, yet very effective meta-architecture.
The cell at this
level reminds me a bit of a MOP and the techniques now know as Generative
Programming: the agents are generated by a meta-process.
However, these
agents must posses within themselves certain capabilities, like:
sensing messages from other agents or
the environment,
translating these messages or
measurements,
filtering the messages or measurements,
interpreting messages and determining
actions,
queuing actions by prioritizing actions
according to plans,
generating beliefs,
storing beliefs,
etc.
and the
abilities of reproduction, differentiation, mutation and/or mimicry.
And the agents would
also need to have very singular characteristics in their relationship with
other agents, like:
- the agents _must_ play balanced cooperative
games -- statistical iterated "prisoner dilemmas" of sorts, that
would allow them to seek their survival as well as the survival of the agent
communities: like tissues, organs, and organs systems. Through this cooperation the agents may form
symbiotic communities, coevolving with each other
- the agents would interact with each other
through agent communication languages, running on computing protocols, that
allow them to share knowledge and information across the equivalent computing
tissues, organs, and organ systems.
- the agents would have the ability to sense
and share knowledge about the overall well being of each community, selected
features of other communities, and even
features of the whole i.e. distributing the sensor/effector mechanisms of the
closed system.
- the agents must contain shared and
non-shared ontologies i.e. the equivalent of DNA, RNA and the brain.
- the agent communities at any level may have
a basic set of given contingent plans in case "system faults" and
also be provided with the ability to learn from errors
- each agent community would be
semi-independent and would self-organize according its internal control systems
etc., etc., etc.,
For a computing system to be
"semi-alive" it must achieve homeostasis: the maintenance of a stable
internal environment.
The key is
that the system is able to stay in a stable state. This state can be achieved through feedback. If transitions are needed or if they are
occurring, the system must be able to reconfigure itself according to known
patterns, perhaps even according to specific template, into configurations that
can accommodate cycles (among the states of the system).
I think it
is fair to say that, concurrency, feedback, templates, patterns and cycles are
the way of Life -- just think about DNA, xRNA, ribosomes, and proteins for
inspiration.
This stability depends on both extrinsic
and intrinsic control systems.
Extrinsic control systems depend on external input i.e. like the
endocrine and nervous systems. Internal
control systems are internal to the organs.
In the case of computing systems this external input may come from users
or other systems.
Most of the control systems depend mostly
on negative feedback i.e. they measure states and react inversely to the rate
of change to compensate i.e. the agent communities must be able to make
collective measurements and take action upon feedback received.
In computer systems this may as trivial
as adding instances of application servers to compensate for high demand i.e.
load balancing; or as complicated as determining controlling the state of a
complex system through a blackboard that provides solutions.
There are some interesting questions
regarding systems:
Autocatalytic chains
Mitosis
Meiosis
Glycolysis
Osmosis
Protein generation
Cell differentiation
Etc.
|
|
|
|
|
What it would much harder to simulate
in a computing system is morphogenesis - for that the agents would not only
have to reproduce and differentiate, but they would have to follow a directed
differentiation process dictated by a pattern language kept in every agent
(ala TTWOB Ch 19). As the organism
grows there would be sensors that would determine the existence of a context. This would kick off a differentiation rule
- a pattern, that transforms either agents, or agent communities into new
forms. This resulting context creates
a new context from where other more differentiated forms differentiate,
evolve, specialize, and loosing global symmetry. |
|
|
|