Lumaktaw sa pangunahing nilalaman

Ang eksperimento ng Stern-Gerlach gamit ang mga quantum computer

Para sa modyul na ito ng Qiskit in Classrooms, kailangan ng mga estudyante ng isang gumaganang Python environment na may naka-install na mga sumusunod na pakete:

  • qiskit v2.1.0 o mas bago
  • qiskit-ibm-runtime v0.40.1 o mas bago
  • qiskit-aer v0.17.0 o mas bago
  • qiskit.visualization
  • numpy
  • pylatexenc

Para i-set up at i-install ang mga paketeng nasa itaas, tingnan ang gabay na I-install ang Qiskit. Para makapag-patakbo ng mga trabaho sa tunay na mga quantum computer, kailangan ng mga estudyante na mag-set up ng account sa IBM Quantum® sa pamamagitan ng pagsunod sa mga hakbang sa gabay na I-set up ang iyong IBM Cloud account.

Ang modyul na ito ay nasubok at gumamit ng 2 segundo ng QPU time. Tantiya lamang ito. Ang iyong aktwal na paggamit ay maaaring mag-iba.

# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'

Panoorin ang walkthrough ng modyul ni Dr. Katie McCormick sa ibaba, o mag-click dito para mapanood ito sa YouTube.


Panimula

Noong unang bahagi ng 1900's, patuloy na dumarami ang katibayan ng quantized na pag-uugali sa antas ng mga atomo. Maraming matagumpay na interpretasyon ng datos tulad ng paliwanag ni Max Planck sa ultraviolet catastrophe, at mga eksperimento tulad ng ginawa nina Otto Stern at Walther Gerlach ang naging kritikal sa pagkukumbinsi sa mundo na kailangan ng isang sistema ng quantum mechanics, at na ang ilang mga pisikal na penomenon ay quantized. Sa kaso ng eksperimento ng Stern-Gerlach (naisip ni Stern noong 1921 at isinagawa nina Stern at Gerlach noong 1922), ang layunin ay suriin ang quantization ng angular momentum sa mga atomo.

Sa parehong panahon, isang kilalang modelo para sa atomo ang Bohr-Sommerfeld model, na isang extension ng Bohr model, at tulad ng Bohr model, hinulaan nito na ang mga elektron ay umiiral sa ilang mga quantized na orbit na katulad ng mga planeta na umiikot sa araw.

Diagram ng Bohr-Sommerfeld model. Isang sentral na tuldok ang kumakatawan sa nucleus ng isang atomo. Mga bilog o ellipse sa paligid ng puntong iyon ang kumakatawan sa mga atomic orbital, na mukhang katulad ng mga planetary orbit sa paligid ng araw. Ang mga orbit na may mas mataas na enerhiya ay mas malayo sa nucleus.

Kahit sa huli ay lumalabas na hindi sapat ang ganitong pagtrato para ipaliwanag ang quantum mechanical na pag-uugali ng atomo, sa pangkalahatan, hinulaan nito ang maraming napansin na penomenon, tulad ng mga diskretong spectral line ng mga atomo. Ang mga quantized na orbit ng mga elektron na may tiyak na mga enerhiya ay tumutugma sa mga quantized na halaga ng angular momentum. Ito ang orbital angular momentum na nastudyuhan nina Stern at Gerlach sa kanilang eksperimento, kahit na ang eksperimento ay naaangkop sa anumang uri ng quantized angular momentum, kabilang ang spin. Madalas mong marinig ang eksperimento ng Stern-Gerlach na inilalapat sa mga spin. Ang pokus ng orihinal na eksperimento ay nasa orbital angular momentum lamang dahil si George Uhlenbeck at Samuel Goudsmit ay hindi pa mag-tteorya ng pag-iral ng spin hanggang 1925.

Anuman ang uri ng angular momentum, ang isang karga na may angular momentum ay may magnetic moment. Sa klasikal na pagtrato ng orbital na paggalaw, inaasahan nating ang isang particle na may karga qq, masa mm at angular momentum L\vec{L} ay magkakaroon ng magnetic moment μ\mu na ibinibigay ng

μ=q2mL\vec{\mu} = \frac{q}{2m}\vec{L}

Lumabas na halos parehong pormula ang nananatili para sa quantum mechanical angular momentum, na may karagdagang numerical ratio na may kaugnayan sa uri ng angular momentum, tinatawag na g-factor gg. Kapag pinagsama ang iba't ibang uri ng angular momentum, o ginageneralize sa isang arbitrary na uri, madalas makita ang J\vec{J} na ginagamit sa halip na L\vec{L}, kaya isinusulat natin:

μ=gq2mJ\vec{\mu} = \frac{gq}{2m}\vec{J}

Para sa mga klasikal na bagay, g=1g=1. Para sa mga elektron, g2g\approx 2, at maraming iba't ibang halaga para sa iba't ibang mga nucleus at subatomic particle. Ang pangunahing punto dito ay ang quantized angular momentum ay nangangahulugang quantized na magnetic moment!

Ang magnetic moment na ito ay magkakaroon ng torque sa isang magnetic field:

τ=μ×B\vec{\tau}=\vec{\mu}\times \vec{B}

At magkakaroon ito ng puwersa sa isang magnetic field na may hindi-zerong gradient:

F=(μB)\vec{F} = \nabla(\vec{\mu}\cdot\vec{B})

Madalas naming isasaalang-alang ang ekspresyon sa itaas nang isa-isang component, kaya maaaring maging kapaki-pakinabang na isipin ang zz-component nito:

Fz=μzdBzdzF_z = \mu_z \frac{dB_z}{dz}

Sa pamamagitan ng pagsasama ng mga ekspresyon, makukuha natin

Fz=gq2mdBzdzJzF_z = \frac{gq}{2m} \frac{dB_z}{dz} J_z

Hindi alam nina Stern at Gerlach ang gg factor, ngunit kahit kasama ito sa ekspresyon, mayroon tayong puwersang katumbas ng ilang kilala o nasusukat na mga constant na pinarami ng angular momentum. Kaya gamit ang isang magnetic field na may kilalang gradient, at sinusukat ang deflection ng isang particle habang dumadaan ito sa field, dapat tayong makakuha ng impormasyon tungkol sa angular momentum. Ito ang kakanyahan ng eksperimento ng Stern-Gerlach.

Mga silver atom na dumadaan sa isang inhomogeneous magnetic field, at nide-deflect pataas o pababa depende sa kanilang spin. Sa klasikal, inaasahan nating makakakita ng tuluy-tuloy na distribusyon sa screen, ngunit sa eksperimento ay dalawang natatanging tuldok ang nakikita natin.

Fig. Eksperimento ng Stern–Gerlach[1]: Mga silver atom na dumadaan sa isang inhomogeneous magnetic field, at nide-deflect pataas o pababa depende sa kanilang spin. Sa klasikal, inaasahan nating makakakita ng tuluy-tuloy na distribusyon sa screen, ngunit sa eksperimento ay dalawang natatanging tuldok ang nakikita natin.

Ang mga neutral na silver atom ay pinainit sa isang hurno. Habang dumadaloy ang isang beam ng mga silver atom mula sa hurno, ginamit ang mga beam collimator para pumili lamang ng mga atom na naglalakbay malapit sa gitna ng inhomogeneous magnetic field. Siyempre, ang ilang mga atom ay medyo lumihis sa kaliwa o kanan, at nakakaranas ng mas mahinang gradient sa field, o wala ni anumang gradient. Kaya, hindi kami labis na nababahala sa pag-uugali ng mga atom na malayo sa kaliwa o kanan. Interesado kami sa nangyayari sa mga atom na naglalakbay sa gitna ng channel, kung saan ang magnetic field gradient ay magbubunga ng puwersang nag-de-deflect ng mga atom sa zz-direksyon lamang.

Ano ang inaasahan natin, sa klasikal?

Paano mag-uugali ang mga atom na ito kung sila ay katulad ng malalaki, klasikal na mga magnet? Maaari mong gawin ang eksperimento. Isipin ang pagpapaputok ng maliliit na neodymium magnet sa tabi ng isang malaki, malakas na magnet. Ang oryentasyon ng maliliit na mga magnet ay random. Ngunit habang dumadaan sila sa malapit sa malaking magnet, mabilis silang nag-o-orient muli para mag-align sa field, at naakit sa malaking magnet. Karamihan sa maliliit na magnet ay nide-deflect patungo sa malaking magnet. Ang napaka-maingat na tagamasid ay maaaring magtanong, "Paano naman ang conservation of energy?"

Sa katunayan, ang isang magnetic moment sa isang panlabas na magnetic field ay may kaugnay na potential energy:

U=μB=μBcos(θ)U = -\vec{\mu}\cdot \vec{B} = -\mu B \cos(\theta)

Kaya, kung ang isang magnetic moment ay mag-rotate sa panlabas na magnetic field, magkakaroon ng pagbabago ng enerhiya na ibinibigay ng:

ΔU=UfUi=μB(cos(θf)cos(θi)).\Delta U = U_f - U_i = -\mu B (\cos(\theta_f) - \cos(\theta_i)).

