Tải bản đầy đủ (.pdf) (29 trang)

Tiểu Luận Các Thuật Toán Và Phương Thức Định Tuyến Trong Mạng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.13 MB, 29 trang )

TRUONG DAI HOC BACH KHOA HA NOI

VIEN ĐIỆN TU VIEN THONG
serena

COD, 8q

2

oeee+

BÀI TẬP LỚN
MÔN HỌC: TÔ CHỨC VÀ QUY HOẠCH MẠNG VIỄN THƠNG
Đề tài: “Các Thuật Tốn Và Phương Thức Định Tuyến Trong Mạng ”
Giảng viên hướng dẫn: Nguyễn Văn Thắng
Nhóm sinh viên thực hiện:
Họ và tên

elles

HA NOI 4/2012


TRUONG DAI HOC BACH KHOA HA NOI

VIEN ĐIỆN TU VIEN THONG
serena

COD, 8q

2



oeee+

BÀI TẬP LỚN
MÔN HỌC: TÔ CHỨC VÀ QUY HOẠCH MẠNG VIỄN THƠNG
Đề tài: “Các Thuật Tốn Và Phương Thức Định Tuyến Trong Mạng ”
Giảng viên hướng dẫn: Nguyễn Văn Thắng
Nhóm sinh viên thực hiện:
Họ và tên

elles

HA NOI 4/2012


Muc Luc
T, MG AbitssccscssssensssnensessnnnmannrsennenenncasancsmmanmmmmmmuamenS
I.

Nội dung...

sus

1.

Giới thiệu. về định tuyến:

2.

Các khái niệm trong lý thuyết graph:.............................-------522cccccvveeeeerrrrrre 5


3.

Phân loại định tuyến:
3.1.

Định tuyến tĩnh:

3.2.

Định tuyến ngẫu nhién (random routing):

3.2.1.

Định tuyến ngẫu nhiên lan tràn gói (flooding):..........................----------

3.2.2.

Dinh tuyến ngẫu nhiên (random walk):.

3.2.3.

Dinh tuyến ngẫu nhién (hot potato)

3.3.

3.3.1.

Dinh tuyén d6ng (minimum spanning tree):..................--..........-.------L3


3.3.2.

Định tuyén d6ng (shortest path tree):

4.

5.

Dinh tuyén dng (dynamic routing): .

Các thuật toán dùng dé định tuyén: .......
4.1.

Thuậttoán Prim:.........:....‹..:....c.icoccocccoicccLcGGEnCn2020000.1022
6016.060010. sả.

4.2.

Thuậttoán Kruskal:.......................ocooiccocccbc cGGSnn22200001120. 6016.060010. xã.

4.3.

Thuật toán Dijkstra:.......

4.4.

Thuật toán Bellman Ford:

Một số giao thức định tuyến động hiện nay:.
5.1.


Giao

5.2.

OSPF

5.3.

EIGRP (Enhanced Interior Gateway Routing Protocol):

Ni2021502isg;p02:L

thức định tuyến RIP (Routing Information Protocol):
(Open Shortest Path First):

"Am... nh...
TV.

9800086

sẻ

............. 7

-Tài Hệu tham khảo............................c5.c
c6 bnnS0 0000202282 1066000610 0050 28


I.


Mé dau

Một trong những hoạt động của mạng nói chung là việc truyền dữ liệu từ nguồn tới
đích. Định tuyến là một chức năng không thê tách rời của mạng

khi truyền dữ liệuh từ nguồn

tới đích và có ý nghĩa đặc biệt quan trọng trong việc thiết kế và tối ưu mạng.

Cấu trúc mạng,

giải pháp công nghệ và phương pháp định tuyến là 3 vấn đề liên quan mật thiết với nhau và
quyết định chất lượng hoạt động của mạng. Chính vì vậy, bài tốn định tuyến cần được quan
tâm nghiên cứu đề nhằm tối ưu hóa hiệu suất sử dụng tài nguyên mạng.
Trên thế giới đã có nhiều nghiên cứu về các phương pháp định tuyến, với mục đích
chủ yếu là tìm ra những phương pháp định tuyến thích hợp dé áp dụng vào thực tế mạng
lưới. Trong thời gian gần đây, xu hướng định tuyến theo “giá” trên mạng đã trở thành một
chủ đề nghiên cứu quan trọng. Thơng thường, lợi ích mang lại trên mạng được tối đa bằng
việc tối ưu hóa các hàm mục tiêu. Tùy thuộc vào cấu trúc và các đường truyền trên mạng
mà các hàm mục tiêu và ràng buộc đi theo sẽ khác nhau.


