Сайт о программировании, математике и моделировании
Разработка языка взаимодействия агентов МАС. Общие сведения о языке взаимодействия агентов
Важным вопросом является организация передачи информации используемой МАС между агентами. Известно два подхода к решению этой задачи:
- механизм «доски объявления», когда результаты деятельности всех агентов сохраняются в единой базе данных, откуда всегда могут быть получены любым агентом;
- механизм передачи сообщений, когда информация о результатах деятельности одного агента передаётся напрямую другому агенту.
Передача сообщений представляется экономным методом в плане ресурсов и наиболее ярко отображает взаимодействие агентов между собой. Запросы (сообщения) агентов соответствуют формату ACL сообщений согласно спецификации «FIPA ACL Message Structure Specification» и содержать следующие параметры:
- performative -тип сообщения. Используется в базе знаний как один из параметров, идентифицирующих сообщение;
- sender-отправитель сообщения. Обязательный параметр сообщения;
- receiver-получатель сообщения. Обязательный параметр cообщения;
- reply-to –адрес агента, которому отправлять ответ;
- content-содержание сообщения.;
- protocol_id –идентификатор протокола;
В общем случае все сообщения включают в себя данные параметры. Содержание сообщения (параметр content) зависит от его типа и назначения агента. Реализация координируемого взаимодействия заключается в том, что каждый агент, получив сообщение (запрос) от агента-координатора должен отослать ответ именно ему, так как, исходя из структуры МАС, агенты между собой не общаются, а взаимодействуют через агента-координатора. Получение сообщения агентом является событием, на которое ему нужно отреагировать.
События часто используются в таких средах с ориентацией на передачу сообщений, как Windows. В подобной среде программа просто ожидает до тех пор, пока не получит сообщение, а затем выполняет соответствующие действия. Такая архитектура прекрасно подходит для обработки событий в стиле языка С#, позволяя создавать обработчики событий для различных сообщений и просто вызывать обработчик при получении определенного сообщения. Язык С# позволяет программисту создавать события любого типа. Однако в целях компонентной совместимости со средой .NET Framework необходимо следовать рекомендациям, подготовленным Microsoft специально для этих целей. Центральное место в этих рекомендациях занимает требование того, чтобы обработчики событий имели два параметра. Первый должен быть ссылкой на объект, который будет генерировать событие. Второй должен иметь тип EventArgs и содержать остальную информацию, необходимую обработчику. Таким образом, .NET-совместимые обработчики событий должны иметь следующую общую форму записи:
void handler(object source, EventArgs arg) {//…}
Обычно параметр source передается вызывающим кодом. Параметр типа
EventArgs содержит дополнительную информацию. Класс EventArgs не содержит полей, которые используются при передаче дополнительных данных обработчику, он используется в качестве базового класса, из которого можно выводить класс, содержащий необходимые поля.
Print article | This entry was posted by root on 03.09.2012 at 3:32 пп, and is filed under Многоагентное моделирование. Follow any responses to this post through RSS 2.0. Вы можете перейти в конец записи и оставить комментарий. Пинги запрещены. |
1 год назад
Функционирование в агента в системе происходит за счет получения от системы и отправка измененных сообщений в систему. Система подает на вход агенту какое-то сообщение, после чего агент заносит его так в так называемый модуль событий. Передавая его в блок обработки сообщений, и далее передавая его по цепочке в блок планов, анализирует его. Где событие анализируется к принадлежности агента. Если сообщение не принадлежит агенту, то оно передаётся обратно в систему не изменённым. Блок планов, обрабатывая событие, сравнивает их с собственной базой планов и при положительном сравнении с планами начинает обработка сообщения в базе знаний, откуда поступает для сравнения с целями агента для передачи в модуль событий. Пройдя весь цикл сравнения и преобразования данных, в установленные задачи, поступает в систему для дальнейшего функционирования.
1 год назад
Лично мне интересная и близкая тема. Хотя и рассматривается другой ее аспект. Но необходимость особого языка для МАС, особенно в моделях AL, совенршенно очевидна )) С удовольствием посмотрю и продолжение этой работы. Успехов!