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

Ллойд Сет

Часть I

Общая картина

 

 

Глава 1

Введение

 

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

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

Позвольте мне сказать несколько слов о себе. Мои первые детские воспоминания – как мы жили в курятнике. Мой отец был учеником мебельщика, мы обитали в Линкольне, штат Массачусетс. Курятник находился в дальнем конце большого сарая хозяйки. Мой отец превратил его в двухкомнатную квартиру; там, где раньше жили куры, теперь были спальные места для меня и моего старшего брата. (Моему младшему брату разрешили сделать люльку.) Вечером мать пела нам колыбельную, укрывала одеялами и закрывала деревянные двери. Мы оставались одни и глядели на мир за окном.

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

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

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

В 1993 г. я понял, как создать квантовый компьютер. Квантовые компьютеры – это устройства, которые используют способность отдельных атомов, фотонов и других элементарных частиц обрабатывать информацию. Они вычисляют так, как не могут вычислять классические компьютеры, например Mac или PC. Изучая, как заставить атомы и молекулы – самые маленькие частицы Вселенной – вычислять, я стал все лучше видеть естественную способность к обработке информации, свойственную самой Вселенной. Сложный мир, который мы видим вокруг, – проявление квантовых вычислений Вселенной.

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

Вычисляющая Вселенная с необходимостью создает сложность. Жизнь, пол, мозг и человеческая цивилизация возникли не случайно.

 

Квантовый компьютер

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

Квантовые компьютеры используют «квантовую странность», чтобы выполнять задачи, слишком сложные для обычных компьютеров. Квантовый бит, или «кубит», может находиться в состоянии и 0, и 1 в одно и то же время, в то время как классический бит может содержать только 0 или только 1. Поэтому квантовый компьютер может выполнять миллионы вычислений одновременно.

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

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

Идею такого компьютера предложили в начале 1980-х гг. Пол Бенев, Ричард Фейнман, Дэвид Дойч и другие. В то время квантовые компьютеры были чисто абстрактной концепцией: никто не знал, как можно их создать. В начале 1990-х я показал, как это можно сделать с использованием существующих экспериментальных методов. В течение десяти последних лет я трудился с некоторыми из лучших ученых и инженеров мира, чтобы разработать и изготовить квантовые компьютеры и использовать их.

Есть множество веских причин для того, чтобы создать квантовый компьютер. Прежде всего, мы можем это сделать. Квантовые технологии – технологии управления материей на уровне атомов – в последние годы получили замечательное развитие. Сейчас у нас есть достаточно стабильные лазеры, довольно точные методы производства и быстрая электроника – все это позволяет выполнять вычисления на уровне атомов.

Вторая причина заключается в том, что нам нужно научиться создавать квантовые компьютеры, по крайней мере если мы хотим, чтобы наши компьютеры становились все более быстрыми и мощными. На протяжении полувека вычислительная мощность компьютеров удваивалась каждые полтора года. Этот взрыв называется «законом Мура», в честь Гордона Мура, впоследствии ставшего топ-менеджером компании Intel, который указал на экспоненциальный характер роста еще в 1960-е. Закон Мура – это не закон природы, а свидетельство человеческой изобретательности. Каждые восемнадцать месяцев компьютеры становятся в два раза быстрее, потому что каждые восемнадцать месяцев инженеры находят способ уменьшить вдвое размер соединений и логических элементов, из которых они состоят. Каждый раз, когда размер основных компонентов компьютера уменьшается вдвое, на чипе того же размера становится возможно разместить в два раза больше элементов. В результате компьютер оказывается вдвое мощнее своего предшественника, созданного полтора года назад.

Если спроецировать закон Мура на будущее, мы увидим, что размер соединений и логических элементов, из которых состоят компьютеры, лет через сорок должен будет достичь уровня атомов; следовательно, если мы хотим, чтобы закон Мура действовал и дальше, нам придется научиться создавать компьютеры, работающие на квантовом уровне. Квантовые компьютеры представляют собой последний рубеж миниатюризации.

Квантовые компьютеры, которые сделали мы с коллегами, уже достигли этой цели: каждый атом содержит один бит. Но сегодня мы можем создавать совсем небольшие квантовые компьютеры – и по размеру, и по вычислительной силе. Самые большие квантовые компьютеры общего назначения, существующие в настоящий момент, содержат от семи до десяти квантовых битов и могут выполнять тысячи квантовых логических операций в секунду. (Для сравнения, обычный настольный персональный компьютер может содержать триллионы битов и выполнять миллиарды обычных, классических логических операций в секунду.) Мы уже научились делать компьютеры с элементами размером с атом, но еще не умеем делать большие компьютеры с элементами такого размера. Первые квантовые компьютеры появились десять лет назад, и количество битов, которые они могут содержать, удваивается почти раз в два года. Даже если эта скорость сохранится, пройдет еще сорок лет, прежде чем квантовые компьютеры смогут сравняться с сегодняшними классическими по количеству битов. Квантовым компьютерам предстоит еще долгий путь до обычной «персоналки».

Третья причина для создания квантовых компьютеров заключается в том, что они позволяют нам понять, как Вселенная записывает и обрабатывает информацию. Один из лучших способов понять закон природы – это создать машину, которая бы иллюстрировала этот закон. Часто мы сначала создаем машину, а законы возникают позже. Колесо и волчок появились за много тысячелетий до того, как был открыт закон сохранения момента импульса; брошенный камень – до того, как Галилей открыл законы движения; призма и телескоп – раньше оптической теории Ньютона; паровой двигатель изобрели задолго до того, как Джеймс Уатт сконструировал свой регулятор, а Сади Карно открыл второй закон термодинамики.

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

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

 

Язык природы

Совершая вычисления, Вселенная без труда создает запутанные и сложные структуры. Чтобы понять, как она вычисляет, а значит, чтобы понять эти сложные структуры, нужно выяснить, как она хранит и обрабатывает информацию. То есть изучить язык самой природы.

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

Атомы не одиноки в своей способности обрабатывать информацию. Фотоны (частицы света), фононы (частицы звука), квантовые точки (искусственные атомы), сверхпроводящие схемы – все эти микроскопические системы могут записывать информацию. И если вы говорите на их языке и вежливо задаете им вопросы, то они обработают эту информацию для вас. На каком языке говорят такие системы? Как и все физические системы, они реагируют на энергию, силу, импульс, на свет и звук, на электричество и силу тяжести. Физические системы говорят на языке, грамматику которого составляют законы физики. За последние десять лет мы изучили этот язык достаточно хорошо, чтобы говорить с атомами – чтобы убедить их выполнять вычисления и сообщать о результатах.

Трудно ли говорить «на языке атомов»? Чтобы пользоваться этим языком свободно, нужно учиться всю жизнь. Сам я владею им плохо по сравнению с другими учеными и квантовыми инженерами, с которыми вы встретитесь на страницах этой книги. Но поддерживать с атомами простую беседу не так уж трудно.

Как и все языки, «язык атомов» легче выучить, когда вы молоды. Мы с Полом Пенфилдом читаем курс лекций для первокурсников Массачусетского технологического института, он называется «Информация и энтропия». Цель этого курса, как и цель этой книги, – раскрыть фундаментальную роль, которую информация играет во Вселенной.

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

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

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

 

Революции в сфере обработки информации

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

Не менее серьезной революцией в сфере обработки информации было изобретение нуля. Цифру «нуль» изобрели древние вавилоняне, а из Вавилона оно распространилось по всему арабскому миру. Использование нуля для обозначения десятков (10, 100, 1000 и т. д.) отличает арабскую систему записи чисел, которой пользуемся мы с вами, от других систем, например от римской, где для обозначения степеней десяти используются разные символы (X = 10; C = 100; M = 1000). Это новшество в представлении чисел может показаться несущественным, но изобретение арабских цифр оказало большое влияние на математическую обработку информации. (Немаловажным следствием этого стали более простые и прозрачные коммерческие сделки и расчеты. Если бы парни из корпорации Enron вели свой теневой бухучет в римских цифрах, возможно, им удалось бы выйти сухими из воды!)

Арабская система записи родилась вместе с сопровождающей ее технологией, абаком. Абак – простая, понятная и мощная вычислительная машина. Это дощечка, к которой прикреплены ряды подвижных бусинок, надетых на палочки. Первый ряд обозначает единицы, второй – десятки, третий – сотни и т. д. Абак, в котором всего десять рядов, может выполнять вычисления в диапазоне до миллиардов.

Но еще интереснее воплощенная в абаке концепция нуля. Вероятно, абак возник раньше, чем само это слово. Английское zero пришло из итальянского, это сокращение от zefiro, от средневекового латинского zephirum. Как и старофранцузское cifre, оно восходит к арабскому sifr; на санскрите shunya – «пустота». В арабской системе записи нуль заполняет пустые места, позволяя легко обозначить большие числа (10, 100, 1000…). Пустота – это мощная концепция. Несмотря на всю ее мощь или благодаря ей, цифра нуль вызывает подозрения. Она не кажется естественной. Действительно, нуль не относится к натуральным числам (1, 2, 3…). Нуль как абстракция – это достаточно сложное понятие, но абак, на котором все бусинки опущены вниз, – это простой, конкретный символ: нуль.

Историю Вселенной можно рассматривать как последовательность революций в сфере обработки информации, каждая из которых основана на технологиях, возникших в результате предыдущих революций

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

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

