Kvantum-összefonódás létrehozása Q#
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:
Vegyünk két qubitet a 00\rangle$ állapotban$|. Az első qubit a vezérlő qubit, a második pedig a target qubit.
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.
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#
- Nyissa meg a Visual Studio Code-ot.
- Válassza az Új szövegfájl fájlja > lehetőséget, és mentse a fájlként
Entanglement.qs
. - Válassza a Nézet – Parancskatalógus lehetőséget, és írja beQ# az Azure Quantum QIR-profilttarget.> Nyomja le az Enter billentyűt.
- 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)$.
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); } }
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.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)
.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.
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:
Vegyünk két qubitet a 00\rangle$ állapotban$|.
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}$$
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{{-}$$
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.