Я разрабатываю многоагентную систему, основанную на протоколе контрактной сети для связи между агентами.
Моя система состоит из одного агента супервизора и n агентов машины.
Супервизорный агент запускает CFP, чтобы найти подходящий компьютер для выполнения данной задачи.
Каждый агент машины отвечает на CFP и добавляет задачу в свою очередь, если его предложение принимается агентом супервизора. В то же время каждый агент машины запускает CFP для других агентов машины, целью которых является обмен задачами, находящимися в его очереди (задачи приняты).
Я реализовал на агенте-супервизоре поведение ContractNetInitiator.
Я реализовал на машине агента поведение ContractNetreponder.
Теперь, как я должен реализовать CNP между агентами машины. Я думаю поступить следующим образом о поведении:
ParallelBehaviour PB = new ParallelBehaviour();
PB.addSubBehaviour(new Responder(this, null)); //ContractNetresponder behaviour
PB.addSubBehaviour(new initiator(this,60000)); //ContractNetinitiator behaviour
addBehaviour(PB);
Мой вопрос: в поведении респондента агент машины получает CFP от агента супервизора и от других агентов машины. Могу ли я использовать один ContractNetresponder и фильтровать позже входящие сообщения или мне нужно создать два поведения ContractNetresponder для отдельной обработки CFP.
Спасибо за ваш ответ или любую ориентацию.
С наилучшими пожеланиями