量子ゲートは単一で可逆的であると言われています。ただし、論理ANDゲートや論理ORゲートのように、古典的なゲートは不可逆的です。次に、量子ゲートを使用して、不可逆的な古典的なANDおよびORゲートをモデル化する方法を教えてください。
量子ゲートは単一で可逆的であると言われています。ただし、論理ANDゲートや論理ORゲートのように、古典的なゲートは不可逆的です。次に、量子ゲートを使用して、不可逆的な古典的なANDおよびORゲートをモデル化する方法を教えてください。
回答:
ビットをビットにマッピングする関数あるとします()。n m m < n
もちろん、この操作を実行する古典的な回路を設計することもできます。それをと呼びましょう。入力としてビットを取り込みます。入力を取り、出力するとします。 n X f (X )
ここで、量子回路を使用して同じことを行いたいと思います。と呼びましょう。これは、入力としてを受け取り、出力としてます。量子力学は線形であるため、入力キュービットはもちろんすべてのビット文字列の重ね合わせになる可能性があることを覚えておいてください。したがって、入力は何らかの状態ます。線形性により、出力はます。
量子力学の進化は単一です。そしてそれは単一であるため、可逆的です。あなたは、量子ゲート適用する場合は、この本質的な手段入力状態にと出力に含ま状態取得、あなたは常に逆ゲート適用することができますの状態に戻って取得することを。
上の図では、入力行の数(つまり6)が各ステップの出力行の数と正確に同じであることに注意してください。これは、操作が統一されているためです。これを、論理ANDなどの従来の演算と比較してください。ここで、は単一ビット出力を与え。初期ビット再構築することはできませんと 1をさえため、出力から 0 ∧ 0と 1 ∧ 0同じ出力にマッピングされているだろう 0。しかし、古典的なNOTゲートを検討してください。入力された場合は 0、それはouputs 1を入力するとしながら、 1出力します。このマッピングは1対1であるため、可逆ユニタリゲート、つまりPauli-Xゲートとして簡単に実装できます。ただし、古典的なANDゲートまたは古典的なORゲートを実装するには、もう少し考える必要があります。
CSWAPゲートを検討してください。スキームを示す概略図は次のとおりです。
制御ビットに応じてSWAPゲートでは、他の2つがスワップされる場合とされない場合があります。3つの入力行と3つの出力行があることに注意してください。したがって、単一量子ゲートとしてモデル化できます。現在、場合:x = 0の場合、出力は0であり、x = 1の場合、出力はyです。
あなたが気付いた場合、場合、我々は出力されているˉ のx ∧ yの中にあれば、X = 1、我々は出力されているのx ∧ yは。我々が正常に出力を生成できるようのx ∧ yの我々はいくつかの「ジャンク」の出力になってしまったが、我々が望んでいたと。興味深い事実は、CSWAPゲートの逆がCSWAPゲート自体であることです(チェック!)。
それで全部です!すべての古典的なゲートは、NANDゲートで構築できることを忘れないでください。NANDゲートは、もちろんANDおよびNOTゲートで構築できます。可逆量子ゲートを使用して、古典的なNOTゲートと古典的なANDゲートを効果的にモデル化しました。安全のために、リストにqauntum CNOTゲートを追加することもできます。CNOTを使用するとビットをコピーできるためです。
したがって、基本的なメッセージは、量子CSWAP、CNOT、およびNOTゲートを使用して、任意の従来のゲートを複製できるということです。ところで、量子ゲートが使用されるときに生成される「ジャンク」ビットを取り除く巧妙なトリックがありますが、それは別の話です。
PS:「ジャンク」ビットを取り除くことは非常に重要です。さもないと、計算エラーが発生する可能性があります。
参照&画像クレジット:edXでUC Berkeleyが提供するQuantum MechanicsおよびQuantum Computation MOOC。