Qiskit Fermions
qiskit-fermions memperluas Qiskit SDK dengan alat untuk berkerja pada sistem fermionik. Dalam skopnya, ia menyediakan perkara berikut:
-
Struktur data yang cekap untuk perwakilan dan manipulasi operator fermionik dalam pelbagai bentuk
-
Rangka kerja untuk melaksanakan kaedah penukaran operator (termasuk pengekodan fermion-ke-qubit)
-
Pustaka pelaksanaan cekap bagi kaedah penukaran lazim
-
Rangka kerja dan pustaka get untuk menyatakan litar fermionik
-
Saluran paip transpilasi yang disepadukan dengan proses transpiler Qiskit untuk mensintesis litar fermionik menjadi litar berasaskan qubit
Selain itu, qiskit-fermions disepadukan dengan alat-alat lain dalam ekosistem, seperti:
- ffsim untuk operator ansatz peringkat tinggi dan simulasi litar fermion yang cekap (lihat Hubungan dengan ffsim)
Bermula
Huraian skematik dalam imej di atas memberi gambaran tentang keluasan ciri dan aliran kerja umum yang disediakan oleh pakej ini. Anda boleh bekerja dalam rejim fermion dengan kedua-dua perwakilan operator dan litar, sebelum anda mentakrifkan pengekodan fermion-ke-qubit yang disambungkan ke saluran paip transpiler berbilang perwakilan Qiskit.
Semua ciri ini diterangkan dalam beberapa panduan untuk membantu anda bermula. Untuk gambaran keseluruhan yang menelusuri saluran paip seperti yang ditunjukkan di atas, mulakan dengan panduan Fermi-Hubbard 1D.
Contoh kes penggunaan
Komponen pakej ini telah digunakan dalam penyelidikan yang berkaitan dengan kertas kerja berikut:
-
Penyusunan litar rawak qDRIFT dalam [1].
-
Sintesis fermion-ke-qubit semasa proses transpilasi dalam [2].
Perbincangan teknikal
Hasrat reka bentuk
Pakej ini sengaja direka bentuk supaya selaras dengan Qiskit: ia dibina di atas teras yang dilaksanakan dalam Rust dan menyediakan pengikatan bahasa pihak pertama untuk Python dan C. API-nya bertujuan menyerupai Qiskit supaya dapat disepadukan dengan lancar ke dalam aliran kerja pengguna yang berpengalaman dalam pengaturcaraan Qiskit.
Prinsip teras dalam reka bentuk qiskit-fermions ialah pemisahan perwakilan litar fermionnya daripada bentuk qubitnya. Dengan lebih tepat: litar fermion bermakna dengan sendirinya dan tidak memerlukan pemetaan ke ruang qubit untuk ditafsirkan. Tambahan pula, perwakilan litar fermion tidak boleh membuat sebarang andaian tentang pengekodan fermion-ke-qubit yang dikenakan kemudian. Oleh itu, walaupun Jordan-Wigner mengekalkan kedudukan dan peranan yang dominan, ia tidak diandaikan sebagai pengekodan fermion-ke-qubit _lalai_.
Hubungan dengan ffsim
ffsim dan qiskit-fermions membahagikan kerja dan bukannya bertindih. ffsim memiliki operator ansatz peringkat tinggi dan simulasinya yang pantas: ia membina operator UCJ atau UCCSD daripada amplitud coupled-cluster atau vektor parameter, dan mensimulasikan keadaan fermion dalam ruang bilangan zarah tetap yang padat. qiskit-fermions memiliki bahagian litar: ia menyatakan operator itu sebagai FermionicCircuit pada mod fermion dan mentranspilasikannya menjadi litar qubit melalui mana-mana pengekodan fermion-ke-qubit.
Perkara terakhir itulah sebab untuk membawa operator ffsim ke sini. Gate Qiskit milik ffsim khusus untuk transformasi Jordan-Wigner, jadi menurunkan ansatz melalui pengekodan yang berbeza (contohnya pengekodan setempat yang menukar qubit dengan litar yang lebih cetek) ialah apa yang ditambah oleh pakej ini. Sebaliknya, pakej ini tidak melaksanakan semula matematik ansatz, jadi UCJ dan UCC menerima operator ffsim secara langsung sebagai input.
Dari sisi simulasi, ffsim ialah Backend. Gate dan operator pakej ini melaksanakan kaedah protokol yang digunakan oleh fungsi simulasi ffsim (_apply_unitary_, _linear_operator_ dan _trace_; lihat qiskit_fermions.protocols), jadi alat ffsim berfungsi pada mereka secara asli, tanpa langkah penukaran. Membina operator, memetakannya dan mentranspilasikan litar yang terhasil tidak memerlukan ffsim langsung.
Untuk gambaran penuh, baca panduan hubungan ffsim.
Isu yang diketahui
Selagi API C Qiskit belum mencapai kesetaraan ciri dengan API Pythonnya, beberapa komponen pakej ini kekal eksklusif kepada API Pythonnya juga. Ini termasuk keseluruhan pustaka litar (qiskit_fermions.circuit) serta pass transpiler (qiskit_fermions.transpiler).
Kerja masa depan
-
Memindahkan pustaka litar dan pass transpiler ke dalam teras Rust (dan menyediakan API C untuk berinteraksi dengannya)
-
Memperluas pustaka pelaksanaan penukaran operator yang cekap
-
Memperluas pustaka struktur data operator yang cekap
Menyumbang
Kod sumber boleh didapati di GitHub.
Panduan pembangun terdapat di CONTRIBUTING.md dalam akar repositori projek ini. Dengan mengambil bahagian, anda dijangka mematuhi kod etika Qiskit.
Memetik pakej ini
Jika anda menggunakan pakej ini dalam penyelidikan anda, gunakan fail CITATION.bib dalam repositori projek ini untuk memetik rujukan yang sesuai.
Lesen
Dasar penyahgunaan
Pakej ini mengikut pengversian semantik. Perubahan yang memecahkan hanya dibuat sekali-sekala, untuk menambah baik pengalaman pengguna. Apabila mungkin, antara muka lama dikekalkan dan ditandakan sebagai ditamatkan selagi ia boleh wujud bersama yang baharu. Setiap penambahbaikan besar, perubahan yang memecahkan, atau penyahgunaan didokumenkan dalam Nota Keluaran.
Rujukan
[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].