Привет, Хабр!

Недавно сдал курсовую работу по генетическим алгоритмам в программе Darwinbots и решил, что это будет интересно сообществу. Тем более, что в данный момент сообщество проекта довольно мало. Статьи будут наполовину переводом документации, а наполовину своими исследованиями программы.

1. Первое знакомство

2.

Итак, программа Darwinbots является симулятором искусственной жизни. Первые версии написаны итальянским программистом Carlo Comis с использованием языка программирования Visual Basic. Последняя версия программы на данный момент – 2.45.02D, выпущена 21 августа 2012 года. В данный момент ведётся разработка третьей версии приложения, полностью переписанного на C#. Также существует порт на языке C++. Исходный код проекта опубликован в системе управления версиями Subversion и доступен всем желающим.

Программа имитирует жизнь популяции организмов – ботов (роботов), ДНК которых описывается вручную с помощью специально разработанного языка. ДНК, по сути, является большим конечным автоматом, который считывает информацию с множества различных входов, модифицирует ее и подключается к выводам с действиями. Код бота (далее ДНК) описывается в текстовом файле с расширением.txt, что позволяет работать с ним в любом редакторе, в том числе в Блокноте. Суть симуляции состоит в выполнении ДНК за каждый цикл, с учётом возможных взаимодействий организмов, мутаций, вирусов и так далее.

Главный элемент интерфейса программы Darwinbots – мир ботов (или поле моделирования). Мир ботов – это большая недискретная плоскость (да, тот самый синий прямоугольник, что был ранее). По умолчанию, боты могут двигаться по всей площади мира. Настройки мира задаются в настройках симуляции.

Каждый бот представлен окружностью определённого размера и цвета, с некоторым узором в центре. «Глаз» бота обозначается белой точкой. Он включает в себя 9 простых глазков. При выделении бота на поле моделирования можно увидеть сетку из полей зрения каждого глазка. Глазки передают в программу значение, примерно соответствующее размеру объекта, попавшего в поле зрения.

Бот имеет систему простейших тактильных ощущений, которая позволяет ему чувствовать столкновение или атаку со стороны другого бота. Сенсорные входы ботов анализируются в ДНК, которая написана на языке с использованием абстракции FILO («первым пришёл - последним ушёл», по принципу поставленных друг на друга тарелок). ДНК большинства ботов имеют от 6 до 20 процедур, именуемых генами, в которых может выполняться до 200 операций. Каждая операция может мутировать.

Каждый бот имеет свой запас энергии. Большинство действий уменьшают количество энергии. Когда энергия станет равной нулю, бот погибнет, а когда станет выше уровня, определенного в ДНК – начнет размножение. Энергия может быть пополнена путем поглощения других ботов (аналог охоты в обычной среде) и запасами энергии из своего «тела». Если бот выбран в качестве автотрофа, то энергия восполняется автоматически в течение продолжительного времени.

Бот может стрелять нематериальными снарядами, атаковать, извлекать мусор, заражаться инфекциями и обмениваться информацией с другими ботами. Снаряд представляет собой точку на поле моделирования, не имеющую массы и физических размеров.

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

Когда бот размножается, его ДНК передается потомку, иногда с некоторыми изменениями, которые влияют на поведение бота. Как в реальном мире, с изменением ДНК может произойти эволюция – очередное поколение ботов может стать более способным атаковать, размножаться, избегать контактов и так далее. Такие мутации либо передаются из поколения в поколение, либо исчезают. Со временем в ДНК может накопиться нежелательный код, который не выполняет ничего полезного. Он будет отнимать больше энергии и сделает ДНК более загруженным.

Так как программа не решает, какой организм нужно вырастить, способности бота проявляются в долгосрочной перспективе сочетанием стратегий движения, управления энергией, размножения и др. На сложность кода ДНК не накладывается никаких ограничений.

Эволюция в Darwinbots занимает достаточно продолжительное время. Поколение ботов может жить несколько тысяч циклов, а большинство симуляций работают с частотой около 15 циклов в секунду, поэтому до значительного естественного отбора может пройти от нескольких часов до нескольких дней.

