その論文の著者が彼らがすることをなぜ/どのように行うのか私にはわかりません。しかし、これが私がこの特別な場合のためにそれをどのように行うかです(そしてそれは非常に特別なケースです):
あなたはパウリ分解としてハミルトニアンを書くことができ
A=15I⊗I+9Z⊗X+5X⊗Z−3Y⊗Y.
更新:それがあるべき+3Y⊗Y。しかし、すべての図などを再描画したくないので、負の符号を残しておきます。
さて、これらの用語のすべてが通用することに注意するのは興味深いことです。だから、ことを意味し
eiAθ=e15iθe9iθZ⊗Xe5iθX⊗Ze−3iθY⊗Y.
これらの各ステップを個別にシミュレートする方法を理解することもできますが、最初にもう1つ観察してみましょう。これらの通勤項は2キュービットクラスター状態の安定化因子です。それはあなたにとって何か意味があるかもしれませんが、そうではないかもしれませんが、制御された位相ゲートを適用することが賢明なことです。
CP⋅A⋅CP=15I⊗I+9I⊗X+5X⊗I−3X⊗X.
(最後の項の符号を確認する必要があるかもしれません。私はそれを慎重に計算していません。)したがって、制御された位相ゲートでシーケンスを開始および終了する場合、2つの項は簡単に正しくなります。約最初の量子ビットx角度によって軸5θ、および約第二量子ビットx角度によって軸9θ。
我々は権利を取得するために残されている唯一のことは、あるX⊗X回転。あなたがの構造を考える場合にe−3iθX⊗X、これは次のようであるx基底状態で回転{|00⟩,|11⟩}、及び上の別の{|01⟩,|10⟩}。制御されない-これらのベースをターゲットキュービットから制御された単一キュービットベースに変換 ただし、どちらも同じ回転制御を実装していますが、反対の値を制御しているため、制御を削除できます。したがって、全体の回路は次のとおりです。
これは、最後に2つの制御ゲートを組み合わせることでわずかに簡略化
します。グローバルな位相の項はここでは含めていないことに注意してください。あなたは(制御型作るときeiAθ)、あなたはとして「グローバルフェーズ」を適用するz制御キュービットの回転。
optim_hamil.py
。正しい回転角度値/係数を取得する実際的な方法は、ある種の多変量最適化アルゴリズムを使用することです。Nelimeescipy.optimize
はその目的でモジュールを使用しました。ただし、個人的にはグループリーダーの最適化アルゴリズムも適切に理解したいと思います。論文:arxiv.org/abs/1004.2242は曖昧すぎます!