📗
白話文量子演算法
  • 量子世界的基本數學
  • Deutsch-Jozsa
    • oracle and query
    • 經典 vs Deutsh-Jozsa
  • Bernstein-Vazarani
  • Simon's Algorithm
  • Gover's algorithm
    • 經典 vs Grover
    • 演算法解釋
    • 演算法解釋 2
  • 參考資料
Powered by GitBook
On this page
  • 1. 經典算法
  • 2. Deutsh-Jozsa

Was this helpful?

  1. Deutsch-Jozsa

經典 vs Deutsh-Jozsa

本小節將比較經典算法與Deutsh-Jozsa算法下的差異

1. 經典算法

在經典情況下,當你必須計算 f(0)⊕f(1)f(0)\oplus f(1)f(0)⊕f(1) ,ㄧ定必需query兩次並且相加才能找出答案

2. Deutsh-Jozsa

首先我們必須先準備一個qbit,並初始化在 ∣0⟩|0\rangle∣0⟩ ,並經過hadamard gate變成 ∣0⟩+∣1⟩2\frac{|0\rangle+|1\rangle}{\sqrt{2}}2​∣0⟩+∣1⟩​ ,接著我們query一次phase oracle,得到下者

∣ψ′⟩=(−1)f(0)∣0⟩+(−1)f(1)∣1⟩2|\psi'\rangle=\frac{(-1)^{f(0)}|0\rangle+(-1)^{f(1)}|1\rangle}{\sqrt{2}}∣ψ′⟩=2​(−1)f(0)∣0⟩+(−1)f(1)∣1⟩​

接著我們思考 f(0)f(0)f(0) 和 f(1)f(1)f(1) 的關係

f(0)⊕f(1)={ 0, if f(0)=f(1) 1, if f(0)≠f(1)f(0)\oplus f(1)= \begin{cases} \ 0,\ \text{if}\ f(0)=f(1)\\ \ 1,\ \text{if} \ f(0)\neq f(1) \end{cases}f(0)⊕f(1)={ 0, if f(0)=f(1) 1, if f(0)=f(1)​

而根據(1),我們又可以得到下者

∣ψ′⟩={(±1)⋅∣0⟩+∣1⟩2,if f(0)=f(1)(±1)⋅∣0⟩−∣1⟩2,if f(0)≠f(1)|\psi'\rangle= \begin{cases} (\pm1)\cdot\frac{|0\rangle+|1\rangle}{\sqrt{2}}, \text{if}\ f(0)=f(1) \\ (\pm 1)\cdot \frac{|0\rangle-|1\rangle}{\sqrt{2}}, \text{if}\ f(0)\neq f(1) \end{cases}∣ψ′⟩={(±1)⋅2​∣0⟩+∣1⟩​,if f(0)=f(1)(±1)⋅2​∣0⟩−∣1⟩​,if f(0)=f(1)​

這時,我們只要再經過一次hadamard gate,並且觀測 ∣ψ′⟩|\psi'\rangle∣ψ′⟩ ,就能一路推回去了,以下我舉個例子:

∣ψ′⟩=∣0⟩→f(0)=f(1)→f(0)+f(1)=0\begin{aligned} |\psi'\rangle = |0\rangle &\rightarrow f(0) = f(1)\\ &\rightarrow f(0)+f(1)=0 \end{aligned}∣ψ′⟩=∣0⟩​→f(0)=f(1)→f(0)+f(1)=0​

而以上算法相較於經典算法只需要一次quey就能得出答案。

Previousoracle and queryNextBernstein-Vazarani

Last updated 5 years ago

Was this helpful?