Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Підручник КНУ-4кк11.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
16.18 Mб
Скачать

2.8.2. Реалізація агентних програм

Поняття інтелектуального і програмного агента з'явилося понад 20 років тому, їхня роль у програмній інженерії увесь час зростає [19–23]. Так, Джекобсон [23] зазначив перспективу використання агентів як менеджерів проектів, розробників архітектури за діаграмами use case і ін.

Основний теоретичний базис даного програмування – темпоральна, модальна і мультимодельна логіки, дедуктивні методи доведення правильності властивостей агентів і ін.

З погляду програмної інженерії агент — це самодостатня програма, здатна керувати своїми діями в інформаційному середовищі функціонування для одержання результатів виконання поставленої задачі і зміни поточного стану середовища [19]. Агент має такі властивості:

– автономність – це здатність діяти без зовнішнього впливу;

– реактивність – це здатність реагувати на зміни даних, середовища і сприймати їх;

– активність – це здатність ставити мету і виконувати задані дії для досягнення цієї мети;

– здатність до взаємодії з іншими агентами (або людьми).

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

Локальні агенти виконують задані функції у певних серверах і клієнтських комп’ютерах мережі і впливають на загальний стан середовища функціонування. Розподілені агенти розміщуються в різних вузлах мережі, виконують автономно (паралельно, синхронно, асинхронно) притаманні їм функції і можуть впливати на загальний стан розподіленого середовища.

Рис. 5.12. Приклад взаємодії агентів у різних середовищах

Характер взаємодії між агентами залежить від сумісності цілей, компетентності і т.п. [21].

Основою агентного програмування є:

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

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

– засоби інтерпретації специфікацій агента;

– інструменти конвертування будь-яких програм у відповідні агентні програми.

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

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

– взаємозалежністю цілей інших агентів-членів коаліції, а також від можливого впливу агентів один на одного;

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

– компетенцією – знаннями умов середовища функціонування і ступенем їхнього використання.

Головний засіб комунікації агентів – транспортний протокол ТСР/IP або протокол агентів ACL (Agent Communication Languages). Керування агентами (Agent Management) виконується за допомогою сервісів: передача повідомлень між агентами, доступ агента до сервера і т.п. Комунікація агентів – це взаємодія між різними агентами через подання загальних протоколів Інтернету, а також опис повідомлень мовою HTML і декларативними або процедурними (Java, Telescript, ACL і т.п.) мовами. Кооперація агентів – це спільне виконання деяких завдань користувачів.

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

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

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

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

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

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

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

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

Однією із систем побудови агентів, заснованою на обміні повідомленнями, є система JATLite, що за допомогою Java-класів створює нових агентів, які обчислюють визначені функції в розподіленому середовищі. Система Agent Builder – це система конструювання програмних агентів, які описуються мовою Java і можуть взаємодіяти між собою, мовою KQML (Knowledge Query and Manipulation Language) [19–23].

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