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

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

Керівник
проф., д.т.н. Святний Володимир Андрійович
     
 

Реферат за темою магістерської роботи

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

Вступ

Відомо, що за допомогою моделювання можливо дослідити складні процеси в будь-яких системах, природних чи створених людиною, при цьому не витрачаючи великих коштів, людських ресурсів, часу на заміри, дослідження, перебудову та відновлення реального об’єкту в повному обсязі. Модель розроблюється по наявним даним. Далі в ході моделювання можна додавати нові дані, характеристики об’єкту. Таким чином можна досягти стану, в якому модель буде з достатньою точністю описувати реальний об’єкт. Процес моделювання є особливо значущим, коли внаслідок нелінійностей, стохастичності змінних, дорожнечі впровадження складно або неможливо побудувати реальний об'єкт.

Мережні динамічні об’єкти відносять саме до таких об’єктів. Їх стан постійно нелінійно змінюється у часі, фізичні розміри є занадто великими, будь-які помилкові операції можуть привести до значних витрат, аварій, навіть до людських жертв. Тому моделювання мережних динамічних об’єктів (МДО) є дуже важливим завданням, для вирішення якого необхідний аналіз, вивчення, дослідження, впровадження підходів до створення надійних, швидких та зрозумілих користувачеві моделей.

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


Мета та задачі роботи

Метою роботи є розробка паралельних симуляторів для моделювання динамічних об'єктів з використанням агентно-орієнтованого підходу.

Головними задачами досліджень і розробок є:

  • аналіз робіт в галузі паралельного моделювання МДО та агентно-орієнтованих підходів.
  • розробка структури та функцій паралельного симулятора МДО РП.
  • розробка алгоритма функціонування паралельних симуляторів.
  • вибір та обгрунтування засобів імплементації в умовах особливостей агентного підходу.
  • аналіз принципів відображення агентних імплементацій на цільові паралельні архітектури.
  • експериментальні дослідження.

Актуальність теми

У наш час техніка повністю поширилася на всі сфери людської діяльності. Але це не межа, отже, необхідно розробляти ще більш досконалі, зручні, безпечніші технології. Мережні динамічні об'єкти знаходяться не так вже й далеко від звичайної людини — це може бути звичайний трубопровід водо/газопостачання. Це може бути електрична мережа. На великих фабриках та заводах, у горній справі при провітрюванні приміщень, гірничих забоїв систему каналів можна також розглядати як мережний динамічний об'єкт. Процеси, що протікають в таких об'єктах, дуже складні та в багатьох випадках описуються великими ситемами рівнянь у часткових похідних. При помилковій роботі системи можливі значні витрати коштів, енергії, а також серйозні наслідки: замикання, пожежі, вибухи, людськи жертви. Отже, проектування, розрахунки та моделювання надійних, швидких систем МДО є найважливішим завданням. Агентно-орієнтований підхід дозволяє перейти на вищий рівень програмування симуляторів мережних об’єктів з розподіленими параметрами, прискорити та зробити більш надійною розробку моделюючих середовищ.

Огляд досліджень за темою

Тема моделювання динамічних об'єктів досить добре вивчена. У ДонНТУ написано безліч магістерських робіт, дисертацій, в яких так чи інакше проводиться огляд, розробка тем моделювання. За темою агентно-орієнтованого підходу робіт значно менше, а використання агентного підходу для моделювання мережних динамічних об'єктів — нова тема не тільки для ДонНТУ, а й для всієї України. Результати пошуку повної теми випускної роботи в світі показали також нульові результати, так що, можна вважати, що тема ще не досить добре досліджена. Знайдені посилання за окремими аспектами теми наведено в розділі посилань.


Наукова новизна

Науковою новизною можна враховувати новітність розробки паралельних симуляторів МДО з використанням саме агентного підходу. Робота та дослідження розширяють знання про використання цього підходу до програмування симуляторів МДО.


Плановані практичні результати

У роботі запропонована структура та реалізація симуляторів на базі агентного підходу програмування. Проведений аналіз робіт в галузі паралельного моделювання МДО та агентно-орієнтованих підходів. Розроблений паралельний симулятор МДО з використанням агентно-орієнтованого підходу.


Принципи агентного підходу до розробки паралельних симуляторів та інших 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.