Feynman es un conjunto de herramientas para el análisis de circuitos cuánticos en el modelo integral de trayectoria de la mecánica cuántica. El conjunto de herramientas comprende métodos de síntesis, optimización y verificación basados en representaciones de acciones de circuitos como sumas sobre rutas.
Son posibles dos formas de interactuar con el proyecto Feynman. Las herramientas independientes construidas sobre Feynman, que se encuentran en herramientas, proporcionan interfaces de línea de comandos para optimizar y/o verificar circuitos cuánticos, o la biblioteca Feynman se puede importar y usar directamente en otros proyectos de Haskell.
El proyecto Feynman requiere GHC >=8.0.2 y Cabal >=1.24.0. Es posible que las versiones anteriores de GHC funcionen, pero no han sido probadas.
La biblioteca Feynman y los ejecutables binarios para optimización ( feynopt
) y verificación ( feynver
) se pueden instalar globalmente con
cabal install
o mediante la serie de comandos un poco más detallada
cabal configure
cabal build
cabal install
El infierno de dependencias es un problema común en Haskell, por lo que las versiones anteriores de Cabal tenían la opción de crear explícitamente una zona de pruebas local donde las dependencias de los paquetes se instalarían sin causar problemas a otros paquetes. Para instalar las dependencias de Feynman en un entorno sandbox, antes de compilar o instalar Feynman, ejecute primero
# Cabal 1 & 2
cabal sandbox init
cabal install --only-dependencies
# Cabal 3
cabal v1-sandbox init
cabal install --only-dependencies
De forma predeterminada, Cabal instala los binarios en ~/cabal/bin/
para compilaciones de Unix. Para especificar otra carpeta, instálela con
cabal install --installdir=DIR
Feynman actualmente tiene interfaces para openQASM y .qc. Se pueden encontrar ejemplos de ambos en la carpeta de pruebas comparativas.
Para ejecutar el optimizador Feynman feynopt
en un archivo .qc o openQASM, ejecute el comando
feynopt <filename>.(qc | qasm)
feynopt
reconoce automáticamente las extensiones .qc y .qasm como archivos .qc y openQASM, respectivamente.
Para obtener una lista de todas las optimizaciones y transformaciones disponibles, use el comando
feynopt -h
La herramienta binaria feynver
permite comprobar la equivalencia de archivos de circuitos separados. El uso estándar es
feynver <filename1>.qc <filename2>.qc
Los circuitos de entrada deben coincidir en los nombres de las entradas primarias (es decir, qubits no inicializados), pero pueden utilizar diferentes auxiliares.
Nota: feynver
actualmente solo admite la interfaz .qc
El repositorio de Feynman viene con un conjunto de pruebas comparativas de circuitos cuánticos, que se encuentran en la carpeta benchmarks
. Para obtener más información sobre los puntos de referencia, se dirige al usuario a Métodos formales en diseño de circuitos cuánticos.
El conjunto de pruebas también incluye ejemplos de circuitos openQASM, tomados del repositorio github de openQASM.
Feynman es una colección de algoritmos y técnicas que abarcan varios artículos. Si desea citar en un artículo académico, los artículos relevantes se enumeran a continuación.
Mateo Amy