Компьютерная программа имитирующая поведение человека. Несколько примеров использования чат-ботов

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

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

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

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

Chatmaster

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

Electronic Brain 1300

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


Болтун

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


DIALA

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


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

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

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

Недавно сдал курсовую работу по генетическим алгоритмам в программе 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), а разработчики ботов могут принимать участия в лигах – своеобразных соревнованиях.

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

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