Keadaan rujukan
Dalam pelajaran ini, kita akan meneroka bagaimana kita boleh memulakan sistem kita dengan keadaan rujukan bagi membantu algoritma variasi kita menumpu dengan lebih cepat. Pertama, kita akan belajar cara membina keadaan rujukan secara manual, kemudian meneroka beberapa pilihan standard yang boleh digunakan dalam algoritma variasi.
Keadaan lalai
Keadaan rujukan merujuk kepada titik permulaan tetap dan awal untuk masalah kita. Untuk menyediakan keadaan rujukan, kita perlu menerapkan unitary yang sesuai dan tidak berparameter pada permulaan litar kuantum kita, supaya . Jika Anda ada tekaan yang berpengetahuan atau titik data daripada penyelesaian optimum yang sedia ada, algoritma variasi kemungkinan besar akan menumpu lebih cepat jika Anda menggunakannya sebagai titik permulaan.
Keadaan rujukan yang paling mudah ialah keadaan lalai, di mana kita menggunakan keadaan permulaan litar kuantum -qubit: . Untuk keadaan lalai, operator unitary kita ialah . Disebabkan kesederhanaannya, keadaan lalai adalah keadaan rujukan yang sah dan digunakan dalam banyak senario.
Keadaan rujukan klasik
Katakan Anda mempunyai sistem tiga qubit dan Anda mahu bermula dalam keadaan dan bukannya keadaan lalai . Ini adalah contoh keadaan rujukan yang sepenuhnya klasik, dan untuk membinanya, Anda hanya perlu menerapkan get X pada qubit (mengikut susunan qubit Qiskit), kerana .
Dalam kes ini, operator unitary kita ialah , yang membawa kepada keadaan rujukan .
# 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")
Keadaan rujukan kuantum
Katakan Anda ingin bermula dengan keadaan yang lebih kompleks yang melibatkan superposisi dan/atau keterkaitan, seperti .
Untuk mendapatkan keadaan ini daripada , salah satu pendekatan ialah menggunakan get Hadamard pada qubit (), get CNOT (CX) dengan qubit sebagai qubit kawalan dan qubit sebagai qubit sasaran (), dan akhirnya get yang diterapkan pada qubit ().
Dalam senario ini, operator unitary kita ialah , dan keadaan rujukan kita ialah .
qc = QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.x(2)
qc.draw("mpl")
Membina Keadaan Rujukan menggunakan litar templat
Kita juga boleh menggunakan pelbagai litar templat, seperti TwoLocal yang membolehkan ungkapan pelbagai parameter boleh laras dan keterkaitan dengan mudah. Kita akan membincangkan litar templat ini dengan lebih terperinci dalam pelajaran seterusnya, tetapi kita boleh menggunakannya untuk keadaan rujukan kita sekiranya kita mengikat parameter:
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")
Keadaan rujukan khusus aplikasi
Pembelajaran mesin kuantum
Dalam konteks pengelas kuantum variasi (VQC), data latihan dikodkan ke dalam keadaan kuantum dengan litar berparameter yang dikenali sebagai peta ciri, di mana setiap nilai parameter mewakili titik data daripada set data latihan. zz_feature_map adalah sejenis litar berparameter yang boleh digunakan untuk menghantar titik data kita () kepada peta ciri 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, Anda telah belajar cara memulakan sistem Anda menggunakan:
- Keadaan rujukan lalai
- Keadaan rujukan klasik
- Keadaan rujukan kuantum
- Keadaan rujukan khusus aplikasi
Beban kerja variasi peringkat tinggi kita kelihatan seperti berikut:
Walaupun keadaan rujukan adalah titik permulaan tetap dan awal, kita boleh menggunakan bentuk variasi untuk mentakrifkan ansatz bagi mewakili koleksi keadaan berparameter untuk algoritma variasi kita terokai.