Алгоритм Ґровера

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Алгоритм Ґровера (також GSA від англ. Grover search algorithm) — квантовий алгоритм вирішення задачі перебору, тобто пошуку рішення рівняння

де є булева функція від змінних, а — двійковий вектор довжини . Був запропонований американським математиком Ловом Ґровером в 1996 році.

Представлення алгоритму Ґровера

Передбачається, що функція задана у вигляді чорного ящика, або оракула, тобто в ході рішення ми можемо тільки задавати оракула питання типу: «чому дорівнює при даному », І після отримання відповіді використовувати його в подальших обчисленнях. Тобто завдання вирішення рівняння (1) є загальною формою завдання перебору; тут потрібно знайти «пароль до пристрою », Що класично вимагає прямого перебору всіх варіантів.

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

Сенс алгоритму Ґровера складається в «посиленні амплітуди» цільового стану за рахунок зменшення амплітуди всіх інших станів. Геометрично алгоритм Ґровера полягає в обертанні поточного вектора стану квантового комп'ютера у напрямку точно до цільового стану (рух по найкоротшому шляху забезпечує оптимальність алгоритму Ґровера). Кожен крок дає обертання на кут , де кут між  і  становить . Подальше продовження ітерацій оператора G дасть продовження обходу кола в речовій площині, породженої даними векторами.

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

Застосування алгоритму[ред. | ред. код]

Хоча мета алгоритму Ґровера зазвичай описується як «пошук в базі даних», можна більш точно описати його як «інвертування функції». Насправді, так як «пророча машина» неструктурованої бази даних вимагає, хоча б лінійної складності, алгоритм не може бути використаний для реальних баз даних.[1] Грубо кажучи, якщо функцію можна оцінити на квантовому комп'ютері, алгоритм Ґровера обчислює за заданим . Інверсія функція пов'язана з пошуком бази даних, тому що ми могли б придумати функцію, яка виробляє одне конкретне значення (наприклад «істинно»), якщо відповідає потрібному запису в базі даних, і інше значення («хибно») для інших значень .

Алгоритм Ґровера також може бути використаний для знаходження медіани і середнього арифметичного числового ряду.[2] Крім того, він може застосовуватися для вирішення NP-повних задач шляхом вичерпного пошуку серед безлічі можливих рішень. Це може спричинити значний приріст швидкості в порівнянні з класичними алгоритмами, хоча і не надаючи «поліноміального рішення» в загальному вигляді. Алгоритм може бути додатково оптимізовано, якщо існує більше, ніж один елемент. що збігається і число збігів відомо заздалегідь.

Налаштування[ред. | ред. код]

Розглянемо невпорядовану базу даних з записів. Алгоритм вимагає -вимірний простір станів , в яких можуть перебувати кубітів. Розглянемо задачу визначення індексу записи бази даних, який задовольняє деяким заданим критеріям. Нехай — функція, яка показує всі записи бази даних 0 або 1, де тоді і тільки тоді, коли відповідає критерію пошуку (). Ми отримали доступ до цієї функції у вигляді унітарного оператора (так званий оракул або пророча машина), що діє в такий спосіб:

або коротко,

.

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

або коротко,

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

Не дивлячись на те, який саме оракул для нам задано, ми зможемо отримати потрібний .[3]

Робота алгоритму[ред. | ред. код]

Етапи роботи алгоритму Ґровера наведені нижче. Позначимо через рівномірну суперпозицію по всім станам

Тоді оператор

вважатимемо за оператор дифузії Ґровера.

Власне алгоритм:

  1. Ініціалізуємо стан систем
  2. Виконуємо наступні «ітерації Ґровера» раз. Функція асимптотично є , як описано нижче.
    1. Застосовуємо оператор .
    2. Застосовуємо оператор .
  3. Вимірюємо отриманий квантовий стан.

Для правильного вибраної кількості ітерацій результат буде з імовірністю, що наближається до 1 при N ≫ 1. Аналіз показує, що .

Перша ітерація[ред. | ред. код]

Попереднє спостереження, паралельно з нашим визначенням

є , що може бути виражено альтернативним шляхом:

Іншими словами, обидва перетворення мають перетворення типу Хаусхолдера. Для доказу цього достатньо, щоб перевірити, як діє на основні стани:

Наступні обчислення показують, що відбувається в першій ітерації::

Варто відзначити окремий випадок при N = 4 з одним визначеним станом. Це означає, що в одному застосуванні ітератора Ґровера зазначений стан повертається.

Після застосування операторів і , квадрат амплітуди запитуваного елемента збільшиться з до

Зауваження[ред. | ред. код]

