ну короче примерный план работы
Значит, у меня будет мини-локация с травой, водоёмом и источниками еды. Именно в ней будут жить динозаврики.
Динозаврики будут работать на перцептронах (простейших нейросетях из трёх слоёв), хотя если всё будет плохо, я сделаю 4 слоя. Я пока не знаю, насколько я буду вмешиваться в процесс их обучения. Возможно, буду добавлять обучение на своём примере, возможно буду заранее умерщвлять особо неудавшихся динозавриков и клонировать особо удавшихся, возможно добавлю инстинкты и анти-инстинкты (с помощью метода обратной ошибки штрафовать за очевидно тупое поведение и награждать за очевидно правильное). Но вообще мне конечно же хотелось бы как можно меньше внедряться в это, чисто потому что лень всё это писать. Первое время всё будет работать на эволюционном программировании (коротко говоря, постоянно генерировать случайных особей и скрещивать особо успешных).
В потребностях у динозавриков будут только еда, которая даёт им энергию. При понижении энергии у динозавриков сначала будут начинаться отрицательные эффекты, а потом и вовсе наступит смерть. Если же энергии у них достаточно - они вольны заниматься всем, чем захотят (об этом ниже).
А ещё у динозавриков будут любимые (и нелюбимые соответственно) дела. Их будет достаточно много, например прогулки, плавание, общение, познание мира. Если динозавры будут этим заниматься, их индекс счастья будет повышаться, а индекс счастья будет положительно влиять на энергию (пока не знаю, как, возможно просто увеличит общий лимит шкалы).
В качестве входов у нейросети будут:
- Минимальная дальность до основных объектов локации: земля, вода, еда, другие динозаврики, стены
- Индекс счастья
- Энергия
- Множители любимых дел
В качестве выходов:
- Сила желания движения к каждому из основных объектов
- Попытки взаимодействия (например, попытаться поесть, если вблизи есть еда)
Вообще конечно сначала хотел, чтобы они даже и ходить учились сами, а в качестве входных данных дать им информацию об окружающих 8-ми ближайших клетках, но подумал, что это будет и для них, и для меня слишком сложно и долго, лучше уж пусть говорят о своих желаниях, а ноги сами доведут через поиск пути.
Ну и конечно, динозаврики, если проживут достаточно долго, смогут скрещиваться друг с другом, порождая новых, похожих на них, детишек. Скрещивание будет через нахождение среднего между содержимым двух нейросетей + добавление шума.
В дальнейшем я хочу ещё каждому динозаврику добавить базу знаний об окружающем мире, чтобы они могли выучить, например, что какой-то другой динозаврик или предмет им нравится или не нравится.
Вот такие планы я себе построил. Блять. Опять ведь подапридумываю на 100 лет вперёд, а сил хватит только на пару дней. Этому проекту лучше бы начать окупаться по эмоциям уже завтра, а иначе ещё плюс один брошенный проект-призрак, преследующий меня в кошмарах.