ในการตอบเป็นนักคำถามก่อนหน้านี้ผมได้กล่าวถึงความเชื่อร่วมกัน แต่ผิดว่า“เสียน”กำจัดทำงานในเวลา ในขณะที่เห็นได้ชัดว่าอัลกอริทึมใช้การดำเนินการทางคณิตศาสตร์การดำเนินการที่ไม่ระมัดระวังสามารถสร้างตัวเลขด้วยบิตจำนวนมากแทน เป็นตัวอย่างง่ายๆสมมติว่าเราต้องการทำให้เมทริกซ์ต่อไปนี้เป็นแนวเส้นทแยงมุม:
ถ้าเราใช้อัลกอริธึมการกำจัดรุ่นที่ไม่มีการหารซึ่งจะเพิ่มจำนวนเต็มจำนวนเต็มของแถวหนึ่งไปยังอีกแถวหนึ่งเท่านั้นและเราหมุนไปตามรายการในแนวทแยงของเมทริกซ์เสมอเมทริกซ์เอาต์พุตมีเวกเตอร์ตามแนวทแยงมุม
แต่สิ่งที่เป็นความซับซ้อนเวลาที่เกิดขึ้นจริงของการกำจัดแบบเกาส์? combinatorial optimization ผู้แต่งส่วนใหญ่ดูเหมือนจะมีความสุขกับ“ พหุนามอย่างยิ่ง” แต่ฉันอยากรู้ว่าพหุนามนั้นคืออะไร
กระดาษของแจ็คเอ็ดมันด์ปี 1967อธิบายถึงการกำจัดแบบเกาส์ (“ อาจจะเป็นเพราะเกาส์”) ซึ่งเป็นเวอร์ชั่นพหุนามอย่างยิ่ง ความเข้าใจที่สำคัญของ Edmonds คือทุกรายการในเมทริกซ์ตัวกลางทุกตัวนั้นเป็นตัวกำหนดของเมทริกซ์อินพุตดั้งเดิมเล็กน้อย สำหรับเมทริกซ์มีรายการจำนวนเต็มบิต Edmonds พิสูจน์ว่าอัลกอริธึมของเขาต้องการจำนวนเต็มที่บิตใหญ่ ภายใต้สมมติฐาน“ สมเหตุสมผล” ที่อัลกอริทึมของ Edmonds ทำงานในเวลาถ้าเราใช้เลขคณิตเลขจำนวนเต็มตำราเรียนหรือในเวลาถ้าเรา ใช้การคูณแบบอิง FFT บน RAM จำนวนเต็มมาตรฐานซึ่งสามารถดำเนินการเลขคณิตบิตในเวลาคงที่ (เอ็ดมันด์ไม่ได้ทำการวิเคราะห์ในครั้งนี้เขาอ้างว่าอัลกอริทึมของเขาคือ "ดี")
นี่เป็นการวิเคราะห์ที่ดีที่สุดหรือไม่? มีการอ้างอิงมาตรฐานที่ให้เวลาชัดเจนยิ่งขึ้นหรืออย่างน้อยก็ต้องมีความแม่นยำที่ดีขึ้นหรือไม่
โดยทั่วไป: เวลาทำงาน (บนจำนวนเต็ม RAM) ของอัลกอริทึมที่เร็วที่สุดที่รู้จักกันในการแก้ระบบโดยพลการของสมการเชิงเส้นคืออะไร?