H.

Nội dung

1. — Giới thiệu về đỉnh tuyến:
Định tuyến là q trình tìm đường đi đề truyền tải thơng tin trong liên mạng từ nguồn
đến đích. Nó là một chức năng được thực hiện ở tầng mạng. Chức năng này cho phép router

đánh giá các đường đi sẵn có tới đích. Để đánh giá đường đi, định tuyến sử dụng các thông
tin về Topology của mạng. Các thông tin nay có thé do người quản trị thiết lập. Q trình
định tuyến cần thỏa mãn các yêu cầu cho trước bao gồm: đường đi ngắn nhất hoặc có băng

thơng rộng nhất. Đường đi thường phải tối ưu theo một trong hai tiêu chí.các gói tin có thể
được gửi đi theo đường này. Nhưng cũng có thể chúng được gửi đi đồng thời trên nhiều
đường . Việc định tuyến được sử dụng cho nhiều loại mang: mang viễn thông, liên mạng,

internet, mạng giao thơng.

Hình 1: Tìm đường đi tiếp theo

Định tuyến có thể được chia ra làm 3 phương pháp định tuyến: định tuyến tĩnh, định
tuyến ngẫu nhiên và định tuyến động. Trong mơi trường mạng thường xun có sự thay đổi
ngẫu nhiên nên định tuyến tĩnh chỉ có ý nghĩa ở các gateway và các mạng nhỏ.

Trong định tuyến động, có hai phương thức định tuyến: tìm đường theo đường đi
ngắn nhất và tìm đường đi tối ưu.


Van dé tìm đường đi ngắn nhất được đặt ra: ta có thể tìm đường đi ngắn nhất từ một

nút đến tắt cả các nút khác hoặc tìm đường đi ngắn nhất từ một nút đến một nút cụ thể. Cách
giải quyết này được sử dụng trong giao thức OSPF(Open Shortest Path First) v6i việc sử
dụng các thuật toán Dijikstra, Bellman-Ford.
Ngồi ra ta có thé dé các nút mạng tự động tìm ra đường đi tối ưu. Việc tim ra tuyến
đi được thực hiện một cách phân tán tại các nút chứ khơng do một nút trung tâm tính tốn.

Các nút chủ động trao đổi thông tin liên quan đến cấu hình mạng với nhau. Từ các thơng tin
thu thập được mỗi nút tự tìm ra đường đi tối ưu đến các nút khác rồi lập ra bảng định tuyến

đưa ra quyết định định tuyến. Bảng định tuyến thường xuyên được cập nhật mỗi khi có thay
đổi cấu hình mạng. Thuật toán được sử dụng là Prime và Kruskal nhằm tạo ra cây bắc cầu

tối thiểu.
2.

Các khái niệm trong lý thuyết graph:

Phan này giới thiệu các thuật ngữ và các khái niệm cơ bản nhằm mô tả các mang, graph,
và các thuộc tính của nó. Lý thuyết graph là một mơn học xuất hiện từ lâu, nhưng lý thuyết này

có một số thuật ngữ được chấp nhận khác nhau dùng cho các khái niệm cơ bản. Vì thế có thể sử
dụng một số thuật ngữ khác nhau đề lập mô hình graph cho mạng. Các thuật ngữ được trình bày
dưới đây này là các thuật ngữ đã được công nhận và được sử dụng thường xuyên chương này.
Một graph Ở, được định nghiã bởi tập hợp các đỉnh V và tập hợp các cạnh E. Các đỉnh
thường được gọi là các nút và chúng biểu diễn vị trí (ví dụ một điểm chứa lưu lượng hoặc một

khu vực chứa thiết bị truyền thông). Các cạnh được gọi là các liên kết và chúng biểu diễn
phương tiện truyền thơng. Graph có thề được biểu diễn như sau:

G=(V, E)


Hình 2 là một ví dụ của một graph.

Hình 2: Một graph đơn giản

Mặc dù theo lý thuyết, V có thể là tập hợp rỗng hoặc không xác định, nhưng thông
thường V là tập hợp xác định khác rỗng, nghĩa là có thể biểu diễn
V=ft; | i=1,2,......N}

