Автоматичне складання квантових схем


12

Нещодавнє запитання тут задало питання, як скласти 4-кубітний ворота CCCZ (контрольований-керований-контрольований-Z) в прості 1-кубітні та 2-кубітні ворота, і єдиний відповідь, що дається поки що, вимагає 63 воріт !

Першим кроком було використання конструкції C U, наданої Nielsen & Chuang:n

При це означає 4 ворота CCNOT та 3 прості ворота (1 CNOT та 2 Адамард достатньо, щоб зробити остаточний CZ на цільовому кубіті та останньому робочому кубіті).n=3

Теорема 1 цієї статті говорить, що CCNOT загалом вимагає 9 однокубітних і 6 двокубітних воріт (15 усього):

введіть тут опис зображення


Це означає:

(4 CCNOT) x (15 воріт на CCNOT) + (1 CNOT) + (2 Hadamards) = 63 загальні ворота .

У коментарі було висловлено припущення, що 63 ворота можуть бути потім складені за допомогою "автоматичної процедури", наприклад з теорії автоматичних груп .

Як можна зробити цю «автоматичну компіляцію» і на скільки це зменшить кількість 1-кубітних та 2-кубітних воріт у цьому випадку?


1
Я в середині кількох речей, але помітив ваше запитання. Глобальні ворота Мольмера – Соренсена - це 2 кубітні ворота, а стаття Використання глобальної взаємодії в ефективних побудовах квантових схем описує: "Оптимізована реалізація воріт CCCZ за допомогою трьох воріт GMS", див. Рисунок 9. Ви можете написати відповідь, якщо це корисний.
Роб

Для представлення на зображенні потрібні лише 4 CCNOT, а отже, 63 ворота замість 93.
Діон Дж Дон Ківі ван Вреумінген

@DonKiwi, зауважив! 4 CCNOT, а не 6. Я зараз її оновлюю.
користувач1271772

1
@Rob: Ви, здається, пропонуєте поєднати X у CCCX за допомогою двох Адамард. Тоді CCCX можна розкласти так само, як у схемі Nielsen & Chaung вище. Це правильно? У своїй другій відповіді на питання Донківі я щось подібне зробив. Здається, ваш коментар з’явився саме тоді, коли я набирав цю відповідь, оскільки вони знаходяться на відстані 5 хвилин (і мені було потрібно більше 5 хвилин, щоб набрати її). Це питання щодо "автоматичного складання" все ще стоїть, хоча, як було б непогано мати можливість побудувати схему "очевидним способом", а потім автоматично скласти в щось більш ефективне.
користувач1271772

1
@ user1271772 - кожен (qu) біт допомагає.
Роб

Відповіді:


6

Нехай є основними воротами, якими ви можете дозволити користуватися. Для цілей ім'я та тощо розглядаються як окремі. Отже, поліноміально залежить від , кількості кубітів. Точна залежність включає в себе деталі про типи воріт, які ви використовуєте, і наскільки -локальні вони. Наприклад, якщо є одиночні кубітні ворота та 2-кубітні ворота, які не залежать від порядку, наприклад тоді .g1gMCNOT12CNOT13MnkxyCZM=xn+(n2)y

Тоді ланцюг є продуктом цих генераторів у певному порядку. Але є кілька мікросхем, які нічого не роблять. Як . Тож ті дають стосунки у групі. Тобто це групова презентація де існує багато відносин, про які ми не знаємо.CNOT12CNOT12=Id g1gMR1

Проблема, яку ми хочемо вирішити, - це слово в цій групі, яке найкоротше слово, яке являє собою той самий елемент. Для загальних групових презентацій це безперспективно. Вид групової презентації, де ця проблема доступна, називається автоматичною.

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

Наприклад, якщо є три генератори і слово є , але ми не хочемо мати справу з , ми замість цього і до та . Потім ми їх складемо разом як і це скорочення початкового слова.aababbacbbabacw1=aababbaw2=bbabaw^1w^2w^1cw^2

