

![]() |
![]() |
![]() |

| Up until now the Dynism has been little more than a machine-like automaton, reacting to stimuli with `hard-wired' responses. We will now look at how it might acquire the ability to make `Decisions' and, as a result, become able to learn from experience and begin to behave as if it possessed `consciousness'. We can of course never know if Dynisms will ever possess consciousness, but they may allow us an insight into it. |
| To begin, what happens when the Dynism encounters two Dynamic Objects, Predators for example. Which does it respond to first? And just to make things more complicated, what if one of the objects is a Prey, are at different distances, have different orientations, configurations, or are on the move? And, of course, what happens if there are more than two of them? |
| The simplest mechanism the Dynism can evolve is to just decide between all these things at random. But this is somewhat hit and miss. Wouldn't it be better if the Dynism could somehow evolve `predecisions' in its ROM for as many combinations of objects and attributes as it can through the experience of Evolution? Unfortunately, even if its anatomy could rearrange itself like this, it wouldn't be able to store more than a small proportion of the vast numbers possible. | ![]() |
![]() |
The Dynism instead evolves a set of internal state sensors that create simple Flags when it has had a meal of Prey, or suffered physical damage. These single-square `Gain' or `Loss' Flags are used by a `Decider' Tester to decide which of two Significant Objects to respond to first. These Objects must have different Attributes so that the Decider can distinguish between them, otherwise it can still only decide at random. | ![]() |
| At this stage we will assume the Decider can only decide between two objects. It places their Object Numbers into a new segment of Object RAM as a `Pair' like this. | ![]() |
| The Decider now selects one object at random and causes the Dynism to respond to it first. If the outcome of doing so is a Gain of some kind, a Gain Flag is attached to that object's Number in the Pair. | ![]() |
| When the Dynism encounters the next pair of
such Objects, its
Decider automatically checks their Numbers against the Pair in the
Buffer.
If they match, the Dynism then responds to the Object whose
Number
has the Gain Flag. Had the first Decision resulted in a Loss,
the Dynism would instead respond to the other
object in the Pair. |
![]() |
| When a Decision situation is re-encountered several times, Gain (or Loss) Flags may come to be attached to both Objects . The Dynism can only Decide between them at random from then on unless the objects eventually acquire different flags. | ![]() |
| Clearly, the longer the Dynism lives, the greater the number of Flagged Number Pairs that will need to stored in its `Decision RAM'. Eventually it will completely fill. Relatively few of the Object Pairs stored in it however will remain useful forever; many Decisions may only need to be made once in a lifetime. All are therefore Datestamped. Once the Decision RAM fills, those pairs that have not been matched by that time are simply overwritten with new ones. |
![]() |
More advanced Dynisms may now evolve Decision Flags for four levels of Gain or Loss. These can then be associated with Datestamps with four different durations. If the Dynism makes a Decision that results in a Gain or Loss four times greater than the minimum, its associated Object Pair acquires a Datestamp that will last four times longer. Decisions resulting in large Gains or Losses will therefore tend to be `remembered' longest. |
| In this way, perhaps little better at this stage than deciding at random, Decision begins to evolve into learning by experience. Natural Selection, just as with the evolution of Dynisms themselves, is now alive and well within its Object RAM. If a Decision Pair is useful, it continues to live on through successive regenerations, if it doesn't, it `dies'. The only aspect of the RAM that is determined by `corporeal' evolution is its size. |
| Let's now look at a slightly different aspect of Decisions by coming back to another question I raised at the end of the previous chapter. How do Dynisms Decide when and when not to perform particular Actions? |
| To do so, they must begin by inserting all the Actions they peceive, whether they perform them themselves or observe others to, in a continuous stream into a new piece of RAM, a `Sequence RAM'. This is similar to the Decision RAM except that, when it fills, the oldest Sequences are simply deleted. A new matching mechanism we will call a `Sequence Tester' compares each incoming Sequence with earlier ones to find a nearest-match. The start and end Models of each such Sequence are determined solely by those of any previously stored Sequences. Here I've drawn individual Models using the symbols we saw before and the RAM Sequences they form part of as rectangles of various colors: |