Конечно, в этой вводной статье я вряд ли смог заинтересовать Вас этим проектом, но, в качестве приманки могу рассказать, что программа имеет Интернет-режим (некое подобие PvP), а разработчики ботов могут принимать участия в лигах – своеобразных соревнованиях.

В следующей статье поговорим о настройках симуляции и программировании ботов.

И напоследок, картинки для привлечения внимания.

Наука, Технологии

Виртуальным собеседником (англ. chatterbot) называют компьютерную программу, которая создана для имитации речевого поведения человека при общении с одним или несколькими пользователями. В 1966 году Джозеф Вейзенбаум создал первую программу-собеседник «Элиза». Она пародировала речевое поведение психотерапевта, а именно: реализовала технику активного слушания, переспрашивая пользователя и используя фразы типа «Пожалуйста, продолжайте».

Предполагается, что идеальная программа-собеседник должна пройти Тест Тьюринга, разработанный еще в 1950 году для определения успешности проектов в области искусственного интеллекта. Его суть заключается в том, что человек переписывается с двумя собеседниками, один из которых человек, другой - компьютерная программа. Если не удается определить, кто есть кто, считается, что компьютер тест прошел. Однако пока еще ни одному виртуальному собеседнику не удалось этого сделать. Функциональность большинства современных программ ограничивается возможностью ведения незатейливой беседы.

Программы-собеседники

Chatmaster

ChatMaster является одним из первых хороших русскоязычных виртуальных собеседников. Он представляет собой самообучающуюся программу. Качество ее диалога с человеком можно оценить как «приличное». ChatMaster ведет контекстно-зависимый разговор, то есть понимает смысл реплики, которая опирается на предшествующие. Для диалога может быть использован любой неиероглифический язык (все европейские и некоторые азиатские). Кроме того, программа располагает удобным интерфейсом и довольно большой базой слов. Недостатком ChatMaster является то, что он слишком долго думает и запоминает все подряд, даже и то, что запоминать не следовало бы.

Electronic Brain 1300

Electronic Brain 1300 представляет собой приятную программу-собеседника. Располагает хорошей базой знаний: достаточно большой и с оригинальными репликами. В новой версии используется древовидная база. Кроме того, программу можно легко обучить новым фразам. Недостатком Electronic Brain является не удобный интерфейс: управляющие элементы расположены в не совсем привычных местах.


Болтун

Болтун представляет собой неплохую программу-собеседника с хорошей базой и неплохим чувством юмора. Ответные реплики здесь выдаются очень быстро. Болтуну не обязательно нужен собеседник, он может разговаривать сам с собой. Хотя это самообучающаяся программа, базу ее данных можно пополнять путем добавления файлов обновления. Кроме того, Болтун предоставляет пользователю возможность заменять иконки на свои собственные в заголовке окна и вида панели инструментов.


DIALA

Данная программа ведет диалог с человеком на русском языке на любую тему, пытаясь имитировать при этом искусственный интеллект. По словам разработчиков, DIALA считает себя женщиной и довольно критично относится к мужчинам, и вообще к человечеству. Для того, чтобы получился более или менее связанный диалог нужно вводить только полноценные фразы, каждая из которых содержит законченную мысль. Не рекомендуется резко и необоснованно менять тему диалога. DIALA - это самообучающаяся программа, поэтому ей не следует говорить никаких глупостей, иначе она немедленно их запомнит, и скоро вы получите их обратно. Потом отучить ее от этого будет сложно.


Виртуальный Путин

Те, кто хотел бы поговорить с В.В. Путиным, задать ему пару вопросов или просто отругать за плохую жизнь, могут пообщаться с его виртуальным двойником через программу «Virtual Путин». Она представляет собой удобную программу-собеседника с приятным интерфейсом. По словам пользователей, которые уже успели пообщаться с виртуальным Путиным, программа ведет вполне интеллектуальный и разносторонний разговор с человеком, подчас удивляя своей эрудицией и прогрессивным мышлением. Кроме того, Virtual Путин может легко поддерживает любую тему для разговора. Одно единственное требование - общаться нужно на нормальном русском языке и не использовать ненормативную лексику. Virtual Путин может легко обидеться.



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png