Описание средств представления мультиагентной модели поведения социальных групп

Мультиагентная (многоагентная) система (МАС, англ. Multi-agent system) — это система, образованная несколькими взаимодействующими интеллектуальными агентами. Мультиагентные системы могут быть использованы для решения таких проблем, которые сложно или невозможно решить с помощью одного агента или монолитной системы. Примерами таких задач являются, ликвидация чрезвычайных ситуаций[1] и моделирование социальных структур[2] и др.

В мультиагентной системе агенты имеют несколько важных характеристик[3]:

  • Автономность: агенты, хотя бы частично, независимы.
  • Ограниченность представления: ни у одного из агентов нет представления о всей системе, или система слишком сложна, чтобы знание о ней имело практическое применение для агента.
  • Децентрализация: нет агентов, управляющих всей системой[4].

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

В мультиагентных системах может проявляться самоорганизация и слож­ное поведение, даже если стратегия поведения каждого агента достаточно про­ста. Агент представляет собой открытую систему, помещенную в некоторую среду, причем агенты обладают собственным поведением, удовлетворяющим определенным правилам. Агенты взаимодействуют, используя некоторый спе­циальный язык и подчиняясь установленным правилам «общения» — регламен­там (протоколам).

Агенты MAC характеризуются процессами, которые происходят во время их работы и определяются описанием их потенциального поведения. Взаимо­действие агентов предполагает обмен сообщениями между ними. Множество взаимосвязанных сообщений образует переговоры в MAC, которые определя­ются регламентами взаимодействия, определяющих все возможные течения переговоров. Регламент — это совокупность правил, определяющих порядок взаимодей­ствия агентов.

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

Процессный подход описанию взаимодействия агентов на­правлен на реализацию так называемой ресурсосберегающей организационной структуры (Lean production), основными чертами которой являются:

  • широкое делегирование полномочий и ответственности отдельным агентам (группам агентов);
  • высокая возможность автоматизации технологий выполнения про­цессов.

Когда агенты вовлечены во взаимодействие, где нет необходимости в па­раллелизме, их взаимодействия традиционно задаются детермини­рованными конечными автоматами, либо диаграммами потоков сообщений языков класса FIPA’s Agent Communication Language (ACL).


[1] Nathan Schurr and Janusz Marecki and Milind Tambe and Paul Scerri et.al. The Future of Disaster Response: Humans Working with Multiagent Teams using DEFACTO, 2005.

[2] Ron Sun and Isaac Naveh. Simulating Organizational Decision-Making Using a Cognitively Realistic Agent Model, Journal of Artificial Societies and Social Simulation.

[3] Michael Wooldridge, An Introduction to MultiAgent Systems, John Wiley & Sons Ltd, 2002, paperback, 366 pages, ISBN 0-471-49691-X.

[4] Liviu Panait, Sean Luke: Cooperative Multi-Agent Learning: The State of the Art. Autonomous Agents and Multi-Agent Systems 11(3): 387—434 (2005)

 

Для сложных взаимодействий более адекватным представлением является набором диаграмм такого языка, как UML (Unified Modeling Language – уни­версальный язык моделирования). UML – это язык объектно-ориентированного моделирования, который явля­ется результатом унификации существующих языков моделирования. UML можно охарактеризовать как формальный искусственный язык. Как формаль­ный искусственный язык UML имеет:

1) синтаксис, то есть определение правил конструирования выражений языка;

2) семантику, то есть определение правил приписывания смысла выражениям языка;

3) прагматику, то есть определение правил использования выражений языка для достижения определенных целей.

В состав UML входят набор диаграмм и нотаций различных видов. Стан­дартный набор UML диаграмм для моделирования включает:

  • диаграммы прецедентов (use case diagrams) — для моделирования бизнес-процессов организации и требований к создаваемой системе);
  • диаграммы классов (class diagrams) — для моделирования статической структуры классов системы и связей между ними;
  • диаграммы поведения системы (behavior diagrams):

диаграммы взаимодействия (interaction diagrams):

  • диаграммы последовательности (sequence diagrams) и
  • кооперативные диаграммы (collaboration diagrams) – для моделирования процесса обмена сообщениями между объектами;

—  диаграммы состояний (statechart diagrams) — для моделирования поведения объектов системы при переходе из одного состояния в другое;

  • диаграммы деятельностей (activity diagrams) – для моделирования деятельностей, также поведения системы в рамках различных вари­антов использования;
  • диаграммы реализации (implementation diagrams):

