Для презентації з перших принципів мені подобається відповідь Райана О'Доннелла . Але для трохи алгебраїчного лікування вищого рівня, ось як я це зробив.
Основна особливість операції з контрольованим для будь-якого унітарного U полягає в тому, що вона (послідовно) виконує операцію на деяких кубітах залежно від значення якогось одного кубіта. Спосіб, який ми можемо записати це явно алгебраїчно (з керуванням на першому кубіті):
,
де 1 являє собою одиничну матрицю тієї ж розмірності , як . Тут і є проекторами на стан іUU
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⎤⎦⎥⎥⎥
а також дозволяє нам одразу побачити, що робити, якщо ролі контролю та цілі скасовані:
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⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.
Але найкраще: якщо ви зможете записати ці оператори алгебраїчно, ви можете зробити перші кроки до розпорядження гігантськими матрицями цілком, замість цього міркуйте про ці оператори алгебраїчно, використовуючи вирази, такі як
і
CX1,3=|0⟩⟨0|⊗12⊗12+|1⟩⟨1|⊗12⊗XCX3,1=12⊗12⊗|0⟩⟨0|+X⊗12⊗|1⟩⟨1|. Звичайно, буде обмеження, скільки ви можете зробити з цими, звичайно, проста зміна представництва навряд чи зробить складний квантовий алгоритм ефективно розв’язуваним, не кажучи вже про ручне обчислення, - але про прості схеми можна міркувати набагато ефективніше з використанням цих виразів, ніж з гігантськими простірними матрицями.