使用Toffoli门的OR门实现

时间:2019-10-20 18:45:42

标签: quantum-computing

可以使用不超过2个Toffoli门来实现“或”门吗?

我已经使用3个Toffoli门实现了它,但是找不到使用2个Toffoli门实现它的方法。

2 个答案:

答案 0 :(得分:2)

我假设您的意思是对两个量子位进行“或”门操作,这将产生以下效果:

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

使用德摩根定律x₀∨x₁=¬(¬x₀∧∧x₁),您可以只用一个托菲利门来完成它,如下所示:

  1. 对每个输入量子位应用X门:
    |x₀⟩⊗|x₁⟩⊗|y⟩ → |¬x₀⟩⊗|¬x₁⟩⊗|y⟩
  2. 应用一个Toffoli门,其中两个输入qubit作为控制,输出qubit作为目标:
    |¬x₀⟩⊗|¬x₁⟩⊗|y⟩ → |¬x₀⟩⊗|¬x₁⟩⊗|y ⊕ (¬x₀ ∧ ¬x₁)⟩
  3. 再次将X门应用于每个输入的qubit,以使其返回初始状态:
    |¬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₁)⟩

答案 1 :(得分:0)

我认为以下内容使用2个Toffoli门(未使用其他门)来按原意回答您的问题。

让Toffoli门表示为Toffoli(x, y, z),其中xy是2个控制位,z是第三个输入位。

OR(x,y) = Toffoli(1,y,Toffoli(x,y,x))

内部Toffoli门给出|x⊕(x ∧ y)⟩

外部Toffoli门(充当XOR)产生|x⊕y⊕(x ∧ y)⟩

您可以检查该表达式的真值表,您会看到它对应于OR门。