Kvantbiten i kvantberäkning

Precis som bitar är det grundläggande informationsobjektet inom klassisk databehandling är kvantbitar (kvantbitar) det grundläggande informationsobjektet inom kvantberäkning. För att förstå den här korrespondensen tittar den här artikeln på det enklaste exemplet: en enda qubit.

Representerar en qubit

Även om en bit, eller en binär siffra, kan ha ett värde antingen 0 eller 1, kan en kvantbit ha ett värde som är antingen $0$, $1$ eller en kvantsuperposition på $0$ och $1$.$$$$

Tillståndet för en enda kvantbit kan beskrivas av en tvådimensionell kolumnvektor för enhetsnorm, det vill säga storleken på dess poster måste summeras till $1$. Den här vektorn, som kallas kvanttillståndsvektor, innehåller all information som behövs för att beskriva kvantsystemet med en kvantbit, precis som en enda bit innehåller all information som behövs för att beskriva tillståndet för en binär variabel. Grunderna i vektorer och matriser i kvantberäkning finns i Linjär algebra för kvantberäkning och vektorer och matriser.

Tvådimensionella kolumnvektorer med verkliga eller komplexa tal med norm $1$ representerar ett möjligt kvanttillstånd som innehas av en kvantbit. Representerar således $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ ett qubittillstånd om $\alpha$ och $\beta$ är komplexa tal som uppfyller $|\alpha|^2 + |\beta|^2 = 1.$ Några exempel på giltiga kvanttillståndsvektorer som representerar kvantbitar är

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}, \begin{bmatrix} 0 \\ 1 \end{bmatrix},\frac{\\\end{bmatrix}{1}{\sqrt{2}}\begin{bmatrix}\frac{{1}{\sqrt{2}} ,\frac{1}{\sqrt{\begin{bmatrix}{2}}\end{bmatrix}\\\text{\frac{{-1}{\sqrt{2}} och\\\frac{\frac{1}{\sqrt{{2}}}\begin{bmatrix} i.}{\sqrt{2}}\end{bmatrix}$$

Kvanttillståndsvektorerna $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ och $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$ har en särskild roll. Dessa två vektorer utgör en grund för det vektorutrymme som beskriver kvantbitens tillstånd. Det innebär att alla kvanttillståndsvektorer kan skrivas som en summa av dessa basvektorer. Mer specifikt kan vektorn $\begin{bmatrix} x \\ y \end{bmatrix}$ skrivas som $x \begin{bmatrix} 1 \\ 0 \end{bmatrix} + y \begin{bmatrix} 0 \\ 1 \end{bmatrix}$. Även om varje rotation av dessa vektorer skulle fungera som en helt giltig grund för kvantbiten, väljs just den här genom att den anropas som beräkningsbas.

Dessa två kvanttillstånd används för att motsvara de två tillstånden för en klassisk bit, nämligen $0$ och $1$. Standardkonventionen är att välja

$$0\equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}, \qquad 1 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix},$$

även om det motsatta valet lika gärna skulle kunna tas. Av det oändliga antalet möjliga kvanttillståndsvektorer med en kvantbit motsvarar därför bara två tillstånd för klassiska bitar; alla andra kvanttillstånd gör det inte.

Mäta en kvantbit

Hur man representerar en qubit som förklaras, kan man få lite intuition för vad dessa tillstånd representerar genom att diskutera begreppet mätning. Ett mått motsvarar den informella idén att "titta" på en kvantbit, som omedelbart minimerar kvanttillståndet till ett av de två klassiska tillstånden $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ eller $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$. När en kvantbit som anges av kvanttillståndsvektorn $\begin{bmatrix}\alpha\\\end{bmatrix}$\betamäts erhålls utfallet $0$ med sannolikheten $|\alpha|^2$ och utfallet $1$ med sannolikheten $|\beta|^2.$ För utfall $0$ är $\begin{bmatrix} kvantbitens nya tillstånd 1 \\ 0 \end{bmatrix}$. För utfall $1$ är $\begin{bmatrix} dess tillstånd 0 \\ 1 \end{bmatrix}$. Observera att dessa sannolikheter summerar till $1$ på grund av normaliseringsvillkoret $|\alpha|^2 + |\beta|^2 = 1$.

Måttets egenskaper innebär också att det övergripande tecknet för kvanttillståndsvektorn är irrelevant. Negering av en vektor motsvarar $\alpha\rightpilen -\alpha$ och $\beta\rightpilen -\beta$. Eftersom sannolikheten för att mäta $0$ och $1$ beror på termernas storlek, ändrar inte infogningen av sådana tecken sannolikheten alls. Sådana faser kallas &ofta quot;globala faser" och mer allmänt kan vara av formatet $e^{i snarare \phi}$ än bara $\pm 1$.

En sista viktig egenskap för mätning är att den inte nödvändigtvis skadar alla kvanttillståndsvektorer. Om man börjar med en kvantbit i tillståndet $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$, vilket motsvarar det klassiska tillståndet $0$, ger mätning av det här tillståndet alltid resultatet $0$ och lämnar kvanttillståndet oförändrat. I den meningen, om det bara finns klassiska bitar (till exempel kvantbitar som antingen $\begin{bmatrix}är 1 \\ 0 \end{bmatrix}$ eller $\begin{bmatrix}0 \\ 1 \end{bmatrix}$) skadar mätningen inte systemet. Det innebär att man kan replikera klassiska data och manipulera dem på en kvantdator precis som man kan göra på en klassisk dator. Möjligheten att lagra information i båda tillstånden samtidigt är dock det som höjer kvantberäkning utöver vad som är möjligt klassiskt och ytterligare berövar kvantdatorer möjligheten att kopiera kvantdata urskillningslöst, se även no-cloning-satsen.

Visualisera kvantbitar och transformeringar med bloch-sfären

Kvantbitar kan också avbildas i $3D$med bloch-sfärrepresentationen . Bloch-sfären ger ett sätt att beskriva ett kvanttillstånd med en kvantbit (som är en tvådimensionell komplex vektor) som en tredimensionell vektor med verkliga värden. Detta är viktigt eftersom det gör att vi kan visualisera enstaka qubit-tillstånd och därmed utveckla resonemang som kan vara ovärderliga för att förstå tillstånd med flera kvantbitar (där bloch-sfärrepresentationen tyvärr bryts ned). Bloch-sfären kan visualiseras på följande sätt:

Bloch-sfär

Pilarna i det här diagrammet visar i vilken riktning kvanttillståndsvektorn pekar och varje transformering av pilen kan betraktas som en rotation om en av kardinalaxlarna. Att tänka på en kvantberäkning som en sekvens av rotationer är en kraftfull intuition, men det är svårt att använda den här intuitionen för att utforma och beskriva algoritmer. Q# minskar problemet genom att tillhandahålla ett språk för att beskriva sådana rotationer.

Åtgärder med en kvantbit

Kvantdatorer bearbetar data genom att använda en universell uppsättning kvantgrindar som kan emulera valfri rotation av kvanttillståndsvektorn. Begreppet universalitet liknar begreppet universalitet för traditionell (till exempel klassisk) databehandling där en grinduppsättning anses vara universell om varje omvandling av indatabitarna kan utföras med hjälp av en begränsad längdkrets. Inom kvantberäkning är de giltiga transformeringar som vi tillåts utföra på en kvantbit enhetstransformeringar och mått. Adjoint-åtgärden eller den komplexa konjugattransponeringen är av avgörande betydelse för kvantberäkning eftersom den behövs för att invertera kvanttransformeringar.

Enkla kvantbitsåtgärder eller kvantgrindar med en kvantbit kan klassificeras i två kategorier: Clifford-grindar och icke-Clifford-grindar. Icke-Clifford-grindar består endast av $T-gate$ (även känd som \pi/8-grinden$$).

$$T=\begin{bmatrix} 1 amp; 0 \\ 0 & e^{i\pi/4}\end{bmatrix}.& $$

Standarduppsättningen med Clifford-portar med enkel qubit, som ingår som standard i Q#, inkluderar

$$ H=\frac{{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 \\ 1 &-1 \end{bmatrix} , \qquad S =\begin{bmatrix} 1 & 0 \\ 0 & i \end{bmatrix}= T^2, \qquad X=\begin{bmatrix} 0 & 1 \\ 1& 0 \end{bmatrix}= HT^4H, $$

$$ Y =\begin{bmatrix} 0 & -i \\& 0 \end{bmatrix}=T^2HT^4 HT^6, \qquad Z=\begin{bmatrix}1& 0\\ 0&-1 \end{bmatrix}=T^4. $$

Här används åtgärderna $X$, $Y$ och $Z$ särskilt ofta och får namnet Pauli-operatorer efter skaparen Wolfgang Pauli. Tillsammans med icke-Clifford-grinden $(T-gaten$) kan dessa åtgärder sammanställas för att uppskatta en enhetlig omvandling på en enda kvantbit.

Även om föregående utgör de mest populära primitiva portarna för att beskriva åtgärder på den logiska nivån i stacken (tänk på den logiska nivån som nivån för kvantalgoritmen), är det ofta praktiskt att överväga mindre grundläggande åtgärder på algoritmisk nivå, till exempel åtgärder närmare en funktionsbeskrivningsnivå. Lyckligtvis Q# har också metoder tillgängliga för implementering av enheter på högre nivå, vilket i sin tur gör det möjligt att implementera högnivåalgoritmer utan att uttryckligen dela upp allt till Clifford och $T-gates$.

Den enklaste primitiven är den enda kvantbitsrotationen. Tre rotationer med en kvantbit beaktas vanligtvis: $R_x$, $R_y$ och $R_z$. För att visualisera rotationsåtgärden $R_x(\theta)$, till exempel, kan du tänka dig att du pekar höger tumme längs riktningen $för x-axeln$ i Bloch-sfären och roterar vektorn med handen genom en vinkel av $\theta/2$ radianer. Den här förvirrande faktorn $2$ beror på att ortogonala vektorer är $180^\cirkla$ isär när de ritas på Bloch-sfären, men ändå faktiskt $är 90^\circ$ grader ifrån varandra geometriskt. Motsvarande enhetsmatriser är:

\begin{justera*}& R_z(\theta) = e^{-i\theta Z/2}=\begin{bmatrix} e^{-i\theta/2&}amp; 0 0\\& amp; e^{i\theta/2\end{bmatrix}}, \\& R_x(\theta) e^{-i\theta X/2=} HR_z(\theta)H =\begin{bmatrix} \cos(\theta/2) & -i\sin(\theta/2)\\ -i\sin(\theta/2) & \cos(\theta/2) \end{bmatrix}, \\& = R_y(\theta) e^-i\theta Y/2=} SHR_z(\theta)HS^\begin{bmatrix}=\dagger \cos(\theta/2) & -\sin(\theta/2)\\ \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}.{= \end{Justera*}

Precis som alla tre rotationer kan kombineras för att utföra en godtycklig rotation i tre dimensioner, kan det ses från Bloch-sfärrepresentationen att alla enhetsmatriser också kan skrivas som en sekvens med tre rotationer. Specifikt för varje enhetsmatris $U$ finns $\alpha,\beta,\gamma,\delta$ så att $U= e^{i\alpha} R_x(\beta)R_z(\gamma)R_x(\delta)$. Därför $bildar R_z(\theta)$ och $H$ också en universell grinduppsättning, även om det inte är en diskret uppsättning eftersom $\theta$ kan ta valfritt värde. Av den anledningen, och på grund av program i kvantsimulering, är sådana kontinuerliga grindar avgörande för kvantberäkning, särskilt på designnivå för kvantalgoritmer. För att uppnå feltolerant maskinvaruimplementering kompileras de slutligen till diskreta grindsekvenser som nära approximerar dessa rotationer.

Nästa steg