Câu trả lời của Vor đưa ra định nghĩa chuẩn. Hãy để tôi cố gắng giải thích sự khác biệt một chút bằng trực giác.
Đặt là thuật toán thời gian đa thức xác suất lỗi cho một ngôn ngữ trả lời đúng với xác suất ít nhất là . Đặt là đầu vào và kích thước của đầu vào.L p ≥ 1MLxnp ≥ 12+ δxn
Điều gì phân biệt một tùy Thuật toán từ một Thuật toán là chênh lệch dương giữa khả năng chấp nhận và khả năng chấp nhận . B P P x ∈ L x ∉ L P PB P Px ∈ Lx ∉ LB P P n - O ( 1 ) B P P P P P P P N PĐiều cốt yếu về là khoảng cách ít nhất là . Tôi sẽ cố gắng giải thích tại sao sự khác biệt này lại có ý nghĩa và cho phép chúng tôi coi được coi là thuật toán hiệu quả (thậm chí được phỏng đoán là bằng ) trong khi được coi là không hiệu quả (thực tế chứaB P Pn- O ( 1 )B P PPP PP PN P ). Tất cả điều này đến từ khoảng cách này.
Hãy bắt đầu bằng cách xem xét cẩn thận hơn.P P
Lưu ý rằng nếu thuật toán sử dụng tối đa bit ngẫu nhiên trong quá trình thực thi và xác suất lỗi nhỏ hơn thì xác suất lỗi thực sự là , không thể có bất kỳ bit ngẫu nhiên nào được chọn làm cho thuật toán trả lời sai.2 - r ( n ) 0r ( n )2- r ( n )0
Hơn nữa, một thuật toán có thời gian chạy không thể sử dụng nhiều hơn bit ngẫu nhiên, do đó, nếu lỗi của thuật toán xác suất với thời gian chạy trong trường hợp xấu nhất thì tốt hơnt ( n ) t ( n )t ( n )t ( n )t ( n )
Với một lập luận tương tự, chúng ta có thể chỉ ra rằng trường hợp chênh lệch giữa xác suất chấp nhận và xác suất chấp nhận quá nhỏ tương tự như trường hợp chúng ta gần như không có sự khác biệt như trong trường hợp .x ∉ L P Px ∈ Lx ∉ LP P
Bây giờ chúng ta hãy tiến tới .B P P
Trong các thuật toán xác suất, chúng ta có thể tăng xác suất để trả lời chính xác. Giả sử chúng tôi muốn tăng xác suất chính xác lên cho xác suất lỗi nói (lỗi nhỏ theo cấp số nhân).ε = 2 - n1 - εε = 2- n
Ý tưởng rất đơn giản: chạy nhiều lần và lấy câu trả lời của đa số.M
Chúng ta nên chạy bao nhiêu lần để có xác suất lỗi tối đa ? lần. Bằng chứng được đưa ra ở dưới cùng của câu trả lời này.ε q ( δ - 1 lg ε )MεΘ ( δ- 1lgϵ )
Bây giờ chúng ta hãy xem xét rằng các thuật toán mà chúng ta đang thảo luận cần phải là thời gian đa thức. Điều đó có nghĩa là chúng ta không thể chạy nhiều hơn đa thức nhiều lần. Nói cách khác, , hoặc đơn giản hơnΘ ( δ - 1 ln ϵ ) = n O ( 1 )MΘ ( δ- 1lnϵ ) = nÔ ( 1 )
δ- 1lgε = nÔ ( 1 )
Mối quan hệ này phân loại các thuật toán xác suất lỗi bị ràng buộc thành các lớp tùy thuộc vào xác suất lỗi của chúng. Không có sự khác biệt giữa xác suất lỗi là hoặc hằng số dương (nghĩa là không thay đổi với ) hoặc . Chúng ta có thể nhận được từ một trong những điều này đến những người khác trong khi vẫn còn trong thời gian đa thức.2 - n n 1ε2- nn12- nÔ ( 1 )
Tuy nhiên, nếu quá nhỏ, giả sử , hoặc thậm chí thì chúng ta không có cách tăng xác suất chính xác và giảm xác suất lỗi đủ nhận được vào .0 2 - n n - ω ( 1 ) B P Pδ02- nn- ω ( 1 )B P P
Điểm chính ở đây là trong chúng ta có thể giảm xác suất lỗi một cách hiệu quả theo cấp số nhân nên chúng ta gần như chắc chắn về các câu trả lời và đó là điều khiến chúng ta coi lớp thuật toán này là thuật toán hiệu quả. Xác suất lỗi có thể giảm đến mức một lỗi phần cứng có nhiều khả năng hoặc thậm chí một thiên thạch rơi trên máy tính có nhiều khả năng hơn là gây ra lỗi bởi thuật toán xác suất.B P P
Điều đó không đúng với , chúng tôi không biết cách giảm xác suất lỗi và chúng tôi gần như trả lời bằng cách ném một đồng xu để có câu trả lời (chúng tôi không hoàn toàn, xác suất là không phải một nửa và một nửa, nhưng nó rất gần với tình huống đó).P P
Phần này đưa ra bằng chứng rằng để có được xác suất lỗi khi chúng ta bắt đầu với một thuật toán có khoảng cách chúng ta nên chạy lần.( 1εMΘ(δ-1lgε)( 12- δ, 12+ δ)M Θ ( δ- 1lgϵ )
Đặt là thuật toán chạy trong lần và sau đó trả lời theo câu trả lời của đa số. Để đơn giản, giả sử là số lẻ nên chúng ta không có quan hệ. M k k kNkMkk
Hãy xem xét các trường hợp đó . Trường hợp cũng tương tự. Sau đó
Để phân tích xác suất chính xác của chúng ta cần ước tính xác suất chiếm đa số Các chạy chấp nhận.x ∉ L P r { M ( x ) chấp nhận } = p ≥ 1x∈ Lx ∉LNkk
P r { M( X ) chấp nhận } = p ≥ 12+ δ
Nkk
Đặt là 1 nếu lần chạy thứ chấp nhận và là nếu nó từ chối. Lưu ý rằng mỗi lần chạy là độc lập với người khác khi họ sử dụng các bit ngẫu nhiên độc lập. Do đó, là các biến ngẫu nhiên Boolean độc lập trong đó
i 0 X i E [ X i ] = P r { X i = 1 } = P r { M ( x ) chấp nhận } = p ≥ 1XTôiTôi0XTôi
E [ XTôi] = P r { XTôi= 1 } = P r { M( X ) chấp nhận } = p ≥ 12+ δ
Đặt . Chúng ta cần ước tính xác suất mà đa số chấp nhận, tức là xác suất mà .Y= Σki = 1XTôiY≥ k2
P r { Nk( x ) chấp nhận } = P r { Y≥ k2}
Làm thế nào để làm nó? Chúng ta có thể sử dụng ràng buộc Chernoff cho chúng ta biết mức độ tập trung của xác suất gần giá trị mong đợi. Đối với bất kỳ biến ngẫu nhiên nào có giá trị mong đợi , chúng ta cóZμ
P r { | Z- μ | > Alpha L } < eα24μ
trong đó nói rằng xác suất là cách xa giá trị mong đợi của nó sẽ giảm theo cấp số nhân khi tăng. Chúng tôi sẽ sử dụng nó để ràng buộc xác suất của .Zalpha LμαY< k2
Lưu ý rằng theo tính tuyến tính của kỳ vọng, chúng ta có
E [Y] = E [ Σki = 1XTôi] = Σki = 1E [ XTôi] = k p ≥ k2+ K δ
Bây giờ chúng ta có thể áp dụng ràng buộc Chernoff. Chúng tôi muốn giới hạn trên về xác suất của . Giới hạn Chernoff sẽ đưa ra giới hạn trên về xác suất là đủ. Chúng ta cóY< k2| Y- ( k2+ K δ) | > K δ
Pr { | Y- k p | > α k p } < e- α24k p
và nếu chúng ta chọn sao cho chúng ta đã hoàn thành, vì vậy chúng ta chọn .αα k p = k δα = δp≤ 2 δ2 δ+ 1
Vì vậy, chúng tôi có
Pr { Y< k2} ≤ Pr { | Y- ( k2+ K δ) | > K δ} ≤ Pr { | Y- k p | > α k p } < e- α24k p
và nếu bạn làm các phép tính, bạn sẽ thấy rằng
α24k p ≤ delta24 δ+ 2k = Θ ( k δ)
chúng ta có
Pr { Y< k2} < e- Θ ( k δ)
Chúng tôi muốn lỗi nhiều nhất là , vì vậy chúng tôi muốnε
e- Θ ( k δ)≤ ϵ
hay nói cách khác
Θ ( δ- 1lgε ) ≤ k
Một điểm quan trọng ở đây là trong quá trình này chúng tôi sẽ sử dụng nhiều bit ngẫu nhiên hơn và cũng thời gian chạy sẽ tăng, tức là trường hợp xấu nhất chạy-thời điểm sẽ được khoảng lần so với chạy-thời điểm .NkkM
Ở đây điểm giữa của khoảng cách là . Nhưng nói chung điều này không cần phải là trường hợp. Chúng ta có thể áp dụng một phương pháp tương tự cho các giá trị khác bằng cách lấy các phân số khác thay cho đa số để chấp nhận.12