Vše dohromady: při přenosuPutting it All Together: Teleportation

Pojďme se vrátit na příklad okruhu přenosu definovaného v okruhech.Let's return to the example of the teleportation circuit defined in Quantum Circuits. Budeme k tomu využít k ilustraci konceptů, které jsme doposud dozvěděli.We're going to use this to illustrate the concepts we've learned so far. Pro uživatele, kteří nejsou obeznámeni s teoretickou, je níže uveden výklad doby použitelnosti, za kterou následuje návod implementace kódu v Q #.An explanation of quantum teleportation is provided below for those who are unfamiliar with the theory, followed by a walkthrough of the code implementation in Q#.

Vystavení za sebou: teorieQuantum Teleportation: Theory

Jednosměrné navýšení je technika pro posílání neznámého stavového stavu (to znamená "zpráva") z qubit v jednom umístění do qubit v jiném umístění (na tyto qubits odkazujeme jako__na this a__ tam). v uvedeném pořadí).Quantum teleportation is a technique for sending an unknown quantum state (which we'll refer to as the 'message') from a qubit in one location to a qubit in another location (we'll refer to these qubits as 'here' and 'there', respectively). Naši zprávu můžeme znázornit jako vektor pomocí zápisu Dirac:We can represent our message as a vector using Dirac notation:

$ $ \ket{\psi} = \alpha\ket{0} + \beta\ket{1} $ $$$ \ket{\psi} = \alpha\ket{0} + \beta\ket{1} $$

Stav zprávy qubit není znám, protože neznáte hodnoty $ \Alpha $ a $ \beta $.The message qubit's state is unknown to us as we do not know the values of $\alpha$ and $\beta$.

Krok 1: vytvoření stavu entangledStep 1: Create an entangled state

Aby bylo možné poslat zprávu pro qubit, je třeba, aby se entangled s qubit.In order to send the message we need for the qubit here to be entangled with the qubit there. Toho dosáhnete použitím brány Hadamard, následovanou bránou CNOT.This is achieved by applying a Hadamard gate, followed by a CNOT gate. Pojďme se podívat na matematiku za těmito operacemi s bránou.Let's look at the math behind these gate operations.

Zahájíme vám qubits a ve stavu $ \ket{0}$.We will begin with the qubits here and there both in the $\ket{0}$ state. Po Entangling těchto qubits jsou ve stavu:After entangling these qubits, they are in the state:

$ $ \ket{\phi ^ +} = \frac{1}{\sqrt{2}} (\ket{00} + \ket{11}) $ $$$ \ket{\phi^+} = \frac{1}{\sqrt{2}}(\ket{00} + \ket{11}) $$

Krok 2: odeslání zprávyStep 2: Send the message

Pokud chcete poslat zprávu , nejdřív použijte bránu CNOT se zprávou qubit a tady qubit jako vstupy ( zpráva qubit je ovládací prvek a tady qubit v této instanci je cílová qubit).To send the message we first apply a CNOT gate with the message qubit and here qubit as inputs (the message qubit being the control and the here qubit being the target qubit, in this instance). Tento stav vstupu lze zapsat:This input state can be written:

$ $ \ket{\psi}\ket{\phi ^ +} = (\alpha\ket{0} + \beta\ket{1}) (\frac{1}{\sqrt{2}} (\ket{00} + \ket{11})) $ $$$ \ket{\psi}\ket{\phi^+} = (\alpha\ket{0} + \beta\ket{1})(\frac{1}{\sqrt{2}}(\ket{00} + \ket{11})) $$

Rozšiřuje se na:This expands to:

$ $ \ket{\psi}\ket{\phi ^ +} = \frac{\Alpha}{\sqrt{2}} \ket{000} + \frac{\Alpha}{\sqrt{2}} \ket{011} + \frac{\beta}{\sqrt{2}} \ket{100} + \frac{\beta}{\sqrt{2}} \ket{111} $ $$$ \ket{\psi}\ket{\phi^+} = \frac{\alpha}{\sqrt{2}}\ket{000} + \frac{\alpha}{\sqrt{2}}\ket{011} + \frac{\beta}{\sqrt{2}}\ket{100} + \frac{\beta}{\sqrt{2}}\ket{111} $$

