Lewati ke konten utama

Ikhtisar Sample-based quantum diagonalization (SQD)

Sample-based quantum diagonalization (SQD) adalah teknik pasca-pemrosesan klasik yang bekerja pada sampel yang diperoleh dari Circuit kuantum setelah dieksekusi di QPU. Teknik ini berguna untuk mencari nilai eigen dan vektor eigen dari operator kuantum, seperti Hamiltonian dari suatu sistem kuantum, dan menggabungkan komputasi kuantum dengan komputasi klasik terdistribusi. Teknik pasca-pemrosesan ini bisa sangat berguna bagi pengguna yang menyimulasikan sistem kimia atau sistem kuantum lainnya.

Komputasi klasik digunakan untuk memproses sampel yang diperoleh dari prosesor kuantum, serta memproyeksikan dan mendiagonalisasi Hamiltonian target dalam subruang yang dibentangkan oleh sampel tersebut. Hal ini membuat SQD tahan terhadap sampel yang rusak akibat noise kuantum dan mampu mengelola Hamiltonian besar, seperti sistem kimia dengan jutaan suku yang berinteraksi, yang berada di luar jangkauan metode diagonalisasi eksak.

Alat SQD dapat menargetkan Hamiltonian yang dinyatakan sebagai kombinasi linear dari operator Pauli atau operator Fermionic second-quantized. Sampel input diperoleh dari Circuit kuantum yang didefinisikan oleh pengguna, yang diyakini merupakan representasi yang baik dari eigenstate (misalnya, keadaan dasar) dari suatu operator target. Tingkat konvergensi SQD sebagai fungsi dari jumlah sampel meningkat seiring dengan tingkat kejarangannya eigenstate target.

Instal paket SQD​

Ada dua cara untuk menginstal paket SQD: PyPI dan membangun dari sumber. Disarankan untuk menginstal paket-paket ini di virtual environment agar dependensi paket tetap terpisah.

Instal dari PyPI​

Cara paling mudah untuk menginstal paket qiskit-addon-sqd adalah melalui PyPI.

pip install qiskit-addon-sqd

Bangun dari sumber​

Klik di sini untuk membaca cara menginstal paket ini secara manual

Kalau kamu ingin berkontribusi pada paket ini atau ingin menginstalnya secara manual, pertama-tama clone repositorinya:

git clone git@github.com:Qiskit/qiskit-addon-sqd.git

lalu instal paketnya melalui pip. Repositori juga berisi contoh notebook yang bisa kamu jalankan. Kalau kamu berencana untuk mengembangkan di repositori tersebut, kamu bisa menginstal dependensi dev.

Sesuaikan opsinya sesuai kebutuhanmu.

pip install tox notebook -e '.[notebook-dependencies, dev]'

Latar belakang teori​

Alur kerja SQD menggunakan pemulihan konfigurasi yang konsisten secara mandiri dijelaskan secara rinci di [1]. Bagian ini memberikan ikhtisar teknik yang digambarkan dalam diagram berikut.

Diagram SQD yang menggambarkan pemulihan konfigurasi, pengumpulan subsampel, dan memperoleh eigenstate dari subsampel tersebut

Di sini Xˉ\bar{\mathcal{X}} adalah sekumpulan sampel yang mengandung noise yang memuat, dalam konteks Hamiltonian yang disimulasikan, konfigurasi fisik dan non-fisik (direpresentasikan sebagai bitstring) yang diperoleh dari eksekusi di QPU. Konfigurasi non-fisik disebabkan oleh noise dan dapat diproses dengan metode sqd.configuration_recovery.recover_configurations() untuk menyempurnakan sampel menjadi himpunan baru XR\mathcal{X}_R.

Dari himpunan ini, batch-batch konfigurasi S(1)... S(K)\mathcal{S}^{(1)}...\ \mathcal{S}^{(K)} dikumpulkan sesuai distribusi yang proporsional terhadap frekuensi empiris dari setiap x\mathbf{x} dalam XR\mathcal{X}_R. Setiap batch konfigurasi yang disampel membentangkan subruang, S(k):k=1,...,K\mathcal{S}^{(k)}: k = 1, ..., K, di mana Hamiltonian diproyeksikan dan didiagonalisasi:

H^S(k)=P^S(k)H^P^S(k), dengan P^S(k)=∑x∈S(k)∣x⟩⟨x∣, \hat{H}_{S^{(k)}} = \hat{P}_{\mathcal{S}^{(k)}}\hat{H}\hat{P}_{\mathcal{S}^{(k)}}\text{, dengan } \hat{P}_{\mathcal{S}^{(k)}} = \sum_{\mathbf{x} \in \mathcal{S}^{(k)}} |\mathbf{x}\rangle\langle\mathbf{x}|,

di mana H^S(k)\hat{H}_{\mathcal{S}^{(k)}} adalah Hamiltonian dari subruang tertentu.

Inti dari alur kerja SQD terletak di sini, yaitu ketika setiap Hamiltonian subruang tersebut didiagonalisasi. Keadaan dasar yang diperoleh dari setiap subruang, ∣ψ(k)⟩|\psi^{(k)}\rangle, digunakan untuk menghasilkan estimasi vektor referensi dari okupansi n(K)\mathbf{n}^{(K)} yang dirata-ratakan di setiap KK subruang. Himpunan konfigurasi baru XR\mathcal{X}_R kemudian dihasilkan dengan cara membalik bit individual secara probabilistik berdasarkan okupansi rata-rata ini dan jumlah total partikel yang diketahui (Hamming weight) dalam sistem. Proses pemulihan konfigurasi ini kemudian diulang dengan menyiapkan subruang baru untuk didiagonalisasi, mendapatkan eigenstate baru dan okupansi orbital rata-rata, serta menghasilkan himpunan konfigurasi baru. Loop ini diulang hingga kriteria yang ditentukan pengguna terpenuhi, dan keseluruhan proses ini analogis dengan memfilter sinyal yang mengandung noise untuk meningkatkan fidelitasnya.

Langkah selanjutnya​

Rekomendasi

Referensi​

[1] Robledo-Moreno, Javier, et al. "Chemistry beyond exact solutions on a quantum-centric supercomputer" arXiv preprint arXiv:2405.05068 (2024).

Source: IBM Quantum docs — updated 5 Mar 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mar 2026