Характеристика основних елементів агентно-орієнтованого програмування

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 25.08.2014
Размер файла 223,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Вступ

Метою дослідження є вивчення агентно-орієнтованих систем, можливості використання агентно-орієнтованого підходу для вирішення задач, а також ознайомлення з програмним продуктом з використання агентної системи Madkit.

Задачі дослідження:

· Побудова агентно-орієнтованіх моделей.

· Вибір архітектури програмних агентів.

· Вибір методу взаємодії агентів.

· Аналіз інструментального середовища Madkit.

· Програмна реалізація многоагентної системи.

· Аналіз результатів моделювання.

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

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

Актуальність АОП в даний час обумовлюють наступні основні причини:

· Складність сучасних систем і організацій, яка досягає такого рівня, що централізоване управління в них стає неефективним через наявність величезних потоків інформації;

· Самі задачі, що вирішуються, або системи, що розроблюються, часом неоднорідні та розподілені в просторі та у функціональному плані, оскільки жодна людина не може створити сучасну складну систему поодинці;

· Еволюція програмного забезпечення відбувається в бік його розробки на основі автономних, індивідуалізованих, взаємодіючих модулів;

· Поширення різних мереж породжує розподілений погляд на світ.

1. Агентно-орієнтоване програмування

Агентно-орієнтований підхід (надалі АОП) до програмування - різновид представлення програм, або парадигма програмування, в якій основними концепціями є поняття агента і його поведінки, які залежать від середовища, в якому він знаходиться. Концепція була запропонована Шохемом в 1990 році. Визначення парадигми, дане автором:

“Цю нову парадигму програмування цілком розумно назвати раціональним програмуванням. Точно також як об'єктно-орієнтоване програмування зрушило парадигму з написання процедур до створення об'єктів, раціональне програмування зрушило парадигму з створення інформаційних об'єктів до створення мотивованих агентів”.

Агентом є все, що може сприймати своє середовище за допомогою датчиків і впливає на це середовище за допомогою виконавчих механізмів.

2. АОП як можлива еволюція ООП

У об'єктно-орієнтованому програмуванні (надалі ООП) обчислювальний процес розглядається як система, зібрана з модулів, які взаємодіють один з одним і мають власні способи обробки отримуваних повідомлень. У свою чергу, АОП уточнює ці рамки, фіксуючи активність агентів і зміни їх стану. Наявність у агента механізму мета-утворення забезпечує принципово новий рівень автономії. Агент не обов'язково виконує вказівку будь-якого іншого агента чи користувача, він просто залежить від умов середовища, включаючи цілі та наміри інших агентів. На відміну від об'єкта, агент може прийняти на себе певні зобов'язання або, навпаки, відмовитися від виконання деякої роботи, мотивуючи це відсутністю компетентності, зайнятістю іншим завданням. У той же час, агент може виконувати такі дії як породження, гальмування та заміну інших агентів, активізацію функцій (як своїх, так і в інших агентів), активізацію сценарію діяльності, запам'ятовування поточного стану інших агентів. Все це наочно показує, що агент, будучи «активним об'єктом» знаходиться на більш високому рівні складності по відношенню до традиційних об'єктів в ООП.

Причини виникнення.

Причини виникнення агентно-орієнтованого підходу:

1. Необхідність подолання меж операційних середовищ;

2. Усунення різнорідності об'єктних моделей, викликаних тим, що класи і об'єкти, побудовані в різних інструментальних середовищах, мають певні відмінності.

Постановка завдання.

У цілому, система АОП повинна включати наступні базові компоненти:

· Обмежену формальну мову з відповідними синтаксисом і семантикою для опису внутрішнього стану агента, яке визначається кількома параметрами типу переконань, бажань, намірів і зобов'язань;

· Мову програмування для специфікації агентів, що включає примітивні команди типу REQUEST і INFORM;

· Агентифікатор, який перетворює нейтральні компоненти до програмованих агентів.

· Основними властивостями, якими повинні мати агенти, вважаються:

· Автономність - здатність виконувати дії самостійно;

· Гомогенність/гетерогенність - здатність об'єднувати однорідні або різнорідні функції;

· Наявність «інтелекту», здатності до навчання, корекція поведінки для поліпшення власної ефективності;

