Чи можемо ми прискорити алгоритм Гроувера шляхом виконання паралельних процесів?


10

У класичних обчисленнях ми можемо запустити пошук ключів (наприклад, AES), виконавши паралельно обчислювальні вузли якомога більше.

Зрозуміло, що ми також можемо запустити багато алгоритмів Гровера.

Моє запитання : чи можна мати швидкість, використовуючи більше одного алгоритму Гровера, як у класичних обчисленнях?

Відповіді:


6

Звичайно! Уявіть, що у вас єK=2k копії пошукового оракула USщо ви можете використовувати. Зазвичай ви шукаєте шляхом повторення дії

Hn(In2|00|n)HnUS,
починаючи з початкового стану (H|0)n. На це потрібен часΘ(N). (Я використовуюIn позначати 2n×2n матриця ідентичності.)

Ви можете замінити це на 2k паралельні копії, кожна з яких індексується x{0,1}k, використовуючи

(IkH(nk))Ik(Ink2|00|(nk))(IkH(nk))US
і починаючи від держави |x(H|0)(nk) Час, необхідний для їх виконання, буде скорочено до O(N/K), ціною вимагання K разів більше місця.

У сенсі масштабування можна вважати це нерелевантним результатом. Якщо у вас є фіксована кількість оракул,K, тоді ви отримуєте фіксований (K) поліпшення (як і у випадку, якщо у вас є K паралельні класичні ядра, найкраще поліпшення, яке ви можете отримати, є фактором K), і це не змінює масштабування. Але це змінює основний час роботи. Ми знаємо, що алгоритм Гровера є абсолютно оптимальним. Це займає абсолютний мінімальний час, що можливий одним оракулом. Отже, знаючи, що ви отримаєтеK Поліпшення в часі є корисним щодо цього еталону конкретного часу роботи при конкретному значенні N.


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

1
N йде до нескінченності, але Kне. Ваша проблема стає більшою, але ваших ресурсів залишається мало.
Ахусейн

1
Ця відповідь є правильною (хоча це може бути не оптимальним, як попереджає DaftWullie). Це те саме ставлення до паралелізації, що і в класичній схемі складності. Якщо ви хочете прискорити швидкість через паралелізацію, тоді ви дивитесь на глибину ланцюга (оскільки координування декількох процесів не збирається зменшити загальну роботу). Навіть не важливо, чиKє постійним - або ви зацікавлені в поліпшенні глибини від паралелізації, або вас немає. Як і у випадку з самими квантовими обчисленнями, просто кидання більшої кількості комп’ютерів при проблемі не означає, що все швидше!
Ніль де Бодорап

3

У певному сенсі, якби ми робили це паралельно на різних вузлах, ви заощадите час на біг. Але якщо ми говоримо про складність (саме до цього ми відносимо швидкість), нам потрібно трохи проаналізувати.

Ви погоджуєтесь, що нам потрібно о Nоперації для непаралельного випадку. Скажімо, у нас є два вузли, і ми розділяємо список з N елементів на два списки розміруN1,N2. Пошук у підсписках триваєN1,N2.

Однак у нас це є

N=N1+N2N1+N2

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

Однак це все-таки буде цікаво, особливо якщо нам доведеться кластеризувати обладнання, оскільки ми обмежені в кількості кубітів або інших обмеженнях.


2
Для N1 = N2 це все ще нерівність: sqrt (2) * sqrt (N1) <2 * sqrt (N1)
Марія Михайлова

О, справді. У голові $ \ sqrt {a b} = \ sqrt {a} \ sqrt {b} $ я думав. Я повинен перестати відповідати тут опівночі і коли втомився. Дякуємо, що вказали на це.
Канада

3
@cnada: Існує щонайменше два різних поняття складності, обидва мають відношення до прискорення. Один - складність за розмірами, а один - складність глибини. Якщо не вказано інше, ми часто вважаємо за краще складну величину, але глибинна складність все-таки є цікавою для квантової обчислювальної складності, наприклад, у MBQC [arXiv: quant-ph / 0301052 , arXiv: 0704.1736 ] та останніх результатах на безумовних глибинних розділень [arXiv: 1704.00690 ].
Ніль де Бодорап

@NieldeBeaudrap Я думав, що люди дивляться більше на глибину складності. Але для Гровера розмір і глибина складності приблизно однаковий. Це є квадратичним за розміром задачі (звичайно розглядається як розмір списку з N елементів). Ви вважаєте, що мій підхід тут не правильний?
cnada

2
Ви нічого не говорите, що не так , я просто вказую, що ви надмірно підкреслюєте складність розміру і не дуже розробите користь для глибини складності. Не так багато цікавого трапляється, якщо ти тільки робишкО(1) паралельні процеси Гровера, але як підказує відповідь Дафтваллі (і з огляду на класичну післяобробку), складність глибини виходить з N до журнал(к)N/к для к(N)Ω(1) паралельні процеси Гроувера, що є вдосконаленням за фактором к/журнал(к)(фактор журналу походить від визначення того, який, якщо якийсь процес знайшов рішення).
Ніль де Бодорап
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.