Центральный Дом Знаний - Агентно-ориентированный подход

Информационный центр "Центральный Дом Знаний"

Заказать учебную работу! Жми!



ЖМИ: ТУТ ТЫСЯЧИ КУРСОВЫХ РАБОТ ДЛЯ ТЕБЯ

      cendomzn@yandex.ru  

Наш опрос

Как Вы планируете отдохнуть летом?
Всего ответов: 922

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Форма входа

Логин:
Пароль:

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

Агентно-ориентированный подход (АОП) к программированию, разновидность представления программ, или парадигма программирования, в которой основополагающими концепциями являются понятия агента и его поведения, которое зависит от среды, в которой он находится. Концепция была предложена Шохемом в 1990г. 

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

Произведём сравнения некоторых понятий:

  • Объект — программная сущность, заданной структуры и конкретизированных механизмов взаимодействия с другими объектами посредством передачи сообщений. Сообщения формируются и отсылаются в ответ на пришедшие. Формирование сообщений происходит на основании данных процедурами.

  • Актор — программная сущность, заданной структуры и механизмов взаимодействия.

    • Содержит данные и процедуры.

    • Инкапсуляция, отношение, наследование, порождение сообщений

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

    • восприятие динамики среды;

    • действия, изменяющие среду;

    • рассуждения в целях интерпретации наблюдаемых явлений, решения задач, вывода заключений и определения действий.

В зависимости от степени свободы среды, подразумевается неличие соответствующего типа агента, подразделяется на:

  • Замкнутые — конечное детерминированное или вероятностное описание всей среды, которое известно агенту априорно или ислепдовательски.

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

  • Трансформируемые — динамически развивающиеся среды, развивающие структурой является агент.

Причины возникновения А.-о.п.:

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

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

В целом, система АОП должна включать следующие базовые компоненты:

  • ограниченный формальный язык с соответствующими синтаксисом и семантикой для описания внутреннего состояния агента, которое определяется несколькими параметрами типа убеждений, желаний, намерений и обязательств;

  • язык программирования для спецификации агентов, включающий примитивные команды типа REQUEST и INFORM;

  • агентификатор, преобразующий нейтральные компоненты в программируемые агенты.

Основные свойствами, которыми по возможности должны обладать агенты, считаются:

  • Автономность — способность выполнять действия самостоятельно;

  • Гомогенность/гетерогенность — способность объединять однородные или разнородные функции;

  • Способность к обучению, и «интеллект» — машинное обучение, коррекция поведения для улучшения собственной эффективности;

  1. Активное поведение, постоянный обмен информацией «внутри» агента и между агентом и средой;

  2. Коммуникативность — обмен данными с внешней средой;

  3. Восприятие среды — наличие специальных «средств» восприятия среды функционирования агента;

  4. Мобильность — перемещение агента внутри других программных и физических сред и/или компонентов.

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

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

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

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

Распределённые объектная среда JADE (основана на Java RMI, Java CORBA IDL, Java Serialization и Java Reflection API) придаёт Java агентам свойства:

  1. Автономность — способность выполнять действия самостоятельно: агент следует списку поведений, который может быть пополнен асихронно, то есть и когда он в режиме ожидания, и когда в режиме занять — идёт работа.

  2. Устойчивость — не имея побочного эффекта после каждого поведения, даёт возможность отката.

  3. Активное поведение агента заключается в том, что в случае неудачи, выполняются циклические попытки выполнить текущее, а затем перейти к следующему действию поведения. Во время выполниния поведения агент занят — не взаимодействует со средой. После завершения текущего поведения, агент переходит к следующему по спуску, а в случае отсутствия — ожидает появление такового. Объект же в случае успеха не имеет спуска, а в случае неудачи — бросает задачу.

  4. Мобильность — возможность передавать агент в другой контейнер. Данное свойство возникает из отсутствия после выполнения каждого поведения побочного эффекта.

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

Агент

|

|->Ресурсы

|

|->Объекты

|

|->функции

|

|->данные

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

Очень просто создать агента в JADE, определив его метода инициализации:

import jade.core.Agent;

public class BookBuyerAgent extends Agent {

protected void setup() {

// Printout a welcome message

System.out.println("Hello! Buyer-agent "+getAID().getName()+” is ready.”);

}

}

Фактическая работа, которую агент должен делать, как правило, осуществляется в рамках «поведения агента». Поведение представляет собой задачу, которую агент может выполнять.

Агент может выполнять одновременно несколько моделей поведения. Однако важно заметить, что расписание нескольких моделей поведения в агенте имеет не упреждающий характер, а кооперативный. Это означает, что когда поведение исполняется по расписанию, его метод action() вызывается и работает до тех пор, пока не завершится. Поэтому именно программист определяет, когда агент переключается от исполнения данного поведения к выполнение следующего.

С учетом описанного механизма планирования важно подчеркнуть, что поведение, подобное представленному ниже, препятствует выполнению любого другого поведения, т.к его action() метод никогда не завершается.

public class OverbearingBehaviour extends Behaviour {

public void action() {

while (true) {

// do something

}

}

public boolean done() {

return true;

}

}

Рассмотрим предметную область «Торговля книгами», на которой будут проиллюстрированы шаги, необходимые для создания агентно-ориентированных приложений с JADE.

Каждый покупающий агент получает название книги, которую он должен приобрести в качестве аргумента командной строки и периодически запрашивает всех известных ему продавцов-агентов, чтобы сделать запрос о покупке. Как только предложение получено, агент-покупатель подтверждает его и отправляет заказ. Если больше чем один агент-продавец предоставляет данную книгу, покупатель выбирает лучшее предложение (самую лучшую цену). Купив требуемую книгу, агент-покупатель завершает работу. Каждый агент-продавец имеет минимальный интерфейс, с помощью которого пользователь может добавлять новые названия (и их цену) в локальный каталог книг, выставленных на продажу. Агенты-продавцы находятся в состоянии ожидания запросов от агентов-покупателей. Когда они получают запрос на книгу, они проверяют, имеется ли данная книга в их каталоге. Если да — то они отвечают предложением с ценой. Иначе — отказывают. Когда они получают заказ на покупку, они обрабатывают его и удаляют запрошенную книгу из своего каталога.

Loading

Календарь

«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Архив записей

Друзья сайта

  • Заказать курсовую работу!
  • Выполнение любых чертежей
  • Новый фриланс 24