I want to develop a genetic program that can solve generic problems like surviving in a computer game. Since this is for fun/education I do not want to use existing libraries.
I came up with the following idea:
The input is an array of N integers. The genetic program consists of up to N ASTs, each of which takes input from some of the array elements and writes its output to a single specific array element.
The ASTs can be arbitrary complex and consist only of four arithmetic operators (+,-,*,/) and can operate on constants and fixed elements of the given array (no random access).
So for [N=3], we have 3 ASTs, for example:
a[0] = {a[0] + 1}
a[1] = {a[0] + a[1]}
a[2] = {a[0] * 123 + a[1]}
The N ASTs are executed one after another and this is repeated infinitely.
Now my question, is this system "mighty" enough (turing complete?) or will it fail to solve some kinds of problems common for an game AI?