トフォリゲート

トフォリゲート () は、トマソ・トフォリの提案した可逆論理ゲートである。トフォリゲートはfunctional complete（）である。すなわち、任意の論理演算がトフォリゲートの組み合わせにより実現できる。別名の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し、二つ目に出力する。一つ目の入力はそのまま出力される。動作を以下に示す。
また、論理式で表すと次のようになる(複数ビットの出力をタプルで表した)。
しかし、この演算のみでは表現できない可逆計算が存在する。つまり、CNOTは機能的完全性を持たない。を持つ演算の一つがトマソ・トフォリによって提案されたトフォリゲートである。
このゲートは3ビットの入出力をもつ。もし入力の最初の2ビットが1ならその時に限り、第3のビットを反転して出力する。最初の2ビットはそのまま出力する。以下の表に動作を示す。
また、論理式で表すと次のようになる。
トフォリゲートはをもつ。つまり、どのような論理関数 "f"("x"1, "x"2, ..., "x""m") に対しても、トフォリゲートのみを使って "x"1, "x"2, ..., "x""m" と幾つかの作業用のビットを入力に取り "x"1, "x"2, ..., "x""m", "f"("x"1, "x"2, ..., "x""m") と幾つかの作業に使われた不要なビットを出力する論理回路を構成できる。これは、トフォリゲートを使って論理関数を可逆的に計算することができることを意味する。
量子計算との関係.
量子トフォリゲートは2009年1月、オーストリアのインスブルック大学で実現された。