computational autopoiesis: the original algorithm

42

Upload: vanbao

Post on 29-Dec-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computational Autopoiesis: The Original Algorithm

Computational Autopoiesis:The Original AlgorithmBarry [email protected] 1997Santa Fe InstituteWorking Paper Number: 97-01-001Dublin City UniversitySchool of Electronic EngineeringTechnical Report Number: bmcm9701

Page 2: Computational Autopoiesis: The Original Algorithm

AbstractThis report presents a detailed review and re-presentation of the algorithm for (com-putational) realisation of autopoiesis, originally presented by Varela, Maturana &Uribe (1974). The review is from the perspective of one seeking to re-implement thisalgorithm. It arises from an on-going project to develop such a re-implementationusing the Swarm simulation system.1 The motivation for such re-implementation is�rstly to critically re-examine the phenomenology generated by this model chemistry,and secondly to use it as a basis for exploring more complex systems. The algorithm is�rst reviewed and annotated for internal consistency and clarity; it is then separatelyreviewed for consistency with the experimental results which originally accompaniedit.A number of signi�cant discrepancies are discussed. By kind permission of FranciscoVarela, this report also includes, as an Appendix, some previously unpublished doc-umentation and source code (in FORTRAN IV) associated with the original model. Bycritical consideration of the experimental results in conjunction with this code, animportant|perhaps crucial|interaction, not included in any previous descriptionof the model, has been re-discovered. This interaction is presented and discussedbrie y.Keywords: Autopoiesis, Arti�cial Life, Arti�cial Chemistry, Origin of Life.1http://www.santafe.edu/projects/swarm

Page 3: Computational Autopoiesis: The Original Algorithm

Contents1 Introduction 22 Overview of the ModelChemistry 23 Overview of AnticipatedPhenomenology 34 Internal Algorithm Review 44.1 Conventions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 44.2 Algorithm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 55 External Review 196 Conclusion 25References 27Acknowledgments 27Revision History 27Author Contact Information 28Copyright 28Retrieval 28A Appendix: PROTOBIO 29A.1 Spanish Text : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 29A.2 English Translation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31A.3 FORTRAN IV Program Listings : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 331

Page 4: Computational Autopoiesis: The Original Algorithm

1 IntroductionAutopoiesis is a term coined by the biologists Hum-berto Maturana and Francisco Varela to denote aform of system organisation where the system asa whole produces and replaces its own compon-ents, and discriminates itself from its surroundingenvironment, on an on-going basis (Maturana &Varela 1973). The concept was inspired by the ab-stract organisation of relatively simple biological or-ganisms, such as bacteria. It is intended to capturethe essential organisational distinction between suchan organism and a mere un-organised aggregation ofthe same molecular components.Note that an autopoietic system is, by de�ni-tion, collectively autocatalytic; but it di�ers from,or goes beyond, simply being collectively autocata-lytic in that it must establish and maintain a bound-ary which contains and separates the reactions com-prising the autopoietic system from the rest of itsenvironment.In an e�ort to present this concept in the mostclear and concrete manner possible, Varela et al. de-veloped a \minimal" abstract or model chemistrythat would be capable of supporting autopoietic or-ganisation. Furthermore, they used this as a basisfor developing a computer simulation (realisation?)of this model chemistry, in which autopoietic organ-isations would be expected to spontaneously emergeand persist (Varela et al. 1974). The computer im-plementation thus served to test the claim that thisparticular model chemistry is indeed su�cient tosupport autopoietic organisation. More generally,such computerised models are open to detailed ob-servation and experiment in ways that are currentlyimpractical for real biological organisms.Varela et al. (1974) presented a detailed algorithmfor the computer implementation of their modelchemistry. The current report presents a critical re-presentation and review of that algorithm, from thepoint of view of internal consistency and complete-ness, and also external consistency with the experi-mental runs illustrated in the original paper. A num-ber of problems regarding the detailed interpretationof the algorithmwill be identi�ed. As far as possible,I shall also suggest \reasonable" resolutions for suchproblems, which may be helpful to anyone intendingto re-implement the model.I am greatly indebted to Francisco Varela for mak-ing available previously unpublished documentationand a source code listing associated with the ori-ginal model, and for giving his permission to includethese as an Appendix to this report. These materi-als are somewhat fragmentary, and it is not possible

to be sure exactly how they relate to the version ofthe model actually presented in (Varela et al. 1974).Nonetheless, they provide a very important source ofadditional information, and allow some of the mostdi�cult problems of interpretation of the originalpublished description to be resolved. This generaldescription of the model referred to it as PROTOBIO.The source code listing apparently comes from onesingle speci�c version or run of the model, labeledEXP29.FOR.Note that this report will not attempt any detailedreview of the actual phenomenology to be expectedfrom this class of model|that is deferred for a sub-sequent companion report.Fragments from the original paper (Varela et al.1974) will be quoted verbatim here, where appropri-ate. However, to fully follow the detailed discussionin the current report it will generally be helpful tohave a copy of that original paper to hand, for refer-ence purposes.2 Overview of the ModelChemistryThe model consists of a two dimensional space, witha discrete square lattice; each lattice position iseither empty (referred to as a \hole") or contains one\particle"2 of one of the de�ned chemical species or\elements".3 The size of the space is not explicitlyrestricted or stipulated, but the illustrated exampleimplementation in (Varela et al. 1974) is sized at10�10. On the other hand, EXP29.FOR implementeda 30�30 space (albeit, this is largely parameterised,and would not be too di�cult to change). Thus, itmay be that the diagrams of (Varela et al. 1974)show only a part of a larger, simulated, space.Behaviours at the edges of the space are not spe-ci�ed in detail, but it seems that the edges are to beregarded as hard limits or boundaries to the space|in the sense that particles cannot move through oracross the edges. This would be consistent with thebehaviour implemented in EXP29.FOR.The particles engage in dynamic interactionsbased (roughly) on discrete timesteps. On eachtimestep, particles may move and/or engage in a2Varela et al. (1974) uses the term \component" ratherthan \particle"; I prefer the latter term, because at any giventime these entities may or may not be \components" of ahigher level (autopoietic?) structure. Calling them \compon-ents" seems to me to obscure or prejudge this issue of theformation of higher level structures.3Formally, \holes" could be equally regarded as another\element"; in which case we would say that every lattice po-sition is always occupied by exactly one particle.2

Page 5: Computational Autopoiesis: The Original Algorithm

reaction.4There are three distinct chemical species:Substrate: SCatalyst: KLink: LThese participate in three distinct reactions:1. Composition: K+ 2S! K+ LIn essence, this is a reaction in which twoparticles of S combine to produce one particleof L. However, the reaction is speci�ed to occuronly with the mediation of catalyst, K. The reac-tion will only occur when two particles of sub-strate are directly adjacent both to each otherand a particle of catalyst. The catalyst particleis una�ected by the reaction (hence its name).2. Disintegration: L! 2SThis is a reverse reaction to composition. It oc-curs spontaneously, with a �xed probability perlink, per timestep. It is independent of whetherthe link is bonded or not (see reaction 3).3. Concatenation (Bonding): L particles can bondor polymerise into inde�nitely long chains.5Each L can form at most two bonds. This is aspontaneous reaction, relying only on physicaladjacency of two links each of which has eitherzero or one bond already. There is no reverse,\unbonding", reaction per se. Such chains willbe broken down again only if or when con-stituent links spontaneously disintegrate back tosubstrate (when any associated bonds will alsodecay).S, K and free (unbonded) L particles move es-sentially in random two-dimensional walks|exceptto the extent that other particles get in the way.This yields something approximating a well-stirredmixture. However, L particles which are bonded(whether single or doubly) do not move at all.6 It4Again, formally, particle movement might be regarded asa special degenerate kind of \reaction", in which all reactantsare conserved.5It might have been preferable to term links \monomers".6This is a particularly counter-intuitive, or unnatural as-pect of this model; I speculate that this limitation was stipu-lated primarily in order to simplify the computer realisationof the model.

is speci�ed that S particles can permeate throughchains of bonded L particles; but L and K particlescannot.This model \chemistry" is, of course, highly ab-stract and schematised. Speci�cally, space and timeare both discrete; motion is limited to randomwalks;there are no substantive analogs of newtonian mech-anics, such as mass, force, energy etc.3 Overview of AnticipatedPhenomenologyThe current report is explicitly not concerned withthe phenomenology which this model chemistry maygive rise to. However, in order to put the modelproperly in context, I will brie y summarise the sig-ni�cant phenomenon which might be anticipated.First note that the given chemistry might plaus-ibly allow the formation (spontaneously or other-wise) of \cellular" structures, consisting of one ormore catalyst particles contained within a closedchain of L particles. The boundary or membraneof this structure would be permeable to S; thus, suchparticles could continue to permeate into the struc-ture. Under the action of the K particles, these wouldthen react to form L particles which would also betrapped within the membrane. Thus, a high con-centration of L particles could be built up. On anon-going basis, the membrane will rupture, as con-stituent L particles disintegrate. However, becauseof the high concentration of L particles already pro-duced within the membrane, it may be expected thatone or more of these will di�use to the rupture site,and allow a repair (possibly in a di�erent conform-ation), before the K particle can escape. In this way,such a structure would continuously produce or re-new itself, while also discriminating itself from itsenvironment: it would be a (minimal) example ofautopoietic organisation.Incidentally, it is not apparent from this why thecomposition reaction was speci�ed to require two Sparticles to generate a single L particle. Granted,if the space is initially �lled with S particles plusa small number of K particles, it may be useful togenerate some holes as a by product of composition,so as to make motion of particles generally easier;but it would seem equally easy to specify that theinitial state of the space already contains a \reason-able" concentration of holes, and simplify the com-position reaction to generate one L particle from oneS particle. It certainly seems to me that there isnothing in the phenomenology outlined above that3

Page 6: Computational Autopoiesis: The Original Algorithm

would rely on this 2:1 ratio in the composition reac-tion.4 Internal Algorithm ReviewThis section reviews and annotates the algorithm of(Varela et al. 1974) for internal consistency, com-pleteness, and clarity. In keeping with the originalpresentation, the discussion is divided into an initial,qualitative, overview, under the heading of \con-ventions", followed by the more formal algorithmproper.4.1 ConventionsThis section of (Varela et al. 1974) �rst de�nes al-phanumeric codes for the distinct chemical speciesor \elements" in the model. These are the samecodes already introduced above, with the additionof a separate code for bonded links (BL); However,notwithstanding this, the term \link", denoted L,is still usually explicitly quali�ed as either \free",\singly bonded" or \doubly bonded". In fact, thecode BL is used only twice by Varela et al. in the sub-sequent discussion and de�nition of the algorithm.Since bonded links are otherwise generally regardedas simply link particles with bonds (rather than an-other distinct kind of element) I will generally dis-pense with the BL code.Next, the overall structure of the algorithm is de-scribed as consisting of two separate phases, the �rstconcerned with movement, the second with the vari-ous reactions. A �nal comment here is that \: : : [t]herules by which L components bond to form a bound-ary complete the algorithm"; this is a somewhat un-fortunate phrasing because it prejudges the issue ofwhether bonding will actually lead to closed chains(\boundaries").The discrete space, with a rectangular co-ordinatesystem, or square lattice, is described next. It is spe-ci�ed that the initial state of the space should containone or more K particles, but otherwise be completely�lled by S. It is unclear to me why this restriction isimposed; in any case, one would expect any compre-hensive computer implementation to allow arbitraryinitialisation of the particles in the space (and, in-deed, subsequent intervention and manipulation ofit).Both movement and reactions depend, in part,on the relative spatial positions of the interact-ing particles; so a convention for labeling relative(\neighborhood") positions in the space is intro-duced next. Figure 1 is a redrawn version of thisscheme (drawn in terms of lattice cells rather than

01

2

3

45

6 7

8

1’

2’

3’

4’Figure 1: Numbering of Neighbor Positionslattice points as in the original paper). Notice, inparticular, that the neighborhood extends two posi-tions away from the central cell, but only in the or-thogonal (not diagonal) directions. This is an essen-tial device to support S particles permeating throughchains of L.The only comment about behaviour at the edgesof the space occurs parenthetically in the discussionof this neighborhood diagram:: : :of course, near the array boundaries,not all of the neighbor locations identi�edin the �gure will actually be found: : :I interpret this to mean, as earlier indicated, thatthe edges are to be regarded as hard limits to thespace|no interactions or motions can operate bey-ond these edges. This is in contrast to, say, makingthe space e�ectively toroidal, so that cells on theEast edge are considered adjacent to the West edge,and similarly for the North and South edges. I sug-gest that the latter arrangement might actually beconceptually preferable, because the edges otherwiseintroduce an asymmetry into the space, which maygive rise to artifact phenomena.There follows a qualitative discussion of motion inthe model. This is expressed in terms of the particlesbeing \ranked" by \mass", where \mass" here de-notes which kinds of particles may displace whichothers. This is, at best, a relatively weak analog ofnewtonian mass, and there are no analogs of force,momentum, energy etc. All motion in the space isfundamentally a form of simple di�usion or randomwalk.Roughly speaking then, the ranking by increasingmass is in the order S, (free) L, K; so K particles candisplace, or push away, free L and S particles, freeL particles can displace S particles, and S particles4

Page 7: Computational Autopoiesis: The Original Algorithm

