Выбрать главу

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

Каким агентам поручить контроль за теми, кто выполняет фактическую работу? Кто будет определять, какую работу необходимо выполнить? Кто станет устанавливать затраты времени и сил? Как будут разрешаться конфликты?

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

Поскольку способности наших крохотных ментальных агентов сильно ограничены, не нужно стараться и далее уподоблять их взаимоотношения отношениям человека- руководителя и подчиненных ему работников. Кроме того, как мы вскоре увидим, отношения между ментальными агентами отнюдь не всегда являются строго иерархическими. В любом случае, роли агентов неизбежно относительны. Для Строителя оператор «Добавить» будет «подчиненным», но для оператора «Найти» будет «боссом» уже оператор «Добавить». Что касается людей, тут все зависит от образа жизни. Какие мысли беспокоят вас сильнее – приказы, которые приходится принимать, или те, которые приходится отдавать?

3.4. Гетерархии

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

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

Рис. 8

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

Большинство схем в начальных главах настоящей книги иллюстрируют простые иерархии. Позже мы столкнемся со сложными петлями и кольцами, особенно это касается раздела, посвященного памяти, потребности в которой уделено немало внимания (что диктуется предметом исследования). Люди часто склонны воспринимать память как способ сохранения прошлого, как воспоминания о том, что произошло ранее. Но у агентов и операторов также присутствует потребность в иных видах памяти. Оператору «Видеть», к примеру, требуется некий объем кратковременной памяти, чтобы отслеживать последующие действия, если новая работа начинается до завершения предыдущего задания. Если каждый из субагентов оператора «Видеть» способен выполнять всего одну функцию в конкретный промежуток времени, очень скоро ресурсы оператора иссякнут и он не сможет справляться со сложными задачами. Но если у нас памяти достаточно, мы можем объединить наших субагентов в циклические петли и благодаря этому обращаться к одному и тому же субагенту снова и снова, чтобы выполнять этапы нескольких различных работ одновременно.