Feynman est une boîte à outils pour l'analyse des circuits quantiques dans le modèle intégral de chemin de la mécanique quantique. La boîte à outils comprend des méthodes de synthèse, d'optimisation et de vérification basées sur des représentations d'actions de circuit sous forme de sommes sur chemins.
Deux manières de s'interfacer avec le projet Feynman sont possibles. Les outils autonomes construits sur Feynman, trouvés dans les outils, fournissent des interfaces de ligne de commande pour optimiser et/ou vérifier les circuits quantiques, ou la bibliothèque Feynman peut être importée et utilisée directement dans d'autres projets Haskell.
Le projet Feynman nécessite GHC >=8.0.2 et Cabal >=1.24.0. Les anciennes versions de GHC peuvent fonctionner mais n'ont pas été testées.
La bibliothèque Feynman et les exécutables binaires pour l'optimisation ( feynopt
) et la vérification ( feynver
) peuvent être installés globalement avec
cabal install
ou via la série de commandes légèrement plus fines
cabal configure
cabal build
cabal install
L'enfer des dépendances est un problème courant dans Haskell, donc les versions antérieures de Cabal avaient la possibilité de créer explicitement un bac à sable local où les dépendances des packages seraient installées sans causer de problèmes pour les autres packages. Pour installer les dépendances de Feynman dans un bac à sable, avant de construire ou d'installer Feynman, exécutez d'abord
# Cabal 1 & 2
cabal sandbox init
cabal install --only-dependencies
# Cabal 3
cabal v1-sandbox init
cabal install --only-dependencies
Par défaut, Cabal installe les binaires dans ~/cabal/bin/
pour les versions Unix. Pour spécifier un autre dossier, installez avec
cabal install --installdir=DIR
Feynman dispose actuellement d'interfaces pour openQASM et .qc. Des exemples des deux peuvent être trouvés dans le dossier benchmarks.
Pour exécuter l'optimiseur Feynman feynopt
sur un fichier .qc ou openQASM, exécutez la commande
feynopt <filename>.(qc | qasm)
feynopt
reconnaît automatiquement les extensions .qc et .qasm comme fichiers .qc et openQASM, respectivement.
Pour une liste de toutes les optimisations et transformations disponibles, utilisez la commande
feynopt -h
L'outil binaire feynver
permet de vérifier l'équivalence de fichiers de circuits séparés. L'utilisation standard est
feynver <filename1>.qc <filename2>.qc
Les circuits d'entrée doivent s'entendre sur les noms des entrées principales (c'est-à-dire les qubits non initialisés), mais ils peuvent utiliser des auxiliaires différents.
Remarque : feynver
ne prend actuellement en charge que l'interface .qc.
Le référentiel Feynman est livré avec une suite de benchmarks de circuits quantiques, trouvés dans le dossier benchmarks
. Pour plus d'informations sur les tests de performance, l'utilisateur est dirigé vers Méthodes formelles dans la conception de circuits quantiques.
La suite de référence comprend également des exemples de circuits openQASM, extraits du référentiel github openQASM.
Feynman est une collection d'algorithmes et de techniques couvrant un certain nombre d'articles. Si vous souhaitez citer dans un article académique, les articles pertinents sont répertoriés ci-dessous.
Matthieu Amy