フレドキンゲート
フレドキンゲート(英: Fredkin gate)は、エドワード・フレドキンが提案した可逆論理ゲートである。単独でfunctional completeness (en:Functional completeness) を有しているので、任意の論理演算をフレドキンゲートだけを使って構成できる。
基本フレドキンゲートは、3つの入力 (C, I1, I2) と3つの出力 (C, O1, O2) を写像する「制御付き交換ゲート」である。入力 C はそのまま出力 C に対応する。C = 0 の場合交換はなされず、I1 は O1 に、I2 は O2 に対応する。そうでない場合2つの出力は交換され、I1 は O2 に、I2 は O1 にマッピングされる。入力と出力を入れ替えても同じに動作することから、この回路が可逆性であることは容易に示すことができる。これをさらに一般化した n×n フレドキンゲートは、最初の n-2 個の入力をそのまま対応する出力に出力し、残る2つは最初の n-2 個の入力が全て1の場合だけ交換して出力する。
フレドキンゲートは可逆3ビットゲートであり、最初のビットが1の場合に残る2ビットを交換して出力する。真理値表を右に示す。
0と1の個数が保存されるという便利な特性があり、ビリヤードボールモデルで入力されたボールの数と出力ボール数が同じになるのと同じである。これは物理学における質量保存の法則にもうまく対応し、このモデルが無駄ではないことを示す助けにもなっている。