Квантовый алгоритм различения элементов: различия между версиями

Перейти к навигации Перейти к поиску
Строка 42: Строка 42:
1. Условный переворот фазы: <math>|T \rangle \to - |T \rangle</math> для всех T, таких, что в нем содержатся i, j, <math>x_i = x_j</math>, и <math>|T \rangle \to |T \rangle</math> для всех остальных T;
1. Условный переворот фазы: <math>|T \rangle \to - |T \rangle</math> для всех T, таких, что в нем содержатся i, j, <math>x_i = x_j</math>, и <math>|T \rangle \to |T \rangle</math> для всех остальных T;


2. Квантовое блуждание: выполнить <math>O(\sqrt{r})</math> шагов квантового блуждания согласно определению в работе [2]. Каждый шаг представляет собой преобразование, которое отображает каждое jTi на комбинацию базисных состояний jT0i для T, которые отличаются от T на один элемент.
2. Квантовое блуждание: выполнить <math>O(\sqrt{r})</math> шагов квантового блуждания согласно определению в работе [2]. Каждый шаг представляет собой преобразование, которое отображает каждое <math>|T \rangle</math> на комбинацию базисных состояний <math>|T' \rangle</math> для T', которые отличаются от T на один элемент.




Алгоритм ведет еще один квантовый регистр, в котором хранятся все значения xi ;i 2 T. Этот регистр обновляется с каждым шагом квантового блуждания.
Алгоритм ведет еще один квантовый регистр, в котором хранятся все значения <math>x_i, i \in T</math>. Этот регистр обновляется с каждым шагом квантового блуждания.




Если имеются два элемента i,j такие, что xi = xj, то повторение этих двух преобразований O(N/r) раз увеличивает амплитуды j Ti, содержащих i, j. Измерение состояния алгоритма в этот момент с высокой вероятностью дает множество T, содержащее i, j. Затем из множества T мы можем найти i и j.
Если имеются два элемента i, j такие, что <math>x_i = x_j</math>, то повторение этих двух преобразований O(N/r) раз увеличивает амплитуды <math>|T \rangle</math>, содержащих i, j. Измерение состояния алгоритма в этот момент с высокой вероятностью дает множество T, содержащее i, j. Затем из множества T мы можем найти i и j.




Основная структура алгоритма из [ ] похожа на квантовый поиск Гровера, но с одним существенным отличием. В алгоритме Гровера вместо квантового блуждания применяется диффузионное преобразование Гровера. Реализация алгоритма диффузии Гровера требует Q{r) обновлений регистра, хранящего xi ;i 2 T. В отличие от алгоритма диффузии Гровера, каждый шаг квантового блуждания изменяет T на один элемент, требуя только одного обновления списка xi; i 2 T. Таким образом, O(pr) шагов квантового блуждания могут быть выполнены с O(pr) обновлениями, что вчетверо лучше, чем при преобразовании диффузии Гровера. И, как показано в [2], квантовое блуждание обеспечивает достаточно хорошую аппроксимацию диффузии, чтобы алгоритм работал правильно.
Основная структура алгоритма из [2] похожа на квантовый поиск Гровера, но с одним существенным отличием. В алгоритме Гровера вместо квантового блуждания применяется ''диффузионное преобразование'' Гровера. Реализация алгоритма диффузии Гровера требует <math>\Omega(r)</math> обновлений регистра, хранящего <math>x_i, i \in T</math>. В отличие от алгоритма диффузии Гровера, каждый шаг квантового блуждания изменяет T на один элемент, требуя только одного обновления списка <math>x_i, i \in T</math>. Таким образом, <math>O(\sqrt{r})</math> шагов квантового блуждания могут быть выполнены с <math>O(\sqrt{r})</math> обновлениями, что квадратично быстрее, чем при преобразовании диффузии Гровера. И, как показано в [2], квантовое блуждание обеспечивает достаточно хорошую аппроксимацию диффузии, чтобы алгоритм работал правильно.




Строка 58: Строка 58:


   1. Инициализировать x состоянием, выбранным из некоторого начального распределения по состояниям P.
   1. Инициализировать x состоянием, выбранным из некоторого начального распределения по состояниям P.
   2. h раз повторить:
   2. <math>t_2</math> раз повторить:
   (а) Если текущее состояние y помечено, вывести y и остановить работу алгоритма;
   (а) Если текущее состояние y помечено, вывести y и остановить работу алгоритма;
   (б) Смоделировать t\ шагов случайного блуждания, начиная с текущего состояния y.
   (б) Смоделировать <math>t_1</math> шагов случайного блуждания, начиная с текущего состояния y.
   3. Если алгоритм не завершил выполнение, вывести «Нет помеченного состояния».
   3. Если алгоритм не завершил выполнение, вывести «Нет помеченного состояния».


Строка 66: Строка 66:




Обобщение на произвольные цепи Маркова
'''Обобщение на произвольные цепи Маркова'''


Шегеди [14] и Маньез и др. [ ] обобщили алгоритмы из [ ] и [ ], соответственно, для ускорения поиска по произвольной цепи Маркова. Основной результат работы [13] состоит в следующем.
Шегеди [14] и Маньез и др. [13] обобщили алгоритмы из [4] и [2], соответственно, для ускорения поиска по произвольной цепи Маркова. Основной результат работы [13] состоит в следующем.




Пусть P – несводимая цепь Маркова с пространством состояний X. Предположим, что некоторые состояния в пространстве состояний P помечены. Наша цель – найти помеченное состояние. Это можно сделать с помощью классического алгоритма, который обрабатывает цепь Маркова P до тех пор, пока она не достигнет помеченного состояния (алгоритм 1).
Пусть P – несводимая цепь Маркова с пространством состояний X. Предположим, что некоторые состояния в пространстве состояний P ''помечены''. Наша цель – найти помеченное состояние. Это можно сделать с помощью классического алгоритма, который обрабатывает цепь Маркова P до тех пор, пока она не достигнет помеченного состояния (алгоритм 1).




В сложность алгоритма 1 вносят вклад три типа стоимости:
В сложность алгоритма 1 вносят вклад три типа стоимости:


1. Стоимость настройки S: стоимость выборки начального состояния x из начального распределения.
1. '''Стоимость настройки''' S: стоимость выборки начального состояния x из начального распределения.


2. Стоимость обновления U: стоимость моделирования одного шага случайного блуждания.
2. '''Стоимость обновления''' U: стоимость моделирования одного шага случайного блуждания.


3. Стоимость проверки C: затраты на проверку помеченности текущего состояния x.
3. '''Стоимость проверки''' C: затраты на проверку помеченности текущего состояния x.




4501

правка

Навигация