—  диаграммы компонентов (component diagrams) – для моделирования иерархии компонентов (подсистем) системы;

—  диаграммы размещения (deployment diagrams) – для моделирования физической архитектуры системы.

В качестве основного типа диаграмм для описания взаимодействия агентов (визуального моделирования) предлагается использовать диаграммы деятельности (activity diagram) – диаграммы, на которых показаны разложение некоторой деятельности на её составные части.

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

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

Под деятельностью (activity) понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов – вложенных видов деятельности и отдельных действий (action), соединённых между собой потоками, которые идут отвыходов одного узла ко входам другого

Основным элементом диаграммы деятельности является деятельность (activity). Этот объект может быть интерпретирован по-разному в зависимости от той точки зрения, с которой строится данный аспект модели. Деятельность может быть записана на естественном языке, некотором псевдокоде или языке программирования. Никаких дополнительных или неявных ограничений на её запись не накладывается, но рекомендуется в качестве имени деятельности использовать глагол с пояснительными словами. Если же деятельность может быть представлена в некотором формальном виде, то во многих случаях может оказаться целесообразно записать её на том языке программирования, на котором предполагается реализовывать конкретный проект.

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

При построении диаграммы деятельности используются только нетриггерные переходы, то есть такие переходы, которые выполняются сразу после завершения деятельности или выполнения соответствующего действия. Этот переход переводит деятельность в последующее состояние сразу, как только закончится действие в предыдущем состоянии. На диаграмме такой переход изображается сплошной линией со стрелкой. Если из деятельности выходит единственный переход, то он может быть никак не помечен. Если же таких переходов несколько, то выполняться может только один из них. В этом случае для каждого из таких переходов должно быть явно записано сторожевое условие в прямых скобках. Условие же истинности должно выполняться только одного из них. Данный случай встречается тогда, когда последовательно выполняемая деятельность должна разделиться на альтернативные ветви в зависимости от значения некоторого промежуточного результата. Такая ситуация называется ветвлением, а для ее обозначения применяется специальный графический символ: небольшой ромб, внутри которого нет никакого текста. В этот ромб может входить только одна стрелка от того состояния действия, после вы­полнения которого поток управления должен быть продолжен по одной из вза­имно исключающих ветвей. Принято входящую стрелку присоединять к верх­ней или левой вершине символа ветвления. Выходящих стрелок может быть две или более, но для каждой из них явно указывается соответствующее сторо­жевое условие в форме булевского выражения.

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

Поскольку распараллеливание процессов на практике встречается очень часто – необходимы графические примитивы для представления параллельных процессов. В языке UML для этой цели использу­ется специальный символ для разделения и слияния параллельных вычислений или потоков управления. Таким символом является прямая черточка. Как пра­вило, такая черточка изображается отрезком горизонтальной линии, толщина которой несколько шире основных сплошных линий диаграммы деятельности. При этом разделение (concurrent fork) имеет один входящий переход и несколь­ко выходящих, а слияние (concurrent join) имеет несколько входящих переходов и один выходящий.

Любая сложная деятельность по достижению определённой цели в соот­ветствии с одним из основополагающим принципом системного анализа –принципом декомпозиции – может быть представлена в виде совокупности отдельных действий, направленных на достижение требуемого результата. Но, более того, на практике дополнительно возникает потребность в том, чтобы ас­социировать выполнение отдельного действия с конкретным агентом. В этом случае конкретный агент «несёт ответственность» за реализацию отдельных действий, а сам процесс представляется в виде переходов действий из одного агента к другому.

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

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

В общем случае действия на диаграмме деятельности выполняются над те­ми или иными объектами. Таким образом, объекты либо инициируют выпол­нение действий, либо определяют некоторый их результат. Действия специфи­цируют вызовы, которые передаются от одного объекта графа диаграммы дея­тельности к другому. Поскольку в таком ракурсе объекты играют определен­ную роль в понимании процесса деятельности, часто возникает необходимость явно указать их на диаграмме.

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

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

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

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

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

Так, например, в качестве вспомогательного типа диаграмм для описания структуры от­дельных сущностей или объектов могут применяться диаграммы классов (class diagram) – диаграммы на которых показаны множество классов, их атрибутов, операторов и взаимосвязи (особый тип логических отношений) между этими сущностями.

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

Описание принципов построения мультиагентной модели поведения социальных групп