1. Активне поведінка, постійний обмін інформацією «всередині» агента і між агентом і середовищем;

2. Комунікативність - обмін даними з зовнішнім середовищем;

3. Сприйняття середовища - наявність спеціальних «засобів» сприйняття середовища функціонування агента;

4. Мобільність - переміщення агента всередині інших програмних і фізичних середовищ і/або компонентів.

Реалізації.

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

1. Необхідність перекомпіляції програмних кодів при внесенні змін в об'єкти і інтерфейси;

2. Неможливість динамічної адаптації поведінки програмних об'єктів залежно від статків і поведінки середовища;

3. Неможливість роботи в явній формі з моделями знань;

Розподілені об'єктне середовище JADE (заснована на Java RMI, Java CORBA IDL, Java Serialization і Java Reflection API) надає Java агентам такі властивості:

1. Автономність, здатність виконувати дії самостійно: агент слід списку поводжень, який може бути поповнений асіхронно, тобто і в режимі очікування, і в режимі «зайнятий - йде робота».

2. Стійкість: не маючи побічного ефекту після кожної поведінки, має можливість відкату.

3. Активне поведінка: полягає в тому, що в разі невдачі, виконуються циклічні спроби виконати поточний, а потім перейти до наступного кроку поведінки. Під час виконання поведінки агент зайнятий - не взаємодіє із середовищем. Після завершення поточного поведінки, агент переходить до наступного за списком, а в разі відсутності списку - очікує поява такого. Об'єкт ж у випадку успіху не має спуску, а в разі невдачі - кидає завдання.

4. Мобільність: можливість передавати агент в іншій контейнер. Дана властивість виникає з відсутності після виконання кожного поведінки побічного ефекту.

3. Зв'язок АОП і ООП

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

Табл. 1

ООП

АОП

Основна одиниця

об'єкт

агент

Параметри, що визначають стан основної одиниці

необмежено

переконання, зобов'язання, здібності, вибір ....

Процес обчислення

надходження повідомлень та методи відповіді

надходження повідомлень та методи відповіді

Види повідомлень

необмежено

інформування, прохання, пропозиція, обіцянка, відмова ....

Обмеження на методи

немає

чесність, послідовність ....

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

4. Деякі поняття

· Об'єкт - програмна сутність заданої структури та конкретизованих механізмів взаємодії з іншими об'єктами за допомогою передачі повідомлень. Повідомлення формуються і відсилаються у відповідь на отримані повідомлення. Формування повідомлень відбувається процедурами на підставі даних.

· Актор - програмна сутність заданої структури і механізмів взаємодії.

Містить дані і процедури.

Інкапсуляція, відношення, успадкування, породження повідомлень.

· Агент - програмна сутність для виконання поставлених завдань.

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

· Сприйняття динаміки середовища;

· Дії, що змінюють середовище;

· Міркування з метою інтерпретації спостережуваних явищ, вирішення завдань, виведення висновків і визначення дій.

Види середовищ:

Залежно від ступеню свободи середовища, що припускає наявність у ній відповідного типу агента, середовища поділяються на:

· Замкнуті: кінцеве детерміноване або імовірнісний опис всього середовища, яке відоме агенту апріорі або шляхом дослідження.

· Відкриті: кінцеве детерміноване або імовірнісний опис локальній області середовища, в якій знаходиться агент і яке відоме йому апріорі або шляхом дослідження.

· Трансформовані: середовища, що динамічно розвивається, структурою яких є агент.

Структура агента.

Структурно агента можна зобразити наступним чином:

Агент-> Ресурси-> Об'єкти-> Функції-> Дані

Загальні приклади використання.

Типовим прикладом агентно орієнтованого підходу можна назвати спеціальні програми, що імітують дії гравців в комп'ютерних іграх. Поширена назва для таких програм - боти. Однак, використання ботів не обмежується застосуванням в комп'ютерних іграх. Їх можна зустріти як елемент програми в чатах і форумах, що виконують роль «співрозмовника» і підтримуючих «дискусії». Однак деякі боти виконують не тільки роль імітаторів в процесі спілкування або гри, вони використовуються для редагування текстової інформації (у тому числі і в Вікіпедії), для налагодження мережевих з'єднань, модерування ресурсів і т.п.

JADE.

