ความซับซ้อนของเวลาจริงของการกำจัดแบบเกาส์เซคืออะไร?


72

ในการตอบเป็นนักคำถามก่อนหน้านี้ผมได้กล่าวถึงความเชื่อร่วมกัน แต่ผิดว่า“เสียน”กำจัดทำงานในเวลา ในขณะที่เห็นได้ชัดว่าอัลกอริทึมใช้การดำเนินการทางคณิตศาสตร์การดำเนินการที่ไม่ระมัดระวังสามารถสร้างตัวเลขด้วยบิตจำนวนมากแทน เป็นตัวอย่างง่ายๆสมมติว่าเราต้องการทำให้เมทริกซ์ต่อไปนี้เป็นแนวเส้นทแยงมุม:O(n3)O(n3)

[2000120011201112]

ถ้าเราใช้อัลกอริธึมการกำจัดรุ่นที่ไม่มีการหารซึ่งจะเพิ่มจำนวนเต็มจำนวนเต็มของแถวหนึ่งไปยังอีกแถวหนึ่งเท่านั้นและเราหมุนไปตามรายการในแนวทแยงของเมทริกซ์เสมอเมทริกซ์เอาต์พุตมีเวกเตอร์(2,4,16,256,,22n1)ตามแนวทแยงมุม

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

กระดาษของแจ็คเอ็ดมันด์ปี 1967อธิบายถึงการกำจัดแบบเกาส์ (“ อาจจะเป็นเพราะเกาส์”) ซึ่งเป็นเวอร์ชั่นพหุนามอย่างยิ่ง ความเข้าใจที่สำคัญของ Edmonds คือทุกรายการในเมทริกซ์ตัวกลางทุกตัวนั้นเป็นตัวกำหนดของเมทริกซ์อินพุตดั้งเดิมเล็กน้อย สำหรับเมทริกซ์n×nมีรายการจำนวนเต็มmบิต Edmonds พิสูจน์ว่าอัลกอริธึมของเขาต้องการจำนวนเต็มที่บิตO(n(m+logn))ใหญ่ ภายใต้สมมติฐาน“ สมเหตุสมผล” ที่m=O(logn)อัลกอริทึมของ Edmonds ทำงานในเวลาO(n5)ถ้าเราใช้เลขคณิตเลขจำนวนเต็มตำราเรียนหรือในO~(n4)เวลาถ้าเรา ใช้การคูณแบบอิง FFT บน RAM จำนวนเต็มมาตรฐานซึ่งสามารถดำเนินการO(logn)เลขคณิตบิตในเวลาคงที่ (เอ็ดมันด์ไม่ได้ทำการวิเคราะห์ในครั้งนี้เขาอ้างว่าอัลกอริทึมของเขาคือ "ดี")

นี่เป็นการวิเคราะห์ที่ดีที่สุดหรือไม่? มีการอ้างอิงมาตรฐานที่ให้เวลาชัดเจนยิ่งขึ้นหรืออย่างน้อยก็ต้องมีความแม่นยำที่ดีขึ้นหรือไม่

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


2
(การแทรก handwave ที่มีความรุนแรง) คุณไม่สามารถแก้ไขปัญหาจำนวนเต็มขนาดใหญ่ในกรณีนี้ได้หรือไม่โดยใช้เทคนิคพิเศษเล็ก ๆ น้อย ๆ อัลกอริทึมจะถูกสุ่ม แต่ก็ยัง .. ยอมรับว่าไม่ได้ตอบคำถามที่คุณถาม ...
Suresh Venkat

1
ข้อมูลอ้างอิงต่อไปนี้อาจช่วยได้บ้าง Lovasz ของบันทึกการบรรยาย , บท yap ในปัจจัย (Yap ให้ความซับซ้อนบิตสำหรับการคำนวณปัจจัยทางอัลกอริทึมของ BAREISS) จากหนังสือของ Yap (แบบฝึกหัด 10.1.1 (iii)) ฉันรู้สึกว่าไม่รู้ว่าการลดแบบเกาส์ให้ค่ากลางที่เพิ่มขึ้นแบบทวีคูณในขนาดบิต แต่ตอนนี้ฉันไม่แน่ใจ O(n3MB[n(logn+L)])
user834

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

