Структура сообщества агентов базируется на требованиях FIPA (Federation of Intelligent Physical Agents) - стандарт, который регулирует разработку МАС, а также определяет логическую модель агентной платформы и набор служб, которые могут быть представлены [3; 4].
В системе следует различать три типа агентов:
- агенты, работающие с внешней средой (например, агент координатор);
- агенты декомпозиции задачи (агенты эксперты);
- агенты вычислений.
Модуль МАС обладает следующими свойствами:
- структура сообщества агентов является динамической относительно типов и количества членов сообщества;
- сообщество агентов основывается на принципах кооперации;
- структура сообщества агентов подразумевает распределенность (размещение агентов на различных компьютерах), что позволяет эффективно организовать доступ к распределенным источникам данных;
- агенты используют определенную предметную область для решения поставленных задач;
- агенты обеспечивают работу в асинхронном режиме;
- появление новых членов сообщества агентов или изменение функций некоторых агентов не требует перезагрузки всей информационной системы.
В качестве базовой модели класса агента была использована модель FIPA [4]:
(1)
где LA - множество информационных атрибутов (идентификатор, имя, местоположение и т.д.);
CM - коммуникационная модель (язык и методы для общения);
BM - поведенческая модель (способы обработки сообщений);
O - множество онтологий.
Для решения поставленных задач базовая модель класса агента была развита в соответствии с кругом решаемых задач:
, (2)
где AD - множество дополнительных функций, необходимых для выполнения поставленных задач и/или формирования ответных сообщений;
SA - множество внутренних структур агента, описывающих его функциональное устройство, в зависимости от его основного назначения.
Множество внутренних структур агента включает в себя:
(3)
где - множество агентов, взаимодействующих с внешней средой;
- множество агентов экспертов определенной предметной области;
- множество агентов, занимающихся непосредственными вычислениями.
Модель агента эксперта определенной предметной области:
, (4)
где - множество целей агента;
- множество действий, допустимых для агента;
- множество вариантов декомпозиции задач (библиотека частичных планов);
- функция формирования плана действий агента (формирует упорядоченную последовательность действий агента из множества его допустимых действий ), исходя из его текущей цели и варианта декомпозиции задачи .
Общая схема обработки запроса пользователя сообществом агентов представлена ниже.
- Пользователь с помощью интерфейсных форм вводит в систему запрос для проведения анализа. Данные запроса передаются агенту координатору, который будет сопровождать выполнение задания во время его обработки.
- Агент координатор передает запрос для исследования одному из агентов декомпозиции задачи (агенту эксперту) в зависимости от запроса и ждет ответа.
- Агент эксперт, взаимодействуя с агентом доступа к данным, в соответствии с данными запроса получает набор данных для дальнейшего исследования.
- Агент эксперт выполняет декомпозицию запроса пользователя на подзапросы и передает их агентам, занимающимся непосредственными вычислениями, и ждет ответа.
- Агент координатор получает ответ от агента декомпозиции задачи. Если решение найдено, тогда он трансформирует результат в форму, понятную пользователю, и передает ему ответ запроса. Иначе агент возвращает пользователю информацию о неудаче.
Агент эксперт контролирует выполнение запроса в конкретной предметной области. Класс агента эксперта - это базовый класс для реализации основных функций взаимодействия с другими агентами. Агент эксперт в чистом виде не существует в модуле МАС, он является родителем для агентов наследников, которые соотнесены с определенной предметной области и решают конкретные задачи.
Основная задача любого агента эксперта - разбить запрос на подзапросы и передать их для решения агентам вычислений и/или решить их самому. Агент эксперт реализует алгоритм работы, представленный на рисунке 1.
Рис. 1. Алгоритм работы агента эксперта.
Рассмотрим алгоритм более подробно.
Шаг 1. Активация агента эксперта, определение атрибутов задания соответствующими значениями. Типом атрибута может быть целое число, дата, время, массив. В качестве атрибутов задаются значения показателей, относящиеся к искомому заданию определенной предметной области.
Шаг 2. Декомпозиция задачи на подзадачи - на отдельные задания, которые будут выполнять как другие агенты, так и сам агент эксперт данной предметной области.
Шаг 3. Подготовка сообщения для агента доступа к данным, которое строится на формировании модели запроса в соответствии с атрибутами запроса. Список атрибутов напрямую зависит от параметров запроса и имеет нефиксированную длину. Структура сообщения основана на стандарте FIPA ACL (Agent Communication Language) и включает следующие элементы [3]:
- тип сообщения;
- отправитель сообщения;
- получатель сообщения;
- содержание сообщения;
- онтология, используемая для интерпретации сообщения;
- идентификатор сообщения.
Шаг 4. Поиск агента доступа к данным и передача сообщения для выполнения запроса. Поиск необходимого агента осуществляется при помощи службы каталогов (Directory Facilitator, агент DF), в которой опубликован список услуг по каждому агенту, где для каждой услуги в ее описании указывается тип услуги, название услуги, предметная область и специфические свойства услуги [5]. Для поиска агента с нужной услугой агент эксперт передает агенту DF шаблон описания услуги, а в результате получает список всех услуг, подпадающих под данный шаблон.
В случае если агентов, оказывающих необходимую услугу, не нашлось, то агент эксперт готовит агенту координатору сообщение о невозможности выполнения задачи и переходит к последнему шагу.
Шаг 5. Формирование отдельных заданий для непосредственного решения задачи, полученных на шаге 2.
Шаг 6. Подготовка сообщений для агентов вычислений. Структура сообщений основана на стандарте FIPA ACL.
Шаг 7. Поиск агентов вычислений, осуществляемый при помощи службы каталогов DF, и передача им сообщений для выполнения запроса.
Шаг 8. Переговорные процессы между агентом экспертом и агентами вычислений. Данный процесс происходит до тех пор, пока не получены ответы от всех агентов.
Заключительный шаг. Подготовка и отправка ответа - полученного результата в специально определенном формате, в котором ожидает получить агент координатор.
Для апробации полученных результатов был разработан прототип системы, с помощью которого было проведено тестирование структуры и основных поведений агентов, а также алгоритмов их взаимодействия по обработке запроса пользователя.
Прототип системы реализует три сценария использования системы со встроенным модулем МАС: проверка качества проведенного теста, анализ результатов обучения и анализ себестоимости строительно-монтажных работ. Для каждого из предложенных сценариев был создан агент эксперт представленной предметной области.
Таким образом, предложенный алгоритм работы агента эксперта позволяет эффективно выполнять запросы в рамках модуля МАС вследствие декомпозиции задачи на подзадачи и решения их путем взаимодействия агента эксперта как с агентом доступа к данным, так и с агентами вычислений. Модель агента представляет собой базовый класс, что дает возможность адаптации модуля МАС к решению новых задач, путем добавления нового агента эксперта с необходимой предметной областью.
Рецензенты:
Пономарев В.И., д.т.н., профессор, директор ЗАО «Научно-производственное предприятие «Знак», Министерство промышленности и торговли РФ, г. Киров.
Страбыкин Д.А., д.т.н., профессор, директор Кировского филиала Автономной некоммерческой организации высшего профессионального образования «Московский гуманитарно-экономический институт», г. Киров.