Я пытаюсь привыкнуть к IBM Q путем реализации алгоритма Гровера с тремя кубитами, но с трудом реализую оракула.
Не могли бы вы показать, как это сделать, или предложить хорошие ресурсы, чтобы привыкнуть к схемотехнике IBM Q?
Я хочу пометить одно произвольное состояние, щелкнув его знак, как и предполагал оракул.
Например, у меня есть
.
и я хочу отметить листать свой знак - | 111 ⟩ . Я как-то понимаю, что ворота CCZ решат проблему, но у нас нет шлюза CCZ в IBM Q. Комбинация некоторых ворот будет действовать так же, как CCZ, но я пока не уверен, как это сделать. И я также борюсь за другие случаи не только за | 111 ⟩ .
Случай с двумя кубитами достаточно прост для реализации, но уход за тремя кубитами все еще смущает меня.
Ответы:
Я отвечаю на мой вопрос. После некоторого поиска в Google я нашел это изображение, показывающее ворота CCZ от CNOT, T dagger и T gate. Я попробовал это на IBM Q, и это сработало. Я хочу изучить, почему это работает, но это другая история.
Для тех, кто заинтересован, вот моя квантовая схема нахождения алгоритма Гровера | 111> с одной итерацией.
источник
Я реализовал ту же проблему для нескольких кубитов, используя qiskit здесь .
...
В общем, идея состоит в том, чтобы смоделировать шлюз CCZ, используя Hadamard для целевого бита, затем шлюз CCX, а затем еще один Hadamard для целевого бита.
источник