Lewati ke konten utama
Proyek ini masih dalam tahap beta. Menemukan bug? Buat isu GitHub. Punya pertanyaan atau ide? Tanya di Discussions — kami sangat menghargai masukan kamu!
Bagaimana kualitas terjemahan di halaman ini?

Reference state

Dalam pelajaran ini, kita akan mengeksplorasi bagaimana kita bisa menginisialisasi sistem kita dengan sebuah reference state untuk membantu algoritma variasional kita konvergen lebih cepat. Pertama, kita akan belajar cara membuat reference state secara manual, kemudian mengeksplorasi beberapa opsi standar yang bisa digunakan dalam algoritma variasional.

Diagram opsi untuk reference state termasuk default, spesifik-aplikasi, dan kuantum.

State default​

Reference state adalah titik awal tetap untuk masalah kita. Untuk mempersiapkan reference state, kita perlu menerapkan uniter URU_R yang sesuai dan non-terparameter di awal Circuit kuantum kita, sehingga ∣ρ⟩=UR∣0⟩|\rho\rangle = U_R |0\rangle. Jika kamu memiliki perkiraan yang beralasan atau titik data dari solusi optimal yang sudah ada, algoritma variasional kemungkinan besar akan konvergen lebih cepat jika kamu menggunakannya sebagai titik awal.

Reference state paling sederhana adalah state default, di mana kita menggunakan state awal dari Circuit kuantum nn-Qubit: ∣0⟩⊗n|0\rangle^{\otimes n}. Untuk state default, operator uniter kita UR≡IU_R \equiv I. Karena kesederhanaannya, state default adalah reference state yang valid dan digunakan dalam banyak skenario.

Reference state klasik​

Misalkan kamu memiliki sistem tiga-Qubit dan ingin memulai dalam state ∣001⟩|001\rangle alih-alih state default ∣000⟩|000\rangle. Ini adalah contoh reference state murni klasik, dan untuk membuatnya, kamu cukup menerapkan Gate X ke qubit 00 (mengikuti pengurutan qubit Qiskit), karena ∣001⟩=X0∣000⟩|001\rangle = X_0 |000\rangle.

Dalam kasus ini, operator uniter kita adalah UR≡X0U_R \equiv X_0, yang menghasilkan reference state ∣ρ⟩≡∣001⟩|\rho\rangle \equiv |001\rangle.

# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit": "qiskit"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit import QuantumCircuit

qc = QuantumCircuit(3)
qc.x(0)

qc.draw("mpl")

Output dari sel kode sebelumnya

Reference state kuantum​

Misalkan kamu bertujuan untuk memulai dengan state yang lebih kompleks yang melibatkan superposisi dan/atau entanglement, seperti 12(∣100⟩+∣111⟩)\frac{1}{\sqrt{2}}(|100\rangle+|111\rangle).

Untuk mendapatkan state ini dari ∣000⟩|000\rangle, salah satu pendekatannya adalah menggunakan Gate Hadamard pada qubit 00 (H0H_0), sebuah Gate CNOT (CX) dengan qubit 00 sebagai qubit kontrol dan qubit 11 sebagai qubit target (CNOT01CNOT_{01}), dan akhirnya Gate XX yang diterapkan ke qubit 22 (X2X_2).

Dalam skenario ini, operator uniter kita adalah UR≡X2CNOT01H0∣000⟩U_{R} \equiv X_2CNOT_{01}H_0|000\rangle, dan reference state kita adalah ∣ρ⟩≡12(∣100⟩+∣111⟩)|\rho\rangle \equiv \frac{1}{\sqrt{2}}(|100\rangle+|111\rangle).

qc = QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.x(2)

qc.draw("mpl")

Output dari sel kode sebelumnya

Membuat Reference State menggunakan Circuit template​

Kita juga bisa menggunakan berbagai Circuit template, seperti TwoLocal yang memudahkan kita menyatakan banyak parameter yang dapat diatur serta entanglement dengan mudah. Kita akan membahas Circuit template ini secara lebih detail di pelajaran berikutnya, tetapi kita bisa menggunakannya untuk reference state kita jika kita mengikat parameter-parameternya:

from qiskit.circuit.library import TwoLocal
from math import pi

reference_circuit = TwoLocal(2, "rx", "cz", entanglement="linear", reps=1)
theta_list = [pi / 2, pi / 3, pi / 3, pi / 2]

reference_circuit = reference_circuit.assign_parameters(theta_list)

reference_circuit.decompose().draw("mpl")

Output dari sel kode sebelumnya

Reference state spesifik-aplikasi​

Pembelajaran mesin kuantum​

Dalam konteks pengklasifikasi kuantum variasional (VQC), data pelatihan dikodekan ke dalam state kuantum dengan Circuit terparameter yang dikenal sebagai feature map, di mana setiap nilai parameter mewakili titik data dari dataset pelatihan. zz_feature_map adalah jenis Circuit terparameter yang bisa digunakan untuk meneruskan titik data kita (xx) ke feature map ini.

from qiskit.circuit.library import zz_feature_map

data = [0.1, 0.2]

zz_feature_map_reference = zz_feature_map(feature_dimension=2, reps=2)
zz_feature_map_reference = zz_feature_map_reference.assign_parameters(data)
zz_feature_map_reference.decompose().draw("mpl")

Output dari sel kode sebelumnya

Ringkasan​

Dengan pelajaran ini, kamu telah belajar cara menginisialisasi sistem menggunakan:

  • Reference state default

  • Reference state klasik

  • Reference state kuantum

  • Reference state spesifik-aplikasi

Beban kerja variasional tingkat tinggi kita terlihat seperti ini:

Diagram Circuit dari operator uniter yang mempersiapkan reference state.

Jika reference state merupakan titik awal yang tetap, kita bisa memakai sebuah variational form untuk mendefinisikan sebuah ansatz yang merepresentasikan kumpulan state terparameter yang akan dijelajahi oleh algoritma variasional kita.