Langkau ke kandungan utama

Pengkompilan kuantum anggaran dengan rangkaian tensor (AQC-Tensor)

Addon Qiskit pengkompilan kuantum anggaran dengan rangkaian tensor (AQC-Tensor) membolehkan pengguna mengkompil bahagian awal sesebuah litar menjadi anggaran yang hampir setara dengan litar tersebut, tetapi dengan lebih sedikit lapisan. Ini dicapai menggunakan rangkaian tensor dengan kaedah yang diterangkan dalam [1]. Kegunaannya terutama dalam litar yang mensimulasikan evolusi masa, tetapi mungkin terpakai untuk mana-mana kelas litar yang mempunyai akses kepada:

  1. Keadaan pertengahan yang baik, dikenali sebagai "keadaan sasaran," yang boleh dicapai melalui simulasi rangkaian tensor; dan,
  2. Litar yang baik yang menyediakan anggaran kepada keadaan sasaran, tetapi dengan lebih sedikit lapisan apabila dikompil ke peranti perkakasan sasaran.

Teknik ini menjana litar ansatz berdasarkan litar sasaran yang lebih besar yang akhirnya ingin dilaksanakan pengguna pada QPU. Ini dilakukan dengan mensimulasikan dahulu sebahagian daripada litar sasaran menggunakan kaedah rangkaian tensor dan mendapatkan penerangan yang tepat tentang keadaan pertengahan yang akan dianggarkan oleh litar ansatz. Setelah keadaan pertengahan ini ditemui, ia digunakan sebagai fungsi kos untuk mengoptimumkan parameter litar ansatz. Selepas pengoptimuman selesai, bahagian litar sasaran yang selebihnya digabungkan ke ansatz dan kemudian dilaksanakan pada perkakasan kuantum.

Pasang pakej AQC-Tensor​

Terdapat dua cara untuk memasang pakej AQC-Tensor: PyPI dan pembinaan dari sumber. Adalah disyorkan untuk memasang pakej ini dalam persekitaran maya untuk memastikan pemisahan antara kebergantungan pakej.

Pasang dari PyPI​

Cara paling mudah untuk memasang pakej AQC-Tensor ialah melalui PyPI. Untuk menggunakan pakej ini, anda juga mesti memasang sekurang-kurangnya satu backend rangkaian tensor. Petikan kod berikut akan memasang addon, bersama quimb (untuk sokongan rangkaian tensor) dan jax (untuk pembezaan automatik). Jika anda berminat, lihat pakej di GitHub

pip install 'qiskit-addon-aqc-tensor[quimb-jax]'

Pasang dari sumber​

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

Jika anda ingin menyumbang kepada pakej ini atau ingin memasangnya secara manual, mula-mula klon repositori:

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

dan pasang pakej melalui pip. Jika anda merancang untuk menjalankan tutorial yang terdapat dalam repositori pakej, pasang juga kebergantungan notebook. Jika anda merancang untuk membangun dalam repositori, anda juga mungkin ingin memasang kebergantungan dev.

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

Latar Belakang Teori​

Prosedur AQC-Tensor diterangkan secara terperinci dalam [1]. Bahagian ini memberikan gambaran keseluruhan teknik tersebut.

Gambar rajah yang menggambarkan prosedur pengkompilan kuantum anggaran

Secara umum, AQC-Tensor memerlukan tiga perkara sebagai input:

  1. Penerangan keadaan sasaran dalam bentuk rangkaian tensor. Ini boleh dijana dengan mensimulasikan litar pada simulator rangkaian tensor, atau ia boleh dijana dengan cara lain (contohnya, dengan melakukan evolusi masa pada keadaan produk matriks menggunakan prinsip variasi bergantung masa).
  2. Litar ansatz berparameter. Sebaik-baiknya yang mengandungi kesambungan cekap perkakasan, supaya ia mempunyai kedalaman yang munasabah pada perkakasan sasaran.
  3. Parameter awal untuk dimasukkan ke dalam litar ansatz, supaya keadaan yang terhasil sudah merupakan anggaran yang baik kepada keadaan sasaran. (Ini tidak, secara prinsip, diperlukan untuk AQC, tetapi ia membantu memberikan titik permulaan yang masuk akal kepada pengoptimum.)

Tekniknya ialah mengoptimumkan parameter litar ansatz secara berulang, supaya keadaan yang dijana adalah sedekat mungkin dengan keadaan sasaran.

Penjanaan ansatz​

Untuk menjana (2) dan (3) dari senarai di atas, pakej qiskit-addon-aqc mempunyai fungsi generated_ansatz_from_circuit() yang akan mengambil litar input dan mengeluarkan ansatz berparameter dan set parameter awal. Parameter yang dikembalikan oleh fungsi adalah supaya, apabila dimasukkan ke dalam ansatz, akan menjana keadaan yang setara tepat dengan litar input, sehingga fasa global.

Ansatz yang dijana oleh fungsi ini menggunakan 9 parameter per blok dua-qubit dan berdasarkan penguraian KAK, yang memparameter sebarang gate dua-qubit dalam sebutan tiga parameter, sehingga putaran satu-qubit. Putaran satu-qubit kemudian diuraikan sebagai ZXZZXZ, yang masing-masing mempunyai tiga parameter. Ini menghasilkan litar ansatz yang mengandungi 3 parameter untuk setiap blok dua-qubit litar asal, ditambah 3 parameter untuk putaran satu-qubit keluar pada setiap dua qubit (jumlah 9 parameter). Selepas menambah blok-blok ini, ansatz dilengkapkan dengan menambah lapisan putaran satu-qubit ke setiap qubit aktif pada permulaan litar.

Simulasi rangkaian tensor​

Untuk mendapatkan penerangan keadaan sasaran yang diingini, addon ini menggunakan keadaan produk matriks (bentuk paling mudah rangkaian tensor) dan menyokong simulator rangkaian tensor berikut:

Parameter paling penting rangkaian tensor ialah dimensi ikatan maksimumnya, Ο‡\chi. Parameter ini mengehadkan berapa banyak keterjeratan yang boleh direpresentasikan dengan rangkaian tensor, dan dengan itu seberapa dalam sesebuah litar tertentu boleh disimulasikan dengan setia.

Diberi litar dengan LL qubit, keadaan produk matriks memerlukan dimensi ikatan paling banyak Ο‡exact=2L/2\chi_{exact} = 2^{L/2} untuk mensimulasikan litar secara tepat sehingga sebarang kedalaman. Ini di luar jangkauan untuk litar skala utiliti umum yang beroperasi pada 100+ qubit. Atas sebab ini, jika anda cuba bereksperimen dengan addon ini untuk masalah mainan dengan sedikit qubit, adalah penting untuk memastikan bahawa Ο‡<2L/2\chi < 2^{L/2}. Dengan cara ini, apabila anda menskalakan masalah ke litar yang lebih besar, keadaan sasaran kekal boleh disimulasikan secara klasik.

Langkah seterusnya​

Cadangan

Rujukan​

[1] Robertson, Niall F., et al. "Approximate Quantum Compiling for Quantum Simulation: A Tensor Network based approach" arXiv preprint arXiv:2301.08609 (2023).

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