can only move into holes. Bonded L particles cannotmove at all. S may move through a single thicknesschain of bonded L particles, but free L and K particlescannot.The algorithm proper eshes out these motionrules more precisely. However, I should note herethat this idea of ranking by \mass", with the pos-sibility of \displacement", does complicate the al-gorithm very substantially and yet seems to meto contribute little if anything to the utility of themodel. The rules on permeability of chains of Lparticles are clearly crucial to the possibility ofautopoietic organisation being realised{but that isa completely separate issue from whether certainparticles are ranked by \mass" or can \displace"other particles. If the idea was to implement vary-ing degrees of mobility for the di�erent kinds ofparticles, I suggest this could have been more simplyachieved by qualifying the motions by a probability(of \attempted" motion), per particle, per timestep.In any case, I conjecture that the relatively complic-ated model of motion actually proposed by Varela etal. does not signi�cantly a�ect the capacity for themodel to support autopoietic phenomena.Next comes a qualitative discussion of the pro-duction reaction, specifying that the two S particlesmust be immediately adjacent to each other and to aK particle. Thus, taking the K to be in the centre of aneighborhood (position 0 of �gure 1), the S particlesmight be in relative positions 2 and 7, or 5 and 4,but not 1 and 3, etc. It is explicitly stipulated herethat the reaction rate is limited to, at most, produc-tion of one L per K per timestep. If there are multiplepairs of S particles which could react under the ac-tion of a given K in one timestep, then one pair isto be selected at \random". Since the productionreaction consumes two S particles to produce one Lparticle, it also results, in e�ect, in production ofan additional hole in the space|into which particlesmay subsequently di�use.The �nal paragraph of this section is concernedwith the disintegration reaction and will be quotedin full:The disintegration of L's is applied as auniform probability of disintegration pertimestep for each L whether bonded orfree, which results in a proportionalitybetween failure rate and size of a chainstructure. The sharply limited rate of \re-pair", which depends upon random motionof S's through the membrane, random pro-duction of new L's and random motion tothe repair site, makes the disintegration avery powerful controller of the maximum

size for a viable boundary structure. A dis-integration probability of less than about.01 per timestep is required in order toachieve any viable structure at all (thesemust contain roughly ten L units at leastto form a closed structure with any spaceinside).This introduces the only explicitly speci�ed para-meter of the model (subsequently labeled Pd), be-ing the probability of disintegration per L particle(bonded or otherwise) per timestep. The implica-tion is that this is the only behaviour or interac-tion in the model which will be characterised bysuch a rate parameter; one must presume, therefore,that the other dynamics are intended to proceed atthe \maximum" rate (consistent with any explicitlystated constraints or enabling conditions). Thus, allparticles will move whenever they can; S particleswill react (under the action of K) whenever they can;L particles will form additional bonds whenever theycan.It is clear that the model could be easily gener-alised by introducing new rate parameters (e�ect-ively, probabilities of the action, per site, per unittime), analogous to the disintegration rate para-meter. Setting these parameters to 1 would thenrecover precisely the model explicitly speci�ed byVarela et al. (1974). The \mobility" probabilitiesmentioned earlier are speci�c examples of this. I sug-gest, therefore, that a computer implementation ofthe model should support such additional paramet-ers, thus allowing a wider range of models, and cor-responding phenomenology, to be explored. Thesepotential additional parameters will be elaboratedbelow in the detailed discussion of the algorithmproper.The �nal point to be made here is that whileVarela et al. stipulate that Pd should be less than0.01 (which would yield a composite probability ofdisintegration for a 10 particle L chain of just un-der 0.1, or an expected lifetime, for the chain, ofabout 10 timesteps), they do not say precisely howmuch less. Clearly, the phenomenology of the modelwill alter as this parameter is made smaller; thus,it would have been useful to specify what precisevalue(s) were used in the particular experiments re-ported in the paper.4.2 AlgorithmIn this section I reproduce the original algorithmfrom (Varela et al. 1974), and intersperse comment-ary and discussion. The original algorithm will be5

Page 8: Computational Autopoiesis: The Original Algorithm

presented verbatim in italic font, with the comment-ary in normal, roman, font. But �rst, some com-ments on the overall layout and presentation of thealgorithm.The original presentation of the algorithm is asan hierarchical list. At the topmost level there are 7sections, numbered 1 to 7. Within these, there aresubsections, numbered, for example, 1.1, 1.2, 1.3 etc.Some of these subsections have further subsidiarysubsubsections, numbered, for example, 4.21, 4.22etc.A simplistic interpretation of this structure is thatthis complete set of steps should be sequentially ex-ecuted to implement one timestep of the model. Inpractise, this is only very roughly the case. It ap-pears in fact that one timestep consists of the sequen-tial execution only of top-level sections 1 through5; the top level sections labeled 6 (Bonding) and 7(Rebond) are to be regarded only as sub-procedureswhich may be invoked at various points in sections 1through 5. Indeed, there are other, lower-level, frag-ments of the algorithmwhich also seem to be re-usedin this manner.Further, while the subsections and subsubsectionsmight be assumed to be sequential re�nements ofthe containing section or subsection, in practise theirstatus is slightly more complex than this. In partic-ular, they sometimes function as restrictions or ad-justments of what has been speci�ed at the higherlevel, to suit certain speci�ed circumstances. Myinterpretation in this sort of case is that the higherorder action or rule is to be carried out unless over-ridden by the more detailed subsidiary section.With that preamble, I now reproduce the al-gorithm itself, with annotations and discussion. Asmall number of purely typographical errors in theoriginal have been corrected without comment. Theoriginal used only one level of indentation; I haveintroduced additional indentation for every sublevel.1. Motion, �rst stepThis top-level step essentially scans each holein the space, and permits each one to swap pos-ition with an immediately adjacent S, or withan S which can be reached through a singlethickness of bonded L. As such, one might thinkthat this step would be formally equivalent toscanning the S particles, and potentially mov-ing them into neighboring holes. Furthermore,the latter would seem like a more consistentpresentation, since the subsequent two top-levelsteps will be concerned with motion of free Land K particles respectively. However, as weshall see, it turns out that there are built in

asymmetries between holes and S particles inthis step, which prevent such an equivalent re-formulation.1.1. Form a list of the coordinates of all holeshi.The notational convention here seems tobe that h denotes the list of holes, and hiwill then denote a typical member of thelist.Presumably, an implementation may, fore�ciency reasons, opt to maintain thislist, rather than regenerate it afresh oneach iteration.It is not stipulated what the ordering ofthis list should be. This is a signi�cantpoint, because subsequent substeps willprocess the members of the list in order;thus, regularities in the ordering of thelist may possibly give rise to subtle unex-pected (and unwanted) regularities in themovements of holes. It would therefore bepreferable to stipulate that, whatever theordering of the list as such, the subsequentprocessing steps should select elements ina random order, without repetition, untilthe list is exhausted (or, equivalently, thatthe list should be randomly permuted, oneach timestep, before processing).1.2. For each hi, make a random selection,ni, in the range 1 through 4, specifying aneighboring location.As previously outlined, a generalisation ofthe model would introduce a prior substephere, making motion of any given hole (orS particle?) occur only with some prob-ability, say Phm. Making Phm equal to1 would then recover the exact algorithmspeci�ed by Varela et al.I presume that in this step, and in all sim-ilar subsequent cases, the intention is touse a uniform probability function over thespeci�ed event set.The numbers 1 through 4 refer here to theneighborhood diagram (�gure 1). Thusthe selection is of an immediately neigh-boring position in one of the four ortho-gonal directions. The diagonally neigh-boring positions, 5 through 8, are not tobe allowed or investigated. The reasonfor this is presumably that, as we shallsee below, a subsequent re�nement of thisstep will potentially investigate the posi-tions one unit further away (the positions6

Page 9: Computational Autopoiesis: The Original Algorithm

labeled 1' through 4'); such a \two unit"distant position, and especially the posi-tion \in between", will be unique in anyof the orthogonal directions, but wouldbe ambiguous for the diagonal directions.For simplicity of expressing the algorithmthen, and without any serious loss of gen-erality in the expected phenomenology, itis probably best just to restrict attentionto the orthogonal directions.1.3. For each hi in turn, where possible, moveoccupant of selected neighboring location inhi.The way the algorithm has been organ-ised here suggests that the intention is to�rst iterate over the entire list, selectinga candidate movement direction (step 1.2)and then, separately, iterate over the listagain to actually make each move (step1.3). However, it seems to me that this willbe formally equivalent to iterating over thelist just once, in each case picking a direc-tion and then making the move before mov-ing on to consider the next element. Thiswould also be somewhat more e�cient, soan implementation may presumably opt toprefer this approach.The key phrase in this step seems to be\where possible". Two subsidiary steps orrules are now presented (1.31 and 1.32);since both of these stipulate conditions inwhich the movement should not be carriedout (is not \possible"), the intended inter-pretation seems to be that the motion isallowed except where 1.31 or 1.32 speci�c-ally disallow it.7This is signi�cant because (as we shall see)it implies that the movement will be car-ried out if the selected position containsany of an S, free L, or K particle. For thatreason, this whole step is not symmetricalwith respect to holes and S particles, andactually cannot be equivalently expressedin terms of S particles, as earlier sugges-ted. However, since there are separate sub-sequent top-level steps (2 and 3) concernedexplicitly with the motion of free L and Kparticles, it is doubtful whether the pos-sibility of moving those particles in thisstep adds any signi�cant functionality tothe model. Further, by forcing the current7That is, it seems that 1.31 and 1.32 are not to be in-terpreted as a sequential re�nements of 1.3, but rather asconcurrent quali�cations or constraints on it.

top-level step to be expressed in terms ofhole rather than S particle movement, thisstipulation obscures the overall operationof the algorithm and introduces inconsist-ency with the expression of the other move-ment steps. Therefore, I suggest that itwould have been preferable to explicitly ex-clude the possibility of free L or K particlemovement in this step.81.31. If the neighbor is a hole or lies out-side the space, take no action.If the neighbor position holds a holethen exchanging the particles wouldhave no net e�ect on the overall con-�guration of the space. However, itis still good to make it explicit thatthese holes should not be swapped,as this will have some e�ect on thesubsequent behaviour of the model.This is because, although the over-all con�guration of the space wouldbe unchanged by this swap, the otherhole may not yet have been processedthrough step 1|so moving it nowwould alter how it will be processed.Granted, it is doubtful whether thiswould have any substantial e�ect onthe qualitative behaviour of the model;but it is surely simpler to simply ruleit out, as 1.31 does.The stipulation that, if the point is\outside the space" no further actionshould be taken, is useful, as it rulesout the other possible behaviour onemight consider, of choosing an altern-ative neighboring position and tryingagain.1.32. If the neighbor ni contains a bon-ded L, examine the location n0i. If n0icontains an S, move this S to hi.This captures the idea that anS particle can di�use or permeatethrough a single layer of bonded link.However, it somewhat begs the ques-tion: if an S particle can permeatethrough a bonded L particle, whycould it not permeate through a freeL particle? The reason appears to8I conjecture that part of the explanation of this, and someother related peculiarities of the algorithm, may be that thealgorithm was actually derived from a functional implement-ation (and thus inherited artifacts from it), rather than thealgorithm having been written �rst and used as the speci�ca-tion of the implementation. However, this is of only historicalinterest at most.7

Page 10: Computational Autopoiesis: The Original Algorithm

be that, if a free L is found in theneighboring position then it is to beexchanged with the hole, rather thanconsidering the possibility of an Sparticle beyond it. However, it hasalready been noted that incorporatingfree L particle movement into this partof the algorithm is questionable any-way; if the possibility of free L particlemovement at this stage were dropped,then it would seem perfectly consist-ent (and even simpler) to permit Sparticles to permeate through a singlethickness of both free and bonded Lparticles.1.4. Bond any moved L, if possible (Rules, 6).This makes it clear that top-level section 6is to be regarded as a sub-procedure.The reference to \any moved L" again re-inforces the earlier interpretation of 1.3,that it is indeed intended to allow a holeto exchange positions with a free L, if oneis encountered (despite the fact that free Lparticles will get an opportunity to movein top-level step 2 anyway).Again, the layout of the algorithm suggeststhat there is to be a separate iteration overthe (moved) free L particles, implement-ing the bond procedure, taking place afterall the movements of 1.3 have been com-pleted. This seems a little perverse froman implementation point of view, since itrequires recording a list of the moved freeL particles, to allow this separate itera-tion. It would seem simpler to just bondany moved free L when it is moved, ratherthan recording it for processing later, ina separate iteration. In the previous caseof separate iterations (steps 1.2 and 1.3),I argued that the outcome would be form-ally equivalent if they were combined into asingle iteration|and that therefore an im-plementation could opt to combine them.However, that argument does not carrythrough to the current case. It is evid-ent that the ability of an L particle to formbonds depends on what other L particlesare in its neighborhood. Therefore, theoutcome of this bonding iteration will bepotentially di�erent depending on which Lparticle movements have been previouslycompleted. Thus, it is not strictly free toan implementation to combine 1.4 into thesame iteration as 1.3.

However, this does raise a more generalcriticism of the algorithm. As we shall see,there are single top-level steps concernedwith realising the composition and disin-tegration reactions. These essentially iter-ate over each potential reaction site in thespace, and permit one such reaction pertimestep. One might have thought that thebonding reaction could (and, for consist-ency and simplicity, should) be implemen-ted in essentially the same way. However,the bonding reaction is actually handledin a quite di�erent manner. Instead ofa single top-level step for bonding, thereare two distinct sub-procedures (6 and 7),both concerned with the bonding reac-tion, but with quite di�erent behaviours;of these, one is invoked in only one part ofthe algorithm (7 is invoked only as part oftop-level step 5, i.e. following disintegra-tion), and the other is repeatedly invokedin the other top-level steps. This certainlymakes expected behaviour of the bondingreaction signi�cantly more obscure, whilealso making the overall structure of the al-gorithm a good deal more complex. It isnot at all clear what the rationale for thismight have been. For example, it is pos-sible that the particular implementation ofbonding which was chosen had a signi�c-ant e�ect on the qualitative phenomeno-logy (and especially the emergence and sta-bility of autopoietic structures); however,if that was the case, it would have beenvery helpful for this to be made explicitand elaborated in some detail.2. Motion, second stepThis step is concerned with the movement offree L particles. It is signi�cantly complicatedby the idea of the various particle types havingdi�erent \masses" and the possibility of \dis-placements". It also incorporates the possibil-ity of bonding reactions, as with top-level step1 (rather than deferring the bonding reaction toa single top-level step in its own right).2.1. Form a list of the coordinates of free L's,mi.Again, the presumed notation here is thatm denotes the list, and mi a typical ele-ment of the list. However, whereas h waspresumably mnemonic for the list of holesformed in top-level step 1, there is no ap-parent mnemonic intention here.8

Page 11: Computational Autopoiesis: The Original Algorithm

As with 1.1, the implementation may pre-sumably opt to maintain this list ratherthan regenerating it; and, again, it wouldprobably be preferable to randomly per-mute it before processing on each timestep,to guard against artifacts arising from anysystematic ordering.2.2. For each mi, make a random selection,ni, in the range 1 through 4, specifying aneighboring location.As with step 1.2, movement is allowed onlyin the four orthogonal directions.2.3. Where possible, move the L occupying thelocation mi into the speci�ed neighboringlocation.We interpret this, as with 1.3, as a generalrule which will be quali�ed by the follow-ing subsidiary steps. That is, it is assumedthat the move is possible, unless these sub-steps rule it out. Also, as with 1.2 and 1.3,we assume that 2.2 and 2.3 may be com-bined into a single iteration if there is somee�ciency bene�t in doing that.2.31. If location speci�ed by ni containsanother L, or a K, then take no ac-tion.As with a hole swapping with a hole,a free L particle swapping with a freeL particle would have no net e�ect onthe overall con�guration of the space;but again, it could have an e�ect onthe behaviour of the model, becausethe other free L might not yet havebeen processed for movement, andwould be subsequently processed dif-ferently if it is moved now. So it doesseem worthwhile to explicitly excludethis.The rule does imply two other signi�c-ant conditions. First that an L particlewill not swap with a K particle. Thisis presumably intended to partiallyre ect the idea that K is of greater\mass" than L; but it is somewhatinconsistent, because K particles canswap with the (zero \mass"?) holesin step 1. The second condition im-plied here is that a free L particle willnot swap positions with a bonded Lparticle. This re ects the general stip-ulation that bonded L particles are ab-solutely immobile.

