Научная статья на тему 'Агентно-ориентированная технология разработки распределенных интеллектуальных систем'

Агентно-ориентированная технология разработки распределенных интеллектуальных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
834
173
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Агентно-ориентированная технология разработки распределенных интеллектуальных систем»

УДК 004.89

АГЕНТНО-ОРИЕНТИРОВАННАЯ ТЕХНОЛОГИЯ РАЗРАБОТКИ РАСПРЕДЕЛЕННЫХ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ

Зайцев Евгений Игоревич, к.т.н., доцент, Московский государственный университет приборостроения и информатики, Россия, Сергиев Посад-7, zei@tsinet.ru

Распределенные интеллектуальные системы могут быть построены на базе обычных совместно функционирующих объектов, при этом ориентация на коллективный потенциал, а не на индивидуальные возможности объектов, не превращает объектно-ориентированную систему в агентно-ориентированную. Внимание к агентно-ориентированной технологии инвесторов, а также отсутствие общепринятого формального определения программного агента приводят к тому, что многие разрабатываемые лабораториями, университетами, фирмами и промышленными организациями объектно-ориентированные системы позиционируются как многоагентные (МАС, MAS-MultiAgent Systems) [1-5].

Агентно-ориентированный подход, подобно ориентированной на службы архитектуре SOA (Service-Oriented Architecture), предполагает разбиение приложений на крупно гранулированные, слабо связные компоненты, которые инкапсулируют больше функциональности, по сравнению с такими программными абстракциями, как методы и классы. Теория агентов и многоагентных систем предлагает такие высокоуровневые понятия как роли агентов, планы, цели, протоколы общения и ведения переговоров. В отличие от традиционных объектно-ориентированных программных серверов, имеющих развитые средства взаимодействия со средой и другими объектами и предоставляющих определенные услуги клиентам, агенты способны действовать рационально и осуществлять логические выводы в условиях неполноты и противоречивости получаемой информации.

С позиций объектно-ориентированного программирования программный агент можно рассматривать как особый тип объекта (smart object), который содержит когнитивные структуры данных (cognitive data sructures) и методы, реализующие достоверный (дедуктивный) или правдоподобный (индуктивный, абдуктивный) выводы. Кроме того, модель агента интегрирует механизмы рассуждения на основе знаний с нейросетевым (коннекционистским) подходом, смещающим акцент исследований с проблем символьного представления и организации формальных рассуждений на проблемы обучения и адаптации. Структура коннекционистских систем формируется не только при их разработке, но и в процессе взаимодействия со средой.

Особенность агентов состоит в том, что в их модели присутствуют ментальные свойства (интенциональные характеристики): убеждения, желания и намерения (модель BDI, Belief, Desires, Intentions - минимальное интенциональное описание агента), которые направляют деятельность агентов и могут меняться в процессе функционирования. При формализации желаний агента, можно сказать, что они представляют собой состояния (ситуации), достижение которых важно для агента. Желания можно свести к убеждениям относительно будущих действий, при этом, в противоположность убеждениям (истинным или ложным), желания рассматриваются не с позиций их истинностного значения, а в контексте удовлетворения или выполнения. К исполнению желания агента ведёт реализация его намерений - того, что агент должен (собирается) сделать в силу своих обязательств и/или желаний. Для удовлетворения желаний агент может, не меняя своих намерений и убеждений в том, что действия, которые он намерен совершить, возможны, делать попытки соответствующим образом воздействовать на внешнее окружение.

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

110

Убеждения агента становятся знанием, если их истинность подтверждается (обосновывается) новыми фактами или объяснениями. Немонотонные логики, такие как логика умолчания (default logic), автоэпистемическая (autoepistemic logic), немонотонная модальная логика (modal nonmonotonic logic), косвенное описание (circumscription), позволяют решить проблему отсутствия у агентов определенных знаний, при этом нет необходимости придерживаться предположения о замкнутом мире (closed-world assumption), согласно которому высказывания, истинность которых не может быть доказана, считаются ложными, а имеющаяся в базе знаний информация полной [6].

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

