Delen via


Dirac notatie in kwantumcomputing

Dirac notatie is ontworpen om te voldoen aan de precieze behoeften van het uitdrukken van toestanden en lineaire algebra in kwantummechanica. Het is vernoemd naar de fysicus Paul Dirac, die de notatie in de jaren 1930 ontwikkelde. Dirac notatie is een beknopte en krachtige manier om kwantumtoestanden en bewerkingen te beschrijven. Deze wordt gebruikt in kwantumcomputing om kwantumstatussen, kwantumbewerkingen en kwantummetingen te beschrijven.

In dit artikel maakt u kennis met dirac-notatie en leert u hoe u deze kunt gebruiken om kwantumstatussen en -bewerkingen te beschrijven.

Beperkingen van kolomvector notatie

Hoewel de kolomvector notatie gebruikelijk is in lineaire algebra, wordt deze vaak gebruikt in kwantumcomputing, met name bij het omgaan met meerdere qubits. Wanneer u bijvoorbeeld definieert $\psi$ dat het een vector is, is het niet expliciet duidelijk of $\psi$ het een rij- of kolomvector is. Dus als $\phi$ en $\psi$ vectoren zijn, is het even onduidelijk als\psi$ $\phize zelfs zijn 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$ gebruikt, 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 onpraktisch omdat de vector zich in een exponentieel grote ruimte bevindt. Deze notatie is in feite de beste beschrijving van de toestand die kan worden gegeven met behulp van de vorige notatie.

Typen vectoren in dirac-notatie

Er zijn twee soorten vectoren in Dirac notatie: de bra vector en de ket vector, dus genoemd omdat ze bij het samenstellen een rem of binnenproduct vormen. Als $\psi$ dit een kolomvector is, kunt u deze in diracnotatie 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 invoergewijze complexe samenvoeging toe te passen 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, dat per definitie $1$ is.

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

De volgende conventie wordt gebruikt om de kwantumtoestanden 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 toestanden 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 sommen worden eenvoudig uitgedrukt met behulp van Dirac-notatie. Het omgekeerde is ook waar omdat de toestanden $\ket{+}$ en $\ket{-}$ ook een basis vormen voor kwantumtoestanden. U kunt dit zien uit het feit dat

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

Als voorbeeld van Dirac-notatie kunt u de rem $\braket{0 | 1}$ beschouwen, wat het binnenste product tussen $0$ en $1$ is. Het kan worden geschreven als

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