Появление человеческого языка примерно 100 000 лет назад или даже раньше стало (давайте польстим нашему биологическому виду) еще одной серьезной революцией в сфере обработки информации. Исследования окаменелостей показывают, что развитие языка сопровождалось и ускорялось относительно быстрым развитием участков мозга, отвечающих за обработку речи. Новые нейронные сети мозга, вместе с одновременным развитием голосовых связок, можно считать естественной «технологией», или механизмом, благодаря которому и возник язык. Эта новая «нейронная технология», очевидно, и дала начало замечательной универсальности человеческой речи – способности выразить на одном языке более или менее точно то, что было сказано на другом. По меньшей мере язык позволил создать уникальные человеческие формы социальной организации, сделавшей наш вид столь успешным.

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

Первая сексуальная революция представляла собой tour de force, ее огромный успех основан на идее, которая на первый взгляд кажется неудачной. Почему неудачной? Потому что половое размножение несет риск потери ценной информации. Успешная бактерия, размножаясь бесполым путем – почкованием, передает потомству точную копию своего генетического кода (конечно, при условии отсутствия случайных мутаций). Но если организм размножается половым путем, его гены смешиваются с генами партнера, и их потомок получает новый набор генов. Этот процесс называется рекомбинацией. Поскольку половина генов отпрыска приходит от одного из родителей, а половина от другого и они перемешиваются, то, какими бы успешными ни были уникальные комбинации генов каждого из родителей, геном потомка будет от них отличаться. Половое размножение никогда не передает потомкам удачную комбинацию генов в неизменном виде. В этом смысле секс препятствует успеху!

Так что же в нем хорошего? С точки зрения естественного отбора половое размножение способствует большей генетической изменчивости, в то же время добросовестно воспроизводя отдельные гены. Предположим, что в мире становится жарче. Успешная до этого бактерия, которая размножается почкованием, внезапно оказывается во враждебном окружении. Ее потомку, в точности похожему на нее и адаптированному к прохладному климату, теперь будет сложно выжить.

Единственный способ адаптации для бесполой бактерии – мутация, вызванная репродуктивной ошибкой или вредными факторами окружающей среды. Большинство мутаций неудачны, и они делают бактерию еще менее успешной, но в конце концов может случиться удачная мутация, и на свет появится более теплостойкая бактерия.

Без полового размножения адаптация проблематична, потому что закон мира: «Изменись или умри», – противоречит одному из основных законов жизни: «Сохраняй целостность генома». Такое противоречие хорошо известно и в инженерном деле: две функции системы бывают связаны так, что невозможно откорректировать одну, не нарушив другой. А вот при половом размножении обмен генетическим материалом, или рекомбинация генов, приводит к большой изменчивости, и при этом поддерживается генетическая целостность.

К примеру, возьмем небольшой городок, где всего тысяча жителей. Давайте подсчитаем все возможные варианты спаривания для этих людей (если судить по телесериалам, их может быть очень и очень много) и количество способов, которыми гены всех участников могут перемешаться и рекомбинироваться в их детях. Окажется, что этот городок – целая генетическая «электростанция», способная создать столько же разнообразия, что и миллиарды делящихся бактерий. Разнообразие – это хорошо: если в город придет эпидемия чумы, то некоторые жители ее переживут, а затем передадут детям гены резистентности к этой болезни. Более того, способность к разнообразию, которую создает половое размножение, не наносит вреда геному. Отделяя функцию адаптации от функции поддержания целостности отдельных генов, половое размножение создает разнообразие отдельных особей, при этом сохраняя в целости гены вида. В общем, секс – не только удовольствие, это хороший инженерный подход.

Если мы отправимся еще дальше в прошлое, то найдем бабушку всех революций в сфере обработки информации – это возникновение самой жизни. Жизнь на Земле началась в точке, отстоящей на одну треть от нашего времени к началу Вселенной. (Когда это произошло в других местах и произошло ли вообще, неизвестно.) У живых организмов есть гены, последовательности атомов в молекулах типа ДНК, в которых закодирована информация. Количество информации в одном гене можно измерить: человеческий геном содержит около 6 млрд битов информации. Организмы передают свою генетическую информацию потомству, иногда в мутировавшей форме.

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

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

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

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

Каждая революция в сфере обработки информации связана с той или иной новой технологией – это компьютер, книга, мозг, ДНК. Эти технологии позволяют записывать и обрабатывать информацию в соответствии с некими правилами. Но что за технология связана с обработкой информации Большого взрыва? Какая машина обрабатывает информацию в вычисляющей Вселенной? Чтобы увидеть эту универсальную технологию обработки в действии, достаточно просто открыть глаза и оглянуться вокруг. Машина, выполняющая «универсальные» вычисления, – это сам Универсум, сама Вселенная.

 

Глава 2

Вычисление

 

Информация

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

Я ждал. Тишина.

Что-то здесь не так. Обычно наши студенты радуются, если им удается озадачить преподавателя, особенно если знают, что он может озадачить их самих.

Я перешел ко второму шагу: «Вопросов нет? Тогда вот вопрос вам: что такое информация?»

Молчание. Что с ними такое? В конце концов, эти студенты с первого курса заполняли свои головы информацией. Если они не начнут извергать ее обратно, мне придется перейти к третьему шагу.

«Ладно. А как вам такой вопрос: какова единица информации?»

Все хором ответили: «Бит!»

О чем говорит этот ответ, впрочем, как и молчание? Намного легче измерить количество информации, чем сказать, что она такое. А на вопрос «Сколько?» часто ответить проще, чем на вопрос «Что такое…?» Что такое энергия? Что такое деньги? Это трудные вопросы. Сколько нужно энергии, чтобы…? Сколько нужно денег, чтобы…? На такие вопросы можно дать точные и простые ответы.

«Что такое бит?», – спросил я. Теперь ответы посыпались со всех сторон: «0 или 1!»; «Орел или решка!»; «Да или нет!»; «Истина или ложь!»; «Выбор между двумя альтернативами!»

Все эти ответы правильны. Английское слово bit («бит») – сокращение от binary digit; здесь digit – это цифра, а binary («двоичный») значит «состоящий из двух частей», и бит представляет одну из этих двух альтернатив. Традиционно эти альтернативы обозначают как «0» и «1», но любые две четкие альтернативы (горячий/холодный, черный/белый, внутрь/наружу) можно считать способом хранения бита.

Бит – самая маленькая единица информации. Бросив монету, мы получим один бит: орел или решку. Два бита представляют немного больший фрагмент информации. Подбросив монету два раза, мы получим одну из четырех (два раза по две) альтернатив: орел-орел, орел-решка, решка-орел, решка-решка. Три броска монеты дадут нам одну из восьми альтернатив (два раза по два раза по две).

Как видно даже на этих простых примерах, если мы будем продолжать бросать монету, то количество альтернатив – то есть возможных исходов серии бросков – станет быстро расти. С каждым последующим броском (помните: каждый дает один бит) количество альтернатив удваивается. Поэтому, чтобы вычислить количество различных исходов в определенном сценарии, мы просто умножаем два на два столько раз, сколько у вас битов. Например, десять битов – это два умножить на два десять раз, или 1024 варианта: 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 210 = 1024, что близко к одной тысяче, или 103.

Иначе говоря, десять битов соответствуют приблизительно трем цифрам нашей обычной десятичной системы счисления, которые обозначают единицы, десятки и сотни. Измерение количества информации – просто вопрос подсчета. Вести счет в битах проще, чем в цифрах, хотя этот метод знаком нам меньше. Счет от 0 до 9 очень прост: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Но тут цифры кончаются, и следующее число – это 1, после которого следует 0, то есть 10. Число 10 – это 1 в столбце десятков и 0 в столбце единиц. Следующее число, 11, – это 1 в столбце десятков и 1 в столбце единиц. Так можно продолжать считать вплоть до 99. Следующее число – 100. Это 1 в столбце сотен, 0 в столбце десятков и 0 в столбце единиц. (Понятно теперь, почему было так сложно понять десятичную систему счета в первый раз, в пятилетнем возрасте?)

Счет в битах ведется сходным образом. Начнем: 0 = нуль, 1 = один. Пока получается неплохо, но у нас закончились двоичные цифры – биты! Следующая комбинация битов – 10, которая равняется двум: 1 в столбце двоек и 0 в столбце единиц. (Такое представление двойки – это деталь двоичной арифметики, которая дается новичкам труднее всего. Отсюда прекрасная поговорка: «Есть 10 типов людей: те, кто знает двоичную систему счисления, и те, кто ее не знает».) Следующая комбинация – 11, она соответствует трем: 1 в столбце двоек и 1 в столбце единиц. Теперь у нас закончились двухбитовые наборы.

Еще одна комбинация цифр – 100. Она обозначает число четыре: 1 в столбце четверок, 0 в столбце двоек, и 0 в столбце единиц. Затем – комбинация 101, которая обозначает пятерку (1 в столбце четверок плюс 1 в столбце единиц), 110 = шесть, 111 = семь. Число восемь представлено уже четырьмя битами: 1000, где у нас есть 1 в столбце восьмерок и 0 в столбцах четверок, двоек и единиц. У нас есть только два бита вместо десяти цифр, поэтому длина двоичных чисел увеличивается быстрее, чем обычных.

Так же как степени десяти (десятки, сотни, тысячи, миллионы) являются важными числами в обычной, десятичной системе счисления, степени двойки важны при счете битами: 1 = один = 20; 10 = два = 21; 100 = четыре = 22; 1000 = восемь = 23; 10000 = шестнадцать = 24; 100000 = тридцать два = 25; 1000000 = шестьдесят четыре = 26; 10000000 = сто двадцать восемь = 27.

