คำถามติดแท็ก matrices

4
การเพิ่มประสิทธิภาพอัตโนมัติของการคูณเวกเตอร์เมทริกซ์ 0-1
คำถาม: มีขั้นตอนหรือทฤษฎีที่สร้างขึ้นสำหรับการสร้างรหัสที่ใช้การคูณเมทริกซ์เวกเตอร์อย่างมีประสิทธิภาพหรือไม่เมื่อเมทริกซ์นั้นหนาแน่นและเต็มไปด้วยเลขศูนย์และอันเดียว ตามหลักการแล้วรหัสที่ได้รับการปรับปรุงจะใช้ประโยชน์จากข้อมูลที่คำนวณก่อนหน้านี้อย่างเป็นระบบเพื่อลดงานซ้ำซ้อน ในคำอื่น ๆ ฉันมีเมทริกซ์ และผมต้องการที่จะทำบาง precomputation ขึ้นอยู่กับที่จะทำให้การคำนวณเป็นที่มีประสิทธิภาพที่สุดเมื่อผมมารู้ทีหลังได้รับเวกเตอร์โวลต์MMMMMMMvMvMvvvv MMMเป็นเมทริกซ์ไบนารีหนาแน่นที่เป็นรูปสี่เหลี่ยมผืนผ้าที่รู้จักกันใน "เวลารวบรวม" ในขณะที่เป็นเวกเตอร์จริงที่ไม่รู้จักซึ่งรู้จักกันใน "เวลารัน" เท่านั้นvvv ตัวอย่างที่ 1: (หน้าต่างบานเลื่อน) ให้ฉันใช้ตัวอย่างเล็ก ๆ ง่ายๆเพื่ออธิบายประเด็นของฉัน พิจารณาเมทริกซ์ เผื่อว่าเราใช้เมทริกซ์นี้เพื่อเวกเตอร์จะได้รับW = Mv จากนั้นรายการของผลลัพธ์คือ \ start {align} w_1 & = v_1 + v_2 + v_3 + v_5 \\ w_2 & = v_2 + v_3 + v_4 + v_5 + …

2
แนวคิดทั่วไปในการคูณ Karatsuba, Gauss และ Strassen
ตัวตนที่ใช้ในอัลกอริทึมการคูณโดย Karatsuba (จำนวนเต็ม) เกาส์ (จำนวนเชิงซ้อน) Strassen (เมทริกซ์) ดูเหมือนจะเกี่ยวข้องกันมาก มีกรอบ / บทสรุปทั่วไปที่เป็นนามธรรมหรือไม่?

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

2
ค้นหาการสั่งซื้อที่ดีที่สุด
ฉันเจอปัญหานี้และกำลังดิ้นรนเพื่อหาวิธีแก้ไข ความคิดใด ๆ ที่จะได้รับการชื่นชมอย่างมาก! สมมติว่าเราได้รับเมทริกซ์ตัวอย่างเช่น{ - 1 , 0 , 1}n × k {−1,0,1}n × k\{-1, 0, 1\}^{n\ \times\ k} ⎡⎣⎢⎢⎢⎢⎢⎢1- 10- 11001- 101010000010- 11- 11- 1⎤⎦⎥⎥⎥⎥⎥⎥[1010−1−100010110−1−1−10111000−1]\begin{bmatrix} 1 & 0 & 1 & 0 & -1 \\ -1 & 0 & 0 & 0 & 1 \\ 0 & 1 …

2
การนับหมู่เกาะในเมทริกซ์บูลีน
ได้รับ n × mn×ม.n \times m บูลีนเมทริกซ์ XX\mathrm X, ปล่อย 000 รายการเป็นตัวแทนของทะเลและ 111รายการหมายถึงที่ดิน กำหนดเกาะเป็นแนวตั้งหรือแนวนอน (แต่ไม่ใช่แนวทแยงมุม) ที่อยู่ติดกัน111 รายการ. คำถามเดิมคือการนับจำนวนเกาะในเมทริกซ์ที่กำหนด ผู้เขียนอธิบายถึงวิธีแก้ปัญหาแบบเรียกซ้ำ (O (nm)O(nม.)\mathcal{O}(nm) หน่วยความจำ) แต่ฉันไม่ประสบความสำเร็จในการพยายามหาวิธีการสตรีม (จากซ้ายไปขวาและจากนั้นลงไปที่แถวถัดไป) โซลูชันที่นับเกาะแบบไดนามิกด้วย O (m)O(ม.)\mathcal{O}(m) หรือ O (n)O(n)\mathcal{O}(n) หรือ O (n+m)O(n+ม.)\mathcal{O}(n+m)หน่วยความจำ (ไม่มีข้อ จำกัด สำหรับความซับซ้อนของเวลา) เป็นไปได้ไหม ถ้าไม่ฉันจะพิสูจน์ได้อย่างไร ตัวอย่างของเอาต์พุตที่คาดไว้สำหรับอินพุตบางอย่างสำหรับcountฟังก์ชัน: c o u n t⎛⎝⎜010111010⎞⎠⎟= 1 ; c o u n …

2
ความซับซ้อนในการค้นหาสูงสุดแบบสองมิติ (MIT OCW 6.006)
ในวิดีโอการบรรยายสำหรับMIT OCW 6.006เวลา 43:30 ได้รับ m × nm×nm \times n มดลูก AAA กับ ม.mm คอลัมน์และ nnn แถวซึ่งเป็นอัลกอริธึมการค้นหาสูงสุดแบบสองมิติซึ่งค่าสูงสุดคือค่าใด ๆ ที่มากกว่าหรือเท่ากับเพื่อนบ้านที่อยู่ติดกันอธิบายว่า: หมายเหตุ: หากมีความสับสนในการอธิบายคอลัมน์ผ่าน nnnฉันขอโทษ แต่นี่เป็นวิธีที่วิดีโอการบรรยายอธิบายและฉันพยายามที่จะสอดคล้องกับวิดีโอ มันทำให้ฉันสับสนมาก เลือกคอลัมน์กลาง n / 2n/2n/2// มีความซับซ้อนΘ ( 1 )Θ(1)\Theta(1) ค้นหาค่าสูงสุดของคอลัมน์ n/2n/2n/2// มีความซับซ้อน Θ(m)Θ(m)\Theta(m) เพราะมี mmm แถวในคอลัมน์ ตรวจสอบขอบเขต แถวเพื่อนบ้านของค่าสูงสุดหากมีค่ามากกว่าจะพบจุดสูงสุดมิฉะนั้นจะเรียกเก็บเงินคืนT(n/2,m)T(n/2,m)T(n/2, m)// มีความซับซ้อนT(n/2,m)T(n/2,m)T(n/2,m) จากนั้นเพื่อประเมินการสอบถามซ้ำผู้สอนการบรรยายกล่าว T(1,m)=Θ(m)T(1,m)=Θ(m)T(1,m) = \Theta(m) เพราะมันพบค่าสูงสุด T(n,m)=Θ(1)+Θ(m)+T(n/2,m)(E1)(E1)T(n,m)=Θ(1)+Θ(m)+T(n/2,m) T(n,m) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.