Kvantum-összefonódás létrehozása Q#

Befejeződött

Most hozzunk létre néhány kvantum-összefonódást az Azure Quantum Development KithasználatávalQ#.

A Controlled-NOT (CNOT) művelet

Két qubit összefonódása esetén az egyik qubit állapota a másik qubit állapotától függ. Ezért két qubit összefonódásához olyan műveletre van szükség, amely egyszerre mindkét qubiten működik. Ezt multiqubit műveletnek vagy kapunak nevezzük.

A kvantum-összefonódás létrehozásához szükség van a többkettős CNOT műveletre, amely a Controlled-NOT nevet jelenti. Ez a művelet két qubitet vesz fel bemenetként, az egyik vezérlő qubitként, a másik pedig a target qubitet használja. A CNOT kapu megfordítja a második qubit (a target qubit) állapotát, ha és csak akkor, ha az első qubit (a vezérlő qubit) $|állapota 1\rangle$.

Bevitel Hozam
$\ket{00}$ $\ket{00}$
$\ket{01}$ $\ket{01}$
$\ket{10}$ $\ket{11}$
$\ket{11}$ $\ket{10}$

Ebben Q#a CNOT művelet két qubitből álló tömbön működik, és a második qubitet megfordítja, ha az első qubit az One.

Összefonódás CNOT-művelettel

