Агентно-ориентированный подход

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Содержание

Определение

Агентно ориентированный подход — разновидность представления программ, или парадигма программирования, в которой основными концепциями являются понятия агента и поведения. Сравните объектно-ориентированный подход. Агент в данном случае понимается как некая программная сущность, которая обладает собственной свободой поведения[1]. Агент представляет собой более сложную, активную и автономную единицу чем объект.


Причины возникновения агентно-ориентированного подхода

— необходимость преодоления границ операционных сред;

— устранение разнородности объектных моделей, вызванных тем что классы и объекты построенные в различных инструментальных средах имеют определенные отличия;

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

— необходимость перекомпиляции программных кодов при внесении изменений в объекты и интерфейсы;

— невозможность динамической адаптации поведения программных объектов в зависимости от состояний и поведения среды;

— невозможность работы в явной форме с моделями знаний;

Что такое АОП?

В ООП вычислительный процесс понимается как система, собранная из модулей, которые взаимодействуют друг с другом и имеют собственные способы обработки поступающих сообщений. В свою очередь, АОП уточняет эти рамки, фиксируя активность агентов и изменения их состояний через анализ убеждений, обязательств, намерений и пр. Наличие у агента механизма целеобразования обеспечивает принципиально новый уровень автономии. Агент необязательно выполняет распоряжения какого либо другого агента или пользователя, а просто зависит от условий среды, включая цели и намерения других агентов. В отличие от объекта, агент может принять на себя определенные обязательства или, наоборот, отказаться от выполнения некоторой работы, мотивируя это отсутствием компетентности, занятостью другой задачей и т. п. В то же время, агент может выполнять такие действия как порождение, подавление и замена других агентов, активизация функций (как своих, так и у других агентов), активизация сценария деятельности, запоминание текущего состояния других агентов и пр. Все это наглядно показывает, что агент, будучи «активным объектом» или «искусственным деятелем», формирующим свое собственное поведение, находится на более высоком уровне сложности по отношению к традиционным объектам в ООП [2].


Основными свойствами агентов считаются:

  1. Автономность — способность выполнять действия самостоятельно.
  2. Гомогенность/гетерогенность — способность объединять однородные или разнородные функции
  3. Способность к обучению, и «интеллект» — машинное обучение коррекция поведения для улучшения собственной эффективности
  4. Активное поведение, постоянный обмен информацией «внутри» агента и между агентом и средой
  5. Коммуникативность — обмен данными
  6. Восприятие среды — наличие специальных «средств» восприятия среды функционирования агента
  7. Мобильность — перемещение агента внутри других программных и физических сред и / или компонентов

Структурно агента можно изобразить следующим образом:

Агент
  |
  |->Ресурсы
  |
  |->Объекты
       |
       |->функции
       |
       |->данные


Типичным примером агентно ориентированного подхода можно назвать специальные программы, имитирующие действия игроков в компьютерных играх. Распространенное название для таких программ — боты. Однако, использование ботов не ограничивается применением в компьютерных играх. Их можно встретить как элемент программы в чатах и форумах, выполняющих роль «собеседника» и поддерживающих «дискуссии». Однако некоторые боты выполняют не только роль имитаторов в процессе общения или игры, они используются для редактирования текстовой информации (в том числе и в Википедии), для наладки сетевых соединений, модерирования ресурсов и т. п.


Примечания

  1. Камерон Хьюз, Трейси Хьюз агентно-ориентированное программирование. Параллельное и распределенное программирование с использованием С++ . 672 стр. 2004
  2. А. Н. Швецов, Агентно-ориентированные системы: от формальных моделей к промышленным приложениям , 2008


Контекстные ссылки

  1. en:Wikipedia:Multi-agent system
  2. en:Wikipedia:Agent-based model
  3. en:Wikipedia:Reinforcement learning — Обучение с подкреплением
Личные инструменты

Served in 0.719 secs.