Брукс выдвинул гипотезу о том, что интеллект и рациональное поведение не возникает в нематериальных (невоплощенных) системах, подобных системам доказательства теорем, или даже в традиционных экспертных системах (раздел 7.2). Эту гипотезу автор подтвердил на примерах созданных им роботов. Брукс считает, что интеллект является продуктом взаимодействия определенной многослойной системы со своим окружением. Более того, Брукс придерживается точки зрения, что интеллектуальное поведение возникает при взаимодействии архитектур, организованных из более простых сущностей. В этом состоит основная идея его категориальной архитектуры (subsumption architecture.
Категориальная архитектура реализована Бруксом в системе управления роботом. Эта архитектура представляет собой совокупность объектов-обработчиков, предназначенных для решения отдельных задач. Каждый такой объект является конечным автоматом, который непрерывно преобразует воспринимаемую входную информацию в выходное управляющее воздействие и зачастую реализуется с помощью простого множества продукционных правил типа условие-действие (раздел 5.3). С помощью этих правил можно определить (случайным образом, т.е. без знания глобального состояния), какие действия соответствуют текущему состоянию подсистемы. Брукс допускает некую обратную связь от более низких уровней системы.
Перед тем как представить пример архитектуры Брукса на рис. 6.26, познакомимся с его философией. Брукс полагает, что "при построении больших интеллектуальных систем представление является неправильной единицей абстракции". Следовательно "явные представления и модели мира можно строить лишь на низших уровнях интеллекта. Оказывается, в качестве модели мира лучше использовать сам мир" [Brooks, 1991a]. Таким образом, Брукс рассчитывает строить интеллектуальные системы инкрементально. На каждом этапе архитектуры он предлагает создать завершенную систему и обеспечить надежность функционирования ее составных частей и их интерфейсов. На каждом шаге проектирования он строит завершенные интеллектуальные системы, которые тестируются в мире, требующем действительного восприятия и действия [Brooksa].
На рис. 6.26, взятом из работы [Brooks, 1991a], показана трехуровневая категориальная архитектура. Каждый уровень представляет собой сеть фиксированной топологии, состоящую из простых конечных автоматов, имеющих несколько состояний, один или два внутренних регистра, один или два таймера и доступ к простым вычислительным устройствам, позволяющим, например, вычислить сумму векторов. Эти конечные автоматы работают асинхронно, посылая и получая сообщения фиксированной длины. В системе нет централизованного управления. Наоборот, каждый конечный автомат управляется данными, получаемыми им через сообщения. При получении сообщения или завершении временного периода ожидания состояние автомата изменяется. В системе нет глобальных данных или каких-либо динамически создаваемых коммуникационных связей. Таким образом, в ней невозможно реализовать общее управление. Все конечные автоматы равноправны и являются пленниками своей связности.
Рис. 6.26. Функции трехуровневой категориальной архитектуры из работы (Brooks 1991a]. Уровни реализуют функции AVOID (избегать), WANDER (перемещаться), EXPLORE (исследовать)
На рис. 6.26 представлено подмножество функций трехслойной архитектуры, реализованной в одном из первых роботов [Brooks, 1991a]. Робот был оснащен кольцом из двенадцати сонарных датчиков. Каждую секунду эти датчики давали двенадцать радиальных измерений расстояния до препятствия. На самом низком уровне категориальной архитектуры реализуется функция AVOID (избежать), которая предотвращает столкновение робота с объектами, вне зависимости от того, являются они статическими или движущимися. Автомат с меткой, помеченный sonar data (сонарные данные), выдает мгновенную информацию тар, которая передается на автоматы (столкновение) и feedforce (ощущение препятствия), первый из которых способен генерировать сообщение halt (остановиться) для автомата, отвечающего за перемещение робота вперед. При активизации автомата feedforce он способен генерировать инструкции runaway (уйти прочь) или avoid (обойти), чтобы избежать опасности.
Эта сеть конечных автоматов самого низкого уровня генерирует инструкции halt (остановиться) и avoid (обойти) для всей системы. Следующий слой WANDER (перемещение) определяет способ перемещения системы, генерируя для робота случайное направление каждые 10 секунд. Автомат (нижний уровень) получает направление heading от автомата WANDER и связывает его с результатами работы уровня AVOID. Автомат WANDER использует этот результат для подавления поведения более низкого уровня, заставляя робота двигаться в направлении, близком к заданному, и в то же время избегать столкновения со всеми препятствиями. И, наконец, активизируясь, автоматы turn (повернуть) и forward (прямо) (на верхнем уровне архитектуры) будут подавлять любые новые импульсы, присланные от автомата WANDER.
Верхний уровень EXPLORE (исследовать) позволяет изучить окружение робота. При этом он осматривает (look) отдаленные места и достигает их, планируя путь plan. Этот уровень способен подавлять инструкции автомата WANDER и наблюдать за тем, как усилиями нижнего уровня робот огибает препятствия. Он корректирует отклонения и фокусирует робота на достижении цели, сдерживая блуждающее поведение, но разрешает автомату самого низкого уровня уклоняться от препятствий на пути. При реализации отклонений, сгенерированных на более низком уровне, уровень EXPLORE вызывает автомат plan, чтобы вновь сориентировать систему на достижение цели. Основой категориальной архитектуры Брукса является то, что система не требует централизованных символьных рассуждений и генерирует все свои действия без поиска среди возможных следующих состояний. Хотя такой конечный автомат генерирует инструкции для действий исходя из своего текущего состояния, глобально система действует на основе взаимодействия нижних системных уровней.
Представленная трехслойная архитектура взята из раннего проекта Брукса по разработке робота, передвигающегося к цели. В последние годы его исследовательская группа разработала сложные системы с большим количеством уровней [Brooks, 1993], [Brooks и Stein, 1994]. Одна система способна путешествовать по лаборатории роботики Массачусетского технологического института в поисках пустых алюминиевых банок на рабочих столах. В этой системе.реализованы уровни для открытия дверей офисов, поиска рабочих столов и распознавания банок. Другие уровни отвечают за управление рукой робота для сбора этих банок в мусорную корзину.
Брукс утверждает, что поведение верхнего уровня возникает в результате разработки и тестирования отдельных слоев более низкого уровня архитектуры. Четкое окончательное поведение, требующее как внутри-, так и межуровневых связей, формируется в процессе эксперимента. Таким образом, категориальная архитектура успешно реализована в нескольких простых прикладных робототехнических системах [Brooks, 1989], [Brooks, 1991a.
С категориальной архитектурой и другими подходами к проектированию систем управления связано несколько важных проблем (см. также раздел 16.2).
1. Существует проблема достаточности локальной информации на каждом уровне системы. Поскольку на каждом уровне чисто реактивные конечные автоматы принимают решения по локальной информации, т.е. по данным текущего уровня, в процессе принятия решений не учитывается информация с других локальных уровней. По определению такое решение будет недальновидным.
2. Если не существует абсолютного "знания" или "модели" сложного окружения, как можно на основе локальной входной информации об ограниченной ситуации сгенерировать инструкции для выполнения глобально приемлемых действий? Как может верхний уровень согласовывать возможные результаты?
3. Как чисто реактивный компонент с очень ограниченным набором состояний может обучаться в своей среде? Если агент должен быть интеллектуальным, на некотором уровне системы нужна достаточная информация для реализации механизмов обучения.
4. Существует проблема масштабирования. Хотя Брукс и его помощники объявили о реализации категориальных архитектур из шести и даже десяти уровней, необходимо сформулировать принципы дальнейшего масштабирования интересного поведения. Может ли этот подход быть обобщен на очень большие и сложные системы?
Наконец, мы должны задать вопрос: что такое "эмерджентность"? Не мистика ли это? На настоящем этапе развития науки эмерджентность относится к явлениям, с которыми мы можем только считаться. Нам поставили задачу разработать систему, обладающую интеллектом, и испытать ее. К сожалению, без дальнейшей разработки этой инструкции эмерджентность остается только словом, описывающим то, что мы еще не можем понять. В результате очень трудно определить, как можно использовать эту технологию для дальнейшего построения более сложных систем. В следующем разделе мы опишем гибридную архитектуру Copycat, позволяющую открывать инварианты в проблемной области исследовательским путем.
Brooks R. A. A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation. 4: 14-23,1986.
Brooks R. A. A hardware retargetable distributed layered architecture for mobile robot control. Proceedings ШЕЕ Robotics and Automation, pp. 106-110. Raliegh, NC, 1987.
Brooks R. A. A robot that walks: Emergent behaviors from a carefully evolved network. Neural Computation 1(2): 253-262,1989.
Brooks R. A. Intelligence without reason. Proceedings of IJCA1-91, pp. 569-595. San Mateo, CA: Morgan Kaufmann, 1991a.
Brooks R. A. Challenges for complete creature architectures. In Meyer and Wilson, 1991.
Brooks R. and Stein L. Building brains for bodies. Autonomous Robots, 1: 7-25, 1994.