Log in or sign up to participate in this discussion.
With an account, you can revise, criticize, and comment on ideas.Another way to approach AGI? (Very early, preliminary thoughts.)
Say you write an evolutionary algorithm, like the ones that have been written before. Then DD would argue it’ll get stuck because all it can do is explore a given landscape for its best features. Whereas real evolution creates new landscapes.
To address this issue, you subject your algorithm itself to variation and selection, by wrapping it in another evolutionary algorithm. But this approach just kicks the can down the road because now it’s the space of programs that’s limited.
How do you break out of this limitation?
You can’t just keep wrapping your programs in evolutionary algorithms like that because that only keeps kicking the can down the road. It’s like adding more and more entries to a multiplication table. It’s not the same as a multiplication algorithm. But for evolution, the problem is harder, in a way, because not even recursion solves the issue, and the starting point wasn’t as ‘flat’ as a multiplication table. The starting point is already an algorithm, not just a list.
What’s needed, in DD’s lingo, is a jump to universality. But a jump to what kind of universality, exactly?
cc @tyler-mills
Drawing on the framing of your question, it seems like a "universality of landscapes" is what's needed. Perhaps: the space of programs to be explored is only ever determined by whatever the system happens to have assembled so far, the pieces it has at any given time, which is never specified. What the system contains is determined by random/blind variation and composition (of some complete set of primitives) and selection for the most fecund compositions among them.
Do the compositions have to be self-reproducing? Or can they be replicated when a predefined global condition is met? I think we agree any predefined condition will keep the system closed-ended (the evolution of programs will be steered toward those meeting the condition). But maybe that's only if the condition is specific. If the criterion for replication to occur is non-specific, maybe this allows for open-endedness? It seems like we would want a condition that only rules out programs which cannot constitute a growth in knowledge.
One idea for a global criterion is simply productivity: If a program successfully produces an output which is then used by other programs (the more the "better"), it is replicated (by the global logic). Maybe it's replicated every time it's run as part of a greater process, in that sense. Sort of fits with capitalism: make useful products, get rewarded (replicated, here).
The bookkeeping may be an issue, though.