понедельник, 31 августа 2009 г.

Создание алгоритмов и систем эволюцией

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

После просмотра ролика захотелось сделать что-нить подобное (но попроще конечно).

В такой постановке получается, что для реализации нужно выделить такие нетривиальные для нормальных программистов вещи, как:

  • Создание кирпичиков, из которых строится сама эволюционирующая система (в примере элементы маятника) и правил их взаимодействия.
  • Выбор критерия отбора новых систем (кто будет выживать, в примере точность часов).
  • Создание механизмов скрещивания и мутации при создании нового элемента (в примере показано, что только 1/9 мутация и 4/9 от предков).

Может у кого теория найдется по этому вопросу?

Имхо сама задача не такая уж и простая, но зато интересная (; Сейчас думаю уже можно на её основе создавать игровые AI, но вот в серьезных системах вряд ли.. Но вот когда их сложность и эффективность будет сравнима с реальными операторами ЭВМ (лет через 10), то тогда такой метод может дать колоссальный скачок различных аппаратно-программных комплексах.

1 комментарий:

Гордей комментирует...

Думаю, это немного относится к теме нейронных сетей и экспертных систем. Мне тоже всё это интересно :)