¿Qué significan los cables dobles en los circuitos cuánticos y cómo se relacionan con las declaraciones if?

10

El circuito

ingrese la descripción de la imagen aquí

se puede traducir al siguiente código:

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

¿Cómo surgen las declaraciones if? ¿Por qué se usan líneas dobles después de las mediciones?

R. Chopin
fuente
¿Puedo preguntar cuál es el idioma en ese ejemplo? ¿Es Q #?
Norrius
2
No, pero se basó en Q #. No quería exigir la familiaridad Q # de los lectores, así que creé este pseudocódigo que usa solo características de lenguajes ampliamente utilizados.
R. Chopin

Respuestas:

13

Las líneas dobles son una convención común para bits clásicos en diagramas de circuitos cuánticos. En este caso, representan los bits que surgen de las mediciones de los qubits msgy here.

Las operaciones controladas que involucran los bits clásicos son solo operaciones que se realizan si esos bits clásicos tienen el valor 1, que es para lo ifque sirven las declaraciones en el pseudocódigo.

Niel de Beaudrap
fuente