Sa espesyal na kaso ng isang maliit na magnet na perpektong anti-aligned sa panlabas na field na bumabaligtad at nag-aalign dito, tumutugon ito sa isang pagbaba ng potential energy:

ΔU=UfUi=μB(cos(0)cos(π))=2μB.\Delta U = U_f - U_i = -\mu B (\cos(0) - \cos(\pi)) = -2\mu B.

Kaya saan napupunta ang enerhiyang iyon? Ang isang klasikal na magnet tulad ng isang maliit na neodymium refrigerator magnet ay may maraming particle at maaaring mag-dissipate ng halos anumang dami ng enerhiya bilang init. Ang mga paunang at panghuling anggulo sa pagitan ng magnetic moment at ng panlabas na magnetic field ay maaaring maging anuman, at hindi bababa sa paunang oryentasyon ay magiging random. Kaya ang ibang dami ng enerhiya ay didi-dissipate bilang init para sa bawat maliit na magnet. Ngunit klasikal na walang problema dito, dahil ang isang ensemble ng mga klasikal na particle ay maaaring mag-dissipate ng anumang dami ng enerhiya bilang init.

Ano ang inaasahan natin kapag inilapat ang klasikal na pag-iisip sa antas ng mga atomo?

Hindi bababa sa, hindi ito pareho para sa mga magnet sa antas ng atomo, dahil mas kaunti ang mga particle na sangkot, mas kaunti ang mga degrees of freedom kung saan maaaring mag-dissipate ng enerhiya. Ang mga panukala ng maagang quantum mechanics ay nagmungkahi pa na ang enerhiyang maaaring masipsip ng isang indibidwal na particle, tulad ng elektron, ay magiging quantized, ibig sabihin ang isang elektron ay maaari lamang sumipsip ng ilang tiyak na dami ng enerhiya. Dahil ang mga random na paunang oryentasyon ay mangangailangan ng pag-dissipate ng mga random na dami ng enerhiya, hindi ito dapat posible para sa isang sistema na may mga quantized na energy level. Ang labis na enerhiya ay hindi maaaring i-dissipate bilang init. Kaya ano ang mangyayari sa halip?

Suriin ang iyong pag-unawa

Basahin ang mga tanong sa ibaba, mag-isip tungkol sa iyong mga sagot, pagkatapos ay mag-click sa mga tatsulok para makita ang mga solusyon.

Ipaliwanag kung ano sa tingin mo ang mangyayari sa sitwasyong tulad ng inilarawan sa itaas. Iyon ay, mayroon kang isang atomically maliit na magnet na hindi maaaring mag-dissipate ng anumang enerhiya bilang init. Kaya, anumang paunang magnetic potential energy ay dapat manatili sa sistema. Gayunpaman, ang isang torque ay inilalapat ng isang panlabas na magnetic field, na sumusubok na i-rotate ang maliit na magnet para mag-align sa panlabas na field. Ano ang mangyayari?

Sagot:

Ang maliit na magnetic moment ay mag-ro-rotate patungo sa pag-align sa panlabas na field. Ngunit kapag pansamantalang nag-align ito, magkakaroon ito ng rotational kinetic energy na magpapatuloy sa pag-rotate nito lampas sa field at pabalik sa hindi pag-align. Ang pag-uugaling ito ay makikita rin sa malalaking klasikal na magnet. Ngunit sa mga klasikal na sistemang iyon, ang pag-oscillate ng maliit na magnetic moment ay humihinto sa kalaunan habang ang enerhiya ay dini-dissipate bilang init. Ngunit sa isang sistema na walang ganoong dissipative na mekanismo, ang pag-oscillate ay dapat magpatuloy nang walang katapusan.

Dahil sa pag-uugaling inaasahan sa sagot sa itaas, anong distribusyon ng mga magnetic particle ang inaasahan mong makita sa screen?

Sagot:

Ang isang maayos na distribusyon mula sa ilang pinakamataas na deflection patungo sa mas malakas na gilid ng magnetic field (ang mga particle na nagkataong nagsimulang naka-align sa panlabas na field) hanggang sa ilang pinakamataas na deflection patungo sa mas mahinang gilid ng field (ang mga particle na nagsimulang anti-aligned sa panlabas na field), at bawat deflection sa pagitan, na tumutugon sa bawat paunang oryentasyon sa pagitan ng mga extrema na iyon.

Diagram ng isang beam ng mga particle na dumadaan sa isang magnet. Sila ay nide-deflect sa iba't ibang antas kasabay ng direksyon ng magnetic field. Kaya kapag tumama sila sa isang malalayong screen, bumubuo sila ng isang linya.

Ano ang huhulaan ng quantum mechanics?

Marahil ang pinaka-kakaibang posibilidad sa lahat ay ang sumusunod: Paano kung ang angular momentum ng elektron ay quantized, ngunit pati na rin ang proyeksyon nito sa ilang axis ay quantized din? Ang quantization ng angular momentum bilang isang magnitude ay kawili-wili, ngunit maaari itong subukang ipaliwanag gamit ang klasikal na intuisyon, sa paraan na ang mga planetary orbit ay nag-settle sa mga naayos na landas na hindi nagtatawid sa isa't isa, na may ilang pinapayagang angular momenta lamang. Ngunit paano kung ang angular momentum vector na iyon ay maaari lamang tumuro nang eksakto kasabay ng zz o eksakto laban sa zz, ngunit hindi magkaroon ng anupamang component kasabay ng zz? Paano kung kapag sinukat sa ibang direksyon, ang vector ay maaari lamang tumuro nang buo kasabay ng xx o buo laban sa xx, at wala sa pagitan? Magiging kakaiba iyon sa isang paraan na nilalabanan ang lahat ng klasikal na intuisyon.

Suriin ang iyong pag-unawa

Basahin ang tanong sa ibaba, mag-isip tungkol sa iyong sagot, pagkatapos ay mag-click sa tatsulok para makita ang solusyon.

Anong uri ng distribusyon ng mga particle sa screen ang inaasahan mong mahanap sa huling kaso na ito, kung saan ang proyeksyon ng angular momentum kasabay ng direksyon ng field ay quantized? Huwag mag-alinlang na isaalang-alang lamang ang mga particle na perpektong dumadaan sa gitna ng device, o isama ang mga medyo lumilihis sa gilid kung saan ang gradient ay mas mahina. Maging maliwanag lamang.

Sagot:

Ang mga particle sa gitna ng device ay makakaranas ng isang inhomogeneous field at lahat ay susukat na may isa sa dalawang oryentasyon ng kanilang mga magnetic moment. Kaya, sila ay alinman ay ma-deflect nang pinakamataas kasabay ng gradient o pinakamataas laban sa gradient, at wala sa pagitan. Siyempre, sa magkabilang gilid, kung saan ang gradient ay mas mahina, ang deflection ay mas maliit. Sa napaka-malalaking lateral na posisyon, maaari silang ganap na nasa labas ng gradient, at maaari lamang magkaroon ng isang rehiyon ng mga hindi nai-deflect na particle.

Diagram ng isang beam ng mga particle na nide-deflect pataas o pababa, tumatama sa isa sa dalawang tuldok sa isang screen, na walang mga particle sa pagitan ng dalawang maxima na ito

Paano makakatulong ang mga qubit sa atin para masubok ito?

Karamihan sa mga quantum computer ay gumagamit ng "mga qubit" — ang quantum analog ng mga klasikal na bit. Mas tiyak, idinisenyo sila para maging mga two-level system, katulad ng "on"/"off" na mga estado ng mga klasikal na bit. Ang mga quantum computing paradigm ay mayroon din na gumagamit ng mga three-level system (tinatawag na "mga qutrit") o marami-level na sistema (tinatawag na "mga qudit"). Ngunit karamihan sa gawain ay nakatuon sa mga qubit. Sa partikular, ang mga IBM® quantum computer ay gumagamit ng tinatawag na fixed-frequency transmon qubit. Ang mga ito ay medyo naiiba mula sa orbital o spin angular momentum ng mga atomo. Ngunit tulad ng spin ng isang elektron, ang mga IBM® qubit ay mga quantum mechanical na sistema na maaaring makipag-interact sa liwanag at kung saan maaaring gumawa ng mga sukat. Sa katunayan, madalas makakita ng mga analohiya na ginagawa sa pagitan ng mga estado ng quantum mechanical spin at mga computational na estado ng isang qubit. Halimbawa, madalas makita ang "spin-up" na estado na nauugnay sa computational 0 na estado, at "spin-down" na nauugnay sa computational 1 na estado:

0|\uparrow\rangle \sim |0\rangle 1|\downarrow \rangle \sim |1\rangle

Maaari tayong gumamit ng mga pagkakatulad na ito para mapansin ang quantum mechanical na pag-uugali sa mga IBM quantum computer na ginagaya ang quantum mechanical na pag-uugali ng orbital o spin angular momentum sa mga atomo. Gagawa tayo ng mga katulad na obserbasyon gamit ang mga linear combination ng mga estadong ito na nagpapahintulot sa atin na palawakin ang talakayan sa angular momentum sa anumang direksyon.

