Мультиагентные системы и сообщества агентов, страница 14

-  объявить задачу, которая должна быть выполнена

-  получить и оценить заявки от потенциальных контракторов

-  заключить контракт с подходящим контрактором

С точки зрения контрактора:

-  получить объявление задачи

-  оценить свои способности для ответа

-  ответить (отклонить, предложить)

-  выполнить задачу, если мое предложение принято

-  доложить о результатах

Роли агентов не определены заранее. Каждый агент может выступать в роли менеджера, выдавая объявления задач; каждый агент может выступать в роли контрактора, отвечая на объявления задач. Эта гибкость допускает дальнейшее разделение задачи: контрактор для конкретной задачи может выступать как менеджер, запрашивая помощь у других агентов в решении частей этой задачи. Связи результирующего менеджера - контрактора формируют иерархию контроля разделения задачи и синтеза результата.

Контрактная сеть предлагает преимущества graceful performance degradation (изящного ухудшения характеристик?). Если контрактор не может предоставить приемлемого решения, менеджер может поискать других потенциальных контракторов для этого задания.

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

Каждый потенциальный контрактор оценивает неистекшие объявления заданий для определения является ли она приемлемой для предложения заявки. Контрактор должен выбирать наиболее заманчивые задания (основном на некотором критерии) и предлагать свою заявку соответствующему менеджеру.

Менеджер получает и оценивает заявки для каждого объявления задачи. Любая заявка, кажущаяся удовлетворительной, может быть принята до истечения времени действия объявления задачи. Менеджер уведомляет контрактора о принятии заявки с помощью сообщения принятия. (Ограничением контрактной сети является то, что задание может быть поручено контрактору с ограниченными возможностями, если более квалифицированный контрактор занят в это время. Другим ограничением является то, что ничего не обязывает менеджера информировать контракторов о том, что предложение уже принято.)


Рисунок 2.6 Базовые шаги в контракторной сети, важный основной протокол взаимодействия между кооперирующими агентами.

Менеджер может не получить заявок по нескольким причинам: (1) все потенциальные контракторы заняты выполнением других задач, (2) потенциальный контрактор свободен но оценил предложенное задание ниже других задач находящихся на рассмотрении, (3) ни один контрактор, даже если свободен, не способен справиться с заданием. В этих случаях менеджер может запросить заявки с немедленным ответом, на которые контракторы отвечают сообщениями, такими как: могу но занят, не способен, не заинтересован (слишком низко оценил задание для  подачи заявки). После этого менеджер может уточнить свой план заданий. Например, менеджер может подождать пока занятый контрактор освободится.

Контрактная сеть позволяет выдачу прямых контрактов без переговоров. Выбранный контрактор отвечает принятием или отказом. Эта возможность может упростить протокол и увеличить эффективность некоторых задач.

2.3.4 Системы доски объявлений.