Эти цифры хорошо знакомы… поварам. Английская система мер и весов – это по сути двоичная система: 8 унций в чашке, 16 в пинте (если это американская пинта; британская пинта составляет 20 унций, а тройская пинта – 12 унций), 32 унции в кварте, 64 унции в половине галлона и 128 унций в американском галлоне. Записывать числа в двоичной системе ничуть не труднее, чем измерять объем в квартах, пинтах и чашках. Например, сто сорок шесть унций составляют один галлон плюс одна пинта плюс четверть чашки: 128 + 16 + 2 = 146. В двоичной записи 146 равно 10010010, с единицей в столбце «галлонов», единицей в столбце «пинт», единицей в столбце «четвертинок» и с нулями во всех остальных. Чтобы перевести число в двоичный вид, нужно просто измерить его чайными ложками!

Американская система измерения объема основана на двоичной системе счисления

Сто сорок шесть унций составляют один галлон плюс одна пинта плюс одна четверть чашки. В двоичной записи, 146 = 10010010

Вести счет в двоичной системе легко (но не очень, если вы встретились с ней впервые). Двоичная арифметика тоже проста. Вся таблица сложения здесь выглядит так: 0 + 0 = 0; 0 + 1 = 1; 1 + 1 = 10. Таблица умножения тут выглядит еще проще: 0 × 0 = 0; 0 × 1 = 0; 1 × 1 = 1. Прелесть, правда?

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

 

Точность

«А что будет, если у нас есть бесконечное число альтернатив? – спрашивает студент. – Например, между 0 и 1 находится бесконечное количество действительных чисел».

«Если у вас есть бесконечное число альтернатив, тогда у вас есть бесконечное количество информации», – отвечаю я.

Возьмем, например, такое двоичное число: 1001001 0110110 0100000 1110100 1101000 1100101 0100000 1100010 1100101 1100111 1101001 1101110 1101110 1101001 1101110 1101111. В стандартной таблице кодирования ASCII (American Standard Code for Information Interchange – американский стандартный код обмена информацией) каждой букве или символу на клавиатуре присвоено кодовое слово из семи битов. И если воспринимать наше число в кодировке ASCII, мы получим такие символы: I = 1001001; n = 1101110; (пробел) = 0100000; t = 1110100; h = 1101000; e = 1100101; (пробел) = 0100000; b = 1100010; e = 1100101; g = 1100111; i = 1101001; n = 1101110; n = 1101110; i = 1101001; n = 1101110; g = 1100111. Если мы прочтем буквы, то получится «In the beginning» – первые слова библейской фразы «В начале было слово…». Добавляя бит за битом, можно выписать число, соответствующее всему тексту Евангелия от Иоанна. Если мы добавим еще больше битов, то можем получить всю Библию, а за ней Коран, а за ним Сутру белого лотоса, а за ней все книги из Библиотеки Конгресса и т. д. Бесконечное число альтернатив соответствует бесконечному числу цифр или битов, бесконечному количеству информации.

Но на практике число альтернатив в любой конечной системе конечно, поэтому количество информации тоже конечно. Обычно мы считаем, что такие величины, как длина, высота и вес, изменяются непрерывно: точно так же, как между 0 и 1 есть бесконечное количество действительных чисел, есть и бесконечное количество возможных длин между нулем метров и одним метром. Причина, по которой непрерывные вроде бы величины, такие как длина металлического стержня, могут содержать только конечное количество информации, состоит в том, что эти величины, как правило, определяются с конечным уровнем точности. Чтобы увидеть взаимосвязь между точностью и информацией, представьте себе измерение длины стержня с помощью мерной рейки. Итак, у вас в руках обычная деревянная линейка, на которой отмечены и пронумерованы сто сантиметров. На ней сделана также тысяча миллиметровых отметок, по десять в каждом сантиметре, но уже не хватает места, чтобы их пронумеровать. Поэтому линейка позволит нам измерить длину стержня с точностью примерно до миллиметра. Длины меньше миллиметра линейка измеряет плохо – просто потому, что физические характеристики задают предел ее разрешающей способности. Общее количество альтернатив – 1000, что соответствует трем значащим цифрам, или примерно десяти битам информации.

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

Если у нас есть более точный измерительный прибор, чем мерная рейка, то мы получим больше битов информации о длине того же стержня. Например, можно рассмотреть его под оптическим микроскопом. Тогда мы сможем увидеть детали, размер которых по порядку равен длине волны видимого света – немного меньше микрона, или одной миллионной доли метра. И если мы приложим к линейке микроскоп, мы сможем измерить длину стержня с точностью до микрона. Микроскоп позволит найти длину стержня с точностью в шесть значащих цифр, что соответствует примерно двадцати битам информации. Сходную степень точности можно получить с помощью интерферометра – устройства, измеряющего длину объекта длинами световых волн. Если интерферометр использует волны длиной в один микрон, он определит длину нашего стержня как один миллион световых волн.

Существуют методы, которые могут дать еще большую степень точности. В принципе можно взять устройство под названием атомно-силовой микроскоп, которое показывает отдельные атомы на поверхности, и провести им вдоль прута, измеряя его длину по числу встреченных атомов. Расстояние между атомами – порядка одной десятимиллиардной метра (10–10 м), эту единицу называют «ангстрем». Это даст нам измерение с точностью до десятой цифры, или около тридцати трех битов информации о длине стержня.

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

Общее количество значений, которые может различать то или иное измерительное устройство, определяется как диапазон значений (например, один метр), в пределах которого это устройство может работать, деленный на предельную точность, с которой устройство может измерять (например, один миллиметр). Диапазон, разделенный на точность, показывает, сколько отдельных значений может зафиксировать данное устройство. Далее, количество доступной информации определяется количеством битов, необходимых для того, чтобы перечислить все доступные значения. Устройство, которое выдает 33 бита информации (точность до десятой цифры) о какой-либо непрерывной величине, можно считать очень точным.

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

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

Вспомните легендарного восточного правителя, который по глупости согласился вознаградить героя зернами пшеницы: одно зерно за первую клетку шахматной доски, два зерна за вторую, четыре за третью и так далее, вплоть до двух в шестьдесят третьей степени (263) за последнюю, 64-ю клетку. Общее количество зерен при этом составляет по порядку величины 10 миллиардов миллиардов, а если точно – 18 446 744 073 709 551 615. И если длина каждого зерна равна всего одному миллиметру, все вместе они заполнят объем почти в 20 куб. км!

Как показывает этот пример, нужно совсем немного битов, чтобы выделить одну из очень большого количества альтернатив. Чтобы присвоить каждому из зерен на шахматной доске уникальный штрихкод, потребовалось бы всего 64 бита, или 64 элемента информации. Имея 300 битов, можно присвоить уникальный штрихкод каждой из 1090 элементарных частиц во Вселенной. Астрономически огромное количество возможных генетических кодов – причина невероятного разнообразия живых существ, но информация, которая позволяет воспроизвести любой из этих кодов, может быть сохранена в одной крошечной хромосоме.

 

Смысл

«Но разве информация не должна иметь какой-то смысл?» – спрашивает студент.

«Конечно, когда мы думаем об информации, то обычно связываем ее с каким-то смыслом», – отвечаю я. «Но что такое “смысл”?»

Философы пытаются это выяснить уже тысячи лет, с переменным успехом. Но это очень трудно, потому что смысл информации очень сильно зависит от того, как ее нужно интерпретировать. Если вы не знаете, как интерпретировать сообщение, то не понимаете его смысла. Например, если я говорю вам «да», а вы не задавали вопрос, то вы не поймете, значит мое «да». Но если вы спросите: «Можно мне взять еще один кусок пирога?», и я скажу: «Да», то вы поймете, что я имею в виду. Если вы спросите: «Сколько будет два плюс два?», а я скажу: «Да», то вы опять не поймете, что я имею в виду (хотя, наверно, начнете думать, что у меня есть только один ответ на любой вопрос). Но если вы поинтересуетесь: «Сколько будет два плюс два?», и я скажу: «Четыре», то вы поймете этот ответ. Смысл чем-то похож на порнографию: когда мы его видим, то сразу узнаем.

Вернемся к нашей строке битов: 1001001 1101110 0100000 1110100 1101000 1100101 0100000 1100010 1100101 1100111 1101001 1101110 1101110 1101001 1101110 1100111. Если интерпретировать это сообщение согласно коду ASCII, эта строка означает «В начале…». Но само по себе, без указания на то, как его нужно интерпретировать, оно ничего не означает, кроме ряда двоичных цифр. Смысл зависит только от интерпретации, как в следующем разговоре между Алисой и Шалтаем-Болтаем:

– Я не понимаю, при чем здесь «слава»? – спросила Алиса.

Шалтай-Болтай презрительно улыбнулся.

– И не поймешь, пока я тебе не объясню, – ответил он. – Я хотел сказать: «Разъяснил, как по полкам разложил!»

– Но «слава» совсем не значит: «разъяснил, как по полкам разложил!» – возразила Алиса.

– Когда я беру слово, оно означает то, что я хочу, не больше и не меньше, – сказал Шалтай презрительно.

– Вопрос в том, подчинится ли оно вам, – сказала Алиса.

– Вопрос в том, кто из нас здесь хозяин, – сказал Шалтай-Болтай.

– Вот в чем вопрос!

Льюиса Кэрролла, автора «Алисы в стране чудес» и «Алисы в Зазеркалье», на самом деле звали Чарльз Доджсон, и он был философом-номиналистом. Доджсону очень нравилась идея о том, что слова означают лишь то, что он хочет, чтобы они означали.

Часто зависимость смысла от интерпретации выражают с помощью понятия языковых игр Людвига Витгенштейна. Это игры, где значение слов рассматривается с точки зрения действий, к которым они побуждают игроков. Например, работа «Философские исследования» Витгенштейна начинается с простой языковой игры: строитель возводит здание из камней, колонн, плит и балок. Если он произносит «камень», помощник передает ему камень. Если он говорит «плита», помощник передает ему плиту. В этой самой простой из языковых игр мы видим, что помощник знает, что имеет в виду строитель. Когда тот говорит «камень», то на самом деле имеет в виду «подай мне камень».