Unang eksperimento: Isang sukat

Sa unang eksperimentong ito at sa buong modyul, gagamitin natin ang isang framework para sa quantum computing na kilala bilang "Qiskit patterns", na hinahati ang mga workflow sa mga sumusunod na hakbang:

  • Hakbang 1: I-map ang mga klasikal na input sa isang quantum problem
  • Hakbang 2: I-optimize ang problema para sa quantum execution
  • Hakbang 3: Mag-execute gamit ang Qiskit Runtime Primitives
  • Hakbang 4: Post-processing at klasikal na pagsusuri

Sa pangkalahatan susundin natin ang mga hakbang na ito, kahit na hindi natin palagi itong malinaw na lalabelin.

Hakbang 1: I-map ang mga klasikal na input sa isang quantum problem

Dito, ang mga klasikal na input ay mga oryentasyon ng isang spin bago ang sukat sa isang Stern-Gerlach device. Huwag mag-alala nang sobra tungkol sa eksaktong kalikasan ng quantum state bago ang sukat. Iyon ang paksa ng ibang modyul ng Qiskit Classrooms, sa Bell's theorem.

Pansinin na ang mga IBM quantum computer ay sumusukat ng mga estado kasabay ng zz axis. Kaya ang unang eksperimentong ito ay magiging katulad ng eksperimento ng Stern-Gerlach na may magnetic field gradient kasabay ng zz. Makikita natin kung paano baguhin ang sistema para sumukat sa iba't ibang direksyon, sa kalaunan.

Magsimula tayo sa pamamagitan ng paggawa ng analog ng isang spin state, iyon ay, ilang halo ng |\uparrow\rangle at |\downarrow\rangle o katumbas ng 0|0\rangle at 1|1\rangle. Nagmungkahi kami ng ilang paunang halaga. Ngunit huwag mag-alinlang na maglaro ng iba pang mga halaga o maging mga random na halaga.

import random
from numpy import pi
import numpy as np

# Use these lines to choose your own arbitrary state vector and normalize it.
# a = 2
# b = (1+1j)
# norm = np.sqrt(a*np.conjugate(a)+b*np.conjugate(b))
# a = a/norm
# b = b/norm
# print(a,b)

# Use these lines if you would rather look at at random spin orientations.
a = random.random()
b = random.random()
norm = np.sqrt(a * np.conjugate(a) + b * np.conjugate(b))
a = a / norm
b = b / norm
print(a, b)
0.7032089086145691 0.7109832845047109

Ngayon ay gagamitin natin ang mga anggulo sa itaas bilang mga parameter sa isang quantum circuit. Isinasaalang-alang natin ang isang particle lamang sa isang pagkakataon, kaya gagamit tayo ng isang qubit lamang sa ating circuit, at kakailanganin lamang natin ng isang klasikal na register.

from qiskit.circuit import QuantumRegister, ClassicalRegister, QuantumCircuit, Parameter

# Define registers
qr = QuantumRegister(1, "q")
cr = ClassicalRegister(1, "c")
qc = QuantumCircuit(qr, cr)

# Initialize the quantum state
qc.initialize([a, b])
qc.measure(0, 0)
qc.draw("mpl")

Output ng nakaraang code cell

Hakbang 2: I-optimize ang problema para sa quantum execution

Para patakbuhin ang ating eksperimento sa isang tunay na quantum computer, kailangan nating i-load ang Qiskit Runtime Service, at pumili ng isang quantum computer (o isang "backend"). Sa ibaba, pinipili natin ang pinaka-hindi abala na quantum computer na available sa atin.

May code sa ibaba para sa pag-save ng iyong mga kredensyal sa unang paggamit. Tiyakin na tanggalin ang impormasyong ito mula sa notebook pagkatapos itong i-save sa iyong environment, para hindi aksidenteng ibahagi ang iyong mga kredensyal kapag ibinabahagi mo ang notebook. Tingnan ang I-set up ang iyong IBM Cloud account at I-initialize ang service sa isang hindi pinagkakatiwalaang environment para sa karagdagang gabay.

# Load the Qiskit Runtime service
from qiskit_ibm_runtime import QiskitRuntimeService

# Syntax for first saving your token. Delete these lines after saving your credentials.
# QiskitRuntimeService.save_account(channel='ibm_quantum_platform', instance = '<YOUR_IBM_INSTANCE_CRN>', token='<YOUR-API_KEY>', overwrite=True, set_as_default=True)
# service = QiskitRuntimeService(channel='ibm_quantum_platform')

# Syntax for specifying a channel and instance (if you need to change from the default set above)
# service = QiskitRuntimeService(channel='<channel name here>', instance="<your instance name here>")

# Load saved credentials
service = QiskitRuntimeService()
# Load the Runtime primitive and session
from qiskit_ibm_runtime import Session, SamplerV2 as Sampler

# Use the least busy backend, specify options as needed
# backend = service.least_busy(operational=True, simulator=False, min_num_qubits = 127)
backend = service.least_busy()
print(backend.name)
ibm_sherbrooke

Kailangan na nating i-transpile ang circuit, ibig sabihin kailangan nating i-map ang ating circuit sa mga base gate na available sa ating piniling quantum computer, at gusto nating i-optimize ang ating circuit para sa pagpapatakbo sa quantum computer na iyon.

# Transpile the circuit and optimize for running on the quantum computer selected
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager

pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
qc_ibm = pm.run(qc)

Hakbang 3: Mag-execute gamit ang Qiskit Runtime Primitives

Ngayon gusto naming patakbuhin ito sa isang tunay na quantum computer. Lahat ng kinakailangang syntax para doon ay nasa code block sa ibaba. Kung naubos mo na ang iyong naka-allot na oras sa mga tunay na quantum computer, o kung wala kang koneksyon sa internet, maaari mong i-uncomment ang susunod na code block, na magpapatakbo ng code sa isang lokal na simulator.

# Specify that we want to use only a single shot, to represent a single measurement of a spin in a SG device.
num_shots = 1

# Evaluate the problem using a QPU via Qiskit IBM Runtime
# The best practice is to use a session as shown below. This is available to Premium Plan, Flex Plan, and On-Prem (IBM Quantum Platform API) Plan users.
with Session(backend=backend) as session:
sampler = Sampler(mode=session)
dist = sampler.run([qc_ibm], shots=num_shots).result()
session.close()
counts = dist[0].data.c.get_counts()

# Open users can still carry out this experiment, but without making use of a session, meaning repeated queuing is possible.
# from qiskit_ibm_runtime import Batch,
# batch = Batch(backend=backend)
# sampler = Sampler(mode=batch)
# dist = sampler.run([qc_ibm], shots=num_shots).result()
# Close the batch because no context manager was used.
# batch.close()
# counts = dist[0].data.c.get_counts()

Gamitin ang code sa ibaba kung hindi ka makakapagpatakbo ng eksperimento sa isang tunay na quantum computer.

# This uses a local simulator
# from qiskit_aer import AerSimulator

# This generates a simulator that mimics the real quantum system
# backend_sim = AerSimulator.from_backend(backend)

# Import an estimator, this time from qiskit (we import from Runtime for real hardware)
# from qiskit.primitives import BackendSamplerV2
# sampler = BackendSamplerV2(backend = backend_sim)

# num_shots = 1

# This runs the job
# dist = sampler.run([qc_ibm], shots = num_shots).result()

# This selects measurement counts for the 0th circuit, which in this case is the only circuit
# counts=dist[0].data.c.get_counts()

Hakbang 4: Post-processing at klasikal na pagsusuri

Para sa napaka-simpleng eksperimentong ito, ang klasikal na pagsusuri ay binubuo lamang ng pag-visualize ng resulta ng eksperimento.

from qiskit.visualization import plot_histogram

print("counts = ", counts)
plot_histogram(counts)
counts =  {'0': 1}

Output ng nakaraang code cell

Gumawa kami ng isang sukat at nakakuha ng "0". Hindi ito nagulat sa amin. Alam natin na gumagamit tayo ng isang quantum computer na binubuo ng mga qubit at sanay na tayo sa mga klasikal na bit na nagbabalik ng 0 o 1. Ngunit tandaan: ito ang quantum computing analog ng mga eksperimentong ginawa sa mga particle na may mga magnetic moment. Kung inaasahan nating pantay na spread sa pagitan ng 0 at +1, maaaring talagang nagulat tayo na nakakuha tayo ng isang extremum sa ating unang sukat. Ito ang nakagulat na quantization ng mga resulta sa eksperimento ng Stern-Gerlach na humantong sa atin sa mas malalim na pag-unawa sa kalikasan, at na sa kalaunan ay nakatulong sa atin na magtayo ng mga quantum computer.

Tingnan natin kung ano ang mangyayari kapag gumawa tayo ng isang ensemble ng mga sukat.

Ikalawang eksperimento: Pagsukat ng maraming particle

Para makakuha ng mga istatistika sa maraming ganoong mga sukat, hindi natin kailangang ulitin ang mga hakbang 1 at 2. Maaari tayong simpleng taasan ang bilang ng mga shot sa ating eksperimento. Huwag mag-alinlang na maglaro sa bilang ng mga shot sa instance ng hakbang 3 sa ibaba.

