执行测量后,Q#是否保持量子位的状态?

时间:2019-01-23 17:55:37

标签: q#

这是Microsoft的Quantum Katas练习中的一个问题。

// Input: Two qubits (stored in an array) which are guaranteed to be
//        either in superposition of states |00⟩ and |11⟩
//        or in superposition of states |01⟩ and |10⟩.
// Output: 0 if qubits were in the first superposition,
//         1 if they were in the second superposition.
// The state of the qubits at the end of the operation should be the same as the starting state

参考实现中给出的解决方案如下:

operation ParityMeasurement_Reference (qs : Qubit[]) : Int {
    return Measure([PauliZ, PauliZ], qs) == Zero ? 0 | 1;
}

如果执行测量操作,如何保留量子位的状态?还是Measure()函数的工作方式不同?

1 个答案:

答案 0 :(得分:2)

让我们从一个简单的场景开始:在计算基础上测量一个qubit。通常,其状态将根据测量结果从α|0⟩+β|1⟩变为|0⟩或|1⟩。但是,如果量子位已经处于|0⟩状态(或|1⟩-两者都是被测对象的本征态),则测量将不会更改其状态。

通常情况下,投影测量将系统的状态投影到可观测对象的本征空间上,其特征值对应于测量结果。如果量子位已经处于本征状态,则可以确定测量结果,并且投影不会修改状态。

现在,回到原始任务。在α|00⟩+β|11⟩状态或在α|01⟩+β|10⟩状态下,给您两个量子位。

如果以计算为基础将测量限制为单量子位测量(在Q#中实现为M运算),则仍可以区分状态,但是状态会改变,以|00⟩/ |11⟩或|| 01⟩/ |10⟩状态取决于测量结果,您可以在Measurements kata的上一个任务中进行检查。为了能够在不更改状态的情况下区分状态,您需要找出一个可观察到的状态,将这两个状态作为具有不同特征值的本征状态。

考虑Z⊗Z运算符(将Z门应用于两个量子位):α|00⟩+β|11⟩是特征值为1的本征态,而α|01⟩+β|10⟩是本征态特征值为-1。如果测量此运算符,则无需更改状态就可以区分状态。这种类型的测量称为联合测量或奇偶校验测量(以Z为基础测量多个qubit与测量状态的奇偶校验相同,偶数为1的状态的特征值为1,奇数为1的状态的特征值特征值-1)。而这恰恰是Measure操作执行的一种测量。

您可以在Q# documentation中了解有关多量子位Pauli测量的更多信息。