V rámci připomenutí CNOT brána Překlopí cílovou qubit, když je ovládací prvek qubit 1.As a reminder, the CNOT gate flips the target qubit when the control qubit is 1. Například vstup $ \ket{000}$ nebude mít za následek změnu jako první qubit (ovládací prvek) je 0.So for example, an input of $\ket{000}$ will result in no change as the first qubit (the control) is 0. Nicméně si povezměte případ, kde první qubit je 1 – například vstup typu $ \ket{100}$.However, take a case where the first qubit is 1 - for example an input of $\ket{100}$. V tomto případě je výstupem $ \ket{110}$ jako druhý qubit (cíl) převrácenou bránou CNOT.In this instance, the output is $\ket{110}$ as the second qubit (the target) is flipped by the CNOT gate.

Pojďme teď považovat výstup, jakmile se CNOT brána na náš vstup výše.Let's now consider our output once the CNOT gate has acted on our input above. Výsledek je následující:The result is:

$ $ \frac{\Alpha}{\sqrt{2}} \ket{000} + \frac{\Alpha}{\sqrt{2}} \ket{011} + \frac{\beta}{\sqrt{2}} \ket{110} + \frac{\beta}{\sqrt{2}} \ket{101} $ $$$ \frac{\alpha}{\sqrt{2}}\ket{000} + \frac{\alpha}{\sqrt{2}}\ket{011} + \frac{\beta}{\sqrt{2}}\ket{110} + \frac{\beta}{\sqrt{2}}\ket{101} $$