Когда языковая игра становится более сложной, смысл значений становится труднее понять в динамике игры. Отчасти это связано с тем, что естественный человеческий язык неоднозначен: у одного и того же утверждения может быть множество возможных значений. Кроме того, мы пока не совсем понимаем, как мозг реагирует на язык, так что даже если мы знаем, что «камень» означает «передай мне камень», нам неизвестен физический механизм, с помощью которого мозг слушателя понимает этот смысл. Поэтому было бы полезно найти пример ситуации, когда информацию можно интерпретировать только так и никак иначе и где нам полностью известен механизм, вызывающий реакцию слушателя.

Такой механизм, например, дают нам компьютеры. Они понимают языки, которые называют машинными языками (Java, C, Fortran, BASIC). Такие языки состоят из простых команд, например print («напечатать») или add («прибавить»), которые можно соединить так, чтобы дать компьютеру детальную инструкцию по выполнению сложной задачи. Если принять идею Витгенштейна о том, что значение элемента информации заключается в действии, которое она вызывает, то смысл компьютерной программы, написанной на том или ином машинном языке, заключается в действиях, которые выполняет компьютер, интерпретируя эту программу.

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

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

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

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

 

Компьютер

«Что такое компьютер?» – спросил я студентов. Молчание. Это весьма странно. Я-то уверен, что мои ученики пользуются компьютерами с годовалого возраста.

Я ждал. Наконец, кто-то произнес: «Это машина, которая управляет данными, представленными в виде нулей и единиц». Другой студент возразил: «Но ты говоришь о цифровом компьютере. А как насчет аналогового компьютера? Он ведь хранит информацию в виде непрерывных сигналов напряжения».

В итоге все согласились с более широким определением: компьютер – это машина, которая обрабатывает информацию.

«Хорошо, – сказал я. – Тогда что было первым компьютером?» Студенты оживились: «Mark I»; «Механический компьютер Бэббиджа»; «Логарифмическая линейка»; «Абак»; «Мозг»; «ДНК».

Поднялась еще одна рука: «Цифры!»

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

«Для начала, – сказал я, – давайте рассмотрим машины, сделанные людьми и предназначенные для обработки информации, а вопрос о людях как машинах для обработки информации оставим на потом».

Компьютеры появились на заре развития человечества. Первыми компьютерами, как и первыми инструментами, были камни. Calculus по-латыни значит «галька», и первые вычисления велись путем ее раскладки и перекладки. «Каменные» компьютеры не обязательно были маленькими. Вполне возможно, что Стоунхендж был большим каменным компьютером, вычисляющим соотношение между календарем и расположением планет.

Используемая для вычислений технология налагает естественные ограничения на расчеты, которые могут быть выполнены (например, счетные камешки сильно отличаются от «персоналки» Pentium IV). Каменный компьютер хорош для того, чтобы определять количество, складывать и вычитать, но на нем уже неудобно умножать и делить. К тому же чтобы иметь дело с большими числами, нужно очень много камней.

Несколько тысяч лет назад кому-то в голову пришла прекрасная идея объединить камень с деревом: если положить камешки в углубления на деревянной доске, их будет легче передвигать туда-сюда. Потом оказалось, что если использовать вместо камней бусинки, надетые на деревянные прутья, то их не только легко передвигать туда-сюда, но и трудно потерять.

Деревянный компьютер, такой как абак или русские счеты, – мощный вычислительный инструмент. До изобретения электронно-вычислительных машин опытный счетовод мог выполнять вычисления на счетах лучше обученного оператора суммирующей машины! Но абак – не просто удобная машина для того, чтобы перекладывать камешки. Она воплощает в себе важную математическую абстракцию – нуль. Понятие нуля оказалось наиболее важным элементом системы арабских цифр – системы, позволяющей обозначать сколь угодно большие величины и легко с ними управляться. Абак или счеты – механическое воплощение этой системы. Но что появилось раньше, привычные нам цифры или абак? Учитывая происхождение слова zero («нуль») и возраст первого абака, вполне возможно, что устройство возникло раньше, чем оформилась концепция нуля. Иногда машины создают идеи.

А идеи создают машины. Сначала камень, потом дерево: какой материал мог бы стать следующим шагом в обработке информации? Кость. В начале XVII в. шотландский математик Джон Непер открыл способ заменить умножение сложением. Он вырезал из слоновой кости палочки, нанес на них логарифмические отметки, соответствующие тем или иным числам, и стал выполнять умножение, сдвигая палочки друг относительно друга так, чтобы установить правильным образом отметки, соответствующие двум сомножителям. Суммарная длина двух палочек давала произведение двух чисел. Это была первая логарифмическая линейка.

В начале XIX в. один эксцентричный англичанин по имени Чарльз Бэббидж предложил делать компьютеры из металла. Разностная машина Бэббиджа, предназначенная для вычисления элементов тригонометрических и логарифмических таблиц, должна была иметь в своей основе валы и шестерни, подобно паровому двигателю. Положение каждой шестерни задавало ту или иную информацию, а потом машина обрабатывала эту информацию, вводя шестерни в зацепление друг с другом и вращая их. Хотя машина Бэббиджа была полностью механической по своей конструкции, придуманный изобретателем способ организации информации предвосхищал методы, принятые в современных электронно-вычислительных машинах. В ней были центральный процессор и банк памяти, который мог хранить как программу, так и данные.

Несмотря на щедрую финансовую поддержку от британского правительства, Бэббиджу так и не удалось построить разностную машину. В начале XIX в. еще не было ни технологии прецизионной обработки металла, ни достаточно твердых сплавов для валов и шестерней. (Усилия его, однако, не пропали зря: инженеры Бэббиджа как раз и разрабатывали методы точной механической обработки металла и более прочные сплавы, и это значительно ускорило темпы промышленной революции.) К концу XIX в. уже существовали эффективные механические калькуляторы, но большим компьютерам пришлось дожидаться начала XX в., когда были изобретены электронные схемы.

К 1940 г. началась международная конкуренция между различными группами ученых, пытавшимися создать компьютер на основании электронных переключателей, например электронных ламп или электромеханических реле. Первую простую электронно-вычислительную машину в 1941 г. создал немецкий ученый Конрад Цузе. За ним последовали большие компьютеры, построенные в 1940-е гг. в Соединенных Штатах и Великобритании. Эти компьютеры представляли собой несколько комнат, заполненных электронными лампами, переключателями и источниками питания, но их вычислительная мощь была невелика – в миллион раз меньше, чем производительность компьютера, на котором я пишу эту книгу.

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

Начиная с 1960-х гг. развитие фотолитографии – технологии изготовления все более сложных схем – приводило к уменьшению размеров компонентов интегральных схем примерно вдвое каждые восемнадцать месяцев. В результате производительность компьютеров удваивалась с той же скоростью. Это явление называется законом Мура. В настоящее время толщина соединений в интегральных схемах обычного компьютера составляет всего 1000 атомов.

Я бы хотел дать определения некоторых типов компьютеров, о которых мы будем говорить ниже. Цифровой компьютер – это вычислительная машина, которая применяет логические схемы к битам; цифровая машина может быть электронной или механической. Классический компьютер – это компьютер, выполняющий вычисления на основе законов классической механики. Классическая цифровая машина выполняет вычисления, проводя классические логические операции с классическими битами. Электронный компьютер выполняет вычисления с помощью электронных устройств, таких как электронные лампы или транзисторы. Цифровой электронный компьютер – это цифровой компьютер электронного типа.

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

Наконец, квантовый компьютер действует на основании законов квантовой механики. У квантового компьютера есть и цифровые, и аналоговые аспекты.

 

Логические схемы

Чем занимаются наши все более мощные компьютеры? Они обрабатывают информацию, разбивая ее на биты и оперируя с ними, по нескольку битов за один раз. Как мы уже говорили, информация, которая должна быть обработана, представлена компьютеру в форме программы, ряда инструкций на машинном языке. Программа закодирована в память компьютера в виде последовательности битов. Например, команда print («печатать») в коде ASCII выглядит так: P = 1010000; R = 1010010; I = 1001001; N = 1001110; T = 1010100. Компьютер считывает программу по нескольку битов за шаг, интерпретирует эти биты как инструкцию и выполняет ее. Потом он видит следующие несколько битов и выполняет следующую инструкцию. И так далее. Сложные процедуры можно построить из наборов простых инструкций, но об этом мы поговорим позже.

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

Например, логический элемент «не» (not) берет входной бит и инвертирует, «переворачивает» его: «не» превращает 0 в 1, а 1 в 0. Элемент «копировать» (copy) делает копию бита: он превращает входной бит 0 в два выходных бита 00, а входной бит 1 в два выходных бита 11. Элемент «и» (and) берет два входных бита и порождает один выходной бит, который равен 1 в том и только том случае, если оба входных бита равны 1; в остальных случаях на выходе элемента «и» появляется бит 0.

Логические элементы – это устройства, которые берут один или больше входных битов и преобразовывают их в один или больше выходных битов. От левого верхнего по часовой стрелке: элементы «или», «и», «не», «копировать»

Элемент «или» (or) берет два входных бита и порождает выходной бит, который равен 1, если хотя бы один входной бит (или оба) равен 1; если же оба входных бита равны 0, то и результат будет равен 0.

