En supposant que vous envisagez un ordinateur quantique basé sur une porte, le moyen le plus simple de produire un état enchevêtré est de produire l'un des états de Bell. Le circuit suivant montre l'état de Bell .| Φ+⟩
| ψ0⟩| ψ1⟩| ψ2⟩
| ψ0⟩
| ψ0⟩ = | 0 0 ⟩
| ψ1⟩
Le Hadamard-Gate s'applique sur le premier qubit qui se traduit par ce qui suit:
| ψ1⟩ = ( H⊗ je) | 0 0 ⟩ = H| 0 ⟩ ⊗ | 0 ⟩ = 12-√( | 0 ⟩ + | 1 ⟩ ) | 0 ⟩ = 12-√( | 0 0 ⟩ + | 1 0 ⟩ )
| ψ2⟩
Maintenant, une porte CNOT est appliquée et retourne le deuxième qubit mais uniquement là où le premier a la valeur 1. Le résultat est
| ψ2⟩ = 12-√( | 0 0 ⟩ + | 1 1 ⟩ )
Ce dernier état | ψ2⟩est un état enchevêtré et généralement le moyen le plus naturel de faire face à une telle situation. Les états de Bell se produisent dans de nombreux algorithmes quantiques intéressants tels que le codage super dense ou la téléportation.
Bien que l'approche ci-dessus puisse ne pas vous sembler une programmation au sens habituel, l'application de portes à des états est essentiellement la façon dont la programmation d'un ordinateur quantique basé sur une porte fonctionne. Il existe des couches d'abstraction qui vous permettent d'effectuer une programmation de haut niveau mais de traduire les commandes en application de portes. L' interface IBM Quantum Experience fournit de telles fonctionnalités.
Dans une langue comme Q # de Microsoft, l'exemple ci-dessus pourrait ressembler à ceci:
operation BellTest () : ()
{
body
{
// Use two qubits
using (qubits = Qubit[2])
{
Set (One, qubits[0]);
Set (Zero, qubits[1]);
// Apply Hadamard gate to the first qubit
H(qubits[0]);
// Apply CNOT gate
CNOT(qubits[0],qubits[1]);
}
}
}
Une version plus détaillée (y compris la mesure) peut être trouvée ici: Microsoft: Writing a Quantum Program .