Dalším krokem k odeslání zprávy je použití brány Hadamard pro qubit zprávy (to je první qubit každé podmínky).The next step to send the message is to apply a Hadamard gate to the message qubit (that's the first qubit of each term).

Brána Hadamard má jako připomenutí následující:As a reminder, the Hadamard gate does the following:

VstupInput VýstupOutput
$ \ket{0}$$\ket{0}$ $ \frac{1}{\sqrt{2}} (\ket{0} + \ket{1}) $$\frac{1}{\sqrt{2}}(\ket{0} + \ket{1})$
$ \ket{1}$$\ket{1}$ $ \frac{1}{\sqrt{2}} (\ket{0}-\ket{1}) $$\frac{1}{\sqrt{2}}(\ket{0} - \ket{1})$

Pokud použijeme bránu Hadamard na první qubit každého předplatného našeho výstupu, získáme následující výsledek:If we apply the Hadamard gate to the first qubit of each term of our output above, we get the following result:

$ $ \frac{\Alpha}{\sqrt{2}} (\frac{1}{\sqrt{2}} (\ket{0} + \ket{1})) \ket{00} + \frac{\Alpha}{\sqrt{2}} (\frac{1}{\sqrt{2}} (\ket{0} + \ket{1})) \ket{11} + \frac{\beta}{ \sqrt{2}} (\frac{1}{\sqrt{2}} (\ket{0}-\ket{1})) \ket{10} + \frac{\beta}{\sqrt{2}} (\frac{1}{\sqrt{2}} (\ket{0}-\ket{1})) \ket{01} $ $$$ \frac{\alpha}{\sqrt{2}}(\frac{1}{\sqrt{2}}(\ket{0} + \ket{1}))\ket{00} + \frac{\alpha}{\sqrt{2}}(\frac{1}{\sqrt{2}}(\ket{0} + \ket{1}))\ket{11} + \frac{\beta}{\sqrt{2}}(\frac{1}{\sqrt{2}}(\ket{0} - \ket{1}))\ket{10} + \frac{\beta}{\sqrt{2}}(\frac{1}{\sqrt{2}}(\ket{0} - \ket{1}))\ket{01} $$

Všimněte si, že každý výraz má $2 \frac{1}{\sqrt{2}} $ faktorů.Note that each term has two $\frac{1}{\sqrt{2}}$ factors. Tyto výsledky můžeme vynásobit následujícím výsledkům:We can multiply these out giving the following result:

$ $ \frac{\Alpha}{2}(\ket{0} + \ket{1}) \ket{00} + \frac{\Alpha}{2}(\ket{0} + \ket{1}) \ket{11} + \frac{\beta}{2}(\ket{0}-\ket{1}) \ket{10} + \frac{\beta}{2}(\ket{0}-\ket{1}) \ket{01} $ $$$ \frac{\alpha}{2}(\ket{0} + \ket{1})\ket{00} + \frac{\alpha}{2}(\ket{0} + \ket{1})\ket{11} + \frac{\beta}{2}(\ket{0} - \ket{1})\ket{10} + \frac{\beta}{2}(\ket{0} - \ket{1})\ket{01} $$

Výraz $ \frac{1}{2}$ Factor je společný pro každý termín, takže ho teď můžeme vzít mimo hranaté závorky:The $\frac{1}{2}$ factor is common to each term so we can now take it outside the brackets:

$ $ \frac{1}{2}\big [\Alpha (\ket{0} + \ket{1}) \ket{00} + \Alpha (\ket{0} + \ket{1}) \ket{11} + \beta (\ket{0}-\ket{1}) \ket{10} + \beta (\ket{0}-\ket{1}) \ket{01}\big] $ $$$ \frac{1}{2}\big[\alpha(\ket{0} + \ket{1})\ket{00} + \alpha(\ket{0} + \ket{1})\ket{11} + \beta(\ket{0} - \ket{1})\ket{10} + \beta(\ket{0} - \ket{1})\ket{01}\big] $$

Pak můžeme vynásobit hranaté závorky pro každý termín, který poskytuje:We can then multiply out the brackets for each term giving:

$ $ \frac{1}{2}\big [\alpha\ket{000} + \alpha\ket{100} + \alpha\ket{011} + \alpha\ket{111} + \beta\ket{010}-\beta\ket{110} + \beta\ket{001}-\beta\ket{101}\big] $ $$$ \frac{1}{2}\big[\alpha\ket{000} + \alpha\ket{100} + \alpha\ket{011} + \alpha\ket{111} + \beta\ket{010} - \beta\ket{110} + \beta\ket{001} - \beta\ket{101}\big] $$

Krok 3: měření výsledkuStep 3: Measure the result

V důsledku toho se tady a entangled všechna měření, která zde ovlivní stav.Due to here and there being entangled, any measurement on here will affect the state of there. Pokud si vyměříme první a druhý qubit (zpráva a tady), můžeme zjistit, v čem se nachází stav z důvodu této vlastnosti entanglement.If we measure the first and second qubit (message and here) we can learn what state there is in, due to this property of entanglement.

  • Pokud budeme měřit a získat výsledek 00, nadměrná pozice se sbalí a zachová pouze ty výrazy, které jsou v souladu s tímto výsledkem.If we measure and get a result 00, the superposition collapses, leaving only terms consistent with this result. To je $ \alpha\ket{000} + \beta\ket{001}$.That's $\alpha\ket{000} +\beta\ket{001}$. Dá se Refaktorovat na $ \ket{00}(\alpha\ket{0} + \beta\ket{1}) $.This can be refactored to $\ket{00}(\alpha\ket{0} +\beta\ket{1})$. Proto v __případě, že__je třeba změřit první a druhý qubit jako 00, víme, že třetí qubit je ve stavu $ (\alpha\ket{0} + \beta\ket{1}) $.Therefore if we measure the first and second qubit to be 00, we know that the third qubit, there, is in the state $(\alpha\ket{0} +\beta\ket{1})$.
  • Pokud měříme a získáte výsledek 01, nadměrná pozice se sbalí a zachová jenom ty výrazy, které jsou v souladu s tímto výsledkem.If we measure and get a result 01, the superposition collapses, leaving only terms consistent with this result. To je $ \alpha\ket{011} + \beta\ket{010}$.That's $\alpha\ket{011} +\beta\ket{010}$. Dá se Refaktorovat na $ \ket{01}(\alpha\ket{1} + \beta\ket{0}) $.This can be refactored to $\ket{01}(\alpha\ket{1} +\beta\ket{0})$. Proto v __případě, že__je třeba změřit první a druhý qubit na hodnotu 01, víme, že třetí qubit je ve stavu \ (\alpha\ket{1} + \beta\ket{0}) $.Therefore if we measure the first and second qubit to be 01, we know that the third qubit, there, is in the state $(\alpha\ket{1} +\beta\ket{0})$.
  • Pokud provedeme měření a získáte výsledek 10, pozice se sbalí a zachová jenom ty výrazy, které jsou v souladu s tímto výsledkem.If we measure and get a result 10, the superposition collapses, leaving only terms consistent with this result. To je $ \alpha\ket{100}-\beta\ket{101}$.That's $\alpha\ket{100} -\beta\ket{101}$. To lze Refaktorovat na $ \ket{10}(\alpha\ket{0}-\beta\ket{1}) $.This can be refactored to $\ket{10}(\alpha\ket{0} -\beta\ket{1})$. Proto v případě, že měříme první a druhý qubit na 10, ví, že třetí qubit, je __tam__ve stavu $ (\alpha\ket{0}-\beta\ket{1}) $.Therefore if we measure the first and second qubit to be 10, we know that the third qubit, there, is in the state $(\alpha\ket{0} -\beta\ket{1})$.
  • Pokud provedeme měření a dostanete výsledek 11, pozice se sbalí a ponechává se jenom ty, které jsou v souladu s tímto výsledkem.If we measure and get a result 11, the superposition collapses, leaving only terms consistent with this result. To je $ \alpha\ket{111}-\beta\ket{110}$.That's $\alpha\ket{111} -\beta\ket{110}$. To lze Refaktorovat na $ \ket{11}(\alpha\ket{1}-\beta\ket{0}) $.This can be refactored to $\ket{11}(\alpha\ket{1} -\beta\ket{0})$. Proto v __případě, že__je třeba změřit první a druhý qubit na hodnotu 11, víme, že třetí qubit je ve stavu $ (\alpha\ket{1}-\beta\ket{0}) $.Therefore if we measure the first and second qubit to be 11, we know that the third qubit, there, is in the state $(\alpha\ket{1} -\beta\ket{0})$.

Krok 4: interpretace výsledkuStep 4: Interpret the result

V rámci připomenutí byla původní zpráva , kterou jsme chtěli poslat,:As a reminder, the original message we wished to send was:

$ $ \ket{\psi} = \alpha\ket{0} + \beta\ket{1} $ $$$ \ket{\psi} = \alpha\ket{0} + \beta\ket{1} $$

Musíme do tohoto stavu dostat qubit, aby byl přijatý stav ten, který byl určen.We need to get the there qubit into this state, so that the received state is the one that was intended.

  • Pokud jsme zjistili a získali výsledek 00, pak je třetí qubit ve stavu $(\alpha\ket{0} + \beta\ket{1}) $.If we measured and got a result of 00, then the third qubit, there, is in the state $(\alpha\ket{0} +\beta\ket{1})$. Vzhledem k tomu, že se jedná o zamýšlenou zprávu, není nutná žádná změna.As this is the intended message, no alteration is required.
  • Pokud jsme zjistili a získali výsledek __01, pak__je třetí qubit ve stavu $ (\alpha\ket{1} + \beta\ket{0}) $.If we measured and got a result of 01, then the third qubit, there, is in the state $(\alpha\ket{1} +\beta\ket{0})$. To se liší od zamýšlené zprávy, ale použití nebrány nám poskytuje požadovaný stav $ (\alpha\ket{0} + \beta\ket{1}) $.This differs from the intended message, however applying a NOT gate gives us the desired state $(\alpha\ket{0} +\beta\ket{1})$.
  • Pokud jsme nahodnotili a získali výsledek 10, je třetí qubit ve stavu$ (\alpha\ket{0}-\beta\ket{1}) $.If we measured and got a result of 10, then the third qubit, there, is in the state $(\alpha\ket{0} -\beta\ket{1})$. To se liší od zamýšlené zprávy, ale použití brány z nám poskytuje požadovaný stav $ (\alpha\ket{0} + \beta\ket{1}) $.This differs from the intended message, however applying a Z gate gives us the desired state $(\alpha\ket{0} +\beta\ket{1})$.
  • Pokud jsme nahodnotili a získali výsledek __11, je__třetí qubit ve stavu $ (\alpha\ket{1}-\beta\ket{0}) $.If we measured and got a result of 11, then the third qubit, there, is in the state $(\alpha\ket{1} -\beta\ket{0})$. To se liší od zamýšlené zprávy, ale použití nebrány následované bránou Z nám poskytuje požadovaný stav $ (\alpha\ket{0} + \beta\ket{1}) $.This differs from the intended message, however applying a NOT gate followed by a Z gate gives us the desired state $(\alpha\ket{0} +\beta\ket{1})$.

V případě, že se jedná o míru a první qubit je 1, je použita Brána Z.To summarize, if we measure and the first qubit is 1, a Z gate is applied. Pokud budeme měřit a druhý qubit je 1, nepoužije se žádná brána.If we measure and the second qubit is 1, a NOT gate is applied.

SouhrnSummary

Níže je uvedený okruh, který je v textovém poli okruh, který implementuje přenos.Shown below is a text-book quantum circuit that implements the teleportation. Přesunutí zleva doprava můžete zobrazit:Moving from left to right you can see:

  • Krok 1: Entangling sem a tam , kde použijete bránu HADAMARD a bránu CNOT.Step 1: Entangling here and there by applying a Hadamard gate and CNOT gate.
  • Krok 2: odeslání zprávy pomocí brány CNOT a brány HadamardStep 2: Sending the message using a CNOT gate and a Hadamard gate.
  • Krok 3: pořízení měření první a druhé qubits, zprávy a semStep 3: Taking a measurement of the first and second qubits, message and here.
  • Krok 4: použití brány, která není typu hradlo nebo Z, v závislosti na výsledku měření v kroku 3.Step 4: Applying a NOT gate or a Z gate, depending on the result of the measurement in step 3.

' Teleport (MSG: qubit; zde: qubit): jednotka '

Vystavení za sebou: kódQuantum Teleportation: Code

Náš okruh máme pro naši službu pro vystavování.We have our circuit for quantum teleportation:

' Teleport (MSG: qubit; zde: qubit): jednotka '

Nyní můžeme přeložit každý z kroků v tomto okruhu do Q #.We can now translate each of the steps in this quantum circuit into Q#.

Krok 0: definiceStep 0: Definition

Když provedeme vystavování, musíme nám sdělit zprávu , kterou chceme odeslat, a tam, kde si ji přejeme poslat (tam).When we perform teleportation, we must know the message we wish to send, and where we wish to send it (there). Z tohoto důvodu Začínáme definováním nové operace teleport, která je předána dvěma qubits jako argumentům, msg a there:For this reason, we begin by defining a new Teleport operation that is given two qubits as arguments, msg and there:

operation Teleport(msg : Qubit, there : Qubit) : Unit {

Také je potřeba přidělit qubit here, které máme using blok:We also need to allocate a qubit here which we achieve with a using block:

    using (here = Qubit()) {

Krok 1: vytvoření stavu entangledStep 1: Create an entangled state

Pak můžeme vytvořit pár entangled mezi here a there pomocí operací H a CNOT:We can then create the entangled pair between here and there by using the H and CNOT operations:

        H(here);
        CNOT(here, there);

Krok 2: odeslání zprávyStep 2: Send the message

Pak použijeme další brány $ \operatorname{CNOT} $ a $H $ k přesunutí našeho qubitu zpráv:We then use the next $\operatorname{CNOT}$ and $H$ gates to move our message qubit:

        CNOT(msg, here);
        H(msg);

Krok 3 & 4: měření a interpretace výsledkuStep 3 & 4: Measuring and interpreting the result

Nakonec používáme M k provádění měření a k provedení potřebných operací brány k získání požadovaného stavu, jak je označený if příkazy:Finally, we use M to perform the measurements and perform the necessary gate operations to get the desired state, as denoted by if statements:

        // Measure out the entanglement
        if (M(msg) == One)  { Z(there); }
        if (M(here) == One) { X(there); }

Tím se dokončí definice našeho operátoru přenosu, takže můžeme navrátit here, ukončit text a ukončit operaci.This finishes the definition of our teleportation operator, so we can deallocate here, end the body, and end the operation.

    }
}