Dirac-notatie

Dirac-notatie is een taal die is ontworpen om te voldoen aan de precieze behoeften van het uitdrukken van toestanden in de kwantummechanica. De voorbeelden in dit artikel zijn suggesties die kunnen worden gebruikt om kwantumideeën beknopt uit te drukken.

Beperkingen van kolomvectornotatie

Hoewel kolomvectornotatie gebruikelijk is in lineaire algebra, is het vaak lastig bij kwantumcomputing, met name bij het omgaan met meerdere qubits. Wanneer u bijvoorbeeld definieert $\psi$ als een vector, is het niet expliciet duidelijk of $\psi$ het een rij- of een kolomvector is. Dus als $\phi$ en $\psi$ vectoren zijn, is het even onduidelijk of\psi$$\phizelfs is gedefinieerd, omdat de vormen van $\phi$ en $\psi$ mogelijk onduidelijk zijn in de context. Afgezien van de dubbelzinnigheid over de vormen van vectoren, kan het uitdrukken van zelfs eenvoudige vectoren met behulp van lineaire algebraïsche notatie omslachtig zijn. Als u bijvoorbeeld een $n-qubitstatus$ wilt beschrijven waarbij elke qubit de waarde $0$ heeft, zou u de status formeel uitdrukken als

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\otimes\begin{bmatrix}\cdots1 \\ 0 .\end{bmatrix} $$

Het evalueren van dit tensorproduct is niet praktisch omdat de vector zich in een exponentieel grote ruimte bevindt. Als zodanig is deze notatie in feite de beste beschrijving van de status die kan worden gegeven met behulp van de vorige notatie.

Typen vectoren in diracnotatie

Er zijn twee soorten vectoren in de Dirac-notatie: de bra-vector en de ket-vector , zo genoemd omdat ze bij elkaar worden samengevoegd een rem of binnenste product vormen. Als $\psi$ een kolomvector is, kunt u deze in de Dirac-notatie schrijven als $\ket{\psi}$, waarbij de $\ket{\cdot}$ aangeeft dat het een eenheidskolomvector is, bijvoorbeeld een ket-vector . Op dezelfde manier wordt de rijvector $\psi^\dagger$ uitgedrukt als $\bra{\psi}$. Met andere woorden, $\psi^\dagger$ wordt verkregen door het toepassen van een complexe vervoeging op de elementen van de transponering van $\psi$. De bra-ket-notatie impliceert rechtstreeks dat $\braket{\psi|\psi}$ het binnenste product van vector $\psi$ met zichzelf is, wat per definitie $1$ is.

Meer in het algemeen geldt dat als $\psi$ en $\phi$ kwantumtoestandsvectoren zijn, hun binnenste product is $\braket{\phi|\psi}$. Dit binnenste product impliceert dat de waarschijnlijkheid van het meten van de te zijn $\ket{\phi}$ toestand $\ket{\psi}$ ^2$ is$|\braket{\phi|\psi}|.

