Как часть вариационного алгоритма, я хотел бы построить квантовую схему (в идеале с pyQuil ), которая имитирует гамильтониан вида:
Когда дело доходит до последнего термина, проблема в том, что pyQuil выдает следующую ошибку:
TypeError: PauliTerm coefficient must be real
Я начал погружаться в литературу, и это кажется нетривиальной проблемой. Я наткнулся на эту статью об универсальных квантовых гамильтонианах, где обсуждаются кодировки от комплексного к реальному, а также локальные кодировки. Тем не менее, мне до сих пор не ясно, как можно было бы реализовать нечто подобное. Кто-нибудь может дать мне несколько практических советов, как решить эту проблему?
programming
simulation
hamiltonian-simulation
pyquil
Марк Фингхут
источник
источник
Ответы:
Обычный гамильтониан - эрмитов. Следовательно, если он содержит неэрмитский термин, он должен также содержать свою эрмитову конъюгату в качестве другого термина или иметь вес 0. В данном конкретном случае, поскольку является эрмитовым, коэффициент должен быть равен 0. Итак, если вы говорите об обычных гамильтонианах, вы, вероятно, допустили ошибку в своих вычислениях. Обратите внимание, что если эрмитова сопряжённого термина нет, вы не можете просто исправить вещи, добавив его; это даст вам совершенно другой результат.Z⊗X⊗Y
С другой стороны, вы можете захотеть реализовать неэрмитов гамильтониан. Эти вещи существуют, часто для описания шумовых процессов, но не так широко распространены. Вы должны явно включить «неэрмитову» терминологию, иначе все просто подумают, что вы делаете неправильно, потому что это не эрмитово, а гамильтониан должен быть эрмитовым. Я не слишком знаком с возможностями, которые предоставляют различные симуляторы, но я был бы удивлен, если бы в них была встроена не-эрмитность.
Однако вы можете смоделировать это за счет недетерминированной реализации. Существуют более сложные методы, чем этот (см. Ссылки в этом ответе ), но позвольте мне описать один особенно простой: я собираюсь предположить, что есть только один неэрмитов компонент, который (тензорное произведение Paulis). Я буду называть это тензорное произведение Паулиса . Остальная часть гамильтониана . Вы хотите создать эволюцию Мы начинаем с рывка эволюции, где . Сейчас мы работаем над моделированием индивидуального терминаi× K H
Введет Ancilla кубит в состоянии , и мы используем это в качестве контрольного кубита в контролируемом ворота. Затем мы измеряем вспомогательное средство в базисе (где ). Если результат равен , то на целевых кубитах мы реализовали операцию , вплоть до нормализации. Итак, если вы исправите , вы прекрасно реализовали эту операцию. Если измерение не пройдено, то вам решать, хотите ли вы попытаться восстановить (это может быть невозможно) или начать заново.|ψ⟩=α|0⟩+β|1⟩ K {|ψ⟩,|ψ⊥⟩} ⟨ψ|ψ⊥⟩=0 |ψ⟩ |α|2I+|β|2K (1−|α|2)/|α|2=tanh(δt)
источник
Этот простой код MATLAB / Octave показывает, что не является эрмитовым:i0.12Z1Y2X3
Выход H:
Поскольку это реальная матрица, эрмитово означает симметричный, но это не симметрично и, следовательно, не эрмитово. Верхний правый треугольник не равен нижнему правому треугольнику.
Однако верхний правый треугольник является негативом нижнего правого треугольника, поэтому он является антиэрмитовым.
Таким образом, предложение AHussain о добавлении сопряженного транспонирования приводит к 0. Просто запустите эту команду:
и вы получите матрицу 8x8 0.
Поэтому, когда вы создаете свой гамильтонов эрмит, добавляя сопряженную транспонирование, вы получаете 0 для этого члена, и, следовательно, вам не нужно иметь мнимые коэффициенты .
источник