Факультет
Компьютерных наук
и технологий

Специальность
Системное программирование
Кафедра
Компьютерной инженерии
Магистр
Пронькин
Вячеслав
Геннадиевич
Тема выпускной работы
Разработка параллельных симуляторов
для моделирования динамических объектов
с использованием агентно-ориентированного подхода

Руководитель
проф., д.т.н. Святный Владимир Андреевич
     
 

Реферат по теме магистерской работы

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

Введение

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

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

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


Цели и задачи работы

Целью работы является разработка параллельных симуляторов для моделирования динамических объектов с использованием агентно-ориентированного подхода.

Главными задачами исследований и разработок являются:

  • анализ работ в области параллельного моделирования СДО и агентно-ориентированных подходов
  • разработка структуры и функций параллельного симулятора СДО РП
  • разработка алгоритма функционирования параллельных симуляторов
  • выбор и обоснование средств имплементации в условиях особенностей агентного подхода
  • анализ принципов отображения агентных имплементаций на целевые параллельные архитектуры
  • экспериментальные исследования

Актуальность темы

В наше время техника полностью распространилась на все сферы человеческой деятельности. Но это не предел, следовательно, необходимо разрабатывать еще более совершенные, удобные, безопасные технологии. Сетевые динамические объекты находятся не так уж далеко от обычного человека — это может быть обычный трубопровод водо/газоснабжения. Это может быть электрическая сеть. На крупных фабриках и заводах, в горном деле при проветривании помещений, горных забоев систему каналов можно также рассматривать как сетевой динамический объект. Процессы, протекающие в таких объектах, очень сложны и во многих случаях описываются большими системами уравнений в частных производных. При ошибочной работе системы возможны значительные расходы средств, энергии, а также серьезные последствия: замыкания, пожары, взрывы, человеческие жертвы. Следовательно, проектирование, расчеты и моделирование надежных, быстрых систем СДО является важнейшей задачей. Агентно-ориентированный подход позволяет перейти на более высокий уровень программирования симуляторов сетевых объектов с распределенными параметрами, ускорить и сделать более надежной разработку моделирующих сред.


Обзор исследований по теме

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


Научная новизна

Научной новизной можно считать новшество разработки параллельных симуляторов СДО с использованием именно агентного подхода. Работа и исследования расширяют знания об использовании этого подхода к программированию симуляторов СДО.


Планируемые практические результаты

В работе предложена структура и реализация симуляторов на базе агентного подхода программирования. Проведенный анализ работ в области параллельного моделирования СДО и агентно-ориентированных подходов. Разработан параллельный симулятор СДО с использованием агентно-ориентированного подхода.


Принципы агентного подхода к разработке параллельных симуляторов и других hardware/software-систем

Распараллеливание и распределение алгоритмов информационных систем традиционными методами имеет множество серьезных недостатков и ограничений:

— необходимость преодоления границ операционных систем, вызвана тем, что в распределенных системах применяются различные операционные системы, протоколы и интерфейсы;

— разнородность объектных моделей проявляется в том, что классы и объекты, построенные в различных инструментальных средах, имеют определенные отличия;

— сложности управления распределенными клиентами, особенно в условиях переменной конфигурации сети;

— методологические ограничения, связанные с использованием различных моделей и методов построения компонентов распределенных систем.

Распределенные объектные архитектуры (CORBA, Java RMI, DCOM, WEB-services) стремятся преодолеть указанные ограничения, но оставляют нерешенными следующие проблемы:

— необходимость перекомпиляции программных кодов при внесении изменений в объекты и интерфейсы;

— невозможность динамической адаптации поведения программных объектов в зависимости от состояний и поведения среды;

— невозможность работы в явной форме с моделями знаний, ценность в которых постоянно возрастает;

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

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

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

Основными свойствами агентов считаются [1]:

— автономность — способность выполнять действия самостоятельно;

— гомогенность/гетерогенность — способность объединять однородные или разнородные функции;

— обучаемость и интеллект — машинное обучение, коррекция поведения для улучшения собственной эффективности;

— активное поведение — постоянный обмен информацией внутри агента и со средой;

— коммуникативность — обмен данными с другими агентами;

— восприятие среды — наличие специальных средств восприятия среды функционирования агента;

— мобильность — перемещение агента внутри других программных и физических сред.

Агентно-ориентированный подход (АОП) имеет ряд принципиальных отличий от уже традиционного объектно-ориентированного подхода (ООП) [1]. Агент представляет собой более сложную, активную и автономную единицу (рис. 1).

Принцип работы агента

Рис.1 — Принцип работы агента
(анимация: объем — 8,5 КБ, палитра — 16 цветов, количество кадров — 20,
количество циклов повторения — 7, размер — 330x379,
задержка между кадрами — 500 мс, задержка повтора — 2000 мс)

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

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

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

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


Программные продукты поддержки программирования агентных технологий

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

Наиболее известные проекты: AgentBuilder, Bee-gent, Cable, Decaf, FIPA-OS, Grasshopper, Gypsy, JADE, JASON, JAFMAS, MAML, ProcessLink, Swarm, Zeus .

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

Достаточно широкое применение получила платформа многоагентного программирования JADE (Java Agent Development Framework), полностью реализованная на языке Java. JADE упрощает разработку многоагентных систем благодаря использованию инструментов, поддерживающих фазы настройки и развертывания системы. Агентная платформа может устанавливаться на компьютерах с различными операционными системами, и конфигурироваться через удаленный GUI-интерфейс даже во время выполнения агентов. Коммуникационная архитектура предлагает гибкий и эффективный процесс обмена сообщениями, где JADE создает очередь и управляет потоком ACL-сообщений, которые являются частными для каждого агента. Агенты способны обращаться к очереди с помощью комбинации нескольких режимов работы: блокировка, голосование, перерывы в работе и сопоставления с эталоном.

