ГоловнаСтаттіКвантові обчислення

Deutsch-Jozsa: Одна Квантова Запит Перемагає Усі Класичні Вгадування

Як фазова передача та перетворення Walsh-Hadamard дозволяють одній запиту до оракула вирішити питання постійного проти збалансованого з певністю - перша доказовість, що квантові запити можуть перемогти класичні.

mysimulator teamОновлено — червень 2026≈ 7 хв читання▶ Відкрити симуляцію

Проблема обіцянки, що використовує квантову інтерференцію

Алгоритм Давида Дебтуша та Річарда Джойзи 1992 року вирішує навмисне вузьке завдання: вам надають чорнової функцію f, яка відображає n бітів у один біт, з обіцянкою, що f є константою (однакова вихідна величина для всіх можливих вхідних даних) або збалансованою (вихід 0 для точно половини 2ⁿ входів і 1 для інших). Ваша задача – визначити, яка саме, використовуючи оракул якомога менше разів.

Класично, якщо ви наполягаєте на відповіді, що є абсолютною, а не просто ймовірною, немає жодного скорочення: ворожий f може змусити вас запитати до 2ⁿ⁻¹ + 1 вхідних даних, перш ніж ви зможете відкинути обидві можливості, оскільки послідовність однакових виходів узгоджується з "константою", поки ви не побачите більше половини області. Квантовий алгоритм відповідає з певністю, використовуючи лише один запит до оракула, незалежно від n.

жива демонстрація · пов'язана симуляція● LIVE

Фазальний відскок: кодування f(x) без використання допоміжного кубіта

Ключовим елементом, що дозволяє досягти результату одним запитом до оракула, є фазовий відскок. Оракул реалізовано зворотним чином як U_f: |x⟩|y⟩ → |x⟩|y ⊕ f(x)⟩. Підготуйте допоміжний кубіт не в |0⟩, а в суперпозиції |-⟩ = (|0⟩ - |1⟩)/√2. Застосування U_f до |x⟩|-⟩ залишає допоміжний кубіт у стані |-⟩ без змін, але множить весь термін на (-1)^f(x):

U_f |x⟩ (|0⟩-|1⟩)/√2 = (-1)^f(x) |x⟩ (|0⟩-|1⟩)/√2 якщо n вхідних кубітів утримують суперпозицію по всіх x, tо один виклик оракула записує фазу (-1)^f(x) на кожну гілку цієї суперпозиції одночасно. Оскільки вхідний регістр поміщається в рівнопарну суперпозицію всіх 2ⁿ значень перед викликом оракула – шляхом застосування гейта Гейзенберга до кожного з n кубітів, що перетворює |0⟩^⊗n на (1/√2ⁿ) Σₓ |x⟩ – цей один виклик фазового відскоку ефективно обчислює f для кожного вхідного значення одночасно. Інформація не виходить у вигляді читабельної бітної послідовності; вона виходить закодована як патерн фаз через експоненціально велику суперпозицію.

U_f |x⟩ (|0⟩-|1⟩)/√2  =  (-1)^f(x) |x⟩ (|0⟩-|1⟩)/√2

if the n input qubits hold a SUPERPOSITION over every x,
the single oracle call writes (-1)^f(x) as a phase onto
every branch of that superposition simultaneously.

Алгоритм одним запитом

1. підготувати n вхідних кубітів у стані |0⟩⊗n та один анксила в стані |-⟩. 2. застосувати H до всіх n+1 кубітів → введення: рівночастний суперпозиція анксила: |-⟩ 3. застосувати оракул U_f один раз → фазовий відскок: (-1)^f(x) на кожну гілку 4. знову застосувати H до n вхідних кубітів ( Walsh-Hadamard перетворення) 5. виміряти n вхідні кубіти всі нулі → f є ПОСТІЙНИМ будь-який біт → f є ЗБАЛАНСОВАНИМ Крок 4 – друга половина трюку. Один Hadamard перетворює |0⟩ на суперпозицію; шар з n Hadamarda, застосований до стану, який вже несе закономірність фаз, виконує Walsh-Hadamard перетворення - він інтерферує ці 2ⁿ фазовані амплітуди назад разом, і де інтерференція приземлиться, залежить повністю від фазового патерну, написаного оракулом.

