Аноним

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

Материал из WEGA
 
(не показано 12 промежуточных версий 1 участника)
Строка 43: Строка 43:




Алгоритм Шегеди и др. [13, 14] работает следующим образом. Вначале следует равномерно выбрать <math>k = \tilde{O} (n^{\epsilon} ) \;</math> вершин <math>v_1, ..., v_k \;</math> случайным образом из множества [n] без замены и вычислить каждое значение <math>v_G(v_i) \;</math>. За <math>\tilde{O} (n^{1 + \epsilon} ) \;</math> квантовых запросов можно либо найти треугольник в графе G, содержащий одну из вершин <math>v_i \;</math>, либо с высокой вероятностью заключить, что <math>G \subseteq G' := [n]^2 \setminus U_i v_G(v_i)^2 \;</math>. Предположим, что имеет место второй вариант. Тогда можно показать, что с высокой вероятностью может быть построено разбиение (T, E) графа G', такое, что T содержит <math>O(n^{3 - \epsilon ' } ) \;</math> треугольников и <math>E \cap G \;</math> имеет размер <math>O(n^{2 - \delta } + n^{2 - \epsilon + \delta + \epsilon ' } ) \;</math>, за <math>\tilde{O} (n^{1 + \delta + \epsilon '} ) \;</math> запросов (либо в процессе построения может быть найден треугольник в G). Поскольку <math>G \subseteq G' \;</math>, любой треугольник в G либо лежит в T, либо пересекает E. В первом случае треугольник можно найти в <math>G \cap T \;</math> за <math>O( \sqrt{n^{3 - \epsilon ' }} ) \;</math> квантовых запросов посредством поиска по G при помощи алгоритма Гровера для T, известного из процедуры разбиения. Во втором случае можно найти треугольник в G с ребром из E за <math>\tilde{O} ( n + \sqrt{n^{3 - min \{ \delta, \; \epsilon - \delta - \epsilon ' \} }} )</math> квантовых запросов при помощи алгоритма Бурмана и др. [6], где <math>m = | G \cap E | \;</math>. Таким образом:
Алгоритм Шегеди и др. [13, 14] работает следующим образом. Вначале следует равномерно выбрать <math>k = \tilde{O} (n^{\epsilon} ) \;</math> вершин <math>v_1, ..., v_k \;</math> случайным образом из множества [n] без замены и вычислить каждое значение <math>v_G(v_i) \;</math>. За <math>\tilde{O} (n^{1 + \epsilon} ) \;</math> квантовых запросов можно либо найти треугольник в графе G, содержащий одну из вершин <math>v_i \;</math>, либо с высокой вероятностью заключить, что <math>G \subseteq G' := [n]^2 \setminus U_i v_G(v_i)^2 \;</math>. Предположим, что имеет место второй вариант. Тогда можно показать, что с высокой вероятностью может быть построено разбиение (T, E) графа G', такое, что T содержит <math>O(n^{3 - \epsilon ' } ) \;</math> треугольников и <math>E \cap G \;</math> имеет размер <math>O(n^{2 - \delta } + n^{2 - \epsilon + \delta + \epsilon ' } ) \;</math>, за <math>\tilde{O} (n^{1 + \delta + \epsilon '} ) \;</math> запросов (либо в процессе построения может быть найден треугольник в G). Поскольку <math>G \subseteq G' \;</math>, любой треугольник в G либо лежит внутри T, либо пересекает E. В первом случае треугольник можно найти в <math>G \cap T \;</math> за <math>O( \sqrt{n^{3 - \epsilon ' }} ) \;</math> квантовых запросов посредством поиска по G (при помощи алгоритма Гровера) треугольника в T, известного из процедуры разбиения. Во втором случае можно найти треугольник в G с ребром из E за <math>\tilde{O} ( n + \sqrt{n^{3 - min \{ \delta, \; \epsilon - \delta - \epsilon ' \} }} )</math> квантовых запросов при помощи алгоритма Бурмана и др. [6], где <math>m = | G \cap E | \;</math>. Таким образом:




Строка 59: Строка 59:




Рассмотрим задачу поиска ''коллизии в графе'' на примере графа <math>G \subseteq [n]^2 \;</math>, где f определяет бинарное отношение <math>C \subseteq [n]^2 \;</math>, удовлетворяющее <math>C(u, u') \;</math>, если <math>f(u) = f(u') = 1 \;</math> и <math>(u, u') \in G \;</math>. Процедура поиска Амбайниса решает эту задачу за <math>\tilde{O} (n^{2/3}) \;</math> квантовых запросов при помощи следующих рассуждений. Зафиксируем <math>k = 2 \;</math> и <math>r = n^{2/3} \;</math> в алгоритме задачи k-коллизии и для каждого <math>U \subseteq [n] \;</math> определим <math>D(U) = \{ (v, f(v)) : v \in U \} \;</math> и <math>\Phi (D(U)) = 1 \;</math>, если некоторые <math>u, u' \in U \;</math> удовлетворяют C. В таком случае для построения D(U) необходимо s(r) = r начальных запросов f(v), u(r) = 1 новый запрос f(v) необходим для обновления D(U), c(r) = 0 дополнительных запросов f(v) необходимо для проверки условия <math>\Phi(D(U)) \;</math>. Таким образом, всего требуется <math>\tilde{O} (r + \frac{n}{r} ( \sqrt{r} )) = \tilde{O} ( n^{2/3} ) \;</math> запросов.
Рассмотрим задачу поиска ''коллизии в графе'' на примере графа <math>G \subseteq [n]^2 \;</math>, где f определяет бинарное отношение <math>C \subseteq [n]^2 \;</math>, удовлетворяющее <math>C(u, u') \;</math>, если <math>f(u) = f(u') = 1 \;</math> и <math>(u, u') \in G \;</math>. Процедура поиска Амбайниса решает эту задачу за <math>\tilde{O} (n^{2/3}) \;</math> квантовых запросов при помощи следующих рассуждений. Зафиксируем <math>k = 2 \;</math> и <math>r = n^{2/3} \;</math> в алгоритме задачи k-коллизии и для каждого <math>U \subseteq [n] \;</math> определим <math>D(U) = \{ (v, f(v)) : v \in U \} \;</math> и <math>\Phi (D(U)) = 1 \;</math>, если некоторые <math>u, u' \in U \;</math> удовлетворяют C. В таком случае необходимо s(r) = r начальных запросов f(v) для построения D(U), u(r) = 1 новый запрос f(v) необходим для обновления D(U), c(r) = 0 дополнительных запросов f(v) необходимо для проверки условия <math>\Phi(D(U)) \;</math>. Таким образом, всего требуется <math>\tilde{O} (r + \frac{n}{r} ( \sqrt{r} )) = \tilde{O} ( n^{2/3} ) \;</math> запросов.




Маньез и коллеги [13] решают задачу нахождения треугольников, сводя ее к задаче поиска коллизии в графе. Вновь зафиксируем <math>k = 2 \;</math> и <math>r = n^{2/3} \;</math>. Пусть C – множество ребер, содержащее по меньшей мере один треугольник. Определим <math>D(U) = G|_U \;</math> и <math>\Phi(D(U)) = 1 \;</math>, если некоторое ребро в <math>G|_U \;</math> удовлетворяет С. Тогда для построения D(U) потребуется <math>s(r) = O(r^2) \;</math> начальных запросов, а для его обновления u(r) = r новых запросов. Остается найти границу стоимости проверки c(r). Для любой вершины <math>v \in [n] \;</math> рассмотрим оракул <math>f_v \;</math>, связанный с коллизией в графе на <math>G|_U \;</math> и удовлетворяющий условию: <math>f_v(u) = 1 \;</math>, если <math>(u, v) \in G \;</math>. Ребро <math>G|_U \;</math> является треугольником в G в том и только том случае, если это ребро является решением задачи поиска коллизии в графе на <math>G|_U \;</math> для некоторого <math>v \in [n] \;</math>. Эта задача может быть решена для конкретной v за <math>\tilde{O} (r^{2/3} ) \;</math> запросов. Используя <math>\tilde{O} ( \sqrt{n}) \;</math> шагов увеличения амплитуды, можно с высокой вероятностью узнать, генерирует ли ''какая-либо'' из вершин <math>v \in [n] \;</math> приемлемое решение для задачи поиска коллизии в графе. Таким образом, стоимость проверки составляет <math>c(r) = \tilde{O} ( \sqrt{n} \cdot r^{2/3} ) \;</math> запросов, из чего следует:
Маньез и коллеги [13] решают задачу нахождения треугольников, сводя ее к задаче поиска коллизии в графе. Вновь зафиксируем <math>k = 2 \;</math> и <math>r = n^{2/3} \;</math>. Пусть C – множество ребер, входящих по меньшей мере в один треугольник. Определим <math>D(U) = G|_U \;</math> и <math>\Phi(D(U)) = 1 \;</math>, если некоторое ребро в <math>G|_U \;</math> удовлетворяет С. Тогда для построения D(U) потребуется <math>s(r) = O(r^2) \;</math> начальных запросов, а для его обновления u(r) = r новых запросов. Остается найти границу стоимости проверки c(r). Для любой вершины <math>v \in [n] \;</math> рассмотрим оракул <math>f_v \;</math>, связанный с коллизией в графе на <math>G|_U \;</math> и удовлетворяющий условию: <math>f_v(u) = 1 \;</math>, если <math>(u, v) \in G \;</math>. Ребро <math>G|_U \;</math> является треугольником в G в том и только том случае, если это ребро является решением задачи поиска коллизии в графе на <math>G|_U \;</math> для некоторой вершины <math>v \in [n] \;</math>. Эта задача может быть решена для конкретной v за <math>\tilde{O} (r^{2/3} ) \;</math> запросов. Используя <math>\tilde{O} ( \sqrt{n}) \;</math> шагов увеличения амплитуды, можно с высокой вероятностью узнать, генерирует ли ''какая-либо'' из вершин <math>v \in [n] \;</math> приемлемое решение для задачи поиска коллизии в графе. Таким образом, стоимость проверки составляет <math>c(r) = \tilde{O} ( \sqrt{n} \cdot r^{2/3} ) \;</math> запросов, из чего следует:




Строка 73: Строка 73:


== Применение ==
== Применение ==
Расширение алгоритма квантового блуждания для поиска треугольников использовалось для нахождения клик и других фиксированных подграфов, а также для определения выполнения монотонных свойств графа с малыми сертификатами при помощи меньшего числа квантовых запросов, чем у предыдущих алгоритмов.
Расширения алгоритма квантового блуждания для поиска треугольников использовались для нахождения клик и других фиксированных подграфов, а также для определения выполнения монотонных свойств графа с малыми сертификатами при помощи меньшего числа квантовых запросов, чем у предыдущих алгоритмов.




'''Поиск клик, подграфов и подмножеств'''
'''Поиск клик, подграфов и подмножеств'''


Алгоритм Амбайниса для поиска k-коллизии [3] может найти копию любого графа H с k > 3 вершинами за <math>\tilde{O} (n^{2 - 2/(k + 1)}) \;</math> квантовых запросов. Для случая, когда H является k-кликой, Чайлдз и Айзенберг [9] предложили алгоритм, требующий <math>\tilde{O} (n^{2.5 - 6/(k + 2)}) \;</math> запросов. Простое обобщение алгоритма поиска треугольников (Маньез и др. [13] уменьшает их число до <math>\tilde{O} (n^{2 - 2/k}) \;</math>.
Алгоритм Амбайниса для поиска k-коллизии [3] может найти копию любого графа H с k > 3 вершинами за <math>\tilde{O} (n^{2 - 2/(k + 1)}) \;</math> квантовых запросов. Для случая, когда H является k-кликой, Чайлдз и Айзенберг [9] предложили алгоритм, требующий <math>\tilde{O} (n^{2.5 - 6/(k + 2)}) \;</math> запросов. Простое обобщение алгоритма поиска треугольников (Маньез и др. [13]) уменьшает их число до <math>\tilde{O} (n^{2 - 2/k}) \;</math>.




Строка 86: Строка 86:


== Открытые вопросы ==
== Открытые вопросы ==
Наиболее очевидный из открытых вопросов касается решения проблемы сложности квантовых запросов при поиске треугольников; на данный момент лучшими верхней и нижней границей являются <math>O(n^{13/10}) \;</math> и <math>\Omega(n) \;</math>. Кроме того, остаются нерешенными следующие задачи:
Наиболее очевидный из открытых вопросов касается сложности квантовых запросов для задачи поиска треугольников; на данный момент лучшими верхней и нижней границей являются <math>O(n^{13/10}) \;</math> и <math>\Omega(n) \;</math>. Кроме того, остаются нерешенными следующие задачи:




Строка 96: Строка 96:
'''Новые алгоритмы с применением квантового блуждания'''
'''Новые алгоритмы с применением квантового блуждания'''


Технология квантового блуждания успешно применялась при разработке более эффективных алгоритмов квантового поиска для нескольких задач – таких как различение элементов [3], поиск треугольников [13], верификация матричного произведения [7] и проверка коммутативности групп [11]. Было бы любопытно узнать, как подход на основе квантового блуждания может быть расширен для получения новых и улучшенных квантовых алгоритмов для решения различных вычислительных задач.
Техника квантового блуждания успешно применялась при разработке более эффективных алгоритмов квантового поиска для нескольких задач – таких как различение элементов [3], поиск треугольников [13], верификация матричного произведения [7] и проверка коммутативности групп [11]. Было бы любопытно узнать, как подход на основе квантового блуждания может быть расширен для получения новых и улучшенных квантовых алгоритмов для решения различных вычислительных задач.


== См. также ==
== См. также ==
Строка 133: Строка 133:


15. Szegedy, M.: Quantum speed-up of Markov chain based algorithms. Proc. FOCS (2004) quant-ph/0401053
15. Szegedy, M.: Quantum speed-up of Markov chain based algorithms. Proc. FOCS (2004) quant-ph/0401053
[[Категория: Совместное определение связанных терминов]]