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

Платформы для разработки МАС

< Лекция 6 || Лекция 7: 12
Аннотация: Мультиагентные системы используются сегодня для разработки широкого спектра информационных и промышленных систем.

Области применения и платформы для разработки МАС

Многоагентные системы зародились на пересечении теории сложных систем и распределенного искусственного интеллекта. С одной стороны, речь идет об открытых, активных, развивающихся системах, в которых главное внимание уделяется процессам взаимодействия агентов как причинам возникновения системы с новыми качествами. С другой стороны, достаточно часто MAC строятся как объединение отдельных интеллектуальных систем, основанных на знаниях [Тарасов В. Б., 1998].

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

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

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

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

MAC обычно состоит из следующих основных компонент:

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

В MAC задачи распределены между агентами, каждый из которых рассматривается как член группы или организации. Распределение задач предполагает назначение ролей каждому из членов группы, определение меры его ответственности и требований к опыту [Shoham Y., Leyton-Brown K., 2009].

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

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

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

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

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

Обычно такие системы легко интегрируются с существующими коммуникаторами, учетно-контрольными системами предприятия, электронными картами, средствами GPS навигации, RFID-чипами и т. п.

Применение мультиагентных инструментальных средств позволяет, например, решить ряд сложных задач производственной и транспортной логистики [Граничина Н. О., 2010]. В настоящее время существует несколько промышленных реализаций интеллектуальных систем, основанных на мультиагентных технологиях: для компаний, занимающихся междугородними транспортными перевозками (организовано согласованное планирование загруженности парка грузовиков для менеджеров центра и филиалов), для компаний корпоративного такси (планирование и распределение текущих заказов в режиме реально времени), для аэропорта (система управления наземными сервисами аэропорта на основе RFID- технологий) [Виттих В. А., Скобелев П. О., 2009].

Для решения этих задач использовалась инструментальная платформа, которая состоит из основных модулей, представленных на рис. 7.1.

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

Схема взаимодействия модулей инструментальной системы

Рис. 7.1. Схема взаимодействия модулей инструментальной системы

Адаптивный планировщик обрабатывает поток входящих событий (поступлений заявок, ввода новых ресурсов, выхода из строя ресурсов и т. п.).

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

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

Моделирующая система — программный модуль, позволяющий осуществлять моделирование ситуации по принципу "Что если?".

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

Ниже кратко описаны наиболее популярные средства разработки MAC.

JADE (Java Agent Development Framework) — широко используемая программная среда для создания мультиагентных систем и приложений, поддерживающая FIPA-стандарты для интеллектуальных агентов. Включает в себя среду выполнения агентов (агенты регистрируются и работают под управлением среды), библиотеку классов, которые используются для разработки агентных систем, набор графических утилит для администрирования и наблюдения за жизнедеятельностью активных агентов. Программная среда JADE подключается к любом проекту на языке Java. Агенты JADE могут быть совершенно разными — от простых, только реагирующих, до сложных — ментальных.

JACK Intelligent Agents — Java платформа для создания мультиагентных систем. Так же как и JADE, расширяет Java сво-ими классами. JACK одна из немногих платформ, где используются модель логики агентов, основанная убеждениях-желаниях-намерениях (Belief–desire–intention software model – BDI), и встроенные формально-логические средства планирования работы агентов.

MadKIT — модульная и масштабируемая мультиагентная платформа, написанная на Java. Поддерживает агентов на разных языках: Java, Python, Jess, Scheme, BeanSchell. Красиво визуализирует и позволяет управлять этими агентами.

AgentBuilder — большой коммерческий продукт, выпускаемый так же и в Academic Edition. Агенты достаточно интеллектуальны, и общаются на языке KQML (Knowledge Query and Manipulation Language) и обладают ментальной моделью. Платформа является Java-ориентированной.

Cougaar (Cognitive Agent Architecture) — также Java-ориентированная платформа для построения распределенных мультиагентных систем. Включает не только исполняющую систему (run-time engine), но и некоторые средства для визуализации, управления данными и др.

NetLogo — кроссплатформенное программируемое окружение для программирования мультиагентных систем.

VisualBots — бесплатный мультагентный симулятор в Microsoft Excel с Visual Basic синтаксисом.

MASON — Java библиотека для моделирования мультиагентных систем.

REPAST — набор инструментов для создания систем, основанных на агентах.

CogniTAO — С++ платформа разработки автономных мультиагентных систем, ориентированная на реальных роботов и виртуальных существ (CGF).

На сегодняшний день не существует универсального языка программирования или инструментальной системы разработки, которая бы полностью соответствовала требованиям построения агентов. С точки зрения принципов распределенного объектно-ориентированного программирования (ООП) необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредством передачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний. Каждый агент имеет возможность создания копий самого себя с полной или ограниченной функциональностью, обеспечивая возможность настройки на среду путем исключения неэффективных методов и замены их новыми. Таким образом, традиционная для ООП схема {класс/объект/ наследование} нарушается, так как агент имеет возможность постоянного изменения сценария поведения без его изменения в родительском классе. Многозначное наследование позволяет создавать экземпляры агентов, смешивая сценарии поведения, схемы наследования и атрибуты, определенные в родительских классах [Vittikh V. A. — http://www.cs.brandeis.edu/dept/faculty/mataric].

Отметим, что система разработки, которая бы полностью соответствовала требованиям построения агентного приложения, должна соответствовать следующим требованиям — доступность на многих платформах, обеспечение перенесения кода на различные платформы, поддержка сетевого взаимодействия, многопотоковая обработка и некоторые другие. Выше было показано, что чаще всего в агентных технологиях используются: универсальные языки программирования (Java); а также языки, "ориентированы на знания" — такие, как языки представления знаний (KIF), языки переговоров и обмена знаниями (KQML, AgentSpeak, April). Используются также языки спецификаций агентов; специализированные языки программирования агентов (TeleScript); языки сценариев и Scripting Languages (Tcl/Tk); символьные языки и языки логического программирования (Oz).

< Лекция 6 || Лекция 7: 12