这是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()函数的工作方式不同?
答案 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测量的更多信息。