Quil - это архитектура с квантовым набором команд, которая впервые представила общую квантовую / классическую модель памяти. Его представили Роберт Смит, Майкл Кертис и Уильям Зенг в книге «Практическая архитектура набора квантовых команд» . [1] Многие квантовые алгоритмы (включая квантовую телепортацию , квантовую коррекцию ошибок , моделирование [2] [3] и алгоритмы оптимизации [4] ) требуют архитектуры разделяемой памяти . Quil разрабатывается для сверхпроводящих квантовых процессоров, разработанных Rigetti Computing through the Forest.API квантового программирования . [5] [6] Python библиотека называется pyQuil
была введена для разработки программ Квил с более высокими конструкциями уровня. Бэкэнд Quil также поддерживается другими средами квантового программирования. [7] [8]
Базовая квантовая абстрактная машина [ править ]
В статье, представленной Смитом, Кертисом и Зенгом, Квил определяет набор инструкций для квантовой абстрактной машины (QAM), подобной машине Тьюринга, но более практичной для выполнения задач «реального мира». [1] Состояние QAM может быть представлено в виде кортежа из 6, где:
- - (квантовое) состояние фиксированного, но произвольного числа кубитов, проиндексированных с использованием индексации на основе 0 .
- представляет собой классическую память ряда классических битов, проиндексированных с использованием индексации на основе 0.
- фиксированный, но произвольный список статических вентилей ( квантовых вентилей , не зависящих от таких параметров, как вентиль Адамара ).
- фиксированный, но произвольный список параметрических вентилей (вентилей, которые зависят от ряда сложных параметров, таких как вентиль фазового сдвига , для которого требуется полностью определить параметр угла ).
- последовательность выполняемых инструкций Quil, представляющая программу. Длина обозначается .
- целочисленный счетчик программы, указывающий на следующую инструкцию, которая должна быть выполнена. всегда начинается с 0 (указывает на инструкцию) и заканчивается при указании остановки программы (обратите внимание, что последняя инструкция имеет индекс ). Счетчик программы увеличивается после каждой инструкции, за исключением специальных инструкций потока управления (условных и безусловных переходов и специальная инструкция, которая останавливает программу, устанавливая на .
HALT
В семантике ОК определяются с использованием тензорных произведений из гильбертовых пространств и линейных отображений между ними. [1]
Особенности [ править ]
Quil поддерживает определение возможно параметризованных вентилей в матричной форме (язык не включает способ проверки унитарности матриц , что является необходимым условием для физической реализуемости заданных вентилей) и их применение на кубитах. Язык также поддерживает макроподобные определения возможных параметризованных квантовых схем и их расширения, измерение кубитов и запись результата в классической памяти, синхронизацию с классическими компьютерами с помощью WAIT
инструкции, которая приостанавливает выполнение программы Quil до тех пор, пока классическая программа не завершит свою работу. выполнение, условное и безусловное ветвление , прагмаподдержка, а также включение файлов для использования в качестве библиотек (в качестве одной из библиотек предоставляется стандартный набор вентилей).
Rigetti QVM [ править ]
Компания Rigetti Computing разработала квантовую виртуальную машину на Common Lisp, которая имитирует определенную квантовую абстрактную машину на классическом компьютере и способна анализировать и выполнять программы Quil с возможным удаленным выполнением через HTTP. [9]
Пример [ править ]
Следующий пример демонстрирует классический поток управления , необходимый , чтобы сделать квантовую телепортацию из кубита в регистре 2 для регистрации 1: [10] [11]
# Объявить классическую память DECLARE ro BIT [ 2 ] # Создать Bell Pair H 0 CNOT 0 1 # Телепорт CNOT 2 0 H 2 MEASURE 2 ro [ 0 ] MEASURE 0 ro [ 1 ] # Измерения классической передачи JUMP-UNLESS @ SKIP ro [ 1 ] X 1 LABEL @ SKIP JUMP-UNLESS @ END ro [ 0] Z 1 LABEL @ END
В статье приведены примеры реализации квантового преобразования Фурье и вариационного квантового эйгенсольвера .
Ссылки [ править ]
- ^ a b c Смит, Роберт С .; Кертис, Майкл Дж .; Цзэн, Уильям Дж. (10 августа 2016 г.). «Практическая архитектура набора квантовых команд». arXiv : 1608.03355 [ квант-ф ].
- ^ McClean, Jarrod R .; Ромеро, Джонатан; Баббуш, Райан; Аспуру-Гузик, Алан (04.02.2016). «Теория вариационных гибридных квантово-классических алгоритмов». Новый журнал физики . 18 (2): 023023. arXiv : 1509.04279 . Bibcode : 2016NJPh ... 18b3023M . DOI : 10.1088 / 1367-2630 / 18/2/023023 . ISSN 1367-2630 .
- ^ Рубин, Николас С. (2016-10-21). «Гибридный классический / квантовый подход для крупномасштабных исследований квантовых систем с теорией вложения матрицы плотности». arXiv : 1610.06910 [ квант-ф ].
- ^ Фархи, Эдвард; Голдстоун, Джеффри; Гутманн, Сэм (14 ноября 2014 г.). «Квантовый приближенный алгоритм оптимизации». arXiv : 1411,4028 [ квант-ф ].
- ^ "Rigetti запускает сервис квантовых вычислений полного стека и Quantum IC Fab" . IEEE Spectrum: Новости технологий, инженерии и науки . Проверено 6 июля 2017 .
- ^ «Ригетти незаметно выпускает бета-версию платформы Forest для квантового программирования в облаке | Отчет о квантовых вычислениях» . Quantumcomputingreport.com . Проверено 6 июля 2017 .
- ^ "XACC Rigetti Accelerator" . ornl-qci.github.io . Проверено 6 июля 2017 .
- ^ Дойрон, Ник (07.03.2017), jsquil: Квантовые компьютерные инструкции для разработчиков JavaScript , получено 06.07.2017.
- ^ Высокопроизводительная квантовая виртуальная машина @rigetti .: rigetti / qvm , Rigetti Computing, 26 апреля 2019 г. , получено 28 апреля 2019 г.
- ^ Нильсен, Майкл А .; Чуанг, Исаак Л. (2000). Квантовые вычисления и квантовая информация . Издательство Кембриджского университета. п. 27. ISBN 978-0-521-63503-5.
- ↑ Computing, Rigetti (28 мая 2019 г.). «Документация по pyQuil» (PDF) . pyQuil Documentaion . Проверено 6 июня 2019 .