Share via


Conventies voor kwantumcircuitdiagrammen

Soms zijn kwantumalgoritmen gemakkelijker te begrijpen in een circuitdiagram dan in de equivalente geschreven matrixweergave. In dit artikel wordt uitgelegd hoe u kwantumcircuitdiagrammen en hun conventies kunt lezen.

Zie Diagrammen van kwantumcircuits visualiseren voor meer informatie.

Kwantumcircuitdiagrammen lezen

In een kwantumcircuit loopt de tijd van links naar rechts. Kwantumpoorten worden in chronologische volgorde geordend met de meest linkse poort als de poort die voor het eerst op de qubits wordt toegepast.

Neem het volgende kwantumcircuitdiagram als voorbeeld:

Diagram van een kwantumcircuit met twee registers, één hadamard-poort, één gecontroleerde poort en één meting.

  1. Qubitregister: Qubitregisters worden weergegeven als horizontale lijnen, waarbij elke regel een qubit vertegenwoordigt. De bovenste regel is qubitregister met het label 0, de tweede regel is qubitregister met het label 1, enzovoort.
  2. Kwantumpoort: Kwantumbewerkingen worden vertegenwoordigd door kwantumpoorten. De term kwantumpoort is vergelijkbaar met klassieke logische poorten. Poorten die op een of meer qubitregisters werken, worden aangeduid als een doos. In dit voorbeeld vertegenwoordigt het symbool een Hadamard-bewerking.
  3. Gecontroleerde poort: Gecontroleerde poorten werken op twee of meer qubits. In dit voorbeeld vertegenwoordigt het symbool een CNOT-poort. De zwarte cirkel vertegenwoordigt de controle-qubit en het kruis binnen een cirkel vertegenwoordigt de target qubit.
  4. Meetbewerking: het metersymbool vertegenwoordigt een meetbewerking. De meetbewerking gebruikt een qubitregister als invoer en voert klassieke informatie uit.

Kwantumpoorten toepassen

Omdat de tijd van links naar rechts loopt, wordt de meest linkse poort als eerste toegepast. De actie van het volgende kwantumcircuit is bijvoorbeeld de CBA$ van de eenheidsmatrix$.

Diagram van kwantumpoorten die van links naar rechts worden toegepast in een kwantumcircuit.

Notitie

Matrixvermenigvuldiging voldoet aan de tegenovergestelde conventie: de meest rechtse matrix wordt als eerste toegepast. In kwantumcircuitdiagrammen wordt echter eerst de meest linkse poort toegepast. Dit verschil kan soms leiden tot verwarring, dus het is belangrijk om dit belangrijke verschil tussen de lineaire algebraïsche notatie en kwantumcircuitdiagrammen te noteren.

Invoer en uitvoer van kwantumcircuits

In een kwantumcircuitdiagram vertegenwoordigen de draden die een kwantumpoort binnenkomen de qubits die worden ingevoerd in de kwantumpoort en de draden die de kwantumpoort verlaten de qubits die worden uitgevoerd vanuit de kwantumpoort.

Het aantal invoerwaarden van een kwantumpoort is gelijk aan het aantal uitvoerwaarden van een kwantumpoort. Dit komt doordat kwantumbewerkingen unitair zijn en daarom omkeerbaar zijn. Als een kwantumpoort meer uitvoer dan invoer zou hebben, zou deze niet omkeerbaar en dus niet unitair zijn, wat een tegenstelling is.

Om deze reden moet elk vak dat in een circuitdiagram wordt getekend, precies hetzelfde aantal draden bevatten dat het binnenkomt als het verlaten ervan.

Bewerkingen met meerdere qubits

Diagrammen met meerdere qubitcircuits volgen vergelijkbare conventies als die met één qubit. Een eenheidsbewerking $B$ met twee qubits kan bijvoorbeeld worden gedefinieerd als $(H S\otimes X),$ dus het equivalente kwantumcircuit is als volgt:

Circuitdiagram van een eenheidsbewerking met twee qubits.

U kunt B$ ook zien $als een actie voor één register met twee qubits in plaats van twee registers met één qubit, afhankelijk van de context waarin het circuit wordt gebruikt.

De meest nuttige eigenschap van dergelijke abstracte circuitdiagrammen is misschien wel dat ze complexe kwantumalgoritmen op een hoog niveau kunnen beschrijven zonder dat ze moeten worden gecompileerd tot fundamentele poorten. Dit betekent dat u een intuïtie kunt krijgen over de gegevensstroom voor een groot kwantumalgoritme zonder dat u alle details hoeft te begrijpen van de werking van elk van de subroutines binnen het algoritme.

Gecontroleerde poorten

Kwantumgestuurde poorten zijn poorten met twee qubits die een poort met één qubit toepassen op een target qubit als een controle-qubit zich in een specifieke status bevindt.

Denk bijvoorbeeld aan een kwantumgestuurde poort, aangeduid met $\Lambda(G),$ waarbij de waarde van één qubit de toepassing van de $G-bewerking$ bepaalt. De gecontroleerde poort $\Lambda(G)$ kan worden begrepen door te kijken naar het volgende voorbeeld van een productstatusinvoer:

