Собственная параметризованная схема
Попробуйте построить собственную параметризованную квантовую схему, используя один из классов NLocal Circuits или Data Encoding Circuits библиотеки схем Qiskit в IBM Quantum Lab.
Варианты автора перед заданием: ZZFeatureMap для кодирования данных; TwoLocal с одно- и двухкубитными блоками; более общий NLocal. Полные исходные примеры:
from qiskit.circuit import QuantumCircuit, Parameter
theta = Parameter('θ')
qc = QuantumCircuit(2)
qc.rz(theta, 0)
qc.crz(theta, 0, 1)
qc.draw()
from qiskit.circuit import ParameterVector
theta_list = ParameterVector('θ', length=2)
qc = QuantumCircuit(2)
qc.rz(theta_list[0], 0)
qc.crz(theta_list[1], 0, 1)
qc.draw()
from qiskit.circuit.library import ZZFeatureMap
qc_zz = ZZFeatureMap(3, reps=1, insert_barriers=True)
qc_zz.decompose().draw()
from qiskit.circuit.library import TwoLocal
qc_twolocal = TwoLocal(num_qubits=3, reps=2, rotation_blocks=['ry','rz'],
entanglement_blocks='cz', skip_final_rotation_layer=True,
insert_barriers=True)
qc_twolocal.decompose().draw()
qc_13 = TwoLocal(3, rotation_blocks='ry',
entanglement_blocks='crz', entanglement='sca',
reps=3, skip_final_rotation_layer=True,
insert_barriers=True)
qc_13.decompose().draw()
from qiskit.circuit.library import NLocal
# rotation block:
rot = QuantumCircuit(2)
params = ParameterVector('r', 2)
rot.ry(params[0], 0)
rot.rz(params[1], 1)
# entanglement block:
ent = QuantumCircuit(4)
params = ParameterVector('e', 3)
ent.crx(params[0], 0, 1)
ent.crx(params[1], 1, 2)
ent.crx(params[2], 2, 3)
qc_nlocal = NLocal(num_qubits=6, rotation_blocks=rot,
entanglement_blocks=ent, entanglement='linear',
skip_final_rotation_layer=True, insert_barriers=True)
qc_nlocal.decompose().draw()Решения пока нет.