Алгоритм Грувера
Алгоритм Грувера (також GSA від англ. Grover search algorithm) — квантовий алгоритм вирішення задачі перебору, тобто знаходження рішення рівняння
де є булева функція від n змінних. Був запропонований американським математиком Ловом Грувером в 1996 році.
Передбачається, що функція задана у вигляді чорного ящика, або оракула, тобто в ході рішення ми можемо тільки задавати оракула питання типу: «чому дорівнює при даному », І після отримання відповіді використовувати його в подальших обчисленнях. Тобто завдання вирішення рівняння (1) є загальною формою завдання перебору; тут потрібно знайти «пароль до пристрою », Що класично вимагає прямого перебору всіх варіантів.
Алгоритм Грувера знаходить деякий корінь рівняння, використовуючи звернень до функції , з використанням кубітів.
Сенс алгоритму Грувера складається в «посиленні амплітуди» цільового стану за рахунок зменшення амплітуди всіх інших станів. Геометрично алгоритм Грувера полягає в обертанні поточного вектора стану квантового комп'ютера у напрямку точно до цільового стану (рух по найкоротшому шляху забезпечує оптимальність алгоритму Грувера). Кожен крок дає обертання на кут , де кут між і становить . Подальше продовження ітерацій оператора G дасть продовження обходу кола в речовій площині, породженої даними векторами.
Груверівське «посилення амплітуди» є, мабуть, фундаментальним фізичним феноменом в квантової теорії багатьох тіл. Наприклад, його облік необхідний для оцінки ймовірностей подій, які здаються «рідкісними». Процес, який реалізує схему алгоритму Грувера, призводить до вибухового зростання спочатку знехтуваної малої амплітуди, що здатне швидко довести її до реально спостережуваних величин.
Застосування алгоритму
Хоча мета алгоритму Грувера зазвичай описується як «пошук в базі даних», можна більш точно описати його як «інвертування функції». Насправді, так як «пророча машина» неструктурованої бази даних вимагає, хоча б лінійної складності, алгоритм не може бути використаний для реальних баз даних.[1] Грубо кажучи, якщо функцію можна оцінити на квантовому комп'ютері, алгоритм Грувера обчислює за заданим . Інверсія функція пов'язана з пошуком бази даних, тому що ми могли б придумати функцію, яка виробляє одне конкретне значення (наприклад «істинно»), якщо відповідає потрібному запису в базі даних, і інше значення («хибно») для інших значень .
Алгоритм Грувера також може бути використаний для знаходження медіани і середнього арифметичного числового ряду.[2] Крім того, він може застосовуватися для вирішення NP-повних задач шляхом вичерпного пошуку серед безлічі можливих рішень. Це може спричинити значний приріст швидкості в порівнянні з класичними алгоритмами, хоча і не надаючи «поліноміального рішення» в загальному вигляді. Алгоритм може бути додатково оптимізовано, якщо існує більше, ніж один елемент. що збігається і число збігів відомо заздалегідь.
Налаштування
Розглянемо невпорядовану базу даних з записів. Алгоритм вимагає -вимірний простір станів , в яких можуть перебувати кубітів. Розглянемо задачу визначення індексу записи бази даних, яка задовольняє деяким заданим критеріям. Нехай f — функція, яка показує всі записи бази даних 0 або 1, де f(x) = 1 тоді і тільки тоді, коли x відповідає критерію пошуку (x = ω). Ми отримали доступ до підпрограми (так званий оракул або пророча машина) у вигляді унітарного оператора Uω, який діє в такий спосіб:
Альтернативне визначення Uω може виникнути через припущення про наявність додаткової системи кубіта (як у квантовій системі, яка зображена нижче). Операція потім представляє собою умовне інвертування (NOT), обумовлене величиною f(x) у головній системі:
або коротко,
Це природний спосіб реалізувати бінарну операцію з використанням методу зворотного обчислення. Зверніть увагу, що якщо кубіт знаходиться в стані , ефективна робота цього оператору NOT стає еквівалентна вихідній формі:
У будь-якому випадку, наша мета полягає в тому, щоб визначити індекс .
Робота алгоритму
Етапи роботи алгоритму Грувера наведені нижче. Позначимо через рівномірну суперпозицію по всім станам
Тоді оператор
вважатимемо, як оператор дифузії Грувера.
Власне алгоритм:
- Ініціалізуємо стан систем
- Виконуємо наступні «ітерації Грувера» раз. Функція є асимптотичною , як описано нижче.
- Застосовуємо оператор .
- Застосовуємо оператор .
- Визначаємо значення Ω. Результат вимірювання буде власне λω з ймовірністю, що наближається до 1 для N "1. З λω може бути отримано ω.
Перша ітерація
Попереднє спостереження, паралельно з нашим визначенням
є , що може бути виражено альтернативним шляхом:
Іншими словами, обидва перетворення мають перетворення типу Хаусхолдера. Для доказу цього достатньо, щоб перевірити, як діє на основні стани:
Наступні обчислення показують, що відбувається в першій ітерації::
Варто відзначити окремий випадок при N = 4 з одним визначеним станом. Це означає, що в одному застосуванні ітератора Грувера зазначений стан повертається.
Після застосування операторів і , квадрат амплітуди запитуваного елемента збільшиться з до .
Визначення Uω
Алгоритм Грувера вимагає «квантового передбачення» оператора , який може визначати рішення проблеми пошуку і дати їм негативний знак. Для того, щоб зберегти загальний алгоритм пошуку, ми залишимо внутрішню роботу «оракула» як чорний ящик, але пояснимо, як перевертається знак. Оракул — це функція , яка повертає if , якщо це рішення задачі пошуку і в іншому випадку. Унітарний оператор передбачення працює для двох кубітів:
де — індекс кубіта і оракул кубіта.
Як завжди, позначає додавання за модулем 2. Операція перевертає оракул кубіта, якщо і залишає його без змін в іншому випадку. В алгоритмі Грувера ми хочемо обернути знак стану , якщо він визначає рішення. Це досягається шляхом установки оракула кубіту в стані , який перевертається до if , якщо це рішення:
Ми розглядаємо , як обернене, таким чином оракул кубіта не змінюється, тому відповідно до визначення оракула кубітів, як правило, не згадується в описі алгоритму Грувера. Таким чином, операція оракула просто записується у вигляді
Зауваження
Припустимо, рівняння (1) має корені. Класичний алгоритм вирішення такого завдання (лінійний пошук), очевидно, вимагає звернень до для того, щоб вирішити задачу з імовірністю ½. Алгоритм Грувера дозволяє вирішити задачу пошуку за час , тобто близько квадратного кореня з класичного, що є величезним прискоренням. Доведено, що Алгоритм Грувера є оптимальним в наступних випадках:
- константу не можна поліпшити.
- Більшого квантового прискорення, ніж квадратичне, не можна отримати.
Алгоритм Грувера є приклад масової задачі, що залежить від оракула. Для більш приватних завдань вдається отримати більше квантове прискорення. Наприклад, алгоритм факторизації Шора дає експонентний виграш в порівнянні з відповідними класичними алгоритмами.
Те, що f задана у вигляді чорного ящика, ніяк не впливає в загальному випадку на складність як квантових, так і класичних алгоритмів. Знання «пристрою» функції f (наприклад, знання задає її схеми з функціональних елементів) в загальному випадку ніяк не може допомогти у вирішенні рівняння (1). Пошук в базі даних співвідноситься зі зверненням функції, яка приймає певне значення, якщо аргумент x відповідає шуканої записи в базі даних.
Алгоритми, що використовують схему Грувера
- Алгоритм пошуку екстремуму цілочисельної функції (P. Hoyer і ін.). Шукається найбільше значення функції . Квантовий алгоритм знаходить максимум звернень до f.
- Алгоритм структурного пошуку (Farhi, Gutman). Шукається розв'язок рівняння (1) при додатковій умові , де — розбиття рядка на два рядки однакової довжини. Алгоритм має складність порядку квадратного кореня з класичного часу.
- Алгоритм пошуку співпадаючих рядків в базі даних (Амбайніс). Шукається пара різних аргументів , на яких функція приймає одне і те ж значення. алгоритм вимагає звернень до f.
Варіації і узагальнення
- Безперервні версії алгоритму Грувера
- Нехай гамільтоніан квантової системи має вигляд , де і являють собою оператори і відповідно. Тоді безперервна унітарна еволюція з гамільтоніаном , починаючи з , приводить до . Складність такого безперервного аналога алгоритму Грувера точно та ж, що і для дискретного випадку.
- Адіабатичний варіант алгоритму Грувера. Повільна еволюція основного стану типу під дією гамільтоніана, залежить від f , згідно адіабатичній теоремі, за час порядку веде до стану .
Оптимізація
Відомо, що алгоритм Грувера є оптимальним. Тобто, будь-який алгоритм, який отримує доступ до бази даних тільки за допомогою оператора Uω має застосовувати Uω принаймні, стільки раз алгоритм Грувера.[3] Цей результат важливий для розуміння меж квантових обчислень.
Якщо проблема пошуку в Грувера мала розв'язок з logc N застосувань Uω, що означало б, що NP міститься в BQP, шляхом перетворення проблем в NP в пошукових завдань Грувер-типу. Оптимальність алгоритму Грувера передбачає (але не доводить), що NP не міститься в BQP.
Число ітерацій для k записів, π(N/k)1/2/4, також є оптимальним.[4]
Застосовність і обмеження
В базах даних, які не представлені в явному вигляді оракул викликається для оцінки елемента по його індексу, при цьому читання елементів повної бази даних один за одним і перетворення його в доступне подання може зайняти набагато більше часу, ніж пошук Грувера. Для врахування таких ефектів, алгоритм Грувера можна розглядати як рішення рівняння або задовольняють обмеження. У таких використаннях, оракул є способом перевірити обмеження і не пов'язаний з алгоритмом пошуку. Це поділ, як правило, запобігає алгоритмічній оптимізації, в той час як звичайні алгоритми пошуку часто покладаються на такі оптимізації і уникнути повного перебору. Ці та інші міркування з приводу використання алгоритму Грувера обговорюються в статті Віамонте, Маркова та Хеєса.[5]
Див. також
Посилання
- https://web.eecs.umich.edu/~imarkov/pubs/jour/cise05-grov.pdf
- Grover, Lov K. (1997). «A framework for fast quantum mechanical algorithms». arXiv:quant-ph/9711043.
- 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.
- Michel Boyer; Gilles Brassard; Peter Høyer; Alain Tapp (1998). Tight Bounds on Quantum Searching. Fortsch. Phys. 46: 493–506. Bibcode:1998ForPh..46..493B. ISBN 9783527603091. arXiv:quant-ph/9605034. doi:10.1002/3527603093.ch10.
- Viamontes G.F.; Markov I.L.; Hayes J.P. (2005). Is Quantum Search Practical?. Computing in Science and Engineering 7 (3): 62–70. Bibcode:2005CSE.....7c..62V. arXiv:quant-ph/0405001. doi:10.1109/mcse.2005.53.
Джерела
- Grover L.K.: A fast quantum mechanical algorithm for database search, Proceedings, 28th Annual ACM Symposium on the Theory of Computing, (May 1996) p. 212
- Grover L.K.: From Schrödinger's equation to quantum search algorithm, American Journal of Physics, 69(7): 769—777, 2001. Pedagogical review of the algorithm and its history.
- Grover L.K.: QUANTUM COMPUTING: How the weird logic of the subatomic world could make it possible for machines to calculate millions of times faster than they do today The Sciences, July/August 1999, pp. 24–30.
- Nielsen, M.A. and Chuang, I.L. Quantum computation and quantum information. Cambridge University Press, 2000. Chapter 6.
- What's a Quantum Phone Book?, Lov Grover, Lucent Technologies
- Grover's Algorithm: Quantum Database Search, C. Lavor, L.R.U. Manssur, R. Portugal
- Grover's algorithm on arxiv.org
- Davy Wybiral. Quantum Circuit Simulator. Архів оригіналу за 16 січня 2017. Процитовано 13 січня 2017.
- Craig Gidney (5 березня 2013). Grover's Quantum Search Algorithm.
- François Schwarzentruber (18 травня 2013). Grover's algorithm.
- Alexander Prokopenya. Quantum Circuit Implementing Grover's Search Algorithm. Wolfram Alpha.
- Hazewinkel, Michiel, ред. (2001). Quantum computation, theory of. Encyclopedia of Mathematics. Springer. ISBN 978-1-55608-010-4.
- Roberto Maestre (11 травня 2018). Grover's Algorithm implemented in R and C.