С тех пор как в 1854 г. логик Джордж Буль из Куинс-колледжа в Корке опубликовал работу «Исследование законов мышления» (An Investigation of the Laws of Thought), мы знаем, что любое логическое выражение, включая сложные математические вычисления, можно выразить с помощью операций «не», «копировать», «и» и «или». Эти операции составляют универсальный набор логических элементов.

Законы мышления Буля гласят, что любое логическое выражение или вычисление можно закодировать в виде логической схемы. Цифровой компьютер – это компьютер, который работает с использованием большой логической схемы, состоящей из миллионов логических элементов. Известные нам компьютеры, такие как Mac и PC, – это электронные воплощения цифровых машин.

Элементы «и», «или», «не» и «копировать» можно соединить так, что получится логическая схема. Логическая схема может выполнять более сложные преобразования входных битов

В электронном компьютере биты хранятся в электронных устройствах, например в конденсаторах. Конденсатор похож на ведро, в котором лежат электроны. Чтобы наполнить ведро, к конденсатору прикладывают напряжение. При нулевом напряжении конденсатор не содержит никаких лишних электронов, и его называют незаряженным. Незаряженный конденсатор в компьютере находится в состоянии «0». При напряжении, отличном от нуля, конденсатор содержит много лишних электронов и находится в состоянии «1».

Конденсаторы – не единственные электронные устройства, которые используются в компьютерах для хранения информации. На жестком диске вашего компьютера биты записываются в виде крошечных магнитов: магнит, чей северный полюс указывает вверх, означает 0, а магнит, чей северный полюс указывает вниз, показывает 1. Как всегда, любое устройство, у которого есть два надежно различаемых состояния, может хранить бит.

В обычном цифровом электронном компьютере логические элементы создаются на транзисторах. Транзистор можно воспринимать как электронный выключатель. Когда он находится в разомкнутом положении, через него не может идти электрический ток. Когда выключатель находится в замкнутом положении, ток идет. У транзистора есть два входа и один выход. В транзисторе n-типа, когда на первый вход подано низкое напряжение, выключатель разомкнут, и электрический ток не может идти из второго входа к выходу; если же напряжение на первом входе увеличить, ток начинает идти. В транзисторе p-типа все наоборот: когда на первый вход подано низкое напряжение, выключатель замкнут, и ток может идти из второго входа к выходу. Важно, что транзисторы n– и p-типов можно соединить и тем самым создать логические элементы «и», «или», «не» и «копировать».

Когда компьютер выполняет вычисления, он, в сущности, делает только одно: применяет логические элементы к битам. Компьютерные игры, редактирование текста, математические вычисления и рассылка спама – все они имеют началом процесс электронного преобразования битов, по одному или попарно.

 

«Невычислимость»

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

В 1930-х гг. австрийский логик Курт Гёдель показал, что в любой достаточно сложной математической теории есть утверждения, которые, если они окажутся ложными, сделают теорию противоречивой, и при этом их истинность доказать невозможно. Иначе говоря, любые достаточно мощные логические системы содержат недоказуемые утверждения. Вычислительный аналог недоказуемого утверждения – это невычислимая величина.

Одна известная проблема, решение которой невычислимо, – это так называемая проблема остановки. Допустим, мы запрограммировали компьютер, и он начал работать по программе. Остановится ли компьютер когда-нибудь, чтобы выдать результат, или он будет работать вечно? Нет никакой стандартной процедуры, позволяющей вычислить ответ на этот вопрос. Иначе говоря, ни одна компьютерная программа не может взять в качестве входных данных другую компьютерную программу и определить со 100 %-ной вероятностью, остановится первая программа или нет.

Конечно, для многих конкретных программ можно легко выяснить, остановится компьютер или нет. Возьмем, например, программу из одной строки «print 1 000 000 000» – компьютер, получивший на входе эту программу, напечатает число 1 000 000 000 и остановится. Общее правило, однако, таково: безостановочная работа компьютера, сколь долго она бы ни продолжалась, не дает оснований утверждать, что компьютер когда-нибудь не остановится.

Проблема остановки кажется на первый взгляд абстрактной, но у нее есть множество практических следствий. Возьмем, например, отладку компьютерных программ. Большинство из них содержат «баги», или ошибки, из-за которых компьютер ведет себя непредсказуемым образом, например «зависает». Было бы неплохо иметь «универсальный отладчик» для компьютерных программ. Такой отладчик брал бы в качестве входных данных компьютерную программу вместе с описанием того, что она должна делать, и проверял бы, выполняет ли эта программа свою задачу.

Увы, создать такой отладчик невозможно. Универсальному отладчику нужно выяснить, дает ли входная программа правильную выходную информацию. Поэтому первое, что должен проверить универсальный отладчик, – есть ли вообще у входной программы какие-либо выходные данные. Но чтобы это проверить, он должен решить проблему остановки, а это, как мы знаем, невозможно. Единственный способ выяснить, остановится ли программа, – запустить ее и посмотреть, что будет, а раз так, универсальный отладчик нам уже не понадобится. И когда в следующий раз компьютер «зависнет» из-за какого-нибудь «бага», мы сможем найти утешение в глубокой математической истине: не существует никакого систематического способа устранить все ошибки! Впрочем, можно просто чертыхнуться и перезагрузить компьютер.

Гёдель показал, что если допустить рекурсию – ссылку процедуры на саму себя, это автоматически приводит к логическим парадоксам; британский математик Алан Тьюринг показал, что рекурсии приводят к невычислимости. Заманчиво поискать подобные парадоксы в человеческом поведении. В конце концов, люди – мастера по части упоминаний о себе любимом (кажется, некоторые не способны ни к каким другим типам ссылок), и, конечно же, люди подвержены парадоксам.

Люди славятся неспособностью предсказывать свои собственные действия. Эта неспособность – важный элемент того, что мы называем свободой воли. Термин «свобода воли» относится к нашей кажущейся свободе принимать решения. Например, когда я прихожу в ресторан и беру меню, я и только я решаю, что заказать, и, прежде чем я приму это решение, даже я сам не знаю, что выберу. Наш собственный выбор в будущем неисповедим для нас самих! (Тем не менее для других он может быть не таким уж и непостижимым. Много лет мы с женой ходим в ресторан Josie’s в Санта-Фе. Тщательно изучив меню, я каждый раз заказываю половину порции фаршированных перцев с красным и зеленым чили и посоле вместо риса. При этом я сам уверен, что проявляю свободную волю: до тех пор пока я не выбрал полпорции фаршированных перцев, мне кажется, что я могу выбрать все что угодно. Но моя жена-то с самого начала знает, что именно я закажу!)

Непостижимая природа наших решений при использовании свободы воли – это аналог проблемы остановки: мы приводим в движение свои мысли, но не знаем, куда они приведут и приведут ли куда-нибудь вообще. И даже если они куда-то приведут, мы не знаем, куда, – до тех пор, пока там не окажемся.

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

Эта прекрасная загадочность чистого разума возвращает нас к вопросу о роли логики во Вселенной. Размышляя у себя дома в Кордове над трудами Аристотеля, мусульманский философ XII в. Аверроэс (ибн-Рушд) пришел к выводу, что бессмертна в человеке не душа, но способность мыслить. Разум бессмертен именно потому, что не принадлежит никому в отдельности; это общее свойство всех мыслящих существ.

Компьютеры, конечно, обладают способностью мыслить и способностью к рекурсии. Именно поэтому их действия с необходимостью являются непостижимыми. Следовательно, по мере того как они становятся более мощными и выполняют все более разнообразный набор задач, их непредсказуемость приближается к непредсказуемости человека. По логике Аверроэса, они начинают обладать той же степенью бессмертия, что и люди.

Запрограммировать компьютер так, чтобы он выполнял простые человеческие задачи, очень сложно: заставить робота пропылесосить комнату или освободить посудомоечную машину, даже при минимальных требованиях к качеству, – проблема, над которой бьются уже несколько поколений исследователей в области искусственного интеллекта. И наоборот, не нужно больших усилий, чтобы запрограммировать компьютер так, чтобы он вел себя непредсказуемо и сводил нас с ума. С точки зрения способности все запутать и испортить компьютер с каждым днем становится все больше похож на человека.

 

Глава 3

Вычислительная Вселенная

 

История Вселенной, часть первая

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

Конечно, люди начали размышлять о происхождении Вселенной задолго до появления современной науки. Мифы о Вселенной столь же стары, как и любые другие мифы. В норвежской мифологии Вселенная начинается с того, что гигантская корова вылизывает богов из соленых краев изначальной бездны. В японской мифологии Япония рождается в результате кровосмесительной связи брата и сестры, бога Идзанаги и богини Идзанами. В одном индуистском мифе о сотворении мира говорится, что все существа происходят из топленого масла, собранного из тысячеглавого Пуруши, принесенного в жертву богами. И лишь недавно, в течение последних 100 лет или около того, астрофизики и космологи построили детальную историю Вселенной, подкрепленную наблюдательными данными.

Вселенная возникла немногим менее 14 млрд лет назад, в результате грандиозного события, которое называют Большим взрывом. По мере того как она расширялась и остывала, из «космического супа» формировались знакомые нам формы материи. В течение трех минут после Большого взрыва образовались самые легкие атомы – водород и гелий. Эти «кирпичики» собирались вместе под действием силы тяжести, и спустя 200 млн лет после Большого взрыва из них сформировались первые звезды и галактики. В ходе термоядерного «горения» звезд образовались элементы вплоть до железа, а еще более тяжелые элементы появились позднее, когда эти первые звезды стали взрываться как сверхновые. Наше Солнце и наша Солнечная система сформировались около 5 млрд лет назад, а жизнь на Земле возникла немногим более миллиарда лет спустя.

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

