Qiskit Bosons
qiskit-bosons amplía el SDK de Qiskit con herramientas para trabajar con sistemas bosónicos. Dentro de su alcance ofrece lo siguiente:
-
Una estructura de datos eficiente para la representación y manipulación de operadores bosónicos
-
Un framework para implementar codificaciones de bosón a qubit, construido en torno a codificaciones de nivel compartidas (unaria con o sin proyectores, binaria estándar, Gray), y una biblioteca de mapeadores comunes
-
Un framework y una biblioteca de compuertas para expresar circuitos bosónicos
-
Un pipeline de transpilación integrado con el proceso del transpilador de Qiskit para sintetizar circuitos bosónicos en circuitos basados en qubits
Primeros pasos
Este paquete cubre todo el camino desde un operador bosónico hasta un circuito de qubits. Puedes trabajar en el régimen bosónico tanto con la representación de operadores como con la de circuitos, antes de elegir una truncación y una codificación de bosón a qubit que se conecten al pipeline del transpilador multirrepresentación de Qiskit.
Todas estas funcionalidades se explican en varias guías para ayudarte a empezar. Para una visión general de principio a fin, comienza con la guía de Bose-Hubbard.
Discusión técnica
Intenciones de diseño
Este paquete está diseñado deliberadamente para alinearse con Qiskit: se apoya en un núcleo implementado en Rust y ofrece enlaces de lenguaje propios para Python. Su API busca establecer paralelismos con Qiskit para integrarse sin fricciones en los flujos de trabajo de usuarios con experiencia programando con Qiskit. Aunque ahora mismo no existe una API de C, la arquitectura está preparada para admitir una si alguna vez hiciera falta. La arquitectura de este paquete también es deliberadamente análoga a la de qiskit-fermions.
Un principio básico en el diseño de qiskit-bosons fue el desacoplamiento entre su representación de circuitos bosónicos y su forma en qubits. Para ser más precisos: los circuitos bosónicos tienen sentido por sí mismos y no requieren un mapeo al espacio de qubits para poder interpretarse. Además, la representación de circuitos bosónicos no puede hacer suposiciones sobre la truncación y la codificación de bosón a qubit que se apliquen después. Ambas entran solo en el momento de la transpilación.
Política de obsolescencia
Seguimos el versionado semántico y nos guiamos por los principios de la política de obsolescencia de Qiskit. Ocasionalmente podemos introducir cambios incompatibles para mejorar la experiencia del usuario. Cuando sea posible, mantendremos las interfaces antiguas y las marcaremos como obsoletas, mientras puedan coexistir con las nuevas. Cada mejora sustancial, cambio incompatible u obsolescencia se documentará en las notas de la versión.
Cómo contribuir
El código fuente está disponible en GitHub.
La guía para desarrolladores se encuentra en CONTRIBUTING.md, en la raíz del repositorio de este proyecto. Al participar, se espera que respetes el código de conducta de Qiskit.
Usamos GitHub issues para el seguimiento de solicitudes y errores.
Cómo citar este paquete
Si usas este paquete en tu investigación, utiliza el archivo CITATION.bib del repositorio de este proyecto para citar la(s) referencia(s) adecuada(s).