The genetic programming road to artificial general intelligence appears to be both promising and problematic. Of the numerous papers written on genetic programming I am not aware of any that have generated code of substantial complexity.
Stepping outside the box, in What Is Thought Baum posits that the enormous computation behind evolution discovered and encoded powerful Occam programs that provide the leverage needed for intelligence. I don't doubt that evolution can be viewed as an enormous computation or that the result of evolution resulted in a "clever" and compact end result in DNA. However, when one considers that Humans seem able to do countless things far from the realm of jungle survival: playing Go, making complex inventions, solving math problems, composing music, etc, it seems to me implausible that even evolution could have produced such an encompassing core set of Occam programs that support such diversity in the small amount of space estimated by the real information content of DNA. I suspect that the DNA code is more aimed at post-processing of sensory data, encoding the many conflicting rewards needed to motivate survival in a jungle and a more clever core general intelligent algorithm.
But what might that core algorithm be? Jumping outside the box again, let's consider that it may be impractical to evolve complex code - whether it be via the billion-year time frame of natural evolution or the ~100 year time frame of a Human life, due to the hugeness of the search space.
To get around this seeming insurmountable obstacle, perhaps the "trick" is theft! Or "Code Cloning".
Perhaps intelligent beings essentially must "steal" code from the world. There can be many forms of cloning code from the world:
- "Monkey see monkey do" - Imitation of other Humans or even animals
- Verbal and written communication
- Educational institutions
- etc.
Marvin Minsky, in "The Society of Mind" wrote: "Our greatest ideas, like our evolutionary genes, need form only once, by accident, and then can spread from brain to brain."
Code cloning in conjunction with an effective reuse mechanism that allows code to be used in other contexts via an analogy mechanism could provide all that is needed to circumvent the complexity tolerance limitation of evolving code.
From another view, however, it seems humans are quite capable of generating code - we do all kinds of problem solving, learn all kinds of skills, devise all kinds of procedures and programmers write code. This view suggests that we only need a core instruction set or, for better efficiency a useful library of functions, and some form of general programming ability.