Разбиение приложения на автономные, крупно гранулированные служебные компоненты облегчает идентификацию естественного параллелизма, который существует в контексте предметной области, и понимание того, как следует проводить декомпозицию работ, которые можно выполнять одновременно. Разработчики, реализующие распределенные интеллектуальные системы на основе агентов, могут сосредоточиться на корректном моделировании задач, выполняемых агентами, а не на стремлении явно управлять параллелизмом в программе. Повышение уровня используемых абстракций упрощает разработку распределенных интеллектуальных систем, при этом оно ограничивает область действия абстракций и объем контроля деталей реализации, порученного разработчикам. Повторное использование абстракций высшего уровня сопряжено с трудностями. Чтобы быть многократно используемой, абстракция должна допускать адаптацию, как через некоторые внутренние механизмы изменчивости, так и через внешние адаптеры. Фундаментом для систематического повторного использования в настоящее время служат проблемно-ориентированные языки, определенные множеством классов каркасы, адаптация которых возможна только в точках расширения (в абстрактных классах, для которых не приведены реализации), а также шаблоны (patterns), отличающиеся от каркасов тем, что они не предусматривают специфической реализации. Для разработки прикладных МАС удобно использовать управляемые моделями среды разработки, которые позволяют упростить процесс создания экземпляров и сборки агентов, обеспечивают автоматическую генерацию частичных или полных реализаций на основе спецификации [7].

Для поддержки процессов проектирования и реализации многоагентных систем существует достаточно большое количество инструментальных средств, которые формируют среду, оптимизированную для выпуска определенного типа приложений. В настоящее время используют инструментальные средства, которые, в большинстве случаев, основаны на Java и фокусируются либо на реализации спецификаций стандарта Международного Фонда интеллектуальных физических агентов (Foundation for Intelligent Physical Agents, FIPA), либо спецификаций стандарта MASIF ассоциации OMG (Object Management Group) по реализации систем мобильных агентов и обеспечению интероперабельности между различными архитектурами. К первой группе относятся такие инструментальных средства, как JADE (Telecom Italia Lab), Agent Factory (PRISM Laboratory), FIPA-OS (Emorphia), Jack (AOS Group), Zeus (British Telecommunication), Agent Development Kit (Tryllian BV), Grasshopper (IKV technologies AG). Вторую группу представляют такие среды, как Aglets SDK (IBM), 111

111

Odyssey (GenMagic), D'Agents (Dartmouth college), а также Grasshopper. Многие из этих систем позиционируются, как проекты с открытым исходным кодом (JADE, ZEUS, FIPA-OS, AgentFactory, Tryllian ADK).

Фонд FIPA унифицирует архитектуру платформ агентов, необходимые для управления агентами операции и способы взаимодействия агентов с программным обеспечением, которое не использует агентную технологию [8]. Согласно FIPA система агентов содержит подсистему управления агентами (Agent Management System), службу каталога (Directory Facilitator), канал связи агентов (Agent Communication Channel) и менеджер безопасности платформы агентов (Agent Platform Security Manager). Данные компоненты включают сервисы по созданию, удалению, деактивации, возобновлению работы и миграции агентов, службы маршрутизации сообщений и управления жизненным циклом, службы белых страниц (с информацией о соответствии между глобально уникальными именами агентов и адресами локального транспорта, используемого платформой) и желтых страниц, службы каталога (с описанием агентов и услуг, которые они предоставляют), а также сервисы по осуществлению политики безопасности на транспортном уровне.

Стандарт OMG MASIF (Mobile Agent System Interoperability Facilities), представляя собой надстройку над стандартом распределенного кроссплатформенного объектноориентированного программирования CORBA (Common Object Request Broker Architecture), позволяет объединить традиционную клиент-серверную парадигму и технологию мобильных агентов. Аналогично FIPA, стандарт MASIF унифицирует синтаксис и правила выполнения операций, связанных с созданием, удалением, перемещением и идентификацией агентов, приостановкой и возобновлением их работы, получением агентом информации о типе платформы. Поверх брокеров объектных запросов (ORB) стандарта СORBA могут применяться коммуникационные протоколы прикладного уровня, называемые языками взаимодействия агентов (ACL, Agent Communication Language).

