Was bedeuten Doppeldrähte in Quantenschaltungen und in welcher Beziehung stehen sie zu if-Anweisungen?

10

Die Rennbahn

Geben Sie hier die Bildbeschreibung ein

kann in den folgenden Code übersetzt werden:

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); }
  }
}

Wie kommen die if-Anweisungen zustande? Warum werden nach Messungen Doppellinien verwendet?

R. Chopin
quelle
Darf ich fragen, was die Sprache in diesem Beispiel ist? Ist es Q #?
Norrius
2
Nein, aber es basierte auf Q #. Ich wollte keine Q # -Familie von Lesern verlangen, deshalb habe ich diesen Pseudocode erstellt, der nur Funktionen aus weit verbreiteten Sprachen verwendet.
R. Chopin

Antworten:

13

Die doppelten Linien sind eine übliche Konvention für klassische Bits in Quantenschaltplänen. In diesem Fall stellen sie die Bits dar, die sich aus den Messungen der Qubits msgund ergeben here.

Die gesteuerten Operationen, an denen die klassischen Bits beteiligt sind, sind nur Operationen, die ausgeführt werden, wenn diese klassischen Bits zufällig den Wert 1 haben, wofür die ifAnweisungen im Pseudocode bestimmt sind.

Niel de Beaudrap
quelle