Модели агентов и их архитектуры

Агенты и объекты

Часто пытаются отождествить агента с объектом в смысле объектно-ориентированного программирования, утверждая, что агент – это просто более сложный объект. Обычно такая точка зрения высказывается программистами. Рассмотрим различия между объектами и агентами.

1. Степень автономности агента и объекта. Объект может управлять только своим внутренним состоянием, в то время как агент может управлять как внутренним состоянием, так и своим поведением. Объект, который имеет методы, доступные извне ("public"), и любой другой объект программы может их всегда вызвать, пользуясь соответствующими интерфейсами. В этом смысле объект обладает неким подобием автономности. Все объекты программы выполняют общую задачу, и они всегда реагируют на вызов своих методов одинаково. В отличие от этого, обращение одного агента к другому носит характер просьбы, которую последний может и не исполнять, руководствуясь некоторыми принятыми в многоагентной системе соглашениями в части взаимных обязательств. Агенты многоагентной системы могут не иметь общих целей, наличие возможности кооперации может не предполагать обязательность общей цели в любой момент. Итак, в объектной программе агент, дающий запрос на метод, решает вызвать метод другого объекта, а последний исполняет его безоговорочно. В многоагентной системе вопрос о том, исполнять или не исполнять запрос некоторого агента, решается агентом – потенциальным исполнителем. Здесь иногда пользуются метафорой: объект все исполняет бесплатно, а агент – за деньги. Заметим, что ничто не мешает при этом программировать агентов в объектно-ориентированном стиле.

2. Автономность (гибкого) выбора поведения (реактивное, целенаправленное). В стандартном объекте никак не рассматривается вопрос о выборе типа поведения или их комбинирования. Каждый агент сам управляетнитью своего поведения и может осуществлять управление нескольким нитями одновременно. Объект тоже управляет нитью своего поведения, но одной.

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

1. Агенты, основанные на модели классической логики. Их формальное описание и механизмы принятия решений представляются в терминах классических вариантов исчислений предикатов и механизмов дедуктивного вывода.

2. Реактивные агенты. В них решения вырабатываются на основе таблиц "ситуация–действие", а формальной моделью таких агентов является конечный автомат.

3. BDI-агенты. В них внутренние состояния и принимаемые ими решения определяются структурами данных, которые представляют так называемые ментальные понятия агента, а именно, убеждения, желания и намерения.

4. Многоуровневые модели, в которых описание агента и используемой им модели рассуждений производится на различных уровнях обобщения (абстракции). Такие модели и архитектуры, как правило, используют различные математические модели на разных уровнях, поскольку на каждом из них они манипулируют понятиями различного уровня обобщения (абстракции). Заметим, что на различных уровнях описания такого агента могут использоваться различные математические модели из числа вышеназванных.

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

а) Модели, основанные на классической логике

Поскольку искусственный интеллект (ИИ) был той областью, в недрах которого зародилось понятие программного агента, ставшее к примерно к 1980-м годам предметом самостоятельных исследований, то именно ИИ стал источником первых идей в области математических моделей агентов, языков спецификации компонент агентов и взаимодействий с внешней средой. В то время в области ИИ господствовала логическая парадигма, а потому первые модели и архитектуры использовали логические языки спецификации. Поскольку для моделей агентов оказались наиболее близкими и естественными идеи и методы, которые развивались в области интеллектуальных систем планирования, то именно последние сформировали базис логических моделей агентов и соответствующих архитектур. Первые логические идеи, положенные в основу архитектур агентов, были почерпнуты из так называемой STRIPS-системы планирования.

Типовая модель агента, формализованная "в стиле" STRIPS должна иметь такие компоненты:

· символьную модель внешней среды, описанной в терминах исчисления предикатов первого порядка;

· символьное описание действий, которые агент способен выполнять. Обычно эти действия представлены в виде списка строк <предусловие, удалить, добавить>. Каждая строка списка описывает условия, при выполнении которых действие применимо, а сами действия.

