лучшие книги по экономике
Главная страница

Главная

Замовити роботу

Последние поступления

Форум

Создай свою тему

Карта сайта

Обратная связь

Статьи партнёров


Замовити роботу
Книги по
алфавиту

Б
В
Г
Д
Е
Ж
З
И
К
Л
М
Н
О

ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ ВІРТУАЛЬНИХ ОРГАНІЗАЦІЙ

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]

 

6.3. Методичні вказівки
до виконання лабораторних робіт


Лабораторна робота № 6
«Розробка мультиагентної системи
в середовищі Madkit»


Мета роботи:отримати практичні навички з розробки агентів та мультиагентних систем; закріпити теоретичні знання щодо мультиагентних систем.
Порядок виконання роботи:

  • Перевірити наявність і, у разі необхідності, завантажити та встановити потрібне програмне забезпечення: 1) Java SDK 1.4.2 або вище (доступно для завантаження з HTPP://java.sun.ком); 2) MadKit 3.1b5 (доступно для завантаження з HTPP://madkit.org).
  • Для обраної предметної області визначити ролі та побудувати схему комунікації агентів.
  • Створити агентів на мові Java для роботи у середовищі Madkit згідно обраної предметної області.
  • Перевірити роботу агентів у мережі.
  • Роздрукувати звіт по лабораторній роботі, який повинен містити:
  • опис предметної області, перелік агентів та схему їх комунікації;
  • код агентів, написаний мовою Java;
  • скріншот роботи агентів, на якому б було видно, що агенти працюють в мережі, тобто розподілені;
  • висновок по роботі.
  • Захистити роботу перед викладачем.

Інструкції та приклад виконання роботи:
1) Перевірити наявність та, в разі необхідності, завантажити й встановити потрібне програмне забезпечення.
Після установки Java SDK (ввв.java.sun.ком) у Windows 2000, Windows XP, Windows 2003 необхідно з правами адміністрарора відкрити вікно з властивостями системи (System properties). Це можна зробити двома шляхами — зробити правий клік мишею на «Мій компьютер (My комputer)» та з контекстного меню обрати «Властивості (Properties)», або натиснути Пуск — Контрольна панель — Система (Start — Control panel — System). У вікні властивостей перейти до закладки «Додатково (Advanced)» (рис. 6.2).

Рис. 6.2. «Властивості системи»

  • На цій закладці натискаєте кнопку «Змінні середовища» (Environment variables)». Відкривається вікно з системними та користувацькими змінними середовища. В системних змінних знайдіть змінну Path (шлях), виділіть її та натисніть «Редагувати (Edit)». У вікні, що відкриється, в кінці рядку зі значенням змінної (Variable value) поставте крапку з комою та вкажіть повний шлях до директорії «bin» кореневої папки Java SDK (у прикладі на рис. 6.3. — J:\j2sdk1.4.2_05\bin).

У попередніх версіях Windows необхідно в режимі редагування відкрити файл «autoexec.bat» та вказати для змінної Path (шлях) після крапки з комою додаткове значення — повний шлях до файлів директорії «bin» кореневої папки Java SDK (у прикладі на рис. 3. — J:\j2sdk1.4.2_05\bin). Якщо змінна Path відсутня, створіть її, поставте знак рівності та вкажіть згадуване вище значення. Для того, щоб зміни встіпили в дію, необхідно запустити змінений autoexec.bat або краще перезавантажити систему.

Рис. 6.3. «Змінні середовища»
2. Для обраної предметної області — визначити ролі та побудувати схему комунікації агентів.
В обраній для прикладу предметній області агенти на ринку пасажироперевезень можуть виконувати наступні ролі (рис. 6.4).

Рис. 6.4. Схема комунікації ринку пасажироперевезень
Разом перевізник, клієнт та посередник утворюють групу «Travel» (групу пасажироперевезень).
Опишемо рух інформації між агентами:

  • запит споживачем конкретної послуги у посередника;
  • запит всіх перевізників, які відповідають заявці споживача;
  • передача від відповідних перевізників інформації стосовно вартості послуги;

