Langkau ke kandungan utama

Pemotongan Circuit

Pemotongan Circuit adalah teknik untuk meningkatkan saiz Circuit yang boleh dijalankan pada perkakasan kuantum, dengan kos overhed pensampelan tambahan. Addon ini melaksanakan teknik ini, di mana beberapa Gate, wayar, atau kedua-duanya dipotong, menghasilkan Circuit yang lebih kecil yang lebih sesuai untuk pelaksanaan pada perkakasan. Circuit yang lebih kecil ini kemudiannya dilaksanakan, dan keputusan Circuit asal direkonstruksi melalui pasca-pemprosesan klasik. Walau bagaimanapun, perdagangannya adalah bahawa jumlah keseluruhan shots mesti meningkat dengan faktor yang bergantung kepada bilangan dan jenis potongan yang dibuat (dikenali sebagai overhed pensampelan). Pemotongan Circuit juga boleh digunakan untuk menjana Gate antara Qubit yang jauh yang sebaliknya memerlukan overhed SWAP yang besar.

Istilah penting

  • SubCircuit: Set Circuit yang terhasil daripada pemotongan Gate dalam QuantumCircuit kemudian memisahkan subset Qubit yang tidak bersambung ke dalam Circuit yang lebih kecil. Circuit ini mengandungi objek SingleQubitQPDGate dan digunakan untuk menjanakan setiap subeksperimen.

  • Subeksperimen: Istilah yang digunakan untuk menggambarkan sampel Circuit unik yang berkaitan dengan subCircuit, yang dihantar ke QPU untuk dilaksanakan.

Pasang pakej pemotongan Circuit

Terdapat tiga cara untuk memasang pakej pemotongan Circuit: PyPI, membina dari sumber, dan menjalankan dalam persekitaran bekas. Adalah disyorkan untuk memasang pakej ini dalam persekitaran maya untuk memastikan pemisahan antara kebergantungan pakej.

Pasang dari PyPI

Cara paling mudah untuk memasang pakej qiskit-addon-cutting adalah dengan PyPI:

pip install qiskit-addon-cutting

Pasang dari sumber

Klik di sini untuk membaca cara memasang pakej ini secara manual.

Untuk menyumbang kepada pakej ini atau memasangnya secara manual, mula-mula klon repositori:

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

dan pasang pakej dengan pip. Untuk menjalankan tutorial yang terdapat dalam repositori pakej, pasang juga kebergantungan notebook. Pasang kebergantungan dev jika anda merancang untuk membangun dalam repositori.

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

Guna dalam Docker

Dockerfile yang disertakan dalam repositori addon boleh digunakan untuk membina imej Docker. Fail compose.yaml yang disertakan membolehkan anda menggunakan imej Docker dengan arahan berikut.

Klik di sini untuk membaca cara menggunakan pakej ini dalam Docker.

git clone git@github.com:Qiskit/qiskit-addon-cutting.git
cd qiskit-addon-cutting
docker compose build
docker compose up
Nota

Jika anda menggunakan podman dan podman-compose dan bukan docker, arahan-arahan adalah:

podman machine start
podman-compose --podman-pull-args short-name-mode="permissive" build
podman-compose up

Setelah bekas berjalan, anda akan melihat mesej yang serupa dengan:

notebook_1  |     To access the server, open this file in a browser:
notebook_1 | file:///home/$USERNAME/.local/share/jupyter/runtime/jpserver-7-open.html
notebook_1 | Or copy and paste one of these URLs:
notebook_1 | http://e4a04564eb39:8888/lab?token=00ed70b5342f79f0a970ee9821c271eeffaf760a7dcd36ec
notebook_1 | or http://127.0.0.1:8888/lab?token=00ed70b5342f79f0a970ee9821c271eeffaf760a7dcd36ec

URL terakhir dalam mesej ini akan memberikan anda akses ke antara muka notebook Jupyter.

Selain itu, direktori utama merangkumi subdirektori bernama persistent-volume. Semua kerja yang ingin anda simpan harus diletakkan dalam direktori ini, kerana ia adalah satu-satunya yang akan disimpan merentas pelbagai jalankan bekas.

Latar belakang teori

Dalam proses pemotongan Circuit, terdapat dua jenis potongan: potongan Gate atau "seperti-ruang", di mana potongan melalui Gate yang beroperasi pada dua (atau lebih) Qubit, dan potongan wayar atau "seperti-masa", yang memotong terus melalui wayar Qubit (pada dasarnya Gate identiti satu-Qubit yang telah dipotong menjadi dua bahagian).