from qiskit_ibm_runtime import Session, SamplerV2 as Sampler

num_shots = 100

# Evaluate the problem using a QPU via Qiskit IBM Runtime
# The best practice is to use a session as shown below. This is available to Premium Plan, Flex Plan, and On-Prem (IBM Quantum Platform API) Plan users.
with Session(backend=backend) as session:
sampler = Sampler(mode=session)
dist = sampler.run([qc_ibm], shots=num_shots).result()
session.close()
counts = dist[0].data.c.get_counts()

# Open users can still carry out this experiment, but without making use of a session, meaning repeated queuing is possible.
# batch = Batch(backend=backend)
# sampler = Sampler(mode=batch)
# dist = sampler.run([qc_ibm], shots=num_shots).result()
# Close the batch because no context manager was used.
# batch.close()
# counts = dist[0].data.c.get_counts()

Tulad ng dati, kung hindi ka makakapagpatakbo sa isang tunay na quantum computer, i-uncomment ang block sa itaas mula sa unang eksperimento, at baguhin lamang ang num_shots = 1 sa num_shots = 100 o higit pa.

plot_histogram(counts)

Output ng nakaraang code cell

Nakikita nating minsan ay sumusukat tayo ng 0 at minsan ay sumusukat tayo ng 1. Pansinin na hindi tayo sumusukat ng anumang iba pa! Maaari mong baguhin ang bilang ng mga shot, at mapansin na ang probabilidad ng pagsukat ng 0 o 1 ay tila medyo pare-pareho sa pagitan ng iba't ibang mga run na may iba't ibang bilang ng mga shot. Kaya, ang isang bagay tungkol sa paghahanda ng estado ay tila nagtatakda ng probabilidad ng mga resulta ng sukat, kahit na ang anumang isang sukat ay maaaring magbunga ng alinman sa 0 o 1.

Ikatlong eksperimento: Mga random na spin mula sa isang oven

Sa eksperimento ng Stern-Gerlach, hindi pinili ng mga mananaliksik kung sa anong anggulo lalabas ang vector ng angular momentum mula sa oven. Random ang mga oryentasyon (o may mas misteryosong dahilan! Tingnan ang Qiskit Classroom module tungkol sa Bell's theorem). Ang makatwirang katumbas ng eksperimentong iyon ay ang random na pagsisimula ng mga estado ng ating qubit at ang paulit-ulit na pagsukat.

Hakbang 1: I-map ang mga classical na input sa isang quantum na problema

Ang Circuit na gusto nating buuin ay katulad ng dati. Ang pagkakaiba lamang ay sa pagkakataong ito, bubuuin natin ang Circuit gamit ang mga gate na may libreng parameter na θ\theta at ϕ\phi. Ang mga numerong halaga ng mga parameter na iyon ay itatakda para sa bawat bagong takbo.

# from qiskit.circuit import QuantumCircuit, Parameter

theta = Parameter("θ")
phi = Parameter("$\phi$")

# Define registers
qr = QuantumRegister(1, "q")
cr = ClassicalRegister(1, "c")
qc = QuantumCircuit(qr, cr)

# Add rotation gates for rotating the state of qubit 0 to random orientations
qc.rx(theta, 0)
qc.rz(phi, 0)
qc.measure(0, 0)

qc.draw("mpl")

Output of the previous code cell

Ang pagpapatakbo ng isang quantum circuit para sa isang shot lamang at paggawa nito nang maraming beses para sa iba't ibang random na kumpigurasyon ay hindi karaniwang daloy ng trabaho para sa isang quantum computer. Magagawa ito nang tiyak, ngunit para sa kaginhawahan, gagamit tayo ng lokal na simulator dito.

# This uses a local simulator
from qiskit_aer import AerSimulator

# Import an estimator, this time from qiskit (we import from Runtime for real hardware)
from qiskit.primitives import BackendSamplerV2

# This generates a simulator that mimics the real quantum system
backend_sim = AerSimulator.from_backend(backend)
sampler_sim = BackendSamplerV2(backend=backend_sim)

# from qiskit.primitives import BackendSamplerV2
# sampler = BackendSamplerV2(backend=backend)
# A list to store the accumulated probabilities of the two possible measurement outcomes.
probslist = {"0": 0.0, "1": 0.0}

# Choose how many "particles"/measurements
measurements = 100
num_shots = 1

for i in range(measurements):
# Assign a random orientation for each measurement
phi = random.random() * 2 * pi
theta = random.random() * 2 * pi

angles = [phi, theta]
circuit = qc.assign_parameters(angles)
qc_ibm = pm.run(circuit)

# Run the circuit
# job = sampler.run([circuit],num_shots = 1)
dist = sampler_sim.run([qc_ibm], shots=num_shots).result()

# Update the list of probabilities
zeroterm = dist[0].data.c.get_counts().get("0") or 0
oneterm = dist[0].data.c.get_counts().get("1") or 0
probslist.update({"0": probslist.get("0") + zeroterm})
probslist.update({"1": probslist.get("1") + oneterm})

probslist.update({"0": probslist.get("0") / measurements})
probslist.update({"1": probslist.get("1") / measurements})
# print(probslist)
plot_histogram(probslist)

Output of the previous code cell

Kaya nakikita natin na ang random na paunang estado ng mga qubit (na katumbas ng random na oryentasyon ng angular momentum sa isang eksperimento ng Stern-Gerlach) ay nagbubunga ng halos pantay na bilang ng mga estado na 0 at 1 (tulad ng halos pantay na bilang ng mga estado ng spin up at spin down). Ito mismo ang ipinakita ng orihinal na eksperimento ng Stern-Gerlach.

Ikaapat na eksperimento: Paulit-ulit na pagsukat

Kapag nagsimula ang isang qubit sa isang random na estado, makikita natin na humigit-kumulang 50-50 ang tsansa ng pagsukat ng isang extremum kaysa sa isa. Ngunit ano ang mangyayari sa estado ng qubit (o sa angular momentum ng particle) pagkatapos ng pagsukat? Para masagot iyon, kailangan nating tumukoy ng Circuit na nagbibigay-daan sa atin na gumawa ng maraming pagsukat ng parehong mga qubit. Tukuyin natin ang isang Circuit na magagamit natin upang siyasatin ito. Gusto naming payagan ang posibilidad ng pagsukat ng parehong estado na 0|0\rangle at 1|1\rangle, kaya kailangan nating may bagay na mag-iikot sa paunang estado ng qubit mula sa default na estado na 0|0\rangle. Sa kasong ito, gagamit tayo ng hadamard gate na HH, dahil H0=12(0+1)H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle). Tandaan na, bilang default, ang parehong pagsukat na ito ay magiging nasa zz.

from qiskit import QuantumCircuit

# Define registers
qr = QuantumRegister(1, "q")
cr = ClassicalRegister(2, "c")
qc = QuantumCircuit(qr, cr)

# Initialize the qubit to be a mixture of 0 and 1 states.
qc.h(0)

# Add a first measurement
qc.measure(0, 0)
qc.barrier()

# Add a second measurement
qc.measure(0, 1)

qc.draw("mpl")

qc_ibm = pm.run(qc)
# Step 3: Run the job

num_shots = 1000
dist = sampler.run([qc_ibm], shots=num_shots).result()
# To run on a simulator, uncomment the line below and comment out the line above.
# dist = sampler_sim.run([qc_ibm], shots=num_shots).result()
counts = dist[0].data.c.get_counts()
print(counts)
{'00': 497, '11': 498, '01': 3, '10': 2}
# Step 4: Post-process
plot_histogram(counts)

Output of the previous code cell

Sa figure sa itaas, ang mga bin ay may label na "00", "01", at iba pa. Dito, ang mga numerong ito ay tumutukoy sa "ika-2 kinalabasan, ika-1 kinalabasan". Kaya ang "00" ay nangangahulugang parehong pagsukat ay nagbunga ng estado na 0|0\rangle, at ang "01" ay nangangahulugang ang unang pagsukat ay nagbunga ng 1|1\rangle, at ang pangalawa ay nagbunga ng 0|0\rangle. Ang napakaraming qubit ay nasukat na dalawang beses sa 0|0\rangle, o dalawang beses sa 1|1\rangle. Bihirang masukat ang mga qubit sa isang estado at pagkatapos ay masukat sa ibang estado, at ang ilang kaso kung saan nangyari iyon (~1%) ay dahil sa ingay. Sa kasong ito, ang ingay na iyon ay ginaya upang makatugma sa gawi ng tunay na quantum system. Ang obserbasyon ng ugnayan sa pagitan ng mga magkakasunod na pagsukat ay napansin din sa mga Stern-Gerlach na uri ng pagsukat ng mga particle na may spin angular momentum. Kung ang isang particle ay nasukat na "spin-up", ang kasunod na pagsukat matapos ang maikling sandali ay magbubunga muli ng "spin-up" (maliban sa maliit na pagbabago dahil sa ingay).

