Thuật toán Bellman-Ford

Một phần của tài liệu Bài giảng mạng máy tính và internet 2 (Trang 119 - 121)

Bài toán: cho đồ thị G với các đỉnh A,B,C,D có độ dài và đường đi như hình dưới, tìm đường đi ngắn nhất từ B đến D.

Bước 0: Ta đánh dấu đỉnh xuất phát B là 0, các đỉnh còn lại là vô cực.

Bước 1:

- Tại đỉnh A có đỉnh B đi vào có chi phí hiện tại (2) < chi phí trước (∞) => cập nhật lại chi phí đỉnh A

120 - Tại đỉnh C có đỉnh B đi vào có chi phí hiện tại (6) < chi phí trước (∞) => cập

nhật lại chi phí đỉnh C.

Bước 2:

- Tại đỉnh C có đỉnh A đi vào có chi phí hiện tại (5) < chi phí trước (6) => cập nhật lại chi phí đỉnh C.

- Tại đỉnh D có đỉnh C đi vào có chi phí hiện tại (8) < chi phí trước (∞) => cập nhật lại chi phí đỉnh D.

Bước 3: Tại đỉnh D có đỉnh C đi vào có chi phí hiện tại (7) < chi phí trước (8) => cập nhật lại chi phí đỉnh D.

121 Bước 4: kết quả giống bước 3 nên thuật toán dừng

Như vậy đường đi ngắn nhất từ B tới D là: B  A  C D

Ví dụ: cho sơ đồ mạng sau, mỗi nút là 1 Router, hãy tìm đường đi từ nút u đến các nút còn lại.

Gọi: D(v) là độ dài đường đi ngắn nhất từ một đỉnh nào đó tới v T(v) là đỉnh nằm phía trước v trên đường đi ngắn nhất Dùng thuật toán Bellman- Ford ta có bảng sau:

Lặp D(v), T(v) D(x), T(x) D(w), T(w) D(y), T(y) D(z), T(z)

Khởi tạo 2,u 1,u 5,u ∞,u ∞,u

K=1 2,u 1,u 4,x 2,x 10,w

K=2 2,u 1,u 3,y 2,x 8,w

K=3 2,u 1,u 3,y 2,x 4,y

K=4 2,u 1,u 3,y 2,x 4,y

Như vậy ta có bản định tuyến tại nút u như sau:

Network Next hop Cost

v v 2

x x 1

w x 4

y x 2

z x 4

Một phần của tài liệu Bài giảng mạng máy tính và internet 2 (Trang 119 - 121)