Интеллектуальные агенты. Конкретные архитектуры интеллектуальных агентов. Языки программирования агентов., страница 21

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

Делиберативный процесс BDI агента (решение что делать) представлен функцией filter

filter: Ã(Bel)xÃ(Del) xÃ(Int)àà (Int)

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

Заметете что мы не ожидаем от этой функции введение новый намерений откуда то ни было. Таким образом функция filter должна удовлетворять следующему ограничению:

"BÌÃ(Bel), "DÌÃ(Des), "IÌÃ(Int),filter(B,D,I) Í IÈD

Другими словами текущими намерениями являются намерения принятые ранее или новые принятые варианты.

Функция execute предполагается просто возвращающей любые выполнимые намерения – те которые соответствуют непосредственно выполняемым действиям:

execute: Ã(Int)àA

Функцией принятия решения action BDI агента тогда является

action:PàA

и определяется следующим псевдокодом.

1.  function action(p:P):A

2.  begin

3.  B:=br f(B,p)

4.  D:=options(D,I)

5.  I:=filter(B,D,I)

6.  return execute(I)

7.  end function action

Заметим что представление намерений агента является набором ( т.е. неструктурированной коллекцией) бывает в основном слишком упрощенным на практике. Простой альтернативой является связывание приоритета с каждым намерение, указывающее на их относительную важность. Другой естественной идеей является представление намерений как стек. Намерения кладутся в стек когда оно принято и выталкивается из стека когда оно либо достигнуто или не достижимо. Более абстрактные  намерения имеют тенденция опускаться на дно стека а более конкретные поднимаются к его вершине.

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