· алгоритм планирования, который использует в качестве аргументов формальное описание состояния внешней среды, множество спецификаций действий и представление состояния цели. Результатом планирования является последовательность действий агента по достижению цели.

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

б) Реактивные агенты

Недостатки логической модели агента были предметом активной критики логического подхода. В начале 1990-х годов был предложен альтернативный подход, известный под названием "поведенческий", или "реактивный". Основной тезис подхода состоял в том, что интеллект искусственной системы, какой является интеллектуальный агент, возникает в результате взаимодействия между системой и средой, в которой эта система функционирует, но не является атрибутом некой абстрактной системы вроде системы автоматического доказательства теорем или подобной ей. Интеллектуальное поведение агента возникает как композиция более простых актов поведения в среде, структурированных некоторым образом.

Математическая модель агента и соответствующий тип архитектуры получили названия реактивной модели (термин "поведенческая" модель используется гораздо реже) и реактивной архитектуры.

Р.Бруксом была разработана архитектура интеллектуального агента, которая совсем не использует символьных представлений или моделей рассуждений. Разработанная им архитектура известна как "subsumption architecture", что в приблизительном переводе с английского языка звучит как "архитектура отдельной категории". Архитектура подобного типа получила известное сейчас название "реактивной архитектуры". В общем случае реактивная архитектура представляет собой описание множества вариантов поведения ("модулей поведения"), решающих некоторое множество задач. Каждый из вариантов поведения моделируется конечным автоматом, входами которого являются состояния внешней среды, воспринимаемые агентом, а выходами являются реакции агента. В архитектуре, предложенной Бруксом, конечный автомат имел структуру, в которой каждому входу ставился в соответствие выход по правилу "ситуация–действие", учитывавшему внутреннее состояние автомата, а также имевшему некоторую обратную связь с ранее выполненными актами поведения.

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

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

Сложность вычислений, которые должны выполняться агентами реактивной архитектуры, обычно оценивается величиной , где n–максимальное их двух чисел: число различных ситуаций внешней среды, воспринимаемых (вычисляемых) сенсорной системой агента, и число вариантов поведения агента.

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

Однако реактивной архитектуре свойственны некоторые существенные ограничения, наиболее существенными из которых являются нижеследующие:

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

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

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

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

в) BDI-агенты

Belief-Desire-Intention (BDI) – архитектура возникла в связи с относительной "слабостью" реактивной архитектуры и с желанием исследователей смоделировать "практические рассуждения" человека в тех ситуациях, в которых приходится принимать решения агенту. Было показано, что информационные, мотивационные и поведенческие аспекты поведения агента могут быть формализованы в терминах ментальных понятий (убеждений, желаний и намерений) агента с помощью расширений модальных и темпоральных логик.

Ментальные понятия, как и архитектура агента, построенная с их использованием, имеют своими корнями практику человеческих рассуждений, которая включает в себя чередование двух основных процессов: (1) принятие решения о том, какую цель человек будет стремиться ("намерен") достигнуть в текущий момент, и (2) выбор действия, которое ведет к достижению этой цели. Первый из этих процессов принято называть целеполаганием (deliberation), выбором намерения, а второй–рассуждением о средствах достижения цели (means-ends reasoning). Аналогичная схема составляет концептуальную основу BDI-архитектуры агента. Заметим, что в общем случае агент может выбрать сразу несколько намерений и пытаться достичь их параллельно.

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

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

Во-вторых, намерение является долговременным (persistent). Содержательно свойство долговременности намерения означает, что если некоторое намерение принято в качестве цели действий, то агент стремится достичь этой цели всеми доступными ему путями до тех пор, пока он не убедится, что (1) либо эта цель уже достигнута, (2) либо она стала недостижимой, (3) либо она перестала быть актуальной в текущей ситуации (мяч вышел за линию поля). Информация о статусе цели может быть сформирована как самим агентом по результатам восприятия и обработки информации из внешней среды, так и получена им от других агентов.

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

г) Многоуровневые архитектуры

