Книга: Программируя Вселенную. Квантовый компьютер и будущее науки

Эффективная сложность

Эффективная сложность

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

Эффективная сложность – простая и изящная мера сложности. С каждой физической системой связано определенное количество информации – количество, необходимое для описания физического состояния системы с той точностью, которую допускает квантовая механика. Основной способ измерить эффективную сложность чего-либо – разделить это количество информации на две части: информация, которая описывает регулярные аспекты данного объекта, и информация, которая описывает его случайные аспекты. Количество информации, необходимой для описания регулярности системы, и будет ее эффективной сложностью.

В технической системе – пусть это будет самолет – эффективная сложность по сути равна объему чертежей системы: это количество информации, необходимой для ее сборки. Например, чертежи самолета определяют форму его крыла, а также химический состав и процедуру производства сплава, из которого оно сделано. Форма крыла и состав сплава – это аспекты регулярности проекта; биты, которые определяют эти черты, должны иметь определенные значения, иначе самолет просто не взлетит. Эти биты включаются в эффективную сложность самолета. Но чертежи не определяют положения каждого атома крыльев. Биты, определяющие, где находится каждый атом в тот или иной момент времени, являются случайными; они не влияют на летные характеристики самолета и не являются индикатором его сложности.

Как показывает пример с самолетом, сложность – ключевой вопрос в инженерном деле. Как удается проектировать сложные системы, обладающие стабильным поведением? Принцип, который мы преподаем студентам инженерного факультета в Массачусетском технологическом институте, выражен известной аббревиатурой KISS: Keep It Simple, Stupid! (то есть чем проще – тем лучше). Но что, если система, которую вы проектируете, сама по себе сложна, например если это самолет? В Массачусетском технологическом институте есть кафедра проектирования систем, где инженеры, представители естественных и социальных наук вместе находят и решают проблемы сложных технических систем.

Один многообещающий метод проектирования сложных систем называют аксиоматическим проектированием. Этот подход предложил Нам Сух, бывший глава кафедры машиностроения Массачусетского технологического института. Идея аксиоматического проектирования состоит в том, чтобы свести к минимуму информационное содержание проектируемой технической системы, сохранив ее способность выполнять функциональные требования. При правильном применении аксиоматическое проектирование позволяет создавать самолеты, компьютерные программы и тостеры, достаточно сложные (но не более) для того, чтобы выполнять их проектные функции. Аксиоматическое проектирование сводит к минимуму эффективную сложность проектируемой системы, при этом сохраняя ее функциональность. В общем, чем проще – тем лучше, но не нужно слишком упрощать.

Определение эффективной сложности физической системы, очевидно, требует суждения о том, что можно считать регулярностью, а что нет. Иначе говоря, нужно задать критерии того, какие биты можно считать «важными» и ответственными за регулярность, а какие – «неважными», то есть битами случайности.

В технической системе важные биты – те, которые должны иметь определенные значения, иначе система не сможет делать то, что она должна делать. В эволюционирующих системах, таких как бактерии, менее очевидно, какие биты важны, а какие – нет. Здесь простой критерий, позволяющий выяснить, важен ли бит и вносит ли он свой вклад в эффективную сложность, может быть таков: изменить значение бита и посмотреть, что будет. Если инверсия бита даст заметный эффект, то он важен, а если не даст заметного эффекта, то он не важен. Если бит влияет на способность бактерии выживать и размножаться, то этот бит увеличивает эффективную сложность бактерии. Важные биты бактерии – те, которые существенно влияют на ее будущее.

Точно так же можно измерить эффективную сложность любой системы, способной к целенаправленному поведению. Любой бит, влияющий на способность системы достигать ее целей, увеличивает эффективную сложность этой системы.

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

Оглавление книги


Генерация: 0.227. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз