ปัญหาใน P ด้วยอัลกอริทึมแบบสุ่มที่พิสูจน์ได้เร็วขึ้น


20

มีปัญหาใด ๆ ในPที่มีอัลกอริทึมแบบสุ่มที่เต้นต่ำกว่าขอบเขตของอัลกอริทึมที่กำหนดหรือไม่? ยิ่งขึ้นอย่างเป็นรูปธรรมเรารู้จักใดที่ ? ที่นี่\ mathsf {PTIME} (f (n))หมายถึงชุดภาษาที่ decidable โดย TM แบบสุ่มที่มีข้อผิดพลาดแบบ จำกัด ขอบเขต (หนึ่งหรือสองด้าน) ในขั้นตอนf (n)kDTIME(nk)PTIME(nk)PTIME(f(n))f(n)

การสุ่มซื้อของเราไว้ในPหรือไม่?

เพื่อความชัดเจนฉันกำลังมองหาบางสิ่งที่แตกต่างคือแบบอะซิมโทติค (พหุนามโดยเฉพาะอย่างยิ่ง แต่ฉันจะเลือกโพลีโลมาติกแบบไมโคร) ไม่ใช่แค่ค่าคงที่

ฉันกำลังมองหาอัลกอริทึมแบบไม่มีอาการในกรณีที่แย่ที่สุด อัลกอริทึมที่มีความซับซ้อนที่คาดหวังดีกว่าไม่ใช่สิ่งที่ฉันกำลังมองหา ฉันหมายถึงอัลกอริทึมแบบสุ่มเช่นเดียวกับใน RP หรือ BPP ไม่ใช่ ZPP


บางที "เทคนิคของเหยา" คือสิ่งที่คุณกำลังมองหา คำอธิบายสั้น ๆ สามารถดูได้ที่cs.pitt.edu/~kirk/cs2150/yao/yao.html
Wu Yin

@ WuYin ถ้าฉันเข้าใจอย่างถูกต้องว่าไปในทิศทางของอัลกอริธึมแบบสุ่มที่มีขอบเขตล่างโดยพฤติกรรมเฉลี่ยของอัลกอริทึมที่กำหนดขึ้นมา .. ฉันจะดูมันให้มากขึ้น แต่วิธีที่ฉันเห็นมันนี่อาจนำไปสู่ ไม่ได้ซื้ออะไรภายใน .. ฉันถูกต้องไหม? P
aelguindy

1
สำหรับการค้นหาองค์ประกอบใด ๆ ตามลำดับความยาวโดยมีอันดับใน [ , ] เราสามารถคืนองค์ประกอบแบบสุ่มใด ๆ และมันจะถูกต้องด้วยความน่าจะเป็นดังนั้น O (1)! ขณะที่ขั้นตอนวิธีตายตัวอย่างน้อยจะตรวจสอบส่วนบางส่วนของการป้อนข้อมูลและด้วยเหตุนี้(n) nn43n412Ω(n)
rizwanhudda

@rizwanhudda อาจมีปัญหาเกิดขึ้นกับมัน ก่อนอื่นฉันกำลังมองหาปัญหาการตัดสินใจ ประการที่สองในโมเดลทัวริงการส่งคืนองค์ประกอบแบบสุ่มคือΩ(n)เนื่องจากไม่มีการเข้าถึงแบบสุ่ม บางทีเครื่องจะส่งออกองค์ประกอบแรกเสมอหรือไม่ ถึงกระนั้นปัญหาแรกก็ใหญ่กว่า
aelguindy

2
ย่อหน้าสุดท้ายไม่สมเหตุสมผลเนื่องจากทุกขั้นตอนวิธีของลาสเวกัสสามารถแปลงเป็นอัลกอริธึม Monte Carlo
Tsuyoshi Ito

คำตอบ:


17

