Я предлагаю взглянуть на протоколы оценки собственного значения / собственного вектора. Существует большая гибкость, чтобы сделать задачу настолько простой или сложной, насколько вы хотите.
Начните с выбора двух параметров, n а также k, Вы хотите создатьn-кубит унитарный, U имеет собственные значения вида e−2πiq/2k для целых чисел q, Убедитесь, что хотя бы одно из этих собственных значений уникально, и назовите егоω, Также убедитесь, что простое состояние продукта, скажем,|0⟩⊗n, имеет ненулевое перекрытие с собственным вектором собственного значения ω,
Цель состоит в том, чтобы реализовать алгоритм оценки фазы для этого, учитывая значение kи поручено вывести вектор |ψ⟩ это собственный вектор, соответствующий собственному значению ω, В общем, это будет состоять изn+k кубиты (если вам не нужны вспомогательные средства для реализацииU).
Это работает следующим образом:
установить два регистра, один из k кубиты, а другой nкубитов. ( использование квантовых регистров )
каждый кубит инициализируется в состоянии |0⟩, ( инициализация квантовых регистров )
применить Адамара к каждому кубиту в первом регистре ( однобитные логические элементы )
с кубита r в первом регистре применитьU2rнацеливание на второй регистр ( многоквитные контролируемые ворота )
примените обратное преобразование Фурье к первому регистру и измерьте каждый кубит первого регистра в стандартном базисе. Их можно комбинировать, реализуя полуклассическое преобразование Фурье . ( измерение и обратная связь классических данных )
для правильного результата измерения второй регистр находится в желаемом состоянии |ψ⟩,
Для простоты вы можете выбрать n=2, k=1так что тебе нужна 4×4 унитарная матрица с собственными значениями ±1, Я бы использовал что-то вроде
(U1⊗U2)C(U†1⊗U†2),
где
Cобозначает контролируемое-НЕ. Существует только один собственный вектор с собственным значением -1, который
|ψ⟩=(U1⊗U2)|1⟩⊗(|0⟩−|1⟩)/2–√, и вы можете возиться с выбором
U1 а также
U2 изучить реализацию
Uиспользуя разложение в терминах универсального набора ворот (я бы, вероятно, поставил это как предварительную проблему). Затем
Uлегко реализуется, просто заменив контролируемое-НЕ на контролируемое-контролируемое-НЕ (Toffoli). Наконец, обратное преобразование Фурье - это просто ворота Адамара.
Для чего-то более сложного, положите k=3и заменить C с квадратным корнем из ворот своп,
⎛⎝⎜⎜⎜⎜⎜1000012√i2√00i2√12√00001⎞⎠⎟⎟⎟⎟⎟
с
ω=e±iπ/4 а также
|ψ⟩=(U1⊗U2)(|01⟩±|10⟩)/2–√,