Методика разработки предметно-ориентированной мультиагентной системы
Методика создания предметно-ориентированной МАС включает следующие основные этапы:
- установка и запуск платформы JADE;
- настройка конфигурации МАС;
- разработка конечно-автоматных моделей поведения агентов;
- генерация программного кода агентов;
- размещение агентов и их подключение к JADE;
- подключение агентов к выбранному инструментальному комплексу (DISCOMP или Orlando Tools).
Выполнение перечисленных этапов сопровождается экспертной поддержкой принятия решений. В процессе своей работы агенты пополняют свои знания, полученные в процессе своего конструирования, посредством использования системы классификации заданий и приложений, имитационного моделирования вычислительных процессов среды, параметрической настройки управляющих параметров алгоритмов функционирования агентов.
1. Установка и запуск платформы JADE
В качестве базового инструментария для программной реализации МАС используется Java Agent Development Framework (JADE) 1). Агентная платформа JADE может функционировать на распределенных вычислительных узлах, работающих под управлением различных операционных систем, при наличии установленной Java не ниже 5-ой версии.
Конструирование агентов МАС в JADE является весьма трудоемкой, рутинной работой, требующей высокой программистской квалификации и погружения во все тонкости представления и использования проблемно-ориентированных знаний агентом. В этой связи нами разработана интеллектная надстройка к JADE, позволяющая частично автоматизировать и тем самым существенно упростить процесс конструирования агентов МАС на базе стандартных классов JADE. Данная надстройка включает два основные компонента: Конструктор конечно-автоматных моделей поведения агентов и генератор их программного кода.
JADE – это программная среда разработки МАС и приложений, поддерживающая FIPA-стандарты для программных агентов. JADE включает в себя набор стандартных агентов для управления конструируемыми агентами МАС и библиотеку стандартных классов для Java-программ. JADE применяется для организации агентной платформы, которая в общем случае включает:
- один или несколько вычислительных узлов;
- набор стандартных агентов: Agent Management System, Directory Facilitator и Remote Monitoring Agent;
- агентов создаваемой МАС;
- среду выполнения агентов, в которой они регистрируются и работают;
- библиотеку классов, которые используются для разработки агентных систем;
- набор графических утилит для администрирования и наблюдения за жизнедеятельностью активных агентов.
Стандартные агенты создаются автоматически при запуске агентной платформы.
JADE представляет собой программное обеспечение промежуточного слоя (рис.1), разработанное компанией TILAB, предназначенное для создания распределенных мультиагентных приложений на основе транспортной архитектуры «точка-точка». Среда может динамично взаимодействовать с узлами, которые в терминологии JADE называются агентами. Агенты то появляются, то исчезают в системе в соответствии с потребностями и требованиями программной среды. Коммуникации между узлами не зависят от типа сети (проводная, беспроводная). Они являются полностью симметричными, и каждый узел может, как инициировать запросы, так и отвечать на них.
![]() | ||
Рис. 1. |
Платформа JADE запускается на одном узле из узлов РВС. Затем к ней подключаются агенты, представляющие другие узлы среды. На одном узле допустимо запускать несколько платформ, при условии, что они работают на разных портах (по умолчанию используется порт 1099). Агенты для внутре-платформенных коммуникаций занимают порт 1875.
Загрузить актуальную версию JADE можно по ссылке http://jade.tilab.com/dl.php?file=JADE-all-4.5.0.zip.
В каталоге с JADE необходимо выполнить следующую команду:
java -cp lib\jade.jar jade.Boot -gui -platform-id MASPlatform1
java -cp lib\jade.jar jade.Boot -gui -platform-id MASPlatform2 -port 1100
В данному примере создается две платформы с именами MASPlatform1 и MASPlatform2.
При запуске платформы создается главный контейнер, который содержит набор базовых агентов. Контейнеры являются собственной абстракцией разработчиков JADE и является удобным средством группировки агентов. Платформу можно запустить с графическим интерфейсом (рис. 2.), который удобен для отладки работы МАС и управления агентами.
2. Настройка конфигурации МАС
Разработчик МАС осуществляет:
- выбор необходимых ролей агентов из числа доступных;
- подключение внешних библиотек алгоритмов функционирования агентов;
- выбор инструментального комплекса для интеграции с разрабатываемой МАС и задание необходимых конфигурационных параметров для реализации такой интеграции.
На рис. 3 приведен пример выбор ролей конструируемого агента.
На рис. 4 приведен скриншот веб-интерфейса, в котором указываются пути до внешних библиотек и требуемый инструментальный комплекс.
Разработчик имеет возможность выбора типовых конфигураций МАС, сформированных для различных архитектур РВС на основе экспертного опыта администраторов среды.
3. Разработка конечно-автоматных моделей поведения агентов
Функционирование агентов осуществляется с использованием парадигмы конечно-автоматного программирования. Разработчик МАС с помощью инструментального комплекса SIRIUS II, реализующего функции конструктора конечно-автоматных моделей, выполняет концептуальное моделирование. В отличии от вычислительных моделей подобного назначения, концептуальная модель РВС позволяет осуществить взаимосвязанное описание не только алгоритмических знаний предметных областей решаемых задач, но и знаний о программно-аппаратной инфраструктуре среды и административных политиках, определенных для ее ресурсов. В модель включены следующие компоненты знаний:
- вычислительные знания, содержащие информацию о прикладных модулях для решения задач, системных модулях для планирования вычислений, формирования заданий, распределения ресурсов, мониторинга вычислительных процессов и динамической декомпозиции задач, а также о вспомогательных модулях для препроцессорной и постпроцессорной обработки данных;
- схемные знания, включающие множество объектов (например, параметров и операций) для описания модульной структуры модели и алгоритмов исследования проблемной области;
- продукционные знания, определяющие правила применения операций и позволяющие конечным пользователям приложений выбирать лучшие алгоритмы в текущей вычислительной ситуации;
- инфраструктурные знания, представленные характеристиками программно- аппаратных объектов – узлов, каналов связи, сетевых устройств, топологии сети и других структурных элементов, а также сведениями об их надежности;
- административные знания о политиках в отношении ресурсов и их пользователей, включающие правила использования ресурсов, права и квоты для пользователей и их заданий, а также информацию о системах управления заданиями и дисциплинах их обслуживания.
Особенностью концептуальной модели РВС является возможность использования системных объектов для описания схемных знаний о предметной области функционирования агентов. Разработчик МАС определяет и описывает следующие объекты: агенты, их роли, виртуальные сообщества и отношения между ними, а также состояния, функции и графы переходов автоматов. В качестве состояния агента используется состояние-действие – последовательность системных операций, выполняемых над полем системных параметров модели. Фрагмент такой модели, описывающей объекты, необходимые для построения графов переходов агентов, представлен на рис. 5.
![]() |
|
Рис. 5. |
На рис. 5 используются следующие обозначения:
- $G$ – множество графов переходов,
- $A$ – множество агентов,
- $V$ – множество виртуальных сообществ агентов,
- $R$ – множество ролей агентов,
- $STS=ST{{S}^{p}}\cup STS_{1}^{c}\cup \ldots\cup STS_{{{n}_{rol}}}^{c}$ – множество состояния автоматов.
Отношения между объектами обозначены ${{o}_{1}}-{{o}_{8}}$. Отношение ${{o}_{4}}$ представляет взаимосвязь состояний с операциями, реализующими функции переходов. Отношение ${{o}_{5}}$ представляет взаимосвязь состояний с остальными системными операциями. База знаний агента создается на основе вычислительной модели РВС.
Затем разработчик автоматически конвертирует описание модели на XML, который используется в качестве языка описания вычислительной модели РВС в инструментальных комплексах DISCOMP и Orlando Tools, предназначенных для разработки распределенных пакетов прикладных программ. МАС интегрирована с системами управления данных инструментальных комплексов. Таким образом, МАС и пакеты используют единую модель РВС.
4. Генерация программного кода агентов
С помощью генератора разработчик МАС производит синтез абстрактной программы, специфицирующей поведение агента. Ее построение производится путем статического (на основе процедурной и непроцедурной постановок задач) или динамического планирования вычислений. Далее разработчик выполняет формирование программного кода агента на языке Java. Генератор использует граф переходов состояний агента, базу знаний, библиотеку стандартных классов JADE и библиотеку оригинальных алгоритмов функционирования агентов (рис. 6).
![]() |
|
Рис. 6. |
Генерация программного кода агента осуществляется в рамках каркасного подхода к конструированию программ (рис. 7). Для реализации дополнительных методов стандартных классов JADE, представляющих функции (операции) агентов МАС, применяется библиотека «встроенных» алгоритмов функционирования агентов, оформленных в виде модулей.
![]() |
|
Рис. 7. |
JADE предоставляет набор стандартных библиотек, обеспечивающих функционирование агентной платформы, в том числе обмен сообщениями. С помощью данных библиотек возможно создание примитивного агента, способного принимать и посылать в ответ сообщения. За наполнение агента поведением отвечает разработчик МАС.
При каркасном подходе (рис. 8) каждый агент состоит из двух обязательных частей: каркаса и гнезд. Каркас представляет собой неизменяемую часть программы и включает в себя совокупность изменяемых частей – гнезд, в которые помещаются сменные модули пользователей.
![]() |
|
Рис. 8. |
5. Размещение агентов и их подключение к JADE
После получения исходного кода агента его необходимо разместить на участвующих в вычислениях вычислительных узлах. Для авторизированных пользователей исходный код агентов автоматически сохраняется в домашнем каталоге сетевого хранилища. Актуальные версии библиотек JADE также расположены в домашнем каталоге в подпапке lib
. Для подключения новых агентов к запущенной платформе JADE удобно использовать контейнеры.
Добавить новый контейнер в платформу на порт 1100 на локальном компьютере:
java -cp lib\jade.jar jade.Boot -container -port 1100
Добавить контейнер в платформу на удаленный узел:
java -cp lib\jade.jar jade.Boot -container -host 10.10.1.12 -port 1100
При обмене сообщениями JADE сам ищет путь до агентов даже в распределенной среде по их имени.
Добавить пользовательского агента MyAGents.MyAgent1 под именем agent1 в существующий контейнер на удаленный узел:
java -cp lib\jade.jar;classes jade.Boot -port 1100 -host 10.10.1.12 -agent agent1:MyAGents.MyAgent1
Агент после регистрации в платформе готов принимать и передавать сообщения, и в зависимости от сообщений выполнять действия в соответствии со своими полномочиями.
При компиляции исходного кода агента из конфигурационного файла загружаются сведения о подключаемых инструментальных комплексах.
6. Подключение агентов к инструментальному комплексу Orlando Tools
Подключение агентов к инструментальному комплексу Orlando Tools осуществляется в веб-интерфейсе в меню конфигурирования компонентов исполнительной подсистемы Orlando Tools (см. рис. 9).
Обучение агентов в процессе их функционирования
В процессе своей работы агенты пополняют свои знания, полученные в процессе своего конструирования, посредством использования системы классификации заданий и приложений, имитационного моделирования вычислительных процессов среды, параметрической настройки управляющих параметров алгоритмов функционирования агентов.
1. Система классификации заданий
Работа системы классификации заданий базируется на использовании концептуальной модели РВС и является ее дополнением. В этой системе администратор среды определяет множество возможных характеристик $h_1, h_2, …, h_m $ заданий (время решения задачи, размеры оперативной и дисковой памяти, число узлов, процессоров и ядер, режимы выполнения и т.д.), а также области их допустимых значений (рис. 10). Затем он формирует классы $ c_1, c_2, …, c_n $ заданий, обладающих наборами характеристик из определенного множества. Область допустимых значений характеристики при ее включении в тот или иной класс может быть конкретизирована. В заключение сформированным классам сопоставляются наиболее подходящие ресурсы для выполнения заданий, относящихся к этим классам.
При поступлении задания в МАС производится проверка соответствия его характеристик характеристикам имеющихся классов. В результате этой проверки задание классифицируется (определяется его принадлежность классам заданий), а затем конкретизируется путем добавления в его описание директив, определяющих множество допустимых для распределения ресурсов. Агенты, представляющие эти ресурсы, образуют виртуальное сообщество. Классифицированное и конкретизированное задание передается агентам этого сообщества для окончательного распределения ресурсов. Таким образом, классификация заданий позволяет существенно понизить сложность решения задачи определения ресурсов, подходящих для выполнения задания и формирования виртуального сообщества агентов, представляющих эти ресурсы. Сравнительный анализ средств поддержки классификации заданий в известных системах управления распределенными вычислениями показывает, что рассмотренная система классификации заданий обладает более широкими возможностями по созданию различных классов заданий и их привязке к конкретным ресурсам.
На рис. 11 приведен пример создания характеристик класса заданий. Данный класс включает следующую информацию: характеристики и их типы, области допустимых значений, величины характеристик и т.д.
В табл. 1 приведен пример описания задания, соответствующего данному классу.
Табл. 1. Описание задания | |
---|---|
Имя приложения “Korrektiva_solver” | |
Путь до исполняемого файла | “~/discomp/korrektiva/failsets” |
Параметры исполняемого файла | “-input_file input.xml -output_file output.xml” |
Число узлов | 1 |
Число ядер на узле | 32 |
Число виртуальных машин | 32 |
Тип гостевой ОС | “ReactOS” |
Промежуточное ПО для виртуальных машин | “DISCOMP” |
Число свободных окон | 32 |
Ширина окна | 900 |
Максимальное время выполнения | None |
Объем ОЗУ | None |
Объем диска | None |
Виртуализация | Да |
В данном описании, характеристики 1-3 представляют информацию о выполняемой файле. Характеристики 4-6 описывают требуемые вычислительные ресурсы. Выбор правильной образа виртуальной машины обеспечивается характеристиками 7 и 8. 9 и 10 характеристики определяют ограничения на окна в расписании менеджера ресурсов. Пусть 11-13 характеристики будут опциональными, поэтому их значения могут быть не заданы.
Классификация заданий позволяет заранее определить ограничения на окна в описании класса. Далее, на основе этих знаний агенты автоматически выбирают окна, которые обеспечивают эффективное использование ресурсов.
2. Параметрическая настройка алгоритмов функционирования агентов
Для поддержки адаптивного обучения агентов разработана новая технология параметрической настройки мультиагентных алгоритмов управления разнородной распределенной вычислительной средой с целью оптимизации распределения ее ресурсов при выполнении заданий приложений пользователей. В отличие от известных подходов в рамках данной технологии управляющие параметры алгоритмов настраиваются на основе интеграции методов и средств классификации заданий и ресурсов среды, а также ее метамониторинга и имитационного моделирования. Комплексное применение перечисленных методов позволяет осуществлять детальный учет характеристик распределяемых ресурсов и выполняемых заданий, оценку текущего состояния среды и прогноз его развития, и тем самым обеспечивает высокую степень эффективности, надежности и масштабируемости вычислений в процессе решения больших задач. Схема параметрической настройки агентов представлена на рис. 12.
3. Имитационное моделирование вычислительных процессов РВС
В процессе параметрической настройки используются оригинальные методы, алгоритмы и инструментальные средства для построения и применения имитационных моделей для оценки работы МАС в сравнении с другими традиционными системами управления распределенными вычислениями. Имитационная модель строится на языке GPSS в качестве приложения, поддерживающего многовариантные расчеты и генерирующего большое число заданий (parameter sweep application). Запуск заданий может осуществляться параллельно. Вычисления хорошо масштабируются, так как задания не связаны между собой. Разработан оригинальный алгоритм анализа экспериментальных данных (значений входных и наблюдаемых переменных), полученных в процессе имитационного моделирования, и извлечения из них знаний для дальнейшего принятия решений по регулированию управляющих параметров (ограничений загрузки узлов, бонусов за удовлетворение этим ограничениям, штрафов за их превышение, приоритетов классов заданий, степени востребованности заданий определенных классов и других характеристик) алгоритмов работы агентов. Основные этапы работы алгоритма:
- решение прямой задачи с целью определения множества оптимальных вариантов наблюдаемых переменных имитационной модели;
- решение обратной задачи для нахождения оптимальных вариантов значений входных переменных имитационной модели;
- формирование управляющих воздействий на агентов на основе найденных оптимальных вариантов значений входных переменных.
Поиск оптимальных решений основан на применении набора многокритериальных методов выбора, таких как Парето-оптимальный, лексикографический, мажоритарный и др. Использование того или иного метода зависит от степени полноты знаний о сравниваемых критериях, предоставляемых администратором РВС. Для получения оценок близости значений критериев к их оптимальным значениям коллективом проекта разработаны специальные вспомогательные алгоритмы.
Для автоматизации построения и применения имитационных используется инструментальный комплекс SIRIUS II.
Имитационное моделирование вычислительных процессов РВС осуществляется специальным агентом МАС.