Page 176 - Computer Network
P. 176

21.2. ADAPTIVE ROUTING                                                             167



                          • D j เป็นระยะทางโดยประมาณจากของโนด j จากปลายทาง

                      เริ่มต้นให้ N c = 1, D 1 = 0, D j = ∞ โดยที่ j ̸= 1 โดยการทำงานเป็นสองขั้นตอนดังนี้


                      ขั้นตอนที่ 1 :(หาโนดที่อยู่ใกล้ที่สุด) โดยที่ j /∈ N c ดังนั้น


                                                          D i = min[D j , D i + c ij ]
                                                                j∈N

                            ถ้าค่าที่น้อยที่สุดมีค่าเท่ากับ D j ในรอบที่แล้ว ไม่ต้องแก้ไขโนดที่คำนวณผ่านมาแล้ว แต่หากพบโนด i ที่มีค่า
                            cost ที่ตํ่ากว่าให้แก้ไขโนดก่อนหน้าใหม่

                      ขั้นตอนที่ 2 :(ทำการปรับปรุงค่า.) หา i /∈ N c ให้


                                                              D i = min[D j ]
                                                                           book)
                                                                   i/∈N c

                            ให้ N c เป็น N c ∪ i ถ้า N c ครอบคลุมโนดทั้งหมดแล้วให้หยุด ถือว่าการทำงานสมบูรณ์แล้ว มิฉะนั้นให้ ไปที่
                            ขั้นตอนที่ 1

                      ตัวอย่าง 21.2 สมมติว่าเรามีเน็ตเวิร์คดังแสดงในรูปที่ 21.5 โดยในที่นี้สมมติให้โนด 1 ต้องการหาเส้นทางไปยังทุก

                      โนดในเน็ตเวิร์ค ดังนั้น เราจะได้ค่า N c = 1 เมื่อพิจารณาโนดที่อยู่ติดกับโนด 1 จะทำให้เราได้ D 12 = 1, D 14 = 1 และ
                      D 13 = D 15 = D 16 = ∞              (partial


                                                       2        2        3    1
                                               only             1
                                                 1


                                             1   1    1                   1   1    6
                                    KKU                4        2        5    10






                                          รูปที่ 21.5: เน็ตเวิร์คในการคำนวณโดยใช้อัลกอริทึม Dijkstra



                         เนื่องจาก D 12 = 1 และ D 14 = 1 เท่ากัน เราสามารถเลือกโนดใดโนดหนึ่งก็ได้ ในที่นี้เราเลือกโนด 2 จะทำให้เรา
                      ได้ N c = 1, 2 หลังจากนั้นหาโนดที่อยู่ติดกับโนด 2 ที่ยังไม่อยู่ในเซ็ตของ N c = 1 จะได้



                                            D 13 = min[D 13 , D 12 + d 23 ] = min[∞, 1 + 2] = 3

                                             D 14 = min[D 14 , D 12 + d 24 ] = min[1, 1 + 1] = 1
                         จะเห็นว่าโนด 4 มีค่าตํ่าสุด ดังนั้นเราจะได้ N c = 1, 2, 4 โดยเราสามารถสรุปขั้นตอนการทำงานได้ดังแสดงใน
                      ตารางที่ 21.8
   171   172   173   174   175   176   177   178   179   180   181