1. prepare n input qubits in |0⟩^⊗n, one ancilla in |1⟩
2. apply H to all n+1 qubits          → input: equal superposition
                                          ancilla: |-⟩
3. apply the oracle U_f once          → phase kickback: (-1)^f(x) per branch
4. apply H to the n input qubits again  (Walsh-Hadamard transform)
5. measure the n input qubits
     all zeros  → f is CONSTANT
     any 1 bit  → f is BALANCED

Чому амплітуди колапсують до нуля або ніколи не колапсують

Амплітуда вимірювання послідовності всіх нулів розраховується як сума по кожному вхідному значенню:

amp(∣00...0⟩) = (1/2ⁿ) Σₓ (-1)^f(x) f константа → кожен член має однаковий знак → сума = ±2ⁿ → ймовірність 1 f збалансований → точно на половину членів f(x) = +1, а на половину -1 → сума = 0 → ймовірність 0 Якщо f є константою, кожен із 2ⁿ членів цієї суми має однаковий знак, тому вони додаються конструктивно і результат «всі нулі» гарантований. Якщо f збалансований, точно на половину членів f(x) = +1, а на половину -1, вони взаємно скасовують один одного, і ймовірність результату «всі нулі» дорівнює точно нулю – вимірювання гарантовано поверне щось інше, окрім нуля. Немає невизначеного середнього випадку, що саме пояснює, чому одне вимірювання дає чітку та безпомилкову відповідь замість статистичної натяку.

amplitude(|00...0⟩) = (1/2ⁿ) Σₓ (-1)^f(x)

f constant  → every term has the same sign → sum = ±2ⁿ → probability 1
f balanced  → exactly half the terms are +1, half -1 → sum = 0 → probability 0

Що означає прискорення

Важливо бути точним щодо того, що доводить алгоритм Де́utsch-Йозса. Його експоненційний перевага над детермінованим, точним класичним алгоритмом, який має шукати в найгіршому випадку. Класичний алгоритм, який дозволено випадковому та правильно вирішує задачу з високою ймовірністю, може розв’язати ту ж задачу за обіцянки з невеликою кількістю запитів – обрати невелику кількість випадкових входів, і якщо ви коли-небудь побачите два різних виходи, ви негайно дізнаєтесь, що f є збалансованим, а послідовність однакових виходів робить «постійну» переважною вже після кількох перевірок. Отже, Де́utsch-Йозса не є доказом того, що квантові комп’ютери перевершують найкращу класичну стратегію для цієї конкретної задачі; її справжня значущість полягає в тому, що це було першим алгоритмом, який надійно продемонстрував, що складність запитів квантового комп'ютера для точної відповіді може бути експоненціально меншою за складність запитів класичного комп’ютера, а техніка «фаза-відскок» та «Walsh-Hadamard», яку він ввів, стала інструментом, з якого пізніше були побудовані справді безпереможне прискорення – алгоритм Саймона, алгоритм Шора, алгоритм Гровера.

Часті запитання

Яку проблему фактично вирішує алгоритм Deutsch-Jozsa?

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

Як фазова віддача дозволяє одним запитом перевірити всі входи одночасно?

Оракул запитується в суперпозиції над усіма 2ⁿ входами з використанням допоміжного кубіта, підготовленого у стані |-⟩. XOR-уючи f(x) в цей допоміжний кубіт, оракул залишається незмінним, але гілка |x⟩ множиться на (-1)^f(x) – відповідь оракула для кожного x стає фазою на цій гілці одночасно, за один виклик.

Чи є прискорення Deutsch-Jozsa доказом того, що квантові комп'ютери перемагають класичні в загальному випадку?

Лише проти детермінованого класичного алгоритму, який потребує до 2^(n-1)+1 запитів, щоб бути впевненим. Випадковий класичний алгоритм вирішує ту ж проблему з обіцянкою з високою ймовірністю, використовуючи O(1) запитів, тому історична важливість Deutsch-Jozsa полягає у тому, що це був перший доказ концепції квантової переваги в кількості запитів, а не як доказ беззастережного прискорення.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Deutsch-Jozsa Algorithm і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Deutsch-Jozsa Algorithm

Що ви знайшли?

Додати кроки відтворення (опційно)