Для презентации из первых принципов мне нравится ответ Райана О'Доннелла . Но для немного более высокого уровня алгебраического лечения, вот как я бы это сделал.
Главная особенность операции с управляемым для любого унитарного состоит в том, что он (последовательно) выполняет операцию с некоторыми кубитами в зависимости от значения некоторого отдельного кубита. Мы можем написать это явно алгебраически (с контролем на первом кубите) следующим образом:
,
где является единичная матрица той же размерности, . Здесь и являются проекторами на состояния иUUU
CU=|0⟩⟨0|⊗1+|1⟩⟨1|⊗U
1U|0⟩⟨0||1⟩⟨1||0⟩|1⟩ контрольного кубита - но мы используем их здесь не как элементы измерения, а для описания влияния на другие кубиты в зависимости от того или иного подпространства пространства состояний первого кубита.
Мы можем использовать это, чтобы получить матрицу для гейта который выполняет операцию на кубите 3, когерентно обусловленную состоянием кубита 1, думая об этом как о контролируемом операция над кубитами 2 и 3:
CX1,3X(12⊗X)
CX1,3=|0⟩⟨0|⊗14+|1⟩⟨1|⊗(12⊗X)=[140404(12⊗X)]=⎡⎣⎢⎢⎢12020202021202020202X02020202X⎤⎦⎥⎥⎥,
где последние два являются представлениями блочной матрицы для экономии места (и разумности).
Еще лучше: мы можем признать, что - на некотором математическом уровне, где мы позволяем себе понять, что порядок тензорных факторов не должен быть в некотором фиксированном порядке - контроль и цель операции могут быть на любых двух тензорных факторы, и что мы можем заполнить описание оператора на всех других кубитов с помощью . Это позволило бы нам перейти прямо к представлению
12
CX1,3==|0⟩⟨0|control⊗12uninvolved⊗12target⎡⎣⎢⎢⎢12020202021202020202020202020202⎤⎦⎥⎥⎥+|1⟩⟨1|control⊗12uninvolved⊗Xtarget+⎡⎣⎢⎢⎢02020202020202020202X02020202X⎤⎦⎥⎥⎥
а также позволяет нам сразу увидеть, что делать, если роли контроля и цели поменялись местами:
CX1,3=| 0⟩CX3,1===12target⊗12uninvolved⊗|0⟩⟨0|control⎡⎣⎢⎢⎢⎢⎢|0⟩⟨0||0⟩⟨0||0⟩⟨0||0⟩⟨0|⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢10000000000001000010000000000001+Xtarget⊗12uninvolved⊗|1⟩⟨1|control+⎡⎣⎢⎢⎢⎢⎢|1⟩⟨1||1⟩⟨1||1⟩⟨1||1⟩⟨1|⎤⎦⎥⎥⎥⎥⎥00001000010000000000001000010000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.
Но лучше всего: если вы можете записать эти операторы алгебраически, вы можете сделать первые шаги в направлении полного отказа от гигантских матриц, вместо этого рассуждая об этих операторах алгебраически, используя выражения, такие как
and
C X 3 , 1 = 1 2CX1,3=|0⟩⟨0|⊗12⊗12+|1⟩⟨1|⊗12⊗XCX3,1=12⊗12⊗|0⟩⟨0|+X⊗12⊗|1⟩⟨1|, Конечно, будет предел тому, сколько вы можете сделать с ними - простое изменение в представлении вряд ли сделает сложный квантовый алгоритм эффективно разрешимым, не говоря уже о том, что его можно будет вычислить вручную - но вы можете рассуждать о простых схемах гораздо эффективнее используя эти выражения, чем с гигантскими космическими матрицами.