Где-то прочитал, что создание запутанного состояния в некотором смысле эквивалентно измерению состояния кубита. Мне это кажется достаточно понятным.
Рассмотрим систему из двух кубитов 1/√2(|0> - |1>)|0>.
Если к первому кубиту применить вентиль Адамара*, то получим |10>. Измерение первого кубита всегда даст 1. Тут все понятно. Теперь рассмотрим два варианта.
А) Перед тем как применить вентиль Адамара, выполним измерение первого кубита. В результате с равной вероятностью получим либо |00>, либо |10>. А после вентиля — 1/√2(|0> + |1>)|0> и 1/√2(|0> - |1>)|0> соответственно. Теперь измерение первого кубита после вентиля дает 0 или 1 c вероятностью 1/2.
Б) Вместо измерения первого кубита перед вентилем Адамара, применим к двум кубитам вентиль CNOT** и получим
1/√2(|0> - |1>)|0> -> 1/√2(|00> - |11>)
Теперь применим вентиль Адамара к первому кубиту и выйдет
1/2(|00> - |01> + |10> + |11>)
Опять получили, что первый кубит равен 0 или 1 с равной вероятностью. То есть связывание первого кубита со вторым в этом случае эквивалентно измерению первого кубита.
Вроде бы все понятно, но... Очень многие квантовые алгоритмы подразумевают, что если некоторая функция f вычислима на классическом компьютере, то она и вычислима на квантовом. Затем этот квантовый вычислитель как итерация или промежуточный этап в квантовом алгоритме применяется к системе запутанных кубит. Вопрос мой заключается в том, что произойдет, если внутри вычислителя f происходит связывание некоторых выходных кубитов функции f с некоторыми вспомогательными?
По моим прикидкам, алгоритм Гровера и алгоритм Дойча-Йожи не чувствительны к этому. Мой простейший пример с двумя кубитами показал, что это не всегда так. Вопрос - когда это не так?
* вентиль Адамара превращает ноль |0> в 1/√2(|0> + |1>), а единицу |1> в 1/√2(|0> + |1>)
** вентиль CNOT меняет значение второго бита на противоположное, если первый равен единице:
|00> -> |00>
|01> -> |01>
|10> -> |11>
|11> -> |10>