Программный агент (Hjkijgbbudw giyum)
В компьютерных науках програ́ммный аге́нт — это программа, которая вступает в отношение посредничества с пользователем или другой программой. Слово «агент» происходит от латинского agere (делать) и означает соглашение выполнять действия от имени кого-либо. Такие «действия от имени» подразумевают право решать, какие действия (если они нужны) являются целесообразными[1][2]. Идея состоит в том, что агенты не запускаются непосредственно для решения задачи, а активизируются самостоятельно.
Родственные и производные понятия включают интеллектуальных агентов (в частности, обладающих некоторыми аспектами искусственного интеллекта, такими как обучение и рассуждения), автономных агентов (способных изменять способ достижения своих целей), распределённых агентов (выполняющих действия на физически различных компьютерах), многоагентные системы (распределённые агенты, которые не имеют возможности достижения цели в одиночку и, следовательно, должны общаться), и мобильных агентов (агентов, которые могут переместить своё выполнения на другие процессоры).
Определение
[править | править код]Термин «агент» описывает программную абстракцию, идею или концепцию, подобно таким терминам ООП, как метод, функция или объект. Концепция агента обеспечивает удобный и мощный способ описания сложной программной сущности, которая способна действовать с определённой степенью автономности с целью выполнения задач от имени пользователя. Но в отличие от объектов, которые определяются в терминах методов и атрибутов, агент определяется посредством описания его поведения[3].
Разные авторы предлагают разные определения агента, обычно при этом в него включают такие понятия, как:
- живучесть (код не исполняется по требованию, а работает непрерывно и решает сам, когда он должен совершить какие-либо действия);
- автономность (агент имеет способность выбора задач, приоритетов, целенаправленного поведения и принятия решений без участия человека);
- социальное поведение (агенты имеют возможность привлекать другие компоненты посредством определённых связей и координации действий, они могут совместно работать над выполнением задач);
- реактивность (агенты воспринимают контекст, в котором они работают, и реагируют на него должным образом).
Чем не является агент
[править | править код]Нет никакого особого смысла в том, чтобы расписать, что является агентом, а что нет. Тем не менее, сопоставление термина с близкими понятиями может прояснить его значение.
Интуитивное отличие агентов от объектов
[править | править код]- Агенты более автономны, чем объекты.
- Агенты имеют более гибкое поведение и обладают реактивностью, проактивностью, социальным поведением.
- Агенты имеют по крайней мере один поток выполнения, но могут иметь и больше.[3]
Отличие агентов от экспертных систем
[править | править код]- Экспертные системы не имеют связи с окружающей средой;
- Экспертные системы не обладают реактивным, проактивным поведением.
- Экспертные системы не обладают социальным поведением[3].
Отличие интеллектуальных программных агентов от интеллектуальных агентов в искусственном интеллекте
[править | править код]- Интеллектуальный агент (известный также как рациональный агент) не всегда является программным продуктом. Он может быть также машиной, человеческим существом, сообществом человеческих сущностей (как, например, бизнес-сообщество) или чем-либо ещё, способным к целенаправленному поведению[4].
История
[править | править код]Концепцию агента можно проследить начиная с модели акторов Карла Хьюитта: «автономный, интерактивный и одновременно исполняющий несколько функций объект, обладающий внутренним состоянием и информационным обменом»[5].
Выражаясь более академично, программные агенты являются прямой эволюцией многоагентных систем (МАС), которые в свою очередь развились из распределённого искусственного интеллекта (РИИ), распределённого решателя задач (РРЗ) и параллельного искусственного интеллекта (ПИИ). Таким образом, программные агенты наследует все характеристики (хорошие и плохие) от РИИ и ИИ.
«Навигатор по знаниям», созданный в 1987 г. Джоном Скалли, представлял собой видеосвязь между конечным пользователем и агентом. Будучи первым в своём роде, он послужил основой для опытной серии неудачных нисходящих реализаций, вместо того, чтобы шаг за шагом подходить к восходящим методам. Диапазон типов агентов в настоящее время (с 1990 г.) довольно широк: WWW, поисковые системы и т. д.
Примеры
[править | править код]Интеллектуальные программные агенты
[править | править код]Стефен Хааг в своей работе[6] считает, что существуют только четыре основных типа интеллектуальных программных агентов:
- Агенты-покупатели или торговые боты
- Пользовательские или персональные агенты
- Агенты по мониторингу и наблюдению
- Агенты по добыче и анализу данных
Агенты-покупатели (роботы по закупкам)
[править | править код]Агенты-покупатели просматривают сетевые ресурсы (например, интернет) с целью получения информации о товарах и услугах. Эти агенты, известные также как «роботы по закупкам», очень эффективно работают с товарами народного потребления, такими как компакт-диски, книги, электронные компоненты и другие продукты «на все случаи жизни».
Пользовательские агенты (персональные)
[править | править код]Пользовательские или персональные агенты — это интеллектуальные агенты, которые действуют от вашего имени. К этой категории относятся интеллектуальные агенты, которые уже выполняют или будут выполнять следующие задачи:
- Проверяют вашу электронную почту, сортируют её по вашим предпочтениям и извещают о приходе важных писем.
- Играют в компьютерные игры, когда ваш противник или патрулирующий игру проявляет активность.
- Собирают заказанные отчеты новостей для вас. Есть несколько версий таких агентов, в том числе newshub и CNN.
- Делают поиск информации по вашей теме и вашему запросу.
- Автоматически заполняют веб-формы для вас, сохраняют вашу информацию для использования в будущем.
- Сканируют веб-страницы для поиска и выделения текста, который представляет собой «важную» часть информации.
- «Обсуждают» темы с вами в диапазоне от подсознательного страха до спорта.
- Содействуют онлайн поиску работы путём сканирования известных досок объявлений о работе и отправки резюме с указанием достоинств, которые соответствуют желаемым критериям.
- Профилируют синхронизацию разнородных социальных сетей.
Агенты по мониторингу и наблюдению (предиктивные)
[править | править код]Агенты по мониторингу и наблюдению используются для наблюдения за объектами и передачи информации на оборудование, как правило, на компьютерные системы. Агенты могут отслеживать уровень запасов материалов компании, следить за ценами конкурентов и доводить их до сведения компании, анализировать фондовые манипуляции по инсайдерскии информация и слухам, и т. д.
Например, в лаборатории реактивного движения НАСА есть агент, который отслеживает наличие и состояние оборудования, планирует заказы на приобретение нового оборудования с учётом оптимизации затрат, а также следит за наличием продуктов питания. Такие агенты обычно осуществляют мониторинг сложных компьютерных сетей и могут следить за конфигурацией каждого компьютера, подключенного к сети.
Особыми агентами по мониторингу и наблюдению являются структуры агентов, используемых для моделирования процесса принятия решений во время тактических операций. Агенты осуществляют мониторинг состояния активов (боеприпасов, оружия, средств транспортировки и т. д.) и получают цели (поручения) от агентов верхнего уровня. Агенты добиваются достижения целей с имеющимися активами, сводя к минимуму расходы активов при максимальном достижении цели[7].
Агенты по добыче и анализу данных
[править | править код]Эти агенты используют информационные технологии для поиска тенденций и закономерностей в обилии информации из различных источников. Пользователь может сортировать эту информацию для того, чтобы отобрать именно то, что он ищет.
Агенты по добыче и анализу данных работают в хранилище данных обнаруженной информации. «Хранилище данных» объединяет информацию из множества разных источников. «Анализ данных» представляет собой процесс просмотра данных в хранилище с целью нахождения такой информации, которую можно использовать для предпринятия целенаправленных действий, например, для увеличения продаж или сохранения клиентов, которые рассматривают возможность ухода к конкурентам.
Классификация является одним из наиболее распространённых видов интеллектуального анализа данных, с помощью которой находятся ключевые слова в информации, и затем она классифицируется по этим ключевым словам. Агенты по добыче и анализу данных могут обнаружить значительные изменения в трендах по ключевым показателям, могут также обнаружить наличие новой информации и оповестить о ней. Например, агент может обнаружить спад в строительной отрасли экономики. Строительные компании на основании полученной информации будут в состоянии принять разумные решения в отношении найма/увольнения сотрудников или покупки/аренды оборудования, которые наилучшим образом будут удовлетворять их фирмы.
Другие примеры
[править | править код]Другими примерами современных интеллектуальных агентов являются некоторые спам-фильтры, игровые боты и средства мониторинга серверов. Боты индексации поисковых систем также считаются интеллектуальными агентами.
- User agent — для браузеров WWW.
- Агент передачи почтовых сообщений — для обслуживания электронной почты, например, Microsoft Outlook. Он общается с почтовым сервером POP3, при этом пользователю нет необходимости знать команды протокола POP3. Он имеет также набор правил, по которым производится фильтрация почты для пользователей, тем самым избавляя их от проблемы того, чтобы делать это самостоятельно.
- Агент системы простого управления сетями SNMP.
- Агент разметки в HTML-формате агентства DARPA.
- Агент платформы разработки многоагентных систем Jason.
- Система разработки искусственных автономных агентов 3APL.
- Язык программирования для разработки рациональных агентов GOAL.
- Язык описания онтологий для семантической паутины OWL.
- Демоны в UNIX-подобных операционных системах.
- В Unix-подобных сетевых серверах httpd — демон протокола HTTP, который реализует его в корне всемирной паутины.
- Агенты управления, используемые в узлах телекоммуникационных сетей.
- Моделирование толпы для обеспечения безопасности, а также для трёхмерной графики.
- Java Agent Template — шаблон создания программных агентов в системе Java (JAT).
Вопросы разработки
[править | править код]В развитии агенто-ориентированных систем возникают некоторые интересные вопросы, а именно:
- как планируются задачи и как достигается их синхронизация;
- как агенты устанавливают приоритеты задач;
- как агенты могут взаимодействовать друг с другом и как они привлекают ресурсы;
- как агенты могут быть переинсталлированы в различных средах и как сохраняются их внутренние параметры;
- как тестируется окружающая среда и как изменения окружающей среды отражаются на поведении агентов;
- как устанавливается связь и обмен сообщениями между агентами;
- какова иерархия агентов (например, агентов для выполнения заданий, агентов-планировщиков, поставщиков ресурсов, и т. п.).
Чтобы работать совместно и эффективно, программные агенты должны использовать совместно семантику своих данных. Это может быть сделано путём применения компьютерных систем описания своих метаданных.
Определение обработчика агентов можно рассматривать в двух взаимосвязанных направлениях:
- обработчик внутреннего состояние и онтологических аспектов представления знаний;
- протоколы взаимодействия — стандарты для определения связей агентов.
Системные агенты используются для моделирования реальных мировых систем с исчислением процессов и параллельной обработкой.
- Машинные агенты — различного вида движки, имеющие разную степень интеллектуальности.
- Контентные агенты — данные, используемые движками в системах логического вывода и обучения.
- Агенты доступа — методы, обеспечивающие движкам восприятие контента и выполнение действий, являющихся результатом логического вывода.
- Агенты безопасности — гаджеты, связанные с распределёнными вычислениями, дополненные несколькими специальными свойствами, связанными с агентным подходом.
Агент использует свои методы доступа для входа в локальные и удалённые базы данных при поиске контента. К таким методам доступа относятся, в частности, методы доставки агенту потока новостей, чтения доски объявлений или скачивания страниц из интернета с помощью веб-паука. Контент, извлекаемый таким образом, возможно, частично фильтруется — отбираются новости или информация из баз данных, которые удовлетворяют поисковому запросу. Далее агент может использовать языковые процессоры для нахождения ключевых слов или идентификационных особенностей отобранного контента. Этот абстрагированный смысл (или набор событий) затем передаётся «мыслящему» агенту или машине логического вывода для того чтобы решить, что делать с новым контентом. Этот процесс сопоставляет контент с экспертными данными или базой знаний, предоставленных пользователем. Если этот процесс находит хорошее соответствие нового контента, агент может использовать другие свои возможности для проведения более детального поиска по контенту. Наконец, агент может принять решение о характере действий по новому контенту: например, послать сообщение пользователю о том, что произошло важное событие. Это действие проверяется системой безопасности, и затем предоставляются те или иные права пользователю. Агент использует доступный пользователю метод доступа для доставки этого сообщения пользователю. Если пользователь подтверждает, что событие важно, быстро реагируя на уведомление, агент может использовать это событие как обучающий фактор для увеличения весовой функции такого рода событий.
Воздействие программных агентов
[править | править код]Безусловно, программные агенты представляют собой инновационную технологию, которая может предложить много полезного для конечных пользователей благодаря автоматизации сложных или повторяющихся задач[8]. Однако есть несколько потенциальных организационных и культурных последствий этой технологии, которые должны быть рассмотрены.
Организационные последствия представляют собой преобразования всей сферы электронной коммерции, эксплуатационные новшества, возрастание нагрузки на системы безопасности. Программные агенты могут осуществлять быстрый поиск в Интернете, находить лучшие доступные предложения в режиме онлайн и предоставлять эту информацию для конечных пользователей в удобном виде. Таким образом, пользователям не нужно вручную просматривать множество сайтов продавцов, агенты способны найти самое лучшее предложение в считанные секунды. В то же время, это увеличивает ценовую конкуренцию и преобразует всю сферу электронной торговли в единый рынок с безупречной конкуренцией. Применение агентов требует также дополнительных ресурсов от компаний, новых рабочих мест из-за дополнительной нагрузки на свои торговые сети, новых процедур безопасности.
Культурные последствия внедрения программных агентов включают крушение надежд, смену трудовых навыков, разрушение частной жизни и возникновение социальной отчуждённости. Некоторые пользователи не могут ощущать себя достаточно комфортно из-за необходимости делегирования важных функций программным приложениям. Те, кто начинают полагаться исключительно на интеллектуальных агентов, могут потерять важные навыки, например, связанные с информационной грамотностью. Для того, чтобы действовать от имени пользователя, программный агент должен иметь полное представление о профиле пользователя, в том числе о его личных предпочтениях. Это в свою очередь может привести к непредсказуемым последствиям в вопросах конфиденциальности. Когда пользователи начнут больше полагаться на своих программных агентов, особенно в коммуникационной деятельности, они могут потерять контакт с другими людьми и смотреть на мир глазами своих агентов. Именно эти последствия необходимо рассмотреть исследователям агентов и пользователям, имеющим дело с технологиями интеллектуальных агентов[9].
Примечания
[править | править код]- ↑ Нвана Х. Программные агенты: Обзор. Knowledge Engineering Review, Vol.11, No.3, 205—244, Cambridge University Press (англ.)
- ↑ Шермер Б. Программные агенты, наблюдение и право на неприкосновенность частной жизни: законодательная база для наблюдения с помощью агентов. Leiden University Press, 2007, p.140. (англ.)
- ↑ 1 2 3 Вулдридж М., Дженнингс Н. Интеллектуальные агенты: теория и практика. Knowledge Eng. Rev., vol. 10(2), pp. 115—152, 1995 (англ.)
- ↑ Стюарт Рассел, Питер Норвиг. Искусственный интеллект: Современный подход. Prentice Hall, 2009, ISBN 978-0136042594 (англ.)
- ↑ Carl Hewitt. Viewing Control Structures as Patterns of Passing Messages. Journal of Artificial Intelligence, June 1977.
- ↑ Стефен Хааг, Управление информационными системами в информационный век, 2006, р 224—228 (англ.)
- ↑ Harold E. Popplewell Agents & Applicability . Дата обращения: 16 декабря 2010. Архивировано из оригинала 26 марта 2005 года.
- ↑ А. Серенко, Б. Детлор. Интеллектуальные агенты как инновация, Artificial Intelligence & Society, 18(4), 364—381 Архивировано 1 марта 2012 года. (англ.)
- ↑ А. Серенко, У. Руби, М. Кокосила. Незапланированные эффекты интеллектуальных агентов при использовании в Интернете: Социально-информационный подход. Artificial Intelligence & Society, 21(1-2), 141—166. Архивировано 20 июня 2012 года. (англ.)
Ссылки
[править | править код]- Нвана Х. Программные агенты: Обзор. Knowledge Engineering Review, Vol.11, No.3, 205—244, Cambridge University Press (англ.)
- FIPA Фонд интеллектуальных физических агентов (англ.)
- Европейский исследовательский центр программных агентов (англ.)
- Семантический агент (англ.)
- Mobile-C Многоагентная система для мобильных агентов в C/C++ (англ.)
- JADE Java Agent Developing Framework, an Open Source framework developed by Telecom Italia Labs
- Open source Agent Development Kit
- Open Source Project High Level Logic (HLL) (англ.)
- Open source project KATO for PHP and Java developers to write software agents