ความคิดอื่นของความซับซ้อนขึ้นอยู่กับช่องว่างระหว่าง brute-force และ algorithm ที่ดีที่สุด?


17

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

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

ในทางกลับกันถ้าเรามีปัญหากับคำตอบที่เป็นไปได้ทวีคูณเป็นทวีคูณ แต่เราสามารถแก้ได้ในเวลาเอ็กซ์โพเนนเชียลเท่านั้นฉันอยากจะบอกว่าปัญหาดังกล่าวเป็น "ง่าย" ("โครงสร้าง" อาจดีกว่า word) เนื่องจาก runtime เป็นเพียงบันทึกขนาดพื้นที่โซลูชัน

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

คำตอบ:


12

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

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

ที่กล่าวว่าปัญหาของ "การหลีกเลี่ยงการค้นหาสัตว์เดรัจฉานบังคับ" สามารถทำได้ในวิธีการดังต่อไปนี้ (เท่าที่เห็นในกระดาษ "การปรับปรุงการค้นหาที่ละเอียดหมายถึงขอบเขตที่ต่ำกว่าพหุนามสูงสุด") คุณจะได้รับอัลกอริทึมการตรวจสอบที่ทำงานในเวลา , ในกรณีของขนาดnและวิธีการแก้ปัญหาผู้สมัครของkบิต คำถามคือ, * บนอินสแตนซ์โดยพลการของขนาดn , เราสามารถตรวจสอบได้หรือไม่ว่ามีวิธีแก้ไขที่ถูกต้อง (wrt verifier นี้) ด้วยค่าkบิตส่วนใหญ่, ในเวลาน้อยกว่าO ( 2 k t ( n , k ) ) ?เสื้อ(n,k)nknkO(2kเสื้อ(n,k))

หมายเหตุเป็นค่าใช้จ่ายในการลองใช้สตริงที่มีความยาวสูงสุดถึง k และเรียกใช้ตัวตรวจสอบ ดังนั้นจะเห็นได้ว่าเราสามารถปรับปรุงการค้นหาตัวตรวจสอบที่แม่นยำได้หรือไม่ พื้นที่ของ "อัลกอริทึมที่แน่นอนสำหรับปัญหา NP-ยาก" ที่สามารถมองเห็นเป็นความพยายามในระยะยาวเพื่อศึกษาความยากลำบากของการปรับปรุงในการค้นหาแรงเดรัจฉานบางยืนยันธรรมชาติมาก: เช่นคำถามของการหาดี than- 2 nอัลกอริทึม สำหรับ SAT เป็นคำถามว่าเราสามารถปรับปรุงได้ดีกว่าการค้นหาผู้ตรวจสอบที่กำลังตรวจสอบหรือไม่ว่าการแก้ปัญหาผู้สมัครที่ได้รับนั้นเป็นการมอบหมายที่น่าพอใจให้กับอินสแตนซ์ SAT ที่กำหนดหรือไม่O(2kเสื้อ(n,k))2n

บทความนี้แสดงให้เห็นถึงผลที่น่าสนใจของการปรับปรุงในการค้นหาปัญหาบางอย่าง แม้แต่การปรับปรุงในการค้นหาแบบ brute-force สำหรับ "ช่องว่างขนาดพหุนาม" จะมีผลที่น่าสนใจ


1
..

ฉันลังเลมากกว่าที่จะอ้างอิงเอกสารของตัวเองในคำตอบ แต่เมื่อมันเหมาะกับคำถามที่ว่ามันเป็นเรื่องยากที่จะต้านทาน ...
ไรอันวิลเลียมส์

5

คุณจะจัดการกับปัญหาการเขียนโปรแกรมแบบไดนามิกทั่วไปอย่างไร? ที่นี่สิ่งที่เกิดขึ้นบ่อยครั้งคือพื้นที่ของการแก้ปัญหาที่ดีที่สุดนั้น จำกัด ขอบเขตแบบพหุนาม แต่ไม่มีพื้นที่ของการแก้ปัญหา ดังนั้นดูเหมือนว่า "ง่าย" ในความหมายของคุณเพราะเวลาทำงานคือลอการิทึมในพื้นที่โซลูชัน แต่เป็น "ยาก" ในแง่ของคุณเพราะใช้ "กำลังดุร้าย" เหนือโซลูชันที่เหมาะสมที่สุดทั้งหมด


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

3

มุมมองดูเหมือนจะสมมติบางสิ่งเช่นความละเอียดของพื้นที่การแก้ปัญหา

ตัวอย่างเช่นลองคิดถึงปัญหาการสร้าง Voronoi tesselation จากชุดของจุดอินพุต ที่นี่มีพื้นที่สำหรับแก้ปัญหาขนาดไม่ จำกัด เนื่องจากแต่ละจุดในขอบของไดอะแกรมนั้นมีค่าเป็นจำนวนจริง ยังสามารถไปถึงวิธีแก้ปัญหาใน O (n log (n)) ในจำนวนของจุดอินพุต (สำหรับเครื่องบิน)


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

1
ตัวเลขจริงไม่ใช่วิธีเดียวที่จะได้พื้นที่การแก้ปัญหาที่ไม่มีที่สิ้นสุด พิจารณาเกมระหว่าง Alice และ Bob อลิซเลือกจำนวนเต็ม n บ๊อบทำการเดาและอลิซบอกเขาว่าเขาสูงกว่าต่ำกว่าหรือเท่ากับความลับของเธอ บ๊อบมีกลยุทธ์เวลา จำกัด ในการค้นหา n เพราะมัน จำกัด เสมอ เขาเริ่มต้น 0 แล้วเลือกค่าคงที่ที่มีขนาดใหญ่ อลิซบอกเขาว่าเธออยู่ในทิศทางใดและบ๊อบจะเดา c ^ เทิร์นจนกว่าเขาจะพบจุดต่ำสุดและขอบเขตบนซึ่งเขาทำการค้นหาแบบไบนารีสำหรับ n จากนั้นอีกครั้งฉันคิดว่าคุณอาจจะเถียงว่ามีวิธีการแก้ปัญหาพื้นที่ จำกัด ในจำนวนบิตของ n ...
รอสส์ Snider

3

ที่เกี่ยวข้องกับปัญหาที่ยอมรับอัลกอริทึมที่มีความล่าช้าพหุนาม คำตอบแรกและทุก ๆ คำตอบสามารถเกิดขึ้นได้ในเวลาพหุนาม Johnson, Yannakakis และ Papdimitriou หารือเกี่ยวกับกรอบนี้ในบริบทของช่องว่างที่เป็นไปได้อื่น ๆ (เช่นเวลาทั้งหมดของพหุนาม): ในการสร้างชุดอิสระสูงสุดทั้งหมด , ตัวประมวลผลข้อมูล27 , 119–123, 1988

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