การทดสอบอัตลักษณ์พหุนามยอมรับอัลกอริธึมเวลาพหุนามแบบสุ่ม (ดู Schwartz-Zippel lemma ) และในปัจจุบันเราไม่มีเวลาพหุนามแบบกำหนดแน่นอนหรือแม้แต่อัลกอริธึมย่อยแบบเลขชี้กำลังแทนสำหรับมัน

การประเมินทรีเกมพิจารณาทรีไบนารีที่สมบูรณ์พร้อมโหนด leaf แต่ละอันเก็บค่า 0/1 โหนดภายในมี OR / และประตูในระดับอื่น มันสามารถพิสูจน์ได้โดยใช้ข้อโต้แย้งของฝ่ายตรงข้ามว่าทุกขั้นตอนวิธีการที่กำหนดจะต้องมีการตรวจสอบ Ω ( n )โหนดใบในกรณีที่เลวร้ายที่สุด อย่างไรก็ตามมีอัลกอริทึมแบบสุ่มง่าย ๆ ซึ่งคาดว่าจะใช้เวลา O ( n 0.793 ) ดูที่สไลด์ 14-27 ของการพูดคุยnΩ(n)O(n0.793)

การกำหนดเส้นทางที่ลืมเลือนบนไฮเปอร์คิวบ์พิจารณาคิวบ์ใน Dimensions ที่มี N = 2 nจุดยอด แต่ละจุดสุดยอดมีแพ็กเก็ตข้อมูลและปลายทางที่ต้องการส่งแพ็กเก็ตในที่สุด ปลายทางของแพ็กเก็ตทั้งหมดนั้นแตกต่างกัน แม้สำหรับสิ่งนี้มันได้รับการพิสูจน์แล้วว่ากลยุทธ์การกำหนดเส้นทางใด ๆ ที่กำหนดขึ้นจะใช้ Ω ( √)nN=2nขั้นตอน แต่มีความเรียบง่ายแบบสุ่มกลยุทธ์ซึ่งจะเสร็จสิ้นในคาดว่าO(n)ขั้นตอนที่มีโอกาสสูงΩ(Nn) O(n)

โปรดทราบว่าในอัลกอริทึมแบบสุ่มค่าใช้จ่ายที่คาดหวังมีความน่าจะเป็นสูง (เช่นเช่นP r [ F ( n ) > 10 E ( F ( n ) ) ] < 1E(F(n)) ) เทียบเท่ากับกรณีที่เลวร้ายที่สุดในทางปฏิบัติPR[F(n)>10E(F(n))]<1n2


นอกจากนี้ให้พิจารณาการทดสอบสำหรับการฝึกอบรม, BและCถ้าB = C ขณะนี้เรารู้ว่าไม่มีo ( 2 2.3 )ขั้นตอนวิธีการที่เรารู้ว่าสุ่มO ( n 2 )ขั้นตอนวิธีการ ประเด็นคือมีปัญหาที่เราสามารถพิสูจน์ได้ว่าอัลกอริทึมแบบสุ่มดีกว่าหรือไม่ ABAB=โอ(22.3)O(n2)
aelguindy

@aelguindy ฉันได้รับคะแนนของคุณ แต่สำหรับ PIT ขั้นตอนวิธีเด็ดเดี่ยวที่รู้จักกันดีที่สุดคือเลขชี้กำลัง และการทำให้เสียรูปแบบ PIT เป็นปัญหาเปิดที่สำคัญใน Theoretical CS
rizwanhudda

ฉันได้เพิ่มการประเมินแผนผังเกมและการกำหนดเส้นทางไฮเปอร์คิวบ์ไปยังโพสต์ซึ่งอัลกอริธึมแบบสุ่มทำได้ดีกว่าตัวกำหนดที่กำหนด
rizwanhudda

ตกลงสำหรับการประเมินทรีเกมถ้าฉันเข้าใจถูกต้องมันจะทำงานในคาดหวัง( n 0.793 )ใช่ไหม? ผมหมายถึงมีกรณีที่มันจะทำงานในΩ ( n ) เป็นกรณีที่มีตัวอย่างที่สามด้วยหรือไม่ ฉันไม่อนุญาตให้มีเวลาที่คาดหวังดีขึ้นฉันกำลังมองหาความซับซ้อนที่เลวร้ายที่สุดที่ดีกว่าและอนุญาตข้อผิดพลาดในผลลัพธ์ O(n0.793)Ω(n)
aelguindy

