На сегодняшний день модель мультиагентной системы успешно применяется во множестве научных отраслей. Изучение и совершенствование этой модели в рамках робототехники и искусственного интеллекта привело к созданию интеллектуального агента, который способен выполнять огромный спектр задач, схожий с работой пользователя [9]. Из этого следует, что агент является сложной системой, которая может основываться на интеллектуальных методах, внутри системы мультиагентного взаимодействия [8]. Повышается сложность мультиагентных систем и самих агентов [10, 11]. Это приводит к тому, что необходимо разрабатывать новые методики ускорения и оптимизации работы мультиагентных систем.
Идеи программных агентов вообще и интеллектуальных агентов в частности привлекательны, так как позволяют людям делегировать им свои полномочия по решению сложных задач. Однако разработка МАС и действительно интеллектуальных агентов требует специальных знаний и является сложной ресурсоемкой задачей. Ведь программные агенты – новый класс систем программного обеспечения, которое действует от лица пользователя. Они являются мощной абстракцией для «визуализации» и структурирования сложного. Но если процедуры, функции, методы и классы – известные абстракции, которые разработчики ПО используют ежедневно, то программные агенты – это принципиально новая парадигма, неизвестная большинству из них даже сегодня [5].
На текущий момент процесс разработки мультиагентной системы требует постоянного взаимодействия разработчика и эксперта. Однако основная часть процесса разработки МАС производится командой специалистов по информационным технологиям без вмешательства со стороны предметного эксперта. Такой подход приводит к различию между предполагаемым предметным экспертом поведением системы и ее фактической реакцией на окружающую среду. Такой подход замедляет процессы создания и внесения изменений в МАС. Ограниченность ресурсов информационных специалистов на проекте приводит к тому, что алгоритмы, используемые в агентах, упрощаются, что также негативно отражается на реакции системы в окружающей среде. В совокупности все эти недостатки современного подхода к созданию МАС могут критически повлиять на жизнеспособность системы в целом. В связи с этим возникает потребность в разработке новых автоматизированных методов проектирования программного обеспечения, основанного на агентном подходе, которые позволят расширить степень вовлечения эксперта в процесс разработки и применять наиболее современные методы управления поведением и осуществления функционала агентов в различных предметных областях и окружающих средах [2, 4].
Система генерации МАС
В ходе работы был проведен анализ ряда моделей разработки программного обеспечения. Поскольку выработанные ранее концепт и модели функционирования автоматизированной системы предполагают высокую роль эксперта в проектировании генерируемых мультиагентных модулей, было принято решение отказаться от использования классических моделей разработки программного обеспечения, таких как итеративное или каскадное. Для генерации агентов и мультиагентных систем предлагается использовать методологию быстрого прототипирования. Быстрое прототипирование – концепция создания программного обеспечения, уделяющая особое внимание скорости и удобству программирования и основанная на идее скорейшего получения прототипа программы. Такая система предоставляет эксперту возможность уже на ранних этапах получить рабочий прототип системы, перенастройка или изменения в котором будут наиболее наглядны для не квалифицированного, как программист, пользователя ввиду возможности быстрой интеграции в целевую или тестовую систему и оценки качества функционирования МАС. Быстрое прототипирование, совмещенное с приемами визуального программирования, позволит пользователю создавать мультиагентные системы без привлечения разработчика [1].
Быстрое прототипирование предполагает использование в структуре системы набора заранее спроектированных методов решения планируемых задач. В данном случае вариантом реализации такого набора является организация банка интеллектуальных методов, т.е. готовых блоков программного кода для внедрения в структуру агентов. Взаимодействие составляющих частей системы показано на рис. 1.
Подсистема хранения данных
Согласно архитектуре подсистема хранения данных системы генерации МАС состоит из следующих основных компонент: банк интеллектуальных методов, база агентов и база ранее сгенерированных МАС [6].
Рис. 1. Архитектура системы генерации МАС
База агентов представляет собой набор шаблонов агентов в виде URL-адресов, по которым доступен программный код агента каждого типа. Каждому агенту в базе присваивается некий тип, в зависимости от задач, решать которые призван агент. Тип описывает будущее поведение агента в системе и множество настроек, свойственных данному типу. Помимо агентов и их типов база агентов содержит список связей, которые в процессе проектирования схемы взаимодействия мультиагентной системы могут быть установлены между агентами и окружающей средой. При этом для каждого агента необходимо определить входную и выходную связь с другими агентами или окружающей средой системы [13].
Банк интеллектуальных методов состоит из предварительно разработанных интеллектуальных методов, которые могут применяться в структуре агентов. Банк включает в себя методы различных направлений, таких как поведенческие алгоритмы, распознавание образов, интеллектуальный анализ информации и другие. Доступ к методам банка организован иерархически, формируя классификацию по целям и функционалу, осуществляющимися агентами, в которые эти алгоритмы будут внедрены. Концептуальная схема такой иерархии представлена на рис. 2 [7, 3].
Рис. 2. Иерархия банка интеллектуальных методов
База сгенерированных МАС представляет собой упорядоченную группу XML-файлов, хранящих сведения о предыдущих версиях сгенерированных мультиагентных систем, а также о дате и времени их создания. В этих файлах хранится сама схема межагентного взаимодействия внутри системы, а также значения настроек, указанные пользователем для каждого агента. Такой способ хранения данных позволяет пользователю оперативно загружать и сравнивать текущую редакцию МАС с ранее полученными на любой итерации проектирования версиями [12].
В целях создания подсистемы хранения данных была создана модель базы данных, фрагмент которой представлен на рис. 3.
Рис. 3. ER-диаграмма базы данных (фрагмент)
Согласно модели система генерации МАС загружает из базы список всех возможных типов агентов из таблицы Agent для размещения их на схеме визуального программирования. Для установления отношений между агентами используются связи, содержащиеся в таблице Link. Система подразумевает наличие как минимум одного типа связи для агентов любых двух типов, присутствующих в системе [14].
Для агентов, внесенных в проектируемую систему, можно задать различные настройки. Базовыми настройками, присущими каждому агенту, являются адреса получения входных и размещения выходных данных. Остальные настройки зависят от типа агента и интеллектуального метода, который обеспечивает функционирование агента. Методы находятся в таблице Method. В таблице Setting находится общий список настроек, характерных сочетаний типа агента и метода. Список содержит имена настройки и тип значения, которое должно быть введено в ходе проектирования МАС.
Заключение
В результате проведенного исследования была разработана подсистема хранения данных системы генерации интеллектуальных мультиагентных систем. Подсистема состоит из следующих основных компонент: банк интеллектуальных методов, база агентов и база сгенерированных МАС. База агентов позволяет хранить для последующей генерации набор шаблонов агентов и связей между ними, что позволит осуществлять проектирование схемы агентного взаимодействия МАС путем использования методов визуального программирования. Банк интеллектуальных методов способен передавать модули программного кода, содержащие разработанные интеллектуальные методы, генератору кода для имплементации их в структуру агентов МАС, что обеспечит высокую адекватность и быстродействие каждого агента. База сгенерированных МАС позволит пользователю оперативно осуществлять сравнение результатов, полученных на каждой итерации проектирования, что позволит сформировать более ясное представление о влиянии внесенных изменений на функционирование проектируемой мультиагентной системы.
Исследование выполнено при финансовой поддержке РФФИ (гранты № 15-07-06254 A и № 15-37-50355 мол_нр), Фонда содействия развитию МФП в НТС (договор № 475ГС1/9746), а также Минобрнауки России в рамках проектной части Госзадания (проект № 2.1917.2014/К).