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

