Document: SCL: An Artificial Chemistry in Swarm
3.3.4 Bond Decay
3.3 Reactions
3.3.2 Disintegration
Bonding is initiated by a primary L particle;
however, in general, the various constraints or
influences affecting bonding are evaluated
symmetrically for both the primary and secondary L
particle.
The factors influencing the bonding reaction
are as follows:
- Bonding is inhibited if an L particle has
already formed two bonds. This sets the maximum
number of bonds to any L particle as two, and
ensures that the only particle aggregates or
``molecules'' which can form are linear ``chains''
rather than any more complex, branching, structures.
- Two other mechanisms or interactions by which
bonding can be inhibited are also provided. Each of
these is qualified by a BOOL parameter
whereby they can be enabled or disabled. These are
essentially intended as alternative mechanisms for
preventing ``premature'' bonding of free L
particles that have been produced within the boundary
of an autopoietic entity. However, even though the
typical mode of operation would be with just one or
the other of these interactions enabled, SCL will
actually allow both to be simultaneously disabled, or
both simultaneously enabled, if desired.
The need for some such form of inhibition
interaction is quite subtle but, it transpires, quite
crucial to the autopoietic phenomenology of the
model; while no such effect was mentioned explicitly
in (Varela et al. 1974), it is almost certain
that it was present in their model. This is discussed
further in (McMullin 1997).
- Inhibition by a neighboring L Chain: This
interaction allows bonding to be inhibited to any
L particle which is alongside (as opposed
to, at the end of) an existing chain of
L particles. This is implemented for any given
L particle by checking whether there are any existing
doubly bonded L particles in its (Moore)
neighborhood. This interaction is qualified by the
BOOL parameter, chainInhibitBondFlag.
If this is YES this inhibition effect is
enabled; if it is NO then it is
disabled.
As discussed in (McMullin 1997), this
particular form of bond inhibition reaction was
inspired by examination of the FORTRAN IV
code for one early version of the model developed by
Varela et al.
- Inhibition by a neighboring K
particle: This is implemented for any given L
particle by checking whether there are any K
particles in its (Moore) neighborhood. This
interaction is qualified by the BOOL
parameter, catInhibitBondFlag. If this is
YES this inhibition effect is enabled; if it
is NO then it is disabled.
This alternate form of bond inhibition reaction was
inspired by (Lizana 1981).
- A second bond to any particular L particle
must form an angle of or more relative to
the first bond. This rules out forming two bonds ``on
top of each other'' (a double bond between the same
two L particles), or with an angle of just
between them.
- Given that a new bond would satisfy the above
constraints for both affected L particles, the
formation of the bond is controlled by a reaction
rate, or probability parameter. More precisely, one
of three possible rate parameters is applied,
depending on the exact conformation of the proposed
new bond:
- If neither L particle already has a bond, the
new bond would initiate a new chain; in that case the
probability is set by the parameter
chainInitiateProbability.
- If just one of the two L particles already
has a bond, then the new bond would extend an already
existing chain by one more particle; in that case the
probability is set by the parameter
chainExtendProbability.
- If both of the L particles already have a
bond, then the new bond would splice together two
existing chains; in that case the
probability is set by the parameter
chainSpliceProbability.
The detailed implementation of the bonding reaction
is as follows:
- If bonding to the primary L is inhibited due
to already having two bonds, or either of the
inhibition interactions (an adjacent doubly bonded
L particle, qualified by
chainInhibitBondFlag, or an adjacent K
particle, qualified by catInhibitBondFlag)
the reaction is terminated.
- A random neighbor (neighborParticle) is
chosen from the default neighborhood.
- If the primary L already has a bond to this
neighbor, or to either of the neighbors at an angle of
to this neighbor, the reaction is
terminated.
- If neighborParticle is not an
L particle the reaction is terminated. Otherwise
it becomes the secondary L particle in the reaction.
- If bonding to the secondary L is inhibited
due to already having two bonds, or either of the
inhibition interactions, the reaction is
terminated.
- If the secondary L already has a bond to
either of its neighbors at an angle of to
the direction from it to the primary L particle, the
reaction is terminated.
- If neither the primary nor secondary
L particles already have a bond,
bondingProbability will be set to
chainInitiateProbability; if just one of them
already has a bond, bondingProbability will be set to
chainExtendProbability; if both of them already
have a bond, bondingProbability will be set to
chainSpliceProbability.
- A bernoulli random variable is evaluated with
probability parameter bondingProbability;
if this evaluates as NO, the
reaction terminates.
- The secondary L particle creates the bond to
the primary L particle (and passes a pointer to
it back to the latter).
- The primary L particle records the presence
of the new bond also. This completes the bonding
reaction.
3.3.4 Bond Decay
3.3 Reactions
3.3.2 Disintegration
Document: SCL: An Artificial Chemistry in Swarm
Copyright © 1997 All Rights Reserved.
Timestamp: Tue Dec 31 19:40:38 GMT 1996
mcmullin@eeng.dcu.ie