Gambar rajah di bawah menggambarkan contoh pemotongan Gate supaya Circuit boleh dibahagikan kepada dua bahagian yang lebih kecil dengan lebih sedikit Qubit.

Rajah pemotongan Gate dengan mengambil satu Circuit yang lebih besar dan memotongnya menjadi dua yang lebih kecil berlabel "A" dan "B"

Terdapat tiga senario untuk dipertimbangkan semasa menyediakan aliran kerja pemotongan Circuit, yang berpusat pada ketersediaan komunikasi klasik antara pelaksanaan Circuit. Yang pertama adalah di mana hanya operasi tempatan (LO) tersedia, manakala dua lagi memperkenalkan komunikasi klasik antara pelaksanaan yang dikenali sebagai operasi tempatan dan komunikasi klasik (LOCC). Senario LOCC kemudiannya dikelompokkan sama ada sebagai komunikasi hampir-masa, satu arah antara pelaksanaan Circuit, atau masa nyata, komunikasi dua arah (yang mungkin anda lihat dalam persekitaran berbilang QPU).

Walaupun pemotongan Circuit boleh digunakan untuk melaksanakan Circuit kuantum yang lebih besar daripada yang mungkin pada perkakasan yang tersedia sekarang, ia datang dengan kos. Kerana teknik ini boleh dibingkaikan sebagai masalah penguraian quasi-kebarangkalian (QPD), terdapat overhed pensampelan eksponen yang diperlukan untuk merekonstruksi keputusan. Overhed ini adalah faktor yang mana jumlah keseluruhan shots mesti meningkat supaya penguraian quasi-kebarangkalian menghasilkan jumlah ralat yang sama, ϵ\epsilon, seperti yang anda dapat dengan melaksanakan Circuit asal. Setiap Gate yang dipotong menyumbang kepada overhed ini, dan jumlah overhed yang ditambah bergantung kepada jenis Gate yang dipotong (butiran lanjut tentang pensampelan overhed boleh didapati dalam lampiran terakhir [1]).

Sebagai contoh, satu Gate CNOT yang dipotong menanggung overhed pensampelan sebesar 9 [2,6] dan Circuit dengan nn pemotongan wayar menanggung overhed pensampelan sebesar O(16n)\mathcal{O}(16^n) apabila komunikasi klasik tidak tersedia (senario LO). Ini dikurangkan kepada O(4n)\mathcal{O}(4^n) apabila komunikasi klasik tersedia (senario LOCC) [4]. Walau bagaimanapun, pemotongan wayar dengan komunikasi klasik (LOCC) tidak disokong oleh pakej ini.

Secara formal, masalah QPD pemotongan Circuit boleh dinyatakan sebagai berikut:

U=iaiFi, \mathcal{U} = \sum_i a_i \mathcal{F}_i,

di mana U\mathcal{U} adalah saluran kuantum yang melaksanakan operasi yang dikehendaki, dan setiap aia_i adalah pekali nyata yang bersesuaian dengan saluran, Fi\mathcal{F}_i, yang boleh dilaksanakan pada perkakasan.

Keputusan yang setara dengan saluran yang dikehendaki U\mathcal{U} diperoleh dengan terlebih dahulu menjana pekali, aia_i, kemudian melaksanakan subeksperimen untuk mendapatkan hasil saluran berbeza Fi\mathcal{F}_i bagi merekonstruksi nilai jangkaan yang bersesuaian dengan U\mathcal{U}.

Contoh ringkas: memotong RZZGate

Sebagai contoh eksplisit asas, pertimbangkan penguraian RZZGate yang dipotong (butiran boleh didapati dalam [2]). Circuit kuantum yang mengandungi RZZGate boleh disimulasikan dengan melakukan enam subeksperimen di mana RZZGate telah digantikan dengan hanya operasi satu-Qubit (ini adalah Fi\mathcal{F}_i dari persamaan di atas). Keputusan Circuit ini direkonstruksi dengan menggabungkan keputusan setiap subeksperimen bersama set pekali (the aia_i dari persamaan di atas), yang boleh menjadi positif atau negatif.

Untuk beberapa parameter θ\theta yang dipilih untuk RZZGate, enam subeksperimen adalah seperti berikut:

  1. Dengan pekali a1=cos2(θ/2)a_1 = \cos^2(\theta/2), tidak buat apa-apa (III\otimes I)
  2. Dengan pekali a2=sin2(θ/2)a_2 = \sin^2(\theta/2), lakukan ZGate pada setiap Qubit (ZZZ\otimes Z)
  3. Dengan pekali a3=sin(θ)/2a_3 = -\sin(\theta)/2, lakukan pengukuran unjuran dalam asas ZZ pada Qubit pertama dan SS pada Qubit kedua (MzSM_z\otimes S). Jika keputusan pengukuran adalah 11, balikkan tanda sumbangan hasil tersebut semasa rekonstruksi.
  4. Dengan pekali a4=sin(θ)/2a_4 = \sin(\theta)/2, lakukan pengukuran unjuran dalam asas ZZ pada Qubit pertama dan SS^\dagger pada Qubit kedua (MzSM_z\otimes S^\dagger). Jika keputusan pengukuran adalah 1, balikkan tanda sumbangan hasil tersebut semasa rekonstruksi.
  5. Sama seperti 3. (a5=a3a_5=a_3), tetapi tukar Qubit (lakukan SMzS\otimes M_z sebaliknya).
  6. Sama seperti 4. (a6=a4a_6=a_4), tetapi tukar Qubit (lakukan SMzS^\dagger\otimes M_z sebaliknya).

Jadual rujukan overhed pensampelan

Jadual berikut memberikan faktor overhed pensampelan untuk pelbagai arahan dua-Qubit, dengan syarat hanya satu arahan dipotong.

ArahanSudut penguraian KAKFaktor overhed pensampelan
CSGate, CSdgGate, CSXGate(π/8,0,0)\left(\pi/8, 0, 0\right)3+2(2)2.8283+2\sqrt(2) \approx 2.828
CXGate, CYGate, CZGate, GHGate, ECRGate(π/4,0,0)\left(\pi/4, 0, 0\right)32=93^2=9
iSwapGate, DCXGate(π/4,π/4,0)\left(\pi/4, \pi/4, 0\right)72=497^2 = 49
SwapGate(π/4,π/4,π/4)\left(\pi/4, \pi/4, \pi/4\right)72=497^2 = 49
RXXGate, RYYGate, RZZGate, RZXGate(θ/2,0,0,)\left(\lvert\theta/2\rvert, 0, 0, \right)(1+2sin(θ))2\left(1 + 2\lvert\sin(\theta)\rvert\right)^2
CRXGate, CRYGate, CRZGate, CPhaseGate(θ/4,0,0)\left(\lvert\theta/4\rvert, 0, 0\right)(1+2sin(θ/2))2\left(1 + 2\lvert\sin(\theta/2)\rvert\right)^2
XXPlusYYGate, XXMinusYYGate(θ/4,θ/4,0)\left(\vert\theta/4\rvert, \lvert\theta/4\rvert, 0\right)(1+4sin(θ/2)+2sin2(θ/2))2\left(1 + 4\lvert\sin(\theta/2)\rvert + 2\sin^2(\theta/2)\right)^2 (bebas daripada β\beta)
Move (pemotongan wayar dalam senario LO)N/A42=164^2 = 16

Langkah seterusnya

Rujukan

[1] Christophe Piveteau, David Sutter, Circuit knitting with classical communication, https://arxiv.org/abs/2205.00016

[2] Kosuke Mitarai, Keisuke Fujii, Constructing a virtual two-qubit gate by sampling single-qubit operations, https://arxiv.org/abs/1909.07534

[3] Kosuke Mitarai, Keisuke Fujii, Overhead for simulating a non-local channel with local channels by quasiprobability sampling, https://arxiv.org/abs/2006.11174

[4] Lukas Brenner, Christophe Piveteau, David Sutter, Optimal wire cutting with classical communication, https://arxiv.org/abs/2302.03366

[5] K. Temme, S. Bravyi, and J. M. Gambetta, Error mitigation for short-depth quantum circuits, https://arxiv.org/abs/1612.02058

[6] Lukas Schmitt, Christophe Piveteau, David Sutter, Cutting circuits with multiple two-qubit unitaries, https://arxiv.org/abs/2312.11638

[7] Jun Zhang, Jiri Vala, K. Birgitta Whaley, Shankar Sastry, A geometric theory of non-local two-qubit operations, https://arxiv.org/abs/quant-ph/0209120

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