fbpx
วิกิพีเดีย

ขั้นตอนวิธีของแคนนอน

ขั้นตอนวิธีของแคนนอน (อังกฤษ: Cannon's algorithm) คือขั้นตอนวิธีสำหรับการคูณเมทริกซ์สองเมทริกซ์ที่มีมิติ ด้วยการทำงานแบบขนาน นำเสนอโดย ลิน เอลเลียต แคนนอน (Lynn Elliot Cannon) ในปีค.ศ.1969

อธิบายขั้นตอนวิธี

ให้ A และ B เป็นเมทริกซ์ที่ถูกดำเนินการ และ C เป็นเมทริกซ์ผลลัพธ์ แบ่งเมทริกซ์สองเมทริกซ์ A และ B ให้เป็นเมทริกซ์จตุรัสย่อยๆจำนวน p เมทริกซ์ โดยที่ p คือจำนวนกระบวนการ( process )ทั้งหมด โดยที่ทุกกระบวนการทำงานไปพร้อมๆกัน และสามารถส่งผ่านข้อมูลระหว่างกันได้ ส่งเมทริกซ์ย่อย   และ   ลงในกระบวนการ   เริ่มต้นเรียงตำแหน่งของเมทริกซ์ย่อย ให้แถวที่ i ของเมทริกซ์ A เลื่อนหมุนตามแนวนอนไปด้านซ้ายเป็นจำนวน i ช่อง และสดมภ์ที่ j ของเมทริกซ์ B เลื่อนหมุนตามแนวตั้งไปด้านบนเป็นจำนวน j ช่อง ( i และ j มีค่าตั้งแต่ 0 ถึง n-1 )

ตัวอย่างการเรียงเริ่มต้นของเมทริกซ์ขนาด 4 x 4
เมทริกซ์ A
  

เมทริกซ์ B
  

ให้แต่ละกระบวนการ   คำนวณหาผลคูณของ   และ   ในกระบวนการนั้นๆ แล้วนำไปบวกเพิ่มใน   จากนั้นเลื่อนเมทริกซ์ย่อยของ A ไปด้านซ้ายในแต่ละแถว และเมทริกซ์ย่อยของ B ไปด้านบนในแต่ละแถว ทำเช่นเดิมทั้งหมด   ครั้ง จะได้เมทริกซ์ผลลัพธ์คือ เมตริกซ์ C

ตัวอย่างการเลื่อนครั้งที่1ของเมทริกซ์ขนาด 4 x 4
เมทริกซ์ A
  

เมทริกซ์ B
  


รหัสเทียม

s=sqrt(p) //เรียงmatrixเริ่มต้น for i=0 to s-1 left-circular-shift each row of A by i up-circular-shift each column of B by i //ดำเนินการหาผลคูณ for k=0 to s-1 for i=0 to s-1 and j=0 to s-1 C(i,j) =C(i,j) + A(i,j)*B(i,j) left-circular-shift each row of A by 1 up-circular-shift each column of B by 1 

วิเคราะห์ขั้นตอนวิธี

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

อ้างอิง

  1. http://www.cs.washington.edu/education/courses/csep524/99wi/lectures/lecture1/sld026.htm
  2. http://www.phy.ornl.gov/csep/la/node6.html
  3. http://www.assembla.com/spaces/parallel_graph_algorithms

นตอนว, ของแคนนอน, งกฤษ, cannon, algorithm, อข, นตอนว, สำหร, บการค, ณเมทร, กซ, สองเมทร, กซ, displaystyle, times, วยการทำงานแบบขนาน, นำเสนอโดย, เอลเล, ยต, แคนนอน, lynn, elliot, cannon, ในป, 1969, เน, อหา, อธ, บายข, นตอนว, รห, สเท, ยม, เคราะห, นตอนว, างอ, งอธ, บา. khntxnwithikhxngaekhnnxn xngkvs Cannon s algorithm khuxkhntxnwithisahrbkarkhunemthrikssxngemthriksthimimiti n n displaystyle n times n dwykarthanganaebbkhnan naesnxody lin exleliyt aekhnnxn Lynn Elliot Cannon inpikh s 1969 enuxha 1 xthibaykhntxnwithi 2 rhsethiym 3 wiekhraahkhntxnwithi 4 xangxingxthibaykhntxnwithi aekikhih A aela B epnemthriksthithukdaeninkar aela C epnemthriksphllphth aebngemthrikssxngemthriks A aela B ihepnemthriksctursyxycanwn p emthriks odythi p khuxcanwnkrabwnkar process thnghmd odythithukkrabwnkarthanganipphrxmkn aelasamarthsngphankhxmulrahwangknid sngemthriksyxy A i j displaystyle A ij aela B i j displaystyle B ij lnginkrabwnkar P i j displaystyle P ij erimtneriyngtaaehnngkhxngemthriksyxy ihaethwthi i khxngemthriks A eluxnhmuntamaenwnxnipdansayepncanwn i chxng aelasdmphthi j khxngemthriks B eluxnhmuntamaenwtngipdanbnepncanwn j chxng i aela j mikhatngaet 0 thung n 1 twxyangkareriyngerimtnkhxngemthrikskhnad 4 x 4 emthriks A A 00 A 01 A 02 A 03 A 10 A 11 A 12 A 13 A 20 A 21 A 22 A 23 A 30 A 31 A 32 A 33 displaystyle begin bmatrix A 00 amp A 01 amp A 02 amp A 03 A 10 amp A 11 amp A 12 amp A 13 A 20 amp A 21 amp A 22 amp A 23 A 30 amp A 31 amp A 32 amp A 33 end bmatrix A 00 A 01 A 02 A 03 A 11 A 12 A 13 A 10 A 22 A 23 A 20 A 21 A 33 A 30 A 31 A 32 displaystyle begin bmatrix A 00 amp A 01 amp A 02 amp A 03 A 11 amp A 12 amp A 13 amp A 10 A 22 amp A 23 amp A 20 amp A 21 A 33 amp A 30 amp A 31 amp A 32 end bmatrix emthriks B B 00 B 01 B 02 B 03 B 10 B 11 B 12 B 13 B 20 B 21 B 22 B 23 B 30 B 31 B 32 B 33 displaystyle begin bmatrix B 00 amp B 01 amp B 02 amp B 03 B 10 amp B 11 amp B 12 amp B 13 B 20 amp B 21 amp B 22 amp B 23 B 30 amp B 31 amp B 32 amp B 33 end bmatrix B 00 B 11 B 22 B 33 B 10 B 21 B 32 B 03 B 20 B 31 B 02 B 13 B 30 B 01 B 12 B 23 displaystyle begin bmatrix B 00 amp B 11 amp B 22 amp B 33 B 10 amp B 21 amp B 32 amp B 03 B 20 amp B 31 amp B 02 amp B 13 B 30 amp B 01 amp B 12 amp B 23 end bmatrix ihaetlakrabwnkar P i j displaystyle P ij khanwnhaphlkhunkhxng A i j displaystyle A ij aela B i j displaystyle B ij inkrabwnkarnn aelwnaipbwkephimin C i j displaystyle C ij caknneluxnemthriksyxykhxng A ipdansayinaetlaaethw aelaemthriksyxykhxng B ipdanbninaetlaaethw thaechnedimthnghmd p displaystyle sqrt p khrng caidemthriksphllphthkhux emtriks Ctwxyangkareluxnkhrngthi1khxngemthrikskhnad 4 x 4 emthriks A A 00 A 01 A 02 A 03 A 11 A 12 A 13 A 10 A 22 A 23 A 20 A 21 A 33 A 30 A 31 A 32 displaystyle begin bmatrix A 00 amp A 01 amp A 02 amp A 03 A 11 amp A 12 amp A 13 amp A 10 A 22 amp A 23 amp A 20 amp A 21 A 33 amp A 30 amp A 31 amp A 32 end bmatrix A 01 A 02 A 03 A 00 A 12 A 13 A 10 A 11 A 23 A 20 A 21 A 22 A 30 A 31 A 32 A 33 displaystyle begin bmatrix A 01 amp A 02 amp A 03 amp A 00 A 12 amp A 13 amp A 10 amp A 11 A 23 amp A 20 amp A 21 amp A 22 A 30 amp A 31 amp A 32 amp A 33 end bmatrix emthriks B B 00 B 11 B 22 B 33 B 10 B 21 B 32 B 03 B 20 B 31 B 02 B 13 B 30 B 01 B 12 B 23 displaystyle begin bmatrix B 00 amp B 11 amp B 22 amp B 33 B 10 amp B 21 amp B 32 amp B 03 B 20 amp B 31 amp B 02 amp B 13 B 30 amp B 01 amp B 12 amp B 23 end bmatrix B 10 B 21 B 32 B 03 B 20 B 31 B 02 B 13 B 30 B 01 B 12 B 23 B 00 B 11 B 22 B 33 displaystyle begin bmatrix B 10 amp B 21 amp B 32 amp B 03 B 20 amp B 31 amp B 02 amp B 13 B 30 amp B 01 amp B 12 amp B 23 B 00 amp B 11 amp B 22 amp B 33 end bmatrix rhsethiym aekikhs sqrt p eriyngmatrixerimtn for i 0 to s 1 left circular shift each row of A by i up circular shift each column of B by i daeninkarhaphlkhun for k 0 to s 1 for i 0 to s 1 and j 0 to s 1 C i j C i j A i j B i j left circular shift each row of A by 1 up circular shift each column of B by 1wiekhraahkhntxnwithi aekikhthangdanewlakarthangan thakrabwnkarthukkrabwnkarthanganphrxmknaebbkhnan aelakrabwnkaraetlakrabwnkarsamarthsngemthriksyxyipyngkrabwnkarkhangekhiyngidephiynghnungkrabwnkartxkhrng caekidkarsngemthriksyxythnghmd 4 p 2 displaystyle 4 sqrt p 2 khrng aelakarkhunemthriksyxyaetlakhrngichkarkhuntwelkhthnghmd n p 3 displaystyle frac n sqrt p 3 caidewlakarthanganepn8 n 3 p displaystyle boldsymbol Theta frac n 3 p thangdanhnwykhwamcacaichhnwykhwamcakhngthiepn 8 n 2 displaystyle boldsymbol Theta n 2 xyangirktam khntxnwithinicaichidktxemuxcanwnkrabwnkarepntwelkhthiekidcakkarykkalngsxng emthriksthinamakhunknepnemthrikscturs aelakhnadkhxngemthriksharcanwnkrabwnkarlngtwxangxing aekikhhttp www cs washington edu education courses csep524 99wi lectures lecture1 sld026 htm http www phy ornl gov csep la node6 html http www assembla com spaces parallel graph algorithmsekhathungcak https th wikipedia org w index php title khntxnwithikhxngaekhnnxn amp oldid 4703417, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม