Lumaktaw sa pangunahing nilalaman

Mga Reference State

Sa araling ito, tuklasin natin kung paano natin maaaring simulan ang ating sistema gamit ang isang reference state para makatulong sa mas mabilis na pag-converge ng ating variational algorithm. Una, matututo tayo kung paano manu-manong bumuo ng reference state, at pagkatapos ay tuklasin ang ilang karaniwang opsyon na magagamit sa isang variational algorithm.

Diagram ng mga opsyon para sa mga reference state kabilang ang default, application-specific, at quantum.

Default state​

Ang reference state ay tumutukoy sa paunang nakapirming simula para sa ating problema. Para maghanda ng reference state, kailangan nating ilapat ang angkop na hindi-parametrized na unitary na URU_R sa simula ng ating quantum circuit, kung saan ∣ρ⟩=UR∣0⟩|\rho\rangle = U_R |0\rangle. Kung mayroon kang magandang hula o datos mula sa isang umiiral na optimal na solusyon, malamang na mas mabilis na mag-converge ang variational algorithm kung gagamitin mo ito bilang panimulang punto.

Ang pinakasimple na reference state ay ang default state, kung saan ginagamit natin ang panimulang state ng isang nn-qubit quantum circuit: ∣0βŸ©βŠ—n|0\rangle^{\otimes n}. Para sa default state, ang ating unitary operator ay UR≑IU_R \equiv I. Dahil sa pagiging simple nito, ang default state ay isang valid na reference state na ginagamit sa maraming sitwasyon.

Classical reference state​

Ipagpalagay na mayroon kang three-qubit system at gusto mong magsimula sa state na ∣001⟩|001\rangle sa halip na sa default state na ∣000⟩|000\rangle. Ito ay isang halimbawa ng purong classical reference state, at para mabuo ito, kailangan mo lang mag-apply ng X gate sa qubit 00 (ayon sa qubit ordering ng Qiskit), dahil ∣001⟩=X0∣000⟩|001\rangle = X_0 |000\rangle.

Sa kasong ito, ang ating unitary operator ay UR≑X0U_R \equiv X_0, na nagbubunga ng reference state na βˆ£ΟβŸ©β‰‘βˆ£001⟩|\rho\rangle \equiv |001\rangle.

# 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")

Output of the previous code cell

Quantum reference state​

Ipagpalagay na layunin mong magsimula sa isang mas kumplikadong state na may kasamang superposition at/o entanglement, tulad ng 12(∣100⟩+∣111⟩)\frac{1}{\sqrt{2}}(|100\rangle+|111\rangle).

Para makuha ang state na ito mula sa ∣000⟩|000\rangle, ang isang paraan ay ang gumamit ng Hadamard gate sa qubit 00 (H0H_0), isang CNOT (CX) gate na may qubit 00 bilang control qubit at qubit 11 bilang target qubit (CNOT01CNOT_{01}), at sa wakas ay isang XX gate na inilapat sa qubit 22 (X2X_2).

Sa sitwasyong ito, ang ating unitary operator ay UR≑X2CNOT01H0∣000⟩U_{R} \equiv X_2CNOT_{01}H_0|000\rangle, at ang ating reference state ay βˆ£ΟβŸ©β‰‘12(∣100⟩+∣111⟩)|\rho\rangle \equiv \frac{1}{\sqrt{2}}(|100\rangle+|111\rangle).

qc = QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.x(2)

qc.draw("mpl")

Output of the previous code cell

Pagbuo ng mga Reference State gamit ang template circuits​

Maaari rin tayong gumamit ng iba't ibang template circuit, tulad ng TwoLocal na nagbibigay-daan sa pag-express ng maraming tunable parameter at entanglement nang madali. Tatalakayin natin ang mga template circuit na ito nang mas detalyado sa susunod na aralin, ngunit magagamit natin ang mga ito para sa ating mga reference state kung ibibind natin ang mga 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")

Output of the previous code cell

Mga application-specific reference state​

Quantum machine learning​

Sa konteksto ng isang variational quantum classifier (VQC), ang training data ay ine-encode sa isang quantum state gamit ang isang parametrized circuit na kilala bilang feature map, kung saan ang bawat halaga ng parameter ay kumakatawan sa isang data point mula sa training dataset. Ang zz_feature_map ay isang uri ng parametrized circuit na magagamit para ipasa ang ating mga data point (xx) sa feature map na ito.

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")

Output of the previous code cell

Buod​

Sa araling ito, natutunan mo kung paano simulan ang iyong sistema gamit ang:

  • Default reference state
  • Mga classical reference state
  • Mga quantum reference state
  • Mga application-specific reference state

Ganito ang hitsura ng ating mataas na antas na variational workload:

Isang circuit diagram ng isang unitary operator na naghahanda ng reference state.

Bagama't ang mga reference state ay nakapirming mga panimulang punto, maaari tayong gumamit ng variational form para tukuyin ang isang ansatz na kumakatawan sa isang koleksyon ng mga parametrized state para tuklasin ng ating variational algorithm.