Maaaring tila walang kabuluhan ito. Pagkatapos ng lahat, kung ang isang qubit ay nasukat na nasa isang estado, at pagkatapos ay sinusukat ko ito muli nang mabilis, bakit hindi na ito magiging nasa estadong iyon? Ngunit kung tunay na titingnan natin ang subtlety na ito, maaari itong makatulong sa atin na pumili ng mga kagamitang matematikal upang ilarawan ang penomenong ito.

Pagsusuri ng mga eksperimento hanggang ngayon

Pagsamahin natin ang ilang mga obserbasyon mula sa ating mga eksperimento hanggang ngayon:

  • Ang pagsukat ng isang quantum mechanical na sistema ay magbubunga lamang ng isa sa isang hanay ng "mga pinapayagang halaga". Para sa mga two-level system tulad ng mga qubit o spin-1/2 na particle, ang pagsukat ay magbubunga lamang ng isa sa dalawang binary na kinalabasan.
  • Kapag random nating sinisimulan ang estado ng ating binary na sistema (tulad ng mga spin-1/2 na particle na lumalabas mula sa isang oven), posible ang alinman sa dalawang binary na kinalabasan ng pagsukat.
  • Kapag nagawa na ang pagsukat at nalam na ang estado ng sistema, ang pag-uulit ng pagsukat ng parehong physical observable ay hindi nagbabago ng estado! Ibig sabihin, kung makuha natin ang estado na 0 nang isang beses, kapag sinukat natin muli ito ay nasa estado pa rin itong 0 (maliban sa maliit na ingay sa sistema na ~0.1% hanggang 1%).

Pansinin nang malinaw na hindi pa natin tinatalakay ang probabilistikong katangian ng quantum mechanics, ni wala pang sinasabi tungkol sa "pagbulusok" ng estado patungo sa isang eigenstate. Gamit lamang ang mga obserbasyon sa itaas, maaaring matukso tayong maghanap ng isang operasyong matematikal na OO na nag-iiwan ng ilang espesyal na hanay ng mga quantum mechanical na estado na ψ|\psi\rangle na hindi nagbabago maliban sa isang constant: Oψ=cψO|\psi\rangle = c|\psi \rangle, dahil ang pagsukat sa zz nang dalawang beses ay nagbubunga ng parehong resulta. Sa huli, ang paghahanap na iyon ay mabibigo sa paglalarawan ng lahat ng mga gawi na ating makikita. Ngunit maaari itong maglalarawan ng ilang bagay, kaya itutuloy pa natin ito nang kaunti.

May ganitong operasyon na talagang umiiral. Ang operasyon ng matrix sa ilang mga vector ay nagbabago ng mga vector, at ang operasyon ng matrix sa ibang mga vector (eigenvectors) ay nag-iiwan ng vector na hindi nagbabago maliban sa isang constant. Halimbawa, ang matrix na MM at ang vector na v|v\rangle kung saan

M=(1221)M= \begin{pmatrix} 1 & 2 \\ 2 & 1\end{pmatrix}

at

v=(11)|v\rangle = \begin{pmatrix} 1\\1 \end{pmatrix}

Pansinin na

Mv=(1221)(11)=(11+2121+11)=(33)=3v.M|v\rangle= \begin{pmatrix} 1 & 2 \\ 2 & 1\end{pmatrix}\begin{pmatrix} 1\\1 \end{pmatrix} = \begin{pmatrix} 1*1+2*1\\2*1+1*1 \end{pmatrix} = \begin{pmatrix} 3\\3 \end{pmatrix} = 3|v\rangle.

Ngunit para sa ibang mga vector, halimbawa v=(12)|v'\rangle = \begin{pmatrix} 1\\2\end{pmatrix}, mayroon tayo

Mv=(1221)(12)=(11+2221+12)=(54)cv.M|v'\rangle= \begin{pmatrix} 1 & 2 \\ 2 & 1\end{pmatrix}\begin{pmatrix} 1\\2 \end{pmatrix} = \begin{pmatrix} 1*1+2*2\\2*1+1*2 \end{pmatrix} = \begin{pmatrix} 5\\4 \end{pmatrix} \neq c|v'\rangle.

Maaari nating subukang ilarawan ang spin ng isang particle gamit ang isang matrix, at maaari nating subukang ilarawan ang mga estado ng mga particle pagkatapos ng pagsukat gamit ang isang vector, na tinatawag na "state vector". Hindi talaga malinaw kung anong mga halaga ang dapat ilagay sa naturang matrix o state vector, ngunit ang tanging katangian na mayroon tayo mula sa mga pagsukat na ginawa natin na maaaring gamitin upang ma-label ang mga estado ay ang probabilidad ng pagsukat ng 0 o 1 ("spin-up" o "spin-down" sa konteksto ng mga spin-1/2 na particle). Dapat nating isaalang-alang na ang mga entry sa mga state vector ay dapat na may kaugnayan sa probabilidad na ito (eksaktong probabilidad, "probability amplitude" — ibig sabihin, kinukuha natin ang parisukat ng entry upang makuha ang probabilidad, at iba pa). Ngunit sa puntong ito, hindi tayo sigurado kung ang mga entry sa mga matrix na ito ay dapat na talagang real, complex, o iba pa. Para maiwasan ang problema, subukan nating bumuo ng isang balangkas kung saan ang mga vector at matrix ay nakakatugon sa sumusunod:

  • Ang mga matrix operator ay kailangang maabot ang eksperimento hangga't maaari. Halimbawa, maaari nating iugnay ang mga eigenvalue ng isang spin matrix sa mga eksperimentong naobserbahang spin projection.
  • Ang mga state vector ay dapat na may kaugnayan sa probabilidad sa sumusunod na paraan: Kung ang isang particle ay nasa state vector na A|A\rangle, ang probabilidad na ang kasunod na pagsukat ay makakahanap ng particle sa estado na B|B\rangle ay PABAB2P_{AB}\equiv |\langle A| B \rangle|^2.

Nagbibigay ito sa atin ng maraming kalayaan sa pagbuo ng ating unang mga matrix. Halimbawa, maaari nating naively subukang

0(10).|0\rangle \sim |\uparrow\rangle \sim \begin{pmatrix} 1 \\0 \end{pmatrix}.

Dito, ang 0|0\rangle \sim |\uparrow\rangle ay nangangahulugang may mga estado sa mga quantum computer at sa mga spin-1/2 na sistema na magkatulad at madalas na iniuugnay sa isa't isa. Hindi sila eksaktong magkapareho, dahil tumutukoy sila sa iba't ibang sistema. Ngunit ang algebra na naglalarawan sa mga two-state na sistemang ito ay maaaring sumunod sa parehong mga panuntunan (spoiler: ginagawa nila!). Pansinin na ang random na pagpiling ito ay mayroon nang isang magandang katangian. Pansinin na

P00=002=(10)(10)2=12=1.P_{00} = |\langle 0| 0 \rangle|^2 = \vert \begin{pmatrix} 1 & 0\end{pmatrix} \begin{pmatrix} 1 \\ 0\end{pmatrix}\vert ^2 = |1|^2 = 1.

Ibig sabihin, kung ang isang particle ay nasa estado na 0|0\rangle, ang probabilidad na ang kasunod na pagsukat ay magbubunga rin ng 0|0\rangle ay 1 (maliban sa mga epekto ng ingay). Napakaganda nito, dahil nakita na natin na kapag nasa estado na 0 o "spin-up" ang isang estado, nananatili ito roon sa kasunod na pagsukat. Ang probabilidad sa itaas ay dapat na talagang 100%.

Suriin ang iyong pag-unawa

Basahin ang mga tanong sa ibaba, isipin ang iyong mga sagot, at pagkatapos ay i-click ang mga tatsulok upang makita ang mga solusyon.

Bakit mas mainam ang

0=(10)|0\rangle = \begin{pmatrix} 1 \\0 \end{pmatrix}

kaysa sa, halimbawa,

0=(20)?|0\rangle = \begin{pmatrix} 2 \\0 \end{pmatrix}?

Sagot:

Ang ating pagtatangkang iugnay ang probabilidad ng pagsukat sa parisukat ng inner product ay nangangahulugang kailangan ang magnitude ng bawat vector na maging 1. Ibig sabihin, vv2=1|\langle v|v\rangle|^2 = 1 para sa lahat ng v|v\rangle, dahil ang probabilidad ng isang bagay sa estado na v|v\rangle na maging nasa estado na v|v\rangle ay 100%. Ito ay kilala bilang "normalization condition".

Bakit mas mainam ang

0=(10)|0\rangle = \begin{pmatrix} 1 \\0 \end{pmatrix}

kaysa sa, halimbawa,

0=(01)?|0\rangle = \begin{pmatrix} 0 \\1 \end{pmatrix}?

Sagot:

Hindi ito mas mainam. Walang dahilan kung bakit kailangan nating unang piliin ang 0=(10)|0\rangle = \begin{pmatrix} 1 \\0 \end{pmatrix}. Sa halip, ito ay isang kombensyon. Gayunpaman, kapag ginawa na natin ang pagpiling iyon, nagpapataw ito ng ilang mga hadlang sa mga kasunod na pagpipilian. Tingnan sa ibaba.

