|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.05.2012, 07:43 | #1 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
Игра Жизнь
Решил тут на досуге по экспериментировать с нейронными сетями и их обучением. Хотелось проверить эффективность генетических алгоритмов при обучении НС по сравнению с классическим обратным распространением ошибки. Поиграв с математическими функциями решил попробовать еще какую нибудь задачу, и ничего умнее чем попробовать написать своеобразный аналог игры жизнь на ум не пришло. Суть игры вот в том чтобы посмотреть как будут развиваться виртуальные животные в смоделированном мире. Мир задан (для упрощения) в виде поверхности тора, т.е. это поле в котором совмещены верх и низ, лево и право. Существуют как минимум два вида животных: условные хищники и травоядные. Каждое животное управляется своей нейронной сетью. Вначале случайно генерируются несколько животных, кто то из них помирает с голоду, кто то выживает и размножается. При размножении новому животному передается часть связей НС от предков, а часть случайно меняется. В итоге, если повезет, животные начинают эволюционировать и развиваться. И как именно это будет происходить, и насколько быстро, это и есть интересующие меня вопросы.
Что скажите господа, бредовая идея или стоит попробовать? Еще хотелось бы сделать имитацию слуха, чтоб живность могла общаться друг с другом, но никак не могу сообразить как бы это реализовать. Сложность в том что животных много и "говорить они могут одновременно, и нужно как то все это передать на один или группу нейронов каждого животного. |
03.05.2012, 08:35 | #2 | |
Форумчанин
Регистрация: 03.11.2011
Сообщений: 230
|
Цитата:
|
|
03.05.2012, 08:44 | #3 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
Да подобных игр куча. Если с квадратиками, то скорее всего это клеточные автоматы, хотя есть и что то подобное тому что предложил я. Но на НС подобного ничего не видел.
По поводу геймплея вопрос хороший, по идее тут у игрока только возможность влиять на условия игрового мира да на жизнь конкретных животных, типа захотел пристрелил, захотел покормил, что то еще придумать сложно. |
03.05.2012, 09:45 | #4 | |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Цитата:
А вообще было бы интересно посмотреть. В сети то оно может и есть, но когда сам реализуешь что-то подобное - уже другой разговор. По сему желаю удачи )
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
|
15.05.2012, 07:27 | #5 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
Наконец то появилось не много свободного времени чтоб начать проект.
Вчера набросал первый экспериментальный вариант игры. Это очень упрощенный мир в котором существуют три вида существ два "травоядных" один "хищный", у всех существ НС состоит из 300 нейронов. Зеленым обозначается травка которую можно кушать, черным - препятствия за выход на которые отнимается какое то количество жизни существа. Задача данного варианта игры в том чтобы проверить работоспособность некоторых алгоритмов и идеи вообще. Т.е. будут ли существа хоть как то приспосабливаться, или же так и будут хаотично ползать пока все не сдохнут. Если все же развиваться будут, то насколько быстро это будет происходить. Какой баланс еда/жизни/территория наиболее устойчив. ну и так далее. Поскольку это тестовый вариант, алгоритмы не оптимизированы, могут встречаться ошибки, так что сильно не пинайте. Еще к тому же кривой вывод графики, потому тормозит, полная загрузка проца эт нормально, так и должно быть. Если кто захочет потестить: кнопки Start/Stop запускают/останавливают "жизнь". сохраняются/загружаются только отмеченные существа кнопки An.1, An.2, An.3 генерируют соответствующее существо border - рисует рамку ограничивающую передвижения по миру кнопочки с черным, зеленым, и белым квадратиками позволяют нарисовать квадратик с препятствием, травкой, или пустой. |
15.05.2012, 08:51 | #6 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
У меня все дохнут. Хищники наплевали на травоядных и просто ходят мимо, травоядные ходят мимо травы. В результате все мрут с голоду. Если рядом с толпой поставить черную точку, то вся толпа начинает об нее тереться до смерти.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
15.05.2012, 09:10 | #7 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
Чтоб все сразу не сдохли я запускаю пргу, тыкаю старт, и жду пока поле не заполнится зеленым хотяб процентов на 20, затем уже создаю животных.
Забыл написать в предыдущем посте, что если убрать галку с out graph графика выводиться не будет и это увеличит скорость игры. |
15.05.2012, 13:08 | #8 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Не, ну какая то эволюция у них конечно есть. Но это в никуда эволюция.
Изначально базовые зверюшки просто по кругу бегают. Пока не скушают всё вокруг и не вымрут. Но среди них иногда появляются, те кто выходит за рамки этой беготни по кругу. Вот они по всей видимости и есть следующий этап эволюции, но так как они убегают далеко от "базы", то именно они и не размножаются. Т.е. как раз те, кто мог бы как то передать свой "жизненный" опыт в размножении и не участвуют. Либо я как то механизм размножения неправильно понял. С хищниками всё сложнее. Хищник изначально должен быть гораздо умнее травоядного. Способ питания хищника впринципе не может быть случайным и/или пассивным. Хищник изначально активно целеноправленно добывает пищу (охотится). Он не может просто пастись на лужке, он должен выследить, догнать и победить свою "пищу". А тут им даже среда мешает это сделать. Они мало того что медленнее травоядных, так ещё и за кусты постоянно цепляются.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
15.05.2012, 13:44 | #9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Ознакомьтесь, http://forum.codeby.net/topic38541.html там и исходники есть (с лазаруса думаю переведёте на д7), мб поможет улучшить.
|
15.05.2012, 14:38 | #10 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
phomm, спасибо, посмотрю на досуге.
Ulex, зверушки могут размножаться как "половым путем" т.е. участвуют двое, так и "бесполым" участвует только один. Половой предпочтительней для зверушек, т.к. тратится меньше "жизненной силы", но в начальных условиях добиться этого сложно, поэтому и был сделан бесполый. При нем у зверушки тратятся почти все ресурсы, но в начальных условиях он гораздо проще, т.к. для него нужно всего лишь дожить до определенного возраста, и набрать определенный вес (съесть какое то количество пищи). |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Игра жизнь | Fi11eR | Общие вопросы C/C++ | 8 | 22.05.2014 16:52 |
Клеточный автомат (Игра Жизнь) в Delphi | nitroes | Фриланс | 4 | 12.03.2012 13:11 |
Возможна ли жизнь с девушкой, будущей женой без детей всю жизнь? + Ипотечная тема :) | Kasper1 | Свободное общение | 68 | 11.01.2012 00:54 |
Игра Жизнь | VovanZ | Софт | 14 | 02.02.2010 16:46 |