Как квантовый компьютер выполняет базовую математику на аппаратном уровне?


27

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

Чтобы сделать вопрос более точным, скажем, у нас есть сверхпроводящий квантовый компьютер на основе 5-кубитовых кубитов (например, IBM Quantum Computer с 5 кубитами). Я набираю используя клавиатуру на мониторе (скажем, в базовом приложении калькулятора, которое может иметь квантовый компьютер). После этого он должен вернуть мне . Но происходит ли на аппаратном уровне? Поступают ли какие-то электрические сигналы, соответствующие входам , и на блок обработки компьютера? Это как-то "инициализирует" электроны куперовской пары? Что происходит с электронными кубитами куперовской пары после этого (предположим, что над ними будут работать некоторые квантовые врата , которые, в свою очередь, снова являются черными ящиками5 2 3 + 52+3523+)? Как это наконец возвращает мне вывод ?5

Я удивлен тем, как мало я мог придумать об основных принципах работы квантового компьютера путем поиска в сети.

Ответы:


27

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

Как насчет квантового компьютера?

Существуют два возможных способа использования квантовых процессоров: сами по себе или в сочетании с классическим процессором. Однако большинство (включая ваш пример сверхпроводящего) квантовых процессоров на самом деле не используют электрические сигналы, хотя ваша мышь, клавиатура, монитор и т. Д. По-прежнему передают и получают информацию. Таким образом, должен быть способ преобразования электрического сигнала в любой сигнал, который использует квантовый процессор (о котором я расскажу позже), а также какой-то способ сообщить процессору, что вы хотите сделать. Обе эти проблемы могут быть решены одновременно с помощью классической предварительной и последующей обработки, например, в IBM QISKit . Microsoft использует немного больше нисходящего подхода в Q #где программы для квантового процессора пишутся больше как «классическая» программа, а не как сценарий, затем компилируются и потенциально оптимизируются для аппаратного обеспечения. То есть, если у вас есть функция, она может выполнять классические операции, а также выполнять вызовы квантового процессора для выполнения любых необходимых квантовых операций. Это приводит меня к первому пункту:

Если вы собираетесь попросить компьютер с доступом к квантовому процессору вычислить что-то, например, , одним из наиболее подходящих решений будет просто вычислить его на классическом процессоре, как обычно.2+3

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

Что такое трансмон?

Возьмите сверхпроводящую петлю, чтобы учесть куперовские пары, и добавьте один или два джозефсоновских перехода, чтобы получить коробочный островок куперовских пар в области между двумя джозефсоновскими переходами с энергией джозефсоновской связи , где квант магнитного потока и - критический ток соединения. Применение напряжения к этому дает «емкость затвора» и делает это заряда . Для кулоновской энергии одной куперовской пары , гдеEJ=IcΦ0/2π Φ0=h/2eIcВгСгЕСзнак равно(2е)2/2ССявляется суммой общей емкости острова. Гамильтониан такой системы задается как где - число куперовских пар, - изменение фазы на стыке, а . При выполнении унитарных операций учитываются только два нижних состояния системы: и с соответствующими энергиями и и частотой кубита

ЧАСзнак равноЕС(N-Nг)2-ЕJсозφ,
NφNгзнак равноСгВг/2е|Nзнак равно|0|Nзнак равно|1Е0знак равноω0Е1знак равноω1ωзнак равноω1-ω0, описывающий вычислительную основу кубита. Типичный зарядный кубит может иметь . Добавление большой шунтирующей емкости и увеличение емкости затвора переключает это соотношение, так что и мы получаем transmon . Преимущество этого заключается в увеличении времени когерентности за счет снижения ангармоничности (когда уровни энергии за пределами первых двух ближе друг к другу, что может привести к утечке).ЕСзнак равно5ЕJЕJ»ЕС

Наконец , мы подошли к основному вопросу:

