Эволюция виртуальных организмов, программа написана для развлечения. Это второе видео. Можно ставить эксперименты над ботами - искусственными формами жизни!
видео выходят очень интересными. надеюсь вы не забросите канал. также как мне кажется стоит сделать фон на панели отображения нейронов белым а линии толще
Вот по поводу линий, я так и не разобрался как в SDL сделать линии толще. Если есть тут умельцы подскажите. Не хочется делать циклом по 10 линий сразу.
1) Мне кажется, корридорчики движутся в бок, как раз таки наоборот, потому что не видят широту, а не высоту. То есть им кажется что они стоят на месте, в то время как они совершают движение в бок. 2) Повысьте битрейт записи - всё мутное, из-за большого количества деталей. 3) Создайте отладчик для ботов, когда поведение нейросети можно будет изучить в быстрой симуляции, не закрывая текущую, но открывая отдельное мини окно-площадку. Для тех кто не любит одиночество, можно создать специального бота-пустышку. Замедлять время и смотреть на каждый ход, и при этом на каждый импульс нейросети. 4) Добавьте нейрон широты помимо высоты (а то они как полуслепые). Ну или данные о широте и высоте объединяйте, хотя наверно так им будет сложнее разобраться.
Есть интересная идея. У foo52 был ролик про разные кланы ботов, которые были разделены барьером. Спустя время они разрушали барьер, и разные виды, выращенные в разных регионах, боролись между собой. Так вот, идея состоит в том, чтобы реализовать систему для ботов так же, как и foo52 (с наборами команд). А затем запустить их в мир с ботами с нейросетями и посмотреть какой вариант мозга выиграет. Соответсвенно боты с командами дают потомками ботов с коммандами, а нейросети с нейросетями. Ну и, конечно, сделать отображение по цветам для разных типов ботов.
Приветствую автор! Хочу предложить небольшое изменение в алгоритме работы программы - поделить пространство "жизни" на 4-6 частей, одна из частей через 5-10 тыс ходов случайным образом изолируется от других, а потом через те же 5-10 тыс ходов сообщение частей между собой восстанавливается - это создаст эффект изолированных экосистем и позволит посмотреть как будут взаимодействовать разные боты после длительной изоляции
Дико поддерживаю) А уж если условия в этих средах будут разные(различная эффективность фотосинтеза, случайная смерть, движение на 2 клетки вместо одной...)🤔😃
Совершенно верно. Сейчас в мире идёт уничтожение сельского хозяйства и скотоводства. Коровье бешенство, свининой грипп, куриный грипп, всё из этой серии.
@@user-bq4ss4hl9m нет уничтожение с/х, есть постоянная адаптация к новым условиям - изменению тех прогресса, климата, эко системы и возросшим потребностям в тех или иных регионах, изменения наличия возможных ресурсов.
Лайк, подписка! Было бы здорово увидеть реализацию полового отбора, написанного не влом, а через какой-то механизм взаимодействия с другими (не просто определение сородича и атака), но и дружба и, может, симпатия
Было очень интересно! с эксперементами по киберэволюции был только мельком знаком. Но данный формат помог и немного разобраться и получить удовольствие. Спасибо, буду ждать других видео.
Классный канал, классный контент, спасибо. Могу предложить кое-что добавить в эксперимент. Можно сделать, чтобы в каждой клетка поля было значение ее загрязнения. В загрязнённой клетке существа теряют энергию. Загрязнение появляется с фотосинтезом/поедании клетки клеткой. Загрязнение само медленно сходит на нет , если в клетке нет существ или это существо не проявляет активности. Добавление загрязнения в эксперимент заставит существ быстрее перемещаться. Наверное, они будут двигаться влево или вправо большими, растянутыми по вертикали, группами.
Спасибо за интересное и необычное видео! Надеюсь будут еще такие. Было бы здорово увидеть маленький гайд по установке программы для чайников, еще встречаются люди ,которые с гитхаба ничего не качали))
Мне кажется, для лучшего анализа поведения ботов, надо добавить больше сбора инфорации о нейросетях и поколения. Нужно сохранять всю возможную информацию(кол-во поколений, энергию, число связей, наиболее часто повторяемые команды ботов. Тогда можно будет строить графики из большого кол-ва данных и проводить паралели между разными данными(например между повторяемыми действиями и силой связей у разных нейронов).
Оооооочень круто программу пока не скачивал (завтро обязательно скачаю) очень интересно слушать приятный голос, и если программу удастся скачать и запустить то я со всех аккаунтов подпишусь
Когда на 21 минуте я услышал про причину доминирования хищников над травоядными, показалось, что научную передачу про первичный протобульон посмотрел. Браво! Еще!
Писал под прошлым видео и продублирую здесь. Хочу предложить несколько идей: 1. Скрещивание ботов. При делении бот должен иметь число соседей, не меньше чем n(параметр в геноме). Если условие выполнено, то бот случайно выбирает n ботов и проводит скрещивание с нейросетей, которая является нейросетью нового бота. 2. На вход нейросети подовать предыдущее действие этого бота. Возможно это создаст цепочки действий. 3. После смерти бота появляется органика, падающая в океан. Органику можно съесть, но если бот окружён органикой, то он превращается в органику. 4. Состояние споры. При выполнении команды, бот превращается в спору на небольшой период и двигается вверх. Если он встречает бота или стену, то он приходит в обычное состояние. В состоянии споры бот не тратит энергию. 5. Глобальные катаклизмы. Очень редко может случится катаклизм, уровень солнечной энергии становится почти нулевым и 90% ботов умирает. Уровень низкой энергии держится 400 ходов, после чего возвращается в норму. Так же катаклизм можно вызвать самостоятельно, нажав на кнопку. 6. Приливы. Океан будет менять свой уровень в течении 30 ходов по синусоиде, в максимальной точке доходя до половины мира. 7. Жажда. Боты будут иметь жажду, то есть они будут вынуждены пить. Восполнить жажду можно тремя способами: прокантактировать с океаном, съесть бота и съесть органику. Изначально жажда бота равна 100. Если жажда ниже 50, бот не может съесть другого бота. Если ниже 30, бот не может есть органику. Если ниже 20, бот не может двигаться. Ниже 10 - невозможно фотосинтезировать. При контакте с океаном жажда восполняется автоматически, за ход на 10 едениц.
Отвечу по каждому пункту: 1 - Скрещивание сложно реализовать, это точно не в ближайшее время 2 - В будущем обязательно попробую, интересно. Пока из за ограничений программы не могу добавить много нейронов на вход. 3 - Пробовал, органика просто заваливает экран и появляются боты, которые едят только её, делают в ней тоннели. Больше ничего не происходит. 4 - Так не интересно, получается ты форсируешь их поведение, заставляешь действовать по заданному алгоритму. Интересен только спонтанный результат. Что-то похожее на спору было в первом видео, там где корни. 5 - В первой версии была смена сезонов, где зимой награда за фотосинтез была меньше. В целом это приводило только к тому что боты, как ни странно, просто замирают(!) и ничего не делают, пока не придет весна. Пока писал понял что нужно будет это в следующее видео вставить. 6 - Зачем менять уровень океана? Ладно, потом попробую, если будет результат, расскажу про это. 7 - Попробую.
@@Cyberbiolog на счёт состояния споры, возможно вы правы, но я пробовал это в реализации искуственной жизни от foo52 и это не давало результата, а с нейросетью проверить возможности нет. Возможно, это станет стимулом для появления корней. Наверно это всё таки слишком упрощает и организмы будут постоянно превращаться в споры и превратят верхнюю часть экрана в колонию
@@Cyberbiolog про уровень океана. Приливы, в реальном мире помогли живым организмам выйти на сушу. Возможно, в этой симуляции, приливы помогут ботам заселить океан. Так же если будет реализованна жажда, у ботов будет возможность выжить, так как в начале они будут иметь слишком простое поведение и умрут.
@@Cyberbiolog Зимнее поведение - просто отличная аналогия! В реальности больше реализуется продуцентами, а консументы - хищники гораздо реже пользуются спячкой. интересно посмотреть на такое поведение ботов ч учетом их хищничества
очень крутые вдео, очень крутой фрмат. мне тут особенно по кайфу музика, как по мне она очень в тему. удачи и надеюсь, что симулятия будет и дальше дорабатываться и дальше по ней будут видосы)
У нас в институтах появилось направление Кибербиология. Можете сделать подкаст с частыми вопросами по типу "Как легко/сложно найти работу кибербиологу? Что нужно учить? Биология и программирование? Как проходит рабочий день, процессы кибербиолога?". Было бы круто :)
Как фанатик эволюции очень доволен получившимся экспериментом. Особенно мне понравился не отмеченый вами момент жизни кружев - когда граница Кружева-1 пробивается и новое Кружево-2 начинает проростать внутри Кру-1, то при соприкосновении Кру-2 с внутренней стороной стенки, Кру-1 начинает отращивать хищных ботов с другой, до этого умиравшей стороны. По всей видимости, без контакта с противником кружева и отмирают в центрах
По-поводу понимания работы мозга бота - по-моему надо сделать экран, на котором будут выделены боты с активным выбранным пользователем нейроном. Тогда можно будет отследить, активация каких нейронов приводит к определённым странностям в поведении. Так же можно было бы добавить возможность активировать вручную конкретный нейрон у конкретного бота. Это тоже должно упростить отладку.
У меня появилась идея, как это можно реализовать идею со временем проще: Достаточно сделать так, что бы псевдо-случайные числа всегда были одинаковы при каждом запуске (например были от единого зерна и привязаны к номеру каждого шага), в общем сделать так, что бы если мир перезапускать несколько раз с нуля, то каждый раз, результат всегда будет полностью идентичен, хоть на сто лет оставляй симуляции паралельно - на каждом процессе будет полностью идентичный мир другому. Таким образом станет возможно запустить два мира паралельно и вносить изменения в один из них и смотреть как накапливается разница между мирами, которые без изменений должны быть идентичны. Таким образом получится исследование эффекта бабочки и аналог работы со временем, но, конечно, без перемещения ботов по времени (но всё же интересно). А можно сделать, что бы один мир отставал от другого по шагам и боты могли перемещаться между ними, но это сложнее, но это может быть как вариант перемещения во времени без запоминания всех предыдущих шагов мира. Однако так невозможно будет перематывать время назад =) Вообще это интересный эксперимент, но это, всё же, не то перемещение во времени, не с теми функциями. Однако вот про эффект бабочки очень интересно и уникально.
Очень круто! А можно попросить выложить не только исходники но и скомпилированный файл под Win? Совсем ничего не понимаю в компиляции, а ручки в программе покрутить хочется )
Залипательно! Если не трудно выложите релиз на Git, интересно было бы поиграться с этим симулятором, но устанавливать Visual для её сборки останавливает от этого.
Вышло отличное видео, обязательно рассказывай о всем сделанном, они дополняют видео, и вот мое предложение: сделать им память, для этого можно создать несколько пар входных и выходных нейронов, и на следующем шаге использовать на входных нейронов будет результат соотвествующих выходных)
Пробовал делать нейроны памяти (четвертый тип), которые сохраняют значение с прошлого раза, либо считают как счетчик, а потом сбрасываются. Пока боты их не используют, но есть подозрение, что если им поставить хитрые условия (например нужно нырять в море чтобы создать потомка и выныривать для фотосинтеза), то тогда, возможно, память им понадобится.
@@Cyberbiolog согласен, простая среда обитания не создает требований для использования памяти (возможно так же на этом отражается низкий жизненный цикл), пока что для такой среды достаточно "рефлексов" выработанных в мозге, удивительно но для многих живых существ нашего мира этого тоже достаточно. как мне кажется, возможный вариант заставить использовать память это уменьшить количество нейронов в голове бота до того момента пока он не сможет сохранять все поведение в своем мозге, ну так, слоев 1-2 промежуточных, и как вариант запоминающих нейронов так же возможен нейрон который после того как активируется постепенно понижает выходную активацию пока он снова не станет неактивным, можно даже скорость угасания оставить на выбор эволюции, (или даже добавить как характеристику каждому нейрону, ибо для классического нейрона скорость угасания будет просто 1 шаг)
Идея: Сейчас каждый организм располагает ограниченным набором возможных действий. Что если дать им возможность самим придумывать органы? Предлагаю сделать это следующим образом: 0. У каждого существа есть набор органов, который может расширяться или сужаться. Орган - нейросеть. 1. Дать два общих органа: отвечающий только за мутацию и отвечающий за передачу генотипа. 2. Любой другой орган будет принимать на вход несколько ячеек вблизи создания. Причём не обязательно самых близких, а может быть поодаль от него. Вот зрение у нас позволяет смотреть не только в метре перед собой же. 3. Результатом работы любого органа будет изменение окружения существа в соответствии с Законом сохранения энергии и массы. Таким образом они смогут придумать размножение, поглощение пищи, охоту и тд и тп. Также эволюция по таким правилам сможет придумать другие органы чувств, которые мы ещё не знаем. Опять же, этого всего может не произойти.
можешь записать видео с созданием искуственного интеллекта в принципе, без библиотек на примере каких то игр морской бой, или крестики нолики или еще что то подобное по шагам, с объяснением всех действий
Идея: построить карту, похожую на мир, т.е. острова, архипелаги и континенты, разделëнные морем. Также надо убрать возможность существ определять, родственник перед ним или нет по генам, поскольку этот ген - дизбалансный, а также не реалистичен. (Мы определяем по внешнему виду -> цвету в этой симуляции), что предотвратит появление 'фиолетовых', как в прошлом видео. Также можно добавить надежный источник получения энергии в воде, как постепенно накапливающиеся органика (нужно для перемещения между островами)