щие реакции на ее изменения;
-активность – способность генерировать цели и действовать рациональным образом для их достижения;
-базовые знания – знания агента о себе, окружающей среде, включая других агентов, которые не меняются в рамках жизненного цикла агента;
-убеждения – переменная часть базовых знаний, которые могут меняться во времени, хотя агент может об этом не знать и продолжать их использовать для своих целей;
-цели – совокупность состояний, на достижение которых направлено текущее поведение агента;
-желания – состояния и/или ситуации, достижение которых для агента важно;
-обязательства – задачи, которые берет на себя агент по просьбе и/или поручению других агентов;
-намерения – то, что агент должен делать в силу своих обязательств и/или желаний.
Иногда в этот же перечень добавляются и такие свойства, как рациональность, правдивость, благожелательность, а также мобильность, хотя последнее характерно не только для интеллектуальных агентов.
В зависимости от концепции, выбранной для организации MAC, обычно выделяются три базовых класса архитектур:
архитектуры, которые базируются на принципах и методах работы со знаниями;
архитектуры, основанные на поведенческих моделях типа «сти- мул-реакция»;
гибридные архитектуры.
Архитектуру или агентов первого типа, которые используют только точное представление картины мира в символьной форме, а решения при этом (например, о действиях) принимаются на основе формальных рассуждений и использования методов сравнения по образцу, принято определять как делиберативные. Таким образом, в данном случае мы имеем дело с «разумными» агентами и архитектурами, имеющими в качестве основы проектирования и реализации модели, методы и средства искусственного интеллекта. Таких агентов принято называть когнитивными, что не вполне правильно, так как при этом неявно предполагается, что «рассуждающие» агенты познают мир, в котором они функционируют. Представляется, что более
81
удобным и адекватным были бы термины «агент, базирующийся на знаниях» или «интеллектуальный агент», а также «архитектура интеллектуальных агентов». Первоначально идея интеллектуальных агентов связывалась практически полностью с классической логической парадигмой ИИ. Однако по мере развития исследований в этой области стало ясно, что такие «ментальные» свойства агентов, как, например, убеждения, желания, намерения, обязательства по отношению к другим агентам и т. п., невыразимы в терминах исчисления предикатов первого порядка. Поэтому для представления знаний агентов в рамках данной архитектуры были использованы специальные расширения соответствующих логических исчислений, а также разработаны новые архитектуры, в частности архитектуры типа BDI (Belief-Desire-Intention).
Принципы реактивной архитектуры (второй тип) возникли как альтернативный подход к архитектуре интеллектуальных агентов. Идея реактивных агентов впервые возникла в работах Брукса, выдвинувшего тезис, что интеллектуальное поведение может быть реализовано без символьного представления знаний, принятого в классическом ИИ. Реактивными называются агенты и архитектуры, где нет эксплицитно представленной модели мира, а функционирование отдельных агентов и всей системы осуществляется по правилам типа ситуация-действие. При этом под ситуацией понимается потенциально сложная комбинация внутренних и внешних состояний. Данный подход ведет свое начало с работ по планированию поведения роботов, которые активно велись в ИИ в 70-х годах ХХ столетия. Простым примером реализации реактивных архитектур в этом контексте можно считать системы, где реакции агентов на внешние события генерируются соответствующими конечными автоматами. Широко известным примером системы с реактивной архитектурой является планирующая система STRIPS, где использовался логический подход, расширенный за счет ассоциированных с действиями предусловий и постусловий. Позже в рамках реактивных архитектур были разработаны и другие системы, но, как правило, они не могли справиться с задачами реального уровня сложности.
Многие исследователи считают, что ни первый, ни второй подходы не дают оптимального результата при разработке агентов и MAC. Поэтому попытки их объединения предпринимаются постоянно и уже привели к появлению разнообразных гибридных архитектур. По сути дела, именно гибридные архитектуры и используются в настоящее
82
время во всех сколько-нибудь значимых проектах и системах.
1.6.3. Средства разработки
На сегодняшний день не существует языка программирования или инструментальной системы разработки, которая бы полностью соответствовала требованиям построения агентов. С точки зрения принципов распределенного объектно-ориентированного программирования (ООП) необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредством передачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний. Однако в дополнение к концепции ООП каждый агент имеет возможность создания копий самого себя с полной или ограниченной функциональностью, обеспечивая возможность настройки на среду путем исключения неэффективных методов и замены их новыми. Традиционная для ООП схема «класс/объект» нарушается, т.к. агент имеет возможность постоянного изменения сценария поведения без его изменения в родительском классе. Многозначное наследование позволяет создавать экземпляры агентов, смешивая сценарии поведения, схемы наследования и атрибуты, определенные в родительских классах.
Система разработки, которая бы полностью соответствовала требованиям построения агентов, должна удовлетворять следующим требованиям: обеспечение перенесения кода на различные платформы, доступность на многих платформах, поддержка сетевого взаимодействия, многопотоковая обработка и некоторые другие. Чаще всего в агентных технологиях используются: универсальные языки программирования (Java); языки, «ориентированные на знания», такие, как языки представления знаний (KIF), языки переговоров и обмена знаниями (KQML, AgentSpeak, April), языки спецификаций агентов; специализированные языки программирования агентов (TeleScript); языки сценариев и scripting languages (Tcl/Tk); символьные языки и языки логического программирования (Oz).
Рассмотрим подробнее инструментарий AgentBuilder для построения MAC компании Reticular Systems, Inc. Он состоит из двух компонентов: средств разработки и окружения периода исполнения. Первый компонент ориентирован на поддержку процессов анализа предметной области создаваемой MAC и проектирование агентов с заданным поведением. Второй обеспечивает эффективную среду для
83
выполнения агентно-ориентированных программ. И тот и другой компоненты реализованы на языке Java. Агентные программы, проектируемые в рамках AgentBuilder, тоже являются Java-программами и могут исполняться на любом компьютере, где установлена виртуаль-
ная Java-машина JVM (Java-virtual machine).
Общая схема процесса проектирования и реализации агентноориентированных приложений на основе AgentBuilder ToolKit представлена на рис. 7. Этот инструментарий имеет средства для организации и предметной области создаваемой MAC, средства спецификации архитектуры агенства и поведения агентов, а также средства отладки агентных приложений и наблюдения за поведением созданных агентов.
Рис. 7. Технологическая схема процесса разработки
84
агентно-ориентированых приложений на базе AgentBuilder ToolKit
Модель «жизненного цикла» агентов, разрабатываемых в рамках AgentBuilder, включает следующие основные шаги:
-обработка новых сообщений;
-определение, какие правила поведения применимы в текущей ситуации;
-выполнение действий, специфицированных этими правилами;
-обновление ментальной модели в соответствии с заданными правилами.
Собственно ментальные модели (начальная и текущая) включают описания исходных (текущих) намерений, полаганий, обязательств и возможностей, а также спецификации правил поведения.
Данная модель получила название Reticular Agent Mental Model (RAMM) и является развитием модели Шохама, где все действия выполняются только как результат определенных обязательств. В рамках RAMM эта идея расширена до уровня общих правил поведения, которые определяют причину действия агента в каждой точке его функционирования. При этом правила поведения фиксируют множество возможных «откликов» агента на текущее состояние среды так, как это предписывается полаганиями.
Для спецификации поведения агентов в системе AgentBuilder используется специальный объектно-ориентированный язык RADL (Reticular Agent Definition Language). Правила поведения в этом языке могут рассматриваться как конструкции вида WHEN-IF-THEN.
WHEN – часть правила адресована новым событиям, возникающим в окружении агента, и включает новые сообщения, полученные от других агентов.
IF – часть сравнивает текущую ментальную модель с условиями применимости правила. Образцы в IF-части работают на намерениях, полаганиях, обязательствах и возможностях, определенных в ментальной модели.
THEN – часть определяет действия в ответ на текущие события и состояния ментальной модели и внешнего окружения. Они могут включать обновление ментальной модели, коммуникативные и внутренние действия.
В языке RADL активно используются образцы, имеются достаточно развитые средства работы с переменными и представительный набор действий, включающий формирование перформативов языка
85