И биологическим, и техническим сложным системам свойственна высокоорганизованная архитектура, то есть компоненты этих систем расположены особым образом, что делает систему функциональной и/или устойчивой. Простой пример – ткань годится для изготовления одежды благодаря высокому уровню организации хлопковых волокон[7]. Она устойчива к нагрузкам, которым подвергается одежда, – истиранию и разрыву. И наоборот, в бумаге те же самые волокна ориентированы хаотично, поэтому бумага не выдерживает таких же нагрузок. Поскольку сложные системы с высоким уровнем организации имеют схожую архитектуру, можно ожидать, что и требования к ним предъявляют примерно одинаковые. Их устройство должно обеспечивать «эффективность, гибкость, способность к развитию и устойчивость»[8].
Если условиться, что животные, большие и маленькие, устроены примерно так же, как «БМВ» или небольшой грузовик, будет проще представить себе естественные процессы, протекающие в биологических тканях. Как утверждают Дойл и его коллега Дэвид Олдерсон, неслучайно высокоорганизованные системы столь сложны. Эта сложность обусловлена стратегиями конструкции – неважно, созданными искусственно или в ходе эволюции, – которые обеспечивают устойчивость, или, по Дарвину, приспособляемость.
Дойл и Олдерсон предлагают следующее определение устойчивости: "[Свойство] [системы] устойчиво, если оно [инвариантно] по отношению к [комплексу возмущающих факторов]"[9], а квадратные скобки означают, что все эти термины нуждаются в пояснении. В качестве иллюстрации возьмем доступную пониманию сложную систему – одежду. Допустим, вы собираетесь в путешествие с целью полюбоваться северным сиянием. Вам предстоит отправиться зимой на Север, и вы не хотите замерзнуть. Вероятно, вы обеспечите устойчивость в зимнем туре, выбрав пуховый [свойство] костюм [система], который согреет вас при низкой температуре. Но если польет дождь [возмущающий фактор, не предусмотренный техническими условиями] и ваша куртка промокнет, пух перестанет греть. Несмотря на инвариантность (до известной степени) пухового наполнителя по отношению к низким температурам, он не является инвариантным по отношению к воде, то есть при одних условиях он надежен (устойчив), при других нет (хрупок). Если же вы поставите условие «выглядеть изящно» [свойство], а [возмущающим фактором] будет внешняя грузность, все кончится тем, что вы будете красиво смотреться под снегопадом в элегантном костюме (устойчивом к грузности), не инвариантном по отношению к такому возмущающему фактору, как сильный мороз[10].
Любое свойство, которое делает систему более устойчивой, защищает ее от каких-либо внутренних и внешних рисков. Вместе с тем каждый шаг к устойчивости усложняет систему. К сожалению, ни одно добавленное свойство не будет устойчивым по отношению к любым неожиданностям. Вместе с каждым новым свойством система получает еще одно слабое звено, свойство уязвимости перед новыми непредвиденными обстоятельствами. Значит, как только это выясняется, приходится добавлять другое свойство, компенсирующее вновь возникшую хрупкость. Но вместе с очередным свойством придет и очередное слабое звено, и тогда вновь придется искать защиту. Каждый защитный фактор повышает уровень сложности, что требует дальнейшего его повышения.
Компромиссы между свойствами (характерными признаками) системы всегда приводят к тому, что она проявляет устойчивость по отношению к одним факторам и хрупкость по отношению к другим. Высокоразвитая сложная система отличается устойчивостью и хрупкостью одновременно. Картина устойчивости, неразрывно связанной с хрупкостью, наблюдается повсеместно. Один из моих любимых примеров в биологии взят из исследований развития мозга.
Очевидно, что в нормальной работе мозга важную роль играют нейронные связи. Чтобы его в конце концов скоординированная деятельность привела к поведенческому акту, нейроны одной части должны установить контакт с другой частью мозга. Эволюция, видимо, позаботилась об этом, обеспечив большое перепроизводство нейронов в процессе развития. Структура А посылает структуре В не ровно столько нейронов, сколько требуется, а гораздо больше – для надежности. Природа нашла способ избавиться от лишних нейронов – ввела процесс, получивший название «прунинга» («обрезка»). Когда окружающая среда вносит соответствующий вклад, ненужные нейроны отмирают, и к окончанию периода развития между двумя структурами остается приемлемое число связей. Но, само собой разумеется, появляются и слабые места. Зачастую обрезается больше, чем требуется. В самом деле: некоторые факты доказывают, что в процессе прунинга ошибки развития приводят к аутизму[11] и шизофрении[12]. Сплошь и рядом наблюдается сочетание устойчивости с хрупкостью, и эта концепция лежит в основе понимания организации мозга.
Согласно теории Дойла, большинство биологических систем, очевидно, имеет «многоуровневую архитектуру». Следовательно, в основе любых попыток постичь феномен сознательного опыта должно лежать ясное представление о принципах многоуровневой организации мозга. Возможно, немало исследователей, готовых использовать когнитивные модели, поначалу не видело разницы между «стадиями» и «уровнями». Стадийность подразумевает последовательный процесс (как и, к примеру, в электротехнике), в то время как при многоуровневой архитектуре все процессы выполняются одновременно («параллельно»). При последовательной схеме информация обрабатывается на каждом этапе по очереди, словно в эстафете. Сначала надо закончить один этап, и лишь потом может начаться следующий. При многослойной схеме, наоборот, все игроки стартуют одновременно и разбегаются в разные стороны. Столь большими различиями в архитектуре обусловлены совершенно иные особенности системы.
Многослойная архитектура – основная стратегия построения системы с гарантией устойчивости и функциональности организованных систем, как биологических, так и искусственно созданных. Это простая, необходимая, мощная и в высшей степени выгодная структура. Так, и технические системы вроде «Боинга-777», и биологические вроде нашего мозга организованы настолько грамотно, что пользователи даже не догадываются о том, какие мудреные свойства в них скрыты[13]. Мы просто садимся в самолет, застегиваем ремни и открываем книгу или заказываем напиток. Мы не думаем ни о 150 000 модулей подсистем самолета, ни о том, что в них происходит. Да и пилоты о них не вспоминают. Мы вообще не знаем о существовании этих 150 000 модулей подсистем. А если вы пропустили предыдущую главу, то, возможно, ничего не знаете и про сами модули. Вот и о мозге мало кто вспоминает, пока он работает исправно. Сложность его многослойной структуры так хорошо замаскирована, что даже по прошествии двух с половиной тысяч лет мы все еще пытаемся ее разглядеть. Сложность устройства нашего мозга, как и «Боинга-777», спрятана в архитектуре системы. Так что же это за архитектура такая – многослойная?
Задача инженера – спроектировать и построить некий объект, работающий рационально, эффективно и надежно. Даже перголу[10] над площадкой в своем саду не так-то просто соорудить – что уж говорить о Сиднейском оперном театре. Чтобы все части постройки функционировали рационально, эффективно и надежно, надо не только увязать друг с другом детали проекта, но и добиться слаженной работы инженеров. Один человек не в силах разработать все этапы. Но вместе с тем, если для организации проектных работ выбрана неверная стратегия, «бригадный метод» может привести к весьма плачевным результатам.
Фактически команда проектировщиков сложных систем и сама является сложной системой, организованной по тому же принципу. Давайте рассмотрим разные стратегии проектирования авиалайнера и системы управления им. По одной из них каждый инженер, занятый своей частью проекта, должен понимать, что делают все остальные его коллеги. Затем, когда будут готовы проекты отдельных блоков, надо установить взаимосвязи между всеми компонентами, чтобы они работали правильно, – то есть все должно быть интегрировано последовательно. Иными словами, проектировщику кресла надо знать все о двигателях, подъемной силе и тяге, стеклах иллюминаторов, герметизации и так далее, и учитывать все это при разработке функций кресла. Помимо того, что на создание проекта уйдет больше времени и денег при участии большого штата специалистов, обладающих квалификацией в разных областях, еще и возрастает риск ошибок: ведь не отклоняющееся назад кресло не просто неудобное – из-за него самолет может спикировать носом вниз.
Независимое конструирование компонентов (слоев или модулей) с независимыми функциями – более выгодная стратегия. Разработчики используют только «минимально необходимую» информацию. Все остальное проходит мимо них. В технике такой подход известен как абстрагирование – отсечение ненужных подробностей (чем выше уровень абстрагирования, тем меньше мелких подробностей). Понятие «слоев абстрагирования» связано с той информацией, которая вам известна или не известна. Слои абстрагирования не всегда связаны с иерархической структурой и даже с принципиально отличающимися компонентами. Атлас мира содержит множество слоев абстрагирования, хотя каждый из них выражен в одном и том же виде. На первой странице показана карта мира. Вы видите океаны, континенты и, возможно, названия крупнейших рек и горных массивов. Но на ней отсутствует львиная доля сведений – не показаны страны, города, дороги, малые реки и горы. Перелистнув страницу, вы попадете в следующий слой абстрагирования: на континентах будут уже страны, их столицы, реки и горы. Листайте дальше, и вы найдете более подробную карту одной страны с ее основными магистралями и менее важными городами. В каждом слое абстрагирования вам открывается все больше и больше деталей и все меньше информации остается неизвестной. Впрочем, знать множество подробностей не всегда полезно: если вы просто хотите сравнить океаны по величине, для вас не важно, что между провинцией Руссильон и коммуной Фонтан-де-Воклюз есть пешеходная тропа.