Lewati ke konten utama

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​

Sebuah reference state mengacu pada titik awal tetap awal 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 tebakan atau 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 β€” required packages for this notebook
!pip install -q qiskit
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 memungkinkan ekspresi beberapa parameter yang bisa diatur dan 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.

Sementara reference state adalah titik awal tetap yang telah ditetapkan, kita bisa menggunakan sebuah variational form untuk mendefinisikan sebuah ansatz untuk merepresentasikan kumpulan state terparameter bagi algoritma variasional kita untuk dieksplorasi.

Source: IBM Quantum docs β€” updated 15 Jan 2026
English version on doQumentation β€” updated 7 Mei 2026
This translation based on the English version of approx. 27 Mar 2026