Исследуя Млечный путь – нашу собственную Галактику – мы видим множество звезд, похожих на нашу. А когда мы смотрим дальше, то видим множество галактик, очень похожих на Млечный путь. В том, что мы видим, есть определенный сценарий, и в нем снова и снова разворачиваются одни и те же звездные драмы, но с участием других актеров-звезд и в других местах. Если Вселенная имеет бесконечную протяженность, то в конце концов где-нибудь будет разыгран любой возможный сценарий, если он разрешен законами физики. История Вселенной – своеобразная космическая мыльная опера, где актеры разыгрывают перед нами все возможные перипетии космической драмы.

 

Энергия, или Первое начало термодинамики

Давайте познакомимся с главными героями космической мыльной оперы. В традиционной космологии считается, что ведущий актер – это энергия, лучистая энергия света и энергия массы протонов, нейтронов и электронов. Что такое энергия? В средней школе вы могли узнать, что энергия – это способность выполнять работу. Энергия заставляет физические системы что-то делать.

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

Квантовая механика описывает энергию через квантовые поля – что-то вроде универсальной «ткани» Вселенной. Переплетения «нитей» этой «ткани» дают элементарные частицы – фотоны, электроны, кварки. Энергия, которую мы видим вокруг, будь это Земля, звезды, свет или тепло, извлечена из квантовых полей посредством расширения Вселенной. Гравитация – это сила притяжения, которая соединяет вещи друг с другом. Острые на язык американские школьники говорят: «Гравитация сосет». Действительно, по мере того как Вселенная расширяется (а она продолжает расширяться до сих пор), сила тяжести высасывает энергию из квантовых полей. Энергия, находящаяся в квантовых полях, почти всегда положительна. Эта положительная энергия в точности сбалансирована отрицательной энергией гравитационного притяжения. По мере расширения Вселенной становится доступно все больше положительной энергии в форме вещества и света, но ее компенсирует отрицательная энергия в форме силы притяжения гравитационного поля.

Общепринятая история Вселенной уделяет большое внимание энергии: сколько ее? Где она? Что она делает? Однако в той версии, которая изложена в этой книге, главным действующим лицом в физической истории Вселенной является информация. В конечном счете, информация и энергия дополняют друг друга: энергия заставляет физические системы что-то делать, а информация говорит, что именно нужно делать.

 

Энтропия, или Второе начало термодинамики

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

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

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

В качественном цифровом изображении может содержаться около миллиарда битов визуальной информации. Откуда я взял эту цифру? Тысяча пикселей на дюйм – это высокое разрешение, близкое к тому, на которое способен невооруженный глаз. При таком разрешении каждый квадратный дюйм фотографии содержит миллион пикселей. В цветной фотографии размером 6 × 8 дюймов (15 × 20 см) с разрешением 1000 пикселей на дюйм содержится 48 млн пикселей. Далее, у каждого пикселя есть цвет. Цифровые фотоаппараты, как правило, используют 24-битную кодировку, чтобы создать 16 млн цветов, – опять-таки это близко к количеству цветов, которые может различить человеческий глаз. Таким образом, в цветной цифровой фотографии размером 6 × 8 дюймов с разрешением 1000 пикселей на дюйм и 24-битным цветовым разрешением содержится 1 152 000 000 битов информации. (Более простой способ увидеть, сколько битов нужно, чтобы создать фотографию, – посмотреть, как быстро заполняется память вашего цифрового фотоаппарата, когда вы делаете снимки. В обычном цифровом фотоаппарате снимок с высоким разрешением занимает около 3 млн байтов (3 мегабайта). Байт состоит из 8 битов, так что каждый снимок в цифровом фотоаппарате состоит примерно из 24 млн битов).

1 152 000 000 битов – это очень много информации, но количество информации, нужной для описания невидимых колебаний атомов зерен галоида серебра в обычной фотопленке, намного больше. Чтобы их описать, потребовалось бы больше миллиона миллиардов миллиардов битов (1024, или единица и 24 нуля). Невидимые колеблющиеся атомы содержат значительно больше информации, чем видимая фотография, которую они составляют. Фотография, содержащая то же самое количество видимой информации, что и невидимая информация в грамме атомов, была бы размерами со штат Мэн.

Количество битов, содержащихся в колеблющихся атомах, из которых состоит фотографическое изображение на пленке, можно оценить следующим образом. Размер одного зерна галоида серебра – около одной миллионной метра, и в нем примерно триллион атомов. На фотопленке находятся десятки миллиардов зерен галоида серебра. Отдельный атом, который (при комнатной температуре) находится в своем бесконечном танце, требует для своего описания от 10 до 20 битов. Следовательно, общий объем информации, хранимой атомами на фотографии, составляет 1023 бита. Один миллиард (109) битов информации, видимой на цифровой фотографии, представляет собой лишь небольшую долю от этого количества. Остаток информации, содержащейся в веществе обычной фотографии, невидим. Эта невидимая информация и есть энтропия атомов.

 

Свободная энергия

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

Возьмите яблоко и откусите от него кусочек. Вы только что проглотили свободную энергию. Ваша пищеварительная система содержит химические вещества, так называемые ферменты, которые превращают сахар яблока в глюкозу – форму сахара, в которой его могут непосредственно использовать ваши мышцы. Каждый грамм глюкозы содержит несколько килокалорий свободной энергии. Переварив сахар, вы получили несколько сотен килокалорий и сможете пробежать несколько миль. (Калория – это количество энергии, необходимой для нагрева одного грамма воды на один градус Цельсия. Килокалорию, или 1000 калорий, называют также большой калорией, а диетологи часто для простоты опускают слово «большая». Чайная ложка сахара содержит десять килокалорий свободной энергии. Между прочим, сто килокалорий – это энергия, достаточная для того, чтобы поднять автомобиль «Фольксваген» метров на тридцать над дорогой!)

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

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

Тем не менее в обоих случаях энергия и информация (видимая и невидимая) – два главных героя вселенской драмы. Вселенная, которую мы видим вокруг, – результат взаимодействия между этими двумя величинами, и этим взаимодействием управляют первое и второе начала термодинамики. Энергия сохраняется. Информация никогда не уменьшается. Требуется энергия, чтобы физическая система перешла из одного состояния в другое. Иначе говоря, для обработки информации необходима энергия. Чем больше энергии можно приложить, тем быстрее происходят физические изменения и тем быстрее обрабатывается информация. Максимальная скорость, с которой физическая система может обрабатывать информацию, пропорциональна ее энергии. Чем больше энергии, тем быстрее меняются биты. Земля, воздух, огонь и вода в конечном итоге состоят из энергии, но разные формы, которые они принимают, определяются информацией. Чтобы что-то сделать, нужна энергия. Чтобы описать сделанное, нужна информация. Энергия и информация естественным образом переплетены между собой.

 

История Вселенной, часть вторая

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

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

Вселенная началась менее 14 млрд лет назад в виде гигантского взрыва. Но что было до Большого взрыва? Ничего!. Не было ни времени, ни пространства. Еще раз: не то чтобы пространство было пустым – оно отсутствовало; время же имело свое начало.

Нет ничего страшного в идее начала из ничего. Например, положительные числа начинаются с нуля (с шунья, «пустоты»). До нуля положительных чисел нет. Так и до Большого взрыва не было ничего – ни энергии, ни битов.

А потом – внезапно – возникла Вселенная. Началось время, а с ним и пространство. Новорожденная Вселенная была простой; свежесотканная ткань квантовых полей содержала очень мало информации и энергии. Для ее описания достаточно было всего нескольких битов. Если, как предполагают некоторые физические теории, существует всего одно возможное начальное состояние Вселенной и всего один самосогласованный набор физических законов, то для описания этого начального состояния не требуется ни одного бита информации! Как мы помним, чтобы создать информацию, должна существовать альтернатива: 0 или 1, «да» или «нет», то или это. Если же начальному состоянию Вселенной не было никаких альтернатив, то для ее описания нужен был нуль битов информации и ровно нуль битов она содержала в себе. Такой первоначальный недостаток информации соответствует представлению о том, что Вселенная возникла из ничего.

Возникнув, Вселенная сразу начала расширяться, и по мере расширения она вытягивала все больше энергии из квантовой ткани пространства и времени. Современные физические теории утверждают, что количество энергии на ранних этапах развития Вселенной росло очень быстро (этот процесс называют «инфляцией»), а количество информации увеличивалось медленнее. В начале Вселенная оставалась простой и упорядоченной: для ее описания хватало всего нескольких битов информации. Энергия, которая в ней возникала, была свободной энергией.

Впрочем, такой дефицит информации продлился недолго. По мере того как расширение Вселенной продолжалось, свободная энергия в квантовых полях превращалась в теплоту, увеличивая энтропию, и образовались все виды элементарных частиц. Эти частицы были горячими: они колебались просто-таки яростно. Чтобы описать эту «пляску», требовалось много информации. Прошла всего одна миллиардная доля секунды – время, за которое свет проходит расстояние в тридцать сантиметров, и количество информации, содержавшейся во Вселенной, достигло порядка 100 миллионов миллиардов миллиардов миллиардов миллиардов миллиардов, или 1050 битов. (Если угодно, это примерно по биту на каждый из атомов, из которых состоит наша Земля.) Чтобы сохранить столько информации в визуальной форме, потребовалась бы фотография размером с Млечный путь. Большой взрыв был также и Битовым взрывом.

