ทำไมเวลาพหุนามจึงเรียกว่า“ มีประสิทธิภาพ”?


50

ทำไมในวิทยาการคอมพิวเตอร์ความซับซ้อนใด ๆ ที่มากที่สุดในพหุนามถือว่ามีประสิทธิภาพ?

สำหรับแอปพลิเคชันเชิงปฏิบัติใด ๆ(a)อัลกอริทึมที่มีความซับซ้อนนั้นเร็วกว่าอัลกอริธึมที่ใช้ในเวลาพูดแต่ตัวแรกถือว่าไม่มีประสิทธิภาพในขณะที่หลังมีประสิทธิภาพ ตรรกะอยู่ที่ไหน! n 80nlognn80

(ก) สมมติตัวอย่างเช่นจำนวนของอะตอมในจักรวาลจะอยู่ที่ประมาณ{80}1080


3
ฉันไม่แน่ใจว่าฉันเห็นด้วยกับหลักฐานของคุณ ฉันคิดว่าคนส่วนใหญ่จะพิจารณาว่าค่อนข้างไม่มีประสิทธิภาพ (แน่นอนว่าขึ้นอยู่กับค่าคงที่เช่นกันและปัญหาที่กำลังแก้ไขอยู่) n80
sepp2k

16
ฉันจะพิจารณาสำหรับใด ๆที่ไม่มีประสิทธิภาพมาก คุณมีตัวอย่างของการวิเคราะห์เชิงซีมโทติคที่นำไปสู่ความสุดโต่งที่ไม่สมเหตุสมผล ไม่มีอัลกอริทึมตามธรรมชาติ (ที่ฉันรู้) ด้วยเวลาทำงาน อย่างไรก็ตามมีอัลกอริทึมตามธรรมชาติที่มีเวลาทำงานสำหรับปัญหาบางอย่างและคำถามพื้นฐานในทฤษฎีความซับซ้อนเกี่ยวกับว่ามีอัลกอริทึมพหุนามสำหรับปัญหาดังกล่าวหรือไม่ c > 3 n 80 2 nncc>3n802n
Joe

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

8
@RanG และอ้างเต็มคือ (เน้นเหมือง): วิทยานิพนธ์ของคอบถือได้ว่า P เป็นชั้นเรียนของปัญหาการคำนวณซึ่งเป็น "แก้ปัญหาได้อย่างมีประสิทธิภาพ" หรือ "ง่าย"; ในทางปฏิบัติปัญหาบางอย่างที่ไม่ทราบว่าอยู่ใน P มีวิธีแก้ปัญหาในทางปฏิบัติและบางอย่างที่อยู่ใน P ไม่มี แต่นี่เป็นกฎง่ายๆ
Joe

6
ในวรรณคดี (ของทฤษฎี CS) คำว่า "มีประสิทธิภาพ" เป็นคำพ้องกับ "พหุนาม" อาจจะแตกต่างกันสำหรับฟิลด์ย่อยอื่น ๆ (ใช้ประโยชน์ได้มากกว่า)
Ran G.

คำตอบ:


32

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

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

นี่คือเหตุผลว่าทำไมเวลาพหุนามจึงเป็นแนวคิดที่ได้รับความนิยมในทางทฤษฎี CS อย่างไรก็ตามคนส่วนใหญ่ตระหนักว่าสิ่งนี้ไม่ได้สะท้อนถึง "ประสิทธิภาพในทางปฏิบัติ" สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ Dick Lipton โพสต์ใน ' กาแลคซีอัลกอริทึม ' เป็นการอ่านที่ยอดเยี่ยม


15
เหตุผลที่สองในทางปฏิบัติสำหรับการเลือก P คือมันถูกปิดภายใต้การบวกการคูณและการยกกำลังด้วยค่าคงที่ สะดวกในการเขียนอัลกอริทึม / เครื่อง ถ้าแบบเอกสารสำเร็จรูปมีประสิทธิภาพผลลัพธ์ก็คือ
Raphael

ฉันแค่อยากรู้อยากเห็นไม่มีใครรู้ว่าคำว่า "อัลกอริทึมทางช้างเผือก" ใช้ในทางปฏิบัติหรือไม่?
Juan Bermejo Vega

มันไม่ได้เป็นคำเก่า แต่ผมได้เริ่มต้นใช้มัน :)
Suresh

24

ในทางทฤษฎีเราใส่ใจกับพฤติกรรมแบบซีมโทติคและอธิบายคลาสของปัญหาและอัลกอริทึมโดยยึดตามพฤติกรรมแบบอะซีโทติค คำหลักที่นี่คือasymptotic เร็วกว่าไม่แสดงคือเริ่มจาก (ซึ่งเรียกว่า: septillion!) สมมติว่าค่าสัมประสิทธิ์คงที่ของหน่วยและไม่ต่ำ เงื่อนไขการสั่งซื้อO ( n บันทึกn ) n > 1208925819614629174706176O(n80)O(nlogn)n>1208925819614629174706176

อย่างไรก็ตามในทางปฏิบัติจะให้ความสนใจทั้งเลขชี้กำลังและสัมประสิทธิ์คงที่ ในการปฏิบัติขนาดอินพุตไม่สามารถเติบโตได้ถึง septillions ดังนั้นใช่เพื่อวัตถุประสงค์ทั้งหมดจะเป็นทางเลือกที่ดีกว่า{80} ปัจจัยอื่น ๆ ก็มีความสำคัญเช่นกัน: ความเท่าเทียม, รูปแบบการเข้าถึงหน่วยความจำ (เช่นสถานที่) n 80nlognn80

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

อีกตัวอย่างหนึ่งอัลกอริทึมการคูณเมทริกซ์ที่เร็วที่สุดที่รู้จักกันคืออัลกอริทึมCoppersmith-Winogradซึ่งทำงานใน (มีการปรับปรุงล่าสุด; เพิ่มเติมที่นี่ ) อย่างไรก็ตามมันไม่เคยถูกนำมาใช้เพราะ (1) มันยาก (2) ค่าสัมประสิทธิ์คงที่คือใหญ่โต แพคเกจพีชคณิตเชิงเส้นทั้งหมดใช้ที่เหมาะสมน้อยStrassenO(n2.3737)

TL; DR ทฤษฎีการดูแลพฤติกรรมแบบอะซิมโทติคเพื่อเปรียบเทียบอัลกอริธึมเมื่อขีด จำกัด ของขนาดอินพุตเป็นจำนวนมากโดยพลการ


พวกเขา "เลือกอัลกอริธึมด้อยกว่า" หรือไม่ คุณไม่ได้หมายความว่า "เลือกอัลกอริธึมที่เหนือกว่า" ใช่ไหม
bitmask

อีกตัวอย่างที่ดีคือการเรียงลำดับการแทรกเทียบกับการจัดเรียงอย่างรวดเร็ว จัดเรียงแทรกมีในขณะที่การจัดเรียงอย่างรวดเร็วเป็นn) อย่างไรก็ตามสำหรับอินพุตขนาดเล็กพูดได้ 10 รายการการเรียงลำดับการแทรกนั้นเร็วกว่าการจัดเรียงอย่างรวดเร็วสองเท่า! ในความเป็นจริงการจัดเรียงอย่างรวดเร็วที่เหมาะสมใช้การเรียงลำดับการแทรกสำหรับอาร์เรย์ขนาดเล็ก O ( n l g n )Θ(N2)O(nlgn)
Robert S. Barnes

ทำไมเราไม่พิจารณาอัลกอริธึมแบบลูกบาศก์แบบ asymptotically "ไม่ดี" และอัลกอริธึมแบบสมการกำลังสอง asymptotically "ดี"? คำตอบนี้ทำให้เกิดคำถาม
djechlin

2

คำตอบนี้จะพิจารณาบริบท "ภาพใหญ่ขึ้น" ของคำถามของคุณ วิทยาศาสตร์คอมพิวเตอร์เป็นวิทยาศาสตร์ที่ค่อนข้างใหม่และเปิดกว้างและยังไม่มีคำตอบที่ดีหรือแม้แต่คำตอบสำหรับคำถามพื้นฐานและคำถามพื้นฐาน คำถามพื้นฐาน "สิ่งที่จะคำนวณได้อย่างมีประสิทธิภาพ" อย่างใดอย่างหนึ่งได้อย่างถูกต้องหรือประมาณในกรงเล็บ CS (ขึ้นอยู่กับความเห็น) ในขณะที่ P ที่มีชื่อเสียง VS ปัญหา NP (หรือ P เกี่ยวข้องอย่างใกล้ชิด VS ปัญหา Exptime) และยังคงมันเปิดหลังจากใช้เวลานานกว่าสี่ทศวรรษที่ผ่านมาของ ในขั้นต้นได้รับการแนะนำโดย Cook / Levin ~ 1970 และงานที่หนักหน่วงโดยนักวิทยาศาสตร์คอมพิวเตอร์ที่ยิ่งใหญ่ที่สุดในโลก (และนักคณิตศาสตร์หลายคนก็ให้ความสนใจในปัญหาพื้นฐาน)

ดังนั้นในคำอื่น ๆ แม้จะมีหยาบคำนิยามของ "ที่มีประสิทธิภาพ" เป็นเวลา P, และเป็นหนึ่งในรางวัลทางวิทยาศาสตร์ที่มีมูลค่าสูงที่สุด - คือรางวัล $ 1M แนบมากับปัญหาที่เกิดขึ้นมานานกว่า 10yrs - วิทยาการคอมพิวเตอร์ไม่สามารถแม้แต่จะพิสูจน์ให้เห็นว่าปัญหาบางอย่าง (ใกล้เคียงกับ เส้นเขตแดนนี้) จะต้องมีหรือไม่มีขั้นตอนวิธี (Ptime) ที่มีประสิทธิภาพ ดังนั้นคำจำกัดความที่แน่นอนของ "มีประสิทธิภาพ" แม่นยำกว่าเวลา P จึงไม่จำเป็นหรืออาจเป็นไปได้ในเวลานี้ หาก / เมื่อการคาดเดา P vs NP ถูกตัดสินในทางใดทางหนึ่งคำจำกัดความที่เข้มงวดมากขึ้นของ "ประสิทธิภาพ" อาจจะหรืออาจเป็นไปได้