Тож WLOG (без втрати загальності), припустимо, ми вже в цій проблемі де зараз ми використовуємо всі вказані ворота. Знову ж це, мабуть, не автоматична група. Але що робити, якщо ми викинемо деякі відносини. Тоді у нас з’явиться ще одна група, яка має доцільну карту до тієї, яку ми насправді хочемо.g1gMR1

Група no є вільною групою , але тоді, якщо ви ставите як відношення, ви отримуєте безкоштовний продукт і є коефіцієнтна карта від першої до пізнішої, що зменшує кількість 's у кожному сегменті за модулем .g1g2g12=id Z2Zg12

Відносини, які ми викидаємо, будуть такими, що одна наверху (джерело довідкової карти) буде автоматизована за проектом. Якщо ми будемо використовувати лише відносини, які залишаються і скорочують слово, то це все одно буде скороченим словом для групи факторів. Він просто не буде оптимальним для групи коефіцієнтів (цільова частина коефіцієнта), але він буде мати довжину до довжини, з якою він розпочався.

Це була загальна ідея: як ми можемо перетворити це на конкретний алгоритм?

Як ми обираємо та відносини для викидання, щоб отримати автоматичну групу? Ось тут надходять знання про типові елементарні ворота, які ми зазвичай використовуємо. Інволюцій дуже багато, тому зберігайте лише ті. Уважно стежте за тим, що це лише елементарні інволюції, тому якщо у вашому обладнання є складний обмін кубітами, які значно розділені на вашій мікросхемі, це записує їх лише на ті, що ви можете легко зробити, і скорочуючи це слово до бути якомога коротшим.gi

Наприклад, припустимо, у вас є конфігурація IBM . Тоді - це дозволені ворота. Якщо ви хочете зробити загальну перестановку, розкладіть її на фактори . Це слово в групі яке ми хочемо скоротити .s01,s02,s12,s23,s24,s34si,i+1s01,s02,s12,s23,s24,s34R1

Зауважте, що вони не повинні бути стандартними інволюціями. Ви можете кинути на додаток до наприклад. Подумайте про теорему Готтесмана-Кнілла , але абстрактно, це означає, що це буде простіше узагальнити. Наприклад, використовуючи властивість, що знаходиться в коротких точних послідовностях, якщо у вас є обмежені системи переписування для двох сторін, ви отримуєте одну для середньої групи. Цей коментар непотрібний для решти відповіді, але показує, як ви можете створити більш загальні приклади з наведених у цій відповіді.R(θ)XR(θ)1X

Відносини, які зберігаються, є лише формами . Це дає групу Coxeter, і це автоматично. Насправді нам навіть не потрібно починати з нуля, щоб кодувати алгоритм цієї автоматичної структури. Вона вже реалізована в Sage (на основі Python) загального призначення. Все, що вам потрібно зробити, це вказати і в ньому вже залишилася реалізація. Крім того, ви можете зробити кілька прискорень.(gigj)mij=1mij

mij насправді легко обчислити через локальні властивості воріт. Якщо ворота максимум -локальні, то обчислення можна здійснити на мірному просторі Гільберта. Це тому, що якщо індекси не перетинаються, то ви знаєте, що . - це коли коли та . Ви також повинні лише обчислити менше половини записів. Це тому, що матриця симетрична, має 's по діагоналі ( ). Крім того, більшість записів просто перейменують залучені кубіти, тому якщо ви знаєте порядокkmij22k1mij=2mij=2gigjmij1(gigi)1=1(CNOT12H1) , ви знаєте порядок без повторного обчислення.CNOT37H3

Це піклувалося про всі відносини, які стосувалися лише максимум двох різних воріт (доказ: здійснення). Відносини, в яких брали участь і більше, були викинуті. Тепер ми повернемо їх. Скажімо, у нас це є, тоді можна виконати жадібний алгоритм Дена, використовуючи нові відносини. Якщо відбулася зміна, ми збиваємо її назад, щоб знову пройти через групу Коксетера. Це повторюється, поки не буде змін.3

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

