一個聰明的量子戲法——相位反衝, 告訴你如何進行量子計算

一個聰明的量子戲法——相位反衝, 告訴你如何進行量子計算

點選載入圖片

量子計算

充滿了技巧,可以幫助我們解決那些用經典計算需要花費數年才能解決的問題。這些技巧通常涉及一個相對較小的電路,在一個大得多的演算法中執行一個特定任務。你可能已經聽說過其中的一些技巧,比如糾纏和疊加。還有很多,其中非常重要的一個便是相位反衝。

相位反衝是一個非常常見和有用的技巧,你會經常看到它包含在較大的量子演算法中。這就是為什麼理解它很重要,它將幫助你直觀地理解其他更實用的電路,並對引擎蓋下發生的事情有一個概念,而不僅僅是看大體的想法。

我們將看一個非常簡單的例子,只涉及兩個量子位元。為了使這一技巧發揮作用,我們需要考慮的一個重要要求是,在控制操作中作為目標的量子位,在我們的例子中是量子位元q1,需要是這個運算的特徵向量。

我們想透過這個要求實現的是,對我們的目標量子位施加運算並不改變其狀態,而只是影響其相位。因此,在我們的量子位元上應用運算子會看起來像這樣。

一個聰明的量子戲法——相位反衝, 告訴你如何進行量子計算

點選載入圖片

在這個例子中,U是作用於量子位元psi(用ket表示的向量)的運算(一個矩陣)。正如你所看到的,這個運算只是給量子位元增加了一個相位,但並沒有改變它的狀態。

有了這個要求,我們就可以瞭解電路了。首先,讓我們看看這個電路是什麼樣子的,接下來我們將瞭解每個門的作用。

一個聰明的量子戲法——相位反衝, 告訴你如何進行量子計算

點選載入圖片

基本的相位反衝量子電路

首先,頂部量子位元透過哈達瑪門(Hadamard gate),底部量子位元透過保利-X門(Pauli-X gate),具有以下狀態:

一個聰明的量子戲法——相位反衝, 告訴你如何進行量子計算

點選載入圖片

第一個方程,顯示了狀態01和11之間的等量疊加

我們可以看到,我們有一個狀態01和11的等量疊加,其中第一個數字對應於量子位元q0,第二個數字對應於量子位元11。這種狀態的產生是因為哈達瑪門將頂部量子位元放入狀態0和1之間的等量疊加,而Pauli-X門無論如何都要將底部量子位元放入狀態1。

這時就變得有趣了。這些量子位元透過一個受控的相位門,其中控制量子位元是頂部的,目標量子位元是底部的。在這種情況下,控制和目標這兩個名字有誤導性,因為最終改變其相位的量子位元是控制量子位元。請記住,受控門只在控制量子位元處於狀態1時發揮作用,所以相位旋轉只適用於這種情況。當透過這個門時,產生的狀態如下。

一個聰明的量子戲法——相位反衝, 告訴你如何進行量子計算

點選載入圖片

第二個方程,證明了在第一個量子位中的相對相位

還記得我們之前談到的要求嗎?那麼,你可以在這裡看到它的作用。相位門被應用於狀態11(因為作為控制的頂部量子位元處於狀態1),但它只是給狀態增加了一個相位。在這種情況下,θ=π/4,遵循我們上面的公式。另一個重要的說明是,這些狀態不是糾纏的,因為我們可以把它們寫成兩個量子位元的張量積。

我們可以透過Qiskit給出的狀態向量模擬看到相位的影響,注意頂部的量子位元(量子位元0)有一個相位旋轉,而目標量子位元就在1的狀態下,沒有任何旋轉。

一個聰明的量子戲法——相位反衝, 告訴你如何進行量子計算

點選載入圖片

兩個量子位元的最終向量狀態

這表明,相位被反衝回了頂部量子位,而不是被應用到底部量子位。這就是我們想要達到的效果,我們對頂部的量子位元施加了相位旋轉,但實際上被相位旋轉門作用的量子位元是底部的。

這裡還需要強調的是,這個相位實際上不能被測量所看到。事實上,測量這些量子位元仍然會導致量子位元0的狀態為0和1的機率相等,而量子位元1的狀態一直為1,與我們在第一個方程中的情況相同。我們之所以能夠看到這個說明量子位元相位的狀態向量,是因為Qiskit有一個狀態向量模擬器,但在真正的硬體上執行這個電路不會產生什麼太特別的東西。

那麼,如果我們不打算在測量時檢測到它,我們為什麼還要費力地改變這個相位呢?正如我前面所說,這個電路對其他演算法非常有幫助。儘管它可能一開始看起來並不像。讓我們看看量子搜尋演算法中的一個例子,這樣你就能體會到相位反衝的用處。

這個搜尋演算法由許多步驟組成。其中之一是改變我們正在尋找的狀態的符號。這意味著我們要把一個負的相位反衝給這個特定的狀態,而我們如何才能做到這一點?相位反衝!當然,這比聽起來要難得多。我們需要設計一個神諭,只將負相位用於我們要找的狀態,這非常難。但在最後,它所依賴的概念是相位反衝。

相關文章