Для платформы JADE разработана среда JADEX, которая представляет собой расширение многоагентной платформы. Эта среда предполагает гибридную реактивно-делиберативную архитектуру, в которой агент рассматривается как «черная шкатулка», которая принимает и отправляет сообщения. Основываясь на результатах обработки сообщений, внутренних и внешних событий, делиберативний механизм принимает решение о переходе к новому плану действий или продолжение старого. Действующий план может отправлять сообщения другим агентам, изменять базу убеждений, формировать новые цели и вызвать внутренние события. Система использует библиотеку планов, которые обрабатываются как Java-классы.

Определенный интерес вызывает инструментарий INGENIAS Development Kit (IDK). IDK представляет собой набор инструментальных средств для описания, проверки и реализации многоагентных систем. Предоставляемая среда разработки является функционально замкнутой и платформо-независимой за счет реализации Java. Функциональная замкнутость проявляется в том, что среда позволяет осуществлять полный цикл проектирования системы — от визуального описания до финального моделирования.

IDK поддерживает два вида визуального описания: язык AUML и методологию INGENIAS. AUML представляет собой расширение языка UML, специализированное для описания агентных систем. Методология INGENIAS основывается на определении набора метамоделей, описывающих поведение каждого агента, взаимодействие между агентами, организацию многоагентных систем, окружение, цели и задачи, определенные для каждого агента.

Методология предусматривает построение следующих метамоделей [9]:

— организационной метамодель, которая описывает архитектуру многоагентной системы и ее функции. Функции определяются на момент задания целей организации и порядка их выполнения;

— метамодель окружения, описывающая сущности, влияющие на восприятие агентов;

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

— метамодель агента, описывающая поведение каждого агента;

— метамодель взаимодействия, описывающая поведение двух и более взаимодействующих агентов. В зависимости от языка описания она может быть представлена в виде UML-диаграммы кооперации или AUML-диаграммы.

Полученное в виде метамоделей описание многоагентной системы может обрабатываться соответствующими модулями. Поведение агентов определяется их целями и задачами, а также взаимодействием между ними [3]. Цели в свою очередь могут разбиваться на более простые цели, которые могут достигаться определенными последовательностями задач. В INGENIAS любое взаимодействие начинается с задания. Совокупность задач и взаимодействий определяет глобальное поведение системы. На основе всего описания системы происходит генерация кода. Полученное описание может быть использовано для создания программного кода многоагентной системы под конкретную платформу.

Таким образом, все рассмотренные программные продукты способны помочь разработчику систем моделирования сетевых динамических объектов с распределенными параметрами на высшем уровне программирования.


Выводы

В работе были исследованы и проанализированы основные характеристики сетевых динамических объектов с распределенными параметрами, а также агентно-ориентированный подход к моделированию сложных динамических систем. Сделан анализ программных средств, помогающих в разработке многоагентных систем. Определено, что эти системы могут быть использованы для программирования симуляторов СДО РП. Разработаны алгоритмы функционирования агентно-ориентированной моделирующей среды для моделирования сетевой динамической системы с распределенными параметрами и исследованы отображения агентных имплементаций на целевые архитектуры.

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


Литература

1. Хьюз Камерон, Хьюз Трейси. Агентно-ориентированное программирование. Параллельное и распределенное программирование с использованием С++ . 672 стр. 2004.

2. Святний В.А., Молдованова О.В., Перерва А.О. Проблемно-орієнтоване паралельне моделююче середовище для динамічних мережних об’єктів. // Наукові праці ДонДТУ, серія «Інформатiка, кибернетика та обчислювальна технiка», вип. 29. — Донецьк, 2001.

3. Швецов А. Н. Агентно-ориентированные системы: от формальных моделей к промышленным приложениям, 2008.

4. Наукові праці Донецького національного технічного університету. Серія «Проблеми моделювання та автоматизації проектування динамічних систем» (МАП-2008). Випуск 7(150):–Донецьк: ДонНТУ.—2008.—290 с.

5. Википедия. Агентно-ориентированный_подход [Электронный ресурс]. — Режим доступа: http://ru.wikipedia.org/wiki/Агентно-ориентированный_подход.

6. Гусєва Г.Б. MIMD-паралельний вирішувач рівнянь для мережного динамічного об’єкту з розподіленими параметрами / Г.Б.Гусєва, О.В.Молдованова. // Проблемы моделирования и автоматизации проектирования динамических систем: Сб. научн. тр. ДонНТУ, вып.6, Донецк, 2007.

7. Svjatnyj V.A.: Virtuelle parallele Simulationsmodelle und Devirtualisierungsvorgang der Entwicklung von parallelen Simulatoren fur dynamische Netzobjekte mit verteilten Parametern / V.A.Svjatnyj.

8. Википедия. Многоагентная_система [Электронный ресурс]. — Режим доступа: http://ru.wikipedia.org/wiki/Многоагентная_система.

9. Субботін С.О., Олійник А.О., Олійник О.О. Неітеративні, еволюційні та мультиагентні методи синтезу нечіткологічних і нейромережних моделей: Монографія / Під заг. ред. С.О. Субботіна. — Запоріжжя: ЗНТУ, 2009. — 375 с.

10. Gerhard Weiss, ed. by, Multiagent Systems, A Modern Approach to Distributed Artificial Intelligence, MIT Press, 1999.