1
ดังนั้นพวกเขาจึงไม่ดีขึ้นในกรณีที่เลวร้ายที่สุด เท่าที่ฉันชื่นชมตัวอย่างฉันกลัวว่าไม่ใช่สิ่งที่ฉันกำลังมองหา ตัวอย่างนั้นสว่างไสวมาก!
aelguindy

5

การตรวจสอบกรณีที่เลวร้ายที่สุดนั้นไม่มีความหมายสำหรับอัลกอริทึมแบบสุ่ม ไม่เพียง แต่ตัวรันไทม์ที่เลวร้ายที่สุดเท่านั้นที่จะไม่มีที่สิ้นสุด แต่พวกมันก็ไม่สามารถทำได้ดีกว่าอัลกอริธึมที่กำหนดไว้ในเมตริกนั้น

พิจารณาใด ๆ สุ่มอัลกอริทึม ได้รับขั้นตอนวิธีการกำหนดBโดยการแก้ไขเทปสุ่มสำหรับไป0 จากนั้นT B ( n ) T ( n )สำหรับทุกnABA0TB(n)TA(n)n


5

มีปัญหามากมายที่เรารู้เกี่ยวกับอัลกอริทึมแบบสุ่มที่มีประสิทธิภาพและเราไม่ทราบถึงอัลกอริทึมแบบกำหนดค่าใด ๆ ที่เราสามารถพิสูจน์ได้ว่ามีประสิทธิภาพ อย่างไรก็ตามสิ่งนี้อาจสะท้อนถึงข้อบกพร่องในความสามารถของเราในการพิสูจน์สิ่งต่าง ๆ เกี่ยวกับความซับซ้อนมากกว่าความแตกต่างพื้นฐาน

จากความคิดเห็นของคุณดูเหมือนว่าคุณตั้งใจจะถามว่ามีปัญหาใด ๆ หรือไม่ที่มีอัลกอริธึมแบบสุ่มที่มีประสิทธิภาพและเราสามารถพิสูจน์ได้ว่าไม่มีอัลกอริทึมที่มีประสิทธิภาพเทียบเท่ากัน ฉันไม่รู้ปัญหาดังกล่าว

อันที่จริงมีเหตุอันควรสงสัยว่าปัญหาดังกล่าวอาจไม่เกิดขึ้น การมีอยู่ของปัญหาดังกล่าวน่าจะหมายความว่าการเข้ารหัสที่ปลอดภัยนั้นเป็นไปไม่ได้ ดูเหมือนว่าจะเป็นผลลัพธ์ที่ไม่น่าเชื่อเลยทีเดียว

การเชื่อมต่อคืออะไรคุณถาม? ดีพิจารณาขั้นตอนวิธีการใด ๆ สุ่มที่แก้ปัญหาบางอย่างได้อย่างมีประสิทธิภาพ ขึ้นอยู่กับการสุ่มเหรียญ: บิตสุ่มที่ได้จากแหล่งสุ่มจริง ตอนนี้สมมติว่าเราใช้ตัวสร้างเทียมเข้ารหัสที่มีคุณภาพแบบเข้ารหัสและแทนที่แหล่งกำเนิดที่แท้จริงแบบสุ่มด้วยผลลัพธ์ของตัวสร้างจำลองแบบหลอกเทียม โทรที่เกิดอัลกอริทึม' โปรดทราบว่า'เป็นอัลกอริทึมที่กำหนดและเวลาในการทำงานของมันคือประมาณเช่นเดียวกับAAAA