| Sequences need not match each other exactly in the way I've shown here, other Actions can be interspersed. These interspersed Actions must however be followed by at least three from the Sequence they interrupt so that the Sequence Matcher will treat them as an interruption, not as the beginning of a new Sequence. The interruption can itself be matched to another Sequence; this may happen for instance if the Dynism must go round some obstacle while it is pursuing a Prey: |

| The Sequence Matcher can also attach Attribute Flags to a Sequence. These may include the speed at which the Sequence is performed, the object a component Action is performed with if it is Transitive, and the Dynamic Object performing the Action, including itself. |

| In these examples in which the Sequences all match, the first only matches with respect to the Speed at which it is performed. In the second, only the Transitive Object Attribute matches, With Sequence 3, this is the only Attribute that doesn't match. | ![]() |
| The Dynism now evolves the ability to attach Gain or Loss Flags to all its RAM Sequences. If a Dynism performs a Sequence in response to a Significant Object that results in a Gain or Loss, the Dynism will almost certainly experience the same Gain or Loss if it performs it again. |

| The Dynism evolves two ways of avoiding its fate if it is re-enacting a Sequence ending in a Loss Flag. The Decider looks along it for a Model that allows a switch to an alternative Model that is part of another Sequence. The Loss may then be avoided - indeed the new Sequence may end in a Gain Flag. |

|
If no such Decision point exists, the Decider may select a Sequence that nearest-matches the one it is performing, but has different Attributes. If this involves different Transitive Objects, the Dynism must then use its Targeting Reflexes to accommodate these. If the alternative Sequence contains a Gain Flag, there is no guarantee the Gain will be repeated, indeed the Sequence may even produce a Loss. But if it does succeed, the Dynism not only acquires its Gain, but it now has another Sequence it can use in the same way next time it finds itself in a similar situation. In this way the Dynism can create new Sequences by cutting and rejoining previous ones. Although this will not always be successful, it should at least reduce the risk of a Loss. |

|
The Deciders in slightly more
advanced Dynisms may periodically examine
all such nearest-matching Sequences in its RAM to determine whether a
particular
Attribute made any difference to their outcomes. If not, the relevant
Attribute
Flag can be deleted in all of them. Any
such Sequence may therefore, for instance, be enacted at any
speed.
|

| With their multilevel Gain-Loss Flags, Dynisms may now become able to `make sacrifices' in order to pursue higher Gains. If the Dynism finds itself re-enacting a Sequence containing a low-level Loss followed by a higher-level Gain, the Dynism will continue to act out that Sequence. It will not do so if the situation is reversed; that is, if a higher-level Loss follows a lower-level Gain. |

| The Decider may also become able to take Time into account with such `Plus and Minus' Sequences. The longer the time-interval between a Loss and a following Gain for instance, the greater the chances that the Dynism's situation will change and prevent the Gain from coming about. The Assessor now attaches a `Score' Flag to each such Sequence which records the Gains and Losses after several re-enactments. If overall Gains outweigh Losses the Dynism will continue to re-enact it, otherwise it will always `jump' to another via its Decider in the way we saw earlier. |

| Its worth noting that, while Sequences may be recorded in the Decision RAM in sequential order, the Dynism certainly need not re-enact them that way. For instance, as we've just seen, re-enacting a Sequence containing a Loss will cause a Dynism to jump to another containing a Gain. This second Sequence may in fact have several such `pre-entry' Sequences leading to it, each of which may have pre-entry Sequences leading to them. Any one of these therefore can place the Dynism in a situation where it can follow an `ultimate' Sequence to attain a Gain. In this way such Sequences `connect' to each other as the tributaries of a river do, indeed one that spreads throughout its RAM as a Dynism ages and acquires experience. |

![]() |
![]() |
![]() |