Читайте также:
|
|
Чтобы обеспечить мобильность агента, язык должен поддерживать механизм посылки, передачи, получения и выполнения кодов, содержащих агентов. Имеются два различных подхода, которые решают проблему мобильности. Первый — это передача агента в текстовой форме, как специального сценария (script) с последующей интерпретацией этого сценария на принимающей машине. Второй — передача агента в форме машинно-независимого байт-кода. Этот байт-код генерируется транслятором на этапе создания агентской системы, посылается по сети и выполняется интерпретатором байт-кодов на принимающем компьютере. Оба из этих методов имеют свои преимущества и недостатки.
Это требование непосредственно вытекает из предыдущего. Интеллектуальные агенты должны работать в гетерогенной компьютерной среде. Любой компьютер, получающий агента, должен быть способен принять его и обеспечить действия агента.
Свойство агентов участвовать в переговорах и многие другие характеристики агентов опираются на доступ к удаленным ресурсам. Поддержка сетевых услуг может включать семейства соответствующих программных интерфейсов таких как: sockets, интерфейсы к базам данных, интерфейсы взаимодействия объектов (CORBA, OLE, ActiveX и т.д.), специальные механизмы, встроенные в язык (типа Remote Method Invocation в языке Java), специальные примитивы языка для осуществления переговоров агента и т.д.
В рамках современных взглядов агент должен активно использовать достижения и методы ИИ. Поэтому необходимо иметь поддержку символьных вычислений и, возможно, логического программирования, встроенную в язык (подобно PROLOG- или LISP-системам), а также иметь встроенный механизм вывода, включающий различные стратегии поиска решения. Автоматическое управление памятью и сборка мусора — стандартные средства для таких языков.
Подчас агент должен выполнять некоторые действия одновременно. Тем самым, язык программирования агентов должен включать поддержку параллельного выполнения различных функций агента (типа “threads”) и различных примитивов синхронизации (семафоры, мониторы, критические секции, и т.д.). Кроме того, параллельное выполнение действий агентов можно осуществить с помощью отдельной виртуальной машины с реализованным режимом вытесняющей многозадачности и собственной стратегией разделения времени.
Наличие системы защиты от несанкционированного доступа и “плохих кодов”. Это важно по многим причинам. Мобильные агенты, которые приходят из сети, могут таить в себе множество опасностей для принимающей машины, так как они работают в ее адресном пространстве. Для обеспечения
безопасности необходимо выполнить процесс авторизации агента, т. е. проверить, зарегистрирован ли он и имеет ли соответствующие полномочия (привилегии), чтобы выполнить то или иное действие или обратиться к некоторым ресурсам. Система безопасности должна предотвращать любые несанкционированные действия агента.
Язык программирования агентов должен иметь механизмы наследования, рассматривать вызовы процедур как сообщения, передаваемые от одних объектов к другим, включать возможности синхронного и асинхронного взаимодействия объектов, а также допускать параллельность внутри объекта.
Следует иметь поддержку специфических для агента свойств, встроенную в язык на уровне синтаксических конструкций, так, чтобы, например, свойства типа “beliefs-desires-intentions” (BDI), инструкции для переговоров и обеспечения мобильности, места встречи и т.д. могли бы быть выражены с помощью соответствующих примитивов языка.
Проблемы МАС.
Как формулировать, описывать. анализировать. распределять проблемы и синтезировать результаты между интеллектуальными агентами?
Как агенты взаимодействуют между собой?
Как гарантировать, что агенты действуют адекватно в принятии решенийф или мер?
Как распознавать и согласовывать точки зрения и противоречивые наменрения между агентами, пытающимися координировать свои действия?
Как проектировать и управлять на практике иМАС?
Как избегать или смягчать вредное поведение системы 9напримр. хаотическое или колебательное поведение)?
Дата добавления: 2015-04-26; просмотров: 15 | Поможем написать вашу работу | Нарушение авторских прав |