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

 

Copyright Mike Beedle, 2001

 

1. Living Metaphor – as self-organizing autocatalytic low-level agent processes

 

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.

 

2. Agents?

 

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.,

 

 

3. Homeostasis

 

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.

 

 

4. What are cellular processes?

 

There are some interesting questions regarding systems:

 

*  Autocatalytic chains

*  Mitosis

*  Meiosis

*  Glycolysis

*  Osmosis

*  Protein generation

*  Cell differentiation

*  Etc.

 

 

5. Organic Growth and Morphogenesis

 

 

 

 

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.