Здравствуйте.
Roman Вам, вероятно, правильно в комментариях ответил - это больше похоже на клеточные автоматы, а не на реализацию генетического алгоритма. Представьте себе конечные автоматы, размещенные по сетке и работающие так, что функции перехода принимают в качестве параметров состояния соседей, т.е. зависят от того, в каком состоянии соседи находятся. Потом генерируется начальное состояние, и эта сумасшедшая модель запускается.
А генетических алгоритмов много. Мне, к примеру, на университетских курсах повезло познакомиться только с тремя, и описанное мной ниже - это т.н. классический ГА:
- вначале берется случайный набор чисел (популяция особей)
- из контекста задачи выбирается функция проверки качества (фитнесс-функция, ее-то мы и оптимизируем)
- числа "спариваются" с определенной вероятностью, часто в районе 0,7 (кроссинговером называется: можно, например, местами поменять старшие и младшие двоичные разряды),
- появляются и мутируют "дети" с небольшой вероятностью (можно инвертировать один бит, например)
- при помощи фитнесс-функции собранные вместе предки и потомки ранжируются (чем выше/ниже показатель фитнесс-функции, тем лучше/хуже или хуже/лучше особь)
- по результатам ранжирования худшие особи отбрасываются
Как видно, в основу положены базовые биологические эволюционные механизмы. Они применяются для задачи оптимизации, но не симуляции.
Т.е. возможно, что автор ролика создал параметризуемую симуляцию на основе клеточных автоматов, и эти параметры он оптимизировал при помощи ГА. Задача не столько математическая или техническая, сколько "креативная". А это значит, что Вам, вероятно, будет интереснее разработать самому какой-нибудь комбайн на стыке ГА и клеточных алгоритмов, чем копаться в чужом, возможно, малопонятном коде.