Delen via


Bewerkingen op meerdere qubits

In dit artikel worden de regels besproken die worden gebruikt voor het bouwen van multi-qubitstatussen uit één qubitstatus en worden de poortbewerkingen besproken die nodig zijn om op te nemen in een poortset om een universele veel-qubit-kwantumcomputer te vormen. Deze hulpprogramma's zijn nodig om inzicht te krijgen in de poortsets die vaak worden gebruikt in Q# code. Ze zijn ook belangrijk om intuïtiever te worden over waarom kwantumeffecten, zoals verstrengeling of interferentie, kwantumcomputing krachtiger maken dan klassieke computing.

Poorten met één qubit en meerdere qubits

De ware kracht van kwantumcomputing wordt alleen duidelijk wanneer u het aantal qubits verhoogt. Enkele qubits hebben enkele tegen-intuïtieve functies, zoals de mogelijkheid om meerdere statussen tegelijk te hebben. Als het enige wat u in een kwantumcomputer had, echter poorten met één qubit waren, dan zou een rekenmachine en zeker een klassieke supercomputer de rekenkracht verknuiven.

Kwantumcomputingskracht ontstaat deels omdat de dimensie van de vectorruimte van kwantumstatusvectoren exponentieel groeit met het aantal qubits. Dit betekent dat hoewel één qubit trivially kan worden gemodelleerd, het simuleren van een kwantumberekening met vijftig qubits de limieten van bestaande supercomputers zou verleggen. Als u de berekening vergroot met slechts één extra qubit, verdubbelt u het geheugen dat nodig is om de status op te slaan en verdubbelt u de rekentijd. Deze snelle verdubbeling van rekenkracht is waarom een kwantumcomputer met een relatief klein aantal qubits de krachtigste supercomputers van vandaag, morgen en verder kan overstijgen voor sommige rekenkundige taken.

Twee qubitstatussen

Als u twee afzonderlijke qubits hebt, één in de toestand $\psi=\begin{bmatrix}\\\end{bmatrix}$\beta\alphaen de andere in de toestand$\phi=\begin{bmatrix}\delta\\\end{bmatrix}$\gamma, wordt de corresponderende twee-qubitstatus gegeven door het tensorproduct (of het Kroncker-product) van vectoren, die als volgt wordt gedefinieerd

$$\psi\otimes\phi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}\otimes\begin{bmatrix}\gamma\\\delta\end{bmatrix}=\begin{bmatrix}\alpha\begin{bmatrix}\gamma\\\delta\end{bmatrix}\\\beta\begin{bmatrix}\gamma\\\delta\end{bmatrix}\end{bmatrix}=\begin{bmatrix}\alpha\gamma\\\alpha\delta\\\beta\gamma\\\beta\delta\end{bmatrix}. $$

Daarom is de overeenkomstige twee qubitstatussen\otimes$\psi\phi$ 4dimensionaal, gegeven twee qubitstatussen $\psi$ en $\phi$, elk van dimensie 2. De vector

