To model artificial evolution chromosome for chromosome is impossible. We would have to have an operating system create random strings of digits and try to run them all, and then build upon the successes; e.g. those strings which will perform some function within that hardware.
Instead it is more useful to begin the modeling at a level of sophistication where the beings’ interaction with the environment is obvious – when the being is mobile. Mobility is perhaps the fundamental interaction with the environment; the key word there being “interaction”. Awareness of the environment is tricky, as it assumes a certain level of self-awareness: “I am not that within which I exist.” Interaction and awareness are not quite the same thing.
Interaction begins when there is more than one autonomous being with an environment: There is a thing here which is demonstrably not “I”.
Therefore, in modeling interaction, there seems at the moment to be three levels: awareness, recognition, and reaction.
Awareness: there is a thing here which is not-me
Recognition: that thing is of type “X”
Reaction: X is friend/foe/food
…and perhaps there is some resonance between recognition and reaction.
This begs the question: is existence a pre-requisite for awareness? Is the chain:
Existence – awareness – recognition – reaction?
The answer seems to be “yes”, for (in the realm of AI/ALife) a thing must exist before it can be made aware of any other thing. And it must be aware of a thing for it to recognize that thing. And it must recognize a thing before it can react to that thing.
And here we must make a distinction reflex action and re-action. The action of X is its existence/proximity, and it is to that which I am re-acting.
In modeling an entity we can approximate Awareness with a simple distance calculation: You are this close to me, therefore I am aware of you.
Recognition requires a more refined set of senses, say, sight/smell/hearing. This can be another distance calculation, or combine distance with (say) sight in a particular direction.
Using this as a beginning allows us to add a great many modifiers onto the base behavior:
- arbitrary reaction to different Xs
- different senses
- – some senses broadcast (sight) – active
- – some senses receive (smell) – reactive
- reflex (pre-recognition) actions at different levels
This brings up another question: Does a thing actively broadcast its existence or do other things become passively aware of its existence?
Could be some of both; call it “signalling”.
Active: noise, colors
Passive: smell, body heat
…all of which allows different senses to react to different stimuli at different levels. It also suggests a slight change to the structure of awareness:
Exist — ?
Awareness — Reflex
Recognition — Reaction
This is a good starting point; the rest is just code.