Ответы пользователя по тегу Python
  • Знаете ли вы ещё подобные проекты?

    @d0lph1n
    Здравствуйте.

    Roman Вам, вероятно, правильно в комментариях ответил - это больше похоже на клеточные автоматы, а не на реализацию генетического алгоритма. Представьте себе конечные автоматы, размещенные по сетке и работающие так, что функции перехода принимают в качестве параметров состояния соседей, т.е. зависят от того, в каком состоянии соседи находятся. Потом генерируется начальное состояние, и эта сумасшедшая модель запускается.

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

    Как видно, в основу положены базовые биологические эволюционные механизмы. Они применяются для задачи оптимизации, но не симуляции.

    Т.е. возможно, что автор ролика создал параметризуемую симуляцию на основе клеточных автоматов, и эти параметры он оптимизировал при помощи ГА. Задача не столько математическая или техническая, сколько "креативная". А это значит, что Вам, вероятно, будет интереснее разработать самому какой-нибудь комбайн на стыке ГА и клеточных алгоритмов, чем копаться в чужом, возможно, малопонятном коде.
    Ответ написан
    Комментировать