Дуже просто створити агента в JADE, визначивши метод його ініціалізації:

import jade.core.Agent;

public class BookBuyerAgent extends Agent {

protected void setup () {

// Printout a welcome message

System.out.println ("Hello! Buyer-agent" + getAID (). GetName () + "is ready.");

}

}

Фактична робота, яку агент повинен робити, як правило, здійснюється в рамках «поведінки агента». Поведінка представляє собою завдання, яку агент може виконувати.

Агент може виконувати одночасно кілька моделей поведінки. Однак важливо зауважити, що розклад кількох моделей поведінки в агента має не упереджувальний характер, а кооперативний. Це означає, що коли поведінка виповнюється за розкладом, його метод action () викликається і працює до тих пір, поки не завершиться. Тому саме програміст визначає, коли агент переключається від виконання даного поведінки до виконання наступного.

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

public class OverbearingBehaviour extends Behaviour {

public void action () {

while (true) {

// Do something

}

}

public boolean done () {

return true;

}

}

Приклад.

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

Розглянемо предметну область «Торгівля книгами», на якій будуть проілюстровані кроки, необхідні для створення агентно-орієнтованих додатків з JADE.

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

5. Агентно-орієнтовані системи на підприємствах

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

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

Вимога неперервності й автономії викликана потребою в тому, щоб агент був здатний гнучко реагувати на зміни середовища без постійного втручання користувача. Крім того, агент, який працює в середовищі з іншими агентами і процесами, має бути здатним спілкуватися з ними.

Термін "агентно-орієнтоване програмування" (АОП) був запропонований Й. Шохамом для опису набору дій, необхідних для створення ПА - програмних сутностей, що функціонують безперервно й автономно у певному оточенні, у багатьох випадках - разом з іншими процесами та агентами. Можна розглядати агентний підхід як метафору проектування та моделювання розподілених систем.

Питання про те, яку комп'ютерну програму варто кваліфікувати як ПА, досі не знайшло однозначного рішення. Різноманіття підходів і застосувань показує, що ПА стали одним із базових напрямів досліджень у галузі ІКТ. Однак термін "програмний агент" використовувався без якої-небудь спільної угоди про його значення. У результаті цього деякі програми стали називати агентами тільки тому, що вони, зокрема, могли використовуватися для подання завдань віддаленим комп'ютерам або були здатні переміщатися самостійно між ними.

Є різні визначення ПА залежно від їх призначення та акцентування на певних властивостях. Так, П. Маєс визначає автономні ПА як комп'ютерні системи, що функціонують у складному динамічному середовищі, сприймають зміни у ньому та діють автономно, реалізуючи набір цілей або задач, для виконання яких вони створені. Б. Хайєс-Рот зазначає, що інтелектуальні ПА виконують три функції:

· сприйняття динамічних умов середовища;

· дії у відповідь на такі умови;

· міркування для інтерпретації сприйняття, вирішення проблеми та визначення реакції.

Програмний агент.

