ИЛИ реализация шлюза с использованием шлюза Toffoli - PullRequest
0 голосов
/ 20 октября 2019

Может ли быть реализован логический элемент ИЛИ с использованием не более двух вентилей Toffoli?

Я уже реализовал его с помощью трех вентилей Toffoli, но не смог найти способ реализовать его с помощью двух вентилей Toffoli.

1 Ответ

2 голосов
/ 21 октября 2019

Я предполагаю, что вы имеете в виду ИЛИ ворота на двух кубитах, что должно иметь следующий эффект:

|x₀⟩⊗|x₁⟩⊗|y⟩ → |x₀⟩⊗|x₁⟩⊗|y ⊕ (x₀ ∨ x₁)⟩

Вы можете сделать это только с одним воротом Тоффоли, используя закон Де Моргана x₀ ∨ x₁ = ¬(¬x₀ ∧ ¬x₁), следующим образом:

  1. Применить X-вентиль к каждому из входных кубитов:
    |x₀⟩⊗|x₁⟩⊗|y⟩ → |¬x₀⟩⊗|¬x₁⟩⊗|y⟩
  2. Применить вентиль Toffoli с двумя входамикубиты в качестве элементов управления и выходной кубит в качестве цели:
    |¬x₀⟩⊗|¬x₁⟩⊗|y⟩ → |¬x₀⟩⊗|¬x₁⟩⊗|y ⊕ (¬x₀ ∧ ¬x₁)⟩
  3. Снова примените вентиль X к каждому из входных кубитов, чтобы вернуть их в исходное состояние:
    |¬x₀⟩⊗|¬x₁⟩⊗|y ⊕ (¬x₀ ∧ ¬x₁)⟩ → |x₀⟩⊗|x₁⟩⊗|y ⊕ (¬x₀ ∧ ¬x₁)⟩
  4. Примените X-вентиль к выходному кубиту, чтобы отменить результат:
    |x₀⟩⊗|x₁⟩⊗|y ⊕ (¬x₀ ∧ ¬x₁)⟩ → |x₀⟩⊗|x₁⟩⊗|y ⊕ ¬(¬x₀ ∧ ¬x₁)⟩ = |x₀⟩⊗|x₁⟩⊗|y ⊕ (x₀ ∨ x₁)⟩
...