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

situation àaction,

которое просто прямо отображают информацию восприятия на действия.

Второй определяющей характеристикой категоризационной архитектуры является то, что много поведений могут возникать одновременно. Так что, очевидно, должны быть механизмы выбора межу разными действиям выбранными этими несколькими действиями. Брукс предложил расположить эти модули в категоризационную иерархию, в которой поведения расположены по слоям. Нижние слои в иерархии способны подавлять верхние слои: чем ниже слой, тем выше его приоритет. Идея заключается в том, что более высокие слои представляют более абстрактные поведения. Например, можно захотеть поведение мобильного робота для «избегания препятствий». В этом случае имеет смысл дать избеганию препятствий высокий приоритет,  поэтому это поведение обычно закодировано на низкоуровневом слое, который имеет высокий приоритет. Чтобы проиллюстрировать категоризационную структуру в деталях, мы сейчас представим простую формальную ее модель, и проиллюстрируем как она работает посредством небольшого примера. Потом мы обсудим ее относительные преимущества и недостатки и укажем на похожие реактивные архитектуры.

Предполагается, что функция see, которая представляет способность агента к восприятию, остается неизменной. Однако в реализациях системы с категоризационной структурой предполагается довольно тесное соединение между восприятием и  действием – необработанная входная информация от сенсора не обрабатывается или преобразуется значительно, и обычно не предпринимается никакой попытки представить изображение в символическом виде.

Функция принятия решения представлена как набор поведений, вместе с подавлением связей между этими поведениями. Поведение это пара (c,a) где cÌP набор восприятий называемых условиями, и aÌA это действие. Поведение (c,a) выполняется, когда окружение находится в состоянии sÌS и если see(s) Ì c. Пусть Beh={(c,a) | cÍP and aÌA} это набор таких правил.

Связанный с набором правил поведения агента RÍBeh является двоичной подавляющей связью в наборе поведений: .

Эта связь предполагается быть total ordering (нестрогим порядком?) над R (т.е. она транзитивна, иррефлексивна и асимметрична). Будем писать

, если

и читается так «b1 подавляет b2» т.е. b1 находится ниже по иерархии, чем b2 и таким образом получает приоритет над b2. Функция действия определяется:


Таким образом, выбор действия начинается с вычисления набора fired состоящего из всех поведений, которые включились(5). Затем каждое поведение (c,a) которое включилось, проверяется, чтобы определить есть ли еще поведение с большим приоритетом. которое включилось. Если такого нет, тогда возвращается действующая часть поведения a как выбранное действие. Если никакого поведения не включилось, то возвращается действие null, означающее что выбранного действия нет.

Исходя из того, что нашим основным беспокойством относительно принятия решения основанное на логике было теоретическая сложность  стоит остановиться и изучить насколько хорошо выполняется наша система основанная на поведениях. Общая временная сложность категоризационной функции действия не хуже чем O(n2), где n наибольшее из числа поведений или числа восприятий. Таким образом, даже с простым алгоритмом, приведенным выше, принятие решения является легко поддающимся обработке. На практике мы можем сделать это намного лучше : функции логики могут быть закодированы в «железе» и иметь постоянное время выполнения. Для современного «железа» это значит, что агенту может быть гарантировано время принятия решения в течение наносекунд. Возможно это более чем все другое, эта вычислительная простота является силой категоризационной структуры.