Програмний агент - автономна фізична або віртуальна обчислювальна одиниця (комп'ютерна система), що базується на власних ресурсах - знаннях та вміннях, засобах сприйняття середовища (сенсорах) та впливу на це середовище (ефекторах), а також моделі середовища, заснованій на знаннях про нього.

ПА забезпечують такі функціональні можливості:

· розв'язання задач або досягнення певних цілей на основі наявних ресурсів та навичок;

· вибір рішення між альтернативами та виконання цього рішення в інформаційному середовищі;

· взаємодія з іншими агентами та середовищем, у якому функціонують ПА.

ПА бувають інтерфейсними, Intranet-агентами, Internet-агентами, гетерогенними.

Інтерфейсні агенти.

Інтерфейсні агенти можна розглядати як персональні асистенти, які допомагають користувачу працювати з різними програмними засобами. Такі агенти спостерігають за діями користувача і намагаються запропонувати йому такі дії, які мають спростити його роботу. Вони здатні адаптуватися до індивідуальних особливостей та потреб конкретного користувача. Інтерфейсні ПА здатні до самонавчання, що приводить до ефективнішого виконання ними своїх функцій. Для самонавчання агенти використовують:

· спостереження за поведінкою користувача;

· отримання позитивних або негативних оцінок від користувача (зворотний зв'язок);

· безпосереднє отримання інструкцій від користувача;

· консультації з іншими агентами.

Представниками цієї групи агентів є такі системи, як A-Match та Verbal Software Robots.

Internet-агенти.

Internet-агенти є найчисленнішими представниками інтелектуальних ПА. Вони виникли як засіб обробки та транспортування інформаційних ресурсів Internet. На відміну від інтер-фейсних агентів вони здатні не тільки створювати персоніфікований профіль користувача, а й відповідно класифікувати інформаційні ресурси.

Internet-агентів можна поділити на дві основні групи: статичні і мобільні.

Статичні ПА зазвичай вбудовані у браузер. Наприклад, такі агенти можуть сортувати електронну пошту, повідомляти користувача про події та повідомлення, які за наявними в агента відомостями можуть його зацікавити. Мобільні Internet-агенти менш поширені. Прикладом такого агента є Jasper. Цей агент здатний не тільки знаходити інформацію, цікаву для його користувача, а й повідомляти про неї інших агентів.

Робота Intranet-агентів схожа на роботу Internet-агентів, проте має власну специфіку. Характерні задачі, завдяки яким виокремлюють Intranet-агентів, такі:

· автоматизація бізнес-процесів підприємства;

· виконання послуг для користувачів, пов'язаних з використанням інформації з бази даних підприємства.

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

Нині сформувалися два різних, проте взаємопов'язаних підходи до визначення агента. Відповідно до першого підходу агент визначається здебільшого від своїх дій, а тому не може бути повністю охарактеризований за набором своїх атрибутів. У другому підході агент визначається за атрибутами, які йому властиві. Агент - це об'єкт, що сприймає середовище за допомогою сенсорів і діє в ньому за допомогою ефекторів. ПА функціонують у багатовимірному просторі. Вони складаються з кількох шарів: комунікації; координації; організації; визначення; інтерфейсу АРІ.

Шар комунікацій розглядає низькорівневі деталі взаємодії між ПА. На координаційному шарі відображаються соціальні властивості ПА, технології координації та переговорів. На організаційному шарі ПА визначається через відношення з іншими ПА, через ролі, які він виконує у взаємодії з цими агентами. На шарі визначення ПА розглядається як автономна раціональна сутність, тобто в термінах механізмів міркування та навчання, цілей, ресурсів, здібностей, переконань тощо. Шар програмного інтерфейсу АРІ пов'язує ПА з його фізичною реалізацією.

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

Позначення імені агента забезпечує спосіб ідентифікації агента серед доменів інших груп агентів. Розробка програмних агентів вимагає застосування стандартизованих профілів агентів і методології розробки агентів для кожного з конкретних застосувань.

Розробка ПА вимагає застосування стандартизованих профілів агентів і методології розробки агентів для кожного з конкретних застосувань. Профіль платформи агента - це кортеж <пароль, значення>, що описує послуги і властивості платформи. Онтологія керування агента визначає словник і семантику опису можливості платформи агента. Атрибути ПА включають назву платформи агента, адресу, призначення сервісів агента, інформацію про підтримку в мережі, ступінь пріоритетів сервісів та їх застосування.

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

· Агент - це програмний об'єкт, який:

· забезпечує виконання однієї або кількох послуг;

· надає опис цих послуг іншим ПА;

· здатний функціонувати автономно без безпосередніх вказівок користувача;

· може інтерактивно взаємодіяти з іншими ПА та користувачами.

Функціональний зв'язок між агентом, середовищем, у якому цей агент функціонує, та його програмним кодом можна подати в такий спосіб:

А = /(X),

де А - агент; / - програма (функція); X - середовище.

Найпростіше визначення агента ґрунтується на моделі чорного ящика, що знаходиться у певному середовищі. Агент описується як функція f що обробляє інформацію від сенсорів і вхідні повідомлення (мал. 1). Результат роботи агента - дії і вихідні повідомлення. Цей узагальнений підхід відповідає як біологічним, так і інтенсіональним моделям агентів. Розходження між цими моделями полягають у способі визначення f.

Мал. 1. Визначення агента через модель чорного ящика

6. Агентна платформа відповідно до специфікації FIPA

За визначенням FIPA (Federation of Intelligent Physical Agents), агент - це об'єкт, що знаходиться в певному середовищі, від якого він отримує дані про події в цьому середовищі, інтерпретує їх і виконує команди, що впливають на середовище. Такий агент може містити як програмні, так і апаратні компоненти. FIPA - це міжнародна організація, створена в 1996 р. з метою впровадження агентної парадигми для розробки практичних застосувань.

Агентна платформа відповідно до специфікації FIPA має таку архітектуру (мал. 2):

· Directory Facilitator (DF) - додатковий, не обов'язковий компонент, що забезпечує довідкову інформацію іншим ПА. Тут агенти можуть реєструвати свої послуги або здійснювати запити, щоб довідатися про пропоновані послуги інших агентів;

· Agent Management System (AMS) - обов'язковий компонент агентної платформи, де має реєструватися ПА;

· Message Transport System (MTS) - метод комунікації між ПА на різних агентних платформах;

Мал. 2. FIPA-агентна платформа

7. MadKit

В якості інструментального середовища розробки була обрана система MadKit. MadKit є набором пакетів, класів Java, які реалізує ядро агента, різні бібліотеки повідомлень і агентів. Вона також включає в себе графічне середовище розробки і стандартні моделі агента. Архітектура MadKit заснована на дуже маленькому ядрі. Базові служби, такі як: розподілена передача повідомлень, міграція або контроль - здійснюються агентами платформи для максимальної гнучкості. Компонентна інтерфейсна модель дозволяє встановлювати інтерфейси для різних агентів і керує ними в глобальному GUI.

Архітектура платформи MADKIT заснована на AGR (Agent / Group / Role) моделі, відомої як AALAADIN (мал. 3). Модель AGR заснована на трьох примітивних поняттях: агент, група і роль, які структурно з'єднані і не можуть бути визначені іншими примітивами.

Мал. 3. Модель AALAADIN

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

Група - ряд агентів, які разом використовують деякі загальні характеристики. Агент може бути членом декількох груп в один і той же час. Важливою особливістю груп AALAADIN є те, що вони можуть вільно накладатися. Група може бути заснована будь-яким агентом.

Роль - абстрактне уявлення функціональної позиції агента в групі. Агент повинен відігравати роль у групі; агент може грати кілька ролей. Ролі локальні для груп, і агент повинен запросити роль для її виконання. Кілька агентів можуть грати одну роль.

Модель агента в MadKit.

Структура агента в MadKit наведена на мал. 4.

Мал. 4. Структура моделі агента в MadKit

Агент в MadKit складається з 4 обов'язкових розділів:

· Розділ активації (activate section), що містить деякий програмний код, який буде виконуватися безпосередньо після створення агента.

· Розділ «життя» (live section), який містить основний програмний код, що описує поведінку агента. Зазвичай, цей розділ містить нескінченний цикл.

· Розділ «завершення» (end section), що містить певний код, який виконується, коли агент знищується.

· Графічний розділ (initGUI section), що містить опис компонента Java, що має використовуватися в якості графічного інтерфейсу агента, і призначений для заміни графічного інтерфейсу за замовчуванням.

MadKit не накладає на архітектуру агентів ніяких обмежень для досягнення максимальної універсальності програм.

Взаємодія агентів в MadKit.

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

MadKit забезпечує декілька видів визначених повідомлень, таких як StringMessage, XMLMesssage і ActMessage. За допомогою останнього виду повідомлення можна визначити такі підвиди повідомлень: ACLMessages і KQMLMessages. Також є можливість визначити свій власний клас повідомлення, який буде успадковуватися від класу повідомлення за замовчуванням.

У кожного агента є своя «поштова скринька», в яку доставляються повідомлення і яку повинен перевіряти агент для отримання повідомлення.

Приклад агентної моделі процесу поширення вірусу:

За допомогою системи MadKit створена агентно модель розповсюдження вірусів. Модельоване середовище являє собою набір об'єктів (скажімо, людей), певну кількість яких заражено вірусом, а інших - ні. Всі об'єкти рухаються певним чином в довільному напрямі. Зараження відбувається при безпосередньому зіткненні здорового і зараженого об'єктів або може відбутися в деякому радіусі від зараженого об'єкта.

Кілька станів модельованого процесу поширення вірусів показано на мал. 5. У цьому прикладі здорові об'єкти позначені зеленим кольором, заражені - червоним.

Мал. 5. Моделювання процесу поширення вірусу засобами інструментальної середи MadKit (анімація - розмір: 196 x 214 px; обсяг: 36.6 kb; кадрів: 6; затримка між кадрами: 0.5с; кількість повторів: 6)

агентний програмний інтерфейсний інструментальний

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

За допомогою віконного інтерфейсу можна задавати початкові параметри моделювання.

Дана модель може бути застосована для вивчення наступних процесів:

· епідемія грипу в місцях скупчення людей;

· поширення чуток в соціальних мережах;

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

Висновки

Інструментальне середовище MadKit є універсальною мультиагентної платформою. Цей інструментарій заснований на організаційній моделі AGR. Архітектура MadKit заснована на мікроядрі. Базові служби, такі як: розподілена передача повідомлень, міграція або контроль - реалізовані агентами платформи для досягнення максимальної гнучкості. Компонентна інтерфейсна модель дозволяє встановлювати інтерфейси для різних агентів.

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

Методика, використовувана в MadKit, є досить простою у застосуванні.

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

Взаємодія агентів здійснюється за допомогою повідомлень різних типів, також є можливість створювати свої типи повідомлень. Велику розмаїтість типів повідомлень можна віднести до позитивних характеристик середовища. Агенти можуть взаємодіяти як в мережі, так і на одному комп'ютері з однієї або різних сесій моделювання. Система MadKit є зручним інструментом для розробки МАС, тому що вона має безліч візуальних елементів, які спрощують роботу.

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

Переваги засобів для розробки АОП:

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

· враховують з різним ступенем важливості навіть найдрібніші чинники, необхідні для прийняття рішень;

· є високопродуктивними;

· характеризуються високою швидкістю реакції на події і швидкістю знаходження рішення задачі;

· дозволяють корегувати результати роботи системи;

· здатні до навчання.

Головним недоліком є непередбачуваність поведінки повної системи, заснованої на її складових компонентах, оскільки немає ніякого «загального» управління безпекою. У результаті агент може діяти як порушник і використовувати систему як «шахрай».

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

Список використаної літератури

1. Зайцев І.М., Федяєв О.І. агентно-орієнтований підхід до моделювання інтелектуальних розподілених систем 2008. Сб - Донецьк: ДонНТУ, 2010. - С. 337-338.

2. Лукина Ю.Ю., Федяев О.И. Технология создания мультиагентных систем в инструментальной среде MadKit 2009.

3. Плескач В.Л., Затонацька Т.Г. Інформаційні системи і технології на підприємствах 2009.

Размещено на Allbest.ru

...

Подобные документы

  • Програмування математичної моделі довільної ланки хіміко-технологічної системи та дослідження її динамічних характеристик. Система Mat Lab – середовище програмування. Побудова програмними засобами кривих перехідних процесів, логарифмічних характеристик.

    курсовая работа [551,3 K], добавлен 12.01.2011

  • Підходи до розуміння проблеми штучного інтелекту. Тест Тьюринга і інтуїтивний підхід, символьний та логічний, агентно-орієнтований і гібридній. Машинний інтелект: загальна характеристика та головні сфери застосування на сьогодні, науковий напрямок.

    курсовая работа [203,1 K], добавлен 09.04.2013

  • Логічний, структурний, еволюційний та імітаційний підходи до побудови системи штучного інтелекту. Використання формально-логічних структур, що обумовлено їх алгоритмічним характером. Методи реалізації системи штучного інтелекту, інтелектуальні програми.

    реферат [34,5 K], добавлен 14.04.2014

  • Поняття штучного інтелекту, його порівняння з природним. Коротка характеристика особливостей використання штучного інтелекту в медицині, військовій справі та комп'ютерних іграх. Проблема взаємодії носіїв універсального штучного інтелекту та суспільства.

    контрольная работа [29,6 K], добавлен 07.01.2014

  • Загальні відомості, методи та постановка задачі динамічного програмування. Практичне застосування методу динамічного програмування на прикладі розподілення вантажів між 4-ма торговими суднами. Рекурентна природа обчислень в динамічному програмуванні.

    курсовая работа [1,1 M], добавлен 22.05.2015

  • Класифікація інформаційних систем. Дослідження особливостей мови UML як засобу моделювання інформаційних систем. Розробка концептуальної моделі інформаційної системи поліклініки з використанням середи редактора програмування IBM Rational Rose 2003.

    дипломная работа [930,4 K], добавлен 26.10.2012

  • Розробка програми імітації схеми життя лісового біому. Алгоритм пересування по головному полю. Основні глобальні функції програми. Динамічна ідентифікація типу даних. Вирішення завдань в області об’єктно-орієнтованого програмування засобами C++.

    курсовая работа [423,1 K], добавлен 26.11.2014

  • Агентно-ориентированная программная архитектура систем обработки потоковых данных. Обеспечение гибкости и живучести программного обеспечения распределенных информационно-управляющих систем. Спецификации программных комплексов распределенной обработки.

    реферат [1,1 M], добавлен 28.11.2015

  • Методика створення веб-додатку для визначення рівня інтелекту людини з використанням мови програмування PHP. Загальна характеристика та принципи роботи з засобами адміністрування, за допомогою яких авторизований адміністратор може керувати веб-додатком.

    дипломная работа [1,9 M], добавлен 13.10.2010

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

    курсовая работа [546,6 K], добавлен 28.02.2012

  • Прототип об'єктно-орієнтованого програмування. Управління процесом реалізації програми. Розвиток апаратних засобів. Об'єктно-орієнтовані мови програмування. Надійність і експлуатаційні якості програм. Візуальне об’єктна-орієнтовне проектування Delphi.

    контрольная работа [28,9 K], добавлен 18.05.2009

  • Технології об'єктно-орієнтованого аналізу та проектування інформаційних систем. Історія та структура мови UML. Опис функціональної моделі засобами UML. Використання UML в проектуванні програмного забезпечення. Характеристика CASE-засобів Visual Paradigm.

    дипломная работа [7,9 M], добавлен 26.05.2012

  • Описано вказану систему, побудована її концептуальна модель, зроблено формальний опис системи та імітаційної моделі, виконано програмування моделі системи та наведено результати моделювання.

    курсовая работа [73,1 K], добавлен 16.06.2007

  • Вивчення технологій програмування Internet-сайтів. Розробка інтерактивного інтерфейсу Web-додатків засобами бібліотеки Codeigniter. Інтернет-проекти на основі Ajax-технології. Обробка запиту засобами Codeigniter. Асинхронний обмін даними способами Ajax.

    курсовая работа [1,3 M], добавлен 12.06.2014

  • Особливості редагування за допомогою текстового редактора NotePad вхідного файлу. C++ як універсальна мова програмування, знайомство с функціями. Характеристика графічних засобів мови С. Аналіз основних понять об’єктно-орієнтованого програмування.

    курсовая работа [123,3 K], добавлен 14.03.2013

  • Структура клієнтської частини. Вибір елементів HTML4 і HTML5 для представлення контенту. Структурування інформаційного наповнення сайту. Забезпечення взаємодії серверної частини web-додатків з клієнтською. Програмування скриптів засобами JavaScript.

    курсовая работа [3,3 M], добавлен 13.01.2014

  • Організація служби каталогів та її програмні реалізації, приклади промислового використання. Розробка стратегії впровадження та реалізації проекту на основі дерева каталогів підприємства. Установка і настройка сервера служби каталогів засобами OpenLDAP.

    курсовая работа [1,3 M], добавлен 16.05.2012

  • Основні відомості про історію розвитку мови Object Pascal, середовища Delphi, їх основні технології та застосування для роботи з файлами. Опис основних особливостей мови, основних елементів програмної мови. Принципи об'єктно-орієнтованого програмування.

    курсовая работа [471,5 K], добавлен 12.04.2010

  • Визначення основних математичних понять по роботі із 3D-графікою і операцій над векторами і матрицями. Алгоритм видалення невидимих ребер та граней при побудові непрозорих об'єктів за допомогою модуля Graph 3D. Методи програмування анімації і спрайтів.

    курсовая работа [345,0 K], добавлен 16.09.2010

  • Етапи розробки системи моделювання позаштатних ситуацій у виробничому процесі, яка реалізована за допомогою технологій National Instruments з використанням пакету графічної мови програмування Labview. Обладнання для вирощування монокристалічного кремнію.

    дипломная работа [2,4 M], добавлен 25.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.