Квантовые алгоритмы — различия между версиями
| Строка 1: | Строка 1: | ||
| + | {| class="wikitable" align="center" style="color: red; background-color: black; font-size: 56px; width: 800px;" | ||
| + | |+ | ||
| + | |-align="center" | ||
| + | |'''НЕТ ВОЙНЕ''' | ||
| + | |-style="font-size: 16px;" | ||
| + | | | ||
| + | 24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. | ||
| + | |||
| + | Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. | ||
| + | |||
| + | Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. | ||
| + | |||
| + | Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. | ||
| + | |||
| + | ''Антивоенный комитет России'' | ||
| + | |-style="font-size: 16px;" | ||
| + | |Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. | ||
| + | |-style="font-size: 16px;" | ||
| + | |[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки]. | ||
| + | |} | ||
| + | |||
{{Определение | {{Определение | ||
|definition='''Квантовый алгоритм''' (англ. ''quantum algorithm'') представляет собой классический алгоритм, который задает последовательность унитарных операций ([[Квантовые гейты|гейтов]], или вентилей) с указанием, над какими именно кубитами<ref>[https://ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%B1%D0%B8%D1%82 Википедия {{---}} Кубит]</ref> их надо совершать. | |definition='''Квантовый алгоритм''' (англ. ''quantum algorithm'') представляет собой классический алгоритм, который задает последовательность унитарных операций ([[Квантовые гейты|гейтов]], или вентилей) с указанием, над какими именно кубитами<ref>[https://ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%B1%D0%B8%D1%82 Википедия {{---}} Кубит]</ref> их надо совершать. | ||
Версия 07:27, 1 сентября 2022
| НЕТ ВОЙНЕ |
|
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. Антивоенный комитет России |
| Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. |
| meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки. |
| Определение: |
| Квантовый алгоритм (англ. quantum algorithm) представляет собой классический алгоритм, который задает последовательность унитарных операций (гейтов, или вентилей) с указанием, над какими именно кубитами[1] их надо совершать. |
Содержание
Алгоритм проверки чётности
Постановка задачи
| Задача: |
| Пусть имеется функция , такая, что с неизвестным . Найти за минимальное количество обращений к функции . |
Пример:
Если
| 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
то .
Реализация
Для начала инициализируем начальные кубитов состоянием ноль. Проводим их всех через гейт Адамара (англ. Hadamard gate)[2] и получаем все возможные суперпозиции. Суперпозиции передаём в "черный ящик", который реализован в виде вентиля . Сам результат опять пропускаем через гейт Адамара. В конце измеряем результат, который будет являться искомой .
В качестве бита, который будет содержать ответ, будет использоваться суперпозиция:
Выразим неизвестную:
Сложность
Классический алгоритм: .
Квантовый алгоритм: . Такая сложность достигается благодаря квантовым свойствам[3], а конкретно параллелизму[4].
Алгоритм Саймона
Постановка задачи
| Задача: |
| Пусть имеется функция , такая, что с неизвестным . Найти за минимальное количество обращений к функции . |
Пример:
Если
| 101 | 010 | 000 | 110 | 000 | 110 | 101 | 010 |
то .
Реализация
Задача похожа на задачу нахождения коллизии, так как необходимо найти два значения, при которых их выходные значения будет одинаковыми, затем вычислить между ними разницу, которая и будет ответом задачи.
Аналогично предыдущему алгоритму все возможные суперпозиции передаём в "черный ящик", полученный результат опять пропускаем через гейт Адамара. В конце измеряем полученные значения, которые будут являться некоторой строкой , дающей ноль при скалярном умножении на искомую . После итерации алгоритма получим систему из линейных уравнений; решив эту систему уравнений, найдём искомую :
где , и , при и .
Особенности алгоритма:
- для решения СЛАУ [5] необходим препроцессинг на классическом компьютере;
- алгоритм может допускать ошибку(возможно, какие-то уравнения не будут линейно независимыми и система не будет иметь решений) с вероятностью при одном цикле прохода алгоритма. Этого можно избежать, если прогнать алгоритм несколько раз, так для раз, вероятность будет равна: . Например, при вероятность будет .
Сложность
Классический алгоритм: .
Квантовый алгоритм: .
Алгоритм нахождения периода
Постановка задачи
| Задача: |
| Пусть имеется функция , такая, что с неизвестным периодом . Найти за минимальное количество обращений к функции . |
Перефразируем задачу: у нас есть периодическая функция, для которой необходимо найти период путём нахождения коллизии. Можно заметить, что алгоритм нахождения периода похож на алгоритм Саймона и фактически является его обобщением.
Реализация
Чтобы решить задачу, воспользуемся квантовым преобразованием Фурье[6](далее ). — гейт, который реализует матрицу дискретного преобразования Фурье[7] над квантовым состоянием. Для начала инициализируем начальные кубиты состоянием ноль. Проводим их всех через гейт и получаем все возможные равновероятные суперпозиции всех булевых состояний такие, что:
Суперпозиции передаём в гейт , который реализует унитарное преобразование[8], которое переводит в
Чтобы получить из этого периодическую суперпозицию, мы измеряем и поскольку периодическая, её прообраз это , такой что :
Теперь наш первый регистр находится в периодической суперпозиции, где период такой же, как период функции, но мы не можем сразу его просто измерить, потому что мы можем измерить другое значение , ведь мы получили периодическую суперпозицию, которая случайно линейно смещена и мы не получим никакой полезной информации.
Поэтому вместо этого мы применим и будем полагаться на его свойства, чтобы получить информацию, которая нам нужна. Идея в следующем: есть периодическая функция с периодом , после применения , получим новую периодическую функцию с периодом , где — модуль, с которым мы работаем:, где — некоторый неважный период, возникающий из линейного сдвига .
Так мы уже можем измерить и извлечь , для некоторого целого .
Теперь мы повторяем алгоритм, чтобы получить несколько различных кратных . Как только у нас будет достаточно значений, мы можем вычислить их наибольший общий делитель[9], который, с некоторой вероятностью, будет искомым периодом , при этом вероятность ошибки будет экспоненциально падать с каждой попыткой.
Примечание: Алгоритм нахождения периода используется в алгоритме Шора[10], который позволяет решать задачу факторизации числа.
Сложность
Классический алгоритм: .
Квантовый алгоритм: .
См.также
Примечания
- ↑ Википедия — Кубит
- ↑ Wikipedia — Hadamard gate
- ↑ Википедия — Квантовый компьютер
- ↑ Википедия — Квантовый параллелизм
- ↑ Википедия — Система линейных алгебраических уравнений
- ↑ Wikipedia — Quantum Fourier transform
- ↑ Википедия — Дискретное преобразование Фурье
- ↑ Википедия — Унитарный оператор
- ↑ Википедия — Наибольший общий делитель
- ↑ Wikipedia — Shor's algorithm
Источники информации
- Implementation of a quantum algorithm to solve Bernstein-Vazirani’s parity problem without entanglement on an ensemble quantum computer
- Wikipedia — Simon's problem
- Гайнутдинова А. Ф. "Квантовые вычисления"
- Соловьев В. М. "Квантовые компьютеры и квантовые алгоритмы. Часть 1. Квантовые компьютеры"
- Соловьев В. М. "Квантовые компьютеры и квантовые алгоритмы. Часть 2. Квантовые алгоритмы"
- Wikipedia — Quantum Fourier transform
- Quantum parity algorithms as oracle calls, and application in Grover Database search
- Wikipedia — Shor's algorithm
- Веб-приложение, использующее WebGL, чтобы имитировать до 22 кубитов на GPU
- Веб-приложение, для написания и визуализации квантовых алгоритмов
- Языки программирования для квантового компьютера