2.32. If location speci�ed by ni containsan S, the S will be displaced.This step attempts to capture the ideathat because an L particle is of greater\mass" than an S particle, then it can\displace" the S particle to some otherposition, thus making a hole that theL can then move into. However, thedetails are necessarily somewhat com-plex, because there may be some di�-culty in actually displacing the S. Thisis detailed in the following three steps,subsidiary to 2.32, which attempt toexplain exactly how this idea of \dis-placement" is to be realised.2.321. If there is a hole adjacentto the S, it will move into it. Ifmore than one such hole, selectrandomly.2.322. If the S can be moved intoa hole by passing through bondedlinks, as in step 1, then it will doso.Presumably, 2.322 is intended as afallback, only to be applied if theS particle cannot be moved in ac-cord with 2.321.The phrase \as in step 1" deservessome elaboration. The intentionis evidently that the S particle isallowed to exchange with a holewhich is behind a single thicknessof bonded L particles. However,whereas in step 1, a single direc-tion (out of four) is �rst chosen,and the S particle is either movedin that direction or not at all, theintention here seems to be that alldirections (three only) should beassessed for this possibility;9 andif more than one is possible, se-lect one at random. I take thisinterpretation, even though it isnot fully stated, for consistencywith the immediately prior step,2.321, and because the next step(2.323) explicitly refers to the casethat \the S cannot be moved intoa hole", implying that every pos-sible way of \displacing" the Sshould be checked �rst.9Only three directions arise here, since one direction isalready accounted for by the free L particle we are attemptingto move at the higher level of the algorithm.9

Page 12: Computational Autopoiesis: The Original Algorithm

Thus, although 2.322 does involvesome similarity to step 1, thereare signi�cant di�erences also (es-pecially that fact that step 1 wascentered on a hole not an Sparticle, the fact that all availabledirections are tried rather thanplumping for one only, and thefact that only three directions, atmost, might be possible). Thisis of interest in that it e�ect-ively rules out any idea of isolatingthis functionality into a single sub-procedure, shared both by step 1and step 2.322.2.323. If the S cannot be moved intoa hole, it will exchange locationswith the moving L.This is the �nal fallback case: inessence, if the S particle cannotactually be \displaced", then thefree L particle will simply swap po-sitions with it.2.33. If the location speci�ed by ni is ahole, then L simply moves into it.We can note again that, since an Lparticle can swap position with a holeat this step anyway, it is questionablewhat purpose is served by allowingequivalent swaps in step 1 also.Note that steps 2.31 through 2.33 haveactually enumerated all possible con-tents of the neighbor position, andspeci�ed a corresponding behaviour.These rules were ordered (roughly) asK, L, S, and �nally hole. It mighthave been somewhat more clear to or-der them with hole before S, since thiswould get the simpler cases out of theway before dealing with the cumber-some case of S. In any case, froman implementation point of view, it isclear that these cases are mutually ex-clusive, and can thus be considered inany desired order.2.4. Bond each moved L, if possible.As with 1.4, the bonding reaction has beeninserted as a subprocedure invocation here.Unfortunately, there are two top-level stepsconcerned with bonding|6 and 7|so it isnot immediately clear which should be in-voked in this case. However, as we shallsee, step 6 expects an argument of the pos-ition of a free L particle, whereas step 7 ap-

parently expects the position where a freeL has just disintegrated. Therefore, it maybe assumed that the intention is to invoketop-level step 6 as the subprocedure here.Similar criticisms of the overall approachto the bonding reaction as detailed understep 1.4 apply again here. One additionalpoint is worth making explicit now: be-cause the possibility of a bonding reac-tion is being reevaluated here, certain freeL particles may be assessed for bondingmore than once in any given timestep (be-cause they happen to be moved in, say,both steps 1 and 2), whereas others willnot. This seems a rather arbitrary variab-ility in reaction rate, which would be betteravoided.3. Motion, third stepThis is primarily concerned with movement ofK particles. As with top-level step 2, it is sig-ni�cantly complicated by the idea of the vari-ous particle types having di�erent \masses" andthe possibility of \displacements"; however, thesituation is even more complex this time, as theK particle may displace a free L particle whichmust (�rst) displace a S particle. This step alsoallows for movement and potential bonding offree L particles, even though possibilities forboth these actions have already been allowedin both the previous top-level steps.3.1. Form a list of the coordinates of all K's,ci.Again, the presumed notation here is thatc denotes the list, and ci a typical ele-ment of the list. c is presumably mnemonicfor \catalyst"|though for consistency, itwould have been preferable either to usek, or use C as the code for the catalystparticle.As with 1.1, and 2.1, the implementationmay presumably opt to maintain this listrather than regenerating it; and, again,it would probably be preferable to ran-domly permute it before processing oneach timestep, to guard against artifactsarising from any systematic ordering.3.2. For each ci, make a random selectionni, in the range 1 through 4, specifying aneighboring location.As with step 1.2 and 2.2, movement is al-lowed only in the four orthogonal direc-tions.10

Page 13: Computational Autopoiesis: The Original Algorithm

3.3. Where possible, move the K into the se-lected neighboring location.We interpret this, as with 1.3 and 2.3, as ageneral rule which will be quali�ed by thefollowing subsidiary steps. That is, it is as-sumed that the move is \possible", unlessthese substeps rule it out. Also, as with1.2 and 1.3, and 2.2 and 2.3, we assumethat 3.2 and 3.3 may be combined into asingle iteration if there is some e�ciencybene�t in doing that.3.31. If the location speci�ed by ni con-tains a BL or another K, take no ac-tion.As with a hole swapping with a hole(step 1.31), or a free L particle swap-ping with a free L particle (step 2.31),a K particle swapping with a K particlewould have no net e�ect on the overallcon�guration of the space; but again,as with those previous two cases, itcould have an e�ect on the behaviourof the model, because the other Kmight not yet have been processed formovement, and would be subsequentlyprocessed di�erently if it is movednow.This rule also incorporates the condi-tion that a K particle will not swap po-sitions with a bonded L particle, againre ecting the general stipulation thatbonded L particles are absolutely im-mobile.3.32. If the location speci�ed by ni con-tains a free L, which may be displacedaccording to the rules of 2.3, then theL will be moved, and the K moved intoits place. (Bond the moved L, if pos-sible).This step seems straightforward, es-sentially invoking step 2.3 as a sub-procedure. However, there is a di�-culty, or ambiguity with this. Step 2.3was designed to assess the possibilityof moving a free L particle in one, pre-speci�ed or chosen, direction only. Itis not at all clear that the same ap-plies to the current case. It is pos-sible that the intention is to try to dis-place the free L particle in the samedirection as the attempted move of theK particle (ni in the context of 3.32).However, that would be somewhat in-consistent with the policy speci�ed in

2.321 where an S particle, being dis-placed by a free L particle, may movein any available direction. Further-more, as we shall see, step 3.34 willspecify a \fallback" action for the casethat the free L particle is \not movableby rules 2.3", which suggests to methat the current step (3.32) is inten-ded to attempt all possible directionsof movement for the free L particle. Inany case, whatever the \correct" in-terpretation, the rule, as stated, is cer-tainly ambiguous.This rule also parenthetically men-tions that, if the free L particle ismoved, it should be bonded. As instep 2.4, the bonding sub-procedurehas not been stipulated explicitly, butit seems clear that top-level step 6 isintended.Note that the invocation of bondingat just this point in the algorithm isactually inconsistent with the way itwas handled at steps 1.4 and 2.4. Inthe previous cases, all free L particlemovements were completed before anywere processed for bonding. Whereas,in the current case, the possibility ofbonding is considered as each free Lparticle is moved, rather than as a sep-arate iteration. This change in bond-ing procedure or policy is repeated instep 3.34; but then, in top-level step4, we shall see a reversion to the samepolicy as steps 1 and 2, where bondingis deferred to the end of the (top-level)step. There is no apparent rationalefor this variation in policy. It furtherre-inforces the arguments made earlierthat the bonding reaction should beprocessed just once, as a top-level stepof its own.3.33. If the location speci�ed by ni con-tains an S, then move the S by therules of 2.32.Again, this looks like 2.32 should besimply invoked, in e�ect, as a sub-procedure; but again, there is a dif-�culty with this. Step 2.323|beingpart of 2.32|covers the case where itturns out that the S particle cannotbe displaced, and stipulates that the Sparticle will then \exchange locationswith the moving L". The problem is11

Page 14: Computational Autopoiesis: The Original Algorithm

that, in the context of 3.33, there isno \moving L", but rather a \movingK". Of course, the intended meaninghere is clear enough; but to expressit cleanly, step 2.3 ought to be expli-citly separated out as a subprocedure,and given an argument, being the pos-ition of an inde�nite particle (actuallyeither a free L or a K|but the subpro-cedure will be oblivious to this) whichis trying to displace it.3.34 If the location speci�ed by ni con-tains a free L, not movable by rules2.3, exchange the positions of the Kand the L. (Bond L if possible).This is analogous to step 2.323.However: since it is essentially a fall-back, or alternative, to step 3.32, itwould preferable if it came immedi-ately after 3.32; or, for consistencywith the way 2.32 was expressed, 3.32and 3.34 could have been made sub-sidiary cases of a single rule. In anycase, as the various substeps of 3.32are mutually exclusive, it will be opento an implementation to re-order theconsideration of them if convenient.3.35. If the location speci�ed by ni is ahole, the K moves into it.A similar comment applies as at step2.33. Given that this step allows aK particle to exchange with a hole, itseems unnecessary to allow for that attop-level step 1 also.In closing top-level step 3, we may �-nally note that, unlike top-level steps 1and 2, there is no �nal step here concernedwith bonding any moved link|because thebonding was integrated into substeps 3.32and 3.34, as already discussed.4. ProductionThis step implements the reaction earliertermed \composition" but now (apparently) re-named \production". This is speci�ed to occuronly under the in uence of K particles; there-fore it is e�cient to focus only on those posi-tions in the space where there are such particles,and iterate over each in turn. Each particlecan trigger at most one production reactionper timestep. To do so, there must be two Sparticles immediately adjacent both to the Kparticle and to each other (in this case, diag-onal neighbors are counted as immediately ad-

jacent). If there are multiple adjacent pairs ofS particles, adjacent to a single K particle, oneis chosen at random, as the reacting pair. Thereaction proper is then implemented by delet-ing the two S particles, and replacing them bya single L particle. This is located randomly ateither of the two positions previously occupiedby the S particles (the other position becominga hole). Finally, the possibility of bonding isprocessed for the newly created L particle (and,again, I would argue that it would be better forthis to be handled as a single, separate, top-levelstep, rather than con ated with the productionreaction).As the algorithm is currently speci�ed, if it ispossible to carry out a production reaction inthe neighborhood of a given K particle, then thereaction will happen. As previously discussed,this could instead be made subject to a reactionrate parameter (probability of reaction), to addan additional degree of exibility to the rangeof models that could be investigated.4.1. For each catalyst ci, form a list of theneighboring positions nij, which are occu-pied by S's.Strangely, this top-level step does not startwith an explicit instruction to \form a listof the coordinates of all K's, ci", eventhough that is clearly implied, and suchan instruction was made explicit in eachof the previous top-level steps.In any case, the same comments should benoted as in each of the previous such cases:it may be convenient, for implementatione�ciency, to maintain this list rather thanregenerate it; and, to avoid any artifactsarising from the order of this list, it shouldbe randomly permuted before processingthe production reaction.Steps 4.1 through 4.3 are now interpretedas, in e�ect, substeps to be repeated foreach K particle in the space.Step 4.1 is simply concerned with identi-fying or listing the positions of S particlesadjacent to each K particle. As step 4.1 isphrased, it reads as an instruction to formthese lists (nij) for all K particles beforeproceeding to carry out the production re-actions for any of them. One might imme-diately assume, as in the previous some-what similar cases10, that it is free to the10Steps 1.2 and 1.3, or 2.2 and 2.3, or 3.2 and 3.3.12

Page 15: Computational Autopoiesis: The Original Algorithm

implementation to choose to combine thesetwo iterations into one. However, the situ-ation in this case is actually more com-plex, and there is no real choice; despite thephrasing of 4.1, these two iterations surelymust be combined into one. The reason isthat a given S particle may be (initially)adjacent to more than one K particle. Ifthe lists nij are all generated �rst, beforeany of the production reactions are carriedout, then \early" production reactions mayactually render some of the \later" listsinvalid|because an S particle that was lis-ted as adjacent to a certain K particle hasactually, in the interim, reacted to give anL particle under the action of a di�erent Kparticle.Of course, it is possible that the algorithmis \correct" as stated|in the sense thatthe authors actually did intend separateiterations to be used, and had not re-cognised the potential di�culty this couldlead to. Provided the density of catalystsis \low", the probability of encounteringthis problem will also be low. The actualimplementation run illustrated in (Varelaet al. 1974) shows only a single K particlein the space|and, in that case, of course,the di�culty identi�ed here cannot actu-ally arise. However, it is a real defectin the algorithm, nonetheless; so I recom-mend that any new implementation shouldchoose to combine the iterations, as out-lined. It is apparent that this combinationshould make no di�erence to the e�ect onthe space except in the case that the reac-tions at di�erent K sites would interact|and for those cases, one needs the robustform of the algorithm.4.11. Delete from the list of nij all posi-tions for which neither adjacent neigh-bor position appears in the list (i.e.,\1" must be deleted from the list ofnij's, if neither 5 nor 6 appears, anda \6" must be deleted if neither 1 nor2 appears).The numbers here refer, of course, tothe neighborhood diagram presentedearlier (�gure 1).Essentially what is happening here isthat the original list, nij containedall S particles immediately adjacent tothe given K particle (ci), whereas pro-duction is possible only for S particles