Как мы инициализируем, развиваем и измеряем трансмон?

  • Унитарная эволюция одного кубита: применение микроволнового импульса для частоты и приближение вращающейся волны дает гамильтониан состояний кубита (в идеальном случае) как Однако из-за меньшей ангармоничности необходимо формировать микроволновые импульсы, чтобы уменьшить утечку до более высоких уровней энергии в процессе, известном какЕ(T)знак равноЕИкс(T)соз(ωdT)+ЕY(T)грех(ωdT)0<T<Tгωd
    ЧАСзнак равно(ω1-ωd12ЕИкс(T)-я2ЕY(T)12ЕИкс(T)+я2ЕY(T)ω2-2ωd)
    Удаление производных адиабатическими воротами (DRAG) . Изменяя импульс, можно получить разные гамильтонианы, которые в зависимости от времени импульса можно использовать для реализации разных унитарных операций на одном кубите.
  • Измерение / считывание: СВЧ-резонатор с резонансной частотой может быть подключен к трансмону с помощью конденсатора. Это взаимодействие вызывает (затухающие) колебания Раби в трансмон-резонаторной системе. Когда сила связи резонатора и кубита, , это называется дисперсионным режимом . В этом режиме спектр пропускания резонатора сдвигается на зависимости от состояния кубита, поэтому применяют микроволновый импульс и анализируют коэффициент пропускания и коэффициент отражения ( может быть использован для измерения кубита. г « ω - ω г ± г 2 / ( ω - ω г )ωрг«ω-ωр±г2/(ω-ωр)
  • Множественная эволюция множественных кубитов. Эту идею соединения кубита с микроволновым резонатором можно расширить, связав резонатор с другим кубитом. Как и в случае однокбитного вентиля, могут использоваться моменты времени связи, а также микроволновые импульсы, позволяющие первому кубиту соединяться с полостью, которая затем соединяется со вторым кубитом и выполнять определенные затворы по 2 кубиту. Более высокие уровни энергии также могут быть использованы для облегчения реализации определенных затворов из-за взаимодействия между более высокими уровнями, вызванного полостью. Один такой пример показан здесь , где полость вызывает взаимодействие между состояниями и| 1 | 1 |2|0|1|1, Избегание пересечения между этими состояниями означает, что 2-кубитный фазовый вентиль может быть реализован, хотя в общем случае 2-кубитные вентили реализованы менее хорошо (имеют более низкую точность), чем одиночные кубитные.
  • Инициализация: Считывание, за которым, возможно, следуют один кубитный вентиль Паули (на каждом измеренном кубите, который находится в состоянии ), чтобы гарантировать, что все кубиты начинаются в состоянии .| 1 | 0 Икс|1|0

Добавление 2 и 3 теперь является «простым» вопросом инициализации кубитов, выполнения затворов, эквивалентных классическому обратимому сумматору, и измерения результата, и все это осуществляется автоматически. Затем результат измерения возвращается классическим компьютером, как обычно.

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


15

Вот мой процесс выполнения арифметики на квантовом компьютере.

Шаг 1: Найдите классическую схему, которая делает то, что вас интересует.

В этом примере полный сумматор.

классический полный сумматор

Шаг 2: Преобразуйте все классические ворота в обратимые.

Подготовьте выходные биты с самого начала и инициализируйте их с помощью CNOT, CCNOT и т. Д.

полуреверсивный полный сумматор

Шаг 3: Используйте временные выходы.

Если вы делали это дополнение, например, для контроля того, будет ли оракул Гровера фазироваться на -1 или нет, сейчас самое время применить строб Z к вашему выходному кубиту.

Шаг 4: Избавьтесь от промежуточных значений, делая точно противоположное тому, что вы сделали, чтобы вычислить их.

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

полуреверсивный полный сумматор 2

Шаг 5: (Иногда) для каждого сохраняемого вами выходного бита избавьтесь от входного бита.

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

Когда вы вычисляете c+=a, оставляя за собой копию первоначального значения, cкак правило, плохо. Это разрушает согласованность. Таким образом, вы должны посмотреть на свою схему сумматора (или что-то еще) и задуматься о том, есть ли способ использовать ваши выходные биты, чтобы избавиться от ваших входных бит. Например, после вычисления c+aможно сделать временное вне места вычитания в регистре г, XOR г в регистр хранения нежелательной копии c, а затем восстановить временное вычитание.

(Заметное исключение « если вы храните ваш вывод, не держать так много ваш вход» является алгоритмом Шора. Алгоритм Шора decoheres своего вклада в цели , но в очень специфическом способе , который помогает с периодом нахождением.)

Шаг 6: Быть эффективным

В шаге 5 я сказал, что вы можете вычислить ввод сложения на месте, выполнив сложение не на своем месте с последующим временным вычитанием с места. Это немного глупо. Общий процесс добавления будет охватывать 4n кубитов (n для удержания a, n для удержания c, n для удержания c+a, n для удержания (c+a)-a). Если вы более умны, вы можете поместить все в 2nкубиты или (немного легче) в 2n+1кубиты :

гадюка

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.