Polyworld
Polyworld — кроссплатформенная программа (для Linux и macOS), написанная Ларри Йегером для изучения эволюции искусственного интеллекта с использованием механизмов естественного отбора и эволюционных алгоритмов.[1]
Что важно знать
| Polyworld | |
|---|---|
| Написана на | C++, Python |
| Интерфейс | графический (Qt), OpenGL |
| Операционные системы | Linux, macOS |
| Последняя версия | 2.6 (февраль 2015) |
| Репозиторий | github.com/polyworld/pol… |
| Лицензия | Apple Public Source License |
Механизм работы
Polyworld использует графический инструментарий Qt и OpenGL для отображения среды, в которой популяция трапециевидных агентов ищет пищу, вступает в спаривания, выводит потомство и охотится друг на друга. Численность популяции обычно составляет несколько сотен, так как каждая особь довольно сложна, а среда требует значительных ресурсов компьютера. Графическая визуализация необходима, поскольку агенты действительно перемещаются по двумерной плоскости и должны "видеть" окружающее пространство. Благодаря базовым возможностям (например, питаться останками и случайно появляющейся пищей, видеть других агентов, вступать с ними во взаимодействие: спаривание, борьба и др.) в процессе продолжительной эволюции возникают сложные модели поведения — например, каннибализм, отношения хищник–жертва, мимикрия.
Каждый агент принимает решения на основе нейронной сети с использованием гебианского обучения. Архитектура нейросети определяется индивидуальной генетической структурой агента, которая задаёт не только конфигурацию соединений, но и размер сети, скорость перемещения, цвет, частоту мутаций и другие параметры. Геном мутирует случайным образом с заданной вероятностью; эти параметры наследуются и изменяются у потомков[2].
Примечания
Ссылки
- https://github.com/polyworld/polyworld — страница проекта на Github
- http://shinyverse.org/larryy/Polyworld.html — страница Polyworld на сайте Йегера