Trong đó N là số lượng nút. Tương tự E được biểu diễn:
E={e;| i=1,2,......M}

M6t lién két, e/, tương ứng một kết nối giữa một cặp nút. Có thể biểu diễn một liên kết ¿j
giữa nút ¡ và k bởi

6/=(„vị)
hoặc bởi

e=(ik)
Một liên kết gọi là đi tới một nút nếu nút đó là một trong hai điểm cuối của liên kết. Nút
¡ và k gọi là kề nhau nếu tồn tại một liên kết (, k) giữa chúng. Những nút như vậy được xem là

các nút láng giềng. Bậc của nút là số lượng liên kết đi tới nút hay là số lượng nút láng giềng. Hai
khái niệm trên là tương đương nhau trong các graph thơng thường. Tuy nhiên với các graph có

nhiều hơn một liên kết giữa cùng một cặp nút, thì hai khái niệm trên là khơng tương đương.
Trong trường hợp đó, bậc của một nút được định nghĩa là số lượng liên kết đi tới nút đó.

Một liên kết có thể có hai hướng. Khi đó thứ tự của các nút là khơng có ý nghiă. Ngược
lại thứ tự các nút có ý nghĩa. Trong trường hợp thứ tự các nút có ý nghĩa, một liên kết có thể
được xem như là một cung và được định nghĩa
4/=Iw;v.]


hoặc đơn giản hơn
aj=[i,k]
k được gọi là cận kề hướng ra đối với ¡ nếu một cung [¿k] tồn tại và bậc hướng ra chai
là số lượng các cung như vậy. Khái niệm cận kề hướng vào và bậc cận kề hướng vào cũng
được định nghĩa tương tự.

Một graph gọi là một mạng nếu các liên kết và các nút có mặt trong liên kết có các thuộc

tinh (chang hạn như độ dài, dung lượng, loại...). Các mạng được sử dụng đẻ mơ hình các vấn đề
cần quan tâm trong truyền thơng, các thuộc tính riêng biệt của nút và liên kết thì liên quan đến
các vấn đề cụ thể trong truyền thông.
Sự khác nhau giữa các liên kết và các cung là rất quan trọng cả về việc lập mơ hình cho
mạng lẫn q trình hoạt động bên trong của các thuật tốn, vì vậy sự khác nhau cần phải ln
được phân biệt rõ ràng. Về mặt hình học các liên kết là các đường thẳng kết nói các cặp nút cịn
các cung là các đường thang có mũi tên ở một đầu, biêu diễn chiều của cung.
Một graph có các liên kết gọi là graph vơ hướng, tuy nhiên một graph có các cung gọi là

graph hữu hướng. Một graph hữu hướng có thể có cả các liên kết vô hướng. Thông thường ,
các graph được giả sử là vơ hướng, hoặc sự phân biệt đó là khơng có ý nghĩa.

Có thể có khả năng xảy ra hiện tượng xuất hiện nhiều hơn một liên kết giữa cùng một cặp
nút (điều này tương ứng với việc có nhiều kênh thông tin giữa hai chuyển mạch). Những liên kết
như vậy được gọi là các liên kết song song. Một graph có liên kết song song gọi là một
multigraph.

Cũng có khả năng xuất hiện các liên kết giữa một nút nào đó và chính nút đó. Những liên
kết đó được gọi là các self loop. Chúng ít khi xuất hiện và thường xuất hiện do việc xem hai nút
như là một nút trong q trình lập mơ hình graph cho một mạng hoặc phát sinh trong quá trình
thực hiện một thuật tốn có việc hợp nhất các nút. Hình 4.2 minh hoạ một graph có các liên kết

song song và các self loop. Một graph khơng có các liên kết song song hoặc các self loop gọi là

một graph đơn giản. Việc biểu diễn và vận dụng các graph đơn giản là tương đối dễ dàng, vì
vậy giả thiết rằng các graph được xem xét là các graph đơn giản. Nếu có sự khác biệt với giả

thiết này, chúng sẽ được chỉ ra.



3.

Phân loại định tuyến:

inh tuyến tĩnh
Flooding

Định tuyển

Định tuyến ngẫu nhiên

Randam walk
Hot potato

Định tuyển đơng

Minimum Spanning Trea
Shortest Path Tree