Alalahanin na sa mga eksperimento sa itaas, nalaman natin na ang isang qubit na paunang nasa estado na 0|0\rangle ay nananatili sa estadong iyon sa kasunod na pagsukat. Ganoon din ang totoo para sa 1|1\rangle. Ibig sabihin, ang isang qubit na nasa 0|0\rangle ay may zero na probabilidad na masukat sa estado na 1|1\rangle (maliban sa mga epekto ng ingay). Ang ating kinakailangang ugnayan sa pagitan ng mga inner product at probabilidad ng mga pagsukat ay nagsasabi sa atin na

P01=P10=0.P_{01} = P_{10}=0.

Nang hindi nawawalan ng pangkalahatan, maaari nating isulat ang state vector na 1=(ab)|1\rangle = \begin{pmatrix} a \\ b \end{pmatrix}. Pagkatapos ay maaari nating isulat

P01=012=(10)(ab)2=a2=0.P_{01} = |\langle 0| 1 \rangle|^2 = \vert \begin{pmatrix} 1 & 0\end{pmatrix} \begin{pmatrix} a \\ b\end{pmatrix}\vert ^2 = |a|^2 = 0.

Ang kinakailangan na P11=1P_{11} = 1, ang tinatawag na "normalization condition", ay nagsasabi sa atin na b2=1|b|^2=1. Ito mismo ay naglilimita lamang sa atin sa b=eiϕb=e^{i\phi} para sa ϕR\phi \in \mathbb{R}. Lumalabas na may iba pang mga dahilan para piliin ang b=1b=1 na lampas na sa panimulang paksang ito. Sa ngayon, sapat na sabihin na ang b=1b=1 ay isang katanggap-tanggap na solusyon.

Napakalayo na ng ating narating sa ating pagsusuri. Ang pagpili ng anyo para sa ating mga state vector ay nagpapahintulot sa atin na bumuo ng isang matrix na naglalarawan ng isang bagay tungkol sa mga pisikal na penomenon na gumagana dito. Sa partikular, dahil ang orihinal na eksperimento ng Stern-Gerlach ay nasukat ang paghahati ng mga trajectory batay sa mga bahagi ng spin angular momentum sa kahabaan ng zz axis, gusto nating magkaroon ng isang operator na naglalarawan ng eksaktong iyon: SzS_z. Ang isa pang pangunahing ugnayan sa eksperimento ay ang mula sa dami ng pagtaliwas, oras ng paglalakbay, at kilalang lakas ng magnetic field, maaari nating matukoy ang magnitude ng zz na bahagi ng spin. Bagaman nangangailangan ito ng maraming pagpapalagay tungkol sa katumpakan ng pag-setup ng eksperimento, dito ay uulitin lamang natin na ang mga nasukat na z-component ng spin angular momentum ay ±/2\pm \hbar/2.

Pagkatapos ay naghahanap tayo ng isang matrix na may mga real na eigenvalue (natutugunan ng mga Hermitian matrix) na may mga eigenvalue na katumbas ng mga eksperimentong naobserbahang spin component. Nang hindi nawawalan ng pangkalahatan, maaari nating isulat ang Sz=(s11s12s21s22)S_z = \begin{pmatrix} s_{11} & s_{12} \\ s_{21} & s_{22}\end{pmatrix}, at maaari nating kailanganin:

Sz=(s11s12s21s22)(10)=(s11s21)=!2(10)s11=/2,s21=0S_z |\uparrow\rangle = \begin{pmatrix} s_{11} & s_{12} \\ s_{21} & s_{22}\end{pmatrix}\begin{pmatrix}1 \\0\end{pmatrix} = \begin{pmatrix} s_{11} \\ s_{21} \end{pmatrix} \overset{!}{=} \frac{\hbar}{2} \begin{pmatrix}1 \\0\end{pmatrix} \rightarrow s_{11} = \hbar/2,s_{21}=0 Sz=(s11s12s21s22)(01)=(s12s22)=!2(01)s12=0,s22=/2S_z |\downarrow\rangle = \begin{pmatrix} s_{11} & s_{12} \\ s_{21} & s_{22}\end{pmatrix}\begin{pmatrix}0 \\1\end{pmatrix} = \begin{pmatrix} s_{12} \\ s_{22} \end{pmatrix} \overset{!}{=} -\frac{\hbar}{2} \begin{pmatrix}0 \\1\end{pmatrix} \rightarrow s_{12} = 0, s_{22}=-\hbar/2

Pinagsama, at kinuha ang kabuuang factor na /2\hbar/2, mayroon tayo

Sz=2(1001).S_z = \frac{\hbar}{2} \begin{pmatrix} 1 & 0 \\ 0 & -1\end{pmatrix}.

Ito ang kilalang spin-z operator na makikita sa lahat ng quantum mechanics na textbook. Madalas itong makita nang wala ang /2\hbar/2, kung saan ito ang "Pauli-z" operator, karaniwang tinutukoy bilang σz\sigma_z:

σz=(1001).\sigma_z = \begin{pmatrix} 1 & 0 \\ 0 & -1\end{pmatrix}.

Ito ay kapaki-pakinabang, dahil ang Pauli operator na ito (at mga kaugnay na matrix) ay maaaring maglalarawan ng maraming pisikal na sistema na may dalawang antas o dalawang posibleng kinalabasan ng pagsukat, kabilang ang mga estado ng transmon qubit sa isang quantum computer.

Bago tayo lumipat sa ibang mga operator at estado na may kaugnayan sa isa, kailangan nating tugunan ang isang katotohanan na maling naiintindihan ng maraming tao. Ang pagkilos ng operator ay hindi katulad ng pagsukat. Sa isang paraan, maaaring sabihin ng isa, "Syempre hindi! Ang isa ay nangyayari sa papel bilang bahagi ng isang matematikal na kalkulasyon, at ang isa pa ay nangyayari sa laboratoryo sa mga pisikal na sistema." Oo, totoo iyon, ngunit higit pa rito. Ang pagsusuri ng zz-component ng spin ay palaging magbubunga ng "spin-up" o "spin-down" na estado, anuman ang paunang estado ng sistema. Nakita natin ito sa mga quantum computing analog na 0|0\rangle at 1|1\rangle. Nagsimula tayo ng mga estado sa daan-daang random na oryentasyon, at ang mga pagsukat ay palaging nagbubunga ng alinman sa 0|0\rangle o 1|1\rangle. Ito ay kilala bilang pagsukat na "nagbubulusok ng estado" patungo sa isang eigenstate. Hindi ito nangyayari kapag nag-apply ka ng matrix sa isang estado. Subukan ang mga tanong sa ibaba upang tuklasin ito.

Suriin ang iyong pag-unawa

Basahin ang (mga) tanong sa ibaba, isipin ang iyong sagot, at pagkatapos ay i-click ang tatsulok upang makita ang solusyon.

Ipagpalagay na nagsisimula ka sa isang particle sa isang spin state na

ψ=(3/52/5).|\psi\rangle = \begin{pmatrix}\sqrt{3/5} \\ \sqrt{2/5}\end{pmatrix}.

(a) Ano ang makukuha mo kung gagawa ka ng aksyon ng operator na SzS_z sa state vector na ito? (b) Ano ang makukuha mo kung gagawa ka ng isang pagsukat ng zz component ng spin ng particle na ito? (c) Ano ang makukuha mo kung ihahanda mo ang maraming particle na magkapareho sa estadong ito at gumawa ng libu-libong pagsukat ng zz component ng spin?

Mga Sagot:

(a) Makukuha mo ang

Szψ=2(1001)(3/52/5)S_z |\psi\rangle = \frac{\hbar}{2} \begin{pmatrix} 1 & 0 \\ 0 & -1\end{pmatrix} \begin{pmatrix}\sqrt{3/5} \\ \sqrt{2/5}\end{pmatrix}=2(3/52/5).= \frac{\hbar}{2} \begin{pmatrix}\sqrt{3/5} \\ -\sqrt{2/5}\end{pmatrix}.

Iyon lang. Walang eksperimentong kinalabasan. I-apply lamang mo ang matrix sa vector at nakakuha ka ng bahagyang naiibang vector na ngayon ay may bagong "-" na tanda, at hindi na may magnitude na 1, dahil mayroon itong prefactor na /2\hbar/2.

(b) Makakakuha ka ng alinman sa |\uparrow\rangle o |\downarrow\rangle. Ito ay katumbas ng pagmamasid ng projection ng spin sa zz axis na alinman ay /2\hbar/2 o /2-\hbar/2, ayon sa pagkakabanggit. Matutukoy din natin ang probabilidad ng bawat kinalabasan, dahil

Pψ=ψ2=(10)(3/52/5)2=3/52=35P_{\uparrow\psi}=|\langle \uparrow|\psi\rangle|^2 = \vert \begin{pmatrix}1 & 0\end{pmatrix} \begin{pmatrix}\sqrt{3/5} \\ \sqrt{2/5}\end{pmatrix}\vert^2 = |\sqrt{3/5}|^2 = \frac{3}{5}Pψ=ψ2=(01)(3/52/5)2=2/52=25P_{\downarrow\psi}=|\langle \downarrow|\psi\rangle|^2 = \vert \begin{pmatrix}0 & 1\end{pmatrix} \begin{pmatrix}\sqrt{3/5} \\ \sqrt{2/5}\end{pmatrix}\vert^2 = |\sqrt{2/5}|^2 = \frac{2}{5}

