Привет, Хабр! Совсем недавно мы рассказывали вам о квантовых вычислениях и языке Q#. Сегодня же мы уйдем в теорию еще глубже и рассмотрим историю квантовых вычислений. Кроме того, в этой статье вы найдете 5 требований к квантовому компьютеру. Какими свойствами должна обладать машина будущего? Читайте под катом!



Введение


Как известно, идея квантовых вычислений была представлена Ричардом Фейнманом в 1981 году в ходе доклада на первой конференции «Физика вычислений» (Фейнман, 1982 г. — рекомендуется к ознакомлению). В ходе доклада Фейнман рассмотрел ряд сложностей, связанных с моделированием сложных квантовых систем с помощью классических компьютеров и выдвинул следующее предположение: чтобы достоверно моделировать квантовые системы, необходимо стремиться создать квантовые компьютеры.

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

Наиболее фундаментальное различие между классическим компьютером и квантовым заключается в реализации бита. Бит (англ. bit, сокращение от «binary digit» — двоичное число) — минимальная единица цифровых данных. Классический бит в каждый конкретный момент времени может принимать лишь одно из двух значений: 0 или 1. Квантовый бит (кубит) подчиняется законам квантовой механики и поэтому может находиться в суперпозиции состояний 0 и 1.

Этим классическим состояниям 0 и 1 соответствуют обозначения Дирака |0? и |1?, а формула состояния кубита выглядит так: .

Здесь — комплекснозначные коэффициенты, соответствующие требованию нормализации (это означает, что вероятность обнаружить кубит в одном из этих двух состояний равна 100 %, а вероятность обнаружить его в каком-либо другом состоянии равна 0 %).
Поскольку , волновую функцию |?? можно переписать следующим образом:



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



Записав ее в этой форме, мы можем представить суперпозицию состояний |0? и |1? в наглядном виде с помощью сферы Блоха:



Теперь любое унитарное преобразование волновой функции |?? можно представить как простое перемещение точки (она обозначена как |??) по поверхности сферы. Например, состоянию |?? = |0? соответствует точка на оси z, обозначенная на рисунке как |0?. К сожалению, это наглядное представление подходит только для однокубитных состояний: простого обобщения для многокубитных систем пока не придумали. В этой серии статей мы еще вернемся к сфере Блоха.

Явления суперпозиции и запутанности* позволяют выполнять определенные операции с помощью квантовых компьютеров быстрее, чем это возможно (согласно современным представлениям) с помощью классических вычислительных систем. Примерами таких операций является разложение чисел на простые множители (Shor, 1997) и поиск по неструктурированным данным (Grover, 1997). Более того, благодаря этим уникальным квантовомеханическим особенностям появляются целые новые области науки и техники — например, квантовая криптография (Bennett & Brassard, 1984). В следующем разделе мы рассмотрим требования, которые предъявляются к таким системам.

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



Пять требований к квантовому компьютеру (и два дополнительных)


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

1. Физическая система должна быть масштабируемой, а состояние кубитов должно быть известным


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

2. Квантовый компьютер должен позволять надежно подготавливать наборы кубитов в простом начальном состоянии (например, |000…?)


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

3. Система должна обладать достаточной долговечностью, чтобы выполнять операции над кубитами


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

4. Система должна позволять реализовать «универсальный набор» вентилей


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

5. Система должна поддерживать измерение отдельных кубитов


Необходимо иметь возможность получать результат вычислений путем считывания конечного состояния отдельных кубитов.

Есть еще два дополнительных требования в отношении квантовой связи — они относятся к обработке квантовой информации:

  1. Система должна обладать способностью надежно преобразовывать данные, хранящиеся в виде стационарных (вычислительных) кубитов в сетевые (передающиеся) кубиты (например, фотоны) и обратно.
  2. Система должна обладать способностью корректно передавать сетевые кубиты между конечными точками.

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

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

Дополнительные ресурсы


Комментарии (3)


  1. nizkopal
    02.04.2018 10:59
    +1

    Спасибо за перевод, это интереснт. Вот же люди делом заняты! :)


  1. FasT93
    02.04.2018 11:36

    Всегда упоминают Фейнмана при рассказе о квантовых вычислениях, но редко когда вспоминают о нашем советском математике, который предложил идею квантовых вычислений еще в 1980 году. (Юрий Манин, «Вычислимое и невычислимое»)


  1. BiosUefi
    04.04.2018 10:27

    Первое популярное, но при этом доходчивое описание.
    А то вечно подсовывают «рисование совы».
    Спасибо. Жду продолжения.