Квантовые вычисления - относительно новое, быстроразвивающееся направление современной науки. За рубежом ежегодно публикуются новые квантовые алгоритмы, разрабатываются первые квантовые компьютеры (например, D-Wave, хотя он не универсален), создаются языки программирования.
Предполагается, что квантовая модель вычислений является более эффективной для некоторых задач, в сравнении с моделью Тьюринга и фон Неймана. Примером такой задачи является факторизация числа, решение которой позволит взламывать алгоритм шифрования RSA. Самый оптимальный из известных классических алгоритмов имеет сложность 0(есп±/31о&2/3 п) (c-const,алгоритм решета числового поля), а квантовый алгоритм Шора О ((log п)2log log п log log logп)[6]. Существование или отсутствие эффективного классического алгоритма для данной задачи не доказано, так как не доказано равенство классов P и NP, но и не доказано неравенство.
Квантовый компьютер можно представить, как математическую абстракцию. Вводятся такие понятия, как кубит (Qubit, квантовый аналог двоичного бита), квантовый регистр из кубитов. Состояние регистра описывается единичным комплексным вектором. Над этим вектором выполняются преобразования (гейты, Quantum gate, квантовые вентили), описываемые унитарной комплексной матрицей. Таким образом, каждый квантовый алгоритм состоит в последовательном умножения матрицы на вектор. Без ограничения общности можно считать, что алгоритм также является гейтом, так как можно составить матрицу преобразования, соответствующего данному алгоритму (в силу ассоциативности произведения матриц, можно перемножить матрицы всех шагов (гейтов) алгоритма).
В различных лабораториях мира ведутся разработки физических реализаций квантовых вычислителей. Например: D-wave.
В Казани в Квантовом центре ведётся разработка модели квантовой памяти и квантового процессора, а также их экспериментальная реализация. Наш институт ведёт разработку математической модели квантового вычислителя, а также программного комплекса для управления квантовой памятью и процессором на основе математической модели.
Постановка задачи
Необходимо обеспечить программную платформу для осуществления квантовых вычислений под управлением классического компьютера. Данная задача, в частности, подразумевает возможность написания кода для квантового сопроцессора на высокоуровневом языке программирования, а также возможность тестировать полученный код с помощью эмулятора квантового процессора (в отсутствие реального устройства).
Таким образом, целью данной работы является реализация программной платформы для поддержки квантовых вычислений, в частности, эмулятора разрабатываемого в Казанском квантовом центре квантового вычислителя и предоставление API для использования эмулятора.
Результатом работы стала программная платформа для выполнения квантовых вычислений. Данная платформа включает API для программирования квантовых алгоритмов и эмулятор квантового вычислителя для тестирования квантовых алгоритмов в отсутствие реального устройства.
Результаты состоят из двух частей:
1. Платформа для применения произвольного преобразования к кубитам с возможностью расширения или настройки под конкретную модель
2. Платформа, эмулирующая работу квантового вычислителя, разрабатываемого в Казани (QVM - Quantum Virtual Machine).
Для взаимодействия с платформой разработан удобный интерфейс прикладного программирования (API).
[1] Терентьев А.С. Курсовая работа “Эмулятор квантового компьютера”
[2] Васильев А.В. “Квантовые вычисления для программистов”
[3] А.Ф.Гайнутдинова “Квантовые вычисления”
[4] Michael A. Nielsen &Isaac L. Chuang “Quantum Computation and Quantum Information”
[5] F. M. Ablayev, S. N. Andrianov, S. A. Moiseev, A. V. Vasiliev “QUANTUM COMPUTER WITH ATOMIC LOGICAL QUBITS ENCODED ON MACROSCOPIC THREE-LEVEL SYSTEMS IN COMMON QUANTUM ELECTRODYNAMIC CAVITY”
[6] А.Ю. Богданов, И.С. Кивжатов “Квантовые алгоритмы и их влияние на безопасность современных криптографических систем”
[7] В.Ф. Журавлёв “Основы теоретической механики”
[8] S.A. Moiseev, Photon-echo quantum memory with complete use of natural inhomogeneous broadening, Phys. Rev. A 83, 012307 (2011)