Быстрые квантовые алгоритмы
Построение измеряющего оператора.
Теперь будем строить оператор, измеряющий собственные числа . Как уже было сказано, можно ограничиться изучением действия этого оператора на вход . Построение разделяется на три этапа.
- Ищем информацию о , где .
- Локализуем значение с небольшой точностью. Самое время подчеркнуть, что во всех приводимых рассуждениях есть два параметра: вероятность ошибки и точность . Мы получаем некоторое число как результат измерения, при этом должно выполняться условие . Пока нас устроит небольшая точность, скажем,
- Далее нужно увеличить точность. Необходимо уметь отличать друг от друга числа вида , где . Заметим, что если , то . Поэтому, зная значение с точностью , мы можем определить его абсолютно точно (в виде несократимой дроби). Чтобы сделать это эффективно (за полиномиальное время), можно использовать алгоритм цепных дробей.
Как получать информацию о собственном числе.
В "Измеряющие операторы" был введен оператор , измеряющий собственные числа. В нашем случае , поэтому можно записать этот оператор в виде
а его действие в виде так что для условных вероятностей получаем выражениеНам потребуется еще оператор . Его также нетрудно реализовать. Реализация, изображенная на рисунке, использует оператор из стандартного базиса. Обведенный фрагмент реализует оператор . Действительно, умножает на только , но как раз в этом случае применяется оператор (по определению оператора ). Для оператора условные вероятности равны
Сложность реализации операторов и зависит от сложности реализации оператора , которая ненамного выше сложности реализации оператора (см. задачу 12.2).
Оценка условных вероятностей.
Мы будем локализовывать значение , оценивая условные вероятности, приведенные выше. Для получения такой оценки будем применять операторы и к различным "приборам" (дополнительным q-битам). Рассуждения одинаковы для обоих операторов, поэтому ограничимся случаем .
У нас есть квантовый регистр , в котором находится . (На самом деле там вначале был
но мы рассматриваем по отдельности; это корректно в силу вида измеряющего оператора). Заведем большое количество ( штук) вспомогательных регистров длиной в 1 бит. Каждый из этих регистров будет использоваться для применения оператора .Как было доказано в "Измеряющие операторы" , условные вероятности в таком случае перемножаются. Для оператора
условные вероятности будут равны (здесь через обозначено значение в -ом бите).Далее с битами, в которых записаны результаты "экспериментов", будут уже производиться классические действия. Поскольку условные вероятности перемножаются, можно считать, что мы оцениваем вероятность выпадения 1 в серии испытаний Бернулли.
Если монета брошена раз, то доля выпавших единиц примерно равна . С какой точностью верна такая оценка? Из теории вероятностей известно, что
где — некоторая константа. Это показывает, что при любом фиксированном можно добиться вероятности ошибки за испытаний.Итак, мы научились находить с некоторой точностью синус и косинус от . Теперь подберем таким, чтобы значение можно было установить по значениям синуса и косинуса с точностью . На этом второй этап завершен.