Tofolio vartai (angl. Toffoli gate) – tai kvantinio kompiuterio vartai, naudojami įvairiuose algoritmuose, pavyzdžiui, Groverio algoritme. Tofolio vartus gali sudaryti mažiausiai 3 kubitai. Tofolio vartai turi 2 kontroliuojamus kubitus ir 1 taikinio kubitą.
- Tofolio vartai pakeičia trečio kubito reikšmę, tik jei pirmi du kubitai yra vienetai.
- |000> ___> |000>
- |100> ___> |100>
- |110> ___> |111>
- |111> ___> |110>
- |001> ___> |001>
- |011> ___> |011>
- |101> ___> |101>
- |010> ___> |010>
Su daugiau kubitų, analogiškai apsiverčia paskutinis kubitas, bet tik tuo atveju jei visi pirmi kubitai yra vienetai.
Tofolio vartai ir superpozicija
Kas bus, jeigu kubitus praleisime pro Hadamardo vartus, paskui pro Tofolio vartus, o paskui vėl pro Hadamardo vartus?
Jeigu trečias kubitas yra nulis, tai ant išėjimo išmatuosime tą patį, kas buvo ant įėjimo:
- |000> ___> |000>
- |110> ___> |110>
- |010> ___> |010>
- |100> ___> |100>
Tačiau jeigu trečias kubitas |1>, tai išėjimas bus toks:
- |001> ___> 0.5(|00>+ |01>+ |10>- |11>)|1>
- |111> ___> 0.5(-|00> +|01> + |10>+ |11>)|1>
- |011> ___> 0.5(|00> +|01> -|10>+ |11>)|1>
- |101> ___> 0.5(|00> -|01> + |10>+ |11>)|1>
Čia galima įžiūrėti tokį dėsningumą:
Jei trečias kubitas yra vienetas, tai pirmi du kubitai apsiverčia ir ta, apsivertusi būsena, pažymima minusu. Tarp kitko, trečias kubitas lieka nepakitęs.
Tofolio vartai naudojami Groverio algoritme, kai reikia pažymėti vieną elementą neigiama amplitude (M vartai). Taip pat Tofolio vartai gali turėti daug kontroliuojamų kubitų ir (tik!) vieną taikinio kubitą.
![{\displaystyle |000\rangle \to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/42e2c2cb0742351b25a516150e80784947d2dede)
![{\displaystyle |001\rangle \to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |00\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/8a5b53edc020c7ad1116a0c172e226534a54966c)
![{\displaystyle |010\rangle \to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle +i|1\rangle )\to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle +i|1\rangle )\to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle -i\cdot i)|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/808c2d27ffc09ef530b48a73538879a9eec9764b)
![{\displaystyle |100\rangle \to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle -i|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/4739ee9b2269121155cae1504a633c9d858acd83)
![{\displaystyle |011\rangle \to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle -i|1\rangle )\to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle -i|1\rangle )\to |01\rangle {1 \over {\sqrt {2}}}(|0\rangle -i(-i)|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/3b3e00a1bbd9f2b323b2b033971b3f4922171389)
![{\displaystyle |101\rangle \to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle -(-i)|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b937aeba1c0227698a512325798e3a72c2aa186)
![{\displaystyle |110\rangle \to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle +|1\rangle )\to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle +i|1\rangle )\to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle +i|1\rangle )\to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle +i|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/7644384ec954b9e1173e28fc916262704a436e96)
![{\displaystyle |111\rangle \to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle -|1\rangle )\to |11\rangle {1 \over {\sqrt {2}}}(|0\rangle -i|1\rangle )\to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle -i|1\rangle )\to |10\rangle {1 \over {\sqrt {2}}}(|0\rangle -i|1\rangle )\to }](https://wikimedia.org/api/rest_v1/media/math/render/svg/c8aefada240e9a919e117d5cb32beb807071eb7a)
Kiti kvantiniai vartai
- Hadamardo vartai
- CNOT vartai
- Kvantiniai NOT vartai
- Fazės vartai