Kompilasi kuantum aproksimasi dengan tensor network (AQC-Tensor)
Addon Qiskit AQC-Tensor (Approximate Quantum Compilation with Tensor Networks) memungkinkan pengguna untuk mengkompilasi bagian awal sebuah Circuit menjadi aproksimasi yang hampir setara, tetapi dengan jauh lebih sedikit lapisan. Ini dicapai menggunakan tensor network dengan metode yang dijelaskan dalam [1]. Kegunaan utamanya adalah pada Circuit yang mensimulasikan evolusi waktu, tetapi bisa juga diterapkan pada kelas Circuit apa pun yang memiliki akses ke:
- Sebuah intermediate state yang bagus, dikenal sebagai "target state," yang dapat dicapai melalui simulasi tensor network; dan,
- Sebuah Circuit yang bagus untuk mempersiapkan aproksimasi terhadap target state, tetapi dengan lebih sedikit lapisan ketika dikompilasi ke perangkat hardware target.
Teknik ini menghasilkan ansatz Circuit berdasarkan Circuit target yang lebih besar yang pada akhirnya ingin dieksekusi pengguna di QPU. Ini dilakukan dengan terlebih dahulu mensimulasikan sebagian dari Circuit target menggunakan metode tensor network dan mendapatkan deskripsi akurat dari intermediate state yang akan didekati oleh ansatz Circuit. Setelah intermediate state ini ditemukan, ia digunakan sebagai fungsi biaya untuk mengoptimalkan parameter ansatz Circuit. Setelah optimasi selesai, sisa Circuit target ditambahkan ke ansatz dan kemudian dieksekusi di hardware kuantum.
Instal paket AQC-Tensorβ
Ada dua cara untuk menginstal paket AQC-Tensor: PyPI dan membangun dari source. Disarankan untuk menginstal paket-paket ini di virtual environment untuk memastikan pemisahan antar dependensi paket.
Instal dari PyPIβ
Cara paling mudah untuk menginstal paket AQC-Tensor adalah melalui PyPI. Untuk menggunakan paket ini, kamu juga harus menginstal setidaknya satu tensor network backend. Cuplikan kode berikut akan menginstal addon, bersama dengan quimb (untuk dukungan tensor network) dan jax (untuk diferensiasi otomatis). Jika tertarik, lihat paketnya di GitHub
pip install 'qiskit-addon-aqc-tensor[quimb-jax]'
Instal dari sourceβ
Klik di sini untuk membaca cara menginstal paket ini secara manual.
Jika kamu ingin berkontribusi ke paket ini atau ingin menginstalnya secara manual, pertama-tama clone repositorinya:
git clone git clone git@github.com:Qiskit/qiskit-addon-aqc-tensor.git
dan instal paketnya melalui pip. Jika kamu berencana menjalankan tutorial yang ada di repositori paket, instal juga dependensi notebook. Jika kamu berencana untuk mengembangkan di repositori, kamu mungkin juga ingin menginstal dependensi dev.
pip install tox jupyterlab -e '.[notebook-dependencies,dev]'
Latar Belakang Teoritisβ
Prosedur AQC-Tensor dijelaskan secara detail dalam [1]. Bagian ini memberikan gambaran umum tentang tekniknya.

Secara umum, AQC-Tensor membutuhkan tiga hal sebagai input:
- Deskripsi target state dalam bentuk tensor network. Ini bisa dihasilkan dengan mensimulasikan Circuit di simulator tensor network, atau bisa dihasilkan dengan cara lain (misalnya, dengan melakukan evolusi waktu pada matrix-product state menggunakan prinsip variasional bergantung waktu).
- Sebuah ansatz Circuit terparametrasi. Idealnya yang mengandung konektivitas yang efisien dari sisi hardware, sehingga akan memiliki kedalaman yang wajar di hardware target.
- Parameter awal untuk dimasukkan ke ansatz Circuit, sehingga state yang dihasilkan sudah merupakan aproksimasi yang bagus dari target state. (Ini secara prinsip tidak diwajibkan untuk AQC, tetapi membantu memberikan titik awal yang masuk akal bagi optimizer.)
Tekniknya adalah dengan mengoptimalkan parameter ansatz Circuit secara iteratif, sehingga state yang dihasilkannya sedekat mungkin dengan target state.
Pembuatan ansatzβ
Untuk menghasilkan (2) dan (3) dari daftar di atas, paket qiskit-addon-aqc memiliki fungsi generated_ansatz_from_circuit() yang menerima Circuit input dan menghasilkan ansatz terparametrasi beserta sekumpulan parameter awal. Parameter yang dikembalikan oleh fungsi ini sedemikian rupa sehingga, ketika dimasukkan ke ansatz, akan menghasilkan state yang persis setara dengan Circuit input, hingga phase global.
Ansatz yang dihasilkan oleh fungsi ini menggunakan 9 parameter per blok dua-Qubit dan didasarkan pada dekomposisi KAK, yang memparametrasi Gate dua-Qubit apa pun dalam tiga parameter, hingga rotasi satu-Qubit. Rotasi satu-Qubit kemudian didekomposisi sebagai , masing-masing memiliki tiga parameter. Ini menghasilkan ansatz Circuit yang mengandung 3 parameter untuk setiap blok dua-Qubit dari Circuit asli, ditambah 3 parameter untuk rotasi satu-Qubit keluar pada masing-masing dari dua Qubit (total 9 parameter). Setelah menambahkan blok-blok ini, ansatz dilengkapi dengan menambahkan lapisan rotasi satu-Qubit ke setiap Qubit aktif di awal Circuit.
Simulasi tensor networkβ
Untuk mendapatkan deskripsi target state yang diinginkan, addon ini menggunakan matrix product state (bentuk paling sederhana dari tensor network) dan mendukung simulator tensor network berikut:
- Simulator MPS yang ada di Qiskit Aer
- Simulator
CircuitMPSeager milik Quimb - Simulator
Circuitlazy milik Quimb
Parameter terpenting dari tensor network adalah dimensi bond maksimumnya, . Parameter ini membatasi seberapa banyak entanglement yang dapat direpresentasikan dengan tensor network, dan dengan demikian seberapa dalam sebuah Circuit tertentu dapat disimulasikan secara akurat.
Diberikan sebuah Circuit dengan Qubit, sebuah matrix-product state membutuhkan paling banyak dimensi bond untuk mensimulasikan Circuit secara tepat hingga kedalaman berapa pun. Ini tidak dapat dicapai untuk Circuit skala utilitas umum yang bekerja pada 100+ Qubit. Untuk alasan ini, jika kamu mencoba bereksperimen dengan addon ini untuk masalah kecil dengan sedikit Qubit, penting untuk memastikan . Dengan begitu, ketika kamu menskalakan masalah ke Circuit yang lebih besar, target state tetap dapat disimulasikan secara klasik.
Langkah selanjutnyaβ
- Baca halaman tentang memulai dengan AQC-Tensor
- Baca tutorial tentang menggunakan AQC untuk meningkatkan evolusi waktu Trotterized.
Referensiβ
[1] Robertson, Niall F., et al. "Approximate Quantum Compiling for Quantum Simulation: A Tensor Network based approach" arXiv preprint arXiv:2301.08609 (2023).