Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Алгоритмическая вероятность
Рэй Соломонофф первоначально определил алгоритмическую информацию в процессе поиска формальной математической теории бритвы Оккама. Средневекового философа Уильяма Оккама интересовала возможность найти самое простое объяснение наблюдаемых явлений. «Pluralitas non est ponenda sin necessitate», – объявил он («Не следует множить сущности без необходимости»). Оккам призывал искать и принимать простые объяснения явлений, отклоняя сложные. Он, безусловно, посмеялся бы над теми, кто пытался объяснить наличие регулярных линий на поверхности Марса существованием марсиан. Эти линии можно было объяснить геологическими разломами или оптической иллюзией, что не требует присутствия марсиан. Привлекать марсиан для того, чтобы объяснить линии на Марсе, это и есть «умножение сущности без необходимости», или, проще говоря, попытка сделать вещи сложнее, чем они есть. Бритва Оккама «отрезает» сложные объяснения, указывая, что простые априорно более вероятны. Соломонофф использовал идею алгоритмического информационного содержания для того, чтобы придать принципу бритвы Оккама математическую точность. Предположим, у нас есть некий ряд данных, выраженный в строке битов. Мы ищем механизмы, которые, вероятно, могли бы произвести эту строку битов. На языке вычислений мы ищем такие компьютерные программы, которые могли бы выдать эту строку битов в качестве выходных данных. Среди таких программ, утверждал Соломонофф, самая короткая программа является по природе своей наиболее разумным кандидатом для получения нашей строки. Но в какой степени она лучше других? В 1970-х гг. Грегори Хайтин и его коллега Чарльз Беннетт из IBM рассмотрели алгоритмическую информацию с точки зрения печатающих обезьян. Предположим, обезьяна набирает на клавиатуре случайные строки битов и вводит их в компьютер. Компьютер интерпретирует эти строки как программы, написанные на подходящем языке, скажем на Java. Какова вероятность того, что компьютер выдаст первый миллион цифр числа p? Такая же, как и вероятность того, что случайные строки, введенные в компьютер обезьяной, воспроизведут программу на Java, позволяющую вычислить первый миллион цифр числа p. Вероятность того, что обезьяна правильно напечатает первый бит такой программы, разумеется, составляет 0, 5, или 1/2. Вероятность того, что она правильно напечатает два первых бита, составляет 0, 25, или 1/4. Вероятность того, что правильно будут напечатаны первые 1000 битов, есть 1/2, умноженная на себя 1000 раз, или 1/21000. Это очень малое число. Очевидно, чем длиннее программа, тем менее вероятно, что обезьяна правильно введет ее в компьютер. Вероятность того, что случайная программа, которую обезьяна вводит в компьютер, выдаст первый миллион цифр числа p, называют «алгоритмической вероятностью» числа p. Поскольку вероятность случайно правильно набрать длинную программу многократно меньше, чем вероятность правильно набрать короткую, алгоритмическая вероятность максимальна для самых коротких программ. Самая короткая программа, которая может дать на выходе то или иное число, является самым вероятным объяснением того, как это число было создано. Если взглянуть на это под другим углом, то числа, создаваемые короткими программами, с большей вероятностью окажутся выходом обезьяньего компьютера, чем числа, которые могут быть произведены лишь с помощью длинных программ. При этом множество красивых и сложных математических образов – правильные геометрические формы, фракталы, законы квантовой механики, элементарные частицы, законы химии – можно задать с помощью коротких компьютерных программ. Хотите верьте, хотите нет, но у обезьяны есть хороший шанс создать все, что мы видим вокруг! Алгоритмически вероятные вещи – это как раз те, которые демонстрируют большую степень регулярности, структуры и порядка. Другими словами, Вселенная обезьяны, печатающей на пишущей машинке, бессмысленна, а Вселенная обезьяны, сидящей за компьютером, содержит, помимо большого количества бессмыслицы, некоторые интересные черты. Большие фрагменты Вселенной обезьяны-программистки состоят из структур, которые можно создать на основании простых математических формул и коротких компьютерных программ. Если обезьяны вводят текст в компьютеры, а не печатают его на пишущих машинках, они создают Вселенную, где смешаны порядок и хаос, где сложные системы сами собой возникают из простых первоэлементов – то есть они создают Вселенную, подозрительно похожую на нашу. Простые программы вместе с обширной обработкой информации создают сложные выходные данные. Может ли это объяснить сложность нашей Вселенной? Что нужно делать, чтобы это объяснение было проверяемым? [55] Чтобы вычислительное объяснение сложности работало, нужны два ингредиента: компьютер и обезьяны. Компьютер существует благодаря законам квантовой механики. Но где обезьяны? Какой физический механизм вводит информацию в нашу Вселенную, программируя ее с помощью строки случайных битов? Здесь нам тоже не нужно искать что-либо, кроме законов квантовой механики, которые постоянно вбрасывают новую информацию во Вселенную в виде квантовых флуктуаций. В ранней Вселенной, например, галактики формировались вокруг «зародышей» – мест, где плотность материи была чуточку выше, чем в других местах. Эти «зародыши» галактик возникли в результате квантовых флуктуаций: средняя плотность материи повсюду была одинаковой, но квантовая механика добавила случайные флуктуации, благодаря которым и начали формироваться галактики. Квантовые флуктуации вездесущи и имеют тенденцию возникать в тех точках, где Вселенная наиболее чувствительна. Например, возьмем биологию. Мы получаем свою ДНК от отца и матери, но наша индивидуальная последовательность ДНК возникает в процессе рекомбинации, после того как сперма входит в яйцеклетку и вносит в нее свой генетический материал[56]. То, какие гены матери объединятся с какими генами отца, существенным образом зависит от химических и тепловых флуктуаций во время процесса рекомбинации, а эти химические и тепловые флуктуации имеют в своей основе квантовую механику. Квантовые события – и ничто иное – запрограммировали вашу ДНК так, что она отличается от ДНК ваших братьев и сестер. Вы и я, а также различия между нами произошли из квантовых событий. И так же из квантовых «зародышей» возникла сама Вселенная. Квантовые флуктуации – это и есть обезьяны, программирующие Вселенную. Случайность возникает в вычислительной Вселенной из-за того, что начальное состояние Вселенной – это суперпозиция различных состояний программы, каждое из которых отправляет Вселенную по тому или иному пути вычислений, причем некоторые из этих путей приводят к сложному и интересному поведению. Квантово-вычислительная Вселенная следует всеми этими путями одновременно, квантово-параллельно, и эти пути соответствуют декогерентным историям, описанным выше. Так как истории вычислений декогерентны, мы можем обсуждать их за обедом; лишь одна (или другая) из этих историй произошла на самом деле. Одна из этих декогерентных историй соответствует Вселенной, которую мы видим вокруг.
Что такое сложность?
Вычислительная Вселенная спонтанно дает начало всем возможным формам вычисляемого поведения; все действия, которые можно запрограммировать, она программирует. Отчасти это поведение упорядоченное, отчасти случайное; иногда оно простое, иногда сложное. Но что такое сложность? Я писал диссертацию по физике в Университете Рокфеллера, и однажды меня чуть не отчислили. Я поступил в Университет Рокфеллера потому, что он славится тем, что здесь поддерживают независимые исследования. Я сдал квалификационные экзамены и начал работу, связанную с ролью информации в квантово-механических системах и с тем, какое отношение квантовая обработка информации может иметь к фундаментальным процессам в физике, в том числе к квантовой гравитации. Иначе говоря, я занимался тем же самым, чем занимаюсь и сейчас, почти двадцать лет спустя. Научного руководителя у меня не было. И вот однажды (дело было в 1986 г.) в мой кабинет зашли два профессора и Хайнц Пэджелс, исполнительный директор Нью-Йоркской академии наук. «Ллойд, – сказали они, – вам следует прекратить работать над этой бредятиной и заняться темой, которую мы могли бы понять. В противном случае вам придется оставить Университет Рокфеллера». Это заявление стало для меня полной неожиданностью. Я знал, что мои исследования выходят за рамки обычных тем кафедры. Почти все другие аспиранты работали над теорией струн – это очень абстрактная теория, которая вводит множество невидимых измерений в попытке согласовать квантовую теорию с общей теорией относительности и тем самым объяснить всю известную фундаментальную физику. Хоть убей, я не понимал, почему мои исследования более безумны, чем теория струн. Но над теорией струн тогда работало много людей, а квантовой информацией в то время почти никто не занимался. Позже я познакомился с теми, кто это делал, и стал с ними сотрудничать, но тогда я даже не знал их имен. Немедленным результатом визита было то, что я сдался и согласился посвятить следующие несколько месяцев решению двух традиционных проблем квантовой теории поля. Но самым лучшим следствием угрозы вылететь из аспирантуры было то, что я стал сотрудничать с Хайнцем Пэджелсом. Хайнц был большой оригинал. Он носил двубортные костюмы в тонкую полоску и дорогую лакированную обувь. С зачесанными назад седыми волосами и в ботинках а-ля мафиози он напоминал Джона Готти, только более стройного. В физике он тоже был большим оригиналом… и вот он решил поруководить мною. Через четыре месяца я разделался с обеими проблемами, которыми мне поручили заниматься «для порядка». Через восемь месяцев я убедил Хайнца, что рассмотреть испарение черных дыр с точки зрения квантовой обработки информации – не такая уж плохая идея. Через год он уже брал меня с собой в Ист-Виллидж, где мы встречались с его еще более эксцентричными друзьями – большинство из них были актерами. Он также представил меня своей жене, Элейн, автору «Гностических Евангелий» (Gnostic Gospels), книги, полностью изменившей мои взгляды на социальную природу религии. Возможно, мне все еще светило ремесло таксиста, как и очень многим другим безработным физикам со степенью, но теперь мне было хотя бы не скучно. Поворотный пункт наших интеллектуальных отношений наступил в тот день, когда Хайнц зашел в мой кабинет и сказал: – Ладно, Сет, но как мы будем измерять сложность? – Так мы не можем этого сделать! – ответил я. – Вещи становятся сложными как раз тогда, когда числом это измерить невозможно. – Ерунда, – сказал Хайнц, – давай попробуем. Спросить, как измерить сложность, – все равно что спросить, как измерить физику. Законы физики предлагают множество измеримых величин – энергия, расстояние, температура, давление, электрический заряд, но сама «физика» измеримой величиной не является. Точно так же, выявляя законы сложности, мы должны ожидать увидеть множество измеримых величин, составляющих сложную систему. Я несколько месяцев читал о разных методах определения сложности. Первой концепцией, на которую я обратил внимание, была вычислительная сложность. Вычислительная сложность равна числу элементарных логических операций, которые нужно выполнить в ходе вычисления. (Связанная с ней концепция, пространственная вычислительная сложность, равна числу битов, используемых в ходе вычисления.) Вычислительная сложность – не столько мера сложности, сколько мера усилий, или ресурсов, необходимых для выполнения данной задачи. Есть множество вычислений, занимающих много времени и расходующих много места, но они не производят ничего сложного. Как мы увидим, вычислительная сложность – важный ингредиент хорошего определения сложности, но сама по себе она не является хорошим определением. В качестве меры сложности была также предложена алгоритмическая информация – кстати, Хайтин сначала назвал ее «алгоритмической сложностью». Но строки битов строки с высоким содержанием алгоритмической информации не выглядят сложными, они выглядят случайными; и действительно, алгоритмическую информацию также называют алгоритмической случайностью. Кроме того, строки битов с высоким содержанием алгоритмической информации легко создать: достаточно всего 100 раз подбросить монетку. Получившаяся строка битов, вероятно, будет иметь близкое к максимально возможному содержание алгоритмической информации. Мы с Хайнцем считали, что сложные вещи должны быть замысловатыми, структурированными и трудновоспроизводимыми. Для описания вещей с высоким содержанием алгоритмической информации может требоваться много битов, но почти все строки битов с высоким содержанием алгоритмической информации неструктурированны, и их легко создать. Я продолжал читать, находя все больше определений сложности, но все они были вариациями на тему необходимых усилий или количества информации. Несколько лет спустя я сделал доклад об этих различных мерах сложности на конференции в Институте Санта-Фе, основанном в середине 1980-х Джорджем Коуэном, Мюрреем Гелл-Манном и группой старших научных сотрудников из соседнего Лос-Аламоса, которых интересовало изучение правил, дающих начало сложным системам и лежащих в их основе. Этот доклад назывался «Тридцать одна мера сложности» (Thirty-one Measures of Complexity), причем «тридцать один» было хорошо известным намеком на количество сортов мороженого Baskin-Robbins. Хотя я не опубликовал доклад под этим названием, молва о нем распространилась в Интернете, и в течение многих лет доклад о 31 способе измерения сложности был моей самой часто запрашиваемой работой, несмотря на то что ее просто не существовало. (Несколько лет назад я, наконец, опубликовал этот список в виде статьи[57], просто для того, чтобы больше не отвечать на электронные письма, в которых меня просили выслать эту несуществующую статью.) Кстати говоря, за время от прочтения доклада до публикации статьи количество способов измерения сложности выросло с тридцати одного до сорока двух. (Длина нового списка побудила писателя Джона Хоргана в книге «Конец науки» (The End of Science) утверждать, что наука о сложных системах оказалась несостоятельной, так как исследователи не смогли договориться даже о том, что такое сложность, уже не говоря о каких-либо серьезных исследованиях в этой области.) В этой статье я поделил меры сложности на четыре категории: во-первых, меры того, насколько сложно что-то описать (такие как алгоритмическая информация); во-вторых, меры того, насколько сложно что-то сделать (такие как вычислительная сложность); в-третьих, меры степени организации в системе; в-четвертых, неколичественные идеи о сложности (такие как самоорганизация или сложные адаптивные системы). Из этих сорока двух самыми интересными я считаю подходы, сочетающие в единой мере сразу три составляющие: насколько сложно что-то описать, насколько сложно что-то сделать и степень организации. О таких мерах мы и будем говорить ниже. Законы физики описывают компромиссы и взаимосвязи между измеримыми величинами, и законы сложности делают то же самое. Особенно полезным является компромисс между информацией и усилиями. Алгоритмическую информацию можно считать мерой содержания информации, а вычислительную сложность – мерой необходимых усилий. Рассмотрим количество усилий, необходимых для создания определенной строки битов – например, первого миллиона цифр числа p. Эти цифры можно получить с относительно небольшим количеством вычислительной сложности (всего несколько миллионов логических операций, что на обычном компьютере займет меньше секунды) с помощью программы длиной из миллиона с лишним знаков, которая говорит: «Напечатать 3, 1415926…» Мы не знаем точной алгоритмической информации в первом миллионе цифр числа p (ведь алгоритмическая информация невычисляема), но можем искать верхнюю границу этой алгоритмической информации, создавая короткие программы, вычисляющие первый миллион цифр числа p. Например, в программе, которая вычисляет эти цифры с помощью математического метода представления в виде цепной дроби, может быть меньше 1000 знаков, но эта компактная программа будет вычислять первый миллион цифр числа p намного дольше, чем самая простая, но очень длинная программа типа «напечатать». Чтобы получить этот миллион цифр, ей потребуется выполнить миллиарды логических операций. В начале 1980-х гг. Чарльз Беннетт предложил простое определение сложности, основанное на компромиссе между информацией и усилиями. Вслед за Соломоноффом, Беннетт признал самым вероятным описанием строки битов или набора данных самую короткую программу, способную их создать. (Если существует несколько программ, почти столь же коротких, как самая короткая, Беннетт также включил и их как приемлемые описания.) Затем Беннетт рассматривал вычислительную сложность этих коротких программ. Он назвал эту величину – усилия, необходимые для получения строки битов из ее самого вероятного описания, – логической глубиной. Из всех мер сложности, которые исследовали мы с Хайнцем, логическая глубина оказалась самой привлекательной. Очевидно простые строки битов, например строка, состоящая из миллиарда единиц, могут быть созданы короткими и быстро выполняемыми программами («напечатать 1 один миллиард раз»), и они будут логически неглубокими. Случайные строки битов (например, 11010101100010… 011 – это строка битов, которую я создал лично, подбрасывая монетку и обозначив «орел» как 1, а «решку» как 0), можно создать с помощью длинных, но быстрых программ («напечатать 11010101100010… 011»), и они тоже логически неглубокие. А вот строку битов, соответствующую первому миллиону цифр числа p, даже посредством самых коротких известных программ придется считать долго, и эти строки логически глубоки. Логически глубокие строки битов обладают большим количеством структуры, и чтобы вычислить эту структуру с помощью самой короткой программы, нужно много времени. Нам с Хайнцем очень нравились идеи Беннетта о сложности. Единственная жалоба Хайнца состояла в том, что эта схема недостаточно физическая. «Логическая глубина» относилась к строкам битов, компьютерным программам и логическим операциям. Хайнц хотел найти меру сложности, которая отсылала бы к физическим системам – энергии и энтропии. Поэтому мы с ним придумали физический аналог логической глубины, который назвали «термодинамической глубиной», чтобы подчеркнуть ее связь с работой Беннетта. Термодинамическая глубина – это свойство не битовых строк, а физических систем. Вместо поиска самого вероятного способа, которым строку битов можно было создать посредством самой короткой программы, мы с Хайнцем рассматривали самый вероятный способ создания физической системы. Наконец, вместо вычислительной сложности – количества логических операций, которые потребовались для создания данной строки битов, мы рассматривали объем физических ресурсов, необходимых для создания данной физической системы, скажем атома или слона. Один особый физический ресурс, который рассматривали мы с Хайнцем, связан с энтропией. Мы помним, что энтропия измеряется в битах. Энтропия состоит из случайных, неизвестных битов. Противоположность энтропии называют «негэнтропией». Негэнтропия состоит из известных, структурированных битов. Негэнтропия системы – мера того, как далеко находится эта система от максимальной возможной энтропии. У живого, дышащего человека много негэнтропии, в противоположность, скажем, атомам гелия при постоянной температуре, у которых ее вообще нет. Можно сказать, что энтропия состоит из случайных, «мусорных» битов, а негэнтропия – из упорядоченных, полезных битов. Так вот, термодинамическая глубина физической системы равна числу полезных битов, которые понадобились для создания этой системы. Будучи законным потомком логической глубины, термодинамическая глубина сохраняет много положительных качеств первой. Простые, регулярные системы, которые легко создать, например кристаллы соли, обычно термодинамически неглубоки. Совершенно неупорядоченные системы, такие как наши атомы гелия, получающие свои свойства в результате случайных процессов, таких как нагревание, также термодинамически неглубоки. Но чтобы создать замысловатые, структурированные системы, например живые системы, требуются огромные инвестиции полезных битов на протяжении нескольких миллиардов лет, и такие системы термодинамически глубоки. В применении к строкам битов (например, созданным случайным образом запрограммированным квантовым компьютером) термодинамическая глубина оказывается еще ближе к логической глубине. Самый вероятный путь создания строки битов – посредством самой короткой программы. Поэтому термодинамическая глубина строки битов есть объем пространства памяти, использованный квантовым компьютером для создания этой строки; иначе говоря, термодинамическая глубина – это пространственная вычислительная сложность самой короткой программы. В вычислительной Вселенной, где каждая физическая система действительно соответствует строке квантовых битов, а ее поведение запрограммированно случайными квантовыми флуктуациями, термодинамическая глубина и логическая глубина – взаимодополняющие и тесно связанные между собой величины. Чтобы до конца понять аналогию между термодинамической и логической глубиной, нужно найти физический аналог элементарной логической операции. В предыдущей главе мы как раз описали такой аналог: такая операция выполняется каждый раз, когда колеблется квантовая волна. Чтобы найти физический аналог числа операций, необходимых для создания строки битов, достаточно подсчитать число колебаний, которые потребовались для создания физической системы. Из предыдущей главы мы помним, что это число колебаний пропорционально тому, что в физике называют действием физической системы. Действие – это число колебаний, умноженное на постоянную Планка. Действие, деленное на постоянную Планка, – хороший физический аналог числа элементарных операций, то есть вычислительной сложности. Чтобы оценить, как сложно было создать данную физическую систему, достаточно рассмотреть действие, которое потребовалось для ее создания. («Действие находится там, где происходит действие».) Выводы предыдущей главы позволяют нам оценить логическую и термодинамическую глубину Вселенной в целом, а значит, найти верхнюю границу глубины всего, что она содержит. Общая сумма вычислительных усилий, потребовавшихся для создания Вселенной, составляет 10122 операций (логическая глубина), выполненных с 1092 битами (термодинамическая глубина).
Эффективная сложность
Логическая и термодинамическая глубина – не единственные меры, позволяющие оценить численно те или иные аспекты сложности. В зависимости от того, какую черту сложной системы мы хотим описать, есть и другие меры, которые не менее или даже более полезны. Одна из них – величина, получившая название «эффективная сложность». Она измеряет степень регулярности системы; это определение сложности первоначально предложил Мюррей Гелл-Манн. В последние десять лет мы с Гелл-Манном пытаемся найти математически точное выражение для идеи эффективной сложности. Эффективная сложность – простая и изящная мера сложности. С каждой физической системой связано определенное количество информации – количество, необходимое для описания физического состояния системы с той точностью, которую допускает квантовая механика. Основной способ измерить эффективную сложность чего-либо – разделить это количество информации на две части: информация, которая описывает регулярные аспекты данного объекта, и информация, которая описывает его случайные аспекты. Количество информации, необходимой для описания регулярности системы, и будет ее эффективной сложностью. В технической системе – пусть это будет самолет – эффективная сложность по сути равна объему чертежей системы: это количество информации, необходимой для ее сборки. Например, чертежи самолета определяют форму его крыла, а также химический состав и процедуру производства сплава, из которого оно сделано. Форма крыла и состав сплава – это аспекты регулярности проекта; биты, которые определяют эти черты, должны иметь определенные значения, иначе самолет просто не взлетит. Эти биты включаются в эффективную сложность самолета. Но чертежи не определяют положения каждого атома крыльев. Биты, определяющие, где находится каждый атом в тот или иной момент времени, являются случайными; они не влияют на летные характеристики самолета и не являются индикатором его сложности. Как показывает пример с самолетом, сложность – ключевой вопрос в инженерном деле. Как удается проектировать сложные системы, обладающие стабильным поведением? Принцип, который мы преподаем студентам инженерного факультета в Массачусетском технологическом институте, выражен известной аббревиатурой KISS: Keep It Simple, Stupid! (то есть чем проще – тем лучше). Но что, если система, которую вы проектируете, сама по себе сложна, например если это самолет? В Массачусетском технологическом институте есть кафедра проектирования систем, где инженеры, представители естественных и социальных наук вместе находят и решают проблемы сложных технических систем. Один многообещающий метод проектирования сложных систем называют аксиоматическим проектированием. Этот подход предложил Нам Сух, бывший глава кафедры машиностроения Массачусетского технологического института. Идея аксиоматического проектирования состоит в том, чтобы свести к минимуму информационное содержание проектируемой технической системы, сохранив ее способность выполнять функциональные требования. При правильном применении аксиоматическое проектирование позволяет создавать самолеты, компьютерные программы и тостеры, достаточно сложные (но не более) для того, чтобы выполнять их проектные функции. Аксиоматическое проектирование сводит к минимуму эффективную сложность проектируемой системы, при этом сохраняя ее функциональность. В общем, чем проще – тем лучше, но не нужно слишком упрощать. Определение эффективной сложности физической системы, очевидно, требует суждения о том, что можно считать регулярностью, а что нет. Иначе говоря, нужно задать критерии того, какие биты можно считать «важными» и ответственными за регулярность, а какие – «неважными», то есть битами случайности. В технической системе важные биты – те, которые должны иметь определенные значения, иначе система не сможет делать то, что она должна делать. В эволюционирующих системах, таких как бактерии, менее очевидно, какие биты важны, а какие – нет. Здесь простой критерий, позволяющий выяснить, важен ли бит и вносит ли он свой вклад в эффективную сложность, может быть таков: изменить значение бита и посмотреть, что будет. Если инверсия бита даст заметный эффект, то он важен, а если не даст заметного эффекта, то он не важен. Если бит влияет на способность бактерии выживать и размножаться, то этот бит увеличивает эффективную сложность бактерии. Важные биты бактерии – те, которые существенно влияют на ее будущее. Точно так же можно измерить эффективную сложность любой системы, способной к целенаправленному поведению. Любой бит, влияющий на способность системы достигать ее целей, увеличивает эффективную сложность этой системы. Конечно, определение целенаправленного поведения до некоторой степени субъективно. Но предположим, что мы сосредоточимся на поведении, позволяющем системе, во-первых, получать энергию и, во-вторых, использовать эту энергию для создания копий самой себя. Живые системы посвящают большую часть своего времени питанию и воспроизведению. Какое определение жизни ни взять, любая система, способная выполнять два этих действия, прошла большой путь к тому, чтобы считаться живой. Как только мы признали целенаправленным поведение, увеличивающее способность системы получить энергию и использовать ее для воспроизводства, у нас появляется возможность измерить эффективную сложность всех живых систем и всех систем, которые когда-нибудь смогут стать живыми. Как мы увидим, системы, обладающие эффективной сложностью, которые получают энергию и воспроизводят себя, естественным образом возникают из лежащих в основе вычислительных процессов Вселенной.
Почему Вселенная сложна?
Теперь, когда мы формально определили сложность, можно показать, что Вселенная с необходимостью ее создает. Законы физики универсальны в вычислительном отношении и потому позволяют Вселенной содержать и системы с логической глубиной, и системы с высокой эффективной сложностью. Но мы можем также показать, что Вселенная должна содержать такие сложные системы. Давайте вспомним в деталях первую революцию в сфере обработки информации – создание самой Вселенной. Измеряя сложность Вселенной, мы будем следовать текущей стандартной космологической модели. Согласно этой модели, во Вселенной недостаточно материи для того, чтобы замедлить, а затем обратить ее расширение, заставив ее схлопнуться и исчезнуть в процессе Большого сжатия. Это значит, что Вселенная всегда будет расширяться. Такая Вселенная пространственно бесконечна, в том числе и в самом начале. Но нас интересуют вычисления, которые выполняет Вселенная, то есть каузально связанная часть Вселенной, ее часть в пределах горизонта, состоящая из битов, которые могут «говорить» друг с другом. В тех случаях, когда не указано явно, что речь идет о событиях за горизонтом, мы будем следовать обычной практике и относить термин Вселенная к той ее части, которая находится в пределах горизонта. Первая революция в сфере обработки информации начинается с началом Вселенной. До начала Вселенной не было ничего – ни пространства, ни времени, ни энергии, ни битов. В самый момент начала еще ничего не произошло. Обезьяны-программистки еще не начали ничего вводить в компьютер. Данные наблюдений свидетельствуют о том, что вначале Вселенная была простой. Насколько мы можем судить, было только одно возможное начальное состояние, и это состояние было везде одинаковым. Но если в момент «нуль» было только одно возможное начальное состояние, то Вселенная содержала нуль битов информации. Ее логическая глубина, термодинамическая глубина и эффективная сложность тоже были равны нулю. Теперь Вселенная начинает вычислять. Одно планковское время спустя (порядка 10–44 секунды[58]), Вселенная содержит один бит в пределах горизонта. Количество вычислений, которые она может выполнить с этим битом за одно планковское время, составляет одну операцию; то есть эффективная сложность и термодинамическая глубина Вселенной могут быть не больше одного бита, а ее логическая глубина может быть не больше одной операции. Обезьяны ввели в компьютер один бит. По мере расширения Вселенной растет число битов в пределах горизонта и накапливается число операций. Максимальная логическая глубина ограничивается числом операций, а эффективная сложность и термодинамическая глубина ограничены числом битов. Сложность Вселенной увеличивается, хотя она все еще относительно проста. Однако обезьяны продолжают вводить программу. Что вычисляет Вселенная в этот ранний период? Как обычно, она вычисляет свое собственное поведение. Вселенная вычисляет саму себя. Если бы мы больше знали о квантовой гравитации, то могли бы воспроизвести первые шаги вычисления Вселенной на существующих, сделанных человеком квантовых компьютерах, хотя они и очень просты. По существу, вычислительная теория квантовой гравитации, описанная выше, позволяет напрямую увидеть, что и как вычисляет Вселенная. В этой модели Вселенная одновременно начинает все возможные вычисления. Мы помним, что квантовые компьютеры могут одновременно выполнять множество вычислений, используя квантовый параллелизм. Почти все входные квантовые биты – суперпозиции 0 и 1. Есть только одно состояние, имеющее значение 0, и одно состояние, имеющее значение 1, но есть бесконечное число возможных состояний входных данных, которые являются суперпозициями 0 и 1. Следовательно, почти все однокубитные входные данные квантового компьютера побуждают его делать то и это одновременно. Аналогичным образом почти все двухкубитные входные состояния являются суперпозициями 00, 01, 10, и 11. Если каждый из этих четырех входов инструктируют компьютер выполнять определенное вычисление, то почти все двухкубитные состояния инструктируют квантовый компьютер выполнять эти четыре вычисления квантово-параллельно, и т. д. По мере того как число входных кубитов растет, универсальный квантовый компьютер продолжает запускать одновременно все возможные вычисления. Хотя вначале Вселенная проста и не обладает ни эффективной сложностью, ни логической глубиной, у нее впереди великолепное будущее. Ранняя Вселенная представляет собой то, что Чарльз Беннетт называет «честолюбивой» системой: даже если первоначально она не является сложной, она с неизбежностью способна со временем создавать большое количество сложности. В ранней Вселенной наши квантовые обезьяны вводят в компьютер суперпозиции всех возможных входных данных. Вычислительная Вселенная интерпретирует эти входы как инструкции выполнить все возможные вычисления квантово-параллельным образом. (Эту суперпозицию всех возможных структур иногда называют Мультивселенной.) В одном из этих параллельных квантовых вычислений она создает ту особую сложность, которую мы видим вокруг. Как всегда, когда обезьяны вводят данные в компьютеры, структуры, которые могут возникнуть из коротких программ, более вероятны, чем структуры, для создания которых нужны длинные программы. Вселенная вычисляет, биты меняют свои значения. Но что это за биты? Биты в ранней Вселенной являются репрезентациями локальных значений плотности энергии. Например, 0 может представлять плотность энергии ниже средней, а 1 – плотность энергии выше средней. Вследствие простой, гомогенной природы начального состояния средняя плотность энергии везде одинакова, но существуют квантовые флуктуации относительно этой средней плотности. Квантовые биты Вселенной находятся в суперпозиции состояний, описывающих более низкую и более высокую плотность. С точки зрения энергии естественная динамика Вселенной создает области, в которых плотность энергии принимает суперпозицию различных значений. Как только Вселенная началась, ее кубиты начали менять значения и взаимодействовать. Иначе говоря, как только обезьяны начали вводить свою программу, создавая квантовую суперпозицию, законы физики начали интерпретировать эту программу. Вспомним, что однажды созданная информация имеет тенденцию распространяться. Информация заразна. Из-за чувствительности квантовых битов к взаимодействиям с другими квантовыми битами в своем окружении квантовая информация особенно заразна. Как мы уже говорили, такое распространение квантовой информации приводит к декогеренции, разъединению историй. Возьмем один кубит в суперпозиции 0 и 1. Этот кубит содержит 0 и 1 одновременно, согласно обычным законам квантовой механики. Теперь пусть этот кубит взаимодействует с другим кубитом, находящимся в состоянии 0, например выполняется операцию «условное не» со вторым кубитом, где первый кубит является управляющим. Два кубита, взятые вместе, находятся теперь в суперпозиции 00 и 11: квантовая информация первого кубита заразила второй кубит. Но в результате этого взаимодействия первый кубит, взятый отдельно, ведет себя так, как будто в нем записан либо 0, либо 1, но не то и другое; иначе говоря, данное взаимодействие декогерировало первый кубит. По мере того как между кубитами происходит все больше взаимодействий, квантовая информация, которая сначала была локализована в отдельном кубите, распространяется среди многих кубитов. По мере того как распространяется эпидемия общей квантовой информации, кубиты декогерируют. А когда они декогерируют (и одна история больше не оказывает влияния на другую), мы можем сказать, что данная область имеет либо более высокую, либо более низкую плотность энергии. На языке декогерентных историй теперь мы можем обсуждать плотность энергии Вселенной за обеденным столом. Следующий шаг в вычислительной Вселенной – решающий. Мы помним, что гравитация реагирует на присутствие энергии. Там, где плотность энергии выше, ткань пространства-времени начинает искривляться немного сильнее. По мере того как флуктуации плотности энергии декогерируют, гравитация отвечает на флуктуации в энергии квантовых битов, аккумулируя материю в элементе 1 суперпозиции. В модели квантовой гравитации, основанной на вычислительной Вселенной, аккумуляция происходит естественным образом. Содержание лежащего в основе квантового вычисления определяет структуру пространства-времени, включая его кривизну. При этом элемент суперпозиции со значением 1 автоматически создает более сильную кривизну, чем элемент со значением 0. Когда кубит декогерирует и приобретает значение либо 0, либо 1, но не оба сразу, кривизна пространства-времени становится или выше (в компоненте 1), или ниже (в компоненте 0), но не в обоих сразу. В вычислительной Вселенной когда кубиты декогерируют и начинают вести себя более классическим образом, гравитация также начинает вести себя классическим образом. Такой механизм декогерентности контрастирует с другими теориями квантовой гравитации, в которых гравитационное взаимодействие само по себе декогерирует кубиты. Но какую бы теорию квантовой гравитации мы ни приняли, картина Вселенной на этой ранней стадии в основном будет той же самой. Биты создаются и начинают менять свои значения. Гравитация отвечает на это, собирая материю вокруг «единиц». Квантовые биты декогерируют, и во Вселенную поступают случайные последовательности 0 и 1. Вычисления начинаются! Кроме создания тверди, по которой мы ходим, гравитационная аккумуляция поставляет необходимое сырье для создания сложности. По мере сборки материи в облака повышенной плотности энергия, которую содержит эта материя, становится доступной для использования. Калории, которые мы потребляем, чтобы жить, обязаны своим происхождением гравитационной аккумуляции, в результате которого сформировалось и начало светить Солнце[59]. Гравитационная аккумуляция в самой ранней Вселенной отвечает за создание крупномасштабной структуры галактик и скоплений галактик. За этой первой революцией в сфере обработки информации последовали другие: жизнь, половое размножение, мозг, язык, цифры, письменность, печатный текст, вычисления – и кто знает, какой будет следующая. Каждая следующая революция в сфере обработки информации приходит как результат вычислительной механики предыдущей революции. С точки зрения сложности каждая следующая революция наследует практически всю логическую и термодинамическую глубину предыдущей революции. Например, половое размножение основано на жизни, поэтому оно обладает не меньшей глубиной, чем и сама жизнь. Глубина накапливается. А вот эффективная сложность не обязана накапливаться: потомству не нужно иметь больше эффективной сложности, чем есть у родителей. В процессе проектирования многократные уточнения, позволяющие устранить ненужные детали, могут привести к созданию систем, обладающих меньшей эффективной сложностью, но при этом более эффективных, чем их предшественники. Помимо устранения ее в процессе уточнений эффективная сложность может пропадать и сама по себе. Эффективная сложность организма как минимум столь же велика, как и информационное содержание его генов. Но когда вид исчезает, его эффективная сложность теряется. Так или иначе, жизнь на Земле, по-видимому, началась с небольшой эффективной сложности, а затем прошла взрывное развитие, результатом которого стал чрезвычайно разнообразный и эффективно сложный мир, который мы видим вокруг. Способность Вселенной выполнять вычисления означает, что объекты и системы, обладающие логической и термодинамической глубиной, с необходимостью спонтанно эволюционируют. Верно ли, что вычислительная Вселенная спонтанно создает все более растущую эффективную сложность? Достаточно оглянуться вокруг, и мы увидим очень много эффективной сложности. Но обязательно ли увеличивается суммарная эффективная сложность? Или в какой-то момент она может уменьшиться? Эффективная сложность человеческого общества, как представляется, вполне может исчезнуть, например в случае мировой ядерной войны. Кроме того, когда через несколько миллиардов лет погаснет Солнце, жизнь на Земле также исчезнет. Вопросы о том, как, почему и когда увеличивается эффективная сложность, в науке о сложности до сих пор не решены. Мы можем попытаться нащупать ответы, рассматривая механизмы, создающие эффективную сложность. Мы определили целенаправленное поведение как поведение, позволяющее системе, во-первых, получать энергию и, во-вторых, воспроизводить себя. Эффективную сложность живой системы можно определить как число битов информации, влияющих на способность этой системы потреблять энергию и воспроизводить себя. Если добавить к двум аспектам поведения третий – способность воспроизводить себя вариативно, то мы сможем увидеть, как эффективная сложность меняется со временем. Любая система (к примеру, половое размножение), которая потребляет энергию и воспроизводит себя с вариациями, может как увеличивать эффективную сложность, так и терять существующую. Одни вариативные копии, созданные в процессе воспроизводства, будут лучше потреблять и воспроизводиться, чем другие, и эти варианты станут доминирующими в популяции. Некоторые варианты будут иметь эффективную сложность больше, чем у первоначальной системы, а некоторые – меньше. До той степени, в которой рост эффективной сложности усиливает способность к воспроизведению, эффективная сложность будет иметь тенденцию к росту; однако если какая-то из вариативных копий сможет воспроизводить себя лучше при меньшей эффективной сложности, то эффективная сложность может и уменьшаться. Имея разные внешние условия и множество вариаций воспроизведения, мы можем ожидать, что эффективная сложность будет в некоторых популяциях расти, а в других уменьшаться. Все живые системы потребляют энергию и вариативно воспроизводят себя, но такие самовоспроизводящиеся системы не обязательно являются живыми. В самом начале Вселенной космологический процесс под названием «инфляция» с большой скоростью производил новое пространство и новую свободную энергию. Каждый объем пространства порождал новые объемы, удваиваясь в размерах за крошечную долю секунды. Само пространство воспроизводило себя. Вариативность создавали квантовые флуктуации (пресловутые обезьяны). По мере того как пространство воспроизводило себя, каждый дочерний его объем немного отличался от родительского. Так как материя начинала собираться вокруг областей большей плотности, эти области накапливали больше свободной энергии за счет других, менее плотных областей. Через миллиарды лет в одной из таких областей более высокой плотности сформировалась Земля. А через миллиарды лет после этого какая-то часть Земли эволюционировала, и появились мы.
Возникновение жизни
Биологи очень много знают о том, как устроены и работают живые системы. Как ни странно, о том, как возникла жизнь, им известно намного меньше, чем известно космологам о начале Вселенной. Дата Большого взрыва и его местоположение (везде) известно с более высокой степенью точности, чем дата и место рождения жизни, уже не говоря о процедурных деталях. Биологи знают лишь то, что жизнь впервые появилась на Земле почти 4 млрд лет назад. Возможно, она возникла здесь, а может быть, появилась еще где-то и была затем занесена на Землю. Где бы ни возникла жизнь, вопрос в том, как именно она возникла? Ответ на этот вопрос – предмет горячих споров. Вот один возможный сценарий. Мы видели, что законы физики позволяют выполнять вычисления в масштабе атомов, электронов, фотонов и других элементарных частиц. Благодаря такой вычислительной универсальности системы больших масштабов также универсальны в вычислительном отношении. Вы, я, и наши компьютеры способны выполнять одни и те же базовые вычисления. Вычисления также могут происходить в масштабе, чуть большем, чем масштаб атомов. Атомы могут соединяться, формируя молекулы. Химия – это наука, которая описывает, как атомы соединяются, перестраиваются и вновь разъединяются. Простые химические системы также способны выполнять вычисления. Как же вычисляет химия? Представьте себе емкость, например небольшую пору в камне, заполненную различными химическими соединениями. В начале химического вычисления некоторые из этих веществ имеют высокую концентрацию. Эти вещества можно воспринимать как биты со значением 1. У других веществ – низкая концентрация: их значение – 0. Где именно проходит граница между высокой и низкой концентрацией, в данном случае неважно. Все эти химические вещества вступают в реакции друг с другом. Некоторые начинают с высокой концентрации и истощаются; биты, соответствующие этим веществам, меняют значение от 1 к 0. Концентрация других веществ увеличивается; их биты изменяются от 0 к 1. В ходе химических реакций одни биты инвертируются, а другие – нет. Звучит многообещающе. В конце концов, вычисление – это просто биты, которые меняют значения систематическим образом. Чтобы показать, что химическая реакция может выполнять универсальные вычисления, нужно просто продемонстрировать, что она может выполнять операции «и», «не» и «копировать». Давайте начнем с «копировать». Предположим, что химическое вещество A усиливает производство химического вещества B и если вокруг мало вещества A, уровень вещества B остается низким. Если концентрация A низкая и концентрация B низкая, то обе они останутся низкими. Если бит, соответствующий A, сначала имел значение 0, как и бит, соответствующий B, то эти биты останутся в значении 0. То есть 00 → 00. Аналогичным образом если сначала концентрация A высока, а концентрация B низка, то после химической реакции мы получим высокую концентрацию A и высокую концентрацию B. То есть если бит, соответствующий A, сначала находился в значении 1, а бит, соответствующий B, – в значении 0, то в конце оба бита будут находиться в значении 1. 10 → 11. Реакция выполнила операцию «копировать». Бит, соответствующий A, остался таким же, каким он был до реакции, а бит, соответствующий B, теперь стал копией бита, соответствующего A. Обратите внимание, что в этом процессе A оказывает влияние на то, будет ли произведено B, но само по себе это вещество не потребляется в ходе реакции; в химии A называют катализатором для производства B. Таким же образом происходит операция «не». Предположим, что A не усиливает производство B, а препятствует ему. В этом случае реакция приведет к тому, что бит B будет противоположным биту A; то есть значение бита B окажется логическим «не» от значения бита А. А как насчет «и»? Предположим, что концентрация вещества C переходит от низкой к высокой в том и только том случае, если вокруг присутствуют высокие концентрации A и B. Тогда реакция, которая начинается при низкой концентрации C (его бит – в значении 0), приведет к высокой концентрации C в том и только том случае, если и A, и B находятся в высокой концентрации (то есть в том и только том случае, если биты A и B оба находятся в значении 1). После реакции бит C будет представлять собой логическое «и» битов A и B. Итак, химические реакции могут без труда выполнять операции «и», «не» и «копировать». Если добавить в наш набор новые вещества, такие логические операции объединятся и приведут к ряду реакций, соответствующих любой желаемой логической схеме. Таким образом, химические реакции универсальны в вычислительном отношении. В целом, когда химические соединения в поре камня вступают в реакции, некоторые из них становятся катализаторами для начального набора реакций, а некоторые из продуктов этих начальных реакций становятся катализаторами для дальнейших реакций. Такой процесс называется «автокаталитическим набором реакций»: каждая реакция создает катализаторы для других реакций между веществами данного набора. Автокаталитические реакции – это очень мощные системы. Помимо вычислений, они могут давать на выходе большое разнообразие химических веществ. В некотором смысле автокаталитические реакции похожи на крошечную, управляемую компьютером фабрику по производству химических соединений. Некоторые из этих веществ являются составными элементами живых систем. Возникла ли жизнь в процессе автокаталитических реакций? Возможно. Мы не узнаем этого до тех пор, пока не установим коммутационную схему и программу для автокаталитического набора, в котором впервые родились клетки и гены[60]. Вычислительная универсальность автокаталитических наборов позволяет утверждать, что некоторые такие программы существуют, но это не значит, что такая программа проста или ее легко найти.
|
Последнее изменение этой страницы: 2019-05-04; Просмотров: 268; Нарушение авторского права страницы