that come in pairs|i.e. that are ad-jacent both to each other and to theK particle. Presumably, it is freeto an implementation to generate this\reduced" list \directly"|rather than�rst generating a list of all adjacentS particles and then removing someelements from it again. In any case,it is not at all clear why this stepis expressed as a sub-step of step4.1. There are no additional such sub-steps; it would seem that 4.11 couldeither have been made a separate stepat the same level as 4.1, or 4.1 and4.11 could have been combined into asingle step.4.2. For each ci with a non-null list of nij,choose randomly one of the nij, let itsvalue be pi, and at the corresponding loca-tion, replace the S by a free L.Again, the way this is phrased, it suggestsa separate iteration over the K particles,but this is not a reasonable interpretationfor the reason already explained.The essential point of step 4.2 is to saythat if there are multiple candidate pairs ofS particles which may react under a givenK, then one should be picked \at random".This does not mean exactly \uniformly"at random, because the choice is made intwo stages. Instead of explicitly listingall possible pairs and then (say) choos-ing with a uniform distribution over them,the rule says to �rst pick a single (eli-gible) S particle and then two subsidiarysteps (4.21 and 4.22) will deal with the is-sue of picking the second S particle to pairwith this one. This can slightly skew theprobability distribution among the pos-sible pairs. For example, with four adja-cent particles, the probability of choosingeither end pair will be 3=8 versus 1=4 forthe middle pair. On the other hand, thealgorithm, as stated, does have the e�ectof ensuring that which S particle gets re-placed with a free L is uniformly chosenfrom the candidates (whereas, if a pairwas �rst picked with a uniform probabil-ity function, and then one position out ofthe pair chosen uniformly to be replacedby the L, this could skew the probability oflocating the L particle somewhat in favourof the \inner" S particle locations).In any case, it seems highly unlikely that13

Page 16: Computational Autopoiesis: The Original Algorithm

these relatively �ne distinctions in probab-ility distribution for the production reac-tion would have any substantive e�ect onthe qualitative phenomenology of the sys-tem.4.21. If the list of nij contains only onewhich is adjacent to pi, then removethe corresponding S.4.22. If the list of nij includes both loc-ations adjacent to pi, randomly selectthe S to be removed.4.3. Bond each produced L, if possible.5. DisintegrationThe disintegration reaction is super�cially verystraightforward: each L particle (bonded or oth-erwise) is considered for disintegration with aprobability Pd, where Pd is an explicit para-meter of the model chemistry. However, as weshall see, there is considerable complexity in-volved in actually carrying out the disintegra-tion.5.1. For each L, bonded or unbonded, select arandom real number, d, in the range (0,1).As with top-level step 4, there is presum-ably an implied prior step here, of forminga list of L particles; again, we assume thatan implementation may opt to maintainthis list instead of generating it anew eachtimestep; and, to avoid artifacts arisingfrom the ordering, the list should be per-muted before proceeding with the disinteg-ration processing.Again, the phrasing of step 5.1 seems toimply a separate iteration, generating arandom number for each L particle, be-fore coming back and processing the dis-integration reaction. However, unlike theprevious such cases, the notation here haschanged subtly: the step refers to a singlerandom number d, rather than a list, di.That may suggest that, on this occasion, aseparate iteration to �rst generate the ran-dom numbers is not intended. This is per-haps supported by the fact that the restof this top-level step consists of only twosub-steps of 5.1|suggesting that they formpart of the same, single, iteration over theL particles. In any case, there seems tobe no formal distinction between using asingle iteration to both generate the ran-dom numbers and process the disintegra-tions or using two separate iterations|so

this choice is presumably free in the imple-mentation.5.11. If d � Pd (Pd an adjustable para-meter of the algorithm), then removethe corresponding L, attempt to re-bond (Rules, 7).5.12. Otherwise proceed to next L.The e�ect of 5.1 combined with 5.11 and5.12 is to say that each L particle shouldbe subject to disintegration with probabil-ity Pd. This choice can be achieved in themanner speci�ed (i.e. by indirectly usinga sample of a uniform random variable);however, I presume that if an implementa-tion has a source of bernoulli random vari-ables, with programmable probability, thatmay be substituted here instead.In any case, the real complexities of thisreaction come into play in the case that agiven L is, indeed, to be subject to disin-tegration (step 5.11).There are two problems or di�culties tobe considered.Firstly, if the L particle was bonded, whatshould happen to those bonds? The ob-vious answer would be that they shouldsimply be destroyed. However, the al-gorithm speci�es something much morecomplex. Instead of simply destroying ex-isting bonds, the algorithm speci�es thanan attempt must be made to \re-bond".The details of this are contained in a sep-arate top-level step (7). The implicationis that step 7 is to be regarded as a sub-procedure. However, given that this is theonly place where this subprocedure is in-voked, it might have been simpler to in-clude it as an explicit part of top-level step5 instead.Much more seriously, the \re-bonding"procedure is actually concerned not withdestroying whatever bonds were associatedwith the disintegrated L particle|that isactually left implicit|but with formingnew bonds among whatever L particles re-main in the neighborhood of the disinteg-ration site. In e�ect, this is therefore aspecial purpose variant of the bonding re-action.As already discussed at length, there is noclearly articulated reason why the bond-ing reaction should be handled in such acomplex way, con ated into the other re-14

Page 17: Computational Autopoiesis: The Original Algorithm

actions, rather than dealt with once pertimestep in its own right. The current caseis particularly troublesome because disin-tegration is the way that an autopoietic en-tity may be disrupted; if the autopoieticphenomenon is robust, one would not ex-pect to have to insert special measures re-lating speci�cally to the reactions arisingfrom such disruption. Yet, prima facie,it appears that just such special measureshave been built into the algorithm herewith this notion of \rebonding". As a fur-ther ancillary point: rebonding is actu-ally speci�ed to be invoked here regard-less of whether the original L particle waspreviously bonded or not; again, this fur-ther serves to obscure the operation of thebonding reaction in general, providing yetanother separate opportunity for bondingto happen per timestep. In any case, de-tailed consideration of rebonding will bedeferred to the discussion of step 7 properbelow.The second outstanding di�culty with dis-integration is that this reaction involvesreplacing a single L particle with two Sparticles. One of these will clearly oc-cupy the position formally occupied bythe L particle|but where is the otherto be positioned? Presumably, it shouldbe located in a hole|but that raises thenon-trivial question of which hole? Thealgorithm gives absolutely no guidancehere|it merely states categorically that,if d � Pd then the disintegration will takeplace.For chemical \plausibility" one wouldexpect to choose a \neighboring" hole.Therefore, one might formulate a rule suchas: if there is a hole immediately adjacentto the disintegration site, locate the extraS particle here; if there is more than onesuch hole, choose one uniformly at ran-dom. But what if there is no adjacenthole? In the general case, it may actu-ally be necessary to scan arbitrarily faraway to locate a hole.11 Scanning arbit-rarily far away from a reaction site, withina single timestep, clearly violates the basic11Note that, with the speci�ed initial condition of thespace|holding only K and S particles, then, by conservationrules, there would always be guaranteed to be a hole availablesomewhere in the space, given that an L is being disintegrated;but if that initial constraintwere relaxed, it would be possiblethat a hole might not be available at all.

idea of local interaction, which seems tobe essential to the idea of a model \chem-istry" of any sort, and should not be in-troduced without some clear rationale. In-deed, if I were developing this algorithmfrom scratch, I would suggest that the ap-propriate rule would be that, if there is noimmediately adjacent hole, the disintegra-tion should simply not occur. I doubt verymuch whether this would signi�cantly af-fect the qualitative phenomenology. Al-ternatively, and more radically, I notedearlier that there was no clear requirementfor the production reaction to require twoS particles anyway; if the reaction were re-de�ned so that a single S could be trans-formed to a single L particle (and viceversa for disintegration) then this wholedi�culty would disappear anyway.Nonetheless, we must record that a strictinterpretation of the original algorithm ap-pears to require searching arbitrarily farfrom the reaction site, until a hole is loc-ated. It appears to be entirely free to theimplementation to decide all details of thissearch.126. BondingThis step must be given the coordinates of a freeL.This is the (main) subprocedure for implement-ing the bonding reaction. As already noted, itis invoked from each of the top-level steps 1through 4. In each such case, there is a spe-ci�c free L particle relative to which bondingwill be attempted. I will refer to this below asthe target L particle.There are two imposed constraints on bonding.Firstly, any given L particle can have at mosttwo bonds. Secondly, a second bond can format any singly bonded L particle only if the anglebetween it and the prior bond will be at least90�. This bond angle is illustrated in �gure 2(redrawn from �gure 4 of the original paper).Note that this diagram clearly indicates thatdiagonal bonds are allowed in general, subjectonly to the condition that a bond angle of 45�is not permitted.12Indeed, since the algorithm makes no stipulations at allabout how this is to be done, locality could be completelyignored|for example by saying that the extra S particleshould be put in a hole simply chosen uniformly from allholes in the space, without any regard to proximity to thedisintegration site.15

Page 18: Computational Autopoiesis: The Original Algorithm

LL

LFigure 2: De�nition of Bond-Angle �.One presumes that the rationale for disallowingbond angles less than 90� (i.e. either 45�, orthe degenerate case of 0�) is to encourage theformation of more \open" chains; however, thisis not discussed in detail in the paper. It isdi�cult to judge how signi�cant it may be forthe qualitative phenomenology. In any case, onewould like any implementation to make it easyto relax this constraint if desired.Bond formation, where possible, is \forced".That is, there is no \reaction rate parameter",or overriding probability, governing bond form-ation. Such a parameter could be added; but itse�ect would be seriously complicated by the factthat any given L particle might be considered(directly or indirectly) for bonding several dif-ferent times within one timestep.In outline, the strategy here is to �rst preferen-tially form bonds between the target L particleand neighboring L particles that already haveone bond; if the target L particle is then stillnot fully bonded (i.e. does not yet have twobonds) then further bonding will be attemptedwith neighboring free L particles. In any case,the given L particle will be fully bonded, if thatis possible. Wherever there are multiple possib-ilities, choices are made randomly (presumablyuniformly among the possibilities). However,because of the multitude of possible neighbor-hood con�gurations, the algorithm for achievingall this is quite complex.The ow of control through this procedure isparticularly hard to follow. It seems importantto note that, in contrast to earlier cases, thesub-steps in the part of the algorithm specify ad-ditional sequential steps, rather than providing

clari�cation or constraints on the higher level,containing step.Again, no speci�c rationale is o�ered for pref-erentially bonding to singly bonded L particles;but I speculate that this was intended to makethe repair of a ruptured chain more likely orrobust.6.1. Form a list of the neighboring positionsni, which contain free L's, and the neigh-boring positions mi which contains singlybonded L's.6.2. Drop from the mi any which would resultin a bond angle less than 90�. (Bond angleis determined as in Figure [2]). [Figure 4of the original.]The \bond angle" here must be thatformed at the neighboring, already singlybonded, L particle (in some positionmi)|since any one of these particles would onlyspecify a single bond to the target free L,and would thus not serve to specify a bondangle at the target L.6.3. If there are two or more of the mi, selecttwo, form the corresponding bonds, andexit.This expresses the preferred outcome: ifpossible, the free L particle should formits two bonds with two neighboring, singlybonded, L particles.However, there is a di�culty with the al-gorithm as so far expressed. Consider, forexample, the con�guration shown in �g-ure 3. The two neighboring, singly bon-ded particles are each separately eligibleto form a bond with the target particle(neither such bond would generate a 45�bond angle at the neighboring particle);but if both bonds are formed, this will res-ult in a bond angle of 45� at the target Lparticle, which presumably should not beallowed.I suggest that the \correct" (or at least,non-defective) procedure in this casewould be as follows. First, pick one of themi (uniformly) at random, and form thecorresponding bond. Remove thatmi fromthe list m, and also any other position(s)that would now result in a bond angle ofless than 90� at the target particle (becausethe target particle is, by now, singly bon-ded, this is a well-de�ned constraint). Ifthe list m is not now empty, pick another16

Page 19: Computational Autopoiesis: The Original Algorithm

LLL

L

L Target

ParticleFigure 3: Scenario for formation of bad bond angle.mi (uniformly) at random, form the cor-responding bond, and exit; but if the listm is empty, attempt to form a second bondwith a neighboring free L particle (the pre-cise procedure for this will be speci�ed insubsteps 6.41 through 6.43).6.4. If there is exactly one mi, form the cor-responding bond.Given my reformulation of step 6.3, step6.4 could now be collapsed into it (6.3would then begin \If the list m is nonempty: : :"). However, the substeps 6.41through 6.43 are still required, to dealwith the situation of attempting to forma second bond with a neighboring free Lparticle. This set of steps is actually in-voked from two possible points (within 6.4and 6.61); thus it is e�ectively used as asubprocedure, and might have been betterexplicitly separated out as such. In anycase, note carefully that the scenario onentry to substep 6.41 is always that thetarget particle is now singly bonded, andan attempt is being made to form a secondbond to a neighboring free L particle; itwill follow that the overall bonding pro-cedure (top-level step 6) will de�nitely ter-minate somewhere within substeps 6.41through 6.43. To put that another way,if control reaches substep 6.41, it will notsubsequently proceed to step 6.5 or follow-ing steps. 6.5 is invoked only if the list mbecomes empty without any bonds havingbeen formed with the target particle.6.41. Remove from the ni any whichwould now result in a bond angle ofless than 90�.

6.42. If there are no ni, exit.In this case, the target particle mustbe left just singly bonded.6.43. Select one of the ni, form the bond,and exit.In this case, two bonds have beenformed with the target particle.6.5. If there are no ni, exit.As already noted, control reaches thispoint only in the case that the list m isempty and the target L particle still hasno bonds (it is still free). In that case wetry to form an initial bond with an neigh-boring free L particle. Step 6.5 covers thecase that there are no neighboring free Lparticles; in which case there is nothingfurther to try, and the target particle mustbe left free.6.6. Select one of the ni, form the correspond-ing bond, and drop it from the list.6.61. If the ni list is non-null, executesteps 6.41 through 6.43.6.62. Exit.Steps 6.61 and 6.62 seem to be redund-ant (and consequently confusing). Thesituations they would cover are alreadycovered by steps 6.41 through 6.43 anyway,so it would seem simpler just to stipulatean unconditional transfer to 6.41 immedi-ately after 6.6.Note that the bonding algorithm, as presen-ted, does not rule out the formation of \crossedover" bonds. For example, in the con�gurationof �gure 4, the algorithm would result in theformation of a crossed over bond. This seemscounter intuitive, and contrary to the chemicalinspiration of the model. However, in the ab-sence of some constraint to the contrary in thealgorithm, we must assume that it is intendedto be allowed. There is no explicit discussionof this, and it is not apparent that it wouldcontribute anything of signi�cance to the phe-nomenology of the model.7. RebondThis �nal top-level step of the algorithm is in-voked as a subprocedure from the disintegrationreaction (step 5.11). While it is not explicitlystated, we assume this subprocedure receives, asan argument, a position where an L particle hasjust disintegrated. The essential e�ect of this17

Page 20: Computational Autopoiesis: The Original Algorithm

LLL

Target

Particle

LL

L

Figure 4: Scenario for formation of crossed bond.subprocedure is to \reform", as far as possible,bonds in the neighborhood of this position.\Re-form" is something of a misnomer here: thebonds that have actually been broken as a res-ult of the disintegration obviously cannot be\reformed", since the relevant L particle is nolonger present. But the step is not even restric-ted just to \reforming" bonds with L particlesthat were previously bonded to the disinteg-rated L; in fact, this step blindly attempts toform bonds among all L particles in the neigh-borhood of the disintegration site, regardless ofwhether they were involved in, or otherwise af-fected by, the disintegration. Furthermore, itis perfectly possible that some of the L particlesthat are processed for bonding here may yet ac-tually be subject to disintegration on this sametimestep.The rebonding algorithm itself is deceptivelyshort; it actually hides some moderately com-plex processing. As with step 6, bonding ise�ected preferentially on L particles that arealready singly bonded; bonding to or betweenfree L particles is then considered secondarily.7.1. Form a list of all neighbor positions mioccupied by singly bonded L's.7.2. Form a second list, pij, of pairs of the miwhich can be bonded.The force of the phrase \can be bonded" isnot made explicit here, so we must ask whyparticular pairs may be excluded. Threedistinct cases arise.Firstly, it is clear that only pairs of Lparticles that are adjacent to each otherare eligible for bonding to each other.

Secondly|and trivially|some of the pairsof adjacent, singly bonded, L particles mayalready be bonded to each other.Finally, since each of the L particles cur-rently under consideration is already singlybonded, the proposed new bond would, ineach case, be a second bond|and wouldtherefore cause a new bond angle to be es-tablished at each of the two particles in-volved. If either of these two new bondangles would be less than 90� then, pre-sumably, that pair must be excluded fromconsideration.7.3. If there are any pij, choose a maximalsubset and form the bonds. Remove theL's involved from the list mi.The di�culty here is with the phrase\maximal subset", which is not explainedin any detail.However, the idea seems to be as follows.Of the pairs listed in p (say there are kentries in this list), it may not be pos-sible to form all the corresponding bonds,because there could be con icts betweenthem. Speci�cally, if the same (singly bon-ded) L particle occurs in two di�erent pairsthen, clearly, only one of those two pairscan be chosen for bonding. So, the require-ment of the algorithm seems to be thatvarious possible subsets of pairs may haveto be investigated. This would start byconsidering whether all (q) of the pairs canindeed be bonded (i.e. there are actually nocon icts). If so, they are all bonded, andcontrol can pass to the next step; but, ifnot, then all possible subsets of k � 1 ofthe pairs must be considered. If there areno con icts in one of these subsets, thenall of those bonds should be formed (and ifthere are multiple such, mutually compat-ible, subsets, then one should presumablybe chosen uniformly at random). If no mu-tually compatible subset of k� 1 pairs ex-ists, then the subsets of k� 2 pairs shouldbe considered next and so on. Clearly thisprocess will terminate at k = 1 since therecan be no con icts in such subsets.There is nothing fundamentally di�-cult about carrying out this procedure.However, it seems extraordinarily com-plex, for no obvious or explained bene-�t. A much simpler alternative|whichwould be expected to yield essentially thesame phenomenology|would be to simply18

Page 21: Computational Autopoiesis: The Original Algorithm

pick an element of p at random, and formthat bond; then remove any other elementsfrom p that are no longer eligible, and thenpick another at random for bonding; con-tinue this process until p is empty. Ofcourse, this procedure is not determinist-ically guaranteed to generate a \maximal"subset of bonds; but it would seem verystrange indeed if the phenomenology of thesystem depended critically on this.Nonetheless, it seems that any strict imple-mentation of the algorithmwill be requiredto search deterministically for a maximalsubset of p.7.4. Add to the bond mi any neighbor locationsoccupied by free L's.The list m was potentially reduced at step7.3, by removing from it the positions ofany singly bonded L particles that havenow become doubly bonded. Step 7.4 nowsimply adds to this list the positions of anyfree L particles in the neighborhood of thedisintegration site. Note carefully that thelist m now potentially contains both freeand singly bonded L particles. This shouldbe clearly distinguished from the situationin top-level step 6, where two separate listswere maintained for free and singly bondedlinks.7.5. Execute steps 7.1 through 7.3, then exit.The reference to step \7.1" here must be atypographical error: since step 7.1 is con-cerned with forming the list m in the �rstplace; regenerating it at this point wouldbe incoherent. So we must assume that theintention is to \reexecute" steps 7.2 and7.3 only. Even this \reexecution" is notcompletely straightforward. In particular,steps 7.2 and 7.3 must now be interpretedas applying to the more general case thatthe list m contains a mix of both singlybonded and free L particles, whereas in theoriginal context it could be assumed thatit contained singly bonded particles only.5 External ReviewThis section is concerned with comparing the de-tailed algorithm, as presented in the previous sec-tion, with the speci�c experimental runs documentedin (Varela et al. 1974). This comparison reveals anumber of discrepancies.

The original paper presents diagrams of two se-quences of con�gurations of the space in the com-puter model, both taken from a single run, and show\instants" 0{6 and 44{47 respectively (�gures 1and 2 of the original). These �gures are described as\: : :drawn from the print-outs with change of sym-bols used in the computations". They use an altern-ative (iconic) set of symbols for the various types ofparticles. I have redrawn these �gures again, thistime substituting the same (alphanumeric) symbolsas used consistently throughout the rest of the ori-ginal paper, and in this report. I have also addednumeric co-ordinates along two sides of each dia-gram of the con�guration of the space (to facilitatereference to individual cells or particles), and run-ning counts of the numbers of L particles and holesin the space (which should be always equal, accord-ing to the described reaction scheme). My �gures 5and 6 correspond to the original �gure 1; my �gure 7corresponds to the original �gure 2.Varela et al. refer to the separate con�gurationsshown as \successive instants". I presume this isequivalent to single iterations of the algorithm, or\timesteps". This is consistent with EXP29.FOR, butwill be discussed further below.The �rst sequence (steps 0{6, my �gures 5 and 6)illustrates the initial, spontaneous, formation of astructure consisting of a closed chain of L particlesenclosing a K particle and also some free L and sub-strate particles. The second sequence (steps 44{47)illustrates the spontaneous rupturing and repair ofthe bounding chain. It is stated that \: : : [w]ithinthis universe these systems satisfy the autopoieticorganisation".Various problems arise in reconciling these exper-imental data with the given algorithm.1. Hole versus L Particle CountsThe given reaction scheme has two S particlesbeing required to generate one L particle; andone L particle disintegrating into two S particles.On the experimental run the space is initiallycon�gured with one K particle and is otherwise�lled with S particles (T = 0). Each pro-duction event should generate one L particleand one hole, removing two S particles; andeach disintegration event should generate twoS particles, removing one L particle and onehole. It follows that the number of L particles(N (L)) should always equal the number of holes(N (H)). However, in the diagrams shown, thisis never the case (except, of course, for T = 0).For most of the time, the number of L particlesexceeds the number of holes by about 6:1. This19

Page 22: Computational Autopoiesis: The Original Algorithm

T = 0 N(L) = 0 N(H) = 0

S S S S S S S S S S

S S S S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L L

L L

L

L

L

S S S S S S S S S

S S S S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

L

L

L

LL

L

L

S

L

S S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

K

S S S S S S S S S S

S S S S S S S S S S

S S S S S S

S S S S S

S S S S S S

S S S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L L L

L

S

T = 1 N(L) = 6 N(H) = 9

T = 2 N(L) = 13 N(H) = 10 T = 3 N(L) = 17 N(H) = 5Figure 5: Experimental run: steps 0{3.20

Page 23: Computational Autopoiesis: The Original Algorithm

is a gross discrepancy, which is not dependenton any �ne details of the algorithm, and is dif-�cult to explain. It is conceivable that the dia-grams are showing only a window onto a lar-ger space (such as the 30 � 30 space used inEXP29.FOR), and that the extra holes have mi-grated out of the area shown. However, thisinterpretation would face a special additionaldi�culty with timestep T = 1. At this timethe number of holes exceeds the number of Lparticles, and, further, there has not been timefor any signi�cant interaction from the bound-aries of the area shown. I can see no consist-ent and reasonable way of fully reconciling thesevariations in the ratio between N (L) and N (K)with the speci�ed reaction scheme.2. Production Reaction RateThe algorithm restricts production to a rate ofone L particle per timestep per K particle. Yet,in the experimental run, we apparently observeproduction of six L particles (by the one avail-able K particle) in going from T = 0 to T = 1.Similarly, from T = 1 to T = 2 we see the num-ber of L particles increasing to 13, implying pro-duction of at least a further 7 L particles in thatstep. Similar, though somewhat less dramatic,discrepancies occur between T = 2 and T = 3,and between T = 4 and T = 5. Even on thosesteps where the reaction rate is not apparentlyexcessive, it seems likely that this is due only tolimited availability of S particles in the vicinityof the K particle.A conceivable interpretation of this is thatthe time \instants" in the diagram correspondto multiple iterations of the algorithm (time\steps"). However, there is no evidence in thediscussion of the paper that would support this.Further, it would not be consistent with the factthat, at T = 1, none of the produced L particlesare yet bonded.Even if we suppose that multiple productionevents might be allowed per K particle pertimestep, there are additional, subsidiary, pe-culiarities of the con�guration at T = 1. First,the production reaction requires two S particlesadjacent to the K particle. Thus, to produce sixL particles would require twelve S particles|but there are, at most, only eight positions im-mediately adjacent to the K. Furthermore, thespatial distribution of the produced L particlesseems strange. None of the produced particlesat T = 1 are immediately adjacent to the Kparticle|even though the production reaction

speci�es that a newly produced L is always ad-jacent to the K.13 Finally, of the six produced Lparticles, �ve are immediately adjacent to eachother|which would seem very unlikely if thechoice of reaction sites, in the vicinity of the Kparticle, were stochastic.However: it turns out that EXP29.FOR yields al-most exactly the same pattern of initial produc-tion as illustrated at T = 1 and an examinationof its code reveals answers to all the discrepan-cies noted here.Firstly, EXP29.FOR does not restrict productionto just one event per K particle per timestep, butactually permits up to one event per (Moore)neighbor of a K particle per timestep|which isto say, up to 8 production events per catalystper timestep.Secondly, for each Moore neighbor of a Kparticle, if that neighbor is an S particle,EXP29.FOR searches in the Moore neighborhoodof that S particle in turn, seeking a secondS particle for the production reaction. Thus,while the two reacting S particles must be ad-jacent to each other, only one of them need beadjacent to the mediating K particle. This ef-fectively increases the neighborhood for the pro-duction reaction to two positions away from theK particle, an area of size 25. This greatly in-creases the availability of potential reactants. Italso introduces the possibility that the producedL will actually be two positions away from theK particle (even before any movement).Finally, in EXP29.FOR, the searching for react-ants, and the selection of which to replace by aL particle, is deterministic. This fully accountsfor the systematic bias of the initial productionto the Northwest of, and two positions awayfrom, the K particle.3. Catalyst MobilityIn the course of the times T = 0 through T = 6,the K particle moves just once. In the timesT = 44 through T = 47 it does not move atall|and, indeed, is still in the same positionas at times T = 1 through T = 6. This isnot consistent with the algorithm (top-level step3) which should force the K particle to movevirtually every timestep (its maximum \mass"meaning that it can displace, or at worst, swapwith, any other kind of particle).13Note that L and K particlemovements come before produc-tion in the algorithm; so produced L particles cannot separatefrom the K particle within a single iteration of the algorithm.21

Page 24: Computational Autopoiesis: The Original Algorithm

S

S S S S S S S S S

S S S S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

L

LLL

L

L

L

L

S L

S

S

S S S S S S S S

S S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

L

LLL

L

L

L

S

L

L

S

S

L L

S

S S S S S S S

S S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

L

LLL

L

L

L

S

L

S

S

L L

S

S

L

T = 4 N(L) = 18 N(H) = 4 T = 5 N(L) = 20 N(H) = 3

T = 6 N(L) = 20 N(H) = 3Figure 6: Experimental run: steps 4{7.22

Page 25: Computational Autopoiesis: The Original Algorithm

It might be conjectured that, in redrawing thediagrams, the authors simply recentered on theK particle each time. However, this idea isnot consistent with the fact that the K particledoes move once; and, more substantively, it isnot consistent with the fact that the bonded Lparticles, which are speci�ed to remain abso-lutely immobile in the space, do not change theirpositions relative to the K particle.4. Bonding AnglesThe algorithm stipulates that bond angles lessthan 90� are to be disallowed. The diagram il-lustrating this (�gure 4 of the original, redrawnas �gure 2 here) shows a bond angle of 135�.This clearly suggests that, in general, bondingis to be allowed along diagonals of the space, ex-cept only in the case where that would result ina bond angle of less than 90�. Yet, in all the ex-perimental con�gurations shown, all bonds oc-cur only in the orthogonal directions, never inthe diagonal directions. Clearly, the possibilityof diagonal bonding would have a signi�cant ef-fect on the shapes of L particle chains whichmay form, and may thus signi�cantly a�ect thedynamics of any autopoietic organisation whichthe model might support.Again, the EXP29.FOR code may shed some lighton the this. In that program, bonds are not ex-plicitly represented or displayed, though theymay be said to be implicitly encoded in thetransformation and movement processes. If thediagrams of (Varela et al. 1974) derive from aclosely related program, then, in redrawing thediagrams from the original printouts, the draw-ing of explicit bonds would have been at bestschematic, or suggestive, rather than re ectingde�nite operations of the program.5. Bonding Reaction RateAs already discussed at length, the publishedalgorithmmakes provision for bonding to occurseveral di�erent times within each iteration. Inparticular, every time a free L particle is pro-duced or moves, it is supposed to be consideredfor bonding. Considering now the experimentalcon�guration at T = 1 we have (apparently)six L particles, all of which have just been pro-duced, and �ve of which are adjacent to eachother. If the bonding procedure (top-level step6) were applied to the latter �ve particles thenthey would all have become bonded. Yet nobonds are shown between any of them. Thisis the most dramatic discrepancy with regard

to the bonding algorithm|but there are otherinstances also.In particular, consider the transition from T =46 to T = 47. A free L particle apparentlymoves from position (3,2) to position (3,3),where it becomes immediately adjacent to an-other free L at position (4,3)|yet no bond isformed between them.This is extremely signi�cant, as the formation ofsuch bonds|between free L particles enclosedwithin the \membrane"|would prevent suchparticles being available to migrate to a rupturesite. The possibility of such reactions wouldthus appear to undermine a critical aspect ofthe claimed autopoietic organisation.Note that this discrepancy is not a stochasticor probabilistic one: the algorithm as givenmakes bonding e�ectively deterministic wherepossible, (the only stochastic element arisesin choosing between multiple available bondingcon�gurations, not in deciding whether bondsshould form at all). Thus, it does not seemplausible that, in the given experimental con-�gurations, it simply \chanced" that certain Lparticles did not bond to each other.However, we again �nd that, if the program inuse was closely related to the EXP29.FOR code(rather than the algorithm as stated) this mayprovide some explanation.Firstly, the overall algorithm of EXP29.FOR in-volves scanning the space in a systematic, Westto East, then North to South, raster pattern.There are several such scans per timestep; butproduction and bonding are implemented in thesame scan. This happens to interact with thedeterministic pattern of production events injust such a way that all but one of the ini-tially produced L particles appear in positionsthat have already been processed in that scan.Thus they are not processed for bonding untilthe second timestep.14Secondly, EXP29.FOR implements some specialconstraints on bonding. While I have not beenable to fully decipher the intentions here, I havebeen able to explicitly identify some of theseconstraints. The most crucial seems to be that14There is one L initially produced by EXP29.FOR that isstill processed for bonding; but it is isolated from the otherL particles and thus cannot bond in practise within that �rsttimestep. In any case, that particular L particle does notappear in �gure 5, indicating either an error in redrawing,or some detailed discrepancy between the code of EXP29.FORand that actually used to generate this diagram.23

Page 26: Computational Autopoiesis: The Original Algorithm

S

S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

LL

L

S

L

S

L L

S S

L

S

L

S

L

S

S

S

S

S S S S

S S S S S

S S S S

S S S S S

S S S S S

S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

LL

L

S

L

L L

S S

L

S

S

SS

S

L

S

L

L

T = 45 N(L) = 18 N(H) = 3

T = 47 N(L) = 19 N(H) = 5

S

S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

LL

L

L

S

L

S

L L

S

S

L

S

L

S

L

S

S

S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S S

S S S S

S S S S S S S S S

S S S S S S S S S S

S S S S S S S S S

S S S S S S S S S S

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

7

8

9

KL

L

L

L L

L

L

L L

LL

L

S

L

L L

S S

L

S

S

S

S

S

L

L

T = 44 N(L) = 19 N(H) = 3

T = 46 N(L) = 18 N(H) = 3Figure 7: Experimental run: steps 44{47.24

Page 27: Computational Autopoiesis: The Original Algorithm

on bonding of a free L particle, and appearsat lines 232{3 of the listing. The e�ect of thisis that a free L particle can form a bond onlyif there is no more than one doubly-bondedL particle in its immediate (Moore) neighbor-hood. In e�ect, this tends to inhibit the forma-tion of bonds by free L particles that are im-mediately adjacent to an existing chain of Lparticles. It establishes a sort of bond inhib-ition \�eld" around such a chain. In particular,it is a mechanism to prevent free L particles,produced inside a membrane formed by the clos-ure of such a chain, from bonding to each other(provided, of course that the space inside is nottoo large).Clearly, this can explain the otherwise puzzlinglack of bond formation between T = 46 andT = 47, already discussed. More importantly,it provides a possible mechanism to ensure thecontinued mobility of the L particles trappedinside the membrane, and thus their continuedavailability to migrate to a rupture site. Thiscertainly appears to be a very important mech-anism in the attainment of the desired autopoi-etic closure. Yet, there is no hint of such amechanism either in (Varela et al. 1974), noreven in the contemporary descriptive account ofPROTOBIO. This suggests to me the possibilitythat, at the time of writing the paper, the au-thors themselves may no longer have been fullyaware of all the interactions (or their signi�c-ance) coded into the model.We have seen how a number of the most puzz-ling discrepancies between the experimental resultsand the algorithm of (Varela et al. 1974) can beexplained by assuming that the diagrams were pro-duced by a program at least closely related to thatof EXP29.FOR. However, a corollary of this is thatthe algorithm implemented by EXP29.FOR is indeedsigni�cantly di�erent from that actually describedin (Varela et al. 1974). This suggests the possibilitythat the illustrated experimental results may havederived from a relatively early version of the model(i.e. closely related to EXP29.FOR), while the al-gorithm may date from a much later (more complexand/or sophisticated) version. It is impossible todetermine this more exactly, so long after the event.However, in support of this conjecture, I may notethat Varela's own published account (Varela 1996)explains that this work was done under very com-plex and volatile circumstances in Chile, shortly be-fore the violent overthrow of the Allende govern-ment. Furthermore, there was a substantial delaybetween the original work and the preparation of

the �nal published manuscript. Taken together, itseems to me that these factors could reasonably ex-plain an accidental (albeit substantial) version mis-match between the published algorithm and the ex-perimental results.6 ConclusionThe substantive criticisms of (Varela et al. 1974)presented in this report can be summarised as fol-lows:� The presented algorithm implements the modelchemistry in a way which is obscure andcounter-intuitive, particularly in relation to thebonding reaction.� The algorithm itself is unclear and ambiguousin places.� The presented experimental data are not con-sistent with the algorithm.� In fact, it seems likely that the experimentaldata actually derived from a program closelyrelated to that of EXP29.FOR, and thus quitedi�erent in substantial detail from the presentedalgorithm.� By critical consideration of the experimentalresults and of the EXP29.FOR code, animportant|perhaps crucial|constraint on thebonding reaction has been re-discovered:namely that bonding of free L particles be in-hibited in the immediate vicinity of a chain ofsuch particles. This interaction can now beclearly recognised as important to the intendedautopoietic phenomena. However, this interac-tion has not, to my knowledge, been explicitlymentioned in any previous description of themodel.All these defects arise at least in part from thefact that the target paper dates from the very earlydays of this kind of biological modeling. Indeed, theidea of using this particular form of computationalmodel should be seen as highly original for its time,and the authors deserve considerable credit for that.I regard the concept of autopoiesis, although stillsomewhat vague, to be a very useful one in clarifyingthe conditions for discussing the origin of life. To thisextent, the concept, and its computational modelingor realisation, is potentially very signi�cant for thedevelopment of the �eld of Arti�cial Life (Langton1989).25

Page 28: Computational Autopoiesis: The Original Algorithm

The criticisms raised here should not be regardedas detracting from these genuine and importantachievements.Nonetheless: from the point of view of continu-ing or developing the particular model presented inthe target paper, these criticisms represent real andserious obstacles, which need to be overcome. Inparticular, I make the following concluding points:� The discrepancies between the experimentalruns and the given algorithm mean that thedemonstration of basic autopoietic organisationin computational media claimed by the targetpaper must be regarded as weak.� There are published descriptions of independ-ent implementations of autopoietic organisationin computational media (Zeleny 1977, Zelany &Pierre 1976). However, I have found the corres-ponding algorithm descriptions even more dif-�cult to follow than the original presented in(Varela et al. 1974). The corresponding codewas made available at the time, but I under-stand it is no longer so.15� As a general principle, the publication of ad-equate information to allow independent assess-ment and testing of any claims made is a cru-cial distinguishing feature of the scienti�c en-terprise. At the time of original publication of(Varela et al. 1974) it was neither technicallynor economically feasible to include full sourcecode with the publication (in machine readableformat). Therefore the authors opted to includea semi-formal algorithm. This was surely thebest practise possible at the time. However, aswe have seen, it su�ers from serious practicalde�ciencies, and does not actually meet the de-sired standard of allowing independent assess-ment and testing. Critically, it seems, in thisparticular case, that there was an important in-teraction present in the code but not mentionedat all in the description; and this may not be allthat exceptional an occurrence.� The technology is now available to augment theuse of a published summary, or algorithm, ofmodel code. At a basic level, the World WideWeb allows full source code to be made easilyavailable to any interested researcher, in ma-chine readable format. At a more advancedlevel, the emerging availability of standardisedmodeling environments, such as the Swarm sim-ulation system16, should signi�cantly ease the15Milan Zeleny, personal communication.16http://www.santafe.edu/projects/swarm

burden involved in independent examinationand assessment of such published models.� I suggest that it would thus be bene�cial to re-implement the original algorithm|and variousrelated (ideally, simpler) systems modeling thesame qualitative chemistry|to establish howrobust, or otherwise, the autopoietic phenomen-ology is in these systems; and it may be es-pecially bene�cial to do this using the Swarmsimulation system, and make full source codeof the implementation available via the WorldWide Web. This is the focus of a continuingresearch e�ort, and is the subject of a plannedcompanion report.

26

Page 29: Computational Autopoiesis: The Original Algorithm

ReferencesLangton, C. G. (1989), Arti�cial Life, in C. G. Lang-ton, ed., `Arti�cal Life', Vol. VI of Sante FeInstitute Studies in the Sciences of Complex-ity, Addison-Wesley Publishing Company, Inc.,Redwood City, California, pp. 1{47.Maturana, H. R. & Varela, F. J. (1973), Autopoiesis:The Organization of the Living, in Autopoiesisand Cognition: The Realization of the Living(Maturana & Varela 1980), pp. 59{138. Dated1973. First published 1972 in Chile under thetitle De Maquinas y Seres Vivos, Editorial Uni-versitaria S.A.Maturana, H. R. & Varela, F. J. (1980), Autopoiesisand Cognition: The Realization of the Liv-ing, Vol. 42 of Boston Studies in the Philo-sophy of Science, D. Reidel Publishing Com-pany, Dordrecht, Holland. With a preface to`Autopoiesis' by Sta�ord Beer. Series editors:Robert S. Cohen and Marx W. Wartofsky.Varela, F. J. (1996), `The Early Days of Autopoiesis:Heinz and Chile', Systems Research 13(3), 407{416.Varela, F. J., Maturana, H. R. & Uribe, R.(1974), `Autopoiesis: The Organization of Liv-ing Systems, its Characterization and a Model',BioSystems 5, 187{196.Zelany, M. & Pierre, N. A. (1976), Simulation ofSelf-Renewing Systems, in E. Jantsch & C. H.Waddington, eds, `Evolution and Conscious-ness: Human Systems in Transition', Addison-Wesley Publishing Company, Reading, Mas-sachusetts, chapter 7, pp. 150{165.Zeleny, M. (1977), `Self-Organization of Living Sys-tems: A Formal Model of Autopoiesis', Inter-national Journal of General Systems 4, 13{28.

AcknowledgmentsI am particularly grateful to Francisco Varela forhelping me with questions about the original model,and in giving me access to related, previously un-published, materials (some of which are now presen-ted in appendix A). I am also grateful to MaritaPrandoni, of the Santa Fe Institution, for her assist-ance in translating some of these materials.Initial work on this detailed re-analysis of (Varelaet al. 1974) was carried out with the help of myformer student, Hyder Aswad.All errors remain, of course, my own responsibil-ity.This report was written while I was a visiting re-searcher (1996/97) with the SwarmProject Group atthe Santa Fe Institute. This visit was made possibleby generous support from Dublin City Universityand the Swarm Project. Swarm has been supportedby Grant No. N00014-94-1-G014 from the Depart-ment of the Navy, Naval Research Laboratory, act-ing in cooperation with the Advanced Research Pro-jects Agency. Swarm has also bene�ted from earliersupport from The Carol O'Donnell Foundation andfrom Mr. and Mrs. Michael Grantham.I am indebted to the School of Electronic Engin-eering in DCU (particularly through the agency ofits Head, Charles McCorkell) for continuing encour-agement.The html version of the article could not have beencreated without the bene�t of the LaTeX2HTML17translator developed by Nikos Drakos18 and theHarvard19 extensions for author/date citations de-veloped by Peter Williams20 and Thorsten Schnier.Revision HistoryFirst published in January 1997, simultaneously asWorking Paper No. 97-01-001 of the Santa Fe In-stitute and as Technical Report No. bmcm9701 of theSchool of Electronic Engineering of Dublin City Uni-versity.17http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html18http://cbl.leeds.ac.uk/nikos/personal.html19http://www.arch.su.edu.au/~peterw/latex/harvard/20http://www.arch.su.edu.au/~peterw/index.html27

Page 30: Computational Autopoiesis: The Original Algorithm

Author Contact InformationBarry McMullinSanta Fe Institute(Visiting Researcher 1996/97)1399 Hyde Park RoadSanta Fe, NM 87501USAVoice: +1-505-984-8800Fax: +1-505-982-0565E-mail: [email protected] Of Electronic EngineeringDublin City University,Dublin 9,IRELANDVoice: +353-1-704-5432Fax: +353-1-704-5508E-mail: [email protected]: http://www.eeng.dcu.ie/~mcmullinCopyrightThis report is copyright c 1997 by Barry McMullin.Permission is hereby granted to private individu-als to access, copy and distribute this work, for pur-poses of private study only, provided that the distri-bution is complete and unmodi�ed, is accompaniedby this copyright notice, and that no charges arelevied; multiple copying for class use in educationalorganisations is speci�cally permitted.The work may not be accessed or copied, in wholeor in part, for commercial purposes, except with theprior written permission of the author.All other rights reserved.

RetrievalThe resources comprising this report are electron-ically retrievable, in various formats, via the WorldWide Web. The root (directory) URL is:http://www.santafe.edu/sfi/publications/Working-Papers/97-01-001/This is also mirrored at:http://www.eeng.dcu.ie/~autonomy/bmcm9701/Either of these URL's will directly access the rootnode of the HTML format report. Alternatively, anadditional �lename may be appended, to retrieve oneof the other formats, or related resources, as follows:� The complete set of �les making up theHTML format of the report is avail-able in the single compressed archive �lebmcm9701.html.tar.gz (c. 124 KByte), whichcan be conveniently downloaded for localand/or o�ine browsing.� A printable version of the report is avail-able in postscript format as �le bmcm9701.ps(c. 549 KByte, 42 pages) or in compressed formas �le bmcm9701.ps.gz (c. 145 KByte).� The original LATEX source of the report is avail-able as �le bmcm9701.tex (c. 145 KByte) orin compressed form as �le bmcm9701.tex.gz(c. 46 KByte).� The BibTEX source for the reference list is avail-able as �le bmcm9701.bib (c. 4 KByte).� The FORTRAN IV source code listed in ap-pendix A.3 is available in the �les exp29.for(c. 9 KByte) and nal.for (<1KByte).� Finally, a complete set of all the �les just listedis available as a single compressed archive �lebmcm9701.tar.gz (c. 317 KByte).28

Page 31: Computational Autopoiesis: The Original Algorithm

A Appendix: PROTOBIOThis appendix contains two previously unpublishedresources, relating to the early computer model ofAutopoiesis by Varela et al., then referred to asPROTOBIO.First there is a short text describing the model.I provide here both the original Spanish text, ver-batim, and a rough translation into English21. Iinclude some additional comments of my own inter-spersed with the translation.Secondly, I include the FORTRAN IV source codelisting of a version of the described program.22 Thiswas produced by manually rekeying a photocopy ofthe original program listing. In general, I attemptedto preserve the original listing exactly verbatim, in-cluding comments, indentation, etc. The quality ofthe photocopy was poor, and there may be result-ing errors in the rekeyed version. However, it hasbeen successfully compiled. The program uses oneexternal subroutine, NAL. A handwritten commenton the listing identi�ed this as a \library" routine;however, no further information is available. Frominspection of the code I have inferred that this wasa random number generator. Thus, I also providehere a listing for a sample implementation of thissubroutine, based on my inferred semantics for it;using this, I have successfully built and executed theprogram on a Sun (SunOS 5.5, Sun f77 compiler)platform.These materials are undated, but probably origin-ated c. 1971. The authors are not explicitly recorded,but Francisco Varela attributes them collectively tohimself, Humberto Maturana and Ricardo Uribe.The documents were only recently rediscovered byFrancisco Varela, and I am very grateful to him bothfor allowing me access to them, and for giving hispermission for their publication here.Note that it is not possible to be sure how thematerials presented here relate to the results �nallypresented in (Varela et al. 1974).21I am indebted to Ms. Marita Prandoni of the Santa FeInstitute for her assistance in making this translation.22This is also available as a standalone source code �le|seethe Retrieval section.

A.1 Spanish TextPROTOBIOEl programa PRO1 simula un ambiente bidimen-sional en el cual interact�uan tres elementos: A, B yM, representados A por "@", B por "�" y M en sus dis-tintas fases pro "-", "+" y "*" en las �guras y porM-, M+ and M* en el texto, respectivamente.El ambiente es una super�cie de coordenadas Xe Y de dimensiones 30 por 30 en nuestros experi-mentos que se observa en cada instante. Sobre estasuper�cie se ubican uno o m�as elementos "@" y nu-meros "�" sobre cuya generaci�on no nos pronunciare-mos por ahora.Los elementos "�" se mueven al azar sobre la su-per�cie y permanencen en cada neuva posici�on dur-ante tres instantes."@" se mueve al azar sobre la super�cie, sin sa-lirse de ella, un espacio en cada instante. El movi-miento de "@" es similar al del rey del ajedrez ys�olo se mueve si la nueva ubicaci�on est�a desocupada.Los "�" vecinos a "@" no se mueven mientras per-manezcan en esa situaci�on."@" es capaz de \sintetizar" un elemento M a partirde dos "�" que se ubiquen en su vecindad. Por co-modidad para la explicaci�on este elemento M se rep-resentar�a en las �guras por "-" y en el texto porM-Ejemplos:. . -@ => @ @ => @. . -.. @ => - @Este elemento M- se mueve un espacio en cada in-stante en una direcci�on al azar. A diferencia del ele-mento "@", si encuentra la nueva ubicaci�on ocupada,busca (al azar) otra ubicaci�on desocupada, duranteocho veces23. El elemento M- se mueve hasta quequeda vecino a otro M- (s�olo uno), y luego queda in-movil. Los elementos M que lleguen a esta situaci�on23[Escritura] NOTA: En esta busqueda no cuenta las vecesen que encuentra elementos M en las fases + & * en la neuvaubicati�on. Esto sultimo lo hace moverse preferentemente alo largo de canales de M.29

Page 32: Computational Autopoiesis: The Original Algorithm

se representar�an en las �guras por "+" y en el textopor M+.Ejemplos: - + - +=> =>- - => + + - + - +Este par de elementos M+ es capaz de \captar" einmovilizar otros M- que se ubiquen en cualquiera delas posiciones se~naladas por 0:0 0 0 00 + + 00 0 0 0Ejemplos:- +=>+ + + + + + - => + + +- +- + + => +=>+ + + + + +Todos aquellos M+ anqueados por otras M+ per-der�an la capacidad de \captar" elementos M- y serepresentar�an en las �guras por "*" y en el texto porM*. Mientras M+ est�e en el extremo de una cadenade M*, podr�a \captar" elementos M- para anexarlasa la cadena.Los elementos M decaen despu�es de un n�umero �-nito de instantes, en dos elementos "�".Los M* que pasen a ser extremo de una cadenade M* por decaimiento de sus vecinos volver�an a serM+ y podr�an \captar" elementos M- en las siguientesposiciones (0): 0 00 + * * * *0 0 ***0 + 00 0 0

Las cadenas de M* pueden cerrarse como siformasen una membrana y si en este proceso quedaun "@" englobado por ellas, se observa que el sistemafA, B, Mg se mantiene como una unidad din�amica apesar del decaimiento de los M y de la movilidadde los "@", mientras este no deje de estar su�ciente-mente englobado por el conjunto de M. Si el elemento"@" se escapa de la cadena englobante de M, la unidaddesaparece.La mantenci�on de este sistema din�amico se debea que el elemento "@" sigue generando elementos M-a partir de elementos "�", para los cuales la \mem-brana" es permeable. De esta manera, la \mem-brana" (o cadena cerrada) de elementos M* llega aenglobar una poblaci�on de elementos M- que est�apronta a regenerar la \membrana" en los puntos enque decaen los elementos M* que la forman. En otraspalabras, se produce el siguiente ciclo: El elemento"@" sintetiza elementos que formar�an una \mem-brana" que a su vez impedir�a que este elemento seescape.Todas aquellas cadenas de M* que se cierren sinun elemento "@" en un interior est�an destinadas adesaparecer con el decaimiento de las M*. La prob-abilidad de que sean regeneradas por elementos M-que vienen desde afuera de la \membrana" es muybaja.Por �ultimo, es evidente que estos sistemas fA, B,Mg pueden extenderse a sistemas tridimensionales.Se estima que el realizar un modelo tridimensionalimplica di�cultades que no se justi�ca superar eneste momento dado que la extensi�on del modelopropuesto a tres dimensiones no produce modi�ca-ciones conceptuales. [Escritura] En el modelo tridi-mensional, los movimientes de @ y M- se produciuan[?] en un espacio tridimensional. Las cadenas deM* serian [?] ahora super�cies cuyos bordes serian[?] M+ capaces de \captar" neuvos M- que hacian[?] crecer otras super�cies posibilitando il cierre deellos, englobando o no un elemento @. El volumeninterno de esta \mebrana-esfera" se poblar�a de ele-mentos M- que ester�an pronta a regenerar la \mem-brana" en los puntos en que se destruya [?] pordecaimiento de las M*.30

Page 33: Computational Autopoiesis: The Original Algorithm

A.2 English TranslationPROTOBIOThe program PRO1 simulates a two dimensionalenvironment, within which three [kinds of] particlesinteract: A, B and M. A is denoted by "@" and B by"�". The distinct phases of M are denoted by "-","+" and "*" in the diagrams, and by M-, M+ and M*in the text, respectively.The environment is a plane with coordinates Xand Y, of dimensions 30 by 30 in our experiments.This can be observed at each timestep. One or more"@" particles, and numerous "�" particles are locatedon the plane. The generation [origin?] of these willnot be discussed here.The "�" particles move randomly over the plane,remaining in each new position for three timesteps.[Comment: This was presumably designedto reduce the mobility of substrate relativeto the other dynamics of the model. Noother details are provided of the rationalefor this. - BMcM]"@" [particles] move randomly over the plane,without leaving it, one space at a time. The move-ment of "@" is similar to that of the king in chess,and can occur only if the new location is vacant. "�"particles do not move as long as they are adjacentto an "@".[Comment: Making "�" particles immob-ile while adjacent to @ should tend to in-crease the rate of the production reaction.- BMcM]"@" is capable of \synthesising" an M particle fromthe combination of two "�" particles which are loc-ated in its vicinity. For simplicity of explanation,this M particle is represented in the diagrams by "-"and in the text by M-.Examples:. . -@ => @ @ => @. . -.. @ => - @

This M- particle moves one position in a randomdirection in each timestep. In contrast to the "@"particles, if it encounters a new location which isoccupied, there will be a search (at random) foranother vacant location, for a maximum of eightiterations.24 The M- particle will continue movinguntil it comes into the vicinity of another M- (justone), and then becomes immobile. The M particleswhich arrive in this situation are represented in thediagrams by "+" and in the text by M+.Examples: - + - +=> =>- - => + + - + - +This pair of M+ particles has the capacity to \cap-ture" and immobilise another M- if it arrives in anyof the locations symbolised [below] by 0:0 0 0 00 + + 00 0 0 0Examples:- +=>+ + + + + + - => + + +- +- + + => +=>+ + + + + +Each of the M+ particles which is anked [on bothsides?] by another M+ loses the capacity to \cap-ture" M- particles and is represented by "*" in thediagrams and by M* in the text. Meanwhile, thoseM+ [particles] at the ends of the chain of M* particlescan still capture M- particles and incorporate theminto the chain.24[Handwritten] Note: In this search, the times when anM particle in the + or * state is encountered in the new loc-ation are not counted. In this way there will be preferentialmovement along channels [?] of M.31

Page 34: Computational Autopoiesis: The Original Algorithm

[Comment: Note that this early discus-sion did not refer explicitly to bonds, bondangles, etc.; nor were bonds explicitly rep-resented in the FORTRAN code. However,the basic concepts described here seemsto be entirely compatible with the sub-sequently published description in termsof explicit bonds (Varela et al. 1974). -BMcM]The M particles disintegrate into two "�" particlesafter a �nite number of timesteps.[Comment: This is somewhat ambiguous.It might be interpreted as meaning thatall M particles have the same, �xed, life-time; or, perhaps, that they are assignedlifetimes chosen (randomly) from some spe-ci�ed range when they are created. Eitherway, however, it is noticeably di�erentfrom the mechanism eventually describedin (Varela et al. 1974), where disintegra-tion may occur with a �xed probability pertimestep, independently of the \age" of theparticle. Having said this, it is not appar-ent that these variations would have anysubstantive e�ect on the phenomenology. -BMcM]The M* [particles] which happen to be at the endof a chain of M* [particles] following a disintegrationin their vicinity, revert to being M+ [particles] andcan \capture" M- particles in the following positions(0): 0 00 + * * * *0 0 ***0 + 00 0 0[sic: It seems clear that this diagram wasoriginally mistyped, since the * particlesare not aligned on the same lattice as the+ particles and the 0 markers. However,the general intention is clear, and actu-ally seems to anticipate the later stipulationthat bond angles must not be less than 90�.- BMcM]

A membrane will be formed if the chain of M*[particles] closes; and if an "@" particle is enclosed inthis process then it will be observed that the systemfA, B, Mg maintains itself as a dynamic unity by bal-ancing the disintegration of the M [particles] againstthe mobility of the "@" particle, while keeping [the"@" particle?] su�ciently enclosed by the conjunc-tion of the M [particles]. If the "@" particle shouldescape from the enclosing chain of M [particles], theunity will disappear.The maintenance of this dynamic system requiresthat the "@" particle must continue to produce M-particles by combining the "�" particles; for whichreason the \membrane" is permeable to the latter[the "�" particles]. In this way, the \membrane" (orclosed chain) of M* particles leads to the enclosureof a population of M- particles, which are ready torepair the \membrane" at those points where the M*particles forming it disintegrate. In other words, thefollowing cycle is produced: the "@" particle syn-thesises particles which form a \membrane" which,in turn, prevents this particle from escaping.Any chain of M* [particles] which closes withoutenclosing an "@" particle is destined to disappearwith the disintegration of the M* [particles]. Theprobability that it would be repaired by M- particlesthat come from outside the \membrane" is very low.In conclusion, it is evident that the system fA, B,Mg could be extended to a three dimensional system.[However] it is judged that the implementation ofa three dimensional model would involve di�cultieswhich are not worth overcoming at this stage, asthe extension of the proposed model to three di-mensions would not involve any conceptual modi-�cations. [Handwritten] In the three dimensionalmodel the motion of the @ and M- particles wouldtake place in a three dimensional space. The chainsof M* [particles] would now become surfaces, withedges composed of M+ [particles] capable of \captur-ing" new M- [particles] allowing the surface to growand close, enclosing the @ particle. The volume in-side this \spherical-membrane" would become popu-lated by M- particles, ready to repair the \membrane"at the points where it is destroyed [disrupted?] bydisintegration of the M* particles.32

Page 35: Computational Autopoiesis: The Original Algorithm

A.3 FORTRAN IV Program ListingsDec 16 12:13 1996 exp29.for Page 11 C EXPERIMENTO 292 INTEGER*2 HAB(30,30),REL(30,30),MOV2(30,30)3 INTEGER B(8)/'.','-','+', '*',' ',' ',' ','@'/4 INTEGER ESC(30,30)5 INTEGER*2 P8X(10),P8Y(10)6 INTEGER XMAX,YMAX7 INTEGER*2 DM,VID1,VID2,VID3,VID4,VID8,DT,TMAX,TESC,T8 INTEGER*2 XHR1,XHR2,YHR1,YHR2,X,Y9 INTEGER*2 XH1,XH2,YH1,YH210 INTEGER*2 X8,Y8,D1,D2,D,X81,X82,X83,Y81,Y82,X8A,Y8A,XPF8,YPF811 INTEGER*2 XPF0,YPF012 INTEGER*2 X1,Y1,X11,X12,X13,Y11,Y12,X1A,Y1A13 INTEGER*2 X2,Y2,XD2,YD2,XD21,YD21,XPF2,YPF2,X21,X22,X23,Y21,Y2214 INTEGER*2 X2A,Y2A,C2,XPFA2,YPFA2,C23,C2415 INTEGER*2 X3,Y3,C3,X31,X32,X33,Y31,Y32,X3A,Y3A16 INTEGER*2 X4,Y4,C4,X41,X42,X43,Y41,Y42,X4A,Y4A17 INTEGER VMIN4,VMAX418 XMAX=3019 YMAX=3020 VID1=321 VID2=6022 VID3=3023 VMIN4=524 VMAX4=5025 VID8=30026 MIDX2=-127 MADX2=128 MIDY2=-129 MADY2=130 NMAX2=831 MIDX8=-132 MADX8=133 MIDY8=-134 MADY8=135 MIX8=836 MAX8=2337 MIY8=838 MAY8=2339 N1=040 NUM1=041 NUM8=442 P8X(1)=2043 P8Y(1)=1044 P8X(2)=1045 P8Y(2)=1046 P8X(3)=2047 P8Y(3)=2048 P8X(4)=1049 P8Y(4)=2050 N8=0 33

Page 36: Computational Autopoiesis: The Original Algorithm

Dec 16 12:13 1996 exp29.for Page 251 DT=152 TESC=DT53 TMAX=30054 T=155 NIM1=73556 NAL1=NAL(0,0,NIM1)57 C58 C **********************************************************************59 C60 C HACER UNO HAB(X,Y),REL(X,Y) Y MOV2(X,Y)61 1000 XHR1=162 XHR2=XMAX63 YHR1=164 YHR2=YMAX65 DO 1020 Y=YHR1,YHR266 DO 1010 X=XHR1,XHR267 HAB(X,Y)=168 REL(X,Y)=169 MOV2(X,Y)=070 1010 CONTINUE71 1020 CONTINUE72 C73 C **********************************************************************74 C75 C UBICAR LOS 8'S76 DO 1810 I=1,NUM877 X=P8X(I)78 Y=P8Y(I)79 HAB(X,Y)=880 REL(X,Y)=VID881 1810 CONTINUE82 C83 C **********************************************************************84 C85 C ADVANCE DEL PELOJ86 1800 CONTINUE87 DO 1720 Y=1,YMAX88 DO 1710 X=1,XMAX89 IF(HAB(X,Y).EQ.1) GO TO 170590 IF(HAB(X,Y).EQ.0) GO TO 170391 IF(REL(X,Y).NE.0)REL(X,Y)=REL(X,Y)-192 C DETECTAR SI HAY ELEMENTOS QUE DEBEN DECAER 0 1'S QUE DEBEN MOVERSE93 IF(REL(X,Y).GT.0) GO TO 170594 IF(HAB(X,Y).EQ.2) NUM1=NUM1+195 IF(HAB(X,Y).EQ.3) NUM1=NUM1+196 IF(HAB(X,Y).EQ.4) NUM1=NUM1+197 HAB(X,Y)=198 REL(X,Y)=199 GO TO 1705100 1703 CONTINUE 34

Page 37: Computational Autopoiesis: The Original Algorithm

Dec 16 12:13 1996 exp29.for Page 3101 C MOVIMIENTO DE LOS 1'S (MEDIANTE MOVIENTO DE LOS 0'S)102 XPF0=NAL(1,XMAX,0)103 YPF0=NAL(1,YMAX,0)104 IF(HAB(XPF0,YPF0).NE.1) GO TO 1710105 HAB(X,Y)=1106 REL(X,Y)=1107 IF(NUM1.GT.0) GO TO 1702108 HAB(XPF0,YPF0)=0109 REL(XPF0,YPF0)=0110 GO TO 1710111 1702 NUM1=NUM1-1112 GO TO 1710113 1705 CONTINUE114 1710 CONTINUE115 1720 CONTINUE116 NUM1A=NUM1117 1100 CONTINUE118 C119 C **********************************************************************120 C121 C MOVIMIENTO DE LOS 8'S122 1200 CONTINUE123 DO 1820 I=1,NUM8124 X=P8X(I)125 Y=P8Y(I)126 NAX8=NAL(MIDX8,MADX8,0)127 NAY8=NAL(MIDY8,MADY8,0)128 XPF8=X+NAX8129 YPF8=Y+NAY8130 IF(HAB(XPF8,YPF8).NE.1) GO TO 1820131 IF((HAB(XPF8,Y).EQ.4).AND.(HAB(X,YPF8).EQ.4)) GO TO 1820132 IF((XPF8.LT.MIX8).OR.(XPF8.GT.MAX8)) GO TO 1820133 IF((YPF8.LT.MIY8).OR.(YPF8.GT.MAY8)) GO TO 1820134 HAB(X,Y)=1135 HAB(XPF8,YPF8)=8136 REL(XPF8,YPF8)=REL(X,Y)137 REL(X,Y)=1138 P8X(I)=XPF8139 P8Y(I)=YPF8140 1820 CONTINUE141 C142 C **********************************************************************143 C144 1821 CONTINUE145 C RECORRER HAB(X,Y)146 XH1=1147 XH2=XMAX148 YH1=1149 YH2=YMAX150 DO 1220 Y=YH1,YH2 35

Page 38: Computational Autopoiesis: The Original Algorithm

Dec 16 12:13 1996 exp29.for Page 4151 DO 1210 X=XH1,XH2152 IF(HAB(X,Y).EQ.0) GO TO 1210153 IF(HAB(X,Y).EQ.1) GO TO 1210154 IF(HAB(X,Y).EQ.2) GO TO 200155 IF(HAB(X,Y).EQ.3) GO TO 300156 IF(HAB(X,Y).EQ.4) GO TO 400157 IF(HAB(X,Y).EQ.8) GO TO 1158 GO TO 2990159 C160 C **********************************************************************161 C162 C ELEMENTO 8163 1 X8=X164 Y8=Y165 C RECORRER EL ENTORNO DE ESTE 8166 D=1167 X81=X8-D168 X82=X8+D169 Y81=Y8-D170 Y82=Y8+D171 DO 20 Y8A=Y81,Y82172 X83=2173 IF((Y8A.EQ.(Y8-D)).OR.(Y8A.EQ.(Y8+D))) X83=1174 DO 10 X8A=X81,X82,X83175 IF(HAB(X8A,Y8A).EQ.0) GO TO 10176 IF(HAB(X8A,Y8A).EQ.1) GO TO 3177 GO TO 10178 3 IF((HAB(X8A,Y8).EQ.4).AND.(HAB(X8,Y8A).EQ.4)) GO TO 10179 GO TO 100180 C181 C **********************************************************************182 C183 C ELEMENTO 1184 100 X1=X8A185 Y1=Y8A186 IF(D.NE.1) GO TO 10187 C RECORRER EL ENTORNO DE ESTE 1188 X11=X1-1189 X12=X1+1190 Y11=Y1-1191 Y12=Y1+1192 DO 120 Y1A=Y11,Y12193 X13=1194 IF(Y1A.EQ.Y1) X13=2195 DO 110 X1A=X11,X12,X13196 IF(HAB(X1A,Y1A).NE.1) GO TO 110197 IF((HAB(X1A,Y1).EQ.4).AND.(HAB(X1,Y1A).EQ.4)) GO TO 110198 HAB(X1A,Y1A)=2199 REL(X1A,Y1A)=VID2200 HAB(X1,Y1)=0 36

Page 39: Computational Autopoiesis: The Original Algorithm

Dec 16 12:13 1996 exp29.for Page 5201 REL(X1,Y1)=0202 GO TO 10203 110 CONTINUE204 120 CONTINUE205 10 CONTINUE206 20 CONTINUE207 GO TO 1210208 C209 C **********************************************************************210 C211 C ELEMENTO 2212 200 X2=X213 Y2=Y214 C TRANSFORMACION DE ESTE 2215 208 C2=0216 C23=0217 C24=0218 C RECORRER EL ENTORNO DE ESTE 2219 X21=X2-1220 X22=X2+1221 Y21=Y2-1222 Y22=Y2+1223 DO 220 Y2A=Y21,Y22224 X23=1225 IF(Y2A.EQ.Y2) X23=2226 DO 210 X2A=X21,X22,X23227 IF(HAB(X2A,Y2A).EQ.2) C2=C2+1228 IF(HAB(X2A,Y2A).EQ.3) C23=1229 IF(HAB(X2A,Y2A).EQ.4) C24=C24+1230 210 CONTINUE231 220 CONTINUE232 C SI NO HAY MAS DE UN 4 Y HAY UN 2 O UNO O MAS 3'S, ESTE 2 SE TRANSFORMA233 IF(.NOT.((C24.LE.1).AND.((C2.EQ.1).OR.(C23.EQ.1)))) GO TO 221234 HAB(X2,Y2)=3235 REL(X2,Y2)=VID3236 GO TO 1210237 C MOVIMIENTO DE ESTE 2238 221 N2=0239 IF(MOV2(X2,Y2).NE.1) GO TO 223240 MOV2(X2,Y2)=0241 GO TO 1210242 223 NAX2=NAL(MIDX2,MADX2,0)243 NAY2=NAL(MIDY2,MADY2,0)244 XPF2=X2+NAX2245 YPF2=Y2+NAY2246 IF((HAB(XPF2,YPF2).EQ.4).OR.(HAB(XPF2,YPF2).EQ.3)) GO TO 223247 IF((XPF2.LT.2).OR.(XPF2.GT.(XMAX-1))) GO TO 1210248 IF((YPF2.LT.2).OR.(YPF2.GT.(YMAX-1))) GO TO 1210249 IF((HAB(XPF2,Y2).EQ.4).AND.(HAB(X2,YPF2).EQ.4)) GO TO 205250 IF(HAB(XPF2,YPF2).EQ.1) GO TO 20337

Page 40: Computational Autopoiesis: The Original Algorithm

Dec 16 12:13 1996 exp29.for Page 6251 205 N2=N2+1252 IF(N2.GE.NMAX2) GO TO 1210253 GO TO 223254 203 HAB(X2,Y2)=1255 HAB(XPF2,YPF2)=2256 REL(XPF2,YPF2)=REL(X2,Y2)257 REL(X2,Y2)=1258 IF((XPF2.GT.X2).OR.(YPF2.GT.Y2)) MOV2(XPF2,YPF2)=1259 GO TO 1210260 C261 C **********************************************************************262 C263 C ELEMENTO 3264 300 X3=X265 Y3=Y266 C RECORRER EL ENTORNO DE ESTE 3267 C MOLINETE SINISTROGIRO268 X31=X3+1269 Y31=Y3+1270 C3=0271 MAR3=0272 IF((HAB(X31,Y31).EQ.3).OR.(HAB(X31,Y31).EQ.4)) MAR3=1273 305 CONTINUE274 X3A=X31275 Y3A=Y31276 IF((X31.GE.X3).AND.(Y31.LT.Y3)) X3A=X31-1277 IF((X31.LE.X3).AND.(Y31.GT.Y3)) X3A=X31+1278 IF((Y31.LE.Y3).AND.(X31.LT.X3)) Y3A=Y31+1279 IF((Y31.GE.Y3).AND.(X31.GT.X3)) Y3A=Y31-1280 X31=X3A281 Y31=Y3A282 IF((.NOT.((HAB(X31,Y31).EQ.3).OR.(HAB(X31,Y31).EQ.4)))283 2.AND.(MAR3.EQ.1)) C3=C3+1284 IF(((HAB(X31,Y31).EQ.3).OR.(HAB(X31,Y31).EQ.4)).AND.(C3.EQ.0))285 2 MAR3=1286 IF(((HAB(X31,Y31).EQ.3).OR.(HAB(X31,Y31).EQ.4)).AND.(C3.GT.0))287 2 MAR3=0288 IF(.NOT.((C3.GT.0).AND.(C3.LT.6).AND.(MAR3.EQ.0))) GO TO 307289 C TRANSFORMACION DE ESTE 3 EN 4290 HAB(X3,Y3)=4291 REL(X3,Y3)=NAL(VMIN4,VMAX4,0)292 GO TO 1210293 307 CONTINUE294 IF((X31.EQ.X3).AND.(Y31.EQ.(Y3+1))) GO TO 1210295 GO TO 305296 C297 C **********************************************************************298 C299 C ELEMENTO 4300 400 X4=X 38

Page 41: Computational Autopoiesis: The Original Algorithm

Dec 16 12:13 1996 exp29.for Page 7301 Y4=Y302 C RECORRER EL ENTORNO DE ESTE 4303 C MOLINETE SINISTROGIRO304 X41=X4+1305 Y41=Y4+1306 C4=0307 MAR4=0308 IF((HAB(X41,Y41).EQ.4).OR.(HAB(X41,Y41).EQ.3)) MAR4=1309 405 CONTINUE310 X4A=X41311 Y4A=Y41312 IF((X41.GE.X4).AND.(Y41.LT.Y4)) X4A=X41-1313 IF((X41.LE.X4).AND.(Y41.GT.Y4)) X4A=X41+1314 IF((Y41.LE.Y4).AND.(X41.LT.X4)) Y4A=Y41+1315 IF((Y41.GE.Y4).AND.(X41.GT.X4)) Y4A=Y41-1316 X41=X4A317 Y41=Y4A318 IF((.NOT.((HAB(X41,Y41).EQ.3).OR.(HAB(X41,Y41).EQ.4)))319 2.AND.(MAR4.EQ.1)) C4=C4+1320 IF(((HAB(X41,Y41).EQ.3).OR.(HAB(X41,Y41).EQ.4)).AND.(C4.EQ.0))321 2 MAR4=1322 IF(((HAB(X41,Y41).EQ.3).OR.(HAB(X41,Y41).EQ.4)).AND.(C4.GT.0))323 2 MAR4=0324 IF((C4.GT.0).AND.(C4.LT.6).AND.(MAR4.EQ.0)) GO TO 1210325 IF((X41.EQ.X4).AND.(Y41.EQ.(Y4+1)))GO TO 408326 GO TO 405327 408 CONTINUE328 C TRANSFORMACION DE ESTE 4 EN 3329 HAB(X4,Y4)=3330 REL(X4,Y4)=VID3331 GO TO 1210332 C333 C **********************************************************************334 C335 1210 CONTINUE336 1220 CONTINUE337 C338 C **********************************************************************339 C340 C ESCRIBIR HAB(X,Y)341 2000 CONTINUE342 IF(TESC.LT.DT) GO TO 2100343 TESC=0344 WRITE(3,2052) NUM1A,T345 2052 FORMAT('1',///,15X,'NUM1=',I5,45X,'T=',I5,///)346 DO 2020 Y=1,YMAX347 DO 2010 X=1,XMAX348 NN=HAB(X,Y)349 IF(NN.NE.0) GO TO 2005350 ESC(X,Y)=B(7) 39

Page 42: Computational Autopoiesis: The Original Algorithm

Dec 16 12:13 1996 exp29.for Page 8351 GO TO 2010352 2005 ESC(X,Y)=B(NN)353 2010 CONTINUE354 2020 CONTINUE355 WRITE(3,2092) ((ESC(X,Y),X=1,XMAX),Y=1,YMAX)356 2092 FORMAT(' ',50X,30A1)357 C358 C **********************************************************************359 C360 C AVANCE DEL TIEMPO361 2100 IF(T.GE.TMAX) GO TO 3000362 T=T+1363 TESC=TESC+1364 GO TO 1800365 2990 WRITE(3,2992)366 2992 FORMAT('0',///,3X,'ELEMENTO DESCONOCIDO',//)367 3000 STOP368 ENDNov 14 16:15 1996 nal.for Page 11 INTEGER FUNCTION NAL (LO, HI, SALT)2 INTEGER LO, HI, SALT3 INTEGER SEED4 IF (SALT.NE.0) SEED=SALT5 NAL = LO + INT((RAN(SEED) * FLOAT(HI-LO)) + 0.5)6 RETURN7 END40