Пока энергия в Мире меняла форму, Вселенная также обрабатывала и преобразовывала биты, заполняя свой «регистр памяти» результатами обработки этой информации. После той, самой первой, миллиардной доли секунды Вселенная выполнила приблизительно 10 000 миллиардов миллиардов миллиардов миллиардов миллиардов миллиардов миллиардов (1067) элементарных операций с битами, и много что произошло за это время. Но что вычисляла Вселенная во время этой первой миллиардной доли секунды? Писатели-фантасты считают, что за это время – намного быстрее, чем мы успеваем моргнуть глазом, – могли возникнуть и исчезнуть целые цивилизации! У нас нет никаких доказательств этого. Более вероятно, что эти первые операции представляли собой случайные столкновения элементарных частиц.

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

Расширяясь, Вселенная остывала. Элементарные частицы колебались все медленнее. Количество информации, нужное для описания их «танца», оставалось почти таким же и лишь постепенно увеличивалось со временем. Может показаться, что для описания более медленных колебаний нужно меньше битов, и действительно, для описания их скорости требовалось меньше битов. В то же время объем пространства, в котором колебались частицы, возрастал, и нужно было все больше битов для описания их положений. Поэтому общее количество информации оставалась постоянным или росло в соответствии со вторым началом термодинамики.

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

Частицы формировались из «космического супа» в порядке энергий, необходимых для удержания их в стабильном состоянии. Протоны и нейтроны – частицы, из которых состоят ядра атомов, – сконденсировались через одну миллионную долю секунды после Большого взрыва при температуре приблизительно в 10 миллионов миллионов (1013) °С. Атомные ядра начали формироваться примерно через одну секунду, при температуре около миллиарда градусов. К трехминутной отметке были сформированы ядра легких атомов – водород, гелий, дейтерий, литий, бериллий и бор. Однако электроны все еще носились слишком быстро, чтобы ядра могли их захватить и сформировать полные атомы. Спустя триста восемьдесят тысяч лет после Большого взрыва, когда температура Вселенной стала немного ниже 10 000 °C, электроны, наконец, стали достаточно холодными для захвата, и стали появляться стабильные атомы.

 

Порядок из хаоса (эффект бабочки)

До образования атомов почти вся информация во Вселенной находилась на уровне элементарных частиц. Почти все биты были записаны положениями и скоростями протонов, электронов и т. д. На более высоких уровнях Вселенная все еще содержала очень мало информации: она была невыразительной и однородной. (Насколько однородной? Представьте себе поверхность озера безветренным утром, такую спокойную, что отражения деревьев в воде неотличимы от самих деревьев. Представьте себе Землю, где нет холмов выше кротовой норы. Ранняя Вселенная была еще более однородной.)

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

Но как появилась эта структура? Откуда взялись биты информации? Эти биты происходят из самой ранней Вселенной, о которой мы только что говорили. Их происхождение можно объяснить законами квантовой механики вместе с законами тяготения.

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

Теория квантовой механики дает начало крупномасштабной структуре благодаря своему неустранимо вероятностному характеру. Каким бы парадоксальным это ни казалось, квантовая механика создает разнообразие и структуру, потому что она по определению неопределенна.

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

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

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

Способность гравитации усиливать небольшие флуктуации плотности – отражение физического феномена, которое называют «хаосом». В хаотической системе крошечные различия со временем усиливаются. Возможно, самый известный пример хаоса – так называемый эффект бабочки. Уравнения, отражающие движения в атмосфере Земли, хаотичны по своей сути; поэтому крошечное изменение, скажем взмах крыла бабочки, со временем и с расстоянием может усиливаться и через месяцы и километры превратиться в ураган. Крохотные квантовые флуктуации плотности энергии во время Большого взрыва – это те самые «бабочки», которые в результате превратились в крупномасштабную структуру Вселенной.

Каждая галактика, звезда и планета обязаны своей массой и положением квантовым событиям в начале Вселенной. Но не только: эти события также стали источниками мелких деталей Вселенной. Случайность – ключевой элемент языка природы. Каждый бросок «квантовых костей» создает в мире еще несколько битов различий и подробностей. Эти детали накапливаются и формируют зачатки всего разнообразия Вселенной. Каждое дерево, каждая ветка, лист, клетка и спираль ДНК обязаны своей особенной формой какому-то случайному броску в этой квантовой игре. Если бы не законы квантовой механики, Вселенная до сих пор была бы невыразительной и пустой. Возможно, азартные игры на деньги и являются воплощением ада, но квантовая игра в кости – божественный промысел!

 

Универсальный компьютер

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

Универсальный компьютер может сделать с информацией почти все что угодно. Изобретатели универсальных компьютеров и универсальных языков, Алонзо Черч и Алан Тьюринг, выдвинули гипотезу, что на универсальном компьютере может быть выполнена любая возможная математическая манипуляция, то есть что универсальный компьютер может создавать математические построения любого уровня сложности. Но сам он не должен быть сложной машиной; все, что он должен уметь, – это брать биты, по одному или по два за раз, и выполнять с ними простые операции. Чтобы совершить любое желаемое преобразование над сколь угодно большим набором битов, достаточно многократно выполнять операции всего с одним или двумя битами за раз. Любая машина, которая может выполнить такую последовательность простых логических операций, является универсальным компьютером.

Важно, что универсальный компьютер можно запрограммировать так, чтобы преобразовывать информацию любым желаемым образом, и любой универсальный компьютер можно запрограммировать так, чтобы он преобразовывал информацию точно так же, как это делает любой другой универсальный компьютер. Таким образом, любой универсальный компьютер может моделировать другой, и наоборот. Такая взаимомоделируемость означает, что все универсальные компьютеры могут выполнять один и тот же набор задач. (Эта особенность вычислительной универсальности нам знакома: если какая-то программа работает на PC, ее, безусловно, можно видоизменить так, что она будет работать на Mac.)

Конечно, на Mac программа может работать медленнее, чем на PC, и наоборот. Программа, написанная для универсального компьютера определенного типа, на нем обычно работает быстрее, чем ее «переводная» версия на другом компьютере. Но эта переведенная программа все равно будет работать. Можно показать, что любой универсальный компьютер может не только имитировать любой другой универсальный компьютер, но и делать это эффективно. При переводе программы с одного компьютера на другой она будет работать медленнее, но ненамного.

 

Цифровое и квантовое

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

Идея о том, что Вселенная в самой своей основе может являться цифровым компьютером, возникла несколько десятилетий назад. В 1960-х гг. Эдвард Фредкин, бывший тогда профессором Массачусетского технологического института, и тот самый Конрад Цузе, который сконструировал первые электронные цифровые компьютеры в Германии в начале 1940-х, предположили, что Вселенная, в сущности, является универсальным цифровым компьютером. (Сравнительно недавно эта концепция нашла последователя в лице ученого в области информатики Стивена Вольфрама.) Идея очень привлекательна: цифровые системы просты и при этом способны воспроизводить поведение любой степени сложности. В частности, компьютеры, архитектура которых воспроизводит структуру пространства и времени (так называемые клеточные автоматы), могут эффективно воспроизводить движения классических частиц и взаимодействия между ними.

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

У двух компьютеров одна и та же вычислительная мощность, если каждый из них может эффективно моделировать другой. Ключевое слово здесь «эффективно». Законы физики могут эффективно моделировать цифровые вычисления; Вселенная без труда включает в себя обычные цифровые компьютеры. Но поставим вопрос иначе: может ли наш обычный компьютер эффективно смоделировать Вселенную? Представляется, что это невозможно.

На первый взгляд кажется, что ответ должен быть иным. В конце концов, законы физики выглядят просто. Даже если они окажутся немного более сложными, чем мы сейчас думаем, все же это математические законы, которые могут быть выражены на обычном машинном языке; то есть обычный компьютер может смоделировать законы физики и их следствия. Если бы у нас был достаточно большой компьютер, то мы могли бы запрограммировать его (например, с помощью языка Java), описав начальное состояние Вселенной и законы физики, и запустить в работу. В итоге мы могли бы ожидать, что этот компьютер даст точное описание состояния Вселенной в любой последующий момент.

Проблема такого моделирования не в том, что оно невозможно, а в том, что оно неэффективно. Природа Вселенной, по самой своей сути, квантово-механическая, а обычным компьютерам нелегко моделировать квантово-механические системы. Почему? Обычным компьютерам квантовая механика кажется настолько же странной и парадоксальной, как и людям. А поэтому, чтобы смоделировать даже крошечный фрагмент Вселенной, состоящий, скажем, всего из нескольких сотен атомов, на интервале времени в крошечную долю секунды, обычному компьютеру понадобилось бы больше памяти, чем атомов во всей Вселенной, и больше времени, чем она существует. Это действительно неэффективно!

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

Но как насчет квантового компьютера? Несколько лет назад, следуя предложению физика Ричарда Фейнмана, я показал, что квантовые компьютеры способны моделировать любую систему, которая подчиняется известным законами физики (и даже пока еще неизвестным!), причем моделировать просто и эффективно.

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

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

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

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

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

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

 

Вычисления и сложность

Вселенная, которую мы видим за окном, удивительно сложна, она полна разнообразных форм и превращений. Тем не менее, насколько нам известно, законы физики просты. Как такие простые законы позволяют существовать таким сложным явлениям?

Чтобы ответить на этот вопрос, давайте сначала рассмотрим старые (и ошибочные) представления о том, почему Вселенная так сложна.

В последние годы XIX в. три физика – Джеймс Клерк Максвелл, Людвиг Больцман и Джозайя Уиллард Гиббс – обнаружили, что термодинамическая величина, известная как энтропия, представляет собой, как мы уже говорили, форму информации, а именно информацию, которая не известна. Вдохновленный концепцией информации, Больцман предложил оригинальное объяснение порядка и разнообразия Вселенной. Предположим, сказал Больцман, что информация, которая определяет Вселенную, является результатом абсолютно случайного процесса, как если бы значение каждого бита определялось подбрасыванием монетки.

