Я хочу разработать генетическую программу, которая может решать общие проблемы, такие как выживание в компьютерной игре. Так как это для развлечения / обучения, я не хочу использовать существующие библиотеки.
Мне пришла в голову следующая идея:
Входные данные представляют собой массив из N целых чисел.
Генетическая программа состоит из N NST, каждая из которых получает входные данные от некоторых элементов массива и записывает свои выходные данные в один конкретный элемент массива.
AST могут быть произвольно сложными и состоять только из четырех арифметических операторов (+, -, *, /) и могут работать с константами и фиксированными элементами данного массива (без произвольного доступа).
Итак, для [N = 3] у нас есть 3 AST, например:
a[0] = {a[0] + 1}
a[1] = {a[0] + a[1]}
a[2] = {a[0] * 123 + a[1]}
N AST выполняются один за другим, и это повторяется бесконечно.
Теперь мой вопрос, достаточно ли эта система "мощная" (тьюринг завершен?) Или она не сможет решить некоторые проблемы, типичные для игрового ИИ?