Date: 2013-04-12 08:35 pm (UTC)
Цель программы -- узнать, как поведет себя такой-то мир. Мир -- плоское дискретное поле ("в клеточку") примерно 200х200, края склеены (топология тора). Время -- тоже дискретно, симуляция идет пошагово. На каждом шаге поле в случайных местах с определенной вероятностью (параметр симуляции) возникает "еда".

На поле есть изначально какое-то количество "существ", которые умеют двигаться за один ход на любую ближайшую клетку, и видят ближайшие клетки (есть ли на них еда). Решение -- куда двигаться и двигаться ли вообще -- принимает простая нейронная сеть (однослойная, кажется), на вход которой подается состояние всех 8-и соседних клеток, плюс запас еды у самого существа (т.е. степень голодности).

Если у существа запас еды падает до нуля -- оно умирает и убирается с доски. Если запас еды превышает 2 первоначальных -- существо делится на два, коэффициенты нейронных сетей которых слегка подправляются случайным образом (это "мутации"). Изначально значения коэффициентов у нулевого поколения выбираются случайным образом.

Являются ли существа и мир разными программами -- нет. Но это разные модули программы. "Мир" знает о существах только то, что они есть в таких-то точках карты, и что если существо зашло на клетку с едой, то еду надо передать существу. Аналогично, существа о мире знают только про соседние ячейки -- все поле они не видят.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting
Page generated Feb. 8th, 2026 05:37 am
Powered by Dreamwidth Studios