In recent years something called Artificial General Intelligence (AGI) has become fashionable, but the question of what constitutes a good design for a mind is actually much older. So what is the most maximally general mind which could in principle exhibit any sort of activity within the constraints of memory and time?
I think the answer to this is fairly unremarkable. It would just be a Turing machine. That is, a program comprised from some instruction set, where some instructions exist which can write to or read from the environment, and other instructions which do things like adding, multiplying and moving data from one address to another. Something like the following, where programs A and B are different individuals in a population.
These would be able to do anything which is computable, and when individuals met they could form a temporary shared address space which allowed reading and writing between them, like this:
Individuals might have a finite life span, and new individuals might be introduced with initially random programs as a source of new information, or novelty. Under this kind of system – which is not even as sophisticated as genetic programming – programs which are good at surviving in the environment (whatever that might be) and transmitting their data from one individual to another would tend to stick around and multiply.
At this point you could say that using a system such as this one the AGI problem has been solved, so long as you don’t believe that hypercomputation is an important requirement. Even the limitations of Gödel’s incompleteness could be addressed to some degree if there is a population of heterogeneous programs, such that things not provable or complete within one mind could be provable by another with a different perspective – a triumph of overlapping capabilities. I think that some Alife systems do work in a similarly general manner, and the above description is also similar to how the braincode within Noble Ape works.
However, there are some down sides to complete generality. In a system where any kind of computation is possible it may take an extraordinarily long time to discover solutions which are in any way comparable to the kinds of things which when we observe them in the natural world we would describe as being “intelligent”. Even for quite small programs and instruction sets, the space of all possible programs is going to be colossal, especially when they can move around between individuals such that they effectively span across minds.
In my estimation real intelligent systems, like primates or dolphins, aren’t completely general like this. They come with a lot of preexisting evolutionary baggage, which constrains their mind architecture in a way which provides more immediate adaptive value for survival. So in Noble Ape there are also other systems which are part of the mind design, but which are not Turing complete systems. These are:
- The social graph, which stores information about other individuals which have been met
- An episodic memory, which stores information about events which have recently occurred
- The attention system, which can shift attention between entries in the social graph or episodic memory.
- A drives system, which attempts to keep some important parameters within reasonable limits.
- An affect system, which ascribes affective weighting to memories, depending upon their emotional impact
None of these systems are programs themselves, but the braincode system is able to access and recombine them in novel ways such that the mind as a whole is still a sort of Turing machine. It’s this ability of a particular kind of language system to re-organize and transform existing legacy modules which I think is important in human cognition. So for example if you’re reading a book which contains some new idea then areas from your visual system, audio system and higher level conceptual system might be re-combined in a new way, forming a new synthesis which can itself be remembered for future reference. If the language system is recursively enumerable then an endless number of syntheses are potentially possible, even though the language itself contains only a finite number of words or instructions. It also means that arbitrary syntheses can be generated, to produce imaginary scenarios which have never previously been experienced.