Припустимо, рівняння (1) має корені. Класичний алгоритм вирішення такого завдання (лінійний пошук), очевидно, вимагає звернень до  для того, щоб вирішити задачу з імовірністю ½. Алгоритм Ґровера дозволяє вирішити задачу пошуку за час , тобто близько квадратного кореня з класичного, що є величезним прискоренням. Доведено, що Алгоритм Ґровера є оптимальним в наступних випадках:

  • константу не можна поліпшити.
  • Більшого квантового прискорення, ніж квадратичне, не можна отримати.

Алгоритм Ґровера є приклад масової задачі, що залежить від оракула. Для більш приватних завдань вдається отримати більше квантове прискорення. Наприклад, алгоритм факторизації Шора дає експонентний виграш в порівнянні з відповідними класичними алгоритмами.

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

Оптимізація[ред. | ред. код]

Відомо, що алгоритм Ґровера є оптимальним. Тобто, будь-який алгоритм, який отримує доступ до бази даних тільки за допомогою оператора Uω має застосовувати Uω принаймні, стільки раз алгоритм Ґровера.[4] Цей результат важливий для розуміння меж квантових обчислень.

Якщо проблема пошуку в Ґровера мала розв'язок з logc N застосувань Uω, що означало б, що NP міститься в BQP, шляхом перетворення проблем в NP в пошукових завдань Ґровер-типу. Оптимальність алгоритму Ґровера передбачає (але не доводить), що NP не міститься в BQP.

Число ітерацій для «помічених» записів, , також є оптимальним.[5]

Застосовність і обмеження[ред. | ред. код]

В базах даних, які не представлені в явному вигляді оракул викликається для оцінки елемента по його індексу, при цьому читання елементів повної бази даних один за одним і перетворення його в доступне подання може зайняти набагато більше часу, ніж пошук Ґровера. Для врахування таких ефектів, алгоритм Ґровера можна розглядати як рішення рівняння або задовольняють обмеження. У таких використаннях, оракул є способом перевірити обмеження і не пов'язаний з алгоритмом пошуку. Це поділ, як правило, запобігає алгоритмічній оптимізації, в той час як звичайні алгоритми пошуку часто покладаються на такі оптимізації і уникнути повного перебору. Ці та інші міркування з приводу використання алгоритму Ґровера обговорюються в статті Віамонте, Маркова та Хеєса.[6]

Алгоритми, що використовують схему Ґровера[ред. | ред. код]

  • Алгоритм пошуку екстремуму цілочисельної функції (P. Hoyer і ін.). Шукається найбільше значення функції . Квантовий алгоритм знаходить максимум за звернень до .
  • Алгоритм пошуку співпадаючих рядків в базі даних (Амбайніс). Шукається пара різних аргументів , на яких функція приймає одне і те ж значення. Алгоритм вимагає звернень до .

Варіації і узагальнення[ред. | ред. код]

Безперервні версії алгоритму Ґровера
  • Нехай гамільтоніан квантової системи має вигляд , де   і   являють собою оператори  і відповідно. Тоді безперервна унітарна еволюція з гамільтоніаном , починаючи з , приводить до . Складність такого безперервного аналога алгоритму Ґровера точно та ж, що і для дискретного випадку.
  • Адіабатичний варіант алгоритму Ґровера. Повільна еволюція основного стану типу під дією гамільтоніана, залежить від f , згідно адіабатичній теоремі, за час порядку веде до стану .

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]

  1. Архівована копія (PDF). Архів оригіналу (PDF) за 3 лютого 2021. Процитовано 15 листопада 2020.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Grover, Lov K. (1997). «A framework for fast quantum mechanical algorithms». arXiv:quant-ph/9711043. 
  3. Chuang, Isaac L. (2010). Quantum computation and quantum information (вид. 10th anniversary ed). Cambridge: Cambridge University Press. ISBN 978-1-107-00217-3. OCLC 665137861.
  4. Bennett C.H.; Bernstein E.; Brassard G.; Vazirani U. (1997). The strengths and weaknesses of quantum computation. SIAM Journal on Computing. 26 (5): 1510—1523. arXiv:quant-ph/9701001. doi:10.1137/s0097539796300933. Архів оригіналу за 6 березня 2016. Процитовано 15 листопада 2020.
  5. Michel Boyer; Gilles Brassard; Peter Høyer; Alain Tapp (1998), Tight Bounds on Quantum Searching, Fortsch. Phys., 46: 493—506, arXiv:quant-ph/9605034, Bibcode:1998ForPh..46..493B, doi:10.1002/3527603093.ch10, ISBN 9783527603091
  6. Viamontes G.F.; Markov I.L.; Hayes J.P. (2005), Is Quantum Search Practical? (PDF), Computing in Science and Engineering, 7 (3): 62—70, arXiv:quant-ph/0405001, Bibcode:2005CSE.....7c..62V, doi:10.1109/mcse.2005.53, архів оригіналу (PDF) за 3 лютого 2021, процитовано 15 листопада 2020

Джерела[ред. | ред. код]