В настоящее время у меня есть 2 унитарные матрицы, которые я хочу аппроксимировать с хорошей точностью при меньшем количестве возможных квантовых элементов.
В моем случае две матрицы:
- Квадратный корень НЕ ворот (до глобальной фазы)
Мой вопрос заключается в следующем:
Как я могу аппроксимировать эти конкретные матрицы с меньшим количеством возможных квантовых элементов и хорошей точностью?
То, что я хочу иметь, может позволить себе иметь это:
- Я могу позволить себе использовать несколько дней / недель процессорного времени и много оперативной памяти.
- Я могу позволить себе потратить 1 или 2 человеческих дня в поисках математических уловок (в крайнем случае, поэтому я спрашиваю здесь сначала). Это время не включает время, которое мне понадобится для реализации гипотетических алгоритмов, используемых для первого пункта.
- Я хочу, чтобы разложение было почти точным. На данный момент у меня нет точности цели, но 2 схемы выше используются моей схемой, и я не хочу, чтобы ошибки накапливались слишком много.
- Я хочу, чтобы при разложении использовалось как можно меньше квантовых элементов. Этот момент является второстепенным на данный момент.
- Хороший метод позволил бы мне выбрать компромисс, который я хочу, между количеством квантовых вентилей и точностью приближения. Если это невозможно, вероятно, требуется точность не менее (с точки зрения нормы следа) (как сказано выше, у меня нет оценок, поэтому я не уверен в этом пороге).
- Набор ворот:
с как описано вВикипедии,- вращение относительно оси(- это,или) и.
Методы, которые я знаю о:
- Алгоритм Соловая-Китаева. У меня есть реализация этого алгоритма, и я уже тестировал его на нескольких унитарных матрицах. Алгоритм генерирует последовательности, которые являются достаточно длинными, и компромисс [количество квантовых вентилей] VS [точность приближения] недостаточно параметризуем. Тем не менее, я выполню алгоритм на этих воротах и отредактирую этот вопрос с результатами, которые я получил.
- Две статьи об аппроксимации 1-кубитных гейтов и n-кубитовых гейтов . Мне также нужно проверить эти алгоритмы.
РЕДАКТИРОВАТЬ: отредактировал вопрос, чтобы сделать «квадратный корень не» более очевидным.
Ответы:
Вы выбрали две особенно простые матрицы для реализации.
Первая операция (G) - это просто квадратный корень из X gate (вплоть до глобальной фазы):
Вторая операция (W) - это матрица Адамара в среднем блоке 2x2 матрицы, идентичной иначе. Каждый раз, когда вы видите этот паттерн 2х2 посередине, вы должны думать, что «контролируемая операция сопряжена CNOT». И это именно то, что работает здесь (примечание: вам может понадобиться поменять местами; зависит от вашего соглашения о порядке байтов):
Таким образом, единственная реальная проблема заключается в том, как реализовать управляемую операцию Адамара. Адамар - это поворот на 180 градусов вокруг оси X + Z. Вы можете использовать 45-градусное вращение вокруг оси Y, чтобы переместить ось X + Z к оси X, затем сделать CNOT вместо CH, а затем переместить ось назад:
источник
Конструкция является оптимальной в том смысле, что она требует двух вентилей CNOT и не более 12 шлюзов с одним кубитом (для наиболее общего случая реальных двухбитовых вентилей). Конструкция основана на гомоморфизме:
Используя эту конструкцию, полная реализация gate, предоставленная Vatan и Williams:
источник
Ни один из этих ворот не требует приблизительных последовательностей. Вы можете реализовать их точно с вашими заданными наборами ворот без особых усилий.
источник