Tải bản đầy đủ (.docx) (30 trang)

Bài giảng pháp luật về hợp đồng trong họat động kinh doanh – thương mại

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 (600.1 KB, 30 trang )

Chương 4:
PHÂN TÍCH CÁC GIẢT THUẬT TÌM ĐƯỜNG
Giải thuật giá trị bé nhất:
Thực tế các mạch chuyển mạch gói(PSN) sự quyết định đường của nó dựa trên một sô" dạng phân loại giá trị tôi thiểu. Nếu sự phân loại theo giá trị các
hops là ít nhất, mỗi đường có giá trị 1. Điển hình hơn, giá trị mỗi đường tương xứng dung lượng mỗi đường, tương xứng tức thời (current load) trên đường
đi, hoặc một sô" tổ hợp. Trong một sô" trường hợp, sự đánh giá các giá trị đó không bao gồm giải thuật giá trị bé nhât.Với điều đó có thể nói đơn giản:
Cho một mạng các Node nôi với nhau bằng những đường hai chiều, mỗi đường đó có giá trị tổng hợp chung cho mỗi hướng. Ta định nghĩa giá trị
của một đường (path) giữa hai Node là tổng giá trị của những đường nó đi qua. Cho mỗi cặp Node tìm thây một con đường giá trị bé nhất. Hầu hết các giải
thuật giá trị bé nhất được sử dụng trong PSN đều dựa trên hai giải thuật Dijkstra và Bellman Ford.
1. Giải thuật Dijkstra:
Giải thuật Dijkstra có thể phát biểu như sau: Để tìm con đường ngắn nhâ"t từ Node nguồn cho trước đến tất cả các Node khác bằng cách phát triển thêm
vào độ dài của đường. Quá trình thực hiện giải thuật như sau: Với mức k con đường ngắn nhất đến k Node, đến Node nguồn đã cho, qua m Node, ở
mức(k+l).
Giải thuật được định nghĩa như sau:
N = sô" lượng Node trong mạng, s = Node nguồn.
M = sô" lượng Node hợp nhất cho giải thuật (kết hợp cho giải thuật).
Dij = Giá trị đường từ Node i tới Node j.
->dij = 0
dij = co nếu Node không nôi trực tiếp.
Dn = Giá trị nhỏ nhất từ Node s đến Node n lúc xác lập giải thuật.
Giải thuật có 3 bưđc và lập lại cho đến khi M = N.
1. Gán D(s) = 0; giả sử T là tập hợp các đỉnh.
2. Nếu s không thuộc T, ngưng. (D(s) là chiều dài đường đi ngắn nhất từ s đến z).
3. Chọn V thuộc T sao cho D(v) có giá trị nhỏ nhất.
T = T-{v}
4. Với mỗi X thuộc T kề với V, gán:
D(x) = min{D(x), D(v) +w(v,x)}.
Đến bước 2.
Trong chương trình ta dùng:
Đôi tượng Cpoint pBegin để khởi tạo điểm nguồn của đường đi.
Đôi tượng Cpoint pEnd để khởi tạo điểm đích của đường đi.


