跳至內容

用戶:Subgradient/葛羅佛算法

維基百科,自由的百科全書

Grover算法 是一種 量子算法 ;它只需要執行次某個黑盒函數,就能以很高的概率的概率找到使黑盒函數找到產生某個特定輸出的輸入(是黑盒函數的定義域大小)。它由 Lov Grover 在1996年提出。

經典計算機不能在不到 次執行內解決類似的問題(因為在最壞的情況中,第N個定義域的成員才是正確的解)。在Grover發表算法的大約同一時間,Bennett,Bernstein,Brasard以及Vazirani證明了,沒有量子算法可以在  次執行內解決這個問題;因此Grover算法是 漸進的最佳的。[1]

已經證明,非局域隱變量的量子計算機可以用至多 步實現對有個元素的數據庫的搜索。 這比Grover算法所需要的  步要快。

以上兩種搜索方法都不能讓量子計算機在多項式時間內解決 NP完全 的問題。[2] 不同於其他的可以提供指數加速的量子算法,Grover的算法,只提供了平方級別的加速。 然而,即使是平方的加速在  很大的時候也足夠大。 Grover的算法,可以在大約次迭代內 暴力破解 128位的對稱加密密鑰,或者在大約 迭代內破解256位密鑰。 因此,有人建議[3] 將對稱密鑰長度增加一倍,以防範未來的量子攻擊。

應用

[編輯]

雖然Grover的算法的目的通常被描述為"搜索數據庫",但更準確地說,它應該被描述為"求函數的逆"。 大致說來,如果我們有一個可以在量子計算機上求值的函數  ,Grover的算法可以在給定 <math>y</math> 時計算  。對函數求逆和數據庫搜索有關,因為我們可以構造一個函數,如果 匹配數據庫中的一個所需項目,產生一個特定的值 y (比如"真");而對於其它的 x,返回另一個值  ("假")。

Grover的算法還可用於估計一組數的 平均中位數 ,以及解決 碰撞問題的。 如果有多個匹配的條目且數量事先知道,這一算法還可進一步優化。 Grover的算法也可以用於破解密碼。

設定

[編輯]

考慮一個擁有 N 個條目的無序數據庫。 算法需要一個 N-維 態空間 H;這可以用 n =log2 N 個 量子比特 提供。考慮這樣一個問題:尋找滿足某些標準的數據庫條目的索引。 讓 f 是一個將數據庫條目映為0或1的函數,且 f(x)=1若且唯若 x 滿足搜索標準(x = ω)。我們可以(以量子黑盒的形式)使用一個 么正算子 Uω ,其作用為:

 Uω 的另外一種定義如下。假定存在一個 輔助量子比特 系統(如下圖中的量子電路所描繪的)。 那麼,這個算子表示有受主系統中 f(x)的值控制的受控非():

更加簡短地,

這是一種利用 去計算方法來實現一個二元運算的自然的方法。 需要注意的是,如果輔助量子比特初始狀態為 門將等效於上文中的操作,同時輔助系統不再與主系統糾纏:

在以上兩種設定中,我們的目標都是尋找 

算法的步驟

[編輯]
表示Grover算法的量子電路

Grover算法的步驟如下。 讓表示所有狀態的均勻疊加態

那麼算子

記為Grover擴散算子。

以下是算法:

  1. 將系統初始化為
  2. 執行以下"Grover迭代" r(N)次。 函數 r(N)(漸近 O(N1/2))將在下文中說明。
    1. 作用算子
    2. 作用算子
  3. 執行測量Ω。 測量 的結果將以接近1的概率(在N ≫ 1時)是本徵值 λω 。ω 可以從λω求得。

的描述 

[編輯]

參見

[編輯]

參考書目

[編輯]
  1. ^ Bennett C.H.; Bernstein E.; Brassard G.; Vazirani U. The strengths and weaknesses of quantum computation. SIAM Journal on Computing. 1997, 26 (5): 1510–1523. doi:10.1137/s0097539796300933. 
  2. ^ Aaronson, Scott. Quantum Computing and Hidden Variables (PDF). 
  3. ^ Daniel J. Bernstein. Grover vs. McEliece (PDF). 2010-03-03. |author=|last=只需其一 (幫助)

參考文獻

[編輯]

外部連結

[編輯]

[[Category:量子演算法]] [[Category:搜尋演算法]]