คำตอบของ Vor ให้คำจำกัดความมาตรฐาน ผมขออธิบายความแตกต่างให้เห็นได้ชัดขึ้น
Letจะมีความน่าจะเป็นขั้นตอนวิธีการพหุนามข้อผิดพลาดเวลา จำกัด สำหรับภาษาว่าคำตอบถูกต้องกับความน่าจะเป็นอย่างน้อยPให้เป็นอินพุตและขนาดของอินพุตMLหน้า≥12+ δxn
สิ่งที่แตกต่างโดยพลขั้นตอนวิธีการจากขั้นตอนวิธีการเป็นช่องว่างในเชิงบวกระหว่างความน่าจะเป็นของการยอมรับและน่าจะเป็นของการยอมรับL P PB P Px ∈ Lx ∉ Lสิ่งที่สำคัญเกี่ยวกับคือช่องว่างที่มีอย่างน้อย(1)} ฉันจะพยายามที่จะอธิบายว่าทำไมความแตกต่างนี้มีความสำคัญและช่วยให้เราสามารถพิจารณาได้รับการพิจารณากลไกที่มีประสิทธิภาพ (คาดคะเนแม้จะเท่ากับ ) ในขณะที่ถือว่าไม่มีประสิทธิภาพ (ที่จริงมีB P Pn- O ( 1 )B P PPP PP PN P ) ทั้งหมดนี้มาจากช่องว่างนี้
เริ่มต้นด้วยการดูให้ละเอียดยิ่งขึ้นP P
โปรดทราบว่าหากอัลกอริทึมใช้บิตสุ่มมากที่สุดในระหว่างการดำเนินการและความน่าจะเป็นข้อผิดพลาดน้อยกว่าดังนั้นความน่าจะเป็นข้อผิดพลาดนั้นเป็นจริง ๆไม่สามารถเลือกบิตสุ่มใด ๆ ทำให้คำตอบของอัลกอริทึมไม่ถูกต้องr ( n )2- r ( n )0
นอกจากนี้อัลกอริทึมที่ใช้เวลารันไม่สามารถใช้บิตสุ่มมากกว่าดังนั้นหากข้อผิดพลาดของอัลกอริธึมที่น่าจะเป็นกับกรณีที่แย่ที่สุดในการรันไทม์จะดีกว่าt ( n )t ( n )t ( n )
ด้วยเหตุผลที่คล้ายคลึงกันเราสามารถแสดงให้เห็นว่ากรณีที่ความแตกต่างระหว่างความน่าจะเป็นที่จะยอมรับและความน่าจะเป็นที่จะรับนั้นเล็กเกินไปนั้นคล้ายกับกรณีที่เราไม่มีความแตกต่างกันเกือบ เช่นเดียวกับในx ∈ Lx ∉ LP P กรณี.
ตอนนี้เราไปต่อ B P P.
ในอัลกอริธึมความน่าจะเป็นเราสามารถเพิ่มความน่าจะเป็นสำหรับการตอบได้อย่างถูกต้อง สมมติว่าเราต้องการเพิ่มความน่าจะเป็นที่ถูกต้องให้1 - ϵ สำหรับพูดความน่าจะเป็นข้อผิดพลาด ϵ =2- n (ข้อผิดพลาดเล็กน้อยชี้แจง)
ความคิดนั้นง่าย: รัน M หลายครั้งและรับคำตอบส่วนใหญ่
เราควรวิ่งกี่ครั้ง M เพื่อให้ได้ความน่าจะเป็นข้อผิดพลาดให้มากที่สุด ε? Θ (δ- 1LGϵ )ครั้ง หลักฐานจะได้รับที่ด้านล่างของคำตอบนี้
ทีนี้ลองมาพิจารณากันดีกว่าว่าอัลกอริทึมที่เราคุยกันนั้นจำเป็นต้องเป็นพหุนาม นั่นหมายความว่าเราไม่สามารถวิ่งได้Mมากกว่าพหุนามหลายครั้ง ในคำอื่น ๆΘ(δ−1lnϵ)=nO(1)หรือมากกว่านั้น
δ−1lgϵ=nO(1)
ความสัมพันธ์นี้จัดหมวดหมู่อัลกอริธึมข้อผิดพลาดน่าจะเป็นขอบเขตในคลาสขึ้นอยู่กับความน่าจะเป็นข้อผิดพลาดของพวกเขา ไม่มีความแตกต่างระหว่างความน่าจะเป็นข้อผิดพลาดϵ ความเป็นอยู่ 2−n หรือค่าคงที่ในเชิงบวก (เช่นไม่เปลี่ยนแปลง n) หรือ 12−nO(1). เราสามารถได้จากสิ่งเหล่านี้ไปยังสิ่งอื่นในขณะที่เหลืออยู่ภายในเวลาพหุนาม
อย่างไรก็ตามหาก δ เล็กเกินไปพูด 0, 2−n, หรือแม้กระทั่ง n−ω(1) จากนั้นเราไม่มีวิธีเพิ่มความน่าจะเป็นของความถูกต้องและลดความน่าจะเป็นข้อผิดพลาดให้พอเข้าไป BPP.
ประเด็นหลักที่นี่คือสิ่งต่อไปนี้ BPPเราสามารถลดความน่าจะเป็นข้อผิดพลาดได้อย่างมีประสิทธิภาพเป็นแบบทวีคูณดังนั้นเราจึงเกือบมั่นใจเกี่ยวกับคำตอบและนั่นคือสิ่งที่ทำให้เราพิจารณาอัลกอริธึมระดับนี้เป็นอัลกอริธึมที่มีประสิทธิภาพ ความน่าจะเป็นข้อผิดพลาดสามารถลดลงได้มากจนความล้มเหลวของฮาร์ดแวร์มีแนวโน้มมากขึ้นหรือแม้แต่ดาวตกที่ตกลงมาบนคอมพิวเตอร์ก็มีโอกาสมากกว่าที่จะเกิดข้อผิดพลาดโดยอัลกอริธึมความน่าจะเป็น
นั่นไม่เป็นความจริงสำหรับ PPเราไม่ทราบวิธีการลดความน่าจะเป็นข้อผิดพลาดและเราถูกทิ้งไว้เกือบราวกับว่าเรากำลังตอบรับโดยการขว้างเหรียญเพื่อให้ได้คำตอบ (เรายังไม่สมบูรณ์ความน่าจะเป็นไม่ใช่ครึ่งหนึ่ง แต่ใกล้ กับสถานการณ์นั้น)
ส่วนนี้ให้การพิสูจน์ว่าจะได้รับความน่าจะเป็นข้อผิดพลาด ϵ เมื่อเราเริ่มต้นด้วยอัลกอริทึมที่มีช่องว่าง (12−δ,12+δ) เราควรวิ่ง M Θ(δ−1lgϵ) ครั้ง
ปล่อย Nk เป็นอัลกอริทึมที่ทำงาน M สำหรับ kครั้งแล้วตอบตามคำตอบของคนส่วนใหญ่ เพื่อความง่ายลองสมมติว่าk แปลกเราจึงไม่มีความสัมพันธ์
พิจารณากรณีที่ x∈L. กรณีx∉Lคล้ายกัน. แล้วก็
Pr{M(x) accepts}=p≥12+δ
เพื่อวิเคราะห์ความน่าจะเป็นที่ถูกต้องของ
Nk เราจำเป็นต้องประเมินความน่าจะเป็นที่ส่วนใหญ่ของ
k วิ่งยอมรับ
ปล่อย Xi เป็น 1 ถ้า ith run ยอมรับและเป็น 0ถ้ามันปฏิเสธ โปรดทราบว่าการรันแต่ละครั้งไม่ขึ้นอยู่กับผู้อื่นเนื่องจากใช้บิตสุ่มอิสระ ดังนั้นXis เป็นตัวแปรสุ่มแบบบูลอิสระ
E[Xi]=Pr{Xi=1}=Pr{M(x) accepts}=p≥12+δ
ปล่อย Y=Σki=1Xi. เราจำเป็นต้องประเมินความน่าจะเป็นที่คนส่วนใหญ่ยอมรับเช่นความน่าจะเป็นที่Y≥k2.
Pr{Nk(x) accepts}=Pr{Y≥k2}
ทำอย่างไร? เราสามารถใช้ Chernoff bound ซึ่งบอกเราถึงความเข้มข้นของความน่าจะเป็นใกล้กับค่าที่คาดไว้ สำหรับตัวแปรสุ่มใด ๆZ ด้วยมูลค่าที่คาดหวัง μ, เรามี
Pr{|Z−μ|>αμ}<eα24μ
ซึ่งบอกว่าความน่าจะเป็นนั้น Z คือ αμ ห่างจากค่าที่คาดหวัง μ จะลดลงอย่างชี้แจงเป็น αเพิ่มขึ้น เราจะใช้มันเพื่อจำกัดความน่าจะเป็นของY<k2.
โปรดทราบว่าเรามีความเป็นเส้นตรงของความคาดหวัง
E[Y]=E[Σki=1Xi]=Σki=1E[Xi]=kp≥k2+kδ
ตอนนี้เราสามารถใช้ Chernoff ที่ถูกผูกไว้ เราต้องการขอบเขตบนของความน่าจะเป็นY<k2. Chernoff ที่ถูกผูกไว้จะให้ขอบเขตบนความน่าจะเป็นของ|Y−(k2+kδ)|>kδซึ่งเพียงพอ เรามี
Pr{|Y−kp|>αkp}<e−α24kp
และถ้าเราเลือก α ดังนั้น αkp=kδ เราทำเสร็จแล้วดังนั้นเราเลือก α=δp≤2δ2δ+1.
ดังนั้นเราจึงมี
Pr{Y<k2}≤Pr{|Y−(k2+kδ)|>kδ}≤Pr{|Y−kp|>αkp}<e−α24kp
และถ้าคุณทำการคำนวณคุณจะเห็นว่า
α24kp≤δ24δ+2k=Θ(kδ)
เรามี
Pr{Y<k2}<e−Θ(kδ)
เราต้องการให้ข้อผิดพลาดเป็นอย่างมาก ϵดังนั้นเราจึงต้องการ
e−Θ(kδ)≤ϵ
หรือในคำอื่น ๆ
Θ(δ−1lgϵ)≤k
จุดสำคัญอย่างหนึ่งที่นี่ก็คือในกระบวนการเราจะใช้บิตสุ่มอีกมากมายและเวลาการทำงานจะเพิ่มขึ้นนั่นคือเวลาที่เลวร้ายที่สุด Nk จะคร่าวๆ k คูณเวลาทำงานของ M.
ที่นี่จุดกึ่งกลางของช่องว่างคือ 12. แต่โดยทั่วไปไม่จำเป็นต้องเป็นอย่างนั้น เราสามารถนำวิธีการที่คล้ายกันมาใช้สำหรับค่าอื่น ๆ โดยใช้เศษส่วนอื่นแทนส่วนใหญ่สำหรับการยอมรับ