Đôi tượng Cpoint d[3()][5()] để chỉ vị trí của đường đi.
Mảng mp[30] chỉ sô", phân cho mỗi đường đi.
Mảng tong[30] chứa chiều dài cho mỗi đường đi.
Mảng ntong[30][30] chứa chiều dài từng đoạn.
Biến count đếm số đường đi.
* Phân tích giải thuật Dijkstra:
Đây là giải thuật tìm đường đi ngắn nhất trong một đồ thị có trọng số( chiều dài) nôi hai đỉnh X và y đã cho trước với đặc tính là tổng các trọng sô" của tất
cả cá cạnh là nhỏ nhâ"t trong tất cá các đường đi từ đỉnh X đến đỉnh y.
Nêu tất cá các trọng sô" đều bằng 1 thì bài toán này trở thành bài toán tìm đường đi có cạnh ít nhất nôi hai đỉnh X và y. Ta có thể dùng giải thuật Breadth
First Search để giải quyết bài toán trong trường hợp này. Bắt đầu từ đỉnh X ta xét tất cá các đường đi nôi từ X tới một cạnh, sau đó xét tât cá các đường đi
nối từ X với hai cạnh và cứ tiếp tuc như thê" cho đến khi nào đỉnh y gặp lần đầu tiên.
Như vậy đường đi ngắn nhất từ đỉnh X với đỉnh y có sô" cạnh nôi là ngắn nhất.
Trong trường hợp tổng quát, đường đi từ đỉnh X đến đỉnh y có thể đi qua tất cá các đỉnh của đồ thị, vì thê ta thường xét bài toán tìm đường đi ngắn nhất
nôi từ đỉnh X cho trước với tất các đỉng khác trong đồ thị.
Giả sử giải thuật Dijsktra được áp dụng cho một đồ thị có n đỉnh và E cạnh. Thời gian của bước khởi tạo mảng D và p tỉ lệ với n. Sô" lần so sánh để chọn
đỉnh V trong tập hợp c là n-1, n-2, 2 (sô" bước lập là n - 2). Như vậy, thời gian thực hiện giải thuật là tỉ lệ với n
2
.
Nêu E « n
2
(E râ"t nhỏ so với n), tức G là một đồ thị thưa , thì ta có thể tránh được việc xét các giá trị vô cực trong ma trận chiều dài L. Vì thê" giải thuật
Dijsktra thích hợp cho một đồ thị được biểu diển bằng một danh sách kề, bởi vì ta chì xét đến các đỉnh w nôi với đỉnh V.
Để chọn đỉnh V trong tập hợp c với D[v] nhỏ nhất.
• Lưu đồ giải thuật Dijsktra :
Nhập vào đỉnh nguồn của đường đi Nhập
vào đỉnh đích của đường đi Gán chiều
dài của đỉnh nguồn = 0. Gán chiều dài
của các đỉnh khác = 00 .
* Kết quả của giải thuật Dijkstra tương ứng với hình vẽ được thể hiện như sau: (Tìm đường đi ngắn nhất từ Node 1 đến Node 6 )
• giải thuật Dijkstra thực hiện từng bước như sau: Ví dụ: Xét đồ thị:

Ta dùng giải thuật Dijkstra để tìm đường ngắn nhất nôi A với các đỉnh khác.
© o
A B
c D E F G H
D D D
L 0 2oo 4 00 1 6 00
V AA F A A F A
© o
Ớ bước thứ nhất, ta lập được bảng như sau:
A B C D E F G H
D D
L 0 2 o o 0 3 0 0 Q O 0 0 Q O
V A A A A A A A
(0) o o
0
o
o
Chọn được đỉnh F đặt vào D và ta có bảng sau:
Cứ tiếp tục như trên ta lần lược có các bảng như sau:
A B C D E F G H
D
D D D
L
0 2 4 4 4
1 6 O 0
V
A B F B A
F A
o
A B C D E F G H

D D D D
L 0 2 4 4 4 1 6 5
A B F B A F A
V
A B
c
D E F G H
D D DD D
L 0 24 4 4 1 6 5
V AB F
B A F c
ABCDEFGH
D D D D D D
L
0 2 4 4 4 16 5
V
A B F B A F c
A B C D E F G H
D D D D D D
L
0 2 4 4 4
1 6 5
V
A B F B A
F c
A B C D E F G H
D D D D D D
L
0 2 4 4 4 1
6 5

V
A B F B A
F c
Giải thuật kết thúc và bảng lập được sau cùng cho ta con đường ngắn nhất nôi từ đỉnh A đến các đĩnh khác.
Ví dụ đường đi ngắn nhất nối từ đỉnh A đến H là ABCH và chiều dài đường ngắn nhất này là 5.
2. Giải thuật BELLMANFORD:
Giải thuật Bellman Ford có thể phát biểu: Tìm con đường đi ngắn nhất từ Node (nguồn) đã cho X đến Node bắt buộc, con đường gồm một đoạn đường, rồi
tìm đoạn đường ngắn nhất giữa hai đoạn đường nôi và tiếp tục cho đến hết. Giải thuật được thực hiện như sau:
• S:Node nguồn.
• dij: Giá trị đường từ i đến j.
• dij = 0.
• Dij = 00 cho Node không nôi trực tiếp.
• D(h): Giá trị của con đường ngắn nhất từ Node s đến Node n, dưới sự bắt buộc không quá h đường nối.
A B C D E F G H
D D D D D D
L
0 2 4 4 4 1
6 5
V
A B F B A
F c
• h: sô" cực đại đường nôi trong đường nối trong đường nối tại thời điểm tức thời đổi về giá trị.
Giải thuật có các bước sau, và chúng lập lại cho đến khi không có sự thay đổi về giá trị.
Bước 1: Bắt đầu:
D„
(0)
= 00 cho tất cả n ^ s.
Bước 2: Thực hiện kế tiếp với h > 0.
D
n

( h+ 1)
=j
m i n
rD
n
h
+ dij]
• Lưu đồ của giải thuật Bellman Ford :
• khởi tạo đường nôi ban đầu = 0.
• Giá trị đường đi ngắn nhẫt từ Node nguồn đền các Node
k-hée-=-Q
t = 0
Giá trị đường dẫn từ Node nguồn cho tới các Node khàc = Giá trị đường dẫn
ngắn nhâ"t từ Node nguồn khi chưa tăng h + chi phí từ Node xét đến các
Node lân cận nó.
T
Giữ nguyên
bảng tìm
rtưrỉnơ rtanơ
• Bảng cho ta kết quả của giải thuật như sau:
(tìm đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6)
♦ So sánh giữa hai giải thuật Dijkstra và Bellman Ford:
Từ kết quả cững như thực hiện hai giải thuật Dijktras và Bellman Ford theo từng bưđc ta thấy rằng: Giải thuật Dijkstra tương đối tốt hơn
trong việc Routing tập trung còn giải thuật Bellman Ford thì cho Routing phân tán. Ta hãy xem giải thuật Bellman Ford trước. Nếu ta thực hiện đẳng
thức ở bước hai của giải thuật, ta thấy rằng sự tính toán cho Node n bao gồm sự hiểu biết giá trị đường nôi đến tất cả các Node bên cạnh Node n (dij)
cộng với giá trị tất cả các đường từ Node nguồn đến các Node lân cận (Dị
h
). Mỗi Node có thể bao gồm một giá trị và các đường chung cho mỗi Node
khác trong mạng và thông tin đó thay đổi lần lượt với Node lân cận. Mỗi Node đều có thể dùng bước hai của giải thuật chỉ dựa trên thông tin của
Node lân cận và biết giá trị đường nôi cập nhật giá trị và đường. Mặt khác với đẳng thức ở bước 3 của giải thuật Dijkstra, đẳng thức đo yêu cầu, để

cho giải thuật phân tán. Mỗi Node cần toàn bộ topologie về mạng, có nghĩa là nó cần biết giá trị đường nôi của tất cả các đường trong mạng. Như vậy
với giải thuật này, thông tin cần trao đổi với tất cả các nốt, phức tạp hơn cho việc Routing phân tán.
3. Giải Thuật SHORTEST PATH ROUTING:
Trong giải thuật này chúng ta có một trọng đồ kết nôi vô hướng có trọng sô" của các Node. Với mỗi kết nôi trực tiếp giữa hai Node có một giá trị
được coi là chi phí hay là khoảng cách cần thiết để đi từ Node này đê" Node kia.
Giải thuật có các bước sau:
a) cho Node nguồn là Node cô" định và cho nó làm việc, hay là Node hiện hành.
Bellman- Ford (đỉnh nguồn =1)
h D
2
(h>
Path D
3
(h)
Path D
4
(h)
Path D
5
(h)
Path D

(h)
Path
0
oo oo
00 00 00
1
2 1-2 5 1-3 1 1-4
00 00

2 2 1-2
4 1-4-3 1 1-4 2 1-4-5 10 1-3-6
3 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 3 1-4-5-6
4 2 1-2 3 1-4-5-3 1 1-4 2 1 -4-5 4 1-4-5-6
b) Tính toán lại các chi phí của các Node có kết nôi trực tiếp với Node làm việc, bằng cộng lại chi phí với Node làm việc với chi phí Node đó.
Nếu Node đó có chi phí chưa xác định thì cho giá trị bằng giá trị vừa tìm được và cho tên là tên của Node làm việc.
Nếu Node đó có chi phí lớn hơn chi phí vừa tính được thì thay giá trị vừa tìm được và tên là tên của Node vừa tìm được.
Nếu Node đó có chi phí nhỏ hơn chi phí vừa tính được thì lây giá trị của Node đó và tên chính là tên của Node đó.
c) Xem sét tất cả các Node thử có chi phí xác định, Node nào có chi phí nhỏ nhất thì được chuyển thành Node cô" định và là Node làm việc cho Node kê"
tiếp.
d) Trở lại bước hai cho đến khi tìm được một đường đi có chi phí nhỏ nhất từ Node nguồn cho tới Node đích.
Nhập vào đỉnh nguồn và là đỉnh làm
việc
Gán chiều dài đỉnh nguồn = 0
Xét các đỉnh kề đỉnh hiện hành
Tính chiều dài của các đỉnh kề
Xét tất cả các đỉnh thử có chiều dài xác
định
F)ỉnh rn rhiền Hni nhn nhnt rtifrfr rhnn
Chiều dài đường
đi ngắn nhất
4. Giải thuật Floyd:
Xét một đồ thị định hướng G = (V,Ư), trong đó V là tập hợp các đỉnh và ư là tập hợp các
cung. Gọi n là số đỉnh và E là sô" cung của đồ thị, mỗi cạnh có độ dàilớn
hơn hay bằng 0. Ta xây dựng một ma trận D cho biết chiều dài của đường đingắn
nhất giữa các cặp đỉnh. Giả sử các cặp đỉnh của đồ thị được đánh số’ từ 1 đến n và ma
trận chiều dài chứa chiều dài các cung.
Đầu tiên khởi động ma trận chứa chiều dài đường đi từ Node đến Node. d[i]
[i] = 0

