Как вывести матрицу CNOT для 3-кубитовой системы, в которой контрольный и целевой кубиты не смежны?


15

В системе с тремя кубитами легко получить оператор CNOT, когда контрольный и целевой кубиты значимы смежно - вы просто тензорируете 2-битный оператор CNOT с единичной матрицей в позиции значимости нетронутого кубита:

C10|ϕ2ϕ1ϕ0=(I2C10)|ϕ2ϕ1ϕ0

Тем не менее, не очевидно, как получить оператор CNOT, когда контрольный и целевой кубиты не являются смежными по значению:

C20|ϕ2ϕ1ϕ0

Как это сделать?


Ответы:


14

Для презентации из первых принципов мне нравится ответ Райана О'Доннелла . Но для немного более высокого уровня алгебраического лечения, вот как я бы это сделал.

Главная особенность операции с управляемым для любого унитарного состоит в том, что он (последовательно) выполняет операцию с некоторыми кубитами в зависимости от значения некоторого отдельного кубита. Мы можем написать это явно алгебраически (с контролем на первом кубите) следующим образом: , где является единичная матрица той же размерности, . Здесь и являются проекторами на состояния иUUU

CU=|00|1+|11|U
1U|00||11||0|1 контрольного кубита - но мы используем их здесь не как элементы измерения, а для описания влияния на другие кубиты в зависимости от того или иного подпространства пространства состояний первого кубита.

Мы можем использовать это, чтобы получить матрицу для гейта который выполняет операцию на кубите 3, когерентно обусловленную состоянием кубита 1, думая об этом как о контролируемом операция над кубитами 2 и 3: CX1,3X(12X)

CX1,3=|00|14+|11|(12X)=[140404(12X)]=[12020202021202020202X02020202X],
где последние два являются представлениями блочной матрицы для экономии места (и разумности).

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

CX1,3=|00|control12uninvolved12target+|11|control12uninvolvedXtarget=[12020202021202020202020202020202]+[02020202020202020202X02020202X]
а также позволяет нам сразу увидеть, что делать, если роли контроля и цели поменялись местами: CX1,3=| 0
CX3,1=12target12uninvolved|00|control+Xtarget12uninvolved|11|control=[|00||00||00||00|]+[|11||11||11||11|]=[1000000000100000000001000000000100000100000000011000000000100000].
Но лучше всего: если вы можете записать эти операторы алгебраически, вы можете сделать первые шаги в направлении полного отказа от гигантских матриц, вместо этого рассуждая об этих операторах алгебраически, используя выражения, такие как and C X 3 , 1 = 1 2CX1,3=|00|1212+|11|12XCX3,1=1212|00|+X12|11|, Конечно, будет предел тому, сколько вы можете сделать с ними - простое изменение в представлении вряд ли сделает сложный квантовый алгоритм эффективно разрешимым, не говоря уже о том, что его можно будет вычислить вручную - но вы можете рассуждать о простых схемах гораздо эффективнее используя эти выражения, чем с гигантскими космическими матрицами.

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

«простое изменение в представлении вряд ли сделает сложный квантовый алгоритм эффективно разрешимым» - как насчет случая вращения фитиля?
Meowzz

1
@meowzz: время от времени такое изменение обозначений позволяет вам сделать концептуальный прогресс и помогает вам легче решать проблемы. Но не часто, и, вероятно, не в случае этого конкретного изменения обозначения, которое достаточно хорошо известно. Однако, что касается конкретного случая ротации Вика, я хотел бы задать вопрос: какой конкретный прогресс позволил решить проблемы и для каких проблем он был полезен.
Ниль де Бодрап

8

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

Насколько я могу судить, нет никакого способа получить желаемую матрицу 8x8, используя обозначение Kronecker product для матриц. Все, что вы действительно можете сказать, это: ваша операция применения CNOT к трем кубитам, при этом элемент управления является первым, а цель - третьим, имеет следующие эффекты:

|000|000

|001|001

|010|010

|011|011

|100|101

|101|100

|110|111

|111|110

и поэтому он задается следующей матрицей:

U=[1000000001000000001000000001000000000100000010000000000100000010]

Эта матрица действительно не является ни ни . Для него нет краткой записи, основанной на продукте Кронекера; это просто то, что есть.UI2CNOTCNOTI2


1

Как общая идея, CNOT переворачивает цель на основе контроля. Я выбираю перевернуть цель, если элемент управления , вы также можете выбрать . Поэтому предположим, что существует общее многочастичное состояние . Теперь вы выбираете свой контроль и цель, допустим, что - это контроль, а - цель. Применение CNOT к будет просто (=[1 0]T)(=[0 1]T)|ϕ=|123....n1nithkth|ϕ

CNOT|ϕ=CNOT|12...i...k...n1n=|12...i...k...n1n

Чтобы построить матрицу таких ворот CNOT, мы применяем ( матрица Паули), если состояние , и применяем ( Identity), если состояние внизу. Мы применяем эти матрицы в позиции, которая является нашей целью. Математически, σxxithI2×2ithkth

CNOT=[|1...i...k11...i...k1|σx|k+1...nk+1...n|+all permutations of states other then ith]+[|1...i...k11...i...k1|I|k+1...nk+1...n|+all permutations of states other then ith]

Примечание состояние (цель) исключается при создании матрицы перестановок и в положения оператора или написано.kthkthσxI

Возьмите пример пяти кубитов, в которых кубит является целью, а является контролем. Построим матрицу перестановок . Я беру, если контроль перевернуть цель. Вы можете взять и наоборот тоже.2nd4thCNOT

CNOT=|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|

-2

сначала напишите матрицу CNOT⊗𝐼2, затем измените порядок index2 и index3 с помощью matlab. таким образом, вы можете сделать любое количество кубитов.


Здравствуй! Не могли бы вы расширить свой ответ, чтобы прояснить его? Возможно, пример поможет :)
met927
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.