Kaya habang ang spin-up na estado ay 20% na mas malamang, posible ang alinmang kinalabasan, at makakakuha lamang tayo ng isa sa dalawang estado na ito.

(c) Humigit-kumulang 60% ng mga pagsukat ay magbubunga ng mga spin-up na particle, at humigit-kumulang 40% ng mga pagsukat ay magbubunga ng mga spin-down na particle, ayon sa mga probabilidad ng pagsukat na kinalkula sa bahagi (b).

I-verify ang mga sagot sa mga bahagi (b) at (c) ng nakaraang tanong sa pamamagitan ng paggamit ng analogy sa pagitan ng mga spin-up na estado ng isang atom at mga qubit na estado:

0.|\uparrow\rangle\sim|0\rangle.

Mag-code ng mga quantum circuit upang malikha ang nais na paunang estado, at pagkatapos ay gumamit ng tunay na hardware o simulator upang suriin ang mga kinalabasan ng isang pagsukat, at mula sa isang ensemble ng daan-daan o kahit libu-libong pagsukat.

Sagot:

#Use the backend sampler for part (b) because it allows us to use a single shot.
from qiskit_aer import AerSimulator
backend_sim = AerSimulator.from_backend(backend)
from qiskit.primitives import BackendSampler
sampler = BackendSampler(backend = backend_sim)

#Create a quantum circuit to initialize the state.
import math
psi = [math.sqrt(3/5),math.sqrt(2/5)]
qc = QuantumCircuit(1,1)
qc.initialize(psi, [0])

#Add measurement to the circuit
qc.measure(0,0)
qc.draw('mpl')

#Set num_shots =1 for part (b) and num_shots = 1000 or more for part (c).
num_shots = 1000

#Run the job and print the result. You should obtain only 0 or 1 in part (b) for a single shot.
#You should obtain a probability distribution with approximately 60% 0 and 40% 1 in part (c)

dist = sampler.run([qc_ibm], shots = num_shots).result()
counts=dist[0].data.c.get_counts()
print(counts)

#You should obtain {0: 599, 1: 401} or something equivalently close to the 60%-40% distribution predicted.

Ikalimang eksperimento: Pagsukat ng iba't ibang observable

Hanggang ngayon, gumawa lamang tayo ng mga pagsukat sa kahabaan ng z axis. Sa isang eksperimento ng Stern-Gerlach, kung gusto nating susukat sa kahabaan ng, halimbawa, x-axis, iooryentasyon lamang natin ang inhomogeneous na magnetic field upang tumuro sa kahabaan ng xx axis, at hahanapin ang mga pagtaliwas sa kahabaan ng xx sa screen. Ang mga IBM quantum computer, gayunpaman, ay dinisenyo upang gumawa ng mga pagsukat sa kahabaan ng isang axis lamang (zz). Upang susukat ng isang estado sa kahabaan ng xx, kailangan nating gumawa ng isang "pagbabago ng basis". Ibig sabihin, kailangan nating gumawa ng operasyon na kumukuha ng mga estado sa kahabaan ng xx sa Bloch sphere patungo sa zz, at vice-versa. May ilang paraan para ipatupad ito, ngunit ang nais na paraan ay isang Hadamard gate:

H=12(1111)H=\frac{1}{\sqrt{2}}\begin{pmatrix}1 & 1 \\ 1 & -1\end{pmatrix}

Suriin ang iyong pag-unawa

Basahin ang (mga) tanong sa ibaba, isipin ang iyong sagot, at pagkatapos ay i-click ang tatsulok upang makita ang solusyon.

Ipakita na ang H0=+xH|0\rangle = |+\rangle_x at na ang H+x=0H|+\rangle_x = |0\rangle

Sagot:

H0=12(1111)(10)=12(11)=+xH|0\rangle = \frac{1}{\sqrt{2}}\begin{pmatrix}1 & 1 \\ 1 & -1\end{pmatrix}\begin{pmatrix}1 \\ 0\end{pmatrix} = \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ 1\end{pmatrix} = |+\rangle_xH+x=1(2)(1111)12(11)=12(20)=(10)=0H|+\rangle_x = \frac{1}{\sqrt(2)}\begin{pmatrix}1 & 1 \\ 1 & -1\end{pmatrix}\frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ 1\end{pmatrix} = \frac{1}{2}\begin{pmatrix}2 \\ 0\end{pmatrix} = \begin{pmatrix}1 \\ 0\end{pmatrix} = |0\rangle

Ipakita na ang H1=xH|1\rangle = |-\rangle_x at na ang Hx=1H|-\rangle_x = |1\rangle

Sagot:

H1=12(1111)(01)=12(11)=xH|1\rangle = \frac{1}{\sqrt{2}}\begin{pmatrix}1 & 1 \\ 1 & -1\end{pmatrix}\begin{pmatrix}0 \\ 1\end{pmatrix} = \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ -1\end{pmatrix} = |-\rangle_xHx=1(2)(1111)12(11)=12(02)=(01)=1H|-\rangle_x = \frac{1}{\sqrt(2)}\begin{pmatrix}1 & 1 \\ 1 & -1\end{pmatrix}\frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ -1\end{pmatrix} = \frac{1}{2}\begin{pmatrix}0 \\ 2\end{pmatrix} = \begin{pmatrix}0 \\ 1\end{pmatrix} = |1\rangle
# Define registers
qr = QuantumRegister(1, "q")
cr = ClassicalRegister(1, "c")
qc = QuantumCircuit(qr, cr)

# Add a hadamard gate to rotate into the x-basis
qc.h(0)
qc.measure(0, 0)

qc.draw("mpl")

Output of the previous code cell

Ang Circuit na ito ay iniikit ang ating sistema upang ang mga pagsukat (sa kahabaan ng zz) ay nagbibigay ng impormasyon tungkol sa mga katangian ng xx bago ang pag-ikot. Alam na natin na ang quantum computer ay nagpapasimula ng mga estado sa 0|0\rangle na katumbas ng |\uparrow\rangle. Tingnan natin kung ano ang mangyayari kapag sinukat natin ang projection ng spin sa kahabaan ng xx para sa isang estado na paunang nasa |\uparrow\rangle. Ipinapakita natin ang hakbang na ito sa isang simulator upang hikayatin kang tuklasin ang mga istatistika ng iba pang mga circuit na may iba't ibang pagsisimula.

from qiskit.primitives import StatevectorSampler as Sampler

sampler_sv = Sampler()

job = sampler_sv.run([qc], shots=10000)
print(job.result()[0].data.c.get_counts())
{'1': 4977, '0': 5023}

Ipinapakita nito sa atin na para sa isang qubit na paunang nasa 0|0\rangle (o katumbas nito, isang spin sa |\uparrow\rangle) ang probabilidad ng pagsukat ng projection sa kahabaan ng +x+x o x-x ay humigit-kumulang 50-50. Sa ilang paraan, makatuwiran ito. Pagkatapos ng lahat, kung ang isang bagay ay tumuturo sa direksyon ng z, wala itong partikular na kagustuhan para sa ±x\pm x. Maaari nating asahan na ganoon din ang mangyayari, kung magsisimula tayo sa estado na 1|1\rangle (o |\downarrow\rangle). Suriin natin:

# Define registers
qr = QuantumRegister(1, "q")
cr = ClassicalRegister(1, "c")
qc = QuantumCircuit(qr, cr)

# Add a NOT gate and hadamard gate. Measure.
qc.x(0)
qc.h(0)
qc.measure(0, 0)

qc.draw("mpl")

Output of the previous code cell

job = sampler_sv.run([qc], shots=10000)
print(job.result()[0].data.c.get_counts())
{'0': 4935, '1': 5065}

Oo! Muli, nakakita tayo ng 50-50 na probabilidad ng pagsukat ng mga projection sa kahabaan ng ±x\pm x. Sa analogy sa mga pagsukat sa kahabaan ng zz, maaari pa nating hinalaang ang isang particle na bumubulusok sa isang estado na tiyak sa +x+x ay may zero na probabilidad na kasunod na masukat sa x-x. Suriin natin:

from qiskit import QuantumCircuit

# Define registers
qr = QuantumRegister(1, "q")
cr = ClassicalRegister(2, "c")
qc = QuantumCircuit(qr, cr)

# Rotate into x-basis using a Hadamard gate, then make two measurements in succession
qc.h(0)
qc.measure(0, 0)
qc.barrier()
qc.measure(0, 1)

qc.draw("mpl")

Output of the previous code cell

job = sampler_sv.run([qc])
print(job.result()[0].data.c.get_counts())
plot_histogram(job.result()[0].data.c.get_counts())
{'00': 504, '11': 520}

Output of the previous code cell

