CCCNOTゲートは4ビットのリバーシブルゲートで、最初の3ビットがすべて状態場合にのみ、4番目のビットを反転します。
Toffoliゲートを使用してCCCNOTゲートを実装するにはどうすればよいですか?ワークスペースのビットは、特定の値(0または1)で始まると想定します。
CCCNOTゲートは4ビットのリバーシブルゲートで、最初の3ビットがすべて状態場合にのみ、4番目のビットを反転します。
Toffoliゲートを使用してCCCNOTゲートを実装するにはどうすればよいですか?ワークスペースのビットは、特定の値(0または1)で始まると想定します。
回答:
あなたが探しているのは次の回路だと思います。ここで、、および加算モジュロである。
ここでは、5番目の量子ビットは、補助量子ビットまたは補助量子ビットとして使用されます。で始まる 0 ⟩とで両端回路が適用されます。
この回路のしくみについて詳しく説明します。アイデアは、まず最初の2つのキュービットが状態にあるかどうかを確認することです。これは、単一のToffoliゲートを使用して行うことができ、結果は補助キュービットに格納されます。さて、問題は、量子ビット3と補助量子ビットが存在するときはいつでも、量子ビット反転に減少します。1 ⟩。これは、Toffoliゲートの1つのアプリケーション、つまり上に示した回路の中央のアプリケーションを使用しても実現できます。最後に、最後のToffoliゲートは、このキュービットの状態が|に戻るように、補助キュービットに保存した一時的な結果を計算解除する働きをします。0 ⟩ 回路が適用された後。
コメントセクションでは、補助キュービットを使用せずに、Toffoliゲートのみを使用してこのような回路を実装することが可能かどうかという疑問が生じました。ここで説明するように、この質問は否定的に答えることができます。
4つのキュービットに作用するゲートを実装したいと考えています。次の行列(Pauli- ゲートの
行列表現)を定義できます
最後に注意すべきことは、行列乗算と互換性のある任意の2つの行列AおよびBについて、行列式が行列乗算と交換すること、つまりです。したがって、複数のToffoliゲートを順番に適用すると、行列表現が1とは異なる行列式をもつ回路が作成されないことが明らかになりました。これは、特に、4の Toffoliゲートのみを使用してC C C N O Tゲートを実装できないことを意味します。キュビット。
ここで明らかな問題は、補助キュービットを許可すると何が変わるかです。我々はのアクション書き出すとき私たちは答えを見つける上-ゲート:-qubitシステム