d[iỊ[jì = 1 nếu có đường nôi trực tiếp từ i đến j. d[i][j] = 00 nếu
không có đường nôi trực tiếp từ i đến j.
Tổng quát các bước lặp để tính đường đi ngắn nhất như sau:
for(k = 0; k< n; k++)
for(i = 0; i< n ; i++)
for(j = 0; j< n ; j++)
if(d[i][k]+d[k][j]<d[i][j])
í
d[i][j]=d[i][k] + d[k][j]; p[i]
[j] = k;
}
Tại bước lập thứ k, giá trị d[i][k] + d[k][j] được gán cho d[i][j] được thỏa mản một
trong hai trường hợp sau đây:
1. Tồn tại đường đi từ i đến k và đường đi từ k đến j nhưng không tồn tại đường đi từ i
đến j qua các đỉnh trung gian thuộc tập hợp Vk-i(D[i,j] = 0).
2. Tồn tại đường đi từ đỉnh i đến đỉnh k, đường đi từ k đến j và đường đi từ i đến j qua
các đỉnh trung gian tập hợp VK-1 nhưng d[i][j] > d[i][k] + d[k][j] ( nguyên lý tôi ưu).
• Sơ đồ biểu diễn:
k
0
j
• Sơ đồ khôi của giải thuật Floyd như sau:

i = 1
j = l
k= l
Ví dụ: Xét đồ thị
1
7
4

7
(7)
Thời gian thực hiện giải thuật Floyd tỉ lệ với n
3
. Ta có thể sử dụng giải thuật Dijkstra để giải quyết bài toán này. Trong trường hợp này ta phải áp dụng
giải thuật Dijkstra n lần, mỗi lần chọn một đỉnh khác làm đỉnh nguồn, thời gian thực hiện của mỗi lần tỉ lệ với n
2
. Nếu ta sử dụng giải thuật Dijkstra với
một nma trận chiều dài thì thời gian tổng cộng tỉ lệ với n
1
n
2
= n
3
. Như vậy thời gian thực hiện của cả hai giải thuật Floyd và Dijkstra cùng tỉ lệ với n
3
,
nhưng vì tính đơn giản của giải thuật Floyd mà giải thuật này có khả năng thực hiện nhanh hơn trong thực tế. Mặt khác, nếu chúng ta sử dụng giải thuật
Dijkstra với một heap cùng với danh sách kề (có chứa chiều dài của các cung) thì thời gian thực hiện của mỗi lần tỉ lệ với (E + n)* log(n), do đó thời gian
1 Phân tích giải thuật Floyd:
Giải thuật Floyd cho ta ma trận D là ma trận khoảng cách ngắn nhất của đồ thị. Và ma trận p cho ta xác định đường đi ngắn nhất này: Đường ngắn nhất
từ đình nguồn đến đỉnh đích được xác định bởi một dãy.
Ta tìm được:
do =
4
d,=
_ 4
àl =
4
¿3 =

4
thực hiện tổng cộng của giải thuật Dijkstra tỉ lệ với n * ((E +n) * log(n)) = (E * n + n
2
) &* log(n). Nếu đồ thị đầy(E« n
2
) ta nên sử dụng giải thuật Dijkstra,
nếu đồ thị không đầy (E xấp xỉ với n
2
) thì ta nên sử dụng giải thuật Floyd.
Tuy nhiên với giải thuật Floyd ta thấy việc tìm đường đi ngắn nhất nó thực hiện một cách nhanh. Và nó cho ta con đường ngắn nhất giữa mọi cặp đỉnh
trong đồ thị.
Giải thuáỊ Floyd có thể áp dụng cho đồ thị vô hướng cũng như đồ thị có hướng: ta chỉ cần thay đổi cạnh vô hướng bằng một cạnh vô hương. Tuy nhiên
trong trường hợp này các phần tử trên đường chéo của ma trận cần đặt bằng không.
5. Giải thuật FLOODING routing( tìm đường động):
Giải thuật này chỉ ra đường đi ngắn nhất từ đỉnh X đến đỉnh y. Kết hợp cả ba phương pháp Deapth First Search, Breadth First Search và xét giá trị đường
đi là tối thiểu.
Một kỹ thuật tìm đường đơn giản khác là Flooding. Giải thuật này không yêu cầu bất cứ thông tin nào của mạng và nó làm việc như sau: Gói gửi từ Node
nguồn đến mọi Node lân cận. Ớ tại mỗi Node, gói vừa mới đến lại chuyển đi trên mọi đường ra ngoài ngoại trừ đường nó mới đến. Và cứ tiếp tục như vậy
cho các Node kế tiếp cho đến khi nào Node đích nhận được thông tin của Node nguồn.
Rõ ràng rằng như vậy không có gì mất để dừng sự truyền liên tục cá gói. Sô" thứ tự các gói trong khi chạy chỉ do một nguồn cung cấp không bị hạn chế.
Để đề phòng điều đó, ở mỗi Node nhớ lại nhận lại gói chuẩn bị truyền. Khi copy thứ hai đến nó sẽ bị loại bỏ. Một kỹ thuật đơn giản là thêm bộ đếm bước
cho mỗi gói.
Bộ đếm có thể ban đầu đặt ở giá trị cực đại nào đó, như là tham sô" của mạng. Mỗi điểm gói qua Node nó được giảm đi 1. Khi bộ đêm đạt đến giá trị 0, gói
sẽ bị loại bỏ.
Minh họa giải thuật flooding ( với n = 3):
cần có một sô" nhận dạng thông nhất (những Node nguồn, sô" thứ tự hoặc sô" vc ). Như vậy Node 6 biết loại bỏ tất cả mà chỉ lây copy đầu tiên.
Tóm lại, gói sẽ được truyền từ Node 1 đến Node 6. Bước thứ nhất 3 bản sao của gói được tạo ra. Bưđc thứ hai của cả 3 gói, tổng cộng là 9 gói được tạo ra.
Một trong những gói được tạo ra đến Node 6. Nó được giữ lại và không truyền tiếp nữa. Tuy nhiên các gói còn lại phát ra 22 bản sao mới cho bước 3 và
cũng là bước cuô"i. Sau bước thứ 3 tất cả các gói bị bỏ, bản 6 nhận được tổng cộng 4 bản sao của gói. Với Flooding ta có thể tìm được đường đi ngắn nhất
giữa các điểm bâ"t kỳ trong mạng, giữa các đôi tượng chuyển động trong mạng, và đạt được mức tôi ưu. Flooding có hai điều cần chú ý:

• Tất cả đường có thể giữa hai Node nguồn và Node đích, không có vân đề con đường hoặc Node nào bị loại bỏ. Gói sẽ qua tất cả các đường có được giữa
Node nguồn và Node đích.
• Vì tất cả các đường được đưa ra, một copy của gói đến người nhận sẽ dùng đướng bước nhảy ít nhất.
Do tính chất hai và ta thấy cơ chế thực hiện của giải thuật Flooding, ta nhận định rằng giải thuật này có nhược điểm là tổng sô" lưu thông lớn. Và vì bảng
tìm đường tính toán tại một vị trí trung tâm cho nên hệ thống sẽ không hoạt động được nếu bảng tìm đường trung tâm có vân đề hay các liên kết với bảng
tìm đường trung tâm bị đứt.
6. Giải thuật Depth First Search (tìm kiếm theo độ sâu):
©
Duyệt tất cả các đỉnh và các cạnh của đồ thị theo chiều sâu, thứ tự Preorder NLR. Giả sử cho graph trên, thứ tự duyệt như sau:l-2-4-8-5-3-6-7.
Giải thuật:
Giải thuật sẽ duyệt mỗi đình và kiểm tra mỗi cạnh một cách có' hệ thông. Duyệt tất cả các đỉnh và các cạnh theo chiều sâu, thứ tự Preorder: NLR. Tại mỗi
đỉnh bất kỳ V của đồ thị, ta duyệt đỉnh V rồi sau đó xét tập các đỉnh đến được từ. Khi xét một đỉnh w thuộc tập đỉnh này, ta lại áp dụng cách duyệt này cho
đỉnh w.
Theo cách duyệt này ta phải đi đến tại đỉnh cuối hoặc tận đỉnh trái nhất. Trường hợp gặp đỉnh cuối, ta cần lùi lại một mức và sang phải và sau đó duyệt
sang trái cho đến khi gặp lại đỉnh cuối hoặc đỉnh đích. Quá trình này lặp lại cho tới khi tìm thây đích hay gặp đỉnh cuối cùng của không gian tìm kiếm.
Phương pháp tìm kiếm theo chiều sâu bảo đảm tìm thây đích vì trong trường hợp sâu nhất nó sẽ chuyển sang kiểu tìm vét cạn đồ thị.
Phương pháp t2im kiếm theo chiều sâu để có lời giải tốì ưu thì phải duyệt qua hầu hết tất cả các đỉnh trong đồ thị, điều này dẫn đến thời gian tìm kiếm lâu
nên không thích hợp trong mạng lưới giao thông.
7. Giải thuật Breadth First Search (tìm kiếm ưu tiên bề rộng) :
Phương pháp tìm kiếm theo chiều rộng đôi lập với phương pháp tìm kiếm theo chiều sâu. Nó kiểm tra từng đình trong cùng một mức rồi chuyển sang đỉnh
ở mức sâu hơn.
Tại một đỉnh bất kỳ V của đồ thị, ta duyệt đình V rồi sau đó duyệt tập các đỉnh đến được từ V. Sau đó ta xét tất cả các đĩnh w thuộc tập này và áp dụng lại
cách duyệt này cho đỉnh w.
© © © ©
Ví dụ cho graph trên thì cách duyệt đồ thị theo ưu tiên mức như sau: 1-2-3-4-5-6-7-
8.
Giải thuật tìm kiếm theo chiều rộng dựa vào giải thuật duyệt cây theo mức, từ đỉnh xuất phát đưa tất cả các đỉnh nối vào một hàng đợi, hàng đợi là một
danh sách liên kết, đỉnh nào vào trước ra trước. Khi lấy đỉnh đầu tiên trong hàng đợi ra xét, nếu đỉnh này có đỉnh nôi thì thực hiện tương tự để đưa các
đỉnh vào hàng đợi lúc này mức duyệt được tăng lên.
Phương pháp tìm kiếm theo chiều rộng hoạt động tốt vì đã tìm được lời giải mà không cần phải đi lùi. Khi quay lại chương trình chính nó cho ta lời giải tôi

ưu. Tuy nhiên thứ tự duyệt các đỉnh bị ảnh hưởng bởi việc thay đổi cấu trúc dữ liệu. Các đỉnh của đồ thị trong giải thuật Breadth First Search (tìm kiếm
ưu tiên bề rộng) Được chia thành 3 nhóm:
Các đỉnh đã duyệt là các đỉnh được lấy ra khỏi hàng.
Những đỉnh đang xét là những đỉng trong hàng.
Các đình chưa được xét đến là những đĩnh chưa được duyệt và không có trong hàng.
Sự bất của phương pháp tìm kiếm theo chiều rộng khi đích cần tìm phân bô" rải rác trên tất cả các mức, trong trường hợp này nó phải huy động hết khả
năng tìm tới đích.
8.Giải thuật DISTANCE VECTOR ROUTING:
Mỗi router gửi một bản tìm đường của mạng được nhìn một cách bao quát và qua đó các protocol xác định được thông tin tìm đường, cộng một bước
nhảy
(hop) vào đường đi (để giải thích sự hiện diện của mình đúng), và thông qua việc truy cập thông tin đến router kế tiếp trên đường. Bản chất của
Ditance vector routing protocol là sử dụng tầng thông tin từ các người kế cận chúng. Ditance vector routing protocols chọn lựa đường đi tốt nhất dựa
trên một phép đo met (metric). sử dụng metric là dựa trên sự khác nhau của các protocols hiện tại.
Mặt hạn chế của Ditance vector routing protocol là khi các router gửi những thông tin mới nhất, chúng sẽ gửi toàn bộ bản tìm đường. Đổ gửi thông tin
cập nhật, cập nhật thông tin mới nhất được truyền đi thường xuyên và ấn định thời gian.
Mỗi IMP có một bản tìm đường là danh sách các phần tử. Mỗi phần tử đại diện cho các router khác trong hệ thống và chứa hai phần:
• Khoảng cách cần thuyết lớn nhất để đi IMP đó.
• Đường ra tương ứng khoảng cách đó.
sau thời gian T mỗi IMP sẽ gửi bản tìm đường củab nó cho các IMP kế cận và nhận về bản tương tự. Dựa trên đó tìm ra được bảng tìm đường mới.
Ví dụ : Cho hệ thông supnet
Ngõ vào từ A, I, H, K và bảng tìm đường mơi cho J.
Trong giải thuật này nảy sinh ra hai vấn đề: Count- to-infinity.
Split horizon
• Lưu đồ của giải thuật DISTANCE VECTOR ROUTING :
t = 0
Xác định NETWORK và các router muôn hướng tc i
TO A I H K
New
estimated delay
from J

Line
A
0
24
20 21 8
A
B 12 36 31 28 20 A
c
25 18 19 36 28 I
D 40 27 8 24 20 H
E 14 7 30 22 17 I
F 23 20 19 40 30 I
G 18 31 6 31 18 H
H 177 20 0 19 12 H
I
21 0
14
22 10
I
J 9
1 1
7
10 0
-
K 24 22 22 9 6 K
L 29 23 9 9 15 K
JK
(delay IS 8)
JI
(delay IS 10)

JH
(delay IS 12)
JK
(delay IS 6)
New routing table for J
Lập bảng tìm đường bao gồm:
• Khoảng cách cần thiết ngắn nhất để đến các
Node
• Đường ra tương ứng khoảng cách đó.
8. Giải thuật LINK-STATE ROUTING:
Trái với Distance-vector routing protocol là Link state routing protocols, một router tính toán một cây”tree” của các ngõ vào network mà nó chính là gốc.
những routers chỉ bao gồm đường dẫntôt nhất nhận được cho metric đến những Nodes(router) khác. Khi một router nhận thấy thay đổi trong
trạng thái liên kết trực tiếp của nó( như một liên kết được thiết lập hay mất đi), router sắp sép sự thay đổi đến tất cả các routers khác thông qua
một sử lý(process) gọi là flooding. Flooding truy cập cơ sở dữ liệu của mỗi router bổi vì nó chỉ gửi trạng thái thay đổi thông tin(vì lý do có tên
trạng thái liên kết).
Tổng quát những gói flooding thì rất nhỏ và hiếm khi được gửi. Chúng góp phần rất ít đến toàn bộ mạng giao thông truyền thông tin, trừ khi
trường hợp thay đổi đường đi một cách thường xuyên.
Giải thuật này đưa ra giải quyết hai vấn đề: Count-to-infinity và băng thông(được xét đến như thành phần của chi phí để cguyển packet).
Có 5 bước thực hiện thuật toán:
• phát hiện các Node láng giềng và lưu lại địa chỉ mạng của chúng.
• Tính toán chi phí đến mỗi Node láng giềng các router gửi các echopacket đến các Node lân cận.(để đưa lưu lượng đường truyền vào trong
chi phí . Ta cần tính thời gian delay của đường truyền từ lúcechopacket đưa vào hàng đợi thay vì tính từ khi gửi đi).
• Tạo ra các packet chứa tất cả các thông tin vừa có được gồm có:
Tên Node.
Sô" sequence.
Tham sô" Age.
Danh sách các router lân cận và chi phí của chúng.
• gửi các packet đến tất cả các router khác, thời điểm gửi: Định kì theo thời gian T.
Gửi theo yêu cầu.
Gửi khi lân cận thay đổi.

• tính toán đường dẫn ngắn nhất đến mỗi router khác.
Ví dụ : cho một supnet.
Khi hệ thông network phát triển qui mô thì những bảng tìm đường cũng phát triển tỉ lệ. Khôngnhững bộ nhớ của những đường dẫn được tiêu thụ
bằng những bảng tăng cấp mà CPU cần nhiều thời gian hơn để quét và cần nhiều bandwidth để thông báo về tình trạng của network.
D
Seg
Age
c
F

×