В применении к строкам битов (например, созданным случайным образом запрограммированным квантовым компьютером) термодинамическая глубина оказывается еще ближе к логической глубине. Самый вероятный путь создания строки битов – посредством самой короткой программы. Поэтому термодинамическая глубина строки битов есть объем пространства памяти, использованный квантовым компьютером для создания этой строки; иначе говоря, термодинамическая глубина – это пространственная вычислительная сложность самой короткой программы.
В вычислительной Вселенной, где каждая физическая система действительно соответствует строке квантовых битов, а ее поведение запрограммированно случайными квантовыми флуктуациями, термодинамическая глубина и логическая глубина – взаимодополняющие и тесно связанные между собой величины. Чтобы до конца понять аналогию между термодинамической и логической глубиной, нужно найти физический аналог элементарной логической операции. В предыдущей главе мы как раз описали такой аналог: такая операция выполняется каждый раз, когда колеблется квантовая волна. Чтобы найти физический аналог числа операций, необходимых для создания строки битов, достаточно подсчитать число колебаний, которые потребовались для создания физической системы.
Из предыдущей главы мы помним, что это число колебаний пропорционально тому, что в физике называют действием физической системы. Действие – это число колебаний, умноженное на постоянную Планка. Действие, деленное на постоянную Планка, – хороший физический аналог числа элементарных операций, то есть вычислительной сложности. Чтобы оценить, как сложно было создать данную физическую систему, достаточно рассмотреть действие, которое потребовалось для ее создания. («Действие находится там, где происходит действие».)
Выводы предыдущей главы позволяют нам оценить логическую и термодинамическую глубину Вселенной в целом, а значит, найти верхнюю границу глубины всего, что она содержит. Общая сумма вычислительных усилий, потребовавшихся для создания Вселенной, составляет 10122 операций (логическая глубина), выполненных с 1092 битами (термодинамическая глубина).
Логическая и термодинамическая глубина – не единственные меры, позволяющие оценить численно те или иные аспекты сложности. В зависимости от того, какую черту сложной системы мы хотим описать, есть и другие меры, которые не менее или даже более полезны. Одна из них – величина, получившая название «эффективная сложность». Она измеряет степень регулярности системы; это определение сложности первоначально предложил Мюррей Гелл-Манн. В последние десять лет мы с Гелл-Манном пытаемся найти математически точное выражение для идеи эффективной сложности.
Эффективная сложность – простая и изящная мера сложности. С каждой физической системой связано определенное количество информации – количество, необходимое для описания физического состояния системы с той точностью, которую допускает квантовая механика. Основной способ измерить эффективную сложность чего-либо – разделить это количество информации на две части: информация, которая описывает регулярные аспекты данного объекта, и информация, которая описывает его случайные аспекты. Количество информации, необходимой для описания регулярности системы, и будет ее эффективной сложностью.
В технической системе – пусть это будет самолет – эффективная сложность по сути равна объему чертежей системы: это количество информации, необходимой для ее сборки. Например, чертежи самолета определяют форму его крыла, а также химический состав и процедуру производства сплава, из которого оно сделано. Форма крыла и состав сплава – это аспекты регулярности проекта; биты, которые определяют эти черты, должны иметь определенные значения, иначе самолет просто не взлетит. Эти биты включаются в эффективную сложность самолета. Но чертежи не определяют положения каждого атома крыльев. Биты, определяющие, где находится каждый атом в тот или иной момент времени, являются случайными; они не влияют на летные характеристики самолета и не являются индикатором его сложности.
Как показывает пример с самолетом, сложность – ключевой вопрос в инженерном деле. Как удается проектировать сложные системы, обладающие стабильным поведением? Принцип, который мы преподаем студентам инженерного факультета в Массачусетском технологическом институте, выражен известной аббревиатурой KISS: Keep It Simple, Stupid! (то есть чем проще – тем лучше). Но что, если система, которую вы проектируете, сама по себе сложна, например если это самолет? В Массачусетском технологическом институте есть кафедра проектирования систем, где инженеры, представители естественных и социальных наук вместе находят и решают проблемы сложных технических систем.
Один многообещающий метод проектирования сложных систем называют аксиоматическим проектированием. Этот подход предложил Нам Сух, бывший глава кафедры машиностроения Массачусетского технологического института. Идея аксиоматического проектирования состоит в том, чтобы свести к минимуму информационное содержание проектируемой технической системы, сохранив ее способность выполнять функциональные требования. При правильном применении аксиоматическое проектирование позволяет создавать самолеты, компьютерные программы и тостеры, достаточно сложные (но не более) для того, чтобы выполнять их проектные функции. Аксиоматическое проектирование сводит к минимуму эффективную сложность проектируемой системы, при этом сохраняя ее функциональность. В общем, чем проще – тем лучше, но не нужно слишком упрощать.
Определение эффективной сложности физической системы, очевидно, требует суждения о том, что можно считать регулярностью, а что нет. Иначе говоря, нужно задать критерии того, какие биты можно считать «важными» и ответственными за регулярность, а какие – «неважными», то есть битами случайности.
В технической системе важные биты – те, которые должны иметь определенные значения, иначе система не сможет делать то, что она должна делать. В эволюционирующих системах, таких как бактерии, менее очевидно, какие биты важны, а какие – нет. Здесь простой критерий, позволяющий выяснить, важен ли бит и вносит ли он свой вклад в эффективную сложность, может быть таков: изменить значение бита и посмотреть, что будет. Если инверсия бита даст заметный эффект, то он важен, а если не даст заметного эффекта, то он не важен. Если бит влияет на способность бактерии выживать и размножаться, то этот бит увеличивает эффективную сложность бактерии. Важные биты бактерии – те, которые существенно влияют на ее будущее.
Точно так же можно измерить эффективную сложность любой системы, способной к целенаправленному поведению. Любой бит, влияющий на способность системы достигать ее целей, увеличивает эффективную сложность этой системы.
Конечно, определение целенаправленного поведения до некоторой степени субъективно. Но предположим, что мы сосредоточимся на поведении, позволяющем системе, во-первых, получать энергию и, во-вторых, использовать эту энергию для создания копий самой себя. Живые системы посвящают большую часть своего времени питанию и воспроизведению. Какое определение жизни ни взять, любая система, способная выполнять два этих действия, прошла большой путь к тому, чтобы считаться живой. Как только мы признали целенаправленным поведение, увеличивающее способность системы получить энергию и использовать ее для воспроизводства, у нас появляется возможность измерить эффективную сложность всех живых систем и всех систем, которые когда-нибудь смогут стать живыми. Как мы увидим, системы, обладающие эффективной сложностью, которые получают энергию и воспроизводят себя, естественным образом возникают из лежащих в основе вычислительных процессов Вселенной.
Теперь, когда мы формально определили сложность, можно показать, что Вселенная с необходимостью ее создает. Законы физики универсальны в вычислительном отношении и потому позволяют Вселенной содержать и системы с логической глубиной, и системы с высокой эффективной сложностью. Но мы можем также показать, что Вселенная должна содержать такие сложные системы. Давайте вспомним в деталях первую революцию в сфере обработки информации – создание самой Вселенной.
Измеряя сложность Вселенной, мы будем следовать текущей стандартной космологической модели. Согласно этой модели, во Вселенной недостаточно материи для того, чтобы замедлить, а затем обратить ее расширение, заставив ее схлопнуться и исчезнуть в процессе Большого сжатия. Это значит, что Вселенная всегда будет расширяться. Такая Вселенная пространственно бесконечна, в том числе и в самом начале. Но нас интересуют вычисления, которые выполняет Вселенная, то есть каузально связанная часть Вселенной, ее часть в пределах горизонта, состоящая из битов, которые могут «говорить» друг с другом. В тех случаях, когда не указано явно, что речь идет о событиях за горизонтом, мы будем следовать обычной практике и относить термин Вселенная к той ее части, которая находится в пределах горизонта.