Санкт-Петербургский государственный университет
Опубликован: 24.08.2014 | Доступ: свободный | Студентов: 1538 / 627 | Длительность: 08:35:00
Лекция 6:

Управление на базе мультиагентных систем

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Агенты и мультиагентные системы

В начале XXI века группа ведущих мировых ученых составила список приоритетных задач кибернетики на ближайшие 50 лет [Murray R.M., Astrom K.J., Boyd S.P., Brockett R.W., Stein G., 2003]. Среди них:

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

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

Начало построения моделей и применения искусственных мультиагентных систем на практике было положено в 1960-х годах. В качестве основы были взяты достижения таких областей деятельности человека, как системы искусственного интеллекта (Artificial Intelligence), параллельные вычисления (Parallel Computing), распределенное решение задач (Distributed Problem Solving). Многоагентные системы имеют реальную возможность интегрировать в себе самые передовые достижения перечисленных областей, демонстрируя принципиально новые качества. Сейчас MAC — одно из наиболее динамично развивающихся и перспективных направлений в области искусственного интеллекта [Городецкий В.И., Грушинский М.С., Хабалов А.В., 1998].

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

Типичными примерами событий, вызывающих необходимость заново идентифицировать потребности и возможности, являются: появление нового выгодного заказа, для исполнения которого недостаточно собственных ресурсов предприятия, выход из строя части имеющихся ресурсов, а также изменение критериев принятия решений. Чем выше неопреде-ленность, чем более распределенный характер имеют процессы принятия решения и чем чаще случаются незапланированные события, тем ниже эффективность существующих систем, не способных самостоятельно принимать решения и автоматически перестраиваться под изменения в среде [Скобелев П.О., 2002].

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

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

Первоначально идея создания интеллектуального по-средника (агента) "возникла в связи с желанием упростить стиль общения конечного пользователя с компьютерными программами, поскольку доминирующий, в основном, и ныне стиль взаимодействия пользователя с компьютером предполагает, что пользователь запускает задачу явным образом и управляет ее решением. Но это совершенно не подходит для неискушенного пользователя". Иначе говоря, сначала идея интеллектуального посредника возникла как попытка интеллектуализации пользовательского интерфейса [Maes P., 1994].

Развитие методов искусственного интеллекта позволило сделать новый шаг к изменению стиля взаимодействия пользователя с компьютером. Возникла идея создания так называемых "автономных агентов", которые породили уже новый стиль взаимодействия пользователя с программой. Вместо взаимодействия, инициируемого пользователем путем команд и прямых манипуляций, пользователь вовлекается в совместный процесс решения [Cohen P.R., Morgan J.L., Pollack M., 1990]. При этом, как пользователь, так и компьютерный посредник, оба принимают участие в запуске задачи, управлении событиями и решении задачи. Для такого стиля используется метафора персональный ассистент, который сотрудничает с пользователем в той же рабочей среде.

Словари дают следующее толкование слова агент: "некто или нечто, прикладывающее усилия для достижения эффекта". Такое самое общее определение указывает на первый признак агента — агенты совершают действия. Часто утверждается, что агенты не просто совершают действия, но они действуют автономно и рационально. Под автономностью обычно понимают, что агент действует без прямого вмешательства человека или другой управляющей сущности. Под рациональностью понимают стремление агента оптимизировать значение некоторой оценочной функции. Мера рациональности неявно указывает на то, что агент имеет цели (желания — англ. desires), которых агент "хочет" достичь, и представления о внешнем мире (убеждения — англ. beliefs), на которые агент опирается при выборе действия (реализации намерений — англ. intentions: множество избранных, совместимых и достижимых желаний).

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

  • реактивность (англ. reactivity) — агент ощущает внешнюю среду и реагирует на изменения в ней, совершая действия, направленные на достижение целей;
  • проактивность (англ. pro-activeness) — агент показывает управляемое целями поведение, проявляя инициативу, совершая действия направленные на достижение целей;
  • социальность (англ. social ability) — агент взаимодействует с другими сущностями внешней среды (другими агентами, людьми и т. д.) для достижения целей.

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

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

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

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

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

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

  • в сложных системах существуют автономные объекты, которые взаимодействуют друг с другом при выполнении своих определенных задач;
  • агенты должны иметь возможность реагировать на изменяющиеся условия среды, в которой они функционируют и, возможно, изменять свое поведение на основе полученной информации;
  • сложные системы характеризуются возникающими структурами — логически связанными схемами, которые формируется в результате взаимодействия между агентами;
  • сложные системы с возникающими структурами часто существуют на грани порядка и хаоса;
  • при создании сложных систем на базе агентов имеет смысл рассматривать биологические аналогии, такие как: паразитизм, симбиоз, репродукцию, генетику, митоз и естественный отбор (например, компания British Telecom при формировании сети направления звонков использует модель деятельности колонии муравьев).

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

В настоящее время не существует устоявшегося определения агента. Ниже перечислены некоторые из них:

"Агент — это аппаратная или программная сущность, способная действовать в интересах достижения целей, поставленных пользователем".

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

По определению Кристиана Доннегара (директора по технологии компании Living Systems, занимающейся созданием систем совместной коммерции на основе технологии агентов): "агенты — программные объекты, которые выполняют определенные упреждающие и корректирующие действия в соответствии с заданиями, делегированными человеком".

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

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

Области знания и технологии, используемые  интеллектуальными агентами

Рис. 6.2. Области знания и технологии, используемые интеллектуальными агентами

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

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

На основании изложенного выше мы можем скомпилировать следующее определение [Кияев В. И., Герасимов Р. В., 2012]: "агент — это самостоятельная программная система,

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

Интеллектуальный агент должен обладать следующими свойствами [Vittikh V. A. — http://www.cs.brandeis.edu/dept/ faculty/ mataric]:

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

Иногда в этот же перечень добавляются и такие человеческие свойства, как рациональность, правдивость, благожелательность.

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

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

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

Укрупнённая структура агента

Рис. 6.3. Укрупнённая структура агента

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

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

Архитектура ядра мультиагентной системы

Рис. 6.4. Архитектура ядра мультиагентной системы

В архитектуре МАС основную часть составляет предметно-независимое ядро, в составе которого выделяются следующие базовые компоненты (рис. 6.3):

  • служба прямого доступа обеспечивает непосредственный доступ к атрибутам агентов;
  • служба сообщений отвечает за передачу сообщений между самим агентами, а также между агентами и дополнительными системами ядра;
  • библиотека классов агентов (часть базы знаний) содержит информацию о классификации агентов в данной MAS.
  • сообщество агентов — серверное "место", где размещаются агенты; этот блок, кроме жизнедеятельности агентов, обеспечивает еще функции по загрузке/записи агентов и их свойств и за оптимизацию работы агентов с ресурсами.
  • онтология — предметная база знаний, содержащая конкретные знания об объектах и среде функционирования, представляемые в виде соответствующей семантической сети.

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

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

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

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

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

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >