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
QuantumCircuitkemudian memisahkan subset Qubit yang tidak bersambung ke dalam Circuit yang lebih kecil. Circuit ini mengandungi objekSingleQubitQPDGatedan 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
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.

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, , 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 pemotongan wayar menanggung overhed pensampelan sebesar apabila komunikasi klasik tidak tersedia (senario LO). Ini dikurangkan kepada 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:
di mana adalah saluran kuantum yang melaksanakan operasi yang dikehendaki, dan setiap adalah pekali nyata yang bersesuaian dengan saluran, , yang boleh dilaksanakan pada perkakasan.
Keputusan yang setara dengan saluran yang dikehendaki diperoleh dengan terlebih dahulu menjana pekali, , kemudian melaksanakan subeksperimen untuk mendapatkan hasil saluran berbeza bagi merekonstruksi nilai jangkaan yang bersesuaian dengan .
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 dari persamaan di atas). Keputusan Circuit ini direkonstruksi dengan menggabungkan keputusan setiap subeksperimen bersama set pekali (the dari persamaan di atas), yang boleh menjadi positif atau negatif.
Untuk beberapa parameter yang dipilih untuk RZZGate, enam subeksperimen adalah seperti berikut:
- Dengan pekali , tidak buat apa-apa ()
- Dengan pekali , lakukan ZGate pada setiap Qubit ()
- Dengan pekali , lakukan pengukuran unjuran dalam asas pada Qubit pertama dan pada Qubit kedua (). Jika keputusan pengukuran adalah , balikkan tanda sumbangan hasil tersebut semasa rekonstruksi.
- Dengan pekali , lakukan pengukuran unjuran dalam asas pada Qubit pertama dan pada Qubit kedua (). Jika keputusan pengukuran adalah 1, balikkan tanda sumbangan hasil tersebut semasa rekonstruksi.
- Sama seperti 3. (), tetapi tukar Qubit (lakukan sebaliknya).
- Sama seperti 4. (), tetapi tukar Qubit (lakukan sebaliknya).
Jadual rujukan overhed pensampelan
Jadual berikut memberikan faktor overhed pensampelan untuk pelbagai arahan dua-Qubit, dengan syarat hanya satu arahan dipotong.
| Arahan | Sudut penguraian KAK | Faktor overhed pensampelan |
|---|---|---|
| CSGate, CSdgGate, CSXGate | ||
| CXGate, CYGate, CZGate, GHGate, ECRGate | ||
| iSwapGate, DCXGate | ||
| SwapGate | ||
| RXXGate, RYYGate, RZZGate, RZXGate | ||
| CRXGate, CRYGate, CRZGate, CPhaseGate | ||
| XXPlusYYGate, XXMinusYYGate | (bebas daripada ) | |
| Move (pemotongan wayar dalam senario LO) | N/A |
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