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

В заключение этого раздела мы рассмотрим два примера послойной архитектуры: Инес Фергюсон TORINGMACHINES и Йорг Мюллер INTERRAP. Первый является примером архитектуры с горизонтальным расслоение, второй с вертикальным расслоением.

ToringMachines

Архитектура TORINGMACHINES представлена на рисунке 1.7. Как показано на рисунке TORITNGMACHINES состоит из  трех слоев выработки активности. Т.е. каждый слой непрерывно выдает предложения какое действие агент должен выполнить. Реактивный слой обеспечивает более или менее немедленный ответ на изменения произошедшие в окружении. Он реализован на правилах ситуация-действие, похожими на поведения в категоризационной архитектуре Брукса (раздел 1.4.2) Эти правила отображают входную сенсорную информацию пряма на выход исполнительного элемента. Естественным примером сценария для TORINGMACHINES является езда автономных транспортных средств между точками назначения через улицы заполненных похожими агентами. В этом сценарии реактивные правила обычно имею дело с такими функциями как избегание препятствий. Например вот пример  реактивного правила для избегания обочин:

rule-1: kerb-avoidance

   If

                   is-in-front(Kerb, Observer) and

                   speed(Observer)>0 and

                   separation(Kerb, Observer) < KerbThreshHold

   then

                   change-orientation(KerbAboidanceAngle)


Где change-orientation(…) это действие которое будет предложено если правило выполниться. Правила могут только ссылаться на текущее состояние агента – они не могут явно рассуждать об окружающем мире, и справа там стоят действия а не предикаты. Таким образом если правило выполняется это не скажется на изменении центральной модели окружения,  а результатом будет просто действие предложенное реактивным слоем.

Рисунок 1.7 ToringMachines: архитектура с горизонтальным расслоением.

Слой планирования TORINGMACHINES вырабатывает проактивное поведение агента. В частности слой планирования отвевает за «повседневное» выполнение агента - при нормальных условиях этом слой отвечает за то что агента делает. Однако, этот слой не выполняет «первоочередное» планирование. Т.е. он не пытается выработать планы с нуля. Скорее модуль планирования использует библиотеку «набросков» планов называемых схемами. Эти наброски являются по существу иерархически структурированными планами, которые модуль планирования TORINGMACHINES завершает во время выполнения для того чтобы решить что делать. Так для достижения цели модуль планирования пытается найти схему в своей библиотеке которая подходит к цели. Эта схема содержит подцели, которые модуль планирования разрабатывает пытаясь найти другие схемы в своей библиотеке планов которые соответствуют этим подцелям.

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

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

censor-rule-1:

   if

                   entity(obstacel-6) in perception-buffer

   then

                   remove-sensory-record(layer-R, entity(obstacle-6))