Zum Hauptinhalt springen
Dieses Projekt befindet sich in der Beta-Phase. Einen Fehler gefunden? GitHub Issue erstellen. Frage oder Idee? In Discussions fragen — wir freuen uns über dein Feedback!
Wie ist die Übersetzungsqualität auf dieser Seite?

Qiskit Fermions

qiskit-fermions erweitert das Qiskit SDK um Werkzeuge für die Arbeit mit fermionischen Systemen. In seinem Umfang bietet es Folgendes:

  • Effiziente Datenstrukturen zur Darstellung und Manipulation fermionischer Operatoren in verschiedenen Formen

  • Ein Framework zur Implementierung von Operator-Konvertierungsmethoden (einschließlich Fermion-zu-Qubit-Kodierungen)

  • Eine Bibliothek effizienter Implementierungen gängiger Konvertierungsmethoden

  • Ein Framework und eine Bibliothek von Gates zum Ausdrücken fermionischer Circuits

  • Eine in den Qiskit-Transpiler-Prozess integrierte Transpilations-Pipeline, um fermionische Circuits in Qubit-basierte Circuits zu synthetisieren

Außerdem lässt sich qiskit-fermions in weitere Tools des Ökosystems integrieren, zum Beispiel:

  • ffsim für die High-Level-Ansatz-Operatoren und die effiziente Simulation fermionischer Circuits (siehe Beziehung zu ffsim)

Erste Schritte​

Schematic description of Qiskit Fermions

Die schematische Darstellung im obigen Bild gibt einen Einblick in den Funktionsumfang und den allgemeinen Workflow, den dieses Paket bietet. Du kannst im fermionischen Bereich sowohl mit der Operator- als auch mit der Circuit-Darstellung arbeiten, bevor du eine Fermion-zu-Qubit-Kodierung definierst, die in die Multi-Repräsentations-Transpiler-Pipeline von Qiskit eingebunden wird.

Alle diese Funktionen werden in mehreren Anleitungen erklärt, die dir den Einstieg erleichtern. Für einen Überblick, der genau die oben gezeigte Pipeline durchgeht, beginne mit der Anleitung zum 1D-Fermi-Hubbard-Modell.

Anwendungsbeispiele​

Komponenten dieses Pakets wurden in der Forschung zu den folgenden Arbeiten verwendet:

  • Die randomisierte Circuit-Kompilierung mit qDRIFT in [1].

  • Die Fermion-zu-Qubit-Synthese während des Transpilationsprozesses in [2].

Technische Diskussion​

Designabsichten​

Dieses Paket ist bewusst so gestaltet, dass es sich an Qiskit orientiert: Es baut auf einem in Rust implementierten Kern auf und bietet erstklassige Sprachbindungen für Python und C. Seine API soll Parallelen zu Qiskit ziehen, um sich nahtlos in die Workflows von Nutzern mit Programmiererfahrung in Qiskit einzufügen.

Ein Kernprinzip beim Design von qiskit-fermions war die Entkopplung der fermionischen Circuit-Darstellung von ihrer qubitisierten Form. Genauer gesagt: Die fermionischen Circuits sind für sich genommen aussagekräftig und benötigen keine Abbildung auf den Qubit-Raum, um interpretierbar zu sein. Außerdem darf die fermionische Circuit-Darstellung keine Annahmen über die später angewendete Fermion-zu-Qubit-Kodierung treffen. Folglich wird Jordan-Wigner, obwohl es eine dominante Stellung und Rolle behält, nicht als _Standard_-Fermion-zu-Qubit-Kodierung vorausgesetzt.

Beziehung zu ffsim​

ffsim und qiskit-fermions teilen sich die Arbeit, statt sich zu überschneiden. ffsim verantwortet die High-Level-Ansatz-Operatoren und ihre schnelle Simulation: Es konstruiert einen UCJ- oder UCCSD-Operator aus Coupled-Cluster-Amplituden oder einem Parametervektor und simuliert fermionische Zustände in einem kompakten Raum mit fester Teilchenzahl. qiskit-fermions verantwortet die Circuit-Seite: Es drückt diesen Operator als FermionicCircuit auf fermionischen Moden aus und transpiliert ihn durch jede beliebige Fermion-zu-Qubit-Kodierung in einen Qubit-Circuit.

Dieser letzte Punkt ist der Grund, einen ffsim-Operator hierher zu bringen. Die Qiskit-Gates von ffsim sind spezifisch für die Jordan-Wigner-Transformation, daher ist das Herunterbrechen eines Ansatzes durch eine andere Kodierung (zum Beispiel eine lokale Kodierung, die Qubits gegen flachere Circuits eintauscht) das, was dieses Paket hinzufügt. Umgekehrt implementiert dieses Paket die Ansatz-Mathematik nicht neu, sodass UCJ und UCC einen ffsim-Operator direkt als Eingabe annehmen.

Auf der Simulationsseite ist ffsim das Backend. Die Gates und Operatoren dieses Pakets implementieren die Protokollmethoden, die die Simulationsfunktionen von ffsim verwenden (_apply_unitary_, _linear_operator_ und _trace_; siehe qiskit_fermions.protocols), sodass die Tools von ffsim ohne Konvertierungsschritt nativ mit ihnen arbeiten. Zum Erstellen von Operatoren, zu ihrer Abbildung und zur Transpilation der entstehenden Circuits wird ffsim überhaupt nicht benötigt.

Für das Gesamtbild lies die Anleitung zur Beziehung zu ffsim.

Bekannte Probleme​

Solange die Qiskit-C-API noch keine Funktionsparität mit ihrer Python-API erreicht hat, bleiben auch einige Komponenten dieses Pakets exklusiv der Python-API vorbehalten. Dazu gehören die gesamte Circuit-Bibliothek (qiskit_fermions.circuit) sowie die Transpiler-Passes (qiskit_fermions.transpiler).

Zukünftige Arbeiten​

  • Die Circuit-Bibliothek und die Transpiler-Passes in den Rust-Kern migrieren (und eine C-API für die Interaktion mit ihnen bereitstellen)

  • Die Bibliothek effizienter Implementierungen für Operatorkonvertierungen erweitern

  • Die Bibliothek effizienter Operator-Datenstrukturen erweitern

Mitwirken​

Der Quellcode ist auf GitHub verfügbar.

Der Entwicklerleitfaden befindet sich in CONTRIBUTING.md im Stammverzeichnis des Repositorys dieses Projekts. Mit deiner Teilnahme verpflichtest du dich, den Verhaltenskodex von Qiskit einzuhalten.

Dieses Paket zitieren​

Wenn du dieses Paket in deiner Forschung verwendest, nutze die Datei CITATION.bib im Repository dieses Projekts, um die passenden Referenzen zu zitieren.

Lizenz​

Apache License 2.0

Deprecation-Richtlinie​

Dieses Paket folgt semantischer Versionierung. Breaking Changes werden nur gelegentlich vorgenommen, um die Nutzererfahrung zu verbessern. Wenn möglich, werden alte Schnittstellen beibehalten und als veraltet markiert, solange sie neben den neuen bestehen können. Jede wesentliche Verbesserung, jede Breaking Change und jede Deprecation ist in den Versionshinweisen dokumentiert.

Referenzen​

[1]

Samuele Piccinelli, et al., Quantum chemistry with provable convergence via randomized sample-based Krylov quantum diagonalization, arXiv:2508.02578 [quant-ph].

[2]

Anthony Gandon, et al., Stabilizer-based quantum simulation of fermion dynamics with local qubit encodings, arXiv:2512.11418 [quant-ph].