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 kamu ada tekaan yang berpengetahuan atau titik data daripada penyelesaian optimum yang sedia ada, algoritma variasi kemungkinan besar akan menumpu lebih cepat jika kamu 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 kamu mempunyai sistem tiga Qubit dan kamu mahu bermula dalam keadaan dan bukannya keadaan lalai . Ini adalah contoh keadaan rujukan yang sepenuhnya klasik, dan untuk membinanya, kamu hanya perlu menerapkan Gate 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 kamu ingin bermula dengan keadaan yang lebih kompleks yang melibatkan superposisi dan/atau keterkaitan, seperti .
Untuk mendapatkan keadaan ini daripada , salah satu pendekatan ialah menggunakan Gate Hadamard pada Qubit (), Gate CNOT (CX) dengan Qubit sebagai Qubit kawalan dan Qubit sebagai Qubit sasaran (), dan akhirnya Gate 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 Circuit templatβ
Kita juga boleh menggunakan pelbagai Circuit templat, seperti TwoLocal yang membolehkan ungkapan pelbagai parameter boleh laras dan keterkaitan dengan mudah. Kita akan membincangkan Circuit 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 Circuit berparameter yang dikenali sebagai peta ciri, di mana setiap nilai parameter mewakili titik data daripada set data latihan. zz_feature_map adalah sejenis Circuit 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, kamu telah belajar cara memulakan sistem kamu 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.