Вы не зашли.
Объявление
"Давайте только проявлять больше внимания, терпимости и уважения к чужому мнению — вот и всё." — Gennadius.
— О размещении изображений на форуме, О рекламе на форуме
#1 05 November 2015 13:41:58
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Моделирование эволюции
Я искал в интернете программы по моделированию эволюции, и поскольку не нашел достойных, решил начать свой проект. Для чего это нужно - глубже понять процессы эволюции видов.
В кратце о проекте.
Писать буду на java + mySQL для хранения данных. Также планирую в дальнейшем создать веб интерфейс для просмотра статистики. Программа будет состоять из взаимодействия особей и мира. Некоторая статистика будет выводиться в лог-файлах.
Мир - поле определенного размера (например 500х500 клеток). В один момент времени в одной клетке может быть расположена одна особь. Каждая клетка обладает следующими характеристиками:
* тип местности - дает разнообразие двигателей (водоем - плавники, равнина - бегуны, горы - прыгуны + переходная форма - ползуны)
* плодородие - как быстро в клетке накапливается енегрия и ее максимум (при увеличении кол-ва енергии плодородие снижаеться)
* енергия - текущее количество енергии в клетке; если енегрия достигла максимума, то начинает увеличиваться плодородие
* останки - количество животных останков, если такие есть (со временем разлагаются и увеличивают плодородие почвы, если не будут съедены)
Особь - еденица на которой будет отслеживаться эволюция. У особи есть следующие характеристики:
* возраст - текущий / максимальный
* запас енергии - текущий / максимальный
* тип размножения (деление, почкование, половое)
* тип питания - здесь подробнее. Энерготрофы - особи способные усваивать свободную енергию из клеток. Вампиры - особи способные усваивать енергию из соседних особей. Хищники - особи способные усваивать енергию из останков.
* поглотитель - орган поглощающий енергию, от него зависит максимальное количество поглощаемой енергии за ход
* сенсор - орган принимающий информацию из окружающего мира (нюх - количество енергии в соседних клетках, зрение - наличие особей в соседних клетках и их "визуальное" родство)
* двигатель - орган перемещающий особь по миру
* защитные механизмы - органы, отражающие часть атак со стороны других особей
* атакующие механизмы - органы, наносящие урон другим особям.
* здоровье - показатель столько урона может выдержать особь. При получении атак - снижается, при отдыхе восстанавливается.
* генотип, который закладывает все вышеперечисленные характеристики
Особь может совершать следующие действия:
* сон/отдых - состояние покоя с минимальными затратами енергии и восстановление здоровья
* питание - работа поглотителей, благодаря чему особь восполняет свою енергию
* размножение - воспроизводство потомства
* спаривание - доступно для особей с половым размножением
* внимание - работа сенсоров, благодаря чему особь получает информацию о внешнем мире
* движение - работа двигателей, благодаря чему особь перемещаеться на соседнюю клетку
* атака - работа атакующих механизмов, благодаря которым особь может убить соседнюю особь
каждая активность поглощает соответствующее кол-во енергии.
Генотип - набор символов (далее кодонов), которые кодируют характеристики и поведение особи. Варианты кодонов: QWERTYUIOPASDFGHJKZXCVBNM. Кодон "A" - стартовый, он сигнализирует о начале читаемого кода. Кодон "Z" - стоп-кодон сигнализирует о конце читаемого кода. Код заключенный между A..Z будем называть геном. Каждый ген отвечает за форимирование одной структурной еденицы особи - назовем их органами. На одном участке генотипа может быть закодировано несколько генов, например:
ZXCVBASDFGAQWERTYAPOIUZSDF - этот код содержит три гена:
ZXCVBASDFGAQWERTYAPOIUZSDF
ZXCVBASDFGAQWERTYAPOIUZSDF
ZXCVBASDFGAQWERTYAPOIUZSDF
Есть также работающий черновой вариант кодирования поведения, но об этом позже.
Сейчас прорабатываю модель, которая позволит фенотипировать новые гены. Т.е. не опираться на предварительно заданные параметры (как я делал в первых вариантах программы, типа ABCZ - это ген поглотителя и т.д.), а чтобы новый синтезированый орган был непредсказуем. Возможно перейду к модели, когда ген кодирует белок, а для органа необходимы наборы белков с определенными свойствами.
Прошу поделиться своим мнением, буду рад любым замечаниям и пожеланиям.
----------------------------------
P.S.: В случае успешного завершения проекта, программу выложу на этом форуме.
Неактивен
#2 05 November 2015 14:21:54
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
Добрый день, я как минимум подпишусь в этой теме, все в принципе понятно, только непонятно как будет передаваться генотип, то есть как он будет изменятся при этом? Так же непонятны значения букв между А-z хотелось бы более подробнее, что они дают, какие значения, какой разброс, на примере какого нибудь действия или органа к примеру бега (конечно хотелось бы все разобрать).
С плодородием немного непонятно в каждой клетке как я понял накапливается энергия возьмем условный максимум 100 единиц который накапливается полностью за 1 час.
Собственно непонятен вот этот момент: (при увеличении кол-ва энергии плодородие снижается) то есть когда в клетке 97 единиц то скорость ее накопления снижается?
но при этом: энергия - текущее количество энергии в клетке; если энергия достигла максимума, то начинает увеличиваться плодородие (противоречит предыдущему, нет?)
Вампиры - особи способные усваивать энергию из соседних особей. Нужны ли они? Их просто практический нет и здесь думаю они не будут отличатся от хищников высасывая все до конца при высоком уровне атаки, хотя конечно неизвестно как здесь повернется эволюция)))
Еще такой момент движение будет просчитываться как я понимаю отдельно, то есть все эти параметры (водоем - плавники, равнина - бегуны, горы - прыгуны + переходная форма - ползуны)
будут у одной и той же особи, а в ходе эволюции уже определит ее специализацию?
Просто если у каждой что то одно, то она не сможет передвигаться по другой местности и будет съедена там и ей просто не будет дано право эволюционировать)))
А если будут все эти параметры, то определенные особи с определенными параметрами будут чаще выживать в определенной местности и тем самым это уже выявит их специализацию и отделит от основного вида.
Так же как заставить особей двигаться, и какова будет их скорость, то есть она будет постоянной или смогут переходить на шаг и бег.
Еще одно нужна будет прописать потребность в воде отдельно и ее сохранение организмом (сколько проживет без нее).
Можно ли это как то визуализировать, кроме того что особь может дольше отдыхать или быстрее бегать. Так же интересна визуализация проекта. В конце будет какая то карта с определенными особями в виде моделей?
Отредактировано Илья (05 November 2015 15:06:43)
Неактивен
#3 05 November 2015 14:58:48
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
только непонятно как будет передаваться генотип, то есть как он будет изменятся при этом?
При размножении потомкам будет передаваться код родителей с некоторыми мутациями. Параметр скорости мутагенеза можно будет настроить. Мутации будут реализованы несколькими видами:
* изменение одного или нескольких кодонов
* выпадение участка кода
* вставка случайного участка кода
* дублирование участка кода
Илья :
Так же непонятны значения букв между А-z хотелось бы более подробнее, что они дают, какие значения, какой разброс, на примере какого нибудь действия или органа к примеру бега
Давайте рассмотрим вариант. Например есть кусок генотипа:
...QWERTYASDFGHJAKJHGFZCVBNNAHHTTRDZVHJKK...
на этом участке расположено 3 гена (начинаем читать от A и до Z):
ASDFGHJAKJHGFZ, AKJHGFZ, AHHTTRDZ - это гены отвечающие за какие-то органы или поведенческие признаки.
В первых программах я предопределял что комбинация например SDF - это орган бега, а кодоны после него влияют на его хорактеристики (скорость, энергозатратность).
Весь код который находится за пределами генов A...Z, считаеться генетическим мусором. В этом мусоре также будут происходить мутации и соответственно могут появиться новые гены. Также большинство неопределенных генов я оставлял как "наросты" или "опухоли", как вам удобнее.
Илья :
Можно ли это как то визуализировать
К сожалению, для визуализации такой программы у меня недостаточно знаний и опыта в программировании. И этот вопрос можно отложить на далекую перспективу. Сейчас главное создать работающий движок, а позже может подключатся еще какие-нибудь энтузиасты и допишут графическую часть.
Отредактировано pax_serg (05 November 2015 15:10:31)
Неактивен
#4 05 November 2015 15:09:10
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
Еще такой момент движение будет просчитываться как я понимаю отдельно, то есть все эти параметры (водоем - плавники, равнина - бегуны, горы - прыгуны + переходная форма - ползуны)
будут у одной и той же особи, а в ходе эволюции уже определит ее специализацию?
Органы движения обладают следующими свойствами:
* плавник - в водоемах [0-100%], на остальных территориях [0-10%]
* бегун - на равнинах [0-100%], на остальных территориях [0-10%]
* прыгун - в горах [0-100%], на остальных территориях [0-10%]
* ползуны - на всех территориях [0-25%]
Неактивен
#5 05 November 2015 15:11:01
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
Все понял, правда дополнил уже предыдущее сообщение)))
И еще подумал что защиту так же надо закодировать так что бы одни особи защищались, а другие убегали, так все таки у них будет больше выбора и соответственно разные пути)
Неактивен
#6 05 November 2015 15:15:19
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
pax_serg
Органы движения обладают следующими свойствами:
* плавник - в водоемах [0-100% :, на остальных территориях [0-10%]
* бегун - на равнинах [0-100%], на остальных территориях [0-10%]
* прыгун - в горах [0-100%], на остальных территориях [0-10%]
* ползуны - на всех территориях [0-25%]
Дак это все таки будут отдельные особи или все таки у одной особи будут все эти параметры?
Можно попробовать добавить болото по передвижению, там собственно больше и пригодится навык ползания.
Неактивен
#7 05 November 2015 15:30:41
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
С плодородием немного непонятно в каждой клетке как я понял накапливается энергия возьмем условный максимум 100 единиц который накапливается полностью за 1 час.
Собственно непонятен вот этот момент: (при увеличении кол-ва энергии плодородие снижается) то есть когда в клетке 97 единиц то скорость ее накопления снижается?
Приведу пример с цифрами по шагам:
плодородие енергия максимум
10,0 0,0 100,0
9,0 10,0 90,0
8,1 19,0 81,0
7,3 27,1 72,9
6,6 34,4 65,6
5,9 41,0 59,0
5,3 46,9 53,1
4,8 52,2 47,8
7,4 47,8 73,9
6,6 55,2 66,5
6,0 61,9 59,8
7,2 59,8 72,0
6,5 67,0 64,8
7,8 64,8 78,2
7,0 72,6 70,4
8,4 70,4 83,9
7,5 78,8 75,5
9,5 75,5 95,2
8,6 85,0 85,7
8,5 85,7 85,0
8,9 85,0 89,3
8,5 89,3 85,0
11,1 85,0 110,7
10,0 96,1 99,6
9,6 99,6 96,1
11,7 96,1 117,3
Как видно поначалу идет истощение клетки, но позже клетка возобновляеться и плодородие растет.
Неактивен
#8 05 November 2015 15:35:58
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
И еще подумал что защиту так же надо закодировать так что бы одни особи защищались, а другие убегали, так все таки у них будет больше выбора и соответственно разные пути)
Я создаю лишь модель, а не закладываю пути эволюции. Эволюция сама находит выход и выбирает одну или несколько стратегий развития для каждого вида. Для этого собственно и создается программа - посмотреть как эволюция будет работать, какие пути будет выбирать.
Неактивен
#9 05 November 2015 15:39:27
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
Дак это все таки будут отдельные особи или все таки у одной особи будут все эти параметры?
Изначально в мире будет помещена одна особь - родоначальник, например, с плавниками. А дальше все в руках эволюции. Если плавник мутирует в ползун, то особь сможет выползать на сушу, но будет хуже передвигать в воде - что должно подтолкнуть дальнейшее развитие.
Неактивен
#10 05 November 2015 15:54:23
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
pax_serg :
Илья :
Дак это все таки будут отдельные особи или все таки у одной особи будут все эти параметры?
Изначально в мире будет помещена одна особь - родоначальник, например, с плавниками. А дальше все в руках эволюции. Если плавник мутирует в ползун, то особь сможет выползать на сушу, но будет хуже передвигать в воде - что должно подтолкнуть дальнейшее развитие.
Да, тогда это уже реально сложная штука, которую и графический то сложно представить.
Просто я сначала подумал проще.
...QWERTYASDFGHJAKJHGFZCVBNNAHHTTRDZVHJKK...
на этом участке расположено 3 гена (начинаем читать от A и до Z):
ASDFGHJAKJHGFZ, AKJHGFZ, AHHTTRDZ
- Где SDF - это орган бега, а кодоны после него влияют на его хорактеристики (скорость, энергозатратность).
- F -это допустим плавник - в водоемах [0-100%], на остальных территориях [0-10%]
- G -это бегун - на равнинах [0-100%], на остальных территориях [0-10%]
- H - это прыгун - в горах [0-100%], на остальных территориях [0-10%]
- J -это ползуны - на всех территориях [0-25%]
- а AKJHGFZ и AHHTTRDZ есть этот нарост из которого может получится что то еще .
Так же сама передача гена к примеру 100 единиц это 100 клеток которые может преодолеть особь за определенное время допустим 5 минут.
Если взять двух особей у одной значение бега 55 у второй 45, как будет передача скорости бега к потомству? Не знаю как прописать это на языке программирования, но если своими словами то к примеру 5 - или = 45-55 + или = 5
то потомство может получить скорость бега от 40 до 60?
Здесь бы можно было на начальных этапах и из какой нибудь простенькой игры типа зоопарка вставить визуализацию.
Отредактировано Илья (05 November 2015 15:55:18)
Неактивен
#11 05 November 2015 16:10:52
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
Еще пару вопросов, будет ли как то осуществлена потребность особи в воде?
Так же можно добавить в тип местности болота для ползуна.
Осадков и растений на начальных этапах как я полагаю не будет?
Неактивен
#12 05 November 2015 16:38:51
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
Если взять двух особей у одной значение бега 55 у второй 45, как будет передача скорости бега к потомству? Не знаю как прописать это на языке программирования, но если своими словами то к примеру 5 - или = 45-55 + или = 5
то потомство может получить скорость бега от 40 до 60?
Я думаю вам стоит почитать информацию о наследственности
Неактивен
#13 05 November 2015 16:48:36
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
pax_serg :
Илья :
Если взять двух особей у одной значение бега 55 у второй 45, как будет передача скорости бега к потомству? Не знаю как прописать это на языке программирования, но если своими словами то к примеру 5 - или = 45-55 + или = 5
то потомство может получить скорость бега от 40 до 60?Я думаю вам стоит почитать информацию о наследственности
Вот отлично, теперь понял, просто не думал что это можно прописать на языке программирования и изобретал что то свое)))
Собственно теперь еще вопросы, почему бы не добавить полет?
И будет ли такой параметр как выносливость? Просто хотелось бы изменение скорости движения.
Так же раз визуализации особой не будет, хотелось бы хоть просто карту с клетками и собственно особей с новыми признаками отличающихся по цвету, а так же что бы программа сама искала появление новых признаков и записывала в истории признак и время, просто тогда даже просто запустить и наблюдать было бы интересно.
Неактивен
#14 05 November 2015 17:34:09
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
почему бы не добавить полет?
это усложнит систему передвижений. Сейчас по плану двухмерное измерение, а полет потребует дополнительного измерения.
Илья :
И будет ли такой параметр как выносливость? Просто хотелось бы изменение скорости движения.
пока такого параметра не планировалось, но смысл в этом есть. Спасибо за идею - обмозгую на досуге.
Илья :
Так же раз визуализации особой не будет, хотелось бы хоть просто карту с клетками и собственно особей с новыми признаками отличающихся по цвету, а так же что бы программа сама искала появление новых признаков и записывала в истории признак и время, просто тогда даже просто запустить и наблюдать было бы интересно.
Этот момент я уже продумал, но он будет реализован после разработки движка, как я уже писал:
pax_serg :
Также планирую в дальнейшем создать веб интерфейс для просмотра статистики.
На вебе планирую отображать карты с расселением видов (в виды буду объединять особей с одинаковыми органами). Есть идея создания генеалогического дерева видов. Но все это позже.
Неактивен
#15 05 November 2015 17:48:12
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
Ну что же, тогда жду разработки движка и начинаю тестировать и собирать статистику))) а там уже по мере тестирования будут возникать вопросы)))
Неактивен
#16 06 November 2015 01:57:03
- Unenlagia
- Администратор
- Откуда: Серпухов
- Зарегистрирован: 04 November 2008
- Сообщений: 4591
Re: Моделирование эволюции
А взаимоотношения хищник-жертва будут основываться на модели Лотки-Вольтерры, или же на каких более простых алгоритмах?
Не волим змајеве, али чини ми се да су ме воле!
Неактивен
#17 06 November 2015 06:53:04
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Моделирования отношений хищник-жертва не будет. Поясню еще раз суть программы. Будет мир состоящий из клеток с энергией. По миру будут перемещаться энерготрофы - особи которые будут поглощать данную энергию - это будут автотрофы. В процессе эволюции могут появиться особи способные усваивать энергию из других особей не убивая их (такие себе вампиры-паразиты) и особи способные усваивать останки - это консументы 1 порядка. Изначально паразитизм и поедание останков будут играть вспомогательную роль в поглощении энергии, т.е. изначально появяться падальщики. Но в дальнейшем, хочется верить, появятся настоящие хищники, которые будут убивать чтобы получить "останки". Т.е. данная программа не закладывает готовые алгоритмы, а вырабатывает их в ходе эволюции.
Моя самая первая работа в этом направлении заключалась как раз в создании автотрофов и консументов 1 порядка. В результате я смог наблюдать популяционные волны взаимоотношений хищник-жертва.
Если вам интересен именно этот аспект, то напишите какую статистику вы бы хотели получать? Каких видов больше убито хищником, или временная шкала с изменением популяций хищник-жертвы? Возможно стоит добавить идентификаторы для трупов (сейчас планируется что останки не отличаются друг от друга) и уровень их свежести? Это немного усложнит задачу, но в целом можно попробовать.
Отредактировано pax_serg (06 November 2015 07:07:01)
Неактивен
#18 06 November 2015 17:45:58
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
У меня еще появились вопросы))
Со смысл программы я понял, конечно не понял как вам это удастся осуществить на языке программирования, но этого я все равно и не пойму, а вот понаблюдать это все интересно.
Параметры для мира и особей думаю пока не надо ни каких добавлять и тем самым усложнять задачу как вам, так и особям, нужно узнать будет ли происходить сам процесс эволюции на данном этапе, а на добавлять то потом можно много всего нового, да и действующие расширить, к примеру ту же защиту разделить, на наличие панциря, крупного размера, наличие рогов или шипов.
В самой программе сейчас можно будет изменять параметр скорости мутагенеза.
Возможно стоит добавить еще ползунок с изменением скорости времени в программе?
Все таки изменением мутагенеза мы выставляем степень мутации, а она будет отражаться на особях только со сменой поколений, а с изменением скорости в программе мы сможем увеличить скорость смены поколений.
Еще мне интересно было бы узнать как действует и в каких пределах сможет изменятся сенсор? В каких пределах они действует? В предела одной клетки вокруг или сможет в увеличивать дальность? Так же на весь радиус, на все 8 клеток вокруг или радиус определенный?
Еще хотелось бы узнать о взаимодействии особей между собой в предыдущей версии.
То есть убегала ли жертва при нападении хищника и можно ли это сделать? Так же что то похожее на память у особей, что бы при взаимодействии с другими видами, она запоминала бы их действия. Все таки это влияло бы и на выработку скорости и зрения.
А еще можно ли сделать какой либо процесс обучения у особи, что то типо как в играх у героя если используешь долго определенное оружие, то твой навык увеличивается и ты лучше его используешь или если ты постоянно бегаешь, то с повышением уровня сможешь быстрее и дольше пробежать.
Все таки тогда сами особи больше изменялись бы под давлением внешних факторов, допустим взяв особь с плавниками и поместив ее на равнину у нее повышался бы навык бега и она передавала бы этот геном потомству.
Неактивен
#19 06 November 2015 19:04:47
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
Параметры для мира и особей думаю пока не надо ни каких добавлять и тем самым усложнять задачу как вам, так и особям, нужно узнать будет ли происходить сам процесс эволюции на данном этапе
То что эволюция действует уже проверенно на первых программах. А настройки и конфигурация параметров как раз нужное дело, чтобы наблюдать как будет идти еволюция в разных условиях.
Илья :
да и действующие расширить, к примеру ту же защиту разделить, на наличие панциря, крупного размера, наличие рогов или шипов.
Это больше похоже на уподобление к нашему миру. В программе действуют иные законы. А вы можете просто придумать, что защитный механизм QWERTY - это рога, а ASDFGH - шипы. Все в руках вашей фантазии.
Илья :
В самой программе сейчас можно будет изменять параметр скорости мутагенеза.
Возможно стоит добавить еще ползунок с изменением скорости времени в программе?
Дело в том что для ползунка скорости времени нужно замедлять скорость программы. Изначально программа работает на полной скорости, и я скажу что очень медленно. В мире 300х300 клеток в предыдущей версии (где было гараздо меньше параметров) 1 ход длился около секунды. Учитывая что срок жизни поколения был около 50 ходов, получалось что 1 минута - 1 поколение. Это очень слабая скорость. Для повышения скоростей нужны более мощные компьютеры.
Илья :
Еще мне интересно было бы узнать как действует и в каких пределах сможет изменятся сенсор? В каких пределах они действует? В предела одной клетки вокруг или сможет в увеличивать дальность? Так же на весь радиус, на все 8 клеток вокруг или радиус определенный?
Сенсоры будут "чувствовать" на растоянии от 0 до бесконечности. Отсекать дальность будет енергозатратность. Эволюция сама определиться с оптимальным значением.
Илья :
Еще хотелось бы узнать о взаимодействии особей между собой в предыдущей версии.
То есть убегала ли жертва при нападении хищника и можно ли это сделать?
В предыдущей версии хищников не было. Отношения хищников и жертв я рассматривал отдельно от эволюции. При этом жертвы не видили хищников. Т.е. хищники ели всех подряд.
Илья :
Так же что то похожее на память у особей, что бы при взаимодействии с другими видами, она запоминала бы их действия.
Это уже черезчур сложная задача. Сейчас поведение идет посредством одного нейрона. Для создания механизмов памяти нужно огромное кол-во нейронов. И не просто нейронов, а сложной их конструкции, и все это должно быть закодировано генами. Реализовать это теоретически можно, но тогда для обработки поведения каждой отдельной особи понадобится отдельный сервер. Так что это вопрос будет закрыт еще долго.
Илья :
А еще можно ли сделать какой либо процесс обучения у особи, что то типо как в играх у героя если используешь долго определенное оружие, то твой навык увеличивается и ты лучше его используешь или если ты постоянно бегаешь, то с повышением уровня сможешь быстрее и дольше пробежать.
Это уже больше похоже на игры . В ближайшее время также реализовываться не будет. Это потребует дополнительного времени на разработку. Но теоретически, в будующем можно будет сделать такое дополнение.
Илья :
Все таки тогда сами особи больше изменялись бы под давлением внешних факторов, допустим взяв особь с плавниками и поместив ее на равнину у нее повышался бы навык бега и она передавала бы этот геном потомству.
В реальности приобретенные в процессе жизнедеятельности навыки генетически не передаются. Просмотри для ознакомления.
Отредактировано pax_serg (06 November 2015 19:09:29)
Неактивен
#20 06 November 2015 20:32:37
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
pax_serg :
То что эволюция действует уже проверенно на первых программах. А настройки и конфигурация параметров как раз нужное дело, чтобы наблюдать как будет идти еволюция в разных условиях.
То есть сейчас и нужно придумывать доп. параметры?
Для мира будет сложновато, для трехметного можно было бы разве что добавить силу притяжения, но она в принципе и так реализуется энергозатратностью.
Но можно было бы добавить температуру окружающей среды и изменение энергозатрат у особей, а так же механизмы приспособления (размер, жировую прослойку, шерсть)
Так же можно в мир в клетки добавить наличие воды, но это будет сложно, нужно как то придумать ее распределение (все таки охота максимально приблизить к нашему) и потребность особей в воде.
Про трупы вы уже написали:
Возможно стоит добавить идентификаторы для трупов (сейчас планируется что останки не отличаются друг от друга) и уровень их свежести? Это немного усложнит задачу, но в целом можно попробовать.
Для особей:
- Возможность впадения в анабиоз.
- Для возраста, можно его поделить на юность, подростков и половозрелых особей. Возможность при юности особи находится рядом с материнскими особями, а у тех повышение агрессивности на других особей (своего или нет вида)
- Собственно еще можно ввести агрессивность.
- Про выносливость вы уже заметили.
- Про перемещение, можно было бы включить прыжки или рывки, то есть когда особь преодолевает сразу несколько клеток, но затрачивает много энергии.
- Так же про сенсоры можно добавить еще один параметр нюх как у собаки и что бы особи оставляли след, опустим в 5 клеток, который с каждым ходом сокращался на клетку. Им могли бы пользоваться хищники, так и особи своего вида, которые готовы к размножению.
- Еще можно добавить при определенном размножении количество потомков при рождении, а так же, что то типо отложения яиц, что бы оно оставалось на клетке и через какое то время вылуплялась особь. (хотя для него потом так же можно будет прописывать механизм защиты, но можно и охрану материнскими особями)
- Период вынашивания потомства?
- Еще как то реализовать возможность обмена энергией между особями, что бы посмотреть на их взаимодействие между особями одного вида? Так же можно обмен сигналами к размножению или опасности, ну и еще один сенсор который улавливал бы сигнал.
pax_serg :
Это больше похоже на уподобление к нашему миру. В программе действуют иные законы. А вы можете просто придумать, что защитный механизм QWERTY - это рога, а ASDFGH - шипы. Все в руках вашей фантазии.
То есть в программе можно сейчас свободно прописать набор букв, назвать его и дать определенную функцию, с определенными значениями?
pax_serg :
Дело в том что для ползунка скорости времени нужно замедлять скорость программы. Изначально программа работает на полной скорости, и я скажу что очень медленно. В мире 300х300 клеток в предыдущей версии (где было гараздо меньше параметров) 1 ход длился около секунды. Учитывая что срок жизни поколения был около 50 ходов, получалось что 1 минута - 1 поколение. Это очень слабая скорость. Для повышения скоростей нужны более мощные компьютеры.
Да, а у меня на работе, не самый быстрый компьютер)))
Надеюсь при ее запуске можно будет ползать в интернете и печатать в ворде?)
Так же есть ли там сохранения? Еще хорошо бы сделать возможность автосохранений на всякий случай с каким нибудь выставляемым таймером или через шагом ходов?
pax_serg :
В предыдущей версии хищников не было. Отношения хищников и жертв я рассматривал отдельно от эволюции. При этом жертвы не видили хищников. Т.е. хищники ели всех подряд.
Здесь же как я предполагаю будет так же? Или все таки зрение - наличие особей в соседних клетках и их "визуальное" родство будет им давать сигнал к побегу?
pax_serg :
Это уже черезчур сложная задача. Сейчас поведение идет посредством одного нейрона. Для создания механизмов памяти нужно огромное кол-во нейронов. И не просто нейронов, а сложной их конструкции, и все это должно быть закодировано генами. Реализовать это теоретически можно, но тогда для обработки поведения каждой отдельной особи понадобится отдельный сервер. Так что это вопрос будет закрыт еще долго.
Понял, в нашем случае в место памяти если только прописать определенную модель поведения? Или ни чего своего задавать вообще не планируется?
pax_serg :
Это уже больше похоже на игры . В ближайшее время также реализовываться не будет. Это потребует дополнительного времени на разработку. Но теоретически, в будующем можно будет сделать такое дополнение.
Но в дальнейшем было бы интересно добавить модель модификационной изменчивости, все таки она способствует выживанию видов.
pax_serg :
В реальности приобретенные в процессе жизнедеятельности навыки генетически не передаются. https://ru.wikipedia.org/wiki/%D0%9C%D0 … 1%82%D1%8C Просмотри для ознакомления.
За ссылку спасибо, не знал ни названия, ни действия)))
Отредактировано Илья (08 November 2015 13:25:06)
Неактивен
#21 07 November 2015 00:21:36
- Unenlagia
- Администратор
- Откуда: Серпухов
- Зарегистрирован: 04 November 2008
- Сообщений: 4591
Re: Моделирование эволюции
pax_serg :
Моделирования отношений хищник-жертва не будет. Поясню еще раз суть программы. Будет мир состоящий из клеток с энергией. По миру будут перемещаться энерготрофы - особи которые будут поглощать данную энергию - это будут автотрофы. В процессе эволюции могут появиться особи способные усваивать энергию из других особей не убивая их (такие себе вампиры-паразиты) и особи способные усваивать останки - это консументы 1 порядка. Изначально паразитизм и поедание останков будут играть вспомогательную роль в поглощении энергии, т.е. изначально появяться падальщики. Но в дальнейшем, хочется верить, появятся настоящие хищники, которые будут убивать чтобы получить "останки". Т.е. данная программа не закладывает готовые алгоритмы, а вырабатывает их в ходе эволюции.
Моя самая первая работа в этом направлении заключалась как раз в создании автотрофов и консументов 1 порядка. В результате я смог наблюдать популяционные волны взаимоотношений хищник-жертва.
Если вам интересен именно этот аспект, то напишите какую статистику вы бы хотели получать? Каких видов больше убито хищником, или временная шкала с изменением популяций хищник-жертвы? Возможно стоит добавить идентификаторы для трупов (сейчас планируется что останки не отличаются друг от друга) и уровень их свежести? Это немного усложнит задачу, но в целом можно попробовать.
В основе реализации выполнения этой программы будет задействована специально обученная нейронная сеть?
Ну, прежде всего, хотелось бы в результате видеть элементы аллопатрического видообразования и некого подобия формирования ареала популяции в определённой экологической нише. А также чтобы организмы приспособились к жизни в водоёмах, горах, на равнинах (или же во все эти среды они будут помещены изначально?) и т.п. Чтобы популяции разделились на теплолюбивые и морозоустойчивые. Кстати, температурный режим отдельных участков (группы клеток) и фактор адаптации к нему (комфортно/не комфортно в данных условиях) ввести можно?
Возможность проследить во времени динамику популяций хищников и жертв была бы весьма кстати. А также желательно, чтобы остатки могли быть съедены одними видами лишь на протяжении небольшого времени, другими, специализированными сугубо на падали - в течении другого, чуть более продолжительного срока, по истечению которого никто бы их не потреблял и они шли только на удобрение. Ну и что немаловажно, чтобы особи погибали не только от старости и от нападений на них.
Не волим змајеве, али чини ми се да су ме воле!
Неактивен
#22 09 November 2015 14:08:28
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Unenlagia :
В основе реализации выполнения этой программы будет задействована специально обученная нейронная сеть?
Обученой нейронной сети нет - это сложный механизм, тем более для каждой особи. Поведение будет осуществляеться одним или несколькими нейронами, которые получают информацию от сенсоров и внутреннего состояния, а потом выдают сигналы на одно из действий. Стараюсь сделать все максимально просто для повышения скорости. Из-за того что процесс действия нейрона - одна из самых затратных частей алгоритма, буду создавать увеличенные енергозатраты на нейроны, чтобы у особей не было их много. Во всех предыдущих версиях он был 1. По поводу обучаемости - она будет реализована эволюцией.
Unenlagia :
Ну, прежде всего, хотелось бы в результате видеть элементы аллопатрического видообразования и некого подобия формирования ареала популяции в определённой экологической нише.
Собственно это и есть основная цель программы. Путем неконтролируемых мутаций из одной особи получить хотябы простое разнообразие екосистем.
Unenlagia :
Возможность проследить во времени динамику популяций хищников и жертв была бы весьма кстати.
Я только за - подумаю над реализацией.
Unenlagia :
Ну и что немаловажно, чтобы особи погибали не только от старости и от нападений на них.
Сейчас запланировано 5 вариантов смерти особи:
* старость
* голод/истощение
* убийство
* отравление токсинами
* смерть при делении (родительская особь делится на 2 дочернии, правда это не совсем смерть)
Если есть еще варианты - пишите, но заранее оговорюсь что буду отбрасывать сложные в реализации.
Отредактировано pax_serg (09 November 2015 14:09:09)
Неактивен
#23 09 November 2015 16:17:34
- pax_serg
- Любопытный
- Зарегистрирован: 05 November 2015
- Сообщений: 13
Re: Моделирование эволюции
Илья :
Но можно было бы добавить температуру окружающей среды и изменение энергозатрат у особей, а так же механизмы приспособления (размер, жировую прослойку, шерсть)
Так же можно в мир в клетки добавить наличие воды, но это будет сложно, нужно как то придумать ее распределение (все таки охота максимально приблизить к нашему) и потребность особей в воде.
Для особей:
- Возможность впадения в анабиоз.
- Для возраста, можно его поделить на юность, подростков и половозрелых особей. Возможность при юности особи находится рядом с материнскими особями, а у тех повышение агрессивности на других особей (своего или нет вида)
- Собственно еще можно ввести агрессивность.
- Про выносливость вы уже заметили.
- Про перемещение, можно было бы включить прыжки или рывки, то есть когда особь преодолевает сразу несколько клеток, но затрачивает много энергии.
- Так же про сенсоры можно добавить еще один параметр нюх как у собаки и что бы особи оставляли след, опустим в 5 клеток, который с каждым ходом сокращался на клетку. Им могли бы пользоваться хищники, так и особи своего вида, которые готовы к размножению.
- Еще можно добавить при определенном размножении количество потомков при рождении, а так же, что то типо отложения яиц, что бы оно оставалось на клетке и через какое то время вылуплялась особь. (хотя для него потом так же можно будет прописывать механизм защиты, но можно и охрану материнскими особями)
- Период вынашивания потомства?
- Еще как то реализовать возможность обмена энергией между особями, что бы посмотреть на их взаимодействие между особями одного вида? Так же можно обмен сигналами к размножению или опасности, ну и еще один сенсор который улавливал бы сигнал.
Это уже не хилый проект, для которого нужна целая команда разработчиков и куча времени. К сожалению я располагаю только своим свободным временем, поэтому не буду реализовывать столь сложный функционал. Если вы найдете спонсора, чтобы я собрал команду и приступили к созданию такого сложного продукта, то я только за
Илья :
То есть в программе можно сейчас свободно прописать набор букв, назвать его и дать определенную функцию, с определенными значениями?
Что-то около того, только за фразой "дать определенную функцию" надо понимать - написать эту функцию самому (программированием)
Илья :
Здесь же как я предполагаю будет так же? Или все таки зрение - наличие особей в соседних клетках и их "визуальное" родство будет им давать сигнал к побегу?
В этой версии будет зрение и определение особи по родству.
Илья :
Понял, в нашем случае в место памяти если только прописать определенную модель поведения? Или ни чего своего задавать вообще не планируется?
Задавать первоначально надо генетический код. Но это нет так просто. В будующем я выложу готовые примеры кодов и описание как его расшифровывать. Тогда сможете сами создать особь своими руками.
Неактивен
#24 10 November 2015 13:00:59
- Илья
- Любознательный
- Зарегистрирован: 23 December 2011
- Сообщений: 160
Re: Моделирование эволюции
pax_serg :
Это уже не хилый проект, для которого нужна целая команда разработчиков и куча времени. К сожалению я располагаю только своим свободным временем, поэтому не буду реализовывать столь сложный функционал. Если вы найдете спонсора, чтобы я собрал команду и приступили к созданию такого сложного продукта, то я только за
Я просто не думал что это настолько сложно, и подумал что сейчас нужно задать как можно больше параметров, что бы усложнить программу
К сожалению опыта поисков спонсора у меня нет, но можно к примеру создать группу вконтакте и поискать народ умеющий программировать и которому это было бы интересно.
pax_serg :
Что-то около того, только за фразой "дать определенную функцию" надо понимать - написать эту функцию самому (программированием)
Да, вот с этим у меня будут сложность, я в иностранных то языках 0, а тем более в программировании, что бы скриншот то сделать гуглю сначала как
pax_serg :
Задавать первоначально надо генетический код. Но это нет так просто. В будущем я выложу готовые примеры кодов и описание как его расшифровывать. Тогда сможете сами создать особь своими руками.
Вот это отлично, можно будет попробовать начинать с кучи разных вариантов)))
В карту мира можно изменять?
Неактивен
#25 10 November 2015 14:04:21
- shuric
- Модератор
- Зарегистрирован: 04 April 2008
- Сообщений: 6126
Re: Моделирование эволюции
Вы можете на палеофоруме поспрашивать Джабриила Тайсаева - он занимался моделированием эволюции.
С размножением все просто - при размножении новые особи получают генотип случайным образом скомбинированный из генотипов родителей+ случайные мутации
Неактивен