Toffoli-porten (CCNOT) er en universel styret reversibel port med tre ind- og udgange, foreslået af Thomas Toffoli i 1980 [1] . Det er blevet bevist, at ved at bruge denne gate alene, kan et hvilket som helst reversibelt logisk kredsløb bygges , såsom en aritmetisk enhed eller en processor. Det er også en populær kvanteport i konstruktionen af reversible kredsløb i kvantecomputere .
Toffoli-ventilen ligner i princippet CNOT . Den har tre indgange og tre udgange, hvis de to første indgange er lig med én, så inverteres værdien af den sidste bit. Ellers føres alle indgange til udgangen uændret. Sandhedstabellen og matrixen for CCNOT ser sådan ud:
sandhedstabel | Transformer matrix | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Lad os bevise, at ventilen er universel. Hvis vi dekomponerer kvante-Toffoli-porten til simple boolske operationer, så kan vi se, at den første og anden qubit altid er ens ved input og output, og den tredje qubit ved output har formen C = C XOR (A OG B) , hvor A, B og C er ventilindløb og -udløb. Det kan ses, at porten er universel, da den udfører enhver af operationerne ( NOT , AND , XOR og FANOUT ) afhængigt af inputværdierne.
Der er en anden velkendt universel vendbar tre-vejs gate - Fredkin gate , CSWAP [1] .