Как реализовать Диффузионный оператор Гровера в Q #?

Indrajit Banerjee спросил: 11 июня 2018 в 10:18 в: quantum-computing

Как говорится в названии, как реализовать Диффузионный оператор Гровера в Q #? Я знаю, что он определен как 2 ⟨s|s⟩ - I, где |s⟩ - равномерное состояние для любого произвольного количества кубитов. Это можно далее определить в терминах Z0 (увиденного U0) затвором, зажатым парой H-ворот. Мне не удалось найти какую-либо функцию в квантовом примитиве и канонических документах, начиная с возможных имен, таких как Grover, diff и т. Д.

Я не хочу использовать функцию AmpAmpByOracle, так как она очень высокого уровня, и я не понимаю своего понимания. Я хочу реализовать функцию, которая принимает Uac (как мне кажется, предположительно) оракула и число кубитов (N), и выполнить алгоритм Гровера, просто следуя схеме, приведенной в алгоритме Гровера | Википедии и измерьте требуемое состояние, измерив все N кубитов в конце r = approx (2 ^ (N / 2)) итераций.


0 ответов