Якщо ви хочете перевірити це самостійно, дайте кількість генераторів як , довжину випадкового слова, яке ви пробуєте, та матрицю Коксетера як .NKm

edge_list=[]
for i1 in range(N):
    for j1 in range(i):
        edge_list.append((j1+1,i1+1,m[i1,j1]))
G3 = Graph(edge_list)
W3 = CoxeterGroup(G3)
s3 = W3.simple_reflections()
word=[choice(list([1,..,N])) for k in range(K)]
print(word)
wTesting=s3[word[0]]
for o in word[1:]:
    wTesting=wTesting*s3[o]
word=wTesting.coset_representative([]).reduced_word()
print(word)

Приклад з N=28і K=20, перші два рядки - це введене нередуковане слово, наступні два - це скорочене слово. Я сподіваюся, що я не вводив помилку при введенні матриці .m

[26, 10, 13, 16, 15, 16, 20, 22, 21, 25, 11, 22, 25, 13, 8, 20, 19, 19, 14, 28]

['CNOT_23', 'Y_1', 'Y_4', 'Z_2', 'Z_1', 'Z_2', 'H_1', 'H_3', 'H_2', 'CNOT_12', 'Y_2', 'H_3', 'CNOT_12', 'Y_4', 'X_4', 'H_1', 'Z_5', 'Z_5', 'Y_5', 'CNOT_45']

[14, 8, 28, 26, 21, 10, 15, 20, 25, 11, 25, 20]

['Y_5', 'X_4', 'CNOT_45', 'CNOT_23', 'H_2', 'Y_1', 'Z_1', 'H_1', 'CNOT_12', 'Y_2', 'CNOT_12', 'H_1']

Якщо повернути такі генератори, як ми повернемо лише такі відносини, як і що спілкується з воротами, які не включають qubit . Це дозволяє нам розкласти раніше, ніж матимемо якомога довше. Ми хочемо уникати таких ситуацій, як . (У Cliff + T часто прагнуть мінімізувати кількість T). У цій частині вирішальним є ациклічний графік, що показує залежність. Це проблема пошуку хорошого топологічного роду DAG. Це робиться шляхом зміни пріоритету, коли вибирати, яку вершину використовувати наступну. (Я б не витрачав час на оптимізацію цієї частини занадто сильно.)TiTin=1Tiiw1gi1w2gi2wkwiX1T2X1T2X1T2X1

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


+1 !!! Багато деталей! Я читаю це :)
користувач1271772

1
@AHussain, чи можна працювати на прикладі, коли це стосується "наївної" конструкції CCCZ в моєму питанні, і в кінцевому підсумку є менша кількість воріт? Оригінальне запитання про CCCZ наразі має 6 відповідей, і багато з них мають набагато менший підрахунок воріт. Цікаво, що ваш підхід дав би за кількість воріт.
користувач1271772

4

Використовуючи процедуру, описану в https://arxiv.org/abs/quant-ph/0303063 1 , будь-які діагональні ворота - будь-які, зокрема, ворота CCCZ - можуть бути розкладені у вигляді, наприклад, CNOTs та однокубітних діагональних воріт, де CNOT можна оптимізувати самостійно, застосовуючи класичну процедуру оптимізації.

Довідка містить схему, що використовує 16 CNOT для довільних діагональних 4-кубітних воріт (рис. 4).


Зауваження: Хоча в принципі може бути простіша схема (згадана схема оптимізована з урахуванням більш обмеженої архітектури ланцюга), вона повинна бути близькою до оптимальної - ланцюг повинен створити всі стани форми для будь-якого нетривіального підмножини , а 15 таких для 4 кубітів.iIxiI{1,2,3,4}

Зауважте також, що ця конструкція аж ніяк не повинна бути оптимальною.


1 Примітка: Я автор


Цікаво. Ще мені потрібно прочитати папір, щоб побачити, що таке процедура. Також я чекаю @AHussain, який розповість нам, як це зробити, використовуючи теорію автоматичних груп.
користувач1271772
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.