Чи можемо ми використовувати квантовий паралелізм для обчислення багатьох функцій одночасно?


9

Добре відомо, що за допомогою квантового паралелізму ми можемо обчислити функцію f(x)для багатьох різних значень одночасно. Однак потрібні деякі розумні маніпуляції, щоб отримати інформацію про кожне значення, тобто з алгоритмом Deutsch.x

Розглянемо зворотний випадок: чи можемо ми використовувати квантовий паралелізм для обчислення багатьох функцій (скажімо, ) одночасно для одного значення ?f(x),g(x),x0


Для оцінки та вам потрібно зробити копію для кожної операції, що, як правило, неможливо теоремою про клонування. Якщо, з іншого боку, ви просто готуєте стан, який два рази , ви просто відновите класичний паралелізм. f(x0)g(x0)x0x0

@HenriMenke Як щодо недосконалого клонування?
donnydm

@HenriMenke: ваше уявлення про те, що таке «клонування», здається, дуже широке, щоб створити певні перешкоди для вашої здатності продуктивно підходити до проблем.
Ніль де Бодорап

Відповіді:


5

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

At=1n|ft(x)|Ft

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

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

Якщо ви хочете позбутися від сміття, речі стають складнішими. Наприклад, припустимо, що ви хочете - це унітарна яка має ефектU

U:|x|0NAt=1n|ft(x)

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

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


Дякую, я думаю, що таким чином можна прискорити що-небудь, як розрахунок розширення Тейлора. У будь-якому випадку, чи можна отримати доступ / зберігати збережену програму, щоб отримати якусь інформацію, чи це просто інструмент?
donnydm

Збережена програма буде просто записана в реєстр кубітів, тому цим, безумовно, можна маніпулювати.
Джеймс Вуттон

5

Функції f,g,що ви хочете оцінити в різних обчислювальних галузях, щоб бути обчислюваним взагалі, певним чином можна визначити (наприклад, послідовність класичних логічних воріт). І набір {f1,f2,} функції, які ви хочете обчислити, повинні бути обчислюваними: для даної задачі t, ви повинні мати можливість обчислити специфікацію того, як ftслід обчислити його аргумент. По суті: ви повинні мати засоби опису функційftяк збережені програми. (Це все необхідне, навіть перш ніж ми розглянемо квантові обчислення, для питання "обчислення однієї / всіх функційf1,f2, на вхід x0"бути значущим.)

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

Отримати компенсаційну перевагу від цього - справа інша, і доведеться залучати до функцій якусь конкретну структуру ft що ви можете скористатися, але просто "оцінити в суперпозиції" легко зробити, якщо у вас є достатньо інформації, щоб питання було зрозумілим.


3

Так (залежно від того, що означає "обчислити багато функцій одразу")

Опис схеми, яка дає функцію f як Uf і схема подачі g як Ug, Є кілька способів зробити це:

  1. Починаючи з регістрів кубіту в |00x, Підготуйте стан α|01+β|10на перші два регістри. Це можна зробити, застосувавши унітарний номер 1 до першого реєстру для внесення цього реєстру в штатα|0+β|1 перш ніж застосовувати CNOT, потім IX. Потім подайте заявкуCUf від першого реєстру до третього і CUg від другого до третього.

    1.1. Це дає висновок, що третій реєстр зараз знаходиться у штаті(αUf+βUg)|x, коли початкові операції (до IX) на перших двох регістрах обернено. Однак, із-за загальних труднощів у здійсненні довільних контрольованих унітарних операцій (а також використання зайвих кубітів без необхідності), можливо, було б легше здійснити це безпосередньо шляхом набору номера унітарнихαUf+βUg. Зауважте, що це не є реалізацієюf ні g, але нова, інша функція f+g

    1.2. Не обертаючи початкових операцій на перших двох регістрах, третій ставить у деякий заплутаний станf і g, про що йдеться в інших відповідях.

  2. Починаючи з держави |xx та застосування Uf до першого реєстру та Ugдо другого. Це найближче до класичного паралелізму, коли обидві функції застосовуються незалежно до копій одного стану. Окрім того, що потрібно двічі кількість кубітів, проблема полягає в тому, що через не клонування потрібно скопіювати|x, це або повинно бути відомим, або бути класичним станом (тобто не включати в обчислювальну основу суперпозиції). Приблизне клонування також може бути використане.

  3. Почніть з держави |0x, а також класичний реєстр. Застосуйте унітар 1, щоб поставити перший регістр у суперпозиціюα|0+β|1. Тепер виміряйте цей регістр (помістивши результат у класичний регістр) і застосуйте класичну операцію IF RESULT = 0 U_f ELSE U_g. Хоча це може здатися менш потужним, ніж будь-яка з перерахованих вище операцій, це в певному сенсі еквівалентно квантовому каналуE(ρ)=|α|2UfρUf+|β|2UgρUg. Такі методи можуть бути використані для створення випадкових унітаріїв, які застосовують, наприклад, вибірку бозону та рандомізоване тестування


1 дано

(αββα)


Це цікаво, частково тому, що не потрібно зберігати програму. Чи потрібен CNOT у №1?
donnydm

2

Так, можна. Хитрість полягає у визначенні (та реалізації) нової функціїfall(y,x) що оцінює до f(x) якщо y=0, до g(x) якщо y=1і т. д. Потім готують представлення кубітів y у бажаному суперпозиції та множині x до x0.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.