Skip to content
taliesinb edited this page Nov 22, 2010 · 2 revisions

Space

Introduce "symmetry breaking": forget about turn-left/turn-right/move forward. Instead, creature specifies the direction it wants to move in absolute terms. This introduces a whole set of potential feedbacks: a population can have a 'preferred direction', which it might behoove another population to exploit or copy. Arms races, feedback, and so on.

Vision

Likewise, forget about kernel-based vision. Instead, introduce a fixed number of cells, relative to the current cell, that a creature can 'sample'. Perhaps these are specified as x/y offsets as part of the genome. Likewise, perhaps allow the creature to "jump" as far as it wants, with the only limitation being a distance-related energy cost. This allows for much richer potential scavenging behavior, escape, and so on.

Energy

Also, perhaps do away with floating point energy values? The advantage would be that each cell can have an 'information representation' that is just a bit field. Say, 1 bit for energy content (full/empty), 2+ bits for creature content (which will give creatures scope to try to recognise and identify one another, eventually), perhaps a few 'pheromone' bits that can be set and or queried.

Another interesting possibility is to have more than one food type. Perhaps creatures can specialize (the most straightforward way would be a hard-coded preference in their genome).

Brains

How will this relate to sensor neurons? Do sensor neurons have a mask that determines what will activate them? What if, instead of passive sensor neurons, there is 'active' observation: two of the NN outputs determine 'where to look', and the result is fed back in at the next step?

This biases the whole information processing structure away from continuous neural networks.

Brain coding

Try to preserve the basic idea of neural net?

Example: Brain has 32 neurons, brain state is a 32-bit int. Each bit specifies whether given neuron is firing/not firing. Each neuron has 'inhibit mask' and 'excite mask' that is applied to brain state. Count bits to see which wins. This is the same as saying: are more of these following bits on than these other bits? What about a different threshold? This can easily be achieved by having, say, 4 bits that are always on, which can give a way of biasing up or down.

So, sources of input: Say 8 bits from the sensor cell, a few bits of internal state.

Desired outputs: bit-count to get number from 0 to 8 for each of the X/Y directions. Or instead of having coupled X and Y, what about limiting to either X axis or Y axis? 6 bits to specify 0-6, another 2 bits to specify {N,E,S,W}. Times this by two, one to specify where to look, the other where to jump. Or perhaps jump and look share a bus, and a single bit determines which to use.

This seems more and more like a continuous NN.

Side thought: might want to iterate the brain a couple of rounds before 'making a decision'.

Also: Could incorporate noisiness by using 'fuzzy logic' type stuff, i.e. bit masks that are randomly resolved at each use. Perhaps also incorporate noise from the external world as well (say, dependent on sensor distance).

Complexity

There is a natural analogy to complexity here, in that a "complex" organism is deemed to be one that employs more than one active sensor at a time. To allow for this, brain topology would have to be dynamic, some kind of generative system. Then, natural questions are: is there a drive towards greater number of sensors? Under what conditions?

Clone this wiki locally