在計算複雜度理論裡面,BPP是在多項式時間內以機率圖靈機解出的問題的集合, 並且對所有的輸入,輸出結果有錯誤的機率在1/3之內。BPP這個簡寫代表Bounded-error(有限錯誤),Probabilistic(機率的),Polynomial time(多項式時間)。
要是一個問題在BPP集合裡面,則存在一個算法,此算法允許轉硬幣作隨機的決定,並在多項式時間內結束。 對這個算法的任何輸入,他都要在小於1/3的錯誤機率之下給出正確判斷,不論這一個問題的答案是正確或者錯誤。
在這裡定義裡面的1/3是任意給定的。它可以是在 0 與 1/2(不包含0與1/2自身) 之間的任意常數而BPP集合維持不變(當然這個常數必須跟輸入值為何無關)。原因在於,雖然這算法有錯誤的機率,但是只要我們多進行幾次算法,那多數的答案都是錯誤的機率會呈現指數衰減 [1]. 因此證明我們可以很簡單的架構一個更準確的算法,僅僅單純多重複幾次這個算法然後對每次的答案作多數決。
BPP是大小最大的幾個實際的問題類別之一,代表大多數的BPP問題都有有效率的機率算法,因此以上倏地方法可以用現在的機器快速取得解答。因為這個原因,我們對哪一些問題或問題種類在BPP裡面有著實用方面的興趣。
基本介紹
- 中文名:BPP複雜度
- 外文名:BPP complexity
- 分類:機器複雜度類
定義
- M對任何輸入均在多項式時間後停止
- 對任何字串x在L之內, 對M輸入x之後,M輸出 1 的機率大於或者等於 2/3
- 對任何字串x不在L之內, 對M輸入x之後,M輸出 1 的機率小於或者等於 1/3
- M對任何輸入均操作多項式時間之內
- 對任何字串x在L之內, 對長度為p(|x|)的任意字串y,滿足M(x,y)= 1 這條件的機率超過或等於2/3
- 對任何字串x不在L之內, 對長度為p(|x|)的任意字串y,滿足M(x,y)= 1 這條件的機率小於或等於1/3