Que signifient les fils doubles dans les circuits quantiques et comment sont-ils liés aux instructions if?

10

Le circuit

entrez la description de l'image ici

peut être traduit dans le code suivant:

operation Teleport(msg, there) {
    let register = AllocateRegister();
    let here = register;
    H(here);
    CNOT(here, there);
    CNOT(msg, here);
    H(msg);
    // Measure out the entanglement.
    if (M(msg) == One)  { Z(there); }
    if (M(here) == One) { X(there); }
  }
}

Comment se produisent les instructions if? Pourquoi les doubles lignes sont-elles utilisées après les mesures?

R. Chopin
la source
Puis-je demander quelle est la langue de cet exemple? Est-ce Q #?
Norrius
2
Non, mais c'était basé sur Q #. Je ne voulais pas exiger la familiarité Q # des lecteurs, j'ai donc créé ce pseudo-code qui utilise uniquement des fonctionnalités de langages largement utilisés.
R. Chopin

Réponses:

13

Les lignes doubles sont une convention courante pour les bits classiques dans les schémas de circuits quantiques. Dans ce cas, ils représentent les bits issus des mesures des qubits msget here.

Les opérations contrôlées impliquant les bits classiques ne sont que des opérations qui sont effectuées si ces bits classiques ont la valeur 1, ce à quoi ifservent les instructions dans le pseudocode.

Niel de Beaudrap
la source