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
Reference state adalah titik awal tetap 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 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 -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 — 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")
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 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")
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:
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.