Dela via


Kvantbiten i kvantberäkning

Precis som bitar är det grundläggande objektet för information 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

Medan 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 av enhetsnormen, 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 inom kvantberäkning finns i Vektor och matriser.

Alla 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 qubit-tillstå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{\frac{\begin{bmatrix}{1}{\sqrt{2}}\\\end{bmatrix}{1}{\sqrt{2}} ,\frac{1}{\sqrt{\end{bmatrix}\begin{bmatrix}\frac{\\{-1}{\sqrt{2}}{2}} och\\{2}}\frac{}\begin{bmatrix}\frac{1}{\sqrt{\text{ 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 vektorutrymmet 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 den här specifika genom att kalla den beräkningsbasen.

Dessa två kvanttillstånd tas 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 endast två tillstånd av 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 stater representerar genom att diskutera begreppet mätning. En mätning motsvarar den informella idén att "titta" på en kvantbit, som omedelbart kollapsar 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 utfall $0$ med sannolikhet $|\alpha|^2$ och utfall $1$ med sannolikhet $|\beta|^2.$ På utfall $0$ är $\begin{bmatrix} kvantbitens nya tillstånd 1 \\ 0 \end{bmatrix}$; på utfall $1$ är $\begin{bmatrix} dess tillstånd 0 \\ 1 \end{bmatrix}$. Observera att dessa sannolikheter summerar upp till $1$ på grund av normaliseringsvillkoret $|\alpha|^2 + |\beta|^2 = 1$.

Mätningens 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 i kvadrat ändrar infogning av sådana tecken inte sannolikheten alls. Sådana faser kallas &ofta quot;globala faser" och mer allmänt kan vara av formatet $e^{i \phi}$ snarare ä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-sats.

Visualisera kvantbitar och transformeringar med bloch-sfären

Qubits kan också avbildas i $3 D 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 verklig värdevektor. 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å multi-qubit-tillstånd (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 omvandling av pilen kan betraktas som en rotation om en av kardinalaxlarna. Även om det är en kraftfull intuition att tänka på en kvantberäkning som en sekvens av rotationer, är det svårt att använda denna intuition för att utforma och beskriva algoritmer. Q# lindrar 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 transformering av indatabitarna kan utföras med hjälp av en begränsad längdkrets. Inom kvantberäkning är de giltiga transformeringar som vi får utföra på en kvantbit enhetstransformeringar och mätningar. Den angränsande åtgärden eller den komplexa konjugattransponeringen är av avgörande betydelse för kvantberäkning eftersom den behövs för att invertera kvanttransformeringar.

En 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 kallat $\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 \\ 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 deras skapare Wolfgang Pauli. Tillsammans med icke-Clifford-grinden $(T-gaten$) kan dessa åtgärder bestå för att approximeras vid en enhetlig omvandling på en enda kvantbit.

Medan 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 som är tillgängliga för implementering av enheter på högre nivå, vilket i sin tur gör att algoritmer på hög nivå kan implementeras utan att uttryckligen dela upp allt till Clifford och $T-gates$.

Den enklaste sådana primitiva är den enda qubit-rotationen. Tre rotationer med en kvantbit beaktas vanligtvis: $R_x$, $R_y$ och $R_z$. Om du till exempel vill visualisera rotationsåtgärden $R_x(\theta)$ kan du tänka dig att du pekar höger tumme längs riktningen $för blockh-sfärens x-axel$ 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. Mer 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 den inte är en diskret uppsättning eftersom $\theta$ kan ta valfritt värde. Därför, 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 kommer de slutligen att kompileras till diskreta grindsekvenser som nära approximerar dessa rotationer.