Qiskit Fermions
qiskit-fermionsは、フェルミオン系を扱うためのツールでQiskit SDKを拡張します。その範囲内で、次のものを提供します。
-
さまざまな形式のフェルミオン演算子を表現・操作するための効率的なデータ構造
-
演算子変換手法(フェルミオン-量子ビット符号化を含む)を実装するためのフレームワーク
-
一般的な変換手法の効率的な実装のライブラリ
-
フェルミオン回路を表現するためのゲートのフレームワークとライブラリ
-
フェルミオン回路を量子ビットベースの回路へ合成するための、Qiskitトランスパイラー処理と統合されたトランスパイル・パイプライン
さらに、qiskit-fermions はエコシステム内の他のツールとも連携します。例えば次のようなものです。
はじめに
上の画像の概略図は、このパッケージが提供する機能の幅広さと一般的なワークフローを示しています。Qiskitのマルチ表現トランスパイラー・パイプラインに接続するフェルミオン-量子ビット符号化を定義する前に、演算子表現と回路表現の両方でフェルミオン領域の作業を行えます。
これらの機能はすべて、複数のガイドで説明されています。上に示したパイプラインをそのままたどる概要については、1次元フェルミ・ハバード・ガイドから始めてください。
ユースケースの例
このパッケージのコンポーネントは、次の論文に関連する研究で使用されています。
技術的な解説
設計の意図
このパッケージは意図的にQiskitに合わせて設計されています。Rustで実装されたコアを基盤とし、PythonとC向けの公式言語バインディングを提供します。APIはQiskitと類似するように作られており、Qiskitでのプログラミング経験を持つユーザーのワークフローにシームレスに統合できます。
qiskit-fermions の設計における中心的な原則は、フェルミオン回路表現とその量子ビット化された形式を切り離すことでした。より正確に言えば、フェルミオン回路はそれ自体で意味を持ち、解釈のために量子ビット空間へのマッピングを必要としません。さらに、フェルミオン回路表現は、後から適用されるフェルミオン-量子ビット符号化について何も仮定できません。そのため、Jordan-Wignerは支配的な地位と役割を保っていますが、_default_のフェルミオン-量子ビット符号化であるとは想定されていません。
ffsimとの関係
ffsimと qiskit-fermions は、重複するのではなく役割を分担しています。ffsimは高レベルのアンザッツ演算子とその高速なシミュレーションを担当します。結合クラスター振幅またはパラメーター・ベクトルからUCJまたはUCCSD演算子を構築し、粒子数固定のコンパクトな空間でフェルミオン状態をシミュレートします。qiskit-fermions は回路側を担当します。その演算子をフェルミオン・モード上のFermionicCircuitとして表現し、任意のフェルミオン-量子ビット符号化を通じて量子ビット回路にトランスパイルします。
この最後の点が、ffsim演算子をここに持ち込む理由です。ffsim自身のQiskitゲートはJordan-Wigner変換に固有のものであるため、異なる符号化(例えば、量子ビット数と引き換えに回路を浅くするローカル符号化)を通じてアンザッツを低レベルに変換することが、このパッケージが加える価値です。逆に、このパッケージはアンザッツの数学を再実装しないため、UCJとUCCは、ffsim演算子を直接入力として受け取ります。
シミュレーション側では、ffsimがバックエンドです。このパッケージのゲートと演算子は、ffsimのシミュレーション関数が利用するプロトコル・メソッド(_apply_unitary_、_linear_operator_、_trace_。qiskit_fermions.protocolsを参照)を実装しているため、ffsimのツールは変換ステップなしでそれらをネイティブに扱えます。演算子の構築、マッピング、生成された回路のトランスパイルには、ffsimはまったく必要ありません。
全体像については、ffsimとの関係に関するガイドをお読みください。
既知の問題
Qiskit C APIがPython APIと同等の機能に達するまでは、このパッケージの一部のコンポーネントもPython APIでのみ利用できます。これには、回路ライブラリ全体(qiskit_fermions.circuit)およびトランスパイラー・パス(qiskit_fermions.transpiler)が含まれます。
今後の予定
-
回路ライブラリとトランスパイラー・パスをRustコアへ移行する(それらを操作するためのC APIも提供する)
-
効率的な演算子変換の実装ライブラリを拡張する
-
効率的な演算子データ構造のライブラリを拡張する
コントリビューション
ソースコードはGitHub上で公開されています。
開発者ガイドは、このプロジェクトのリポジトリのルートにあるCONTRIBUTING.mdにあります。参加するにあたっては、Qiskitの行動規範を守っていただくことになります。
このパッケージの引用
研究でこのパッケージを使用する場合は、このプロジェクトのリポジトリにあるCITATION.bibファイルを使用して、適切な参考文献を引用してください。
ライセンス
非推奨ポリシー
このパッケージはセマンティック・バージョニングに従います。破壊的変更は、ユーザー・エクスペリエンスを向上させるために、まれにのみ行われます。可能な場合は、古いインターフェースは新しいものと共存できる限り維持され、非推奨としてマークされます。実質的な改善、破壊的変更、非推奨はすべて、リリースノートに記載されます。
参考文献
[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].