Поддерживает ли Q # состояние кубита после выполнения измерения? - PullRequest
0 голосов
/ 23 января 2019

Это проблема в упражнениях Quantum Katas от Microsoft.

// 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 голосов
/ 23 января 2019

Давайте начнем с более простого сценария: измерение одного кубита в вычислительном отношении.Как правило, его состояние будет изменяться от α | 0⟩ + β | 1⟩ до | 0⟩ или | 1⟩, в зависимости от результатов измерения.Но если кубит уже находился в состоянии | 0⟩ (или | 1⟩ - оба являются собственными состояниями измеряемой наблюдаемой величины), измерение не изменит свое состояние.

В общем случае проективные измерения проецируютсостояние системы на собственном пространстве наблюдаемой с собственным значением, соответствующим результату измерения.Если кубит уже находился в собственном состоянии, результат измерения определен с уверенностью, и проекция не изменит состояние.

Теперь вернемся к исходному заданию.Вам даны два кубита либо в состоянии α | 00⟩ + β | 11⟩, либо в состоянии α | 01 β + β | 10⟩.

Если вы ограничите свои измерения однобитными измерениями в вычислительном отношении (реализовано как операция M в Q #), вы все равно можете различать состояния, но они будут изменяться, сворачиваясь в | 00⟩ / | 11⟩или в состояниях | 01⟩ / | 10⟩, в зависимости от результатов измерений, - вы можете проверить это в предыдущем задании Измерения ката .Чтобы иметь возможность различать состояния, не изменяя их, вам нужно вычислить наблюдаемую, которая имеет эти два состояния как собственные состояния с различными собственными значениями.

Рассмотрим оператор Z ⊗ Z (который применяет Z-ворота к обоим кубитам): α | 00⟩ + β | 11⟩ является собственным состоянием с собственным значением 1, а α | 01⟩ + β | 10⟩ является собственным состоянием с собственным значением -1.Если вы измерите этот оператор, вы сможете различать состояния, не меняя их.Этот тип измерения называется совместным измерением или измерением четности (измерение нескольких кубитов на основе Z аналогично измерению четности состояния, состояния с четным числом 1 имеют собственное значение 1, а состояния с нечетным числом 1 имеютСобственное значение -1).И это именно тот тип измерения, который выполняет операция Measure.

Подробнее о многобитовых измерениях Паули можно прочитать в документации Q # .

...