Hình 3: Phân loại định tuyến

3.1.

Định tuyến tĩnh:

Đối với định tuyến tĩnh các thông tin về đường đi phải do người quản trị mạng cập
nhật cho các router. Khi cầu trúc mạng có bất kỳ thay đổi nào thì chính người quản trị mạng
phải xóa hoặc thêm các thơng tin về đường đi cho các router. Những loại này gọi là đường


đi cố định. Đối với hệ thống mạng nhỏ, ít có thay đổi thì cơng việc này đỡ mất cơng hơn.
Chính vì định tuyến đòi hỏi người quản trị mạng phải cấu hình mọi thơng tin về đường đi
cho các router nên nó khơng có được tính linh hoạt như định tuyến động. Trong những hệ
thống mạng lớn, định tuyến tĩnh thường được sử dụng kết hợp với giao thức định tuyến
động cho một số mục đích đặc biệt.

Hoạt động của định tuyến tĩnh có thê chia làm 3 bước như sau:
-

Đầu tiên, người quản trị mạng cấu hình các đường có định cho các router

=

Router cài đặt các đường đi này vào bảng định tuyến

-

Gói dữ liệu được định tuyến theo các đường đi cô định này


Sau đây là demo cấu hình của mạng định tuyến tĩnh

raat:

eB

2621.

SB RUA


12161),

721612

2421 Router B

AS

'30/0

11111

=) So/l

2621

192.168.1.]

Hình

4: Demo câu hình mạng định tuyên

3.2.

Dinh tuyến ngẫu nhiên (random routing):

3.2.1.

Định tuyến ngẫu nhiên lan tràn gói


(flooding):

Một dạng mạnh hơn của định tuyến riêng biệt đó là lan tràn gói. Trong phương thức
này, mỗi gói đi đến router sẽ được gửi đi trên tất cả các đường ra trừ đường mà nó đi đến.
Phương thức lan tràn gói này hiển nhiên là tạo ra rất nhiều gói sao chép (duplicate). Trên

thực tế, số gói này là không xác định trừ khi thực hiện một số biện pháp đẻ hạn chế quá
trình này. Một trong những biện pháp đó là sử dụng bộ đếm bước nhảy trong phần tiêu đề
của mỗi gói. Giá trị này sẽ bị giảm đi một tại mỗi bước nhảy. Gói sẽ bị loại bỏ khi bộ đếm

đạt giá trị không. Về mặt lý tưởng, bộ đếm bước nhảy sẽ có giá trị ban đầu tương ứng với độ
dài từ nguồn đến đích. Nếu như người gửi khơng biết độ dài của đường đi, nó có thể đặt giá
trị ban đầu của bộ đếm cho trường hợp xấu nhất. Khi đó giá trị ban đầu đó sẽ được đặt bằng
đường kính của mạng con. Một kỹ thuật khác để ngăn sự lan tràn gói là thêm số thứ tự vào


tiêu đề các gói. Mỗi router sẽ cần có một danh sach theo nút nguồn đề chỉ ra những số thứ tự

từ nguồn đó đã được xem xét. Đề tránh danh sách phát triên không giới hạn, mỗi danh sách
sẽ tăng lên bởi số đếm k để chỉ ra rằng tắt cả các số thứ tự đến k đã được xem. Khi một gói

đi tới, rất đễ dàng có thể kiểm tra được gói là bản sao hay khơng. Nếu đúng gói là bản sao
thì gói này sẽ bị loại bỏ. Tức là khi nhận được mỗi gói tin,nút mạng sẽ gủi đi tất cả các

nút kề cận,trừ nút đã gửi gói cho nó.Lan tràn gói có ưu điểm là lan tràn gói ln ln
chọn đường ngắn nhất. Có được ưu điểm này là do về phương diện lý thuyết nó chọn tất

cá các đường có thể do đó nó sẽ chọn được đường ngắn nhất. Tuy nhiên nhược điểm
của nó là số lượng gói gửi trong mạng quá nhiều. Sử dụng lan tràn gói trong hầu hết các

ứng dụng là khơng thực tế. Tuy vậy lan tràn gói có thể sử dụng trong những ứng dụng sau.
Trong ứng dụng quân sự, mạng sử dụng phương thức lan tràn gói để giữ cho mạng luôn

luôn hoạt động tốt khi đối mặt với qn địch.

4