Ayon sa inaasahan, nakakakuha tayo ng mga resulta kung saan ang projection ay nasa +x+x, at pagkatapos ay muli sa +x+x, at nakakakuha tayo ng mga resulta kung saan ang projection ay paunang nasa x-x at pagkatapos ay muli sa x-x. Hindi natin nakikita ang mga kaso kung saan ang projection ay lumipat mula sa +x+x patungo sa x-x o vice-versa. Maaari nating kolektahin ang ating mga obserbasyon at gamitin ang mga ito upang bumuo ng karagdagang mga operator sa anyo ng matrix, at karagdagang mga state vector.

Alam natin:

  • Ang mga estado na may tiyak na projection sa kahabaan ng +z+z o z-z ay may 50% na tsansa na matuklasan na may projection sa kahabaan ng +x+x at 50% na tsansa na may projection sa kahabaan ng x-x.
  • Ang mga estado na may tiyak na projection sa kahabaan ng +x+x ay may zero na tsansa na kalaunan ay matuklasan na may projection sa kahabaan ng x-x, at vice-versa.

Maaari nating gamitin ang mga resulta na ito upang bumuo ng mga estado na may tiyak, positibong projection sa kahabaan ng xx (na tinatawag nating +x|+x\rangle), at ang mga may tiyak, negatibong projection sa kahabaan ng xx (na tinatawag nating x|-x\rangle). Mula sa mga estadong iyon, maaari nating buuin ang matrix na katumbas ng SxS_x, eksaktong tulad ng ginawa natin para sa SzS_z. Iniiwan natin ang mga ito bilang mga ehersisyo para sa mag-aaral. Katulad nito, maaaring mag-construct ng mga eksperimento na gumagawa ng mga pagsukat sa kahabaan ng yy axis, matukoy ang mga vector para sa +y|+y\rangle at y|-y\rangle, at sa wakas ay makakuha ng isang ekspresyon para sa SyS_y.

Pinagsama ang lahat ng mga vector at matrix na ito, mayroon tayo

+x=12(11)x=12(11)Sx=2(0110)+y=12(1i)y=12(1i)Sy=2(0ii0)+z=(10)z=(01)Sz=2(1001)\begin{aligned} |+x\rangle &= \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ 1\end{pmatrix} & \: & |-x\rangle &=& \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ -1\end{pmatrix} & \: &S_x &=& \frac{\hbar}{2} \begin{pmatrix} 0 & 1 \\ 1 & 0\end{pmatrix}\\ |+y\rangle &= \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ i\end{pmatrix} & \: & |-y\rangle &=& \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ -i\end{pmatrix} & \: &S_y &=& \frac{\hbar}{2} \begin{pmatrix} 0 & -i \\ i & 0\end{pmatrix}\\ |+z\rangle &= \begin{pmatrix}1 \\ 0\end{pmatrix} & \: &|-z\rangle &=& \begin{pmatrix}0 \\ 1\end{pmatrix} & \: &S_z &=& \frac{\hbar}{2} \begin{pmatrix} 1 & 0 \\ 0 & 1\end{pmatrix}\\ \end{aligned}

Mga Tanong

Ang mga guro ay maaaring humiling ng mga bersyon ng mga notebook na ito na may mga susi sa sagot at gabay sa paglalagay sa karaniwang kurikulum sa pamamagitan ng pagsagot sa mabilis na survey na ito tungkol sa kung paano ginagamit ang mga notebook.

Mga kritikal na konsepto:

  • Para sa spin-1/2 na particle, ang pagsukat ng projection ng spin sa ilang axis ay maaari lamang magbunga ng isa sa dalawang kinalabasan, na madalas na tinatawag na "up" at "down".
  • Ang mga Qubit ay maaari lamang masukat sa isa sa dalawang estado, na madalas na tinutukoy bilang 0|0\rangle at 1|1\rangle.
  • Maaari nating i-model ang eksperimento ng Stern-Gerlach sa mga spin-1/2 na particle gamit ang mga qubit sa isang quantum computer.
  • Ang paulit-ulit na pagsukat ng parehong pisikal na observable ng parehong particle/qubit ay magbubunga ng parehong resulta (maliban kung ang sistema ay naaabala ng ingay).
  • Maaari nating gamitin ang mga resulta mula sa eksperimento ng Stern-Gerlach o mula sa mga katumbas na eksperimento sa mga quantum computer upang makuha ang isang sistema ng mga state vector at matrix operator na naglalarawan ng quantum mechanical spin.

Mga Tanong na T/F:

  1. T/F Simula sa mga eksperimentong obserbasyon, ang tanging wastong pagpili ng vector upang kumatawan sa |\uparrow\rangle ay ang (10)\begin{pmatrix}1 \\ 0\end{pmatrix}
  2. T/F Kung ang =(10)|\uparrow\rangle = \begin{pmatrix}1 \\ 0\end{pmatrix}, ang tanging pagpili para sa |\downarrow\rangle ay ang (01)\begin{pmatrix}0 \\ 1\end{pmatrix} (maliban sa isang global phase).
  3. T/F Ang isang particle na nasukat na nasa estado na 0|0\rangle ay patuloy na matatagpuan sa estado na 0|0\rangle sa mga kasunod na pagsukat sa kahabaan ng zz.
  4. T/F Ang isang particle na nasukat na nasa estado na 0|0\rangle ay patuloy na matatagpuan sa estado na 0|0\rangle sa mga kasunod na pagsukat sa kahabaan ng xx.
  5. T/F Ang isang particle na nasukat na nasa estado na 0|0\rangle ay palaging matatagpuan sa estado na +x|+\rangle_x sa mga kasunod na pagsukat sa kahabaan ng xx.

Mga Tanong na MC:

  1. Ang isang particle na paunang nasa |\uparrow\rangle ay may anong probabilidad ng pagsukat sa estado na +x|+x\rangle?

    • a. 0%
    • b. 25%
    • c. 50%
    • d. 71%
    • e. 100%
  2. Ang isang particle na paunang nasa |\uparrow\rangle ay may anong probabilidad ng pagsukat sa estado na |\downarrow\rangle?

    • a. 0%
    • b. 25%
    • c. 50%
    • d. 71%
    • e. 100%
  3. Ang estado na |\uparrow\rangle ng isang spin-1/2 na particle ay pinakakaraniwang iniuugnay sa anong quantum computing na estado?

    • a. +|+\rangle
    • b. |-\rangle
    • c. 0|0\rangle
    • d. 1|1\rangle
    • e. Wala sa mga nasa itaas

Mga Tanong para sa Talakayan:

  1. Tatlong magkaibigan ang nagtatalakaayan tungkol sa mga quantum na pagsukat at operator. Sinabi ng Kaibigan A, "Ang paggawa ng pagsukat sa kahabaan ng zz at ang pagkilos sa operator na σz\sigma_z ay iisang bagay." Sinabi ng Kaibigan B, "Magkaibang pamamaraan sila, ngunit magkapareho ang kanilang resulta." Sinabi ng Kaibigan C, "Ganap silang magkaiba; magkaiba pa ang kanilang mga epekto sa karamihan ng mga estado." Kanino ka sumasang-ayon at bakit?

Mga Malayang Problema sa Tugon:

  1. Batay sa mga eksperimentong obserbasyon at iminungkahing syntax:

P+x=(10)(ab)2=a2=12P_{\uparrow+x}=\vert \begin{pmatrix}1 & 0\end{pmatrix}\begin{pmatrix}a \\ b\end{pmatrix}\vert^2 = |a|^2 =\frac{1}{2} P+x=(01)(ab)2=b2=12P_{\downarrow+x}=\vert \begin{pmatrix}0 & 1\end{pmatrix}\begin{pmatrix}a \\ b\end{pmatrix}\vert^2 = |b|^2 =\frac{1}{2}

ipakita na hanggang sa isang global phase

+x=12(1eiα)|+\rangle_x = \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ e^{i\alpha}\end{pmatrix}

Piliin ang α=0\alpha = 0 upang makuha ang karaniwang resulta.

  1. Batay sa mga eksperimentong obserbasyon at iminungkahing syntax:

Px=(10)(ab)2=a2=12P_{\uparrow-x}=\vert \begin{pmatrix}1 & 0\end{pmatrix}\begin{pmatrix}a \\ b\end{pmatrix}\vert^2 = |a|^2 =\frac{1}{2} Px=(01)(ab)2=b2=12P_{\downarrow-x}=\vert \begin{pmatrix}0 & 1\end{pmatrix}\begin{pmatrix}a \\ b\end{pmatrix}\vert^2 = |b|^2 =\frac{1}{2}

At gamit ang resulta mula sa challenge problem 3:

P+xx=12(11)(cd)2=12c+d2=0P_{+x-x}=\vert \frac{1}{\sqrt{2}}\begin{pmatrix}1 & 1\end{pmatrix}\begin{pmatrix}c \\ d\end{pmatrix}\vert^2 = \frac{1}{2}|c+d|^2 =0

ipakita na hanggang sa isang global phase

+x=12(11)|+\rangle_x = \frac{1}{\sqrt{2}}\begin{pmatrix}1 \\ -1\end{pmatrix}

Mga Pagkilala

[1] By Tatoute - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=34095239