นอกจากนี้หากการเข้ารหัสลับ PRNG มีความปลอดภัยแบบ heuristically เราควรคาดหวังให้เป็นอัลกอริทึมที่ดีถ้าAคือ:AA

  • ตัวอย่างเช่นถ้าเป็นลาสเวกัสอัลกอริธึม (มันมักจะเอาท์พุทคำตอบที่ถูกต้องและยุติอย่างรวดเร็วด้วยความน่าจะเป็นสูง) ดังนั้นA จะเป็นอัลกอริธึมที่ดีมาก .AA

  • อีกตัวอย่างหนึ่งถ้าเป็นอัลกอริธึม Monte Carlo (เวลาทำงานที่กำหนดไว้ล่วงหน้าและส่งคำตอบที่ถูกต้องด้วยความน่าจะเป็นอย่างน้อย1 - ε ) ดังนั้นAจะเป็นอัลกอริธึมที่ดีมาก บนเศษส่วน1 - εของอินพุตทั้งหมด)A1εA1ε

ดังนั้นหากการเข้ารหัสลับ PRNG มีความปลอดภัยและมีอัลกอริทึมแบบสุ่มที่มีประสิทธิภาพคุณจะได้รับอัลกอริทึมแบบกำหนดค่าที่ค่อนข้างดี ขณะนี้มีโครงสร้างของ PRNG เข้ารหัสมากมายที่รับประกันว่าจะปลอดภัยหากมีการสันนิษฐานว่ามีการเข้ารหัสลับบางอย่าง ในทางปฏิบัติสมมติฐานการเข้ารหัสลับเหล่านี้มีความเชื่อกันอย่างกว้างขวาง: อย่างน้อยการค้าที่ปลอดภัยและการทำธุรกรรมขึ้นอยู่กับความจริงดังนั้นเราจึงยินดีที่จะเดิมพันเงินก้อนใหญ่ที่มีการเข้ารหัสที่ปลอดภัย วิธีเดียวที่การเปลี่ยนแปลงนี้อาจล้มเหลวคือถ้าไม่มี PRNG เข้ารหัสซึ่งหมายความว่าการเข้ารหัสที่ปลอดภัยนั้นเป็นไปไม่ได้ แม้ว่าเราจะไม่มีหลักฐานใด ๆ ว่าเป็นกรณีนี้ แต่ดูเหมือนว่าผลลัพธ์ที่ไม่น่าจะเกิดขึ้น

รายละเอียดของการก่อสร้าง: นี่คือการทำงานของกับการป้อนข้อมูลx , มันเกิดเมล็ดสำหรับการเข้ารหัสลับ PRNG เป็นหน้าที่ของx (เช่นโดยคร่ำเครียดx ) แล้วเลียนแบบ( x )โดยใช้การส่งออกของ PRNG การเข้ารหัสลับเป็นเหรียญสำหรับ ตัวอย่างเช่นการสร้างอินสแตนซ์เฉพาะจะตั้งk = SHA256 ( x )จากนั้นใช้kเป็นเมล็ดสำหรับ AES256 ในโหมดตัวนับหรือโหมด PRNG เข้ารหัสลับอื่น ๆ เราสามารถพิสูจน์ข้อความข้างต้นภายใต้แบบจำลองออราเคิลแบบสุ่มAxxxA(x)Ak=SHA256(x)k

