Доброго времени суток.

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Доброго времени суток.

Мы все с интересом наблюдаем красивые картинки симуляций, как суетятся боты по экрану, едят и размножаются, вселенная встаёт и рушится, как космические корабли бороздят просторы.... стоп это уже другое кино. Хочу немного рассказать о нашем кибер биологическом кино изнутри на примере моего проекта.

В нашей среде кибер биологов в основном всё крутится вокруг генетических, эволюционных алгоритмов и нейросетей.

Большинство проектов группы отдают предпочтение "геному поведения". По сути это замкнутая цепочка команд в виде случайных чисел, обычно длинною от 64 до 1024 элементов. Цепочка выполняется последовательно, часто по одной команде за такт, пока не сработает квантовый(?!) скачок: переход на произвольную ячейку. Этот переход может быть как безусловный, так и зависеть от внешних и/или внутренних условий бота.

Способов организации и мелких отличий много. Мой третий проект был именно таким. С предустановленными значениями свойств на старте. Естественно все значения свойств ботов способствовали выживанию в той или иной мере. Кому охота запускать не рабочую симуляцию. Сейчас в четвёртом проекте нет этой цепочки команд... Совсем без цепочки конечно не обошлось. Мой вариант генома вместо команд кодирует свойства бота и срабатывает один раз при его рождении. Я назвал его мРНК.

Экспериментировал я с ней до текущего проекта, тогда у меня было свойств штук 150 на бота и после сборки, на старте почти сразу гибло до 90% ботов. Остальные жили не долго и тоже гибли. Проблема была в том, что генерировались свойства не совместимые с жизнью. Скорее всего можно было получить удачную симуляцию после миллиард первого запуска, но я решил не ждать и начал с нуля. В четвёртом проекте я стал дорабатывать эту идею. Сократил число свойств до 40. Теперь боты живут и процветают.

мРНК в биологии - это матричная РНК, цепочка нуклеотид, кодирующая аминокислоты, из которых строится белок. У меня в цифре это длинная лента чисел, кодирующая свойства ботов. Так же как в биологии у меня есть старт-кодон (35) и три стоп-кодона (10,11,14). Числа, заключённые между старт и стоп кодоном - это последовательность (зелёная на рисунке), кодирующая свойство бота. Серые числа - это не транслируемая область, спящие числа не влияющие ни на что. Красные числа - старт-кодоны, синие - стоп-кодоны.

Кодирование свойства происходит так: сборщик бота получает первую зелёную цепочку, считает её сумму и число элементов. Далее на основе этих значений определяется какое свойство надо увеличить и на сколько.

Например сумма цепочки 425, а число элементов 20. Величина 425 уменьшается на 41 до тех пор, пока не будет в пределах кол-ва свойств бота 0..40, результат уменьшения как раз и будет номером свойства. Потом 425 уменьшается на 21 до тех пор пока не будет в границах 0..20, результат уменьшения будет величиной инкремента текущего свойства. Затем переход к следующей зелёной цепочке и т.д.

Мутации

Под мутацией понимается случайное изменение одного или нескольких чисел в геноме. В мРНК примерно 40% зелёных что-то значащих чисел. Остальные "серые" ждут своего часа. Любые мутации в серой последовательности, на потомках не отражаются, но могут включиться в будущем, превратясь в зелёную цепочку, если между ними появятся старт и стоп кодоны.

Каково влияние одной мутации на цепочку в 128к элементов? Математика говорит, что одна мутация меняет геном на 0,0008%. Но если взглянуть на слайды, роль одной мутации может быть как равной нулю, так и значительной.

Если мутирует старт-кодон - исчезнет вся зелёная цепочка.

Если мутирует стоп-кодон - зелёная цепочка либо продлится до следующего стоп-кодона и будет существенно изменена, либо склеится со следующей цепочкой, включая все серые числа между ними и вместо кодирования 2 свойств, будет закодировано какое-то третье или в редких случаях одно из первых двух, либо ничего не изменится, если за мутировавшим стоп-кодоном снова следует стоп-кодон. Вот такая роль всего лишь одной мутации.

Система приоритетов

Это то, что заменило геном поведения. Каждая команда имеет свою величину приоритета. Бот выполняет команду с наивысшим приоритетом. Если выполнение = true, приоритет текущей команды снижается на одну величину, если = false - на другую. Некоторые внешние и внутренние условия бота влияют на величины приоритетов.

У команды "поворот" есть собственные приоритеты на каждый угол.

На последнем слайде приоритеты всех команд бота отмечены голубым.

Цель статьи: дать пищу к размышлениям, сподвигнуть читателя на написание своей симуляции. Предлагайте свои идеи или развитие моих в комментариях.

Комментарии: