Вступ :
Проблема зіткнення найчастіше стосується версії 2 на 1, яку описав Скотт Ааронсон у своїй докторській дисертації. З огляду на , що парне і функція F : { 1 , . . . , П } → { 1 , . . . , n } ми заздалегідь знаємо, що або f є 1-до-1, або 2-to-1. Ми можемо робити запити про значення f ( i ) для будь-якого i ∈ { 1 , 2 ,nf:{1,...,n}→{1,...,n}ff(i) . Потім проблема задає питання, скільки запитів нам потрібно зробити, щоб з упевненістю визначити, чи f -1-1-або 2-to-1.i∈{1,2,...,n}f
Вирішення версії 2-до-1 детерміновано вимагає запитів, і взагалі для розмежування функцій r-to-1 від функцій 1-до-1 потрібні n / r + 1 запити.n/2+1n/r+1
Класичне детерміноване рішення :
Це пряме застосування принципу голубої дуги: якщо функція r-to-1, то після запитів ми гарантовано знайшли зіткнення. Якщо функція 1 на 1, то зіткнення не існує. Якщо нам не пощастить, то n / r запити можуть повернути різні відповіді. Тож n / r + 1 запитів необхідні.n/r+1n/rn/r+1
Рандомізоване класичне рішення :
Якщо дозволити випадковість, проблема легша. За парадоксу днів народження, якщо ми вибираємо (різні) запити в випадковому порядку, то з великою часткою ймовірності ми знаходимо зіткнення в будь-якій фіксованій 2-к-1 функції після
запити.Θ(n−−√)
Розчин КВТ :
Інтуїтивно зрозумілий алгоритм поєднує прискорення квадратного кореня з
парадоксами дня народження,
використовуючи (класичну) випадковість, прискорення квадратного кореня з (квантового) алгоритму Гровера.
По- перше, входи F обрані випадковим чином і е опитується на всіх з них. Якщо між цими входами відбувається зіткнення, ми повертаємо зіткнення пару входів. В іншому випадку всі ці входи відображаються на різні значення на f . Тоді алгоритм Гровера використовується для пошуку нового входу до f, що стикається. Оскільки існує тільки
п 2 / 3 такі входи в F , алгоритм Гровера може знайти один (якщо вона існує), зробивши тільки
O ( √n1/3ffffn2/3fзапити дое.O(n2/3−−−−√)=O(n1/3)f