Что означают двойные провода в квантовых цепях и как они соотносятся с операторами if?

10

Схема

введите описание изображения здесь

можно перевести на следующий код:

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

Как возникают операторы if? Почему после измерений используются двойные линии?

Р. Шопен
источник
Могу я спросить, какой язык в этом примере? Это Q #?
Норриус
2
Нет, но это было основано на Q #. Я не хотел требовать от читателей Q-знакомства, поэтому я создал этот псевдокод, который использует только функции из широко используемых языков.
Р. Шопен

Ответы:

13

Двойные линии - одно общее соглашение для классических битов в квантовых схемах. В этом случае они представляют биты, возникающие из измерений кубитов msgи here.

Контролируемые операции, включающие классические биты, являются просто операциями, которые выполняются, если эти классические биты имеют значение 1, для чего используются ifоператоры в псевдокоде.

Ниль де Бодрап
источник