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