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

У комп'ютерних науках програмний агент — це програма, яка вступає у відношення посередництва з користувачем або іншою програмою. Слово «агент» походить від латинського agere (робити) і означає угоду виконувати дії від імені кого-небудь. Такі «дії від імені» розуміють право вирішувати, які дії (якщо вони потрібні) є доцільними.[1][2] Ідея полягає в тому, що агенти не запускаються безпосередньо для виконання завдання, а активізуються самостійно.

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

Визначення[ред. | ред. код]

Термін «агент» описує програмну абстракцію, ідею чи концепцію, подібно таким термінам ООП як метод, функція або об'єкт. Концепція агента забезпечує зручний і потужний спосіб опису складної програмної сутності, яка здатна діяти з певним ступенем автономності з метою виконання завдань від імені користувача. Але на відміну від об'єктів, які визначаються в термінах методів і атрибутів, агент визначається за допомогою опису його поведінки.[3]

Різні автори пропонують різні визначення агента, зазвичай при цьому в нього включають такі поняття, як:

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

Чим не є агент[ред. | ред. код]

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

Відмінність агентів від програм[ред. | ред. код]

У роботі Франкліна і Грауссера[4] обговорюються чотири ключові поняття, за якими агенти відрізняються від довільних програм: реакція на навколишнє середовище, автономність, цільова орієнтація і живучість.

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

Інтуїтивна відміна агентів від об'єктів[ред. | ред. код]

  • Агенти більш автономні, ніж об'єкти.
  • Агенти мають гнучкішу поведінку і володіють реактивністю, проактивністю, соціальною поведінкою.
  • Агенти мають принаймні один потік виконання, але можуть мати й більше.[3]

Відмінність агентів від експертних систем[ред. | ред. код]

  • Експертні системи не мають зв'язку з навколишнім середовищем;
  • Експертні системи не володіють реактивною, проактивною поведінкою.
  • Експертні системи не володіють соціальною поведінкою.[3]

Відмінність інтелектуальних програмних агентів від інтелектуальних агентів в штучному інтелекті[ред. | ред. код]

Історія[ред. | ред. код]

Концепцію агента можна простежити починаючи з моделі акторів Карла Хьюїтта: «автономний, інтерактивний і одночасно виконувати кілька функцій об'єкт, що володіє внутрішнім станом та інформаційним обміном».[6]

Висловлюючись більш академічно, програмні агенти є прямий еволюцією багатоагентних систем (МАС), які в свою чергу розвинулись з розподіленого штучного інтелекту (РІІ), розподіленого рахівника завдань (РРЗ) і паралельного штучного інтелекту (ПІІ). Таким чином, програмні агенти успадковують всі характеристики (хороші і погані) від РІІ і ІІ.

«Навігатор по знаннях», створений в 1987 р. Джоном Скаллі, являв собою відеозв'язок між кінцевим користувачем і агентом. Будучи першим у своєму роді, він послужив основою для дослідної серії невдалих низхідних реалізацій, замість того, щоб крок за кроком підходити до висхідних методам. Діапазон типів агентів в наш час[коли?] (з 1990 р.) досить широкий: WWW, пошукові системи і т. д.

Приклади[ред. | ред. код]

Інтелектуальні програмні агенти[ред. | ред. код]

Стефен Хааг у своїй роботі[7]вважає, що існують тільки чотири основних типи інтелектуальних програмних агентів:

  1. Агенти-покупці або торгові боти
  2. Користувальницькі або персональні агенти
  3. Агенти з моніторингу та спостереження
  4. Агенти з видобутку та аналізу даних

Агенти-покупці (роботи із закупівель)[ред. | ред. код]

Агенти-покупці дивляться мережеві ресурси (наприклад, інтернет) з метою отримання інформації про товари і послуги. Ці агенти, відомі також як «роботи зі закупівель», дуже ефективно працюють з товарами народного споживання, такими як компакт-диски, книги, електронні компоненти та інші продукти «на всі випадки життя».

Користувальницькі агенти (персональні)[ред. | ред. код]

Користувальницькі або персональні агенти — це інтелектуальні агенти, які діють від вашого імені. До цієї категорії відносяться інтелектуальні агенти, які вже виконують або будуть виконувати наступні завдання:

  • Перевіряють вашу електронну пошту, сортують її по вашим перевагам і сповіщають про прихід важливих листів.
  • Грають у комп'ютерні ігри, коли ваш супротивник або патрулює гру проявляє активність.
  • Збирають замовлені звіти новин для вас. Є кілька версій таких агентів, у тому числі newshub і CNN.
  • Роблять пошук інформації по вашій темі і ваш запит.
  • Автоматично заповнюють вебформи для вас, зберігають вашу інформацію для використання в майбутньому.
  • Сканує вебсторінки для пошуку і виділення тексту, який являє собою «важливу» частину інформації.
  • «Обговорюють» теми з вами в діапазоні від підсвідомого страху до спорту.
  • Сприяють онлайн пошуку роботи шляхом сканування відомих дощок оголошень про роботу і відправки резюме із зазначенням переваг, які відповідають бажаним критеріям.
  • Профілюють синхронізацію різнорідних соціальних мереж.

Агенти з моніторингу та спостереження (предиктивне)[ред. | ред. код]

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

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

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

Агенти з видобутку та аналізу даних[ред. | ред. код]

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

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

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

Інші приклади[ред. | ред. код]

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

Примітки[ред. | ред. код]

  1. Нвана Х. Програмні агенти: Огляд. Knowledge Engineering Review, Vol.11, No.3, 205—244, Cambridge University Press (англ.)
  2. Шермер Б. Програмні агенти, спостереження і право на недоторканність приватного життя: законодавча база для спостереження за допомогою агентів. Leiden University Press, 2007, p.140. (англ.)
  3. а б в Вулдрідж М., Дженнінгс Н. Інтеллектуальнве агенти: теорія і практика. Knowledge Eng. Rev., Vol. 10 (2), pp. 115—152, 1995 (англ.)
  4. Франклін, Грауссер. Агент або програма? Таксономія автономних агентів. Springer-Verlag, 1996 (англ.)
  5. Стюарт Рассел, Пітер Норвіг. Штучний інтелект: Сучасний підхід. Prentice Hall, 2009, ISBN 978-0136042594 (англ.)
  6. Carl Hewitt. Viewing Control Structures as Patterns of Passing Messages. Journal of Artificial Intelligence, June 1977.
  7. Стефен Хааг, Управління інформаційними системами в інформаційний вік, 2006, р 224—228 (англ.)
  8. Harold E. Popplewell Agents & Applicability. Архів оригіналу за 26 березня 2005. Процитовано 2 січня 2012.

Посилання[ред. | ред. код]