หากคุณไม่พอใจกับแนวคิดที่ว่าอาจให้ผลลัพธ์ที่ไม่ถูกต้องกับอินพุตเล็กน้อยบางส่วนซึ่งสามารถแก้ไขได้ หากคุณทำซ้ำA หลายครั้งและลงคะแนนเสียงส่วนใหญ่ความน่าจะเป็นข้อผิดพลาดจะลดลงอย่างรวดเร็วในจำนวนการวนซ้ำ ดังนั้นโดยการทำซ้ำเป็นจำนวนคงที่ของเวลาที่คุณจะได้รับข้อผิดพลาดน่าจะเป็นεจะต่ำกว่า1 / 2 256ซึ่งหมายความว่าโอกาสที่คุณใช้ในการป้อนข้อมูลxAAε1/2256xเมื่ออัลกอริทึมแสดงผลคำตอบที่ไม่ถูกต้องจะหายไปเล็กน้อย (น้อยกว่าโอกาสที่จะเกิดฟ้าผ่าได้หลายครั้งติดต่อกัน) ยิ่งไปกว่านั้นด้วยสิ่งก่อสร้างที่ฉันให้ไว้ข้างต้นโอกาสที่ศัตรูจะสามารถหาอินพุตซึ่งA ให้คำตอบที่ผิดสามารถทำได้น้อยมากเนื่องจากต้องทำลายความปลอดภัยของแฮช SHA256 (ในทางเทคนิคสิ่งนี้ต้องใช้แบบจำลอง oracle แบบสุ่มเพื่อปรับให้เหมาะสมดังนั้นหมายความว่าAจะต้องเลือกให้เป็น "อิสระ" ของ SHA256 และไม่ใช่ฮาร์ดโค้ดในการคำนวณที่เกี่ยวข้องกับ SHA256 แต่อัลกอริธึมในโลกแห่งความเป็นจริงเกือบทั้งหมด .)xAA

หากคุณต้องการทฤษฎีพื้นฐานที่แข็งแกร่งคุณสามารถย้ำΘ ( n )ครั้งและได้รับความน่าจะเป็นข้อผิดพลาดจะต่ำกว่า1 / 2 nที่nคือความยาวของอินพุตx ตอนนี้ส่วนของการnปัจจัยบิตที่'ช่วยให้คำตอบที่ไม่ถูกต้องเป็นอย่างเคร่งครัดน้อยกว่า1 / 2 n แต่มีอินพุตn- bit ที่เป็นไปได้เพียง2 nเท่านั้นและในแต่ละA Aนั้นถูกต้องหรือไม่ถูกต้องดังนั้นจึงตามมาว่าไม่มีอินพุตที่A A Θ(n)1/2nnxnA1/2n2nnAAไม่ถูกต้อง: 'ถูกต้องเกี่ยวกับปัจจัยการผลิตทั้งหมดและนี้ถือโดยไม่มีเงื่อนไข หากAทำงานในเวลาt ( n )ดังนั้นA จะทำงานในเวลาΘ ( n t ( n ) )ดังนั้นA จะช้ากว่าAเล็กน้อย แต่ไม่ช้าเกินไป นี่คือเนื้อหาของการพิสูจน์ของ Adleman ว่า BPP มีอยู่ใน P / poly เพื่อจุดประสงค์ในทางปฏิบัติสิ่งนี้อาจเกินความเป็นจริง แต่ถ้าคุณชอบพิสูจน์ที่สะอาดที่หลีกเลี่ยงการเข้ารหัสลับหรือถ้าคุณเข้าใกล้สิ่งนี้จากมุมมองของนักทฤษฎีคุณก็อาจชอบเวอร์ชั่นนี้มากกว่าAAt(n)AΘ(nt(n))AA

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการพิจารณาทางทฤษฎีหลังและปัญหาเพิ่มเติมที่เราทราบถึงอัลกอริธึมแบบสุ่มที่มีประสิทธิภาพ แต่เราไม่ทราบอัลกอริทึมแบบกำหนดแน่นอนใด ๆ ที่เราสามารถพิสูจน์ได้ว่ามีประสิทธิภาพดู/cstheory//q/31195 / 5038

โดยสรุป: สำหรับปัญหาใด ๆ ที่เรารู้ว่าอัลกอริธึมแบบสุ่มที่มีประสิทธิภาพเราก็รู้ถึงอัลกอริธึมที่กำหนดขึ้นซึ่งน่าจะมีประสิทธิภาพในทางปฏิบัติ - แต่ในปัจจุบันเราไม่รู้วิธีพิสูจน์ว่ามันมีประสิทธิภาพ การตีความที่เป็นไปได้อย่างหนึ่งคือเราไม่สามารถพิสูจน์สิ่งต่าง ๆ เกี่ยวกับอัลกอริทึมได้ดีนัก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.