4501
правка
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
(не показано 13 промежуточных версий этого же участника) | |||
Строка 3: | Строка 3: | ||
'''Запросы о значениях'''. В этом типе запросов входными данными для черного ящика является индекс i, а в качестве ответа он выдает <math>x_i</math>. В квантовой версии этой модели входные данные представляют собой квантовое состояние, которое может быть запутано с рабочим пространством алгоритма. Совместное состояние запроса, регистра ответа и рабочего пространства может быть представлено в виде <math>\sum_{i, y, z} a_{i, y, z} | i, y, z \rangle</math>, | '''Запросы о значениях'''. В этом типе запросов входными данными для черного ящика является индекс i, а в качестве ответа он выдает <math>x_i</math>. В квантовой версии этой модели входные данные представляют собой квантовое состояние, которое может быть запутано с рабочим пространством алгоритма. Совместное состояние запроса, регистра ответа и рабочего пространства может быть представлено в виде <math>\sum_{i, y, z} a_{i, y, z} | i, y, z \rangle</math>, где y – это дополнительный регистр, который будет содержать ответ на запрос, а z – рабочее пространство алгоритма. Черный ящик преобразует это состояние в <math>\sum_{i, y, z} a_{i, y, z} | i, (y + x_i) \; mod \; m, z \rangle</math>. Простейшим частным случаем является случай, когда входные данные для черного ящика имеют вид <math>\sum_i a_i | i, 0 \rangle</math>. Тогда черный ящик выдает <math>\sum_i a_i | i, x_i \rangle</math>. То есть квантовое состояние, состоящее из индекса i, преобразуется в квантовое состояние, каждый компонент которого содержит <math>x_i</math> вместе с соответствующим индексом i. | ||
Строка 9: | Строка 9: | ||
Задача различения элементов интересна для изучения по нескольким причинам. Во-первых, она связана с сортировкой. Возможность сортировки набора <math>x_1, ... , x_N</math> позволяет решить задачу различения элементов, сначала отсортировав <math>x_1, ... , x_N</math> в порядке возрастания. Если имеются два одинаковых элемента <math>x_i = x_j</math>, то в отсортированном списке они будут находиться рядом друг с другом. Поэтому после сортировки набора <math>x_1, ... , x_N</math> нужно только проверить отсортированный список, чтобы убедиться, что каждый элемент отличается от следующего. Из-за этой связи между задачами сложность различения элементов равносильна сложности сортировки. Результатом стал длинный список исследований нижних границ классических алгоритмов для задачи различения элементов (см. [6, 8, 15] и многие другие работы). | |||
Строка 33: | Строка 33: | ||
Задача о различении k элементов (и нахождении k-подмножества) может быть решена с помощью <math>O(N^{k/(k+1)})</math> запросов о значениях с использованием <math>O(N^{k/(k+1)})</math> памяти. Для случая, когда память ограничена <math>r < N^{k/(k+1)}</math> значениями <math>x_i</math>, достаточно использовать <math>O(r + (N^{k/2})/(r^{(k - 1)/2)})</math> запросов о значениях. Эти результаты можно обобщить на запросы о сравнениях и временную сложность, причем временная сложность увеличивается с полилогарифмическим коэффициентом (аналогично задаче о различении элементов). | Задача о различении k элементов (и нахождении k-подмножества) может быть решена с помощью <math>O(N^{k/(k+1)})</math> запросов о значениях с использованием <math>O(N^{k/(k+1)})</math> памяти. Для случая, когда память ограничена <math>r < N^{k/(k+1)}</math> значениями <math>x_i</math>, достаточно использовать <math>O(r + (N^{k/2})/(r^{(k - 1)/2)}))</math> запросов о значениях. Эти результаты можно обобщить на запросы о сравнениях и временную сложность, причем временная сложность увеличивается с полилогарифмическим коэффициентом (аналогично задаче о различении элементов). | ||
Строка 40: | Строка 40: | ||
Алгоритм Амбайниса имеет следующую структуру. Его пространство состояний охватывается базовыми состояниями <math>|T \rangle</math> для всех наборов индексов <math>T \subseteq \{ 1, ..., N \}</math>, |T| = r. Алгоритм начинает с равномерной суперпозиции всех <math>|T \rangle</math> и многократно применяет последовательность из двух преобразований: | Алгоритм Амбайниса имеет следующую структуру. Его пространство состояний охватывается базовыми состояниями <math>|T \rangle</math> для всех наборов индексов <math>T \subseteq \{ 1, ..., N \}</math>, |T| = r. Алгоритм начинает с равномерной суперпозиции всех <math>|T \rangle</math> и многократно применяет последовательность из двух преобразований: | ||
1. Условный переворот фазы: <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]. Каждый шаг представляет собой преобразование, которое отображает каждое | 2. Квантовое блуждание: выполнить <math>O(\sqrt{r})</math> шагов квантового блуждания согласно определению в работе [2]. Каждый шаг представляет собой преобразование, которое отображает каждое <math>|T \rangle</math> на комбинацию базисных состояний <math>|T' \rangle</math>, где T' отличаются от T на один элемент. | ||
Алгоритм | Алгоритм поддерживает еще один квантовый регистр, в котором хранятся все значения <math>x_i, i \in T</math>. Этот регистр обновляется с каждым шагом квантового блуждания. | ||
Если имеются два элемента 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. | ||
Основная структура алгоритма из [ ] похожа на квантовый поиск Гровера, но с одним существенным отличием. В алгоритме Гровера вместо квантового блуждания применяется диффузионное преобразование Гровера. Реализация алгоритма диффузии Гровера требует | Основная структура алгоритма из [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], квантовое блуждание обеспечивает достаточно хорошую аппроксимацию диффузии, чтобы алгоритм работал правильно. | ||
Это было одно из первых применений квантовых блужданий для построения квантовых алгоритмов. Затем Амбайнис, Кемпе и Ривош [4] обобщили его для поиска на решетках (см. | Это было одно из первых применений квантовых блужданий для построения квантовых алгоритмов. Затем Амбайнис, Кемпе и Ривош [4] обобщили его для поиска на решетках (см. статью [[Квантовый алгоритм поиска на решетках]]). Их алгоритм основан на тех же математических идеях, но имеет несколько иную структуру. Вместо чередования шагов квантового блуждания с переворотами фаз, он выполняет квантовое блуждание с двумя различными правилами – «нормальным» и «возмущенным». («Нормальное» правило соответствует блужданию без переворота фазы, а «возмущенное» – комбинации блуждания с переворотом фазы). | ||
1. Инициализировать x состоянием, выбранным из некоторого начального распределения по состояниям P. | 1. Инициализировать x состоянием, выбранным из некоторого начального распределения по состояниям P. | ||
2. | 2. <math>t_2</math> раз повторить: | ||
(а) Если текущее состояние y помечено, вывести y и остановить работу алгоритма; | (а) Если текущее состояние y помечено, вывести y и остановить работу алгоритма; | ||
(б) Смоделировать | (б) Смоделировать <math>t_1</math> шагов случайного блуждания, начиная с текущего состояния y. | ||
3. Если алгоритм не завершил выполнение, вывести «Нет помеченного состояния». | 3. Если алгоритм не завершил выполнение, вывести «Нет помеченного состояния». | ||
Строка 66: | Строка 66: | ||
Обобщение на произвольные цепи Маркова | '''Обобщение на произвольные цепи Маркова''' | ||
Шегеди [14] и Маньез и др. [ ] обобщили алгоритмы из [ ] и [ ], соответственно, для ускорения поиска по произвольной цепи Маркова. Основной результат работы [13] состоит в следующем. | Шегеди [14] и Маньез и др. [13] обобщили алгоритмы из [4] и [2], соответственно, для ускорения поиска по произвольной цепи Маркова. Основной результат работы [13] состоит в следующем. | ||
Пусть P – несводимая цепь Маркова с пространством состояний X. Предположим, что некоторые состояния в пространстве состояний P помечены. Наша цель – найти помеченное состояние. Это можно сделать с помощью классического алгоритма, который | Пусть P – несводимая цепь Маркова с пространством состояний X. Предположим, что некоторые состояния в пространстве состояний P ''помечены''. Наша цель – найти помеченное состояние. Это можно сделать с помощью классического алгоритма, который следует по цепи Маркова P до тех пор, пока не достигнет помеченного состояния (алгоритм 1). | ||
В сложность алгоритма 1 вносят вклад три типа стоимости: | В сложность алгоритма 1 вносят вклад три типа стоимости: | ||
1. Стоимость настройки S: стоимость выборки начального состояния x из начального распределения. | 1. '''Стоимость настройки''' S: стоимость выборки начального состояния x из начального распределения. | ||
2. Стоимость обновления U: стоимость моделирования одного шага случайного блуждания. | 2. '''Стоимость обновления''' U: стоимость моделирования одного шага случайного блуждания. | ||
3. Стоимость проверки C: затраты на проверку помеченности текущего состояния x. | 3. '''Стоимость проверки''' C: затраты на проверку помеченности текущего состояния x. | ||
Общая сложность классического алгоритма составляет S + | Общая сложность классического алгоритма составляет <math>S + t_2(t_1 U + C)</math>. Необходимые значения <math>t_1</math> и <math>t_2</math> могут быть вычислены из характеристик цепи Маркова P, а именно: | ||
Предложение 1 [ ]. Пусть P – эргодическая, но симметричная цепь Маркова. Пусть | '''Предложение 1''' [13]. Пусть P – эргодическая, но симметричная цепь Маркова. Пусть <math>\delta > 0</math> – зазор собственных значений P, и предположим, что всякий раз, когда множество помеченных состояний M непусто, имеет место соотношение <math>|M| / |X| \ge \epsilon</math>. Тогда существуют <math>t_1 = O(1 / \delta)</math> и <math>t_2 = O(1 / \epsilon)</math>, такие, что алгоритм 1 находит помеченный элемент с высокой вероятностью. | ||
Таким образом, стоимость нахождения помеченного элемента классическим способом составляет O(S+ | Таким образом, стоимость нахождения помеченного элемента классическим способом составляет <math>O(S + 1 / \epsilon (1 / \delta U + C))</math>. Маньез и коллеги [13] построили квантовый алгоритм, который находит помеченный элемент за <math>O(S' + 1 / \epsilon (1 / \sqrt{\delta} U' + C'))</math> шагов, где S', U', С' – это квантовые версии затрат на установку, обновление и проверку (в большинстве вариантов применения они того же порядка, что и S, U и C). Это позволяет добиться квадратичного улучшения зависимости как от <math>\epsilon</math>, так и от <math>\delta</math>. | ||
Задача различения элементов решается частным случаем этого алгоритма – поиском по графу Джонсона. Такое название носит граф, вершины которого | Задача различения элементов решается частным случаем этого алгоритма – поиском по графу Джонсона. Такое название носит граф, вершины которого <math>v_T</math> соответствуют подмножествам <math>T \subseteq \{ 1, ..., N \}</math> размера |T| = r. Вершина <math>v_T</math> соединена с вершиной <math>v_{T'}</math>, если подмножества T и T' отличаются ровно одним элементом. Вершина <math>v_T</math> ''помечена'', если T содержит индексы i, j, такие, что <math>x_i = x_j</math>. | ||
Рассмотрим следующую цепь Маркова на графе Джонсона. Начальное распределение вероятностей s является равномерным распределением по вершинам графа Джонсона. На каждом шаге цепь Маркова выбирает следующую вершину | Рассмотрим следующую цепь Маркова на графе Джонсона. Начальное распределение вероятностей s является равномерным распределением по вершинам графа Джонсона. На каждом шаге цепь Маркова выбирает следующую вершину <math>v_{T'}</math> из всех вершин, смежных с текущей вершиной <math>v_T</math>, равномерно случайным образом. Во время работы на цепи Маркова ведется список всех <math>x_i, i \in T</math>. Таким образом, стоимости классической цепи Маркова следующие: | ||
• Стоимость установки S = r запросов (для опроса всех | • Стоимость установки S = r запросов (для опроса всех <math>x_i, i \in T</math>, где <math>v_T</math> – начальное состояние). | ||
• Стоимость обновления U = 1 запрос (для запроса значения | • Стоимость обновления U = 1 запрос (для запроса значения <math>x_i, i \in T' - T</math>, где <math>v_T</math> – вершина перед шагом, а <math>v_{T'}</math> – новая вершина). | ||
• Стоимость проверки C = 0 запросов (значения | • Стоимость проверки C = 0 запросов (значения <math>x_i, i \in T</math> уже известны алгоритму, дальнейших запросов не требуется). | ||
Квантовые стоимости | Квантовые стоимости S', U', С' имеют тот же порядок, что и S, U, C. | ||
Для этой цепи Маркова можно показать, что | Для этой цепи Маркова можно показать, что зазор собственных значений составляет <math>\delta = O(1/r)</math>, а доля помеченных состояний равна <math>\epsilon = O((r^2)/(N^2))</math>. Таким образом, квантовый алгоритм выполняется за время <math>O \bigg( S' + \frac{1}{\sqrt{\epsilon}} \bigg( \frac{1}{\sqrt{\delta}} U' + C' \bigg) \bigg) = O \bigg( S' + \sqrt{r} \bigg( \frac{N}{r} U' + C' \bigg) \bigg) = O \bigg( r + \frac{N}{\sqrt{r}} \bigg) .</math> | ||
== Применение == | == Применение == | ||
Маньез и коллеги [12] показали, как использовать идеи алгоритма различения элементов в качестве подпрограммы для решения задачи о треугольнике [12]. В этой задаче дается граф G на n вершинах, доступный путем запросов к оракулу, и нужно определить, содержит ли граф треугольник (три вершины | Маньез и коллеги [12] показали, как использовать идеи алгоритма различения элементов в качестве подпрограммы для решения ''задачи о треугольнике'' [12]. В этой задаче дается граф G на n вершинах, доступный путем запросов к оракулу, и нужно определить, содержит ли граф треугольник (три вершины <math>v_1, v_2, v_3</math>, такие, что <math>v_1 v_2, v_1 v_3</math> и <math>v_2 v_3</math> являются ребрами). Классический подход к решению этой задачи требует <math>\Omega(n^2)</math> запросов. Маньез и коллеги [12] показали, что она может быть решена с помощью <math>O(n^{1,3} \; log^c \; n)</math> квантовых запросов, с использованием модифицированного алгоритма различения элементов в качестве подпрограммы. Затем в работе [13] это значение было улучшено до <math>O(n^{1,3})</math>. | ||
Методы Шегеди [14] и Маньеза и коллег [ ] могут быть использованы в качестве подпрограмм для квантовых алгоритмов проверки матричных тождеств [7, 11]. | Методы Шегеди [14] и Маньеза и коллег [13] могут быть использованы в качестве подпрограмм для квантовых алгоритмов проверки матричных тождеств [7, 11]. | ||
== Открытые вопросы == | == Открытые вопросы == | ||
1. Сколько запросов необходимо для решения задачи различения элементов, если доступная алгоритму память ограничена r элементами, r < | 1. Сколько запросов необходимо для решения задачи различения элементов, если доступная алгоритму память ограничена r элементами, <math>r < N^{2/3}</math>? Алгоритм из [2] дает <math>O(N/ \sqrt{r})</math> запросов, а лучшей нижней границей является <math>\Omega(N^{2/3})</math> запросов. | ||
2. Рассмотрим следующий пример: | 2. Рассмотрим следующий пример: | ||
Коллизия в графе [ ]. Начальными условиями являются граф G (произвольный, но известный заранее) и переменные | |||
Алгоритм различения элементов может быть адаптирован для решения этой задачи с помощью O( | '''Коллизия в графе''' [12]. Начальными условиями являются граф G (произвольный, но известный заранее) и переменные <math>x_1, ..., x_N \in \{ 0, 1 \}</math>, доступные путем запросов к оракулу. Задача состоит в том, чтобы определить, содержит ли граф G ребро <math>uv</math>, такое, что <math>x_u = x_v = 1</math>. Сколько запросов необходимо для ее решения? | ||
Алгоритм различения элементов может быть адаптирован для решения этой задачи с помощью <math>O(N^{2/3})</math> запросов [12], однако соответствующая нижняя граница не найдена. Существует ли лучший алгоритм? Если будет найден лучший алгоритм для задачи поиска коллизии в графе, то сразу же будет разработан лучший алгоритм для задачи о треугольнике. | |||
== См. также == | == См. также == | ||
Строка 129: | Строка 132: | ||
== Литература == | == Литература == | ||
1. Aaronson, S., Shi, Y.: Quantum lower bounds for the collision and the element distinctness problems. J. ACM 51 (4), 595-605 (2004) | 1. Aaronson, S., Shi, Y.: Quantum lower bounds for the collision and the element distinctness problems. J. ACM 51 (4), 595-605 (2004) | ||
2. Ambainis, A.: Quantum walk algorithm for element distinctness. SIAM J. Comput. 37(1), 210-239 (2007) | 2. Ambainis, A.: Quantum walk algorithm for element distinctness. SIAM J. Comput. 37(1), 210-239 (2007) | ||
3. Ambainis, A.: Polynomial degree and lower bounds in quantum complexity: Collision and element distinctness with small range. Theor. Comput. 1,37-46(2005) | 3. Ambainis, A.: Polynomial degree and lower bounds in quantum complexity: Collision and element distinctness with small range. Theor. Comput. 1,37-46(2005) | ||
4. Ambainis, A., Kempe, J., Rivosh, A.: In: Proceedings of the ACM/SIAM Symposium on Discrete Algorithms (SODA'06), 2006, pp. 1099-1108 | 4. Ambainis, A., Kempe, J., Rivosh, A.: In: Proceedings of the ACM/SIAM Symposium on Discrete Algorithms (SODA'06), 2006, pp. 1099-1108 | ||
5. Buhrman, H., Durr,C., Heiligman, M., Hayer, P., Magniez, F., Santha, M., de Wolf, R.: Quantum algorithms for element distinctness. SIAM J. Comput. 34(6), 1324-1330 (2005) | 5. Buhrman, H., Durr,C., Heiligman, M., Hayer, P., Magniez, F., Santha, M., de Wolf, R.: Quantum algorithms for element distinctness. SIAM J. Comput. 34(6), 1324-1330 (2005) | ||
6. Borodin, A., Fischer, M., Kirkpatrick, D., Lynch, N.: A time-space tradeoff for sorting on non-oblivious machines. J. Comput. Syst.Sci.22,351-364(1981) | 6. Borodin, A., Fischer, M., Kirkpatrick, D., Lynch, N.: A time-space tradeoff for sorting on non-oblivious machines. J. Comput. Syst.Sci.22,351-364(1981) | ||
7. Buhrman, H., Spalek, R.: Quantum verification of matrix products. In: Proceedings of the ACM/SIAM Symposium on Discrete Algorithms (SODA'06), 2006, pp. 880-889 | 7. Buhrman, H., Spalek, R.: Quantum verification of matrix products. In: Proceedings of the ACM/SIAM Symposium on Discrete Algorithms (SODA'06), 2006, pp. 880-889 | ||
8. Beame, P., Saks, M., Sun, X., Vee, E.: Time-space trade-off lower bounds for randomized computation of decision problems. J.ACM 50(2), 154-195(2003) | 8. Beame, P., Saks, M., Sun, X., Vee, E.: Time-space trade-off lower bounds for randomized computation of decision problems. J.ACM 50(2), 154-195(2003) | ||
9. Childs, A.M., Eisenberg, J.M.: Quantum algorithms for subset finding. Quantum Inf. Comput. 5,593 (2005) | 9. Childs, A.M., Eisenberg, J.M.: Quantum algorithms for subset finding. Quantum Inf. Comput. 5,593 (2005) | ||
10. Kutin, S.: Quantum lower bound for the collision problem with small range. Theor. Comput. 1, 29-36 (2005) | 10. Kutin, S.: Quantum lower bound for the collision problem with small range. Theor. Comput. 1, 29-36 (2005) | ||
11. Magniez, F., Nayak, A.: Quantum complexity of testing group commutativity. In: Proceedings of the International Colloquium Automata, Languages and Programming (ICALP'05), 2005, pp. 1312-1324 | 11. Magniez, F., Nayak, A.: Quantum complexity of testing group commutativity. In: Proceedings of the International Colloquium Automata, Languages and Programming (ICALP'05), 2005, pp. 1312-1324 | ||
12. Magniez, F., Santha, M., Szegedy, M.: Quantum algorithms for the triangle problem. SIAM J. Comput. 37(2), 413^24 (2007) | 12. Magniez, F., Santha, M., Szegedy, M.: Quantum algorithms for the triangle problem. SIAM J. Comput. 37(2), 413^24 (2007) | ||
13. Magniez, F., Nayak, A., Roland, J., Santha, M.: Search by quantum walk. In: Proceedings of the ACM Symposium on the Theory of Computing (STOC'07), 2007, pp. 575-584 | 13. Magniez, F., Nayak, A., Roland, J., Santha, M.: Search by quantum walk. In: Proceedings of the ACM Symposium on the Theory of Computing (STOC'07), 2007, pp. 575-584 | ||
14. Szegedy, M.: Quantum speed-up of Markov Chain based algorithms. In: Proceedings of the IEEE Conference on Foundations of Computer Science (FOCS'04), 2004, pp. 32^1 | 14. Szegedy, M.: Quantum speed-up of Markov Chain based algorithms. In: Proceedings of the IEEE Conference on Foundations of Computer Science (FOCS'04), 2004, pp. 32^1 | ||
15. Yao, A.: Near-optimal time-space tradeoff for element distinctness. SIAM J. Comput. 23(5), 966-975 (1994) | 15. Yao, A.: Near-optimal time-space tradeoff for element distinctness. SIAM J. Comput. 23(5), 966-975 (1994) |
правка