4.а) передача інформації перевізнику, що його обрано для виконання замовлення на перевезення;
4.б) передача споживачеві інформації про перевізника, що надає запитану послугу за найнижчою ціною;

  • запит споживача до конкретного перевізника на підтвердження контракту;
  • підтвердження контракту.

Після того, як визначено ролі агентів для нашої предметної області та розроблено схему комунікації, ми можемо переходити до беспосереднього створення агентів.
3. Створити агентів на мові Java для роботи в середовищі Madkit згідно обраної предметної області.
Madkit дозволяє програмувати агентів на мовах Java, Scheme, Python, Jess, BeanShell. У даній лабораторній роботі розглядається створення агентів мовою Java, так як вона є більш поширеною та надає більші можливості розробникові.
Агент в Madkit складається з 4-х довільних частин:

  • активація (activate) — у цій частині міститься код, який виконується під час створення агента;
  • життедіяльність (live) — у цій частині міститься головний код агента. Зазвичай, ця секція складається з (майже) нескінченного циклу, що описує поведінку агента;
  • кінець (end) — у цій частині міститься код, який виконується під час закриття/знищення агента;
  • ініціалізація графічного інтерфейсу користувача (initGUI) — у цій частині міститься опис компоненти Java, яка використовується як графічний інтерфейс агента і призначена замінити графічний інтерфейс за угодою.

У Madkit агент — це об’єкт класу, який наслідується з класу AbstractAgent або з одного з його підкласів, та має наступні можливості:
Контроль та життєвий цикл
Головний клас агентів (AbstractAgent) не має визначеної політики виконання. В підкласі Agent з’являється підтримка паралель­ного (заснованого на потоках) виконання, яке є природною моделлю для крупномодульних об’єднаних або пізнавальних аген­тів. Інтерфейс, за допомогою додаткових класів, здійснює синхронне виконання через зовнішні планувальники, що дозволяє використання реагуючих або гібридних архітектур з багатьма дрібномодульними агентами.
Обмін повідомленнями
Комунікація здійснюється через асинхронну передачу пові­домлень з простими запитами передати повідомлення іншому агенту, який визначається за його адресою; або складними запитами, які відправляють повідомлення всім агентам, які виконують визначену роль у конкретній групі.
Організаційне представлення
Кожний агент, незалежно від його визначеної моделі поведінки, має доступ до груп та ролей. Головний клас агентів (Abstract­Agent) забезпечує дії та запити стосовно цієї інформації. Розробник агента повністю вільний щодо визначення поведінки агента, але організаційне представлення (належність до груп та визначення ролей в межах груп) обов’язково повинне бути; і воно може об’єднувати дуже різнорідні агенти.
Життєвий цикл
У життєвому циклі агента деякі функції визначені на рівні класу AbstractAgent, та інші функції — в різних підкласах, які більш точно визначають його виконання. Це важливо, бо агент може бути виконаний як в межах його власного потоку (при використанні класу Agent), так і через синхронний механізм. Тобто, в класі AbstractAgent описана лише частина життевого класу агента.
Активація агента (метод activate())
Коли агент створено, ядро викликає метод activate(). Цей метод можна вважати як свого роду «конструктор» для агента. Після того, як агент оброблено та конструктор був викликаний, ви не зможете задати початкові параметри для агента (наприклад, вказати вихідні ролі та групи агента). Тому важливо пам’ятати, що ініціалізація аген­та повинна бути виконана саме в частині activate().
Закінчення виконання агента (метод end())
Коли агент завершує роботу, як у випадку, коли це є наслідком його нормальної поведінки, так і коли поступає запит на знищення (наприклад, від системного агента), ядро викликає метод end(). Однак ця функціональна можливість не так важлива, як activate(), і рідко використовується.
Важливим моментом управління життєвим циклом агента є можливість запускати нових агентів із агента. Створити підклас класу AbstractAgent для цього не достатньо. Запустити агента можливо, використовуючи метод launchAgent().

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]


ВНИМАНИЕ! Содержимое сайта предназначено исключительно для ознакомления, без целей коммерческого использования. Все права принадлежат их законным правообладателям. Любое использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием содержимого сайта.
© 2007-2019 BPK Group.