O que os fios duplos significam nos circuitos quânticos e como eles se relacionam com as instruções if?

10

O circuito

insira a descrição da imagem aqui

pode ser traduzido para o seguinte 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); }
  }
}

Como as declarações if acontecem? Por que as linhas duplas são usadas após as medições?

R. Chopin
fonte
Posso perguntar qual é o idioma nesse exemplo? É Q #?
Norrius 31/03
2
Não, mas foi baseado em Q #. Como não queria exigir familiaridade com o Q # dos leitores, criei esse pseudocódigo que usa apenas recursos de linguagens amplamente usadas.
R. Chopin

Respostas:

13

As linhas duplas são uma convenção comum para bits clássicos em diagramas de circuitos quânticos. Nesse caso, eles representam os bits resultantes das medições dos qubits msge here.

As operações controladas que envolvem os bits clássicos são apenas operações que são executadas se esses bits clássicos tiverem o valor 1, que é o que ifservem as declarações no pseudocódigo.

Niel de Beaudrap
fonte