5

バックグラウンド

私は Javascript 量子シミュレーターに出くわし、3 量子ビットの量子フーリエ変換を実装するコード (つまり、量子回路) を書こうとしていました。

私が得ることができる最も近いものを以下に示します: QFT結果

これは、Nielsen と Chuang による「Quantum Computation and Quantum Information」の QFT に関する章に基づいています。(回路の最後にある条件付き NOT ゲートは、出力ビットを正しい順序にスワップすることを目的としています。QFT はビットの順序を逆にします。)

ウィキペディアの QFT 記事に基づいて回路も試しましたが、答えには近づきませんでした。

質問

私のアルゴリズムを修正してQFTを計算するのを手伝ってくれる人はいますか?

(バグは私の回路にある可能性が最も高いと思いますが、基盤となる Javascript の実装にエラーがある可能性もあると思いますか?)

4

1 に答える 1

3

ウィキペディアの回路が機能しない理由は、提供されているフェーズ ゲートが反時計回りではなく時計回りに回転しているためです (たとえば、+45 度ではなく -45 度)。ウィキペディア (およびおそらくテキストブックも) の回路は R_(pi/2) ゲートを使用していますが、R_(-pi/2) ゲートがあります。

この問題に対処するには、いくつかの方法があります。

  • Z (-180)、-90、および -45 を使用して +45 度のゲートをシミュレートします。+90 についても同様の考えです。
  • 回路を逆さまにすると、ワイヤ 1 のゲートがワイヤ 3 に接続され、その逆になります。
  • スワップ部分 (最後の 3 つの X ゲート) を最後から最初に移動します。
  • 最後の 3 つの X を除くすべてのゲートの順序を逆にします。
  • (私は思う)上記の3つを正確に適用してください。
  • おそらくもっと多くの方法があります。それぞれが機能する理由を理解するのは興味深いことです。

申し訳ありませんが、後方フェーズは混乱を招きました。(これは実際には私の回路シミュレータであり、ソリューションを含むブログ投稿用に書いたものです。)

于 2014-05-07T19:20:56.217 に答える