อัลกอริทึมสำหรับเมทริกซ์จำนวนเต็มกระจัดกระจาย


12

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

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

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

คำตอบ:


5

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

101000

ลิงค์ที่เกี่ยวข้อง:
http://cs.ucsb.edu/~koc/docs/j21.pdf
http://dl.acm.org/citation.cfm?id=355767
http://dl.acm.org/citation cfm? id = 355765

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