Мой эксперимент в генетических алгоритмах + исходный код
Здравствуйте, товарищи.
Увидел я, значит, недавний пост посвящённый генетическому алгоритму, и загорелся идеей повторить его - http://pikabu.ru/story/geneticheskiy_algoritm_v_deystvii_463...
Следует начать с того, что программист из меня не самый продвинутый, нигде не учился, только книжки читал да велосипеды изобретал. И затеял я всю эту историю в основном для того чтобы испытать/отточить свои навыки программирования.
Алгоритм повторял исключительно по информации, описанной в видео, исходные коды не смотрел.
Итак, я начал писать программу... На Game Maker Studio... Ну а что, есть же люди, которые линукс на холодильники ставят?
На работу над программой ушло примерно два дня, за которые механика трижды полностью переписывалась. В результате я получил более-менее успешный прототип симулятора эволюции и приступил с полевым испытаниям.
Сначала боты были очень тупыми, тыкались в стены и умирали стоя на месте
(Прошу прощения за качество гифок, очень сильно сожралось при уменьшении размеров до разрешённых на пикабу)
После одной ночи работы программы стали заметны первые зачатки "разума":
После двух ночей "разум" заметно улучшился, вместе с продолжительностью жизни ботов:
Для особо упоротых товарищей (вроде меня), и для желающих поржать над моим кривым кодом, выкладываю исходник всей этой истории. Откомментировал в коде всё, что смог.
Ссылка на исходник - http://almostgames.ru/games/evol.gmz
Спасибо за внимание.
P.S. Однажды наступит день, когда я вернусь к этой затее и напишу полноценный гибкий, расширяемый симулятор на каком-нибудь нормальном языке...
Если хотите обратной связи с другими программистами - научитесь работать с Github. Там Вы можете найти огромное количество других интересных решений (правда не видел delphi не самый популярный язык).
Очень круто!
Я помню на геймдеве был конкурс, там было похожее поле, но без эволюции. Надо было писать ботов, которые размножались и съедали конкурента. Проводились бои, чей бот круче и т.д.
Конечно надо это дело усложнять.
Я бы предложил создать модель небольшого биома: трава - зайцы - волки.
Трава растёт постоянно, траву едят зайцы и размножаются, волки едят зайцев. По логике такая система должна приходить в баланс, но достичь его достаточно трудно.
Бывает, что зайцы съедят всю траву и начнут вымирать, или волки сожрут всех зайцев и т.д. Но это тоже довольно интересно.
а что читал ?