Это объяснение порядка и разнообразия Вселенной эквивалентно известному сценарию, предложенному, по-видимому, французским математиком Эмилем Борелем в начале XX в. Его мысленная модель представляла собой миллион обезьян-машинисток (singes dactylographes), стучащих по клавишам печатных машинок по десять часов в день. Борель заявил, что всего через год среди «текстов», напечатанных обезьянами, вполне могут оказаться все книги из лучших библиотек мира. (Впрочем, продолжил он, вероятность того, что это действительно случится, бесконечно мала.)

Образ печатающих обезьян Бореля позже позаимствовал британский астроном и математик Артур Эддингтон – в его варианте обезьяны могли бы воспроизвести все книги Британского музея. Версию Эддингтона подхватил сэр Джеймс Джинс, который ошибочно приписал ее Томасу Гексли. В дебатах с епископом Уилберфорсом относительно «Происхождения видов» Дарвина, состоявшихся в 1860 г., Гексли действительно упоминал об обезьянах. Уилберфорс спросил тогда, произошел ли Гексли от обезьяны, и если да, то со стороны дедушки или бабушки, на что Гексли ответил, что предпочел бы произойти от обезьяны, чем от человека большого ума, который использует сей дар на службе лжи. Но ни в одном из современных отчетов об этих дебатах не упоминается об обезьянах, корпящих над пишущими машинками (которые в то время еще не были изобретены).

К середине XX в. идея об обезьянах, случайным образом воспроизводящих всю мировую литературу, проникла на страницы журнала The New Yorker в рассказе Рассела Мэлони «Несокрушимая логика». Обезьяны-машинистки начали то и дело появляться в произведениях Айзека Азимова, Дугласа Адамса и других. Типичная история о печатающих обезьянах начинается с того, что некий исследователь собирает команду обезьян и учит их печатать на машинке. Одна обезьяна вставляет в машинку чистый лист бумаги и начинает печатать: «Гамлет. Акт I, сцена 1…»

То, что какая-нибудь обезьяна напишет «Гамлета», безусловно, возможное событие. Равным образом возможно, что информация, определяющая Вселенную, появилась в столь же случайном процессе. В конце концов, если «орел» обозначить как 1, а «решку» – как 0, то, неустанно подбрасывая монету, мы в конечном итоге можем получить любую желаемую строку битов конечной длины, включая и ту, которая описывает Вселенную в целом.

Очевидное возражение против возможности создать длинный осмысленный текст в ходе абсолютно случайных процессов было высказано больше 2000 лет назад Цицероном. В его «De natura deorum» («О природе богов») стоик Луцилий Бальб представляет следующий аргумент против позиции атомистов (таких как Демокрит), утверждавших, что порядок природы проистекает из случайных столкновений атомов: «Так как же мне не удивляться человеку, убедившему себя в том, что существуют какие-то плотные и неделимые тела, которые носятся [в пространстве] под действием силы тяжести, и что от случайных столкновений между этими телами образовался прекраснейшим образом украшенный мир? Не понимаю, почему бы человеку, который считает, что так могло произойти, не поверить также, что если изготовить из золота или из какого-нибудь другого материала в огромном количестве все двадцать одну буквы, а затем бросить эти буквы на землю, то из них сразу получатся «Анналы» Энния, так что их можно будет тут же и прочитать. Вряд ли по случайности может таким образом получиться даже одна строка».

Давайте перефразируем аргумент Бальба в применении к обезьянам. Хотя Вселенная могла быть создана целиком и полностью в результате случайных бросков монетки, но это очень маловероятно, учитывая конечный возраст и размеры Вселенной. На самом деле вероятность получить столь упорядоченную Вселенную, как наша, в результате случайных бросков монетки настолько мала, что практически равна нулю. Чтобы увидеть, насколько мала эта вероятность, вернемся к метафоре об обезьянах. На стандартной клавиатуре пишущей машинки около пятидесяти клавиш. Даже если мы забудем о заглавных буквах, вероятность того, что обезьяна напечатает букву «к», составляет один к пятидесяти. Вероятность того, что обезьяна напечатает слог «ко» – одна пятидесятая пятидесятой, или 1:2500. Вероятность того, что обезьяна напечатает слово «кот», составляет одну пятидесятую пятидесятой пятидесятой, или 1:125 000. Вероятность того, что обезьяна напечатает фразу из двадцати двух букв – приблизительно 10–38. Потребовался бы миллиард миллиардов обезьян, каждая из которых печатает десять букв в секунду на протяжении примерно миллиарда миллиардов секунд существования Вселенной, для того чтобы всего одна из них напечатала слова «Гамлет. Акт I, сцена 1».

Вот практический пример: популярный веб-сайт  может «завербовать» ваш компьютер в качестве «обезьяны» в попытке воспроизвести случайным образом отрывки из Шекспира. Рекордом на данный момент являются первые двадцать четыре буквы из второй части «Генриха IV». На то, чтобы случайно набрать их, виртуальным «машинисткам» потребовалось 2 737 850 миллионов миллиардов миллиардов миллиардов обезьяно-лет.

Сочетание очень малых вероятностей с конечным возрастом и протяженностью видимой Вселенной делает абсолютно случайное возникновение порядка крайне маловероятным. Если бы возраст или размеры Вселенной были бесконечными, то когда-нибудь или где-нибудь могли бы появиться все возможные паттерны, тексты и строки битов. Но даже в бесконечной Вселенной довод Больцмана оказывается несостоятельным. Если бы порядок, который мы видим, возник совершенно случайно, то всякий раз, когда мы получали новые биты информации, они тоже, скорее всего, были бы случайными. Но это не так: новые биты, как показывают наблюдения, редко оказываются совершенно случайными. Если вы в это не верите, просто подойдите к окну и посмотрите на улицу или возьмите яблоко и откусите от него кусочек. Любое из этих действий создаст новые, но неслучайные биты.

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

Короче говоря, объяснение порядка по Больцману не является невозможным. Однако оно чрезвычайно маловероятно.

Просто ради удовольствия давайте посмотрим, сколько строк из «Гамлета» могло бы быть создано в ходе случайных процессов с тех пор, как возникла Вселенная. Вселенная полна фотонов – частиц света, оставшихся после Большого взрыва. Существует приблизительно 1090 фотонов, и в каждом фотоне «записано» всего несколько случайных битов. Если мы интерпретируем эти биты как буквы английского языка, то где-нибудь найдется несколько фотонов, которые можно прочесть как «Гамлет. Акт I, сцена 1. Эльсинор. Площадка перед замком».

Даже если предположить, что каждая элементарная частица – это обезьяна, печатающая с максимальной скоростью, которую позволяют законы физики, то, с тех пор как возникла Вселенная, самый длинный отрывок из «Гамлета», который можно было бы создать случайным набором текста, – это «Гамлет. Акт I, сцена I. Эльсинор. Площадка перед замком. Франсиско на страже». Увы, Бернардо не успеет даже войти и произнести свою первую реплику: «Кто здесь?»

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

Больцман ошибался: Вселенная не является совершенно случайной. Но это не значит, что Бальб Цицерона был прав. Он тоже ошибался. Для создания сложных и запутанных структур вовсе не нужны сложная и запутанная машина – или разум. Повторю еще раз: компьютеры – простые машины. Они действуют, выполняя раз за разом небольшой набор очень несложных операций. Но, несмотря на простоту компьютеров, их можно запрограммировать так, чтобы создать структуры любой желаемой сложности. Программы, создающие эти объекты, не должны сами обладать никаким очевидным порядком, они могут вообще быть случайными последовательностями битов! И рождение случайных битов действительно играет ключевую роль в создании порядка во Вселенной, только не так прямолинейно, как представлял себе Больцман.

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

Вернемся, однако, к нашим обезьянам. На сей раз, вместо того чтобы заставлять обезьян печатать случайные последовательности букв на пишущей машинке, давайте сделаем так, чтобы они вводили эти случайные последовательности в компьютер. (Изображения обезьян, сидящих за компьютерами, можно найти повсюду, по крайней мере в киберпространстве. Впервые я услышал эту метафору от Чарльза Беннетта и Грегори Хайтина из IBM еще в 1980-х.) Например, мы усаживаем обезьяну за компьютер и говорим компьютеру, что машинописный текст – это программа на машинном языке, таком как Java. Тогда компьютер будет интерпретировать случайные знаки, введенные обезьянами, не как текст, а как компьютерную программу, то есть как последовательность инструкций определенного машинного языка.

Что будет, если компьютер попытается выполнить эту случайную программу? Скорее всего, он запутается и остановится, выдав сообщение об ошибке. Мусор на входе – мусор на выходе. Но иногда короткие компьютерные программы, то есть программы с относительно высокой вероятностью быть сгенерированными случайно, на самом деле могут выдавать интересный результат. Например, всего несколько строк кода могут заставить компьютер выдавать одну за другой цифры число «пи». Другая короткая программа заставит компьютер создавать сложные фракталы. Третья короткая программа заставит его моделировать Стандартную модель элементарных частиц. Еще одна программа побудит его моделировать первые моменты Большого взрыва. Еще одна позволит компьютеру моделировать химические процессы. А еще одна сделает так, что компьютер начнет доказывать все возможные математические теоремы.

Почему компьютеры создают интересные результаты, выполняя такие короткие программы? Компьютер можно назвать устройством для создания образов: любой мыслимый образ, который возможно описать на каком-то языке, может быть создан компьютером. Основное различие между обезьянами, печатающими на машинке, и обезьянами, вводящими буквы в компьютер, состоит в том, что во втором случае случайные биты, которые они создают, интерпретируются как инструкции.

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

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