Hình 5: Định tuyến lan tràn gói

Trong những ứng dụng cơ sở dữ liệu phân bó, đơi khi cần thiết phải cập nhật tất cả
cơ sở dữ liệu. Trong trường hợp đó sử dụng lan tràn gói là cần thiết. Ví dụ sự dụng lan tràn
gói để gửi cập nhật bản định tuyến bởi vì cập nhật khơng dựa trên độ chính xác của bảng

định tuyến. 40
Phương pháp lan tràn gói có thể được dùng như là đơn vị để so sánh phương thức

định tuyến khác. Lan tràn gói ln ln chọn đường ngắn nhất. Điều đó dẫn đến khơng có
giải thuật nào có thể tìm được độ trễ ngắn hơn. Một biến đổi của phương pháp lan tràn gói
là lan tràn gói có chọn lọc. Trong giải thuật này, router chỉ gửi gói đi ra trên các đường mà

đi theo hướng đích. Điều đó có nghĩa là khơng gửi gói đến những đường mà rõ ràng nằm
trên hướng sai

10


3.2.2.

Dinh tuyến ngẫu nhiên


(random walk):

Trong phương pháp định tuyến nay, router sẽ chuyển gói đi đến trên một đường đầu
ra được chọn một cách ngẫu nhiên. Mục tiêu của phương pháp này là các gói lang thang
trong mạng cuối cùng cũng đến đích. Với phương pháp này giúp cho quá trình cân bằng tải
giữa các đường. Cũng giống như phương pháp định tuyến lan tràn gói, phương pháp này
ln đảm bảo là gói cuối cùng sẽ đến đích. So với phương pháp trước thì sự nhân rộng gói
trong mạng sẽ ít hơn. Nhược điểm của phương pháp này là đường từ nguồn đến đích có thể
dài hơn đường ngắn nhất. Do đó trễ đường truyền sẽ dài hơn sẽ trễ ngắn nhất thực sự tồn tại
trong mạng.
-

Gói tin được gửi đến mỗi đầu ra với một xác xuất nào đó

=

So với flooding,số lượng gói truyền đi nhỏ hơn

a

Đường đi ngắn nhất có thể khơng nằm trong số đường được chọn

®——@®
S

A

——@®——@®

\N


|

1p

D

|
B
Hình 6: Định tuyến ramdom walk

3.2.3. Định tuyến ngẫu nhiên (hot potato):
Định tuyến riêng biệt là loại định tuyến mà router quyết định định tuyến đi chỉ dựa
vào thông tin bản thân nó lượm lặt được.
Đây là một thuật tốn tương thích riêng biệt (solated adaptive algorithm). Khi một
gói đến một nút, router sẽ cố gắng chuyển gói đó đi càng nhanh càng tốt bằng cách cho nó

vào hàng chờ đầu ra ngắn nhất. Nói cách khác, khi có gói đi đến router sẽ tính tốn số gói
được nằm chờ để truyền tren mỗi đường đầu ra. Sau đó nó sẽ gán gói mới vào cuối hang

chờ ngắn nhất mà khơng quan tâm đến đường đó sẽ đi đâu. Hình 7 biễu diễn các hàng chờ
11


dau ra bén trong m6t router tại một thời điểm nào đó. Có ba hàng chờ đầu ra tương ứng với

03 đường ra. Các gói đang xếp hàng trên mỗi đường để chờ được truyền đi. Trong ví dụ

ở đây, hàng chờ đến F là hàng chờ ngắn nhất với chỉ có một gói nằm trên hàng chờ này.
Giải thuật khoai tây nóng do đó sẽ đặt gói mới đến vào hàng chờ này.


Tơi A
mm

>

1

ST

HHH
H+
——>
OOH
_—*
LFI|—.._

Tải E
T4

Hình 7: Định tuyến ngẫu nhiên

Có thể biến đổi ý tưởng này một chút bằng cách kết hợp định tuyến tĩnh với giải
thuật khoai tây nóng. Khi gói đi đến, router sẽ tính đến cả những trọng số tĩnh của đường
dây và độ dài hàng chờ. Một khả năng là sử dụng lựa chọn tĩnh tốt nhất trừ khi độ dài hàng
chờ lớn hơn một ngưỡng nào đó. Một khả năng khác là sử dụng độ dài hàng chờ ngắn nhất
trừ trọng số tĩnh của nó là q thấp. Cịn một cách khác là sắp xếp các đường theo trọng số
tĩnh của nó và sau đó lại sắp xếp theo độ dài hàng chờ của nó. Sau đó sẽ chọn đường có
tong vị trí sắp xếp là nhó nhất. Dù giải thuật nào được chọn đi chăng nữa cũng có đặc tính
là khi ít tải thì đường có trọng số cao nhất sẽ được chọn, nhưng sẽ làm cho hàng chờ cho