На основании анализа статистической информации о развитии эпидемии в России для моделирования поведения социальных групп в рамках процесса распространения ВИЧ/СПИД на основе мультиагентной системы (МАС) было выделено 4 основные социальные группы. В соответствие с этим – сформировано 4 мультиагентные подсистемы (См. таблицу 1):

1)    правительство,

2)    заражённые,

3)    группа риска,

4)    незаражённые.

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

Мультиагентная подсистема – Правительство. Агент: Правительство.

Мультиагентная подсистема – Зараженные. Агенты: наркоманы, лица, оказывающие секс-услуги, лица с нетрадиционной сексуальной ориентацией, медики, жертвы врачебных ошибок, жертвы ВИЧ-инфицированных, дети ВИЧ-инфицированных, заключённые в местах ограничения свободы.

Мультиагентная подсистема – Группы риска. Агенты: наркоманы, лица, оказывающие секс-услуги, лица нетрадиционной сексуальной ориентацией, медики, родственники ВИЧ-инфицированных, лица со свободным сексуальным поведением, заключённые в местах ограничения свободы.

Мультиагентная подсистема – Незаражённые (незаражённое население страны). Агенты: школьники, студенты, менеджеры, топ-менеджеры, чиновники, журналисты, деятели культуры, рабочие заводов, фермеры, военные органы, охраны правопорядка.

Таблица 1. Агенты в аспекте распределения по соответствующим мультиагентным подсистемам

Наименование соц. группы Наименование соц. группы
1 Правительство Незаражённые
Заражённые 1 Школьники
1 Наркоманы 2 Студенты
2 Лица, оказывающие секс-услуги 3 Менеджеры
3 Лица с нетрадиционной сексуальной ориентацией 4 Топ-менеджеры
4 Медики 5 Чиновники
5 Жертвы врачебных ошибок 6 Журналисты, деятели культуры
6 Жертвы ВИЧ-инфицированных 7 Рабочие заводов
Группа риска 8 Фермеры
1 Наркоманы 9 Военные
2 Лица, оказывающие секс-услуги
3 Лица нетрадиционной сексуальной ориентацией
4 Медики
5 Родственники ВИЧ-инфицированных
6 Лица со свободным сексуальным поведением

МАС, на основе которой проводится моделирования поведения социальных групп открыта – агенты работают в изменяющейся окружающей среде, которая воздействует на агентов и в свою очередь сама изменяется вследствие их работы. Система должна «принимать решения», чтобы достичь поставленных целей, а для этого она должна иметь модель среды, в которой развивается ее поведение.

Доминирующую роль при разработке мультиагентных систем играет архитектура BDI («Убеждения. Желания. Намерения» – от англ. «Beliefs. Desires. Intentions»), в которой агент рассматривается как социальная сущность, общающаяся с другими агентами посредством переговоров, состоящих из сообщений на некотором языке.

Агент играет в обществе определенную роль, зависящую от убеждений (Beliefs), желаний (Desires) и намерений (Intentions). Считается, что эти три компоненты полностью задают состояние «ума» данного социального агента (См. рисунок 1). В терминах программной реализации убеждения BDI-агента представляют собой знания (информацию), которые имеет агент о состоянии окружающей среды и которые обновляются после каждого его действия.

Рисунок 1. Схема интеллектуального агента с использованием архитектуры BDI

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

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

Агент состоит из множества убеждений, желаний и намерений. Когда агент «замечает» изменение в окружающей среде, он «считает», что произошло событие, представляющее собой некоторую ситуацию внешней среды. Регистрация события агентом состоит в изменении состояния его «ума»: выбора некоторого убеждения. В соответствии с ним и желанием агент намеревается выполнить некоторые действия. Эти действия составляют план достижения поставленной цели. Затем намериваемые действия осуществляются, изменяя текущую ситуацию в окружающей среде.

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

1)    во-первых, понятие присваивания значения переменной, на котором основаны классические языки программирования, необходимо заменить операторами информационного обмена;

2)    во-вторых, механизм рассылки сообщений в МАС должен быть заменен механизмом, который обеспечивал бы обмен информацией между агентами в соответствии с некоторым регламентом (протоколом).

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

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

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

Кроме того, представление «ума» агента в терминах убеждений, желаний и намерений при программной реализации агентов дает возможность объединения понятий теории МАС и практики проектирования параллельных алгоритмов управления.

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