De volgende conventie wordt gebruikt om de kwantumstatussen te beschrijven die de waarden van nul en één coderen (de rekenkundige basistoestanden met één qubit):

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}{0}\ket{=,\qquad\begin{bmatrix} 0 \\ 1 .\end{bmatrix}=\ket{{1} $$

Voorbeeld: De Hadamard-bewerking weergeven met dirac-notatie

De volgende notatie wordt vaak gebruikt om de statussen te beschrijven die het gevolg zijn van het toepassen van de Hadamard-poort op $\ket{0}$ en $\ket{1}$. Deze toestanden komen overeen met de eenheidsvectoren in de $richtingen +x$ en $-x$ op de Bloch-bol:

$$\frac{1}{\sqrt{{2}}\begin{bmatrix}1 \\ 1 \end{bmatrix}=H\ket{=\ket{0}+},\qquad\frac{1}{\sqrt{{2}}\begin{bmatrix} 1 \\ -1=\end{bmatrix} H .\ket{{1}=\ket{{-} $$

Deze statussen kunnen ook worden uitgebreid met behulp van Dirac-notatie als som van $\ket{0}$ en $\ket{1}$:

$$\ket{+}={1}{\sqrt{2}}\frac{(\ket{0} + \ket{1}),\qquad\frac{={1}{\sqrt{\ket{{2}}{-}(\ket{{0} - ). \ket{1} $$

Rekenkundige basisvectoren

Dit laat zien waarom deze toestanden vaak een rekenkundige basis worden genoemd: elke kwantumtoestand kan altijd worden uitgedrukt als som van rekenkundige basisvectoren en dergelijke optelsom kan eenvoudig worden uitgedrukt met behulp van dirac-notatie. Het omgekeerde geldt ook omdat de statussen $\ket{+}$ en $\ket{-}$ ook een basis vormen voor kwantumtoestanden. U kunt dit zien aan het feit dat

$$\ket{{0}=\frac{1}{\sqrt{2}}(\ket{+} + \ket{-}),\qquad\frac{{1}{\sqrt{=\ket{{1}{2}}(\ket{+} - ). \ket{-} $$

Als voorbeeld van diracnotatie kunt u de braket 0 1 gebruiken, het binnenste product tussen $0$ en $1$.}$|$\braket{ Het kan worden geschreven als

$$\braket{0 | 1}=\begin{bmatrix} 1 & 0 \end{bmatrix}\begin{bmatrix}0\\ 1\end{bmatrix}=0. $$

In dit voorbeeld wordt aangegeven dat $\ket{{0}$ en{1}$$\ket{orthogonale vectoren zijn, wat betekent dat $\braket{0 | 1}\braket{=1 | 0}=0.$ Bovendien is het per definitie $\braket{0 | 0\braket{=}1 | 1}=1 1$, wat betekent dat de twee rekenkundige basisvectoren ook orthonormaal kunnen worden genoemd.

Deze orthonormale eigenschappen worden gebruikt in het volgende voorbeeld. Als u een status $\ket{\psi}{\frac{3}{5}}={1}\ket{+{4}{5}}{\frac{\ket{0}$ hebt, is $\braket{de kans op het meten $van 1$ omdat 1 | 0 0$}=

$$\big|\braket{1 |^2\left|\frac{{3}{5}\braket{=1 | 1} +\frac{{4}{5}\braket{1 | 0}\right|^2{25}=\frac{{9}{.\psi}\big| $$

Tensor-productnotatie

Dirac-notatie bevat ook een impliciete tensor-productstructuur . Deze structuur is belangrijk omdat in kwantumcomputing de statusvector die wordt beschreven door twee niet-gerelateerde kwantumregisters de tensorproducten van de twee toestandsvectoren is. Een beknopte beschrijving van de tensor-productstructuur, of het ontbreken daarvan, is essentieel als u een kwantumberekening wilt uitleggen. De tensor-productstructuur impliceert dat u kunt schrijven $\psi\otimes\phi$ voor twee kwantumtoestandsvectoren $\phi$ en $\psi$ als .$\ket{\psi}\otimes\ket{\phi}$ Door conventies is schrijven $\otimes$ tussen de vectoren echter niet nodig en kunt u schrijven\phi}=$$\ket{\psi}\ket{\phi}\ket{\psi. Zie Vectoren en matrices in kwantumcomputing voor meer informatie over vectoren en tensorproducten. De status met twee qubits geïnitialiseerd op de nulstatus is bijvoorbeeld:

$$\ket{0}\otimes\ket{0}=\ket{{0}\ket{{0}=\ket{{00}=\begin{bmatrix}1 \\ 0\otimes\end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 .\end{bmatrix} $$

Op dezelfde manier vertegenwoordigt de status $\ket{p}$ voor geheel getal $p$ een kwantumstatus die het gehele getal $p$ in binaire weergave codeert. Als u bijvoorbeeld het getal $5$ wilt uitdrukken met behulp van een niet-ondertekende binaire codering, kunt u dit net zo uitdrukken als

$$\ket{1}\ket{0}\ket{1}=\ket{101}=\ket{5}. $$

In deze notatie hoeft niet te worden verwezen naar een status met één qubit, $\ket{0}$ maar naar een qubitregister waarin een binaire codering van $0 wordt opgeslagen$. De verschillen tussen deze twee notaties zijn duidelijk uit de context. Deze conventie is handig voor het vereenvoudigen van het eerste voorbeeld, dat op een van de volgende manieren kan worden geschreven:

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\otimes\begin{bmatrix}\cdots1 \\ 0{0}\ket{\otimes\cdots|=\end{bmatrix}\otimes\ket{0}= 0\cdots 0=\ket{\rangle{0}^ n{\otimes}$$

waarbij $\ket{0}^{\otimes n}$ het tensorproduct van $n$$\ket{0}$ kwantumtoestanden vertegenwoordigt.

Voorbeeld: superpositie beschrijven met dirac-notatie

Als een ander voorbeeld van hoe u dirac-notatie kunt gebruiken om een kwantumtoestand te beschrijven, kunt u de volgende equivalente manieren overwegen om een kwantumtoestand te schrijven die een gelijke superpositie heeft over elke mogelijke bittekenreeks van lengte $n$

$$H^{\otimes n}=\frac{1}{\ket{0}2^{n/2\sum}}_{j=0}^{2^n-1\ket{}j}=\ket{+}^{\otimes n.} $$

Hier vraagt u zich misschien af waarom de som van $0$ naar $2^{n-1$} voor $n$ bits gaat. Houd er eerst rekening mee dat er 2^{n}$ verschillende configuraties zijn $die $n$ bits kunnen aannemen. U kunt dit zien door op te nemen dat één bit 2$ waarden kan nemen$, maar twee bits 4$ waarden, $enzovoort. In het algemeen betekent dit dat er 2^n$ verschillende bittekenreeksen zijn$, maar dat de grootste waarde gecodeerd in een van hen $1\cdots 1=2^n-1$ en daarom is het de bovengrens voor de som. Als kanttekening: in dit voorbeeld hebt u +^ n+ niet gebruikt $\ket{in analogie met $\ket{{0}^{\otimes n}={0}$\ket{.}$}=\ket{{\otimes} Deze notatieconventie is gereserveerd voor de rekenkundige basisstatus waarbij elke qubit is geïnitialiseerd op nul. Hoewel een dergelijke conventie in dit geval verstandig is, wordt deze niet gebruikt in de literatuur over kwantumcomputing.

Lineariteit uitdrukken met dirac-notatie

Een ander kenmerk van diracnotatie is het feit dat deze lineair is. Voor twee complexe getallen $\alpha$ en $\beta$kunt u bijvoorbeeld schrijven

$$\ket{\psi}\otimes ( \alpha\ket{\phi} + \beta\ket{\chi})=\alpha\ket{\psi}\ket{\phi} + \beta\ket{\psi}\ket{\chi}.$$

Dat wil zeggen dat u de tensor-productnotatie in de Dirac-notatie kunt verdelen, zodat het nemen van tensorproducten tussen staatsvectoren er uiteindelijk net zo uitziet als gewone vermenigvuldiging.

Bra-vectoren volgen een vergelijkbare conventie als ket vectoren. De vector $\bra{\psi}\bra{\phi}$ is bijvoorbeeld gelijk aan de statusvector $\psi^\otimes\phi\dagger^\dagger=(\psi\otimes\phi)^.\dagger$ Als de ket-vector $\ket{\psi}$ + \beta\ket{1}$is\ket{0}$\alpha, is $\bra{\psi}=\ket{\psi}de bra vectorversie van de vector ^\dagger= (\bra{{0}\alpha^* +\bra{1}\beta^*)$.

Stel bijvoorbeeld dat u de waarschijnlijkheid wilt berekenen van het meten van de status $\ket{\psi}=\ket{\frac{3}{5}{1} + \frac{4}{5}\ket{0}$ met behulp van een kwantumprogramma voor het meten van toestanden $\ket{als +}$ of .$\ket{{-}$ Vervolgens is de kans dat het apparaat uitvoert dat de status is $\ket{-}$

$$|\braket{- |^2\left|\frac{={1}{\sqrt{{2}}(\bra{0} -{1}\bra{ )(\frac{3}{5}{1}\ket{ +{4}{5}\frac{\ket{0} ) \right|^2-5=\left|{2}}\frac{3}{\sqrt{ +{4}{\frac{ 5\sqrt{2}}\right|^2.=\frac{{1}{{50}\psi}|$$

Het feit dat het negatieve teken verschijnt in de berekening van de kans is een manifestatie van kwantuminterferentie. Dit is een van de mechanismen waarmee kwantumcomputing voordelen krijgt ten opzichte van klassieke computing.

ketbra of buitenste product

Het laatste item dat het waard is om in dirac-notatie te bespreken, is de ketbra of het buitenste product. Het buitenste product wordt in Dirac-notaties weergegeven als $\ket{\psi}\bra{\phi}$, en ook wel ketbras genoemd omdat de beha's en kets in de tegenovergestelde volgorde voorkomen als brakets. Het buitenste product wordt gedefinieerd via matrixvermenigvuldiging als $\ket{\psi}\phi=\bra{\phi}\psi^\dagger$ voor kwantumtoestandsvectoren $\psi$ en .$\phi$ Het eenvoudigste en misschien wel meest voorkomende voorbeeld van deze notatie is

$$\ket{0}\bra{{0}=\begin{bmatrix}1\\ 0 \end{bmatrix}\begin{bmatrix}1& 0 \end{bmatrix}=\begin{bmatrix}1 & 0\\ 0 & 0\end{bmatrix}\bra{1}=\qquad\ket{1}\begin{bmatrix}0\\ 1 \end{bmatrix}\begin{bmatrix}0& 1 \end{bmatrix}=\begin{bmatrix}0 & 0\\ 0 & 1\end{bmatrix}. $$

Ketbras worden vaak projectoren genoemd omdat ze een kwantumtoestand projecteren op een vaste waarde. Omdat deze bewerkingen niet unitair zijn (en zelfs de norm van een vector niet behouden), kan een kwantumcomputer een projector niet deterministisch toepassen. Projectors doen echter een prachtige beschrijving van de actie die de meting heeft op een kwantumstatus. Als u bijvoorbeeld een status $\ket{\psi}$ meet als $0$, is de resulterende transformatie die de status ervaart als gevolg van de meting

$$\ket{\psi}\rightpijl \frac{(\ket{{0}\bra{{0})\ket{\psi}}{|\braket{0 ,|\psi}|}=\ket{{0}$$

zoals u zou verwachten als u de status hebt gemeten en gevonden dat deze is $\ket{0}$. Nogmaals, dergelijke projectors kunnen niet deterministisch worden toegepast op een status in een kwantumcomputer. In plaats daarvan kunnen ze op zijn best willekeurig worden toegepast, waarbij het resultaat $\ket{0}$ wordt weergegeven met een vaste waarschijnlijkheid. De kans dat een dergelijke meting slaagt, kan worden geschreven als de verwachtingswaarde van de kwantumprojector in de status

$$\bra{\psi}(\ket{0}\bra{0})\ket{\psi}|=|\braket{\psi 0}|^2,$$

waaruit blijkt dat projectoren een nieuwe manier bieden om het meetproces uit te drukken.

Als u in plaats daarvan overweegt om de eerste qubit van een status met meerdere qubits te meten op $1$, kunt u dit proces ook handig beschrijven met behulp van projectors en Dirac-notatie:

$$P(\text{eerste qubit = 1})=\bra{\psi}\left(\ket{{1}\bra{{1}\otimes \mathbf{\mathbf{1}^{\otimes n-1}\right) . \ket{\psi} $$

Hier kan de identiteitsmatrix gemakkelijk in de Dirac-notatie worden geschreven als

$$\mathbf{1}=\ket{0}\bra{0}+\ket{1}\begin{bmatrix}\bra{{1}=1& 0\\ 0& 1 \end{bmatrix}. $$

Voor het geval dat er twee qubits zijn, kan de projector worden uitgebreid als

$$\ket{1}\bra{1}\otimes\id=\ket{{1}\bra{1}\otimes(\ket{{0}{0}\bra{+\ket{1}{1}\bra{)={10}\ket{10}\bra{ + . \ket{{11}\bra{{11} $$

u kunt dan zien dat dit consistent is met de discussie over de waarschijnlijkheid van metingen voor multiqubitstatussen met behulp van kolomvectornotatie:

$$P(\text{eerste qubit = 1})=\psi^\dagger (e_{10}e_{10}^\dagger + e_{11}{e_{{11}^\dagger)\psi|=e_{{10}^\dagger\psi|2 + |e_{11}^\dagger\psi|^2,$$

die overeenkomt met de metingsdiscussie voor meerdere qubits. De generalisatie van dit resultaat voor het geval met meerdere qubits is echter iets eenvoudiger uit te drukken met dirac-notatie dan kolomvectornotatie en is volledig equivalent aan de vorige behandeling.

Dichtheidsoperatoren

Een andere handige operator om uit te drukken met de Dirac-notatie is de dichtheidsoperator, ook wel een statusoperator genoemd. Als de kwantumstatusvector beschrijft de dichtheidsoperator de kwantumtoestand van een systeem. Hoewel kwantumtoestandvectoren alleen zuivere toestanden kunnen vertegenwoordigen, kunnen dichtheidsoperatoren ook gemengde toestanden vertegenwoordigen.

Meer in het algemeen is een bepaalde matrix $\rho$ een geldige dichtheidsoperator als aan de volgende voorwaarden wordt voldaan:

  • $\rho$ is een matrix van complexe getallen
  • $\rho = \rho^{\dagger}$ (dat wil gezegd, $\rho$ is Hermitian)
  • Elke eigenwaarde $p$ van $\rho$ is $0 <= p <= 1$
  • Alle eigenwaarden van $\rho$ sum tot 1

Samen zorgen deze voorwaarden ervoor dat $\rho$ kan worden beschouwd als een ensemble. Een dichtheidsoperator voor een kwantumtoestandsvector $\ket{\psi}$ heeft de vorm $\rho\sum= _i p_i \ket{\psi_i}\bra{\psi_i}$ is een eigenwaardedecompositie van $\rho$. Vervolgens $beschrijft \rho$ het ensemble $\rho ={\ket{\psi_i\text{}met waarschijnlijkheid} p_i .}$

Pure kwantumtoestanden zijn toestanden die worden gekenmerkt door één ket-vector of golffunctie en kunnen niet worden geschreven als een statistische combinatie (of convexe combinatie) van andere kwantumtoestanden. Een gemengde kwantumtoestand is een statistisch geheel van zuivere toestanden.

Op een Bloch-bol worden zuivere toestanden vertegenwoordigd door een punt op het oppervlak van de bol, terwijl gemengde toestanden worden vertegenwoordigd door een binnenste punt. De gemengde status van één qubit wordt vertegenwoordigd door het midden van de bol, door symmetrie. De zuiverheid van een toestand kan worden gevisualiseerd als de mate waarin deze zich dicht bij het oppervlak van de bol bevindt.

Dit concept van het representeren van de toestand als een matrix in plaats van een vector, is vaak handig omdat het een handige manier biedt om kansberekeningen weer te geven en u ook in staat stelt om zowel statistische onzekerheid als kwantumsonzekerheid binnen hetzelfde formalisme te beschrijven.

Tip

De QuTiP-bibliotheek is een handige Python-bibliotheek bij het werken met kwantumstatussen. U kunt kwantumstatussen in quTiP-notatie schrijven met behulp van qt.basis(2, i) om i}$ te vertegenwoordigen $\ket{op één qubit. Zie de QuTiP-gebruikershandleiding voor meer informatie over QuTiP-methoden en -functies.

Een dichtheidsoperator $\rho$ vertegenwoordigt een zuivere toestand als en alleen als:

  • $\rho$ kan worden geschreven als een buitenproduct van een toestandsvector, $\rho=\ket{\psi}\bra{\psi}$
  • $\rho =\rho^2$
  • $tr(\rho^2)=1$

Als u wilt weten hoe dicht een bepaalde dichtheidsoperator $\rho$ bij puur is, kunt u kijken naar de tracering (dat wil zeggen, de som van de diagonale elementen) van $\rho^2$. Een dichtheidsoperator vertegenwoordigt een zuivere toestand als en alleen als $tr(\rho ^{2})=1$.

Overweeg de gemengde status $\rho_{\text{mixed}}\frac{={1}{2}\left( \ket{0}\bra{0} +{1}\ket{1}\bra{\right ),$

import qutip as qt

ket0 = qt.basis(2, 0)
ket1 = qt.basis(2, 1)

rho_mixed = (ket0 * ket0.dag() + ket1 * ket1.dag()) / 2
print(rho_mixed)
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True
Qobj data =
[[0.5  0.0]
 [0.0  0.5]]

De tracering van $\rho$ wordt geschreven als $Tr(\rho)$ en kan worden berekend met behulp van de methode van .tr() QuTiP:

print((rho_mixed ** 2).tr())
0.5

Bekijk nu de pure kwantumtoestand $\rho_{\text{pure}}=\ket{+}\bra{+}$,

ket_plus = (1 / np.sqrt(2)) * (ket0 + ket1)
rho_pure = ket_plus * ket_plus.dag()
print(rho_pure)
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True
Qobj data =
[[0.5  0.5]
 [0.5  0.5]]

De tracering van $\rho_{\text{pure}}^2$ is

print((rho_pure ** 2).tr())
0.9999999999999996

Voor enkelvoudige qubitsystemen kunnen gemengde toestanden op de Bloch-bol op dezelfde manier worden uitgezet als toestandsvectoren - dit betekent dat zuivere toestanden de toestanden zijn die op het oppervlak van de Bloch-bol liggen, terwijl gemengde toestanden in het algemeen kunnen worden " binnen quot&; de Bloch bol.

import matplotlib.pyplot as plt

plt.figure(figsize=(6, 6))
bloch = qt.bloch.Bloch()
bloch.add_states([rho_pure], kind='point')
print(bloch.show())

Plot van een zuivere kwantumtoestand in de Bloch-bol, waarbij de kwantumtoestand zich in de X-as bevindt.

plt.figure(figsize=(6, 6))
bloch = qt.bloch.Bloch()
bloch.add_states([rho_mixed], kind='point')
bloch.show()

Plot van een gemengde kwantumtoestand in de Bloch-bol, waarbij de quantm-toestand zich in het midden van de bol bevindt.

De toestand in het midden van de Bloch-bol is de maximaal gemengde toestand. In tegenstelling tot pure toestanden retourneert de maximaal gemengde toestand 50/50 resultaten voor elke ideale Pauli-meting.

Q# poortreeksen die equivalent zijn aan kwantumstatussen

Een laatste punt over kwantumnotatie en de Q# programmeertaal: in het begin van dit document wordt vermeld dat de kwantumstatus het fundamentele object is van informatie in kwantumcomputing. Het kan dan als een verrassing komen dat er geen Q# idee is van een kwantumtoestand. In plaats daarvan worden alle statussen alleen beschreven door de bewerkingen die worden gebruikt om ze voor te bereiden. Het vorige voorbeeld is een uitstekende illustratie hiervan. In plaats van een uniforme superpositie uit te drukken over elke kwantumbittekenreeks in een register, kunt u het resultaat weergeven als $H^{\otimes n}\ket{0}$. Deze exponentieel kortere beschrijving van de status heeft niet alleen het voordeel dat u er klassiek over kunt redeneren, maar het definieert ook beknopt de bewerkingen die moeten worden doorgegeven via de softwarestack om het algoritme te implementeren. Q# Daarom is ontworpen om poortsequenties te verzenden in plaats van kwantumtoestanden. Op theoretisch niveau zijn de twee perspectieven echter gelijkwaardig.

Volgende stappen