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