トフォリゲート

トフォリゲート (英: Toffoli gate) は、トマソ・トフォリの提案した可逆論理ゲートである。トフォリゲートはfunctional complete（en:Functional completeness）である。すなわち、任意の論理演算がトフォリゲートの組み合わせにより実現できる。別名のCCNOTゲートは、その動作を表す "controlled-controlled-not" (制御・制御・NOTゲート) の略称である。 論理ゲート L が可逆であるとは、ゲートの表す関数が単射であること、すなわち任意の出力 y に対して L(x) = y を満たす入力 x がただ一つ定まることをいう。出力に対応する入力を求める L′(y) = x を逆ゲートという。例えば、以下のようにNOTゲートは可逆である。 一方、ANDゲートは可逆ではない。00、01、10に対する出力がすべて0となるため、出力0に対する入力が一つに定まらないためである。 可逆ゲートの研究は1960年代頃に始まった。その動機は、通常のゲートに比べて可逆ゲートは計算に使うエネルギーの消費が少ない(理想的にはゼロとなる)ことだった。通常論理ゲートでは入力する情報量に比べて出力する情報量が減り、入力された状態は失われる。これによって熱的エントロピーが下がり、生じた差分のエネルギーが周囲に熱として放出される。別の言い方をすると、回路の状態が変化する時電子がアースに流れ、エネルギーが僅かに回路外に持ち出されるということである。可逆ゲートは状態を交換して回るだけなので、情報は失われず、回路内のエネルギーは保存される。 可逆ゲートは、近年量子計算の分野で注目されている。量子計算では全ての遷移は可逆であり、重ね合わせによってより多くの計算機の状態を持つことができる。したがって、可逆ゲートは量子ゲートの機能の一部を再現するものであり、可逆的に計算できるものは量子コンピュータ上でも計算できる。 すべての可逆ゲートは同じ数の入力ビットと出力ビットをもつ。これは鳩の巣原理による。 1ビットに対しては、恒等写像とNOTゲートのふたつの可逆ゲートがある。この二種類はどのビット数に対しても同様のゲートが定義できる。 2ビットに対しては、上の二種類と交換などの自明なものを除くと、制御NOTゲートが唯一の演算である。このゲートは一つ目の入力を二つ目の入力にXORし、二つ目に出力する。一つ目の入力はそのまま出力される。動作を以下に示す。 また、論理式で表すと次のようになる(複数ビットの出力をタプルで表した)。 C N O T ( x , y ) = ( x , x ⊕ y ) {\displaystyle CNOT(x,y)=(x,x\oplus y)} しかし、この演算のみでは表現できない可逆計算が存在する。つまり、CNOTは機能的完全性を持たない。機能的完全性（英語版）を持つ演算の一つがトマソ・トフォリによって提案されたトフォリゲートである。 このゲートは3ビットの入出力をもつ。もし入力の最初の2ビットが1ならその時に限り、第3のビットを反転して出力する。最初の2ビットはそのまま出力する。以下の表に動作を示す。 また、論理式で表すと次のようになる。 C C N O T ( x , y , z ) = ( x , y , ( x ⋅ y ) ⊕ z ) {\displaystyle CCNOT(x,y,z)=(x,y,(x\cdot y)\oplus z)} トフォリゲートは機能的完全性（英語版）をもつ。つまり、どのような論理関数 f(x1, x2, ..., xm) に対しても、トフォリゲートのみを使って x1, x2, ..., xm と幾つかの作業用のビットを入力に取り x1, x2, ..., xm, f(x1, x2, ..., xm) と幾つかの作業に使われた不要なビットを出力する論理回路を構成できる。これは、トフォリゲートを使って論理関数を可逆的に計算することができることを意味する。 フレドキンゲートはトフォリゲートと同様の3ビット可逆ゲートで、1ビット目が1のときに残りのビットを交換する。制御交換ゲートとも呼ばれる。 任意のビット数に対してトフォリゲートを一般化することができる。n ビットの入力 x1, x2, ..., xn をとり、 n ビットを出力するものとする。最初の n−1 ビットはそのまま入力の x1, ..., xn−1 を出力し、最後のビットに (x1 AND ... AND xn−1) XOR xn を出力する。 トフォリゲートは2量子ビットを扱うゲートを5つ組み合わせることによって量子コンピュータ上で実現できる。 トフォリゲートは仕切りとビリヤードボールを使って実装できる（ビリヤードボール・コンピュータを参照）。このモデルはフレドキンとトフォリが提案した。図はボールの衝突がどのように進むかを示したものである。 量子トフォリゲートは2009年1月、オーストリアのインスブルック大学で実現された。 フレドキンゲート 可逆計算 量子コンピュータ ^ Technical Report MIT/LCS/TM-151 (1980) and an adapted and condensed version: Toffoli, Tommaso (1980). J. W. de Bakker and J. van Leeuwen (ed.). Reversible computing (PDF). Automata, Languages and Programming, Seventh Colloquium. Noordwijkerhout, Netherlands: Springer Verlag. pp. 632–644. ISBN 3-540-10003-2. 2010年4月15日時点のオリジナル (PDF)よりアーカイブ。 ^ Barenco, Adriano; Bennett, Charles H.; Cleve, Richard; DiVincenzo, David P.; Margolus, Norman; Shor, Peter; Sleator, Tycho; Smolin, John A. et al. (Nov 1995). “Elementary gates for quantum computation”. Physical Review A (American Physical Society) 52 (5): 3457–3467. arXiv:quant-ph/9503016. Bibcode: 1995PhRvA..52.3457B. doi:10.1103/PhysRevA.52.3457. PMID 9912645.  ^ Fredkin, Edward; Toffoli, Tommaso (April 1982). “Conservative logic”. International Journal of Theoretical Physics (Springer Netherlands) 21 (3): 219–253. Bibcode: 1982IJTP...21..219F. doi:10.1007/BF01857727. ISSN 0020-7748. http://www.digitalphilosophy.org/LinkClick.aspx?fileticket=5wPlkttI56o%3d&tabid=61&mid=494&forcedownload=true.  ^ Shi, Yaoyun (Jan 2003). “Both Toffoli and Controlled-NOT need little help to do universal quantum computation”. Quantum Information & Computation 3 (1): 84–92. arXiv:quant-ph/0205115.  ^ Monz, T.; Kim, K.; Hänsel, W.; Riebe, M.; Villar, A. S.; Schindler, P.; Chwalla, M.; Hennrich, M. et al. (Jan 2009). “Realization of the Quantum Toffoli Gate with Trapped Ions”. Physical Review Letters (American Physical Society) 102 (4): 040501. arXiv:0804.0082. Bibcode: 2009PhRvL.102d0501M. doi:10.1103/PhysRevLett.102.040501.  CNOT and Toffoli Gates in Multi-Qubit Setting at the Wolfram Demonstrations Project. Related Gates' figure public online "Information Mechanics in Unconventional Computing", Review of Information Mechanics, InterQuanta