$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}\alpha\ket{\psi}\ket{{0}=+ G \beta\ket{{1}\ket{\psi}$

Dat wil zeggen dat de gecontroleerde poort G toepast op $het register met $\psi$ als en alleen als de controle-qubit de waarde $1$ neemt.$ Over het algemeen worden dergelijke gecontroleerde bewerkingen in circuitdiagrammen beschreven met het volgende symbool:

Circuitdiagram van een afzonderlijk gecontroleerde poort.

Hier geeft de zwarte cirkel de kwantumbit aan waarop de poort wordt gecontroleerd en een verticale draad geeft de unitaire aan die wordt toegepast wanneer de controle-qubit de waarde $1$ neemt.

Voor de speciale gevallen waarin $G=X$ en $G=Z$ worden gebruikt, wordt de volgende notatie gebruikt om de gecontroleerde versie van de poorten te beschrijven (houd er rekening mee dat de gate controlled-X de CNOT-poort is):

Circuitdiagram voor speciale gevallen van gecontroleerde poorten.

Q# biedt methoden voor het automatisch genereren van de gecontroleerde versie van een bewerking, waardoor de programmeur deze bewerkingen niet hoeft te coden. Hieronder ziet u een voorbeeld hiervan:

operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
    H(qubit);
}

Klassiek gecontroleerde poorten

Kwantumpoorten kunnen ook worden toegepast na een meting, waarbij het resultaat van de meting fungeert als een klassieke controlebit.

Het volgende symbool vertegenwoordigt een klassiek beheerde poort, waarbij $G$ wordt toegepast op basis van de klassieke besturingsbit die waarde $1$ heeft:

Circuitdiagram dat een gecontroleerde bewerking weergeeft.

Meetoperator

Meetbewerkingen nemen een qubitregister op, meten deze en leveren het resultaat als klassieke informatie.

Een meetbewerking wordt aangeduid met een metersymbool en neemt altijd als invoer een qubitregister (aangegeven door een ononderbroken lijn) en voert klassieke informatie uit (aangegeven door een dubbele lijn). Het symbool van de meetbewerking ziet er als volgt uit:

Symbool voor een meetbewerking.

In Q#implementeert de Measure operator de meetbewerking.

Voorbeeld: Eenheidstransformatie

Overweeg de eenheidstransformatie $\text{ CNOT}_{01}(H\otimes 1)$. Deze poortvolgorde is van fundamenteel belang voor kwantumcomputing, omdat hiermee een maximaal verstrengelde toestand met twee qubits wordt gecreëerd:

$\mathrm{CNOT}_{01}(H\otimes 1)\left=\ket{00}\frac{1}{\sqrt{2}}({00}\ket{ + ), \ket{11}\right$

Bewerkingen met deze of grotere complexiteit zijn alomtegenwoordig in kwantumalgoritmen en kwantumfoutcorrectie.

Het circuitdiagram voor het voorbereiden van deze maximaal verstrengelde kwantumstatus is:

Circuitdiagram voor een maximaal verstrengelde toestand met twee qubits.

Het symbool achter de Hadamard-poort vertegenwoordigt een CNOT-poort, waarbij de zwarte cirkel de controle-qubit aangeeft en het kruis binnen een cirkel de target qubit aangeeft. Dit kwantumcircuit wordt weergegeven als handelend op twee qubits (of op equivalent twee registers die uit één qubit bestaan).

Voorbeeld: Diagram van teleportatiecircuit

Kwantumteleportatie is een van de beste kwantumalgoritmen voor het illustreren van circuitonderdelen.

Kwantumteleportatie is een protocol waarmee een kwantumstatus kan worden verzonden van de ene qubit naar de andere, met behulp van een gedeelde verstrengelde status tussen de afzender en ontvanger, en klassieke communicatie tussen beide.

Voor leerdoeleinden wordt de afzender Alice genoemd, de ontvanger heet Bob en de qubit die moet worden teleporteerd, de qubit van het bericht. Alice en Bob hebben elk één qubit en Alice heeft een extra qubit, de qubit van het bericht.

Het volgende circuitdiagram illustreert het teleportatieprotocol:

Diagram van het kwantumcircuit van het teleportatieprotocol.

Laten we de stappen van het teleportatieprotocol eens uitsplitsen:

  1. Qubitregister met het label 0 is de bericht-qubit, qubitregister met het label 1 is de qubit van Alice en qubitregister met het label 2 is bob's qubit. De bericht-qubit heeft een onbekende status en de qubits van Alice en Bob hebben de $\ket{0}$ status.
  2. Een Hadamard-poort $H$ wordt toegepast op de qubit van Alice. Omdat de qubit zich in de $\ket{0}$ status bevindt, is{2}}$\frac{1}{\sqrt{ de resulterende status (\ket{{0} + \ket{1})$.
  3. Er wordt een CNOT-poort toegepast op de qubits van Alice en Bob. De qubit van Alice is de controle-qubit en de qubit van Bob is de target qubit. De resulterende status is $\frac{{1}{\sqrt{2}}(\ket{00} + \ket{{11})$. Alice en Bob delen nu een verstrengelde status.
  4. Er wordt een CNOT-poort toegepast op de qubit van het bericht en de qubit van Alice. Omdat de qubit van Alice ook verstrengeld is met de qubit van Bob, is de resulterende status een verstrengelde status met drie qubits.
  5. Een Hadamard-poort $H$ wordt toegepast op de bericht-qubit.
  6. Alice meet haar twee qubits en communiceert de meetresultaten aan Bob. Dit wordt niet weerspiegeld in het circuit. De meetresultaten zijn twee klassieke bits, die de waarden 00, 01, 10 of 1 kunnen nemen.
  7. Twee klassiek beheerde Pauli-poorten worden toegepast op de qubit van Bob, afhankelijk van de resultaatbitwaarde $1$. De resulterende status is de oorspronkelijke qubitstatus van het bericht.

Volgende stappen