ยิ่งไปกว่านั้นเราอาจรู้สึกว่าคำจำกัดความ PIME ของ "มีประสิทธิภาพ" อาจเป็น "เลอะเทอะ" และนักวิทยาศาสตร์คอมพิวเตอร์ส่วนใหญ่อาจเห็นด้วยและเกือบทุกคนคิดว่าการคาดเดา P vs NP มีความสำคัญสูงสุดในการแก้ไข จุดที่พวกเขาอาจจะมองว่าเรื่องนี้ยืนยันหรือข้อสังเกตที่น่ารำคาญเป็น .... ในคำอื่น ๆ เพื่อที่จะพูด, การทำงานในความคืบหน้า / เรากำลังทำงานกับมัน (ในความเป็นจริงนักวิทยาศาสตร์คอมพิวเตอร์กระแสหลักถึงตอนนี้มีเพียงครึ่งล้อเล่นที่อ้างถึงช่องว่างและการขาดความก้าวหน้า / การแยกที่ชัดเจนว่าน่าอาย )

ในความเป็นจริงมีการคาดเดาที่เกี่ยวข้องอย่างใกล้ชิด / แข็งแกร่งกว่า P vs NP คือ NP vs P / poly ซึ่งยังไม่สามารถแก้ไขได้ด้วยวิทยาการคอมพิวเตอร์ในขณะนี้ มันอนุมานว่าปัญหา NP-time ไม่สามารถแก้ไขได้ด้วยวงจร "P-sized" ใด ๆนั่นคือไม่ได้ จำกัด เฉพาะวงจรเหล่านั้นที่สามารถสร้างขึ้นโดยอัลกอริทึม / เครื่องทัวริง

สำหรับความยากของ P vs NP - มีเหตุผลบางอย่างที่คิดว่าอย่างน้อยก็อาจยากเหมือนการคาดคะเน Riemann ที่เก่าแก่มากในคณิตศาสตร์ (ตอนนี้อายุศตวรรษที่ 1.5 ) เพราะทั้งคู่ได้รับรางวัล $ 1M เดียวกันมานานกว่า ทศวรรษและยังไม่ได้รับการแก้ไข / ก่อน

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

ในความเป็นจริงคำถามของ "สิ่งที่จะคำนวณได้อย่างมีประสิทธิภาพ" ที่เป็นจริงมากยิ่งลึกซึ้งยิ่งขึ้นเพราะมีความแตกต่างจากวิทยานิพนธ์โบสถ์ทัวริงเรียกว่า P-เวลา CT วิทยานิพนธ์และมันไม่เป็นที่รู้จักถ้าคอมพิวเตอร์ควอนตัมจริงละเมิดมัน ด้วยผลการพัฒนาของ P-time QM ของ Shor แฟคตอริ่งพิจารณาว่ามีการเปลี่ยนแปลงอย่างมากในการวิจัยนี้ กล่าวอีกนัยหนึ่งปัญหาของสิ่งที่คำนวณได้อย่างมีประสิทธิภาพจริง ๆ แล้วมีความเป็นไปได้อย่างมากที่จะลงลึกถึงหลักการฟิสิกส์เชิงลึกและเกี่ยวข้องกับการคำนวณเชิงควอนตัมที่สามารถคำนวณได้อย่างมีประสิทธิภาพมากกว่าการคำนวณแบบคลาสสิค

ดังนั้นหนึ่งยังสามารถเพิ่มที่ P VS NP และคำถามของคอมพิวเตอร์ที่มีประสิทธิภาพอาจจะมีความสำคัญสำคัญหรือพื้นฐานใน - นอกเหนือจากการบริการลูกค้าและคณิตศาสตร์ - ฟิสิกส์

[1] ปัญหา P vs NP, วิกิพีเดีย

[2] ปัญหารางวัลมิลเลนเนียม

[3] คลาส P / Poly, วิกิพีเดีย

[4] อัลกอริทึมของ Shor


การแก้ไข: P กับ Pspace ไม่ใช่ P กับ ExpTime
vzn

-2

อัลกอริธึมเวลาแบบพหุนามพิจารณาว่ามีประสิทธิภาพเมื่อเปรียบเทียบกับเวลาที่ไม่ใช่พหุนามที่ยากที่สุดโดยเฉพาะ NP-Complete ดูภาพ: ออยเลอร์แผนภาพสำหรับ P, NP, NP-สมบูรณ์และ NP-ยากชุดของปัญหา


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