อัลกอริธึมที่เร็วที่สุดในการคำนวณอันดับของเมทริกซ์สี่เหลี่ยมคืออะไร


15

ให้ matrix (สมมติว่า ) อัลกอริธึมที่เร็วที่สุดในการคำนวณอันดับและพื้นฐานของคอลัมน์คืออะไร?m×nmn

ฉันรู้ว่ามันสามารถแก้ไขได้ผ่านการตัดกันเชิงเส้น matroid ซึ่งหมายถึงอัลกอริทึมกำหนดเวลาและอัลกอริธึมแบบสุ่ม มีอัลกอริธึมกำหนดเวลาที่ลดปัญหาโดยตรง (หรือการกำจัดแบบเกาส์เซียน) เพื่อการคูณเมทริกซ์หรือไม่O(mn1.62)O(mnω1)O(mnω1)

คำตอบ:


9

คุณสามารถนำมาเป็น -matrix ลงในแบบฟอร์มระดับในเวลา O ( n ω + ε )สำหรับการใด ๆε > 0 ดูหนังสือ "ทฤษฎีความซับซ้อนเชิงพีชคณิต" โดยBürgisser, Clausen, Shokrollahi, มาตรา 16.52n×nO(nω+ϵ)ϵ>0

ตอนนี้คุณใช้ขั้นตอนนี้ครั้งที่คุณม. × n -matrix นี่เป็นอัลกอริธึมที่มีการดำเนินการทางคณิตศาสตร์O ( m n ω - 1 )m/nm×nO(mnω1)

หากคุณนำเมทริกซ์ขนาดมาเป็นรูปแบบ echelon มันจะมีเมทริกซ์ขนาดศูนย์ที่มีขนาดn × nหลังจากนั้น คุณใช้เวลาที่เหลือn × n -matrix เพิ่มn × n- block ใหม่ของเมทริกซ์อินพุตของคุณและนำสิ่งนี้ไปยังฟอร์ม echelon และอื่น ๆ2n×nn×nn×nn×n


1
คุณหมายถึงการแยกแถวเข้าไปในม. / nกลุ่ม? คุณจะรวมผลลัพธ์m / nเพื่อจัดอันดับได้อย่างไร ลองพิจารณาสองแถวในรูปแบบระดับจากกลุ่มต่าง ๆ ที่ทั้งสองมี 1 ในคอลัมน์แรกพวกเขาอาจมีอันดับ 2 ใช่ไหม? mm/nm/n
Ho Yee Cheung

มีขอบเขตที่ต่ำกว่าสำหรับสิ่งนี้หรือไม่? อันดับดังกล่าวมีความแข็งแกร่งในการคำนวณอย่างไร
โทมัส Ahle

3

เราสามารถคำนวณตำแหน่งของที่m×nเมทริกซ์ A ในO~(nnz(A)+rω)เวลาที่nnz(A)คือจำนวนของที่ไม่ใช่ศูนย์รายการในและRคือยศ สิ่งนี้ตามมาจากทฤษฎีบท 1.1 ใน Cheung และ อัล [CKL'13]และค้นหาไบนารีมากกว่าR นี่คือเร็วกว่าอัลกอริทึมO ( m n ω - 1 ) ที่กล่าวถึงข้างต้นArArO(mnω1)


2
ฉันเดาว่าคุณหมายถึง "เร็วกว่าอัลกอริทึม " (ฉันไม่สามารถแก้ไขคำตอบด้วยตัวเองเนื่องจากการแก้ไขมีขนาดเล็กเกินไป)O(mnω1)
smapers

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