3
อยากรู้อยากเห็น เวลาของ Yap สำหรับอัลกอริธึมของ Bereiss นั้นเหมือนกับเวลาที่ จำกัด โดยนัยจากการวิเคราะห์ของ Edmonds เกี่ยวกับการกำจัดแบบเกาส์เซียน
Jeffε

1
rjlipton สำรวจพื้นที่เมื่อเร็ว ๆ นี้ & อ้างอิงวิทยานิพนธ์ Kannan Phd ในเรื่อง ส่วนสำคัญของการวิเคราะห์คือ wrt Smith ในรูปแบบปกติ
vzn

คำตอบ:


35

ฉันคิดว่าคำตอบคือซึ่งเราละเว้นปัจจัย (โพลี) ลอการิทึม ขอบเขตถูกนำเสนอใน "W. Eberly, M. Giesbrecht, P. Giorgi, A. Storjohann, G. Villard การแก้ระบบเชิงเส้นจำนวนเต็มกระจัดกระจาย Proc ISSAC'06, Genova, อิตาลี, ACM Press, 63-70, กรกฎาคม 2549 "แต่มันขึ้นอยู่กับกระดาษโดย Dixon:" คำตอบเชิงเส้นตรงของสมการเชิงเส้นโดยใช้การขยาย P-adic, John D. Dixon, NUMERISCHE MATHEMATIK, เล่มที่ 40, หมายเลข 1, 137-141 "O~(n3log(A+b))


ขอบคุณสำหรับการอ้างอิง! นี่ตอบคำถามที่สองของฉัน แต่ไม่ใช่คำถามแรกของฉัน
Jeffε

3
ถ้าคุณใช้การหมุนเหวี่ยงบิตของผลกลางในการกำจัดแบบเกาส์เซียน (GE) คือพหุนามไม่มีการระเบิดแบบเอ็กซ์โพเนนเชียล ฉันคิดว่านี่เป็นผลลัพธ์ของ Bareiss สำหรับความซับซ้อนของ GE นั้นมีอัลกอริทึมในหนังสือของ Gathen และ Gerhard "Modern Computer Algebra" สำหรับการคำนวณดีเทอร์มิแนนต์ของเมทริกซ์ซึ่งอิงจาก GE, โมดูลเลขคณิตและส่วนที่เหลือของจีน (วินาที 5.5) pp 101-105) ความซับซ้อนเป็น|) ฉันคิดว่าสามารถบันทึกปัจจัยได้โดยใช้เลขคณิตที่รวดเร็ว หากฉันไม่ผิดนี่เป็นข้อผูกมัดที่ user834 กล่าวถึง AO(n4log2A)n
อีเลียส

@ อีเลียสนิยามของบรรทัดฐานในนิพจน์นั้นคืออะไร? มันเป็นค่าสัมประสิทธิ์ที่ใหญ่ที่สุดในขนาดที่แน่นอน? มันเป็นขนาดบิตหรือไม่? นอกจากนี้ผลลัพธ์นี้สำหรับเมทริกซ์เหตุผลโดยพลการหรือไม่?
Juan Bermejo Vega

13

ฉันคิดว่าคำตอบสำหรับคำถามแรกของคุณก็คือเนื่องจากข้อโต้แย้งดังต่อไปนี้: บทความของเอ็ดมันด์ไม่ได้อธิบายถึงการกำจัดแบบเกาส์ แต่มันพิสูจน์ได้ว่าตัวเลขใด ๆ ที่คำนวณในขั้นตอนของอัลกอริทึมนั้นเป็นตัวกำหนดของ submatrix บางตัวของ A โดยหนังสือของ Schrijver ในทฤษฎีของ Linear และ Integer Programmingเรารู้ว่าหากการเข้ารหัสของ A ต้องการ b บิต (b ควรอยู่ในO~(n3log(A+b))O~(log(A)) ดังนั้นคำจำกัดความย่อยใด ๆ ของมันต้องการมากที่สุด 2b บิต (ทฤษฎีบท 3.2) เพื่อให้การกำจัดแบบเกาส์เป็นอัลกอริธึมเวลาพหุนามเราต้องใส่ใจกับการคำนวณหาร: เราต้องยกเลิกปัจจัยทั่วไปจากทุกเศษส่วนที่เราคำนวณในขั้นตอนกลางใด ๆ แล้วตัวเลขทั้งหมดมีการเข้ารหัสความยาวเชิงเส้นในความยาวการเข้ารหัสของ A.

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