$$\begin{bmatrix}\alpha_{{00}\alpha\\_{\\\alpha{01}__{{10}\\\alpha{{11}\end{bmatrix}$$

vertegenwoordigt een kwantumstatus op twee qubits als

$$|\alpha_{00}|^2+|\alpha_{01}|^2+|\alpha_{{10}|^2+|\alpha_{{11}|^2=1.$$

Over het algemeen ziet u dat de kwantumtoestand van $n$ qubits wordt vertegenwoordigd door een eenheidsvector $v_1 \otimes v_2 \otimes\cdots\otimes v_n$ van dimensie $2 \cdot 2 \cdot 2 2 \cdots= ^n$ met behulp van deze constructie. Net als bij enkele qubits bevat de kwantumstatusvector van meerdere qubits alle informatie die nodig is om het gedrag van het systeem te beschrijven. Zie Vectoren en Matrices in Quantum Computing voor meer informatie over vectoren en tensorproducten.

De rekenkundige basis voor twee qubitstatussen wordt gevormd door de tensorproducten van basisstatussen van één qubit. U hebt bijvoorbeeld

$$\begin{\begin{align}00 \equiv\begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 0 0 0, 01 \equiv\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1=\begin{bmatrix}\end{bmatrix} 0 \\ 1\\ 0\\ 0\end{bmatrix},\\ 10 \equiv\begin{bmatrix}0 \\ 1\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&\begin{bmatrix}=\qquad \end{bmatrix}\\\\ \\0 0 \\ 1 0 , 11 \equiv\begin{bmatrix}0 \\ 1\begin{bmatrix}\end{bmatrix}\otimes 0 \\ 1 \end{bmatrix}\begin{bmatrix}=0 0 \\ 0\\\\ 1 .\end{bmatrix}\qquad \end{bmatrix}\\\\ \end{align} $$

Hoewel u altijd het tensorproduct van twee statussen met één qubit kunt gebruiken om een twee-qubitstatus te vormen, kunnen niet alle kwantumstatussen van twee qubits worden geschreven als het tensorproduct van twee statussen met één qubit. Er zijn bijvoorbeeld geen staten $\psi=\begin{bmatrix}\alpha\beta\end{bmatrix}$\\en\gamma$\phi=\begin{bmatrix}\\\delta\end{bmatrix}$ zodanig dat hun tensor-product de status is

$$\psi\otimes\phi=\begin{bmatrix}1/\sqrt{{2}\\ 0 \\ 0 \\ 1/.\sqrt{{2}\end{bmatrix}$$

Een dergelijke twee-qubitstatus, die niet kan worden geschreven als het tensorproduct van statussen met één qubit, wordt een " verstrengelde toestand"; de twee qubits worden verstrengeld. Losjes gezegd, omdat de kwantumstatus niet kan worden beschouwd als een tensorproduct van enkelvoudige qubitstatussen, is de informatie die de status bevat niet beperkt tot een van de qubits afzonderlijk. In plaats daarvan wordt de informatie niet-lokaal opgeslagen in de correlaties tussen de twee statussen. Deze niet-lokaliteit van informatie is een van de belangrijkste onderscheidende functies van kwantumcomputing ten opzichte van klassieke computing en is essentieel voor een aantal kwantumprotocollen, waaronder kwantumfoutcorrectie.

Twee qubitstatussen meten

Het meten van twee qubitstatussen is vergelijkbaar met met metingen met één qubit. De status meten

$$\begin{bmatrix}\alpha_{{00}\alpha\\_{\\\alpha{01}__{{10}\\\alpha{{11}\end{bmatrix}$$

geeft $00$ met kans $|\alpha_{00}|{^2$, $01$ met kans $|\alpha_{01}|^2$, $10$ met kans $|\alpha_{{10}|^2$ en $11$ met kans $|\alpha_{11}|^2.$ De variabelen $\alpha_, \alpha_{00}{{01}, \alpha_{10}{en$ $\alpha_{11}$ zijn bewust benoemd om deze verbinding duidelijk te maken. Als het resultaat na de meting 00$is, is $de kwantumstatus van het systeem met twee qubits samengevouwen en is nu

$$ 00 \equiv\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}. $$

Het is ook mogelijk om slechts één qubit van een kwantumtoestand met twee qubits te meten. Wanneer u slechts één qubit van een toestand van twee qubits meet, is de impact van meting subtubelijk anders dan het meten van twee qubits. Dit komt doordat de hele status niet is samengevouwen tot een rekenkundige basisstatus, maar wordt deze samengevouwen tot slechts één subsysteem. Met andere woorden, het meten van één qubit van een twee-qubitstatus vouwt het gerelateerde subsysteem alleen samen met een rekenbasisstatus.

U kunt dit zien door de eerste qubit van de volgende toestand te meten, die wordt gevormd door het toepassen van de Hadamard-transformatie $H$ op twee qubits die in eerste instantie zijn ingesteld op het " 0" status:

$$H^{\otimes 2\left}( \begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 1 \\ 0 \end{bmatrix}\right){1}{2}\begin{bmatrix}\frac{= 1 & 1 && 1 \\ amp; -1 & 1 & 1 & -1 &\\ amp; 1 & -1 & -1 \\ amp; -1 & -1 & -1 & 1 1\\ \end{bmatrix}\begin{bmatrix}0\\ 0 0\\ 1\end{bmatrix}={1}{2}\begin{bmatrix}\frac{\\ 1\\ 1 1 1\begin{cases}\text{\\\end{bmatrix}\mapsto resultaat }=0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1\\ 1\\ 0\\ 0 \end{bmatrix}\\\text{resultaat }=1 & \frac{{1}{\sqrt{{2}}\begin{bmatrix}0 0 1 1 1\end{cases}\end{bmatrix}\\ .\\\\\\ $$ Beide resultaten hebben een kans van 50% opgetreden. Dat kan worden afgeleid van het feit dat de kwantumtoestand voordat de meting niet verandert als $0$ wordt gewisseld met $1$ op de eerste qubit.

De wiskundige regel voor het meten van de eerste of tweede qubit is eenvoudig. Laat e_k de k^{\rm th}$ rekenkundige basisvector zijn en $S$ de set van alle $e_k$ zodanig dat de qubit in kwestie de waarde $1$ voor die waarde k$$ neemt.$$$ Als u bijvoorbeeld geïnteresseerd bent in het meten van $de eerste qubit, $bestaat S$ uit e_1\equiv 10$ en $e_3\equiv 11$. Als u geïnteresseerd bent in de tweede qubit $S$ , bestaat dit ook uit $e_2\equiv 01$ en $e_3 \equiv 11$. Vervolgens is de kans op het meten van de gekozen qubit $1$ voor de toestandsvector $\psi$

$$P(\text{resultaat}=1)\sum=_{e_k \text{ in de set } S}\psi^\dagger e_k e_k^\dagger\psi. $$

Notitie

In dit artikel wordt de little-endian-indeling gebruikt om de rekenkundige basis te labelen. In little endian-indeling komen de minst significante bits eerst voor. Het getal vier in de little-endian-indeling wordt bijvoorbeeld vertegenwoordigd door de tekenreeks bits 001.

Omdat elke qubitmeting slechts 0 of 1 kan opleveren$, is de kans op het meten $van 0$ gewoon $1-P(\text{uitkomst}=1)$.$$$ Daarom hebt u alleen een formule nodig voor de waarschijnlijkheid van het meten $van 1$.

De actie die een dergelijke meting op de status heeft, kan wiskundig worden uitgedrukt als

$$\psi\mapsto\frac{\sum_{e_k \text{ in de set } S} e_k e_k^\psi}{\sqrt{\daggerP(\text{resultaat}=1)}}. $$

De voorzichtige lezer kan zich zorgen maken over wat er gebeurt als de noemer nul is. Hoewel een dergelijke status niet is gedefinieerd, hoeft u zich geen zorgen te maken over dergelijke uiteindelijk, omdat de kans nul is!

Als u $\psi$ de bovenstaande uniforme toestandsvector wilt zijn en geïnteresseerd bent in het meten van de eerste qubit, dan

$$P(\text{meting van eerste qubit}=1) = (\psi^\dagger e_1)(e_1^\dagger\psi)+(\psi^\dagger e_3)(e_3^\dagger\psi)=|e_1^\psi|\dagger2+|e_3^\dagger\psi|2. $$

Houd er rekening mee dat dit slechts de som is van de twee waarschijnlijkheden die worden verwacht voor het meten van de resultaten $10$ en $11$. In ons voorbeeld wordt dit geëvalueerd

$$\frac{{1}{4}\left|\begin{bmatrix}0& 0& 1& 0\end{bmatrix}\begin{bmatrix}1\\ 1 1\\ 1\right|\end{bmatrix}\\^2+\frac{1}{{4}\left|\begin{bmatrix}0& 0& 0& 1\end{bmatrix}\begin{bmatrix}1\\ 1\\ 1\\ 1\end{bmatrix}\right|^2=\frac{{1}{{2}. $$

wat perfect overeenkomt met onze intuïtiefheid. Op dezelfde manier kan de status nadat de eerste qubit is gemeten als $1$ worden geschreven als

$$\frac{\frac{}{2}e_1+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0\\ 0\\ 1 1\\\end{bmatrix}$$

weer in overeenstemming met onze intuïtiefheid.

Twee qubitbewerkingen

Net als in het geval van één qubit is elke eenheidstransformatie een geldige bewerking op qubits. In het algemeen is een eenheidstransformatie op $n qubits een matrix $U$ van grootte $2^n 2^n \times$ (zodat deze werkt op vectoren van grootte $2^n$), zodat $U^{-1}= U^\dagger$.$ De CNOT-poort (controlled-NOT) is bijvoorbeeld een veelgebruikte twee-qubitpoort en wordt vertegenwoordigd door de volgende unitaire matrix:

$$\operatorname{CNOT}=\begin{bmatrix} 1\ 0\ 0\ 0 \\ \ 0\ 1\ 0\ 0 \\ \ 0\ 0\ 1 \\ 0\ 0\ 1\ 0 \end{bmatrix}$$

We kunnen ook twee qubitpoorten vormen door single-qubit-poorten toe te passen op beide qubits. Als u bijvoorbeeld de poorten toepast

$$\begin{bmatrix} a\ b c\\ \ d \end{bmatrix}$$

en

$$\begin{bmatrix} e\ f g\\ \ h \end{bmatrix}$$

voor respectievelijk de eerste en tweede qubits komt dit overeen met het toepassen van de twee qubit-eenheidseenheid die is gegeven door hun tensorproduct: $$\begin{bmatrix} a\ b c\\\ d\otimes\begin{bmatrix} \end{bmatrix}e\ f g\\\ h \end{bmatrix}=\begin{bmatrix} ae\ af\ be\ bf \\ ag\ ah\ bg\ bh \\ ce\ cf\ de\ df \\ cg\ ch\ dg\ dh .\end{bmatrix}$$

U kunt dus twee qubitpoorten vormen door het tensorproduct van enkele bekende poorten met één qubit te nemen. Enkele voorbeelden van twee qubitpoorten zijn $H H$\otimes, $X \otimes\mathbf{1}$en $X \otimes Z$.

Houd er rekening mee dat hoewel twee poorten met één qubit een twee-qubitpoort definiëren door hun tensorproduct te nemen, het omgekeerde niet waar is. Niet alle twee qubitpoorten kunnen worden geschreven als het tensorproduct van poorten met één qubit. Zo'n poort wordt een verstrengelingspoort genoemd. Een voorbeeld van een verstrengelingspoort is de CNOT-poort.

De intuïtiefheid achter een gecontroleerde niet-poort kan worden gegeneraliseerd tot willekeurige poorten. Een gecontroleerde poort in het algemeen is een poort die fungeert als identiteit, tenzij een specifieke qubit 1$ is$. U geeft een gecontroleerde eenheid aan, die in dit geval wordt beheerd op de qubit met $het label x$, met een $\Lambda_x(U)$. Als voorbeeld $\Lambda_0(U) e_{1}\otimes{{\psi}=e_{1}\otimes U{\psi}$ en $\Lambda_0(U) e_{0}\otimes{\psi}={e_{{0}\otimes{\psi}$, waarbij $e_0$ en $e_1$ de rekenkundige basisvectoren zijn voor één qubit die overeenkomt met de waarden $0$ en $1.$ Denk bijvoorbeeld aan de volgende gecontroleerde Z-poort$$, dan kunt u dit uitdrukken als

$$\Lambda_0(Z)=\begin{bmatrix}1& 0& 0& 0\\0& 1& 0& 0\\0& 0& 1& 0\\0& 0& 0&-1 \end{bmatrix}=(\mathbf\mathbf{1}\otimes{ H)\operatorname{CNOT}(\mathbf{1}\otimes H). $$

Het bouwen van beheerde eenheidsbestanden op een efficiënte manier is een grote uitdaging. De eenvoudigste manier om dit te implementeren, vereist het vormen van een database van gecontroleerde versies van fundamentele poorten en het vervangen van elke fundamentele poort in de oorspronkelijke eenheidsbewerking met zijn gecontroleerde tegenhanger. Dit is vaak nogal verspilling en slim inzicht kan vaak worden gebruikt om slechts een paar poorten te vervangen door gecontroleerde versies om dezelfde impact te bereiken. Daarom biedt het framework de mogelijkheid om de naïve methode voor het beheren of toestaan van de gebruiker om een gecontroleerde versie van de unitaire te definiëren als een geoptimaliseerde hand-afgestemde versie bekend is.

Poorten kunnen ook worden beheerd met behulp van klassieke informatie. Een klassiek gecontroleerde not-gate is bijvoorbeeld alleen een gewone not-gate, maar wordt alleen toegepast als een klassieke bit 1$ is $in plaats van een kwantumbit. In deze zin kan een klassieke gecontroleerde poort worden beschouwd als een if-instructie in de kwantumcode waarbij de poort slechts in één vertakking van de code wordt toegepast.

Net als in het geval van één qubit is een twee-qubitpoortset universeel als een $4 4\times 4$ unitaire matrix kan worden geschat door een product van poorten van deze set op willekeurige precisie. Een voorbeeld van een universele poortset is de Hadamard-poort, de T-poort en de CNOT-poort. Door producten van deze poorten te nemen, kunt u bij benadering elke eenheidsmatrix op twee qubits benaderen.

Veel-qubitsystemen

We volgen precies dezelfde patronen die in het geval van twee qubits zijn verkend om kwantumstatussen met veel qubits te bouwen van kleinere systemen. Dergelijke toestanden worden gebouwd door tensorproducten van kleinere staten te vormen. U kunt bijvoorbeeld de bittekenreeks $coderen 1011001$ in een kwantumcomputer. U kunt dit coderen als

$$1011001 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 1\begin{bmatrix}\otimes\end{bmatrix} 0\begin{bmatrix} \end{bmatrix}\otimes\\ 1 \\ 0 0\begin{bmatrix} \end{bmatrix}\otimes\\ 1 .\end{bmatrix}\equiv\begin{bmatrix} $$

Kwantumpoorten werken op precies dezelfde manier. Als u bijvoorbeeld de $X-poort$ wilt toepassen op de eerste qubit en vervolgens een CNOT tussen de tweede en derde qubits wilt uitvoeren, kunt u deze transformatie uitdrukken als

\begin{\begin{align}&Amp; (X \otimes\operatorname{CNOT}_{{12}\otimes\mathbf{1}\otimes \mathbf \mathbf \mathbf{{\mathbf{1}\otimes\mathbf{1}\mathbf{1}\otimes{) \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 0\begin{bmatrix} \\ \end{bmatrix}\otimes1\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 1\begin{bmatrix} \\\otimes\end{bmatrix}0 1 \\ 0\begin{bmatrix}\begin{bmatrix} \end{bmatrix}\otimes\end{bmatrix}\otimes0 \\ 1 \end{bmatrix}\\&\qquad\qquad\equiv 0011001. \end{align}

In veel qubitsystemen is er vaak behoefte aan het toewijzen en ongedaan maken van de toewijzing van qubits die fungeren als tijdelijk geheugen voor de kwantumcomputer. Een dergelijke qubit wordt gezegd hulp te zijn. Standaard kunt u ervan uitgaan dat de qubitstatus wordt geïnitialiseerd tot $e_0$ bij de toewijzing. U kunt er verder van uitgaan dat deze opnieuw wordt geretourneerd naar $e_0$ vóór de toewijzing van de deal. Deze veronderstelling is belangrijk omdat als een hulp-qubit verstrengeld raakt met een ander qubitregister wanneer de toewijzing ongedaan wordt gemaakt, het proces van deallocatie de hulp-qubit zal beschadigen. Daarom gaat u er altijd van uit dat dergelijke qubits worden teruggezet naar de oorspronkelijke status voordat ze worden vrijgegeven.

Tot slot, hoewel er nieuwe poorten aan onze gateset moest worden toegevoegd om universele kwantumcomputing voor twee qubit kwantumcomputers te bereiken, hoeven er geen nieuwe poorten te worden geïntroduceerd in het geval van meerdere qubits. De poorten $H$, $T$ en CNOT vormen een universele poortset op veel qubits, omdat een algemene eenheidstransformatie kan worden opgesplitst in een reeks van twee qubitrotaties. Vervolgens kunt u gebruikmaken van de theorie die is ontwikkeld voor de case van twee qubits en deze hier opnieuw gebruiken wanneer u veel qubits hebt.

Notitie

Hoewel de lineaire algebraïsche notatie die tot nu toe is gebruikt, zeker kan worden gebruikt om toestanden met meerdere qubits te beschrijven, wordt het steeds lastiger wanneer u de grootte van de toestanden vergroot. De resulterende kolomvector voor een lengte van 7-bits tekenreeks is $bijvoorbeeld 128$ dimensional, waardoor deze wordt weergegeven met behulp van de notatie die eerder erg omslachtig is beschreven. In plaats daarvan wordt diracnotatie, een symbolische afkorting die de weergave van kwantumtoestanden vereenvoudigt, gebruikt. Zie Dirac-notatie voor meer informatie.