A művelet és a művelet alkalmazásával H a 00\rangle$ állapotban $|lévő két qubitet átalakíthatja a(z) ^+}=\frac1{\sqrt2}(|00\rangle+|11\rangle)$ Bell állapotba$\ket{\phi.CNOT

Így működik:

  1. Vegyünk két qubitet a 00\rangle$ állapotban$|. Az első qubit a vezérlő qubit, a második pedig a target qubit.

  2. Csak a vezérlő qubitben hozzon létre szuperpozíciós állapotot $a H$ alkalmazásával.

    $$H |0_c\rangle={2}}\frac{1}{\sqrt{(|0_c\rangle+|1_c)\rangle$$

    Feljegyzés

    Az alsó indexek ${}_c$ és ${}_t$ határozzák meg a vezérlőt és target a qubiteket.

  3. Alkalmazza a $CNOT operátort$ a szuperpozíciós állapotban lévő vezérlő qubitre és a target 0_t\rangle$ állapotban lévő $|qubitre.

    $$CNOT \frac{1}{\sqrt{2}}(\ket{0_c}+\ket{1_c})\ket{0}_t = CNOT \frac{1}{\sqrt2}(\ket{0_c 0_t}+|\ket{1_c 0_t}){1}{\sqrt$$=\frac{=$$2}(CNOT \ket{0_c 0_t} + CNOT \ket{1_c 0_t})$$\frac{1}{\sqrt$$==2}(\ket{0_c 0_t}+\ket{1_c 1_t)}$$

A Bell-állapotok létrehozása és mérése a következő használatával: Q#

  1. Nyissa meg a Visual Studio Code-ot.
  2. Válassza az Új szövegfájl fájlja > lehetőséget, és mentse a fájlkéntEntanglement.qs.
  3. Válassza a Nézet – Parancskatalógus lehetőséget, és írja beQ# az Azure Quantum QIR-profilttarget.> Nyomja le az Enter billentyűt.
  4. Válassza a Q#következőt: Korlátlan.

A(z) ^+ harangállapot $\ket{\philétrehozása}$

Kezdjük a következővel $\ket{\phi: ^+}=\frac1{\sqrt2}(|00\rangle+|11\rangle)$.

  1. Másolja és illessze be a következő Q# kódot a Entanglement.qs fájlba.

    namespace Entanglement {
        open Microsoft.Quantum.Diagnostics;
    
        @EntryPoint()
        operation EntangleQubits() : (Result, Result) {
            // Allocate the two qubits that will be entangled.
            use (q1, q2) = (Qubit(), Qubit());
    
            // Set the first qubit in superposition by calling the `H` operation,
            // which applies a Hadamard transformation to the qubit.
            // Then, entangle the two qubits using the `CNOT` operation.
            H(q1);
            CNOT(q1, q2);
    
            // Show the entangled state using the `DumpMachine` function.
            DumpMachine();
    
            // Measurements of entangled qubits are always correlated.
            let (m1, m2) = (M(q1), M(q2));
            Reset(q1);
            Reset(q2);
            return (m1, m2);
        }
    }
    
  2. Ha helyileg szeretné futtatni a programot a beépített szimulátoron, kattintson a Futtatás gombra az alábbi @EntryPoint()parancsok listájából, vagy nyomja le a Ctrl+F5 billentyűkombinációt. A kimenet megjelenik a hibakeresési konzolon.

    Képernyőkép a VS Code-ról, amely bemutatja, hogyan futtathat egy Q# fájlt a belépési pont alatti kódlenök használatával.

  3. A mérési eredmények korrelálnak, így a program végén egyenlő valószínűséggel vagy (One, One) eredménnyel kap eredményt(Zero, Zero).

  4. A kapcsolatcsoport-diagramot az alábbi @EntryPoint()parancsok listájában a Circuit (Kapcsolat) elemre kattintva jelenítheti meg. Az áramköri diagram az első qubitre alkalmazott Hadamard-kaput és a CNOT-kaput mutatja mindkét qubitre alkalmazva.

    Képernyőkép a Bell-állapot kapcsolatcsoportról.

A(z) ^- harangállapot $\ket{\philétrehozása}$

Más Bell-állapotok létrehozásához további Pauli $X$ és $Z$ műveleteket kell alkalmaznia a qubitekre.

A(z) ^-1{\sqrt\rangle|\rangle}| bell állapot $\ket{\philétrehozásához például a Hadamard-kapu}=\frac alkalmazása után alkalmazhatja a Pauli $Z$ műveletet a vezérlő qubitre.$ A $Z$ művelet az állapotot $\ket{+}$ $\ket{-}$a .

Feljegyzés

Az állapotok $\frac{{1}{\sqrt{2}}(|0\rangle+|1\rangle)$ és $\frac{1}{\sqrt{{2}}(|0\rangle -|1\rangle)$ $\ket{+}$$\ket{{-}$, illetve .

Így működik:

  1. Vegyünk két qubitet a 00\rangle$ állapotban$|.

  2. Csak a vezérlő qubitben hozzon létre szuperpozíciós állapotot $a H$ alkalmazásával.

    $$H |0_c\frac{\rangle={1}{\sqrt{2}}(|0_c\rangle+|1_c\rangle) =\ket{+_c}$$

  3. Alkalmazza a $Z$ műveletet a vezérlő qubitre.

    $$Z \frac{{1}{\sqrt{{2}}(|0_c\rangle+|1_c\rangle)=\frac{1}{\sqrt{{2}}(|0_c-1_c|\rangle\rangle)_c=\ket{{-}$$

  4. Alkalmazza a $CNOT operátort$ a vezérlő qubitre és a target qubitre, amely 0_t\rangle$ állapotban $|van.

    $$CNOT \frac{1}{\sqrt{2}}(\ket{0_c-1_c}\ket{})\ket{0}_t = CNOT \frac{1}{\sqrt2}(\ket{0_c 0_t-1_c 0_t}}|\ket{){1}{\sqrt$$=\frac{=$$2}(CNOT \ket{0_c 0_t} – CNOT \ket{1_c 0_t})$$\frac{1}{\sqrt=$$=2}(\ket{0_c 0_t-1_c 1_t)}\ket{}$$

Módosítsa a kódot aQ#(z) ^-}$bell állapot $\ket{\philétrehozásához. Futtassa a programot az összekapcsolt állapot és a kapcsolatcsoport diagramjának megtekintéséhez.

namespace Entanglement {
    open Microsoft.Quantum.Diagnostics;

    @EntryPoint()
    operation EntangleQubits() : (Result, Result) {
        // Allocate the two qubits that will be entangled.
        use (q1, q2) = (Qubit(), Qubit());

        // Set the first qubit in superposition by calling the `H` operation,
        // which applies a Hadamard transformation to the qubit.
        // Then, entangle the two qubits using the `CNOT` operation.
        H(q1);
        Z(q1); // Apply the Pauli Z operation to the control qubit
        CNOT(q1, q2);

        // Show the entangled state using the `DumpMachine` function.
        DumpMachine();

        // Measurements of entangled qubits are always correlated.
        let (m1, m2) = (M(q1), M(q2));
        Reset(q1);
        Reset(q2);
        return (m1, m2);
    }
}

További gyakorlat: A(z) ^+}$ és $\ket{\psi^- harangállapot $\ket{\psilétrehozása}$

Hasonlóképpen, a Bell-állapotok $\ket{\psi^+}$ és $\ket{\psi^-}$ hozhatók létre a Pauli $X$ és $Z$ műveletek qubitekre való alkalmazásával.

  • A(z) ^+1 2(01\rangle+|10\rangle)$ Bell állapot $\ket{\psiúgy hozható létre, hogy a Pauli $X$ műveletet alkalmazza a qubitre a target Hadamard-kapu alkalmazása után.|}{\sqrt}=\frac
  • A(z) ^-1 bell állapot $\ket{\psi(^-}=\frac1{\sqrt2}(|01-10|\rangle\rangle)$ úgy hozható létre, hogy a Pauli $Z-t$ alkalmazza a vezérlő qubitre, a Pauli $X-et$ pedig a qubitre a target Hadamard-kapu alkalmazása után.

Módosítsa az Entanglement.qs programot a(z) ^+}$ és $\ket{\psi^-}$ bell állapotok $\ket{\psilétrehozásához.