đường này tăng lên. Sau đó một số lưu lượng sẽ được chuyền sang đường ít tải hơn.
3.3...

Định tuyến động (dynamic routing):

Là q trình mà trong đó giao thức định tuyến tìm ra đường tốt nhất trong mạng và

duy trì chúng. Có rất nhiều cách để xây dựng lên bảng định tuyến một cách động. Nhưng tat
cả đều thực hiện theo quy tắc sau: nó sẽ khám tất cả các tuyến đường đến đích có thể và
thực hiện một số quy tắc được định trước dé xác định ra đường tốt nhất đến đích. Ưu điểm

của dynamic routing là đơn giản trong việc cấu hình và tự động tìm ra những tuyến đường
thay thế nếu như mạng thay đổi. Nhược điểm của dynamic routing là yêu cầu xử lý của CPU
của router cao hơn là static route. Tiêu tốn một phan băng thông trên mạng đề xây dựng lên

bảng định tuyến.
12


3.3.1. Định tuyến động

(minimum spanning tree):

Có thê sử dụng quá trình trình duyệt đê tìm một cây bắc cầu nếu có một cây bắc cầu
tồn tại. Cây tìm được thường là cây vơ hướng. Việc tìm cây "tốt nhất" thường rất quan trọng
. Chính vì vậy, chúng ta có thê gắn một "độ dài" cho mỗi cạnh trong graph và đặt ra u cầu

tìm một cây có độ dài tối thiểu. Thực tế, "độ dài" có thê là khoảng cách, giá, hoặc là một đại
lượng đánh giá độ trễ hoặc độ tin cậy. Một cây có tổng giá là tối thiểu được gọi là cây bắc
cầu tối thiểu. Nói chung, nếu graph là một graph không liên thông, chúng ta có thẻ tìm được


một rừng bắc cầu tối thiêu. Một rừng bắc cầu tối thiểu là một tập hợp các cạnh nói đến
graph một cách tối đa có tổng độ dài là tối thiểu. Bài tốn này có thể được xem như là việc
lựa chọn một graph con của graph gốc chứa tất cả các nút của graph gốc và các cạnh được
lựa chọn. Đầu tiên, tạo một graph cé n nút,

thành phần và khơng có cạnh nào cả. Mỗi lần,

chúng ta chọn một cạnh để thêm vào graph này hai thành phần liên thơng trước đó chưa

được kết nối được liên kết lại với nhau tạo ra một thành phần liên thông mới (chứ không
chọn các cạnh thêm vào một thành phần liên thơng trước đó và tạo ra một vịng). Vì vậy, tại

bất kỳ giai đoạn nào của thuật tốn, quan hệ: =c+e .
ln được duy trì, ở đây n là số lượng nút trong graph, e là số cạnh được lựa chọn

tính cho tới thời điểm xét và c là số lượng thành phần trong graph tính cho tới thời điểm xét.
Ở cuối thuật toán, e bằng ø trừ đi số thành phần trong graph gốc; nếu graph gốc là liên
thơng, chúng ta sẽ tìm được một cây có (zø-1) cạnh. Q trình duyệt cây sẽ tìm ra một rừng
bắc cầu. Tuy nhiên, chúng ta thường không tìm được cây bắc cầu có tơng độ dài tối thiêu.
Để tìm ra cây bắc cầu tối thiểu người ta sử dụng 2 thuật toán: prime và kruskal.
3.3.2. Dinh tuyén d6ng

(shortest path tree):

Bài tốn tìm các đường đi ngắn nhất là một bài tốn khá quan trọng trong q trình thiết
kế và phân tích mạng. Hầu hết các bài tốn định tuyến có thể giải quyết như giải quyết bài tốn
tìm đường đi ngắn nhất khi một "độ dài " thích hợp được gắn vào mỗi cạnh (hoặc cung)

trong


