Фейнман — это набор инструментов для анализа квантовых цепей в модели квантовой механики с интегралом по путям. Инструментарий включает в себя методы синтеза, оптимизации и проверки, основанные на представлении действий схемы в виде сумм по путям.
Возможны два способа взаимодействия с проектом Фейнмана. Автономные инструменты, созданные на основе Фейнмана и находящиеся в инструментах, предоставляют интерфейсы командной строки для оптимизации и/или проверки квантовых схем, либо библиотеку Фейнмана можно импортировать и использовать непосредственно в других проектах Haskell.
Проект Фейнмана требует GHC >=8.0.2 и Cabal >=1.24.0. Старые версии GHC могут работать, но они не проверялись.
Библиотеку Фейнмана и бинарные исполняемые файлы для оптимизации ( feynopt
) и проверки ( feynver
) можно установить глобально с помощью
cabal install
или с помощью более детальной серии команд
cabal configure
cabal build
cabal install
Ад зависимостей — распространенная проблема в Haskell, поэтому в более ранних версиях Cabal была возможность явно создать локальную песочницу, в которой зависимости пакетов будут устанавливаться, не вызывая проблем для других пакетов. Чтобы установить зависимости Фейнмана в песочнице, перед сборкой или установкой первого запуска Фейнмана.
# Cabal 1 & 2
cabal sandbox init
cabal install --only-dependencies
# Cabal 3
cabal v1-sandbox init
cabal install --only-dependencies
По умолчанию Cabal устанавливает двоичные файлы в ~/cabal/bin/
для сборок Unix. Чтобы указать другую папку, установите с помощью
cabal install --installdir=DIR
В настоящее время у Фейнмана есть интерфейсы для openQASM и .qc. Примеры обоих можно найти в папке тестов.
Чтобы запустить оптимизатор Фейнмана feynopt
для файла .qc или openQASM, выполните команду
feynopt <filename>.(qc | qasm)
feynopt
автоматически распознает расширения .qc и .qasm как файлы .qc и openQASM соответственно.
Чтобы просмотреть список всех доступных оптимизаций и преобразований, используйте команду
feynopt -h
Бинарный инструмент feynver
позволяет проверять эквивалентность отдельных файлов схем. Стандартное использование
feynver <filename1>.qc <filename2>.qc
Входные схемы должны согласовать имена основных входов (т. е. неинициализированных кубитов), но они могут использовать разные вспомогательные устройства.
Примечание. feynver
в настоящее время поддерживает только интерфейс .qc.
Репозиторий Фейнмана содержит набор тестов квантовых схем, которые можно найти в папке benchmarks
. Для получения дополнительной информации о тестах пользователь направляется к разделу «Формальные методы проектирования квантовых схем».
Набор тестов также включает примеры схем openQASM, взятые из репозитория openQASM на github.
Фейнман представляет собой сборник алгоритмов и методов, охватывающий ряд статей. Если вы хотите процитировать научную статью, соответствующие статьи перечислены ниже.
Мэтью Эми