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.
State defaultβ
Sebuah reference state mengacu pada titik awal tetap awal untuk masalah kita. Untuk mempersiapkan reference state, kita perlu menerapkan uniter yang sesuai dan non-terparameter di awal Circuit kuantum kita, sehingga . 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 -Qubit: . Untuk state default, operator uniter kita . 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 alih-alih state default . Ini adalah contoh reference state murni klasik, dan untuk membuatnya, kamu cukup menerapkan Gate X ke Qubit (mengikuti pengurutan Qubit Qiskit), karena .
Dalam kasus ini, operator uniter kita adalah , yang menghasilkan reference state .
# 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")
Reference state kuantumβ
Misalkan kamu bertujuan untuk memulai dengan state yang lebih kompleks yang melibatkan superposisi dan/atau entanglement, seperti .
Untuk mendapatkan state ini dari , salah satu pendekatannya adalah menggunakan Gate Hadamard pada Qubit (), sebuah Gate CNOT (CX) dengan Qubit sebagai Qubit kontrol dan Qubit sebagai Qubit target (), dan akhirnya Gate yang diterapkan ke Qubit ().
Dalam skenario ini, operator uniter kita adalah , dan reference state kita adalah .
qc = QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.x(2)
qc.draw("mpl")
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")
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 () 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")
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:
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.