MakarovSuites
Українська
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Зв’язок і ліцензії

Math

Пошук Ґровера

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

Пошук Ґровера — Зображення з програми
Зображення з програми

Що відбувається

Фазовий оракул позначає кандидата, змінюючи його відносну фазу. Вимірювання негайно у обчислювальній базі дає такі ж ймовірності, як і перед оракулом; Це не робить відносну фазу неспостережуваною у кожній базі вимірювання. Інтерференція на кроці дифузії перетворює фазову позначку на амплітудне підсилення.
Одна ітерація Grover складається з оракула і дифузії. Ймовірність успіху коливається, а не збігається: зупинитися біля першого максимуму, а потім порівняти з пізнішими ітераціями. Кількість запитів масштабується за квадратним коренем розміру простору пошуку для одного позначеного елемента; побудова оракула і підготовка даних також мають свої витрати. Модуль показує ідеальне симуляційне векторне моделювання стану, точні раціональні амплітуди для вибраних розмірів, а також відтворювану кількість вимірювань вибірки.

Рівняння модуля
Рівняння
sin θ = 1/√N;  після k поворотів амплітуда позначеного елемента дорівнює sin((2k+1)θ), а ймовірність є її квадратом
один поворот = один виклик оракула (знак мінус на позначеній амплітуді) + одне відбиття відносно середнього:  a -> 2·mean − a
оптимальна кількість поворотів k* = floor(π/4·√N) = 3, 6, 12, 25 для N = 16, 64, 256, 1024;  сліпий пошук у середньому потребує (N + 1)/2 = 8.5, 32.5, 128.5, 512.5
для N = 4^m амплітуда є точним ДРОБОМ, за цілочисельною рекурсією u(k+1) = (2q² − 4)·u(k) − q⁴·u(k−1) при q = 2^(n/2), sin((2k+1)θ) = u(k)/q^(2k+1)
шістнадцять елементів:  1/4, 11/16, 61/64, 251/256 (k* = 3), 781/1024, 1451/4096, −2339/16384 (k = 6, ймовірність 0.0204 - гірша за початкову 0.0625), … , 2269261/67108864 (k = 12)
шістдесят чотири елементи після шести поворотів:  133988401/134217728 = 0.99829138070344925, і регістр відтворює це до останнього біта
виміряне проти підрахованого:  2000 запусків при k* дають 1913, 1994, 2000, 2000 влучань для N = 16, 64, 256, 1024 - кожне в межах трьох сигм від точної ймовірності

Інші експерименти

До каталогу
Вентилі, фаза і навіщо потрібен базис — Зображення з програми

Math

Вентилі, фаза і навіщо потрібен базис

Чотири маленькі схеми з однією поворотною фазою, читані в базисі Z, X або Y. Фаза — справжня, розташована властивість стану: вектор Блоха ходить із нею по екватору, — а в неправильному базисі вона цілком невидима: за цілий оберт найбільша зміна будь-якої ймовірності результату дорівнює 1e-16. Постав у кінець другий Адамар — і та сама фаза вирішує відповідь достеменно. Це і є інтерференція, і в ній уся різниця між квантовим комп'ютером і монеткою.

Телепортація і навіщо потрібні два класичні біти — Зображення з програми

Math

Телепортація і навіщо потрібні два класичні біти

На станції Аліси — кубіт-повідомлення й половина спільної пари, на станції Боба — інша половина. Пройди протокол по кроках — CNOT, H, вимірювання — і надішли два біти звичайним каналом. Зупини їх до прибуття й спробуй угадати; потім вибери поправку Боба й порівняй те, що в нього, з повідомленням. Доки біти не прийшли, кубіт Боба — I/2 за будь-якого повідомлення, а після вимірювання в Аліси не лишається копії.

Одне питання, поставлене одного разу — Зображення з програми

Math

Одне питання, поставлене одного разу

Чорна скринька рахує функцію f із n бітів в один біт, і питати її можна лише про входи. Щоб напевно знати, стала вона чи збалансована, класично потрібно пів таблиці плюс один виклик. Адамар на все, ОДИН виклик із відповіддю у вигляді знака, знову Адамар — і результат «усі нулі» вирішує справу. Таблиця істинності тут клікається, тож обіцянку можна порушити руками: для будь-якої таблиці відповідь випадає з імовірністю (1 − 2k/N)². А якщо таблиця виявилася f(x) = s·x, той самий один виклик повертає саму строку s.