В случаях, когда узлы должны динамически перестраиваться на решение различных задач, используются мобильные агенты, поддерживающие либо слабую (weak mobility), либо сильную (strong mobility) модели мобильности. Интеллектуальные мобильные агенты обычно требуют поддержки сильной мобильности, при которой вместе с сегментом кода переносится также сегмент исполнения, что позволяет работающему процессу после приостановки и перенесения на другую машину продолжить его выполнение с того места, на котором этот процесс был приостановлен. Примером агентов с сильной мобильностью являются Java-аглеты (aglets), которые пересылаются из одного контекста в другой по протоколу ATP (Agent Transfer Protocol) прикладного уровня, не зависящему от платформы и использующему унифицированный указатель ресурса (URL, Uniform Resource Locator) для определения местоположения агентов и серверов.

Разработка языков и инструментов для создания прикладных МАС возможна с использованием средств расширяемости, предоставляемых современными интегрированными средами разработки (Integrated Development Environment, IDE). Разработка подключаемых модулей специального назначения для существующих IDE, например, таких как мультиплатформенные Eclipse (Eclipse Foundation) или NetBeans (NetBeans Community), облегчает построение специализированных инструментальных средств, нацеленных на проектирование распределенных интеллектуальных систем, и обеспечивает высокие уровни специфичности и автоматизации по относительно невысокой цене. Поскольку Eclipse и NetBeans состоят из плагинов (PDE), у разработчиков инструментальных средств имеется возможность предложить свои расширения к этим IDE и предоставить пользователям последовательную и цельную интегрированную среду разработки. Хотя Eclipse и NetBeans написаны на Java, использовать их можно и с другими языками. Более того, используя обычные приемы программирования, можно собрать язык моделирования из компонентов, которые входят в библиотеку компонентов определения языков в IDE.

112

Высокий уровень абстракции, используемый при агентно-ориентированном подходе, и выросшая мощность платформенных технологий (от библиотек классов к каркасам компонентов, промежуточному программному обеспечению на основе распределенных компонентов, и асинхронной слабо связанной архитектуре служб) позволяют использовать концепцию программных агентов при разработке распределенных интеллектуальных систем учебного назначения и, в частности, многоагентных банков знаний (МБЗ) [9]. МБЗ представляют собой распределенные интеллектуальные информационные системы, которые формируют ответы на запросы пользователей посредством выполнения специализированных процедур поиска и логической обработки знаний, а также выступают в качестве адаптивных обучающих систем.

Многоагентный банк знаний включает общие и специальные знания о предметной области, о процессе обучения и модели обучаемого, ассоциируя их с реактивными и когнитивными программными агентами [10-11], которые реализуют процедуры обработки этих знаний, выдают ответы на запросы пользователей и строят рациональную стратегию обучения, совершенствующуюся по мере накопления данных. Для формирования ответов на запросы пользователей о значениях различных характеристик объектов и событий, о сравнении и анализе событий, выявлении связей между событиями, а также запросы о формировании упорядоченных совокупностей событий, обеспечивающих решения тех или иных задач, в МБЗ вместо одного интеллектуального решателя используется многоуровневая сеть программных агентов.

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

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

В двухуровневой архитектуре многоагентного банка знаний модель реактивного агента может быть задана следующим образом:

Ar=(Zr, Wr, N(ZR,Net,SR), Sr(R,A(G))), где ZR - множество входных сообщений; WR -множество выходных сообщений; N - множество методов, определяющих реакции нейронной сети Net реактивного агента на входные сообщения Zr; Sr - множество состояний, каждое из которых определяется набором атрибутов агента и их значениями:

INT R, = {...[Aj ,DOM(Aj)],...}; EXT R = (FU...FP }; Fk=(A1(Gl),... As(G„)}, где R -множество отношений, G - множество значений множества атрибутов А. Домены (DOM) являются общими совокупностями значений, из которых берутся реальные значения для атрибутов отношения. Интенсиональные части (INT) локальных баз данных содержат информацию, характеризующую семантику предметной области, экстенсиональные части (EXT) описывают возможные состояния агентов и их взаимосвязи. Одноуровневая

