簡單的量子算法(一):Hadamard 變換、Parity Problem


Hadamard Transform

Hadamard 變換在量子邏輯門中提過,只不過那時是單量子的Hadamard門,負責把\(|1\rangle\)變成\(|-\rangle\)\(|0\rangle\)變成\(|+\rangle\)

那么對多量子的Hadamard門呢?

對於多量子邏輯門,其實說過一句,是單量子邏輯門的張量積。

對於多量子比特的Hadamard門,就是把每一個量子比特都由\(|1\rangle\)變成\(|-\rangle\)\(|0\rangle\)變成\(|+\rangle\),或者\(|-\rangle\)變成\(|1\rangle\)\(|+\rangle\)變成$|0\rangle $ 。如果是n個比特,那么這n比特的Hadamard門就可以寫作是 \(H^{\otimes n}\) ,矩陣表達就是 \(H^{\otimes n}=\left[ \begin{array}{}{\frac{1}{\sqrt2}} &{\frac{1}{\sqrt2}} \\ {\frac{1}{\sqrt2}}&{-\frac{1}{\sqrt2}} \end{array}\right] \otimes ……\otimes \left[ \begin{array}{}{\frac{1}{\sqrt2}} &{\frac{1}{\sqrt2}} \\ {\frac{1}{\sqrt2}}&{-\frac{1}{\sqrt2}} \end{array}\right]\) (張量積n次)

對於\(|0\rangle\),變成\(\frac{1}{\sqrt2}|0\rangle+\frac{1}{\sqrt2}|1\rangle\)

對於\(|00\rangle\),變成\((\frac{1}{\sqrt2}|0\rangle+\frac{1}{\sqrt2}|1\rangle)(\frac{1}{\sqrt2}|0\rangle+\frac{1}{\sqrt2}|1\rangle)\) ,即 \(\frac{1}{2}|00\rangle+\frac{1}{2}|01\rangle+\frac{1}{2}|10\rangle+\frac{1}{2}|11\rangle\) 可能性均等的所有可能 的疊加。

那么對於n個 \(|0\rangle\) 呢?則是變成了 \(\frac{1}{2^{\frac{n}{2}}} \sum_{x \in \{0,1 \}^n}|x\rangle\) ,x是由0、1組成的所有的長度為n的數字串。

那么更進一步,如果我的n比特不是 \(|0\rangle\),而是 \(|0\rangle\)\(|1\rangle\) 隨意切換呢?比如數字串 \(|u\rangle=|u_1u_2……u_n\rangle\) ,如果輸入是 \(|u\rangle\) ,那么經過H門變換,輸出會是什么?

輸出是:\(\sum_x \frac{-1^{u·x}}{2^{\frac{n}{2}}} |x\rangle\) ,這里 \(u·x=u_1x_1+u_2x_2+……+u_nx_n\)

原因如下:

對於\(|0\rangle\),H門變成\(\frac{1}{\sqrt2}|0\rangle+\frac{1}{\sqrt2}|1\rangle\)

對於\(|1\rangle\),H門變成\(\frac{1}{\sqrt2}|0\rangle-\frac{1}{\sqrt2}|1\rangle\)

如果想要有一個負號,則需要這一位在輸入的時候是\(|1\rangle\) ,並且輸出的時候也是 \(|1\rangle\) ,同時,如果在這個數字串中這種情況出現了偶數次(即有偶數位的比特在輸入輸出的時候都是\(|1\rangle\)),那么整體情況就會是負負得正,所以我們將每位的情況相乘,再連加(對於不會造成負號的情況,他們相乘的結果是0),作為-1的指數來標明符號。

而以上的變換,在量子計算中又稱為Fourier Sampling。

整理一下本小節的內容: \(H^{\otimes n} |u\rangle = \sum_x \frac{-1^{u·x}}{2^{\frac{n}{2}}} |x\rangle\) ,他將我們的輸入數據給移到了符號上面去。

Parity Problem

這個問題是hadamard變換的簡單應用。

假設: 有這么一個黑盒子 把長度為n的0、1數字串映射成0或者1一個數字 \(f: \{ 0,1 \}^n \rightarrow \{0,1 \}\) ,已知映射的規則如下 \(f(x)=u·x=u_1x_1+u_2x_2+……+u_nx_n \mod 2\) 模2的意思是如果是累加的和是奇數,那么就是1,偶數就是0

