В 1994 году Питер Шор, математик из Bell Labs в Нью-Джерси, доказал, что квантовый компьютер способен решать некоторые задачи экспоненциально быстрее, чем классический компьютер. Вопрос был в том, можно ли построить квантовый компьютер? Скептики утверждали, что квантовые состояния слишком хрупкие - окружающая среда неизбежно перемешает информацию в квантовом компьютере, сделав его совсем неквантовым.
Год спустя Шор ответил. Классические схемы измеряли отдельные биты для проверки на наличие ошибок, но этот подход не работал бы для квантовых битов или «кубитов», поскольку любое измерение разрушило бы квантовое состояние и, следовательно, вычисления. Шор нашел способ определить, произошла ли ошибка, без измерения состояния самого кубита. Код Шора положил начало области квантовой коррекции ошибок.
Раздел квантовой коррекции ошибок расцвел. Большинство физиков видят в нём единственный путь к созданию чрезвычайно мощного квантового компьютера. «Без коррекции ошибок мы не сможем масштабировать квантовые компьютеры до такой степени, чтобы они могли решать действительно сложные задачи», - сказал Джон Прескилл, физик из Калифорнийского технологического института.
Как и в случае с квантовыми вычислениями в целом, одно дело разработать код, исправляющий ошибки, и совсем другое - реализовать его на работающей машине. Но в начале октября исследователи под руководством Криса Монро, физика из Университета Мэриленда, сообщили, что они продемонстрировали многие ингредиенты, необходимые для работы схемы Шора с исправлением ошибок.
Так как же Шору удалось разгадать загадки, с которыми он столкнулся? Он использовал дополнительную сложность квантовой механики в своих интересах.
Повтор повтор повтор
Шор смоделировал свой протокол по образцу классического кода повторителя, который включает создание копий каждого бита информации, а затем периодическое сравнение этих копий друг с другом. Если один из битов отличается от других, компьютер может исправить ошибку и продолжить расчет.
Шор разработал квантовую версию этого протокола. Он использовал три отдельных «физических» кубита для кодирования одного кубита информации - «логического» кубита. Однако код квантового повторителя Шора не мог точно совпадать с классической версией. Существенная мощность квантовых вычислений проистекает из того факта, что кубиты могут существовать в «суперпозиции», находясь в комбинации 0 и 1 одновременно. Поскольку измерение квантового состояния разрушило бы суперпозицию, не было простого способа проверить, произошла ли ошибка.
Вместо этого Шор нашел способ определить, находятся ли три физических кубита в одном и том же состоянии. Если один из кубитов отличается, это означает, что произошла ошибка.
Задача мало чем отличается от решения простой логической головоломки. Вам даны три шара, которые выглядят одинаково, но один из шаров может иметь другой вес. У вас также есть простые весы. Какие измерения позволят вам определить, есть ли среди шаров отличающийся, и если да, то какой именно?
Ответ состоит в том, чтобы сначала взвесить два шара, затем заменить один из шаров оставшимся шаром и снова взвесить. Если весы были сбалансированы оба раза, то все шары идентичны. Если весы были сбалансированы только один раз, то один из замененных шаров отличается. Если вес оба раза отличается, то виноват третий шар.
Код Шора заменяет весы двумя дополнительными «вспомогательными» кубитами. Первый из них сравнивает первый и второй физические кубиты; другой сравнивает второй и третий. Измеряя состояния этих вспомогательных кубитов, вы узнаете, находятся ли три содержащих информацию кубита в идентичных состояниях, не нарушая состояния любого из них.
Этот код защищает от переключения битов, который является единственной возможной ошибкой, возникающей в классических вычислениях. Но у кубитов есть еще один потенциальный источник ошибок.
Суперпозиции - это ключ к квантовым вычислениям, но важно не только значение кубита. Относительная «фаза» между кубитами тоже имеет значение. Вы можете думать об этой фазе как о волне - она сообщает вам местоположение пиков и впадин волны. Когда две волны находятся в фазе, их пики синхронизированы. Если они столкнутся, они интерферируют, сливаясь в единую волну вдвое большего размера. Но если волны не в фазе, тогда одна волна находится на пике, другая - во впадине, и они нейтрализуют друг друга.
Квантовый алгоритм использует это фазовое соотношение между кубитами. Это создает ситуацию, когда правильный ответ вычислений конструктивно интерферирует и, следовательно, усиливается, в то время как неправильный ответ подавляется деструктивной интерференцией.
Но если ошибка приводит к изменению фазы, тогда деструктивная интерференция может переключиться на конструктивную интерференцию, и квантовый компьютер начнет усиливать неправильный ответ.
Шор обнаружил, что он может исправлять фазовые ошибки, используя принцип, аналогичный тому, который он использовал для переключения битов. Каждый логический кубит кодируется в три кубита, и дополнительные кубиты проверяют, не изменилась ли одна из фаз.
Затем Шор объединил два кода. Результатом стал код, переводящий один логический кубит в девять физических кубитов, который предлагал как битовую, так и фазовую проверку.
Устойчивость к ошибкам
Код Шора в принципе защищает отдельный логический кубит от ошибок. Но что, если произошла ошибка в самих измерениях ошибки? Пытаясь исправить несуществующую ошибку, вы переключите бит и невольно внесете настоящую ошибку. В некоторых случаях это может вызвать каскад ошибок, распространяющихся по коду.
Код Шора также не учитывал, как он будет управлять квантовым компьютером, построенным из его логических кубитов. «Нам нужен какой-то способ выполнять вычисления с закодированными состояниями без потери этой защиты. И это непросто», - сказал Дэниел Готтесман, ученый-теоретик из Университета Мэриленда.
Тогда в 1996 году Шор придумал понятие отказоустойчивости. Отказоустойчивый код может иметь дело с ошибками, вносимыми средой, несовершенными операциями с кубитами и даже самими этапами исправления ошибок - при условии, что частота возникновения этих ошибок ниже определенного порога.
В прошлом месяце Монро и его группа объявили, что они использовали защищенную от сбоев версию кода Шора, называемую кодом Бэкона-Шора, для демонстрации почти всех инструментов, необходимых для полностью отказоустойчивого квантового компьютера. Они закодировали логический кубит в квантовые состояния девяти ионов, а затем, используя четыре вспомогательных кубита, показали, что могут безотказно выполнять все операции с одним кубитом, необходимые для квантовых вычислений. Результат показывает, что отказоустойчивый квантовый компьютер возможен.
Однако создание квантового компьютера ещё не близко. Монро считает, что преимущества, предоставляемые исправлением ошибок, не будут заметны до тех пор, пока квантовые компьютеры не достигнут примерно 100 логических кубитов. Для такой машины потребуется около 1300 физических кубитов, поскольку каждому логическому кубиту нужно девять физических кубитов плюс четыре вспомогательных (в настоящее время самый крупный квантовый процессор, недавно анонсированный IBM Eagle, имеет 127 физических кубитов). На данном этапе «мы собираемся начать создавать фабрику кубитов, а затем внедрить исправление ошибок», - сказал Монро. «Но не раньше».