mạng. Trong khi các thuật tốn thiết kế thì có gắng tìm kiếm cách tạo ra các mạng thoả mãn tiêu

chuẩn độ dài đường đi.
13


Bài toán đơn giản nhất của loại toán này là tìm đường đi ngắn nhất giữa hai nút cho
trước. Loại bài tốn này có thể là bài tốn tìm đường đi ngắn nhất từ một nút tới tất cả các nút
cịn lại, tương đương bài tốn tìm đường đi ngắn nhất từ tất cả các điểm đến một điểm. Đôi khi

địi hỏi phải tìm đường đi ngắn nhất giữa tất cả các cặp nút. Các đường đi đơi khi có những giới
hạn nhất định (chẳng hạn như giới hạn số lượng các cạnh trong đường đi).

Tiếp theo, chúng ta xét các graph hữu hướng và giả sử rằng đã biết độ dài của một cung

giữa mỗi cặp nút ¿ và j 1a /j/. Các độ dài này không cần phải đối xứng. Khi một cung khơng tồn
tại thì độ dài /j/ được giả sử là rất lớn (chẳng hạn lớn gấp ø lần độ dài cung lớn nhất trong mạng).
Chú ý rằng có thể áp dụng q trình này cho các mạng vô hướng bằng cách thay mỗi cạnh bằng

hai cung có cùng độ dài. Ban đầu giả sử rằng /j/ là dương hồn tồn; sau đó giả thiết này có thê
được thay đổi.
Loại định tuyến này được dùng thơng dụng với các thuật toán được dùng: dijkstra,
bellman ford.

4.

Các thuật tốn dùng để định tuyến:

4.1.


Thuat toan Prim:

Thuật tốn này có những ưu điểm riêng biệt là khi mạng dày đặc,trong việc xem xét một

bài tốn tìm kiếm các cây bắc cầu tối thiểu. Hơn nữa các thuật toán phức tạp hơn được xây
dựng dựa vào các thuật toán cây bắc cầu tối thiểu,và một số thuật toán này hoạt động tốt hơn với
các cấu trúc dữ liệu được sử dụng cho thuật toán sau đây,thuật toán này được phát biểu bởi Prim.

Các thuật toán này phù hợp với các quad trình thực hiện song song bởi vì các quá trình đó được
thực hiện bằng các tốn tử vector. Thuật tốn được miêu tả như sau:

=

B1: Chọn một đỉnh s bất kỳ của G cho vào cây T. Khi đó cây T là một cây chỉ có

một đỉnh và chưa có cạnh nảo.

-

B2: Nếu T đã gồm tắt cả các đỉnh của G thì T là cây bao trùm cần tìm. Kết thúc.

-

B3: Nếu G cịn có các đỉnh khơng thuộc T ,vì G liên thơng nên có các cạnh nối

một đỉnh trong T với một đỉnh ngoài T, chọn một cạnh có trọng số nhỏ nhất trong số đó cho vào
T.
-


B4: Quay lại B2.

14


Vi du:

Hinh minh hoa

U

Canh (u,v)

V\U

Mơ tả

Đây là đồ thị có trọng

{A,B.C, số ban đầu. Các số là
D,E,F,G} các trọng số của các
cạnh.

Chọn

một

cách

tùy ý


đỉnh D là đỉnh bắt đầu.
Các

dinh A, B, Eva F déu

(D,A) =5V
được
nối
trực
tiếp
(DB) = 9 {AB,CE
tớiD bằng cạnh của đồ
(D,E) = 15\,F,G}
thi. A la
đỉnh
(DF) =6
gầnDnhất

nên

ta

chọn
A là đỉnh thứ hai
của

cây




thêm

cạnh ADvào cây.

Đỉnh

được

chọn

tiếp

theo

