Як отримати матрицю CNOT для 3-хбітової системи, де кебіт керування та цілі не суміжні?


15

У системі, що має три кбіт, легко отримати оператора CNOT, коли кебіти та цілі qbit суміжні за значимістю - ви просто напружуєте 2-розрядний оператор CNOT з матрицею ідентичності в недоторканій позиції значущості qbit:

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

Однак не очевидно, як отримати оператор CNOT, коли кебіт керування та цілі не суміжні за значимістю:

C20|ϕ2ϕ1ϕ0

Як це робиться?


Дивіться це запитання та відповідь: quantumcomputing.stackexchange.com/questions/9614/…
Martin Vesely

Відповіді:


14

Для презентації з перших принципів мені подобається відповідь Райана О'Доннелла . Але для трохи алгебраїчного лікування вищого рівня, ось як я це зробив.

Основна особливість операції з контрольованим для будь-якого унітарного U полягає в тому, що вона (послідовно) виконує операцію на деяких кубітах залежно від значення якогось одного кубіта. Спосіб, який ми можемо записати це явно алгебраїчно (з керуванням на першому кубіті): , де 1 являє собою одиничну матрицю тієї ж розмірності , як . Тут і є проекторами на стан іUU

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]
а також дозволяє нам одразу побачити, що робити, якщо ролі контролю та цілі скасовані:
CX3,1=12target12uninvolved|00|control+Xtarget12uninvolved|11|control=[|00||00||00||00|]+[|11||11||11||11|]=[1000000000100000000001000000000100000100000000011000000000100000].
Але найкраще: якщо ви зможете записати ці оператори алгебраїчно, ви можете зробити перші кроки до розпорядження гігантськими матрицями цілком, замість цього міркуйте про ці оператори алгебраїчно, використовуючи вирази, такі як і CX1,3=|00|1212+|11|12XCX3,1=1212|00|+X12|11|. Звичайно, буде обмеження, скільки ви можете зробити з цими, звичайно, проста зміна представництва навряд чи зробить складний квантовий алгоритм ефективно розв’язуваним, не кажучи вже про ручне обчислення, - але про прості схеми можна міркувати набагато ефективніше з використанням цих виразів, ніж з гігантськими простірними матрицями.

О так, я згадую проекторів з ранньої книги Мерміна. Проектори та додавання матриць - це спосіб кодування умовної логіки в матрицях!
1818

"проста зміна представлення навряд чи зможе зробити складний квантовий алгоритм ефективно розв’язуваним" - а як бути у випадку обертання гніт?
meowzz

1
@meowzz: Раз у раз така зміна позначень дозволяє зробити концептуальний заздалегідь і допомагає легше вирішувати проблеми. Але не часто і, мабуть, не у випадку цієї конкретної зміни позначень, яка досить добре відома. Щодо конкретного випадку обертання Віка, я б хотів задати питання, який конкретний заздалегідь це дозволило вирішити проблеми, і які проблеми були для нього корисними.
Ніль де Бодорап

8

Це гарне запитання; це те, що, схоже, підручники підкрадаються. До цього точного питання я дійшов, готуючи лекцію з квантових обчислень пару днів тому.

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

|000|000

|001|001

|010|010

|011|011

|100|101

|101|100

|110|111

|111|110

і тому вона задається такою матрицею:

U=[1000000001000000001000000001000000000100000010000000000100000010]

Ця матриця насправді не є ні I 2C N O T, ні C N O TI 2 . Для цього немає коротких позначень на основі продукту Kronecker; це просто те, що воно є.UI2CNOTCNOTI2


1

(=[1 0]T)(=[0 1]T)|ϕ=|123....n1nithkth|ϕ

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

σ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.