トフォリ門の普遍性


20

量子トフォリゲートについて:

  1. それは古典的に普遍的ですか?そうであれば、なぜですか?
  2. それは量子的に普遍的であり、なぜですか?

非量子ロジックでは、普遍的であることが知られているブール演算子の別のセットが手元のセットでシミュレートできることを示します。量子の世界でも同じかどうかはわかりませんが、そう思うでしょう。
ラファエル

8
量子論理では、トフォリゲートは普遍的ではありません。これは古典的な計算しかできないからです。また、入力が基底状態にある場合、出力を基底状態の重ね合わせに置く量子ゲートも必要です。
ピーターショー

質問は紛らわしいかもしれませんが、量子/古典世界の普遍性の違いを尋ねるために編集する必要があるかもしれません。
ランG.

量子ケースをカバーするように回答を編集しました。あなた今何考えてるの?
ビクターStafusa

1
@RanG。将来の質問への道を示すことになっています。この質問は宿題とタグ付けされていますが、なぜ自分でそれを解決できなかったのか(そしてどこに問題があるのか​​)を説明していないようです。プライベートベータ版にとっては良い質問ではないと思います(メタディスカッションを参照)。この質問を終了するために投票します。
-Gopi

回答:


13

Toffoliは、(@ Victorが示すように)古典的な計算に普遍的です。ただし、Toffoliは量子計算に普遍的ではありません(ようなおかしなものがない限り)。P=BQP

(通常の定義で)量子計算に普遍的であるためには、ゲートによって生成されるグループはユニタリで密である必要があります。言い換えれば、任意の与えられたユニタリとターゲットUを一元取得することができ、量子ゲートの有限数を適用するいくつかの方法がありU "は、このような| | U U | | < ϵϵUU||UU||<ϵ

Toffoli自体は、基底状態を常に基底状態にするため、この定義では明らかに普遍的ではありません例えば。つまり、重ね合わせを作成できません。|012(|0+|1)


10

あなたが引用しウィキペディアの記事から:

トフォリ門は普遍的です。これは、任意のブール関数f(x1、x2、...、xm)に対して、x1、x2、...、xmと0または1に設定されたいくつかの追加ビットを取り、出力するToffoliゲートで構成される回路があることを意味しますx1、x2、...、xm、f(x1、x2、...、xm)、および余分なビット(ガベージと呼ばれる)。基本的に、これは、Toffoliゲートを使用して、必要なブール関数計算を可逆的に実行するシステムを構築できることを意味します。

これは、単純な用語では、ブール関数はToffoliゲートでのみ構築できることを意味します。

ブール関数は通常、OR、AND、およびNOTゲートから構成され、これらを組み合わせて任意のブール関数を形成できます。同じことがNORゲートまたはNANDゲートでのみ可能であることは広く知られています。

Toffoliゲートは次のように要約できます。

Toffoli(a,b,c)={(a,b,¬c)when a=b=1(a,b,c)otherwise.

最初と2番目の出力は常に最初と2番目の入力に等しいので、それらを無視することができます。だから私たちは持っています:

Toffoli(a,b,c)={¬cwhen a=b=1cotherwise.

それにより、NANDゲートを次のように定義できます。

NAND(a,b)=Toffoli(a,b,1)

NANDゲートは汎用であり、NANDゲートはToffoliゲートとして定義される可能性があるため、Toffoliゲートは汎用です。

ANDゲートとNOTゲートを直接構築することにより、Toffoliが普遍的であることを証明する別の方法があります。

NOT(x)=Toffoli(1,1,x)

AND(a,b)=Toffoli(a,b,0)

次に、De Morganの法則を使用してORゲートを構築します

OR(a,b)=NOT(AND(NOT(a),NOT(b))=Toffoli(1,1,Toffoli(Toffoli(1,1,a),Toffoli(1,1,b),0))


編集、質問が編集され、スコープが変更されたため:

まず、量子コンピューティングが理解できないので、何か問題がある場合はコメントを追加してください。私はこの答えを完全にするために少し研究をし、これで終わりました:

Toffoliゲートはリバーシブルです(ただし、上記で使用したToffoli 'はリバーシブルではありません)。これは、それを使って行った計算を元に戻すことができることを意味します。これは:

(a,b,c)=Toffoli(Toffoli(a,b,c))

つまり、任意のトリプル(a、b、c)でToffoliが2回適用されると、元の入力が出力として取得されます。

量子ゲートは可逆的でなければならないため、可逆性が重要です。そのため、(古典的な)トフォリゲートを量子ゲートとして使用できます。

ここに示されているように、ドイツのゲートはトフォリのゲートと同様の方法で定義されていますが、古典的なゲートではなく、量的なゲートです:

Deutsch(a,b,c)=|a,b,c{icos(θ)|a,b,c+sin(θ)|a,b,1cfor a=b=1|a,b,cotherwise.

このように、トッフォリ門はドイツ門の特定のケースです。

Toffoli(a,b,c)=Deutsch(π2)(a,b,c)

π2

ToffoliゲートとHadamardゲートを組み合わせると、普遍的な量子Tgateセットを取得できます。これはまさにドイツのゲートが行うことです。

興味深いの参照は見つけることができるここではここここ。Deutschトランスフォームの基礎を示す貴重な参考資料はここにありますが、リンクはパスワードで保護されています。


Toffolliは量子計算に普遍的ではなく、CNOT自体もそうではありません。彼らは重ね合わせを作成できないため、これは見やすいです。
アルテムKaznatcheev

{}

EDIT 2の参照が間違っています。その記事は明らかにトホリ+アダマール自体が、トホリ普遍的ではないと述べている
アルテムKaznatcheevに

@ArtemKaznatcheev:記事には「トフォリとアダマール」と書かれています。そして、これは「トフォリは例であり、ハダマートは別の例」を意味すると思った。とにかく今は明らかです。
ビクターStafusa

編集しましたが、今は大丈夫です。
ビクターStafusa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.