113

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

В случае многоуровневой организации МБЗ помимо реактивных агентов, не имеющих целевой ориентации и связанных с набором источников знаний о предметной области, функционируют когнитивные агенты, которые планируют собственные действия и координируют деятельность реактивных агентов. Модель когнитивного агента формально может быть определена шестеркой: Ak=(Zk,Wk,Sk,,SP,P), где ZK - множество входных сообщений; Wk - множество выходных сообщений (осведомительных, управляющих, координационных); Sk - множество состояний когнитивного агента, соответствующее множеству ситуаций, которые зависят от ментальных свойств агента (убеждений, намерений, желаний, выполняемых действий), состояний других агентов и их взаимосвязей, происходящих в системе событий; SP - система продукций, определяющая переходы агента из одного состояния в другое и формируемые при этом выходные сообщения, инициирующие синхронные либо асинхронные операции обмена; P=(D,SG,s0) - система планирования в пространстве состояний для проблемной области D c исходным состоянием s0 и динамическим множеством целей SG.

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

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

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

Литература

114

1. Тарасов В.Б. От многоагентных систем к интеллектуальным организациям. - М.: Эдиториал УРСС, 2002. -352с.

2. Городецкий В.И., Грушинский М.С., Хабалов А.В. Многоагентные системы / Новости искусственного интеллекта, №2, 1998.

3. Городецкий В.И., Карсаев О.В., Конюший В.Г., Самойлов В.В., Хабалов А.В. Среда разработки многоагентных приложений MASDK // Информационные технологии и вычислительные системы, 2003, №12. С.26-41.

4. Pavon J. The INGENIAS Methodology and Tools / J. Pavon, J. Gomez-Sanz Ruben Fuentes // Agent-Oriented Methodologies, Brian Henderson-Sellers & Paolo Giorgini (eds.), Idea Group Publishing, 2005 - P. 236-276.

5. Wеiss G. Multiagent systems. MIT Press, Cambridge, Massachusetts, 1999.

6. Рассел С., Норвиг П. Искусственный интеллект: современный подход. -М.: Вильямс, 2006. -1408с.

7. Greenfield J., Short K. Software Factories: assembling applications with patterns, models, frameworks and tools. Wiley Pablishing, Inc., 2004.

8. Bellifemine F., Poggi A., Rimassa G. Developing multi-agent systems with a FIPA-compliant agent framework // Software - Practice And Experience. - 2001, № 31(2) - P. 103-128

9. Зайцев Е.И. О концепции многоагентных банков знаний, как интеллектуальных обучающих системах // Материалы 16-й международной конференции “Современное образование: содержание, технологии, качество”. В 2-х.т. - СПпб.:Изд-во СПбГЭТУ “ЛЭТИ”. 2010. Т.2. С. 36 - 38.

10. Зайцев Е.И. Распределенная интеллектуальная система на базе программных агентов с нечёткими знаниями // Информационные технологии, №9, 2006.

11. Зайцев Е.И. Методология представления и обработки знаний в распределенных интеллектуальных информационных системах. // Автоматизация и современные технологии. 2008, №1, С.29-34.

УДК 004.054

МАТЕМАТИЧЕСКИЕ МОДЕЛИ ТЕСТИРУЕМОГО ИСХОДНОГО КОДА

Денисов Виктор Сергеевич, аспирант, Саратовский государственный университет им. Н. Г. Чернышевского, Россия, Саратов, denisovenator@,gmail.com

Введение

В данной статье предлагаются ряд формальных понятий и математических моделей для оценки пригодности исходного кода к модульному тестированию в средах JUnit и TestNG. Модульное тестирование было выбрано для анализа, так как оно является важной составляющей современных гибких методик разработки[1]. Модульное тестирование поощряет изменение кода и рефакторинг[2], способствуя общему повышению качества исходного кода.

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

1. Используемые термины

Будем называть базовыми выражениями языка следующие выражения:

• выражение бинарного оператора;

• выражение унарного оператора;

115

i Надоели баннеры? Вы всегда можете отключить рекламу.