In dit voorbeeld wordt aangegeven dat $\ket{{0}$ en $\ket{{1}$ orthogonale vectoren zijn, wat betekent dat $\braket{0 | 1 1 |\braket{=}0 0.}=$ Met 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 in het volgende voorbeeld gebruikt. Als u een toestand $\ket{\psi}{\frac{3}{5}}={1}\ket{+{4}{5}}{\frac{\ket{0}$ hebt, dan is de $\braket{kans op het meten $van 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-product notatie

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 zijn. Beknopt beschrijven 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 elke twee kwantumstatusvectoren $\phi$ en $\psi$ als .$\ket{\psi}\otimes\ket{\phi}$ Door conventies tussen de vectoren te schrijven $\otimes$ is echter onnodig en kunt u schrijven\ket{\psi$\ket{\psi}$\ket{\phi}=\phi}. Zie Vectoren en Matrices in Quantum Computing voor meer informatie over vectoren en tensorproducten. De status met twee qubits die zijn geïnitialiseerd naar 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 het evenzeer uitdrukken als

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

In deze notatie hoeft u niet naar een status met één qubit te verwijzen, $\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\otimes=\ket{0}=\end{bmatrix}| 0 0\cdots=\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 is voor elke mogelijke bittekenreeks met 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$ tot $2^{n-1$} gaat voor $n$ bits. Houd er eerst rekening mee dat er 2^{n}$ verschillende configuraties zijn $die $n$ bits kunnen nemen. U kunt dit zien door te noteren dat één bit 2$ waarden kan aannemen$, maar twee bits kunnen vier$ waarden nemen$, enzovoort. Over het algemeen betekent dit dat er 2^n$ verschillende mogelijke bittekenreeksen zijn$, maar dat de grootste waarde die in een van deze $tekenreeksen is gecodeerd 1\cdots 1=2^n-1$ en daarom de bovengrens voor de som is. In dit voorbeeld hebt u in dit voorbeeld geen +^ n+ gebruikt in analogie met{0}$\ket{ ^{\otimes n{0}$}\ket{=.}$}=\ket{{\otimes}$\ket{ Deze notatieconventie is gereserveerd voor de rekenkundige basisstatus, waarbij elke qubit is geïnitialiseerd tot nul. Hoewel een dergelijke conventie in dit geval verstandig is, wordt deze niet gebruikt in de literatuur over kwantumcomputing.

Express lineariteit met Dirac-notatie

Een andere functie van Dirac-notatie is het feit dat het 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, u kunt de tensor product notatie in Dirac notatie distribueren, zodat het nemen van tensorproducten tussen toestandsvectoren eruitziet net als gewone vermenigvuldiging.

Bra vectoren volgen een soortgelijke 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 ketvector + \betais, is $\bra{\psi}=\ket{\psi}$\alpha\ket{0} de bra vectorversie van de vector ^\dagger= (\bra{{0}\alpha^* +\bra{1}\beta^*)$.\ket{1}$$\ket{\psi}$

Stel bijvoorbeeld dat u de waarschijnlijkheid van het meten van de toestand $\ket{\psi}\frac{3}{5}\ket{{1}=+ \frac{4}{5}\ket{0}$ met behulp van een kwantumprogramma wilt berekenen voor het meten van toestanden als $\ket{+}$ of .$\ket{{-}$ Vervolgens wordt 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 wordt weergegeven in de berekening van de waarschijnlijkheid, is een manifestatie van kwantuminterferentie, een van de mechanismen waarmee kwantumcomputing voordelen krijgt ten opzichte van klassieke computing.

ketbra of buitenproduct

Het laatste artikel dat in Dirac notatie besproken moet worden, is het ketbra - of buitenproduct. Het buitenproduct wordt in Dirac-notaties weergegeven als $\ket{\psi}\bra{\phi}$, en soms ketbras genoemd, omdat de bra's en kets in de tegenovergestelde volgorde voorkomen als remmen. Het buitenste product wordt gedefinieerd via matrixvermendiging als $\ket{\psi}\phi=\bra{\phi}\psi^\dagger$ voor kwantumstatusvectoren $\psi$ en .$\phi$ Het eenvoudigste en waarschijnlijk 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 0\end{bmatrix}=\ket{1}\qquad\begin{bmatrix}\\\bra{1} 1 \end{bmatrix}\begin{bmatrix}0& 1 \end{bmatrix}=\begin{bmatrix}0 & 0\\ 0 & 1\end{bmatrix}. $$

Ketbras worden vaak projectors genoemd omdat ze een kwantumstatus projecteren op een vaste waarde. Omdat deze bewerkingen niet unitair zijn (en zelfs de norm van een vector niet behouden), kan een kwantumcomputer geen projector deterministisch toepassen. Projectors doen echter een mooie taak om de actie te beschrijven die meting heeft op een kwantumstatus. Als u bijvoorbeeld een status $\ket{\psi}$ meet als $0$, is de resulterende transformatie die de status ondervindt 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 vond dat deze zou zijn $\ket{0}$. Om dit te herhalen, kunnen dergelijke projectors niet op een status in een kwantumcomputer deterministisch worden toegepast. In plaats daarvan kunnen ze het beste willekeurig worden toegepast met het resultaat $\ket{0}$ dat wordt weergegeven met een bepaalde 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,$$

dit illustreert dat projectors een nieuwe manier geven om het meetproces uit te drukken.

Als u in plaats daarvan de eerste qubit van een multi-qubitstatus als $1$ wilt meten, 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 worden geschreven in Dirac notatie als

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

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

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

vervolgens kunt u zien dat dit consistent is met de discussie over meetkansen voor multiqubitstatussen met behulp van kolomvector notatie:

$$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 discussie over de multi-qubitmeting. De generalisatie van dit resultaat voor de case met meerdere qubits is echter iets eenvoudiger om uit te drukken met behulp van diracnotatie dan kolomvectornotatie en is volledig gelijk aan de vorige behandeling.

Dichtheidsoperators

Een andere handige operator om uit te drukken met behulp van Dirac-notatie is de dichtheidsoperator, ook wel bekend als een statusoperator. Als kwantumstatusvector beschrijft de dichtheidsoperator de kwantumstatus van een systeem. Hoewel kwantumtoestandsvectoren alleen pure toestanden kunnen vertegenwoordigen, kunnen dichtheidsoperatoren ook gemengde toestanden vertegenwoordigen.

Over het algemeen is een gegeven 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 niet-negatief
  • Alle eigenwaarden van $\rho$ sum tot 1

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

Pure kwantumtoestanden zijn de toestanden die worden gekenmerkt door één ketvector of golffunctie en kunnen niet worden geschreven als een statistische combinatie (of een convexe combinatie) van andere kwantumtoestanden. Een gemengde kwantumtoestand is een statistisch ensemble van pure toestanden.

Op een Bloch-bol worden pure toestanden vertegenwoordigd door een punt op het oppervlak van de bol, terwijl gemengde toestanden worden vertegenwoordigd door een binnenste punt. De gemengde toestand 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 weergeven van de status als een matrix, in plaats van een vector, is vaak handig omdat het een handige manier biedt om waarschijnlijkheidsberekeningen weer te geven, en u kunt ook zowel statistische onzekerheid als kwantum onzekerheid binnen hetzelfde formalisme beschrijven.

Een dichtheidsoperator $\rho$ vertegenwoordigt een pure status als en alleen als:

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

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

Q# poortreeksen die gelijk zijn aan kwantumstatussen

Een laatste punt dat de kwantum notatie en de Q# programmeertaal waard is: het begin van dit document vermeldt dat de kwantumstatus het fundamentele object is van informatie in kwantumcomputing. Het kan dan als een verrassing komen dat er Q# geen 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 op 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 het ontworpen om poortreeksen te verzenden in plaats van kwantumtoestanden. Op theoretisch niveau zijn de twee perspectieven echter gelijkwaardig.

Volgende stappen