Обычно только самые простые приложения агентов могут быть реализованы по одноуровневой схеме. Как правило, функциональные модули агента структурируются в несколько уровней, однако по различным принципам. Уровни представляют различные функциональности, такие, как (1) восприятие внешних событий и простые реакции на них; (2) поведение, управляемое целями; (3) координация поведения с другими агентами; (4) обновление внутреннего состояния агента, т.е. убеждений о внешнем мире; прогнозирование состояний внешнего мира; определение своих действий на очередном шаге и др. Наиболее часто в архитектуре агента присутствуют уровни, ответственные за:

- восприятие и исполнение действий,

- реактивное поведение,

- локальное планирование,

- кооперативное поведение,

- моделирование внешней среды и прогнозирование результатов своих действий,

- формирование намерений,

- обучение агента.

Рис. 3. Горизонтальная (а) и вертикальная (б) структуризация уровней в архитектуре агента

Существует два основных класса многоуровневых архитектур в зависимости от того, как организуется взаимодействие уровней:

- горизонтально организованная архитектура и

- вертикально организованная архитектура.

В первой из них – в горизонтально организованной архитектуре, все уровни агента имеют доступ к уровню восприятия и действий. В общем случае, все уровни могут общаться между собой в стиле, когда любое сообщение рассылается сразу всем им (иногда такой тип общения принято также назвать “броадкастингом”). Вариант такой архитектуры приведен на рис. 4. Напротив, в вертикально организованной архитектуре только один из уровней имеет доступ к уровню восприятия и к уровню действий, а каждый из остальных уровней общается только с парой непосредственно смежных с ним уровней. Примеры таких архитектур приведены на рис. 3 а) и 3 б).

Рис. 4. Архитектура агента, в которой уровни описания общаются в стиле броадкастинга

Примерами горизонтально организованной архитектуры являются архитектура Touring Machine, InteRRaP-архитектура.

Горизонтально организованная архитектура является очень простой для понимания и реализации, поскольку в ней каждый уровень фактически отвечает за некоторый тип поведения. Основные проблемы реализации горизонтально организованной архитектуры обусловлены сложностью организации согласованной работы всех уровней. В архитектуре Touring Machine эта проблема решается с помощью специального алгоритма, который подавляет входы некоторых уровней, если соответствующая информация не имеет к ним отношения, и осуществляет цензурирование выходов. Это выполняется с помощью специального набора правил. В других из горизонтально организованных архитектурах (примером является архитектура Will задача управления согласованной работой уровней выполняется с помощью введения специальных функций совместимости входных событий с типами задач, решаемыми на разных уровнях. Здесь делается попытка ввести некоторую самоорганизацию, однако эта идея не доведена до уровня реализации.

Напротив, в вертикально организованной архитектуре (рис. 3 б) проблема управления взаимодействием уровней не является столь сложной, поскольку выходная информация каждого из уровней всегда имеет адресата. В известных вертикально организованных архитектурах распределение функциональных модулей по уровням выполняется по одному из двух принципов. Согласно одному из них, различные уровни отвечают различному уровню абстракции (уровня обобщения), в основном, одного и того же набора функциональностей (такой принцип используется в InteRRap-архитектуре). Согласно другому принципу, каждый уровень отвечает некоторой функциональности или их набору. По такому принципу построена MECCA-архитектура, в которой цикл функционирования агента состоит из четырех фаз: активация цели, планирование, конкретизация плана в набор действий и исполнение. В соответствии с этими фазами архитектура агента состоит из четырех уровней.

Недостатком вертикально организованной архитектуры является перегруженность уровня исполнения (уровня действий), Например, в InteRRaP архитектуре нижний уровень должен реагировать на непредвиденные события, отслеживать исполнение команд, полученных с уровня локального планирования, следить за выполнением ограничений, наложенных контекстом локального планирования (временных, ресурсных) и, наконец, он должен функционировать в соответствии с дополнительными кооперативными обязанностями (обязательствами), которые возложены на агента другими агентами многоагентной системы.