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

BDI модель привлекательна по нескольким причинам. Первое, она интуитивна- мы все понимаем процесс принятия решения что делать и потом как делать и мы все получаем естественное понимание идей убеждения, желания, и намерения. Второе она дает нам явное функциональное разбиение, которое указывает какого типа подсистемы могут потребоваться при построении агента. Но основной трудности как всегда является знание того как эффективно реализовать эти функции.

1.4.4  Послойные архитектуры.

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

Обычно присутствует как минимум для слоя для реактивного и проактивного поведений соответственно. В принципе нет никаких оснований иметь больше слоем. Однако как бы много слоев не было от них будет польза при введении в них информационных потоков и потоков контроля внутри них. Грубо говоря можно определить два типа потоков контроля внутри послойной архитектуры (см. рисунок 1.6):

-  горизонтальное расслоение. В горизонтально расслоенных архитектурах (Рисунок 1.6(a)) каждые программный слой прямо присоединен ко входу сенсорной информации. В результате каждый слой сам по себе действует как агент вырабатывая предложения какое действие выполнять.

-  Вертикальное расслоение. При вертикальном расслоении (Рисунок 1.6(b) и 1.6(c)) по крайней мере один вход сенсорной информация и один выход действий относятся к каждому слою.


Рисунок 1.6 Потоки информации и контроля в трех типах послойной архитектуры.

Самое большое преимущество горизонтально послойный архитектур заключается в их концептуальной простоте: если мы хотим чтобы агент проявлял n различных типов поведения мы реализуем n различных слоев. Однако из-за того что каждый слой соперничает с другими в выработке предложений действий, существует опасность что результирующее поведение агента не будет согласованным. Для того чтобы гарантировать что архитектура с горизонтальным расслоением является непротиворечивой, обычно включают функцию mediator (посредник) которая принимает решения о том какому слою передать контроль над агентом в каждый конкретный момент времени. Необходимость в таком централизованном контроле проблематична: она означает что дизайнер должен потенциально  учесть все возможные взаимодействия между слоями. Если присутствует n слоев в архитектуре и каждый слой может предложить m возможных действий то это означает что существует mn взаимодействий которые необходимо рассматривать. Явно что это трудно с точки зрения разработки в любой кроме самых простых систем. Введения центральной системы контроля также вводит препятствие в принятии решения агентом.

Эти проблемы частично смягчены при архитектуре  с вертикальном расслоением. Мы можем подразделить архитектуры с вертикальным расслоение на однопроходные архитектуры (Рисунок 1.6(б)) и двухпроходные архитектуры (Рисунок 1.6(с)). В однопроходных архитектурах контроль проходит последовательно через все слои до последнего слоя который вырабатывает выход действий. В двухпроходных архитектурах информация проходит снизу вверх (первый проход) а контроль сверху вниз. Есть несколько интересных сходств межу идеей архитектуры с двухпроходного вертикального расслоения и  способом работы организаций в которых информация поднимается до самых верхних уровней организации а команды идут в обратном направлении. В обоих однопроходных и двухпроходных архитектурах с вертикальным расслоением сложность взаимодействий между слоями уменьшена т.е. только n-1 соединений между n слоями, и таким образом если каждый слой имеет возможность предложить m действий то существует максимум m2(n-1) взаимодействий которые необходимо рассмотреть между слоями. Это очевидно намного проще чем в случае с горизонтальным расслоением. Однако эта простота достигается за счет гибкости – для того чтобы архитектура с вертикальным расслоением приняла решение контроль должен пройти через каждый отдельный уровень. Это увеличивает вероятность отказа: отказ произошедший в любом слое скорее всего серьезно скажется на производительности агента.