đỉnh
(DB) = 9
(DE) = 15{B,C,E,F, gần D hoặc Anhit. B có
khoảng cách tớiD bằng
(Ð,P =6V.G}
9 và tớiA bằng 7, E có
(A,B)=7
khoảng

hiện

cách

tai


tới

bằng

cây

15,
15


vaF co

bằng

khoảng

cách

6.Flà đỉnh gần

cây hiện tại nhất nên
chọn đỉnh
F và canhDF.

(D,B)

=

9


(DE) = 15
{A,D,F}

(A,B) =7V
(FRE)

=

{B,C,E,G

Thuật

tốn

tương

tự

trước.

Chọn

như

tục
bước

đỉnhB có

khoảng cách tới A bằng


8

1:

(F,G) = 11


(B,C)

tiếp

=

bước

này

giữaC,E,

8

ta

chọn

vàG.Ccó

khoảng cách tớiB bằng


(B,E) =7V
(D,B)

=

9

chu

trình {C,E,G}

8,Ecó

khoảng

tớiB bằng

7,

cách
và Gcó

(D,E)

=

15

khoảng cách tới F bằng


(FRE)

=

8

11.Elà đỉnh gần nhất,

(F,G) = 11

nên

chọn

đỉnh Evà

cạnh BE.

(B,C)

=

8

(D,B)

=

9


chu

trình

(D,E)
chu

=

15
trinh

(6)

=5V

(E.G)

=

9

(FE)

=

8




bước

này

ta

chọn

giữa C vàG. C có

{C,G}

khoảng cách tới E bằng
5, và G có khoảng cách

tớiE bằng 9. ChọnC và

cạnh EC.

16


chu

trình

(F,G) = 11

(B,C)


=

8

chu

trinh

(D,B)

=

9

Đỉnh G là đỉnh cịn lại

chu

trình

duy nhất. Nó có khoảng

(DE) = 15
chu

trình

(E,G) =9V

{G}


cách tới Fbằng II, và
khoảng cách tới E bằng
9. E 6 gần hơn nên chọn

(F.E)

=

8

chu

trình

đỉnh Gvà cạnh EG.

(F,G) = 11

(B,C)

=

chu

trình

(D,B)

=


9

Hiện giờ tất cả các đỉnh

chu

trình

đã nằm trong cây và cây

(D,E) = 15

bao trùm nhỏ nhất được

chu

trình



(FE)

=

Tổng trọng số của cây

chu

trình


(F,G)

=

8

8

màu

xanh



cây.

là 39.

II

chu trinh

4.2.

Thuật tốn Kruskal:

BI: khởi tạo T lúc đầu là một đồ thị rỗng.

B2: nếu T đã gồm đúng n-1 cạnh của G thì t là cây bao trùm cần tìm. Kết thúc.

17


=

B3: nếu T còn chưa đủ n-1 canh,thi vi G liên thơng, nên G có khơng ít hơn n-1

cạnh, do đó cịn các cạnh của G chưa thuộc T. trong các cạnh của G chưa thuộc t có các cạnh

khơng tạo ra chu trình với các cạnh đã có trong T, chọn cạnh v có trọng số nhỏ nhất trong các
cạnh ấy bổ sung vào T. Loại bỏ những cạnh tạo thành chu trình.

fm

B4: quay lại B2.

Vi DU:
Anh minh hoa

Mơ tả

ADvàCElà

các

cạnh

nhỏ

nhất


với

độ

dai

5,

va

ta

chọn AD một cách tùy ý (tô màu xanh).

CE là cạnh nhỏ nhất khơng tạo thành chu trình với độ đài 5,
nên nó là cạnh thứ hai được chọn.

Cạnh thứ ba DE với độ dài 6 cũng được chọn tương tự như

vậy.

18


Các cạnh tiếp theo theo thứ tự trọng số tăng dan là AB va BE,
với độ dài 7. Chọn AB một cách tùy ý. Cạnh BD không thể

được


chọn

trong tương

lai (tô màu

đỏ) vì đã có đường

nối B và D nên nếu chọn nó sẽ tạo thành chu trình ABD.

Tiếp tục chọn cạnh nhỏ nhất tiếp theo là BE với độ dài 7.
Thêm một số cạnh được tơ màu đỏ: BC vì nó sẽ tạo chu
trình BCE, DE vì nó sẽ tạo chu trình DEBA,

và FE vì nó sẽ

tạo chu trình FEBAD.

Cuối cùng, thuật toán chọn cạnh EG độ đài 9, và tìm ra cây
bao trùm nhỏ nhất.

443.

Thuật tốn Dijkstra:

Cho Graph lién thơng G={V,E}, cần tìm khoảng cách ngắn nhất và đường đi từ nút s đến
tất cả các nút khác.

B1: thiết lập i=0, tập chứa các nút có giá có định S={uạ= s}, gán d(v) bằng:


°

œ_ với Vu,

°

0_

vớiv=us

Nếu | VỊP I thì kết thúc.
19



×