問題:請問,我至少需要試幾次,才能知道u是什么?

經典解法:

輸入100……0 得到\(u_1\) 的值

輸入010……0 得到\(u_2\) 的值

輸入001……0 得到\(u_3\) 的值

……

輸入000……1 得到\(u_n\) 的值

因為我們的輸出結果只有一位的信息,而u的全部信息有n位,所以我們至少也需要n次。

量子解法:

這個量子解法又叫做 Bernstein-Vazirani算法,一共只有兩步:

一、制造出一個量子疊加態 : $\frac{1}{2^{n/2}}\sum_x (-1)^{f(x)} |x\rangle $

二、對這個疊加態fourier sampling

why?

對於第一步我們需要制備出來的量子疊加態,不知道大家有沒有眼熟,這個是我們上一節的結論,將\(|u\rangle\) 作為H門的輸出得到的結果一模一樣。

我們已經知道了量子計算是可逆的,對於H門來說,連續兩個的H門操作就是完全抵消的,第一個H門將\(|0\rangle\)變成\(|+\rangle\),第二個H門又將\(|+\rangle\)變成\(|0\rangle\)

所以,我們能夠將$\frac{1}{2^{n/2}}\sum_x (-1)^{f(x)} |x\rangle $用H門變換出來,把f(x)的值移到符號上,那么我們也可以通過H門把符號上的f(x)移到輸出里,只需要一個同樣的H門操作,也就是我們的第二步。

所以現在的問題變成了,如果制備疊加態 $\frac{1}{2^{n/2}}\sum_x (-1)^{f(x)} |x\rangle $ 呢?

在量子電路里面我們已經討論過了,一個量子的電路,為了讓他可逆,我們一般是輸入 \(|x\rangle|b\rangle\) 然后輸出是 \(|x\rangle |b \oplus f(x) \rangle\) 把輸入的結果f(x)模2加到b上。

因為是需要所有的x,所以首先用H門,將n比特的 \(|0\rangle\) 變成所有狀態均可能的疊加態 \(\frac{1}{2^{\frac{n}{2}}} \sum_{x \in \{0,1 \}^n}|x\rangle\)

接下來,把 \(|-\rangle =\frac{1}{\sqrt2}|0\rangle-\frac{1}{\sqrt2}|1\rangle\) 作為 \(|b\rangle\) 和前面的疊加態 \(\frac{1}{2^{\frac{n}{2}}} \sum_{x \in \{0,1 \}^n}|x\rangle\) 一起輸入 \(U_f\)

此時輸入是 \(\frac{1}{2^{\frac{n}{2}}} \sum_x |x\rangle |-\rangle\)

輸出是 \(\frac{1}{2^{\frac{n}{2}}} \sum_x |x\rangle |- \oplus f(x) \rangle\)

如果f(x)=0 那么\(|- \oplus f(x) \rangle = \frac{1}{\sqrt2}|0\rangle-\frac{1}{\sqrt2}|1\rangle = |-\rangle\)

如果f(x)=1 那么\(|- \oplus f(x) \rangle = \frac{1}{\sqrt2}|1\rangle-\frac{1}{\sqrt2}|0\rangle = -|-\rangle\)

最后一個比特的值如果在\(|+\rangle |-\rangle\)坐標下測量,一定是 \(|-\rangle\),f(x)的差別也變到了符號上,即 \((-1)^{f(x)}\)

此時,我們的輸出已經是 \(\frac{1}{2^{n/2}}\sum_x (-1)^{f(x)} |x\rangle |-\rangle\) ,只看前面的部分,就是我們需要的疊加態了。

概括一下,概括一下,通過H門制備出一個均等可能的態,然后和 \(|-\rangle\) 一起通過 \(U_f\) 將f(x)的結果移到符號上,最后再次通過H門,把符號上的結果移下來,整個電路圖如下圖所示,非常的簡單,在經典算法需要多項式時間的時候,量子算法只需要常數的時間。

下一篇的內容是simon's Algorithm是在parity Problem的又一個進化,也是基於H門的,所以說H門很重要啊,基本上所有的量子算法不管要干嘛,先來一個H門再說,畢竟這個是用n比特同時表達 \(2^n\) 個數據的法寶。

參考資料:
Quantume Mechanics & Quantume Computation Lecture 8


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM