1. Trang chủ
  2. » Luận Văn - Báo Cáo

Truyền bá thông tin phân tán giữa các tác tử di động

118 390 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 118
Dung lượng 1,61 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chỉ với giả thiết tồn tại một vòng ảo kết nối logic tất cả các nút trong mạng, mỗi nút trên vòng ảo biết nút kế tiếp nó trên vòng, mà không cần phải biết tất cả các nút cũng như tổng số

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LÊ TRỌNG HÙNG

TRUYỀN BÁ THÔNG TIN PHÂN TÁN

GIỮA CÁC TÁC TỬ DI ĐỘNG

Ngành: Công nghệ Thông tin

Chuyên ngành: Truyền dữ liệu và Mạng máy tính

Trang 3

MỤC LỤC

LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined

MỤC LỤC 1

BẢNG THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT 3

DANH MỤC HÌNH VẼ, GIẢI THUẬT 5

MỞ ĐẦU 7

CHƯƠNG 1 HỆ PHÂN TÁN 10

1.1 Khái niệm hệ phân tán 10

1.2 Vai trò hệ phân tán 10

1.3 Đặc trưng hệ phân tán 11

1.4 Mô hình truyền thông báo 11

1.5 Công nghệ tác tử di động 14

1.5.1 Sự tiến hóa 14

1.5.2 Các đặc tính của tác tử di động 15

1.5.3 Ứng dụng của tác tử di động 15

CHƯƠNG 2 BẦU THỦ LĨNH TRÊN MẠNG ĐẦY ĐỦ 17

2.1 Giới thiệu bài toán 17

2.2 Mô hình tính toán phân tán 17

2.3 Giải thuật bầu thủ lĩnh Villadangos 18

CHƯƠNG 3 XÂY DỰNG CÂY KHUNG TỐI THIỂU 27

3.1 Bài toán cây khung tối thiểu 27

3.2 Giải thuật GHS83 27

3.3 Giải thuật SB95 36

CHƯƠNG 4 TRUYỀN BÁ THÔNG TIN PHÂN TÁN 47

GIỮA CÁC TÁC TỬ DI ĐỘNG 47

4.1 Bài toán MAGP – Mobile Agent Gossip Problem 47

4.2 Một số khái niệm 47

4.3 Mối quan hệ giữa MAGP và NLEP 48

4.3.1 Hệ thống truyền thông báo 49

4.3.2 Mô phỏng một giải thuật truyền thông báo 50

4.4 Giải thuật hẹn gặp (Rendezvous Algorithm) 53

4.5 Các giải thuật cho MAGP 54

4.5.1 Mạng bất kỳ 54

4.5.2 Mạng đầy đủ không cảm hướng 68

4.5.3 Mạng đầy đủ cảm hướng 69

Trang 4

CHƯƠNG 5 GIẢI THUẬT ĐỀ XUẤT CHO MAGP TRÊN MẠNG ĐẦY ĐỦ 74

5.1 Phát biểu bài toán 74

5.2 Ý tưởng, cấu trúc dữ liệu 74

5.3 Giải thuật 76

CHƯƠNG 6 GIẢI THUẬT ĐỀ XUẤT CHO MAGP TRÊN MẠNG BẤT KỲ 94

6.1 Phát biểu bài toán 94

6.2 Ý tưởng, cấu trúc dữ liệu 94

6.3 Giải thuật 97

KẾT LUẬN 112

TÀI LIỆU THAM KHẢO 115

Trang 5

BẢNG THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT

Mobile Agent Tác tử di động, là một chương trình tự trị có khả năng di

chuyển trên mạng và thực hiện nhiệm vụ tại mỗi nút

MAGP (Mobile Agent

Gossip Problem)

Bài toán truyền bá thông tin phân tán giữa các tác tử di động, ban đầu mỗi tác tử có một thông tin riêng, mục đích của MAGP là mỗi tác tử biết thông tin của tất cả các tác tử còn lại

NLEP (Node Leader

GHS83 Giải thuật xây dựng cây khung tối thiểu phân tán của

R.G Gallager, P.A Humblet, P.M Spira [19]

SB95 Giải thuật xây dựng cây khung tối thiểu phân tán của

Gurdip Singh, Arthur J Bernstein [8]

Node Một địa điểm lưu trữ và xử lý dữ liệu trên mạng

MOE (Minimum –

weight Outgoing Edge)

Cạnh ngoài có trọng số tối thiểu trong số các cạnh ngoài của một mảnh thuộc cây khung MST

Whiteboard Bảng trắng của một nút, là nơi tác tử có thể ghi, đọc và

xóa thông tin

Delivering move Bước chuyển giao: bước di chuyển với một thông báo

của một tác tử

Trang 6

Backtracking move Bước chuyển quay lui của một tác tử

Rendezvous Algorithm Giải thuật hẹn gặp, các tác tử hẹn gặp nhau ở một điểm

nút nào đó trên mạng để trao đổi thông tin

DFS (Depth First

MOL (Minimum

Outgoing Link) Liên kết ngoài tối thiểu của một cây khung

Gossip, Gossiping Giải pháp truyền bá phân tán phỏng theo quá trình phổ

biến tin đồn hay lây nhiễm bệnh tật trong xã hội

Trang 7

DANH MỤC HÌNH VẼ, GIẢI THUẬT

Hình 1.5.1-1 Sự tiến hóa của mô hình Mobile agents 16

Giải thuật 2.3-1 Giải thuật bầu chọn thủ lĩnh Villadangos 20

Hình 2.3-1.a Trạng thái ban đầu của mạng 23

Hình 2.3-1.b Nút 2, 4 khởi tạo giải thuật 24

Hình 2.3-1.c Nút 1, 3 chuyển thông báo 24

Hình 2.3-1.d Nút 4 gửi yêu cầu tới nút 2 25

Hình 2.3-1.e Nút 2 trả lời nút 4 25

Hình 2.3-1.f Nút 4 trở thành thủ lĩnh 25

Hình 3.2-1 Minh họa chứng minh tính chất 1 30

Hình 3.2-2 Minh họa chứng minh tính chất 2 31

Giải thuật 3.2-1 Giải thuật GHS83 32

Hình 3.2-1.b Khởi động giải thuật 36

Hình 3.2-1.c Đánh thức nút kề cận 36

Hình 3.2-1.d Đợt sát nhập đầu tiên 36

Hình 3.2-1.e Kết thúc đợt sát nhập đầu 37

Hình 3.2-1.f Kết thúc giải thuật 37

Giải thuật 3.3-1 Giải thuật SB95 39

Giải thuật 4.3-1 Giải thuật mô phỏng giải thuật A 53

Giải thuật 4.5.1-1 Giải thuật cho MAGP với mạng tùy ý 57

Giải thuật 4.5.1-2 Giải thuật chi tiết cho MAGP với mạng bất kỳ 60

Trang 8

Hình 4.5.1-1.a Trạng thái mạng ban đầu 64

Giải thuật 4.5.2-1 Giải thuật cho MAGP với mạng đầy đủ không cảm hướng 70

Hình 4.5.3-1.a Mạng đầy đủ cảm hướng 72

Hình 4.5.3-1.b Một tác tử di chuyển ở bước 1 72

Hình 4.5.3-1.c Vòng rút gọn ở bước 2 72

Giải thuật 4.5.3-1 Giải thuật cho MAGP với mạng đầy đủ cảm hướng 73

Giải thuật 5.3-1 Giải thuật đề xuất cho MAGP với mạng đầy đủ 79

Hình 5.3-1.a Trạng thái ban đầu của mạng 86

Hình 5.3-1.c Khởi tạo đợt bầu chọn 87

Hình 5.3-1.d Các tác tử thực hiện thủ tục INF 88

Hình 5.3-1.e Tác tử 1 thực hiện thủ tục INF tại nút 5 88

Hình 5.3-1.f Tác tử 1 thực hiện thủ tục REP tại nút 7 89

Hình 5.3-1.g Tác tử 1 thực hiện thủ tục REQ tại nút 1 89

Hình 5.3-1.h Tác tử 4 được bầu chọn làm thủ lĩnh 90

Giải thuật 6.3-1 Giải thuật đề xuất cho MAGP với mạng bất kỳ 100

Hình 6.3-1.a Trạng thái mạng ban đầu 105

Hình 6.3-1.c Tác tử p 2 tìm thấy liên kết ngoài tối thiểu 106

Hình 6.3-1.d Cây khung T

3 hấp thu T 2 , p 3 tìm thấy MOL 3 = (2, 5) 107

Hình 6.3-1.e Cây khung T

3 hấp thu T 1 , p 3 tìm kiếm MOL 3 107

Hình 6.3-1.f Tác tử p 3 được bầu chọn làm tác tử thủ lĩnh 108

Bảng 1 Bảng so sánh giải thuật đề xuất với giải thuật gốc 116

Trang 9

MỞ ĐẦU

Với sự phát triển mạnh mẽ của Internet và đặc biệt là các công nghệ truyền thông, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã làm gia tăng số người sử dụng lên con số khổng lồ Trao đổi và quảng bá thông tin là một nhu cầu thiết yếu của các thành phần tham gia vào mạng, ngoài ra nó còn đóng vai trò hạ tầng cho nhiều dịch vụ quan trọng khác như: cải tiến hiệu năng của mạng, chuẩn đoán lỗi và duy trì sự ổn định của hệ thống mạng, quản lý cấu hình, lập lịch hội họp, tính toán thông tin gộp, nhân bản nội dung, Vì vậy, việc nghiên cứu các giải pháp truyền bá thông tin phân tán hiệu quả cao luôn là một chủ đề hấp dẫn đối với các học giả khắp nơi trên thế giới

Giải thuật gossiping là một giải pháp truyền bá thông tin phân tán, phỏng theo quá trình phổ biến tin đồn hay lây nhiễm bệnh tật trong xã hội Trong bài toán gossip, mỗi bộ xử lý ban đầu có phần thông tin riêng được gọi là tin đồn, mục đích là mỗi bộ

xử lý nhận được các tin đồn của tất cả các bộ xử lý khác Phương pháp này đã được nhiều tác giả tập trung nghiên cứu và đã có những thành quả nhất định [5,12,21,22] Tác tử di động (Mobile Agent) là một chương trình tự trị có khả năng di chuyển

từ nơi này đến nơi khác trên mạng và thực hiện nhiệm vụ nào đó thay cho người dùng Phương pháp tác tử di động giúp làm giảm tải mạng, tạo ra những ứng dụng phân tán

có tính thích nghi và độ linh hoạt cao, có thể giải quyết hiệu quả hơn các bài toán được giải quyết bằng phương pháp khác trong các hệ phân tán [2]

Truyền bá thông tin phân tán giữa các tác tử di động (Mobile Agent Gossip Problem – MAGP) là một hướng nghiên cứu mới, thu hút nhiều sự quan tâm của giới nghiên cứu Ở đây mỗi tác tử có một thông tin riêng, có không quá một tác tử khởi tạo trên cùng một nút, mục đích của MAGP là làm cho mỗi tác tử thu thập thông tin của tất cả các tác tử còn lại

Rendezvous (hẹn gặp) là một trong những cách tiếp cận để giải quyết bài toán truyền bá thông tin phân tán giữa các tác tử, tất cả các tác tử được yêu cầu hẹn gặp trên một nút tại cùng một thời điểm, bằng cách trao đổi thông tin của tất cả các tác tử tại điểm hẹn gặp, chúng ta giải được bài toán MAGP Như vậy, mỗi tác tử phải biết rõ hình trạng của toàn mạng, thời điểm và vị trí hẹn gặp, để đạt được điều này, ngoài việc

xử lý phức tạp, giải thuật còn chịu nhiều phí tổn về độ phức tạp di chuyển [7,14,16,20]

Tomoko Suzuki và đồng sự đề xuất cách giải quyết bài toán MAGP hiệu quả hơn: một tác tử sẽ được bầu làm thủ lĩnh trong số các tác tử trong mạng, tác tử thủ lĩnh

sẽ duyệt toàn mạng để thu thập và truyền bá thông tin cho các tác tử khác [23,24] Từ khẳng định hai bài toán MAGP và NLEP (Node Leader Election Problem - NLEP) có

Trang 10

thể quy về nhau, và dựa trên ý tưởng của các giải thuật bầu thủ lĩnh trong mô hình truyền thông báo, Tomoko Suzuki và đồng sự đã đưa ra một loạt các giải thuật cho bài toán MAGP với các hình trạng mạng khác nhau như: mạng cây không biết gốc, mạng đầy đủ không cảm hướng, mạng đầy đủ cảm hướng, mạng tùy ý, mạng vòng không đồng bộ, mạng vòng đồng bộ, với độ phức tạp tốt hơn hẳn giải thuật hẹn gặp Tuy nhiên, giải thuật cho mạng bất kỳ mới chỉ đưa ra ở mức ý tưởng, giải thuật cho mạng đầy đủ phải dùng thêm giả thiết cảm hướng để đạt được độ phức tạp di chuyển tuyến tính, những đánh giá về các giải thuật này mới ở mức sơ lược về độ phức tạp di chuyển Trên cơ sở ý tưởng của giải thuật gốc, tác giả luận văn đã trình bày một giải thuật chi tiết cho bài toán MAGP trên mạng bất kỳ, và đưa ra một số phương pháp tối

ưu bước di chuyển của tác tử, nâng cao tốc độ thực hiện của giải thuật, có chứng minh tính đúng đắn, đánh giá đầy đủ về độ phức tạp di chuyển và thời gian của giải thuật Tác giả luận văn đề xuất một giải thuật cho bài toán MAGP trên mạng bất kỳ, có đợt bầu chọn tác tử thủ lĩnh là một cải biến từ giải thuật xây dựng cây khung SB95[8] Giải thuật không cần dùng đến số hiệu mức Trong giải thuật gốc, mỗi cây khung sẽ được gắn một số hiệu mức, các cây khung được trộn với nhau dựa vào số hiệu mức,

tức cây khung T với số hiệu mức L chỉ có thể trộn với cây khung T với số hiệu mức

L, qua liên kết ngoài có trọng số tối thiểu của T chỉ khi L  L, vì vậy giải thuật gốc có

độ phức tạp thời gian O(N log k + |E|) không tối ưu Với giải thuật đề xuất, khi tác tử

chủ đã xác định được liên kết ngoài có trọng số tối thiểu trên cây khung của nó, tác tử tiến hành sát nhập ngay cây khung của nó với cây khung khác qua liên kết này, điều này làm tăng tốc độ hội tụ của giải thuật Giải thuật đề xuất có độ phức tạp thời gian

O(N + |E|) tối ưu hơn hẳn độ phức tạp thời gian của giải thuật gốc Độ phức tạp di chuyển của giải thuật đề xuất trong trường hợp xấu nhất là O(N k + |E|), độ phức tạp này không tối ưu Tuy nhiên, khi mỗi cây khung là sự kết hợp của ít nhất k/log k cây khung ban đầu, thì độ phức tạp của giải thuật chỉ còn là O(N log k + |E|)

Tác giả luận văn đề xuất một giải thuật giải quyết bài toán MAGP trên mạng đầy

đủ tối ưu hơn giải thuật gốc, bằng cách vận dụng ý tưởng giải thuật bầu thủ lĩnh trên mạng đầy đủ hiệu quả hơn trong mô hình truyền thông báo

Luận văn được tổ chức thành 6 chương, nội dung cụ thể từng chương như sau: Chương 1: Giới thiệu tổng quan về hệ phân tán, vai trò, đặc trưng, mô hình truyền thông báo và công nghệ tác tử di động [1,2,11,17,25]

Chương 2: Trình bày một giải thuật bầu thủ lĩnh hiệu quả trên mạng đầy đủ của tác giả J Villadangos và đồng sự [13] Chỉ với giả thiết tồn tại một vòng ảo kết nối logic tất cả các nút trong mạng, mỗi nút trên vòng ảo biết nút kế tiếp nó trên vòng, mà không cần phải biết tất cả các nút cũng như tổng số nút trong mạng, giải thuật vẫn đạt được độ phức tạp tuyến tính cả về thông báo và thời gian

Trang 11

Chương 3: Trình bày hai giải thuật xây dựng cây khung tối thiểu: giải thuật GHS83 của Gallager và đồng sự [19], giải thuật SB95 của Singh và Bernstein [8] Cả hai giải thuật này đều xây dựng cây khung tối thiểu phân tán từ rừng cây khung, mỗi cây khung trộn với cây khung khác qua cạnh ngoài có trọng số tối thiểu của nó, cho đến khi chỉ còn một cây khung duy nhất bao trùm toàn bộ mạng, đây chính là cây MST cần tìm Trong GHS83, mỗi mảnh được gắn một số hiệu mức, các mảnh được trộn trên cơ sở số hiệu mức, chính điều này làm chậm tốc độ hội tụ của GHS83, giải

thuật có độ phức tạp thời gian O(N log N) không tối ưu Giải thuật SB95 không sử

dụng số hiệu mức, ngay khi mảnh tìm được cạnh ngoài có trọng số tối thiểu của nó, mảnh sẽ thực hiện sát nhập với mảnh khác qua cạnh này, giải thuật có độ phức tạp thời

gian là O(N) tối ưu hơn hẳn GHS83

Chương 4: Trình bày mô hình hệ tác tử di động, mối quan hệ giữa hai bài toán MAGP và NLEP, giải thuật hẹn gặp, các giải thuật cho MAGP được đề xuất bởi Tomoko Suzuki và đồng sự trên mạng bất kỳ, mạng đầy đủ không cảm hướng, mạng đầy đủ cảm hướng [23,24] Trong phần này, tác giả luận văn đóng góp một giải thuật chi tiết cho bài toán MAGP trên mạng bất kỳ, dựa trên giải thuật ở mức ý tưởng về mạng bất kỳ của Tomoko Suzuki và đồng sự

Chương 5: Trình bày giải thuật đề xuất cho bài toán MAGP trên mạng đầy đủ, vận dụng ý tưởng của giải thuật bầu thủ lĩnh trên mạng đầy đủ của J Villadangos và đồng sự Giải thuật không cần dùng giả thiết cảm hướng, mỗi nút trong mạng không cần biết tất cả các nút trong mạng cũng như là tổng số nút trong mạng, mà chỉ cần biết nút kế tiếp nó trên vòng ảo nối tất cả các nút trong mạng, nhưng vẫn đạt được độ phức tạp bước di chuyển tốt hơn giải thuật gốc

Chương 6: Trình bày giải thuật đề xuất cho bài toán MAGP trên mạng bất kỳ Giải thuật có đợt bầu chọn tác tử lĩnh là một cải biến từ giải thuật xây dựng cây khung SB95 Giải thuật có độ phức tạp thời gian tối ưu hơn hẳn so với giải thuật gốc

Cuối cùng là kết luận, tóm lược những đóng góp của luận văn, đồng thời đưa ra một số hướng phát triển tiếp theo

Trang 12

CHƯƠNG 1 HỆ PHÂN TÁN

1.1 Khái niệm hệ phân tán

Hệ phân tán là tập các thiết bị tính toán riêng rẽ có thể giao tiếp với nhau Đây

là một định nghĩa hết sức tổng quát bao trùm một phạm vi rộng các hệ thống máy tính hiện đại ngày nay, từ chíp VLSI đến các bộ đa xử lý, các mạng cục bộ và Internet Mục đích của xử lý song song là phân bổ một nhiệm vụ lớn cho tất cả các bộ xử

lý thực hiện Trong khi với hệ phân tán, mỗi bộ xử lý nói chung có chương trình làm việc riêng bán độc lập, nhưng vì các lý do khác nhau như chia sẻ tài nguyên, tính sẵn sàng, khả năng kháng lỗi, nên các bộ xử lý cần phối hợp hành động với nhau

Hiện nay, hệ phân tán có ở khắp nơi, trong các doanh nghiệp, học viện, chính phủ, quốc phòng, Điển hình, hệ phân tán cung cấp những phương tiện để chia sẻ các tài nguyên như các máy in màu, máy quét, và chia sẻ dữ liệu Tính toán ngang hàng cũng là một mô hình hệ phân tán, chúng ngày càng càng trở nên phổ biến trong việc cung cấp các tài nguyên và dịch vụ tính toán Các hệ thống phân tán tham vọng hơn cố gắng cải tiến hiệu năng bằng cách kết hợp giải quyết các bài toán con một cách song song, và tăng tính sẵn sàng trong trường hợp một số thành phần của hệ thống bị lỗi

1.2 Vai trò hệ phân tán

Với nhiều ứng dụng nổi bật trong thực tiễn, hệ phân tán đang ngày càng trở nên phổ biến, bởi nó nắm giữ những vai trò quan trọng sau:

Trao đổi thông tin: Các hệ phân tán cung cấp khả năng chia sẻ thông tin rộng rãi

Các chi nhánh khác nhau của một ngân hàng tại các vị trí địa lý rất xa nhau có thể trao đổi, chia sẽ thông tin cho nhau Hệ phân tán cũng cung cấp khả năng chia sẻ thông tin giữa các thiết bị hỗn tạp, một máy tính có thể giao tiếp các thiết bị viễn thông khác như điện thoại cố định, di động, các PDA, …

Chia sẻ tài nguyên: Các hệ phân tán cung cấp khả năng chia sẻ tài nguyên cả

phần cứng lẫn phần mềm, giúp giảm chi phí hệ thống Các máy tính kết nối mạng có thể dùng chung máy in, máy quét ảnh, có thể chia sẻ các tệp dữ liệu, các tệp chương trình

Nâng cao độ tin cậy, tính sẵn sàng thông qua sao lặp: Bằng việc sao lặp, nhân

bản, các hệ phân tán cho độ tin cậy và tính sẵn sàng cao Nếu toàn bộ dữ liệu của một chi nhánh ngân hàng lưu trong máy tính bị mất do sự cố nào đó, người ta có thể khôi phục lại bằng cách sao phần dữ liệu nhân bản đã được lưu tại một nơi khác trên hệ thống máy tính

Trang 13

Nâng cao hiệu suất thông qua song song hóa: Thông qua song song hóa, các

thành phần trong hệ phân tán có thể chia sẻ công việc, thực hiện đồng thời công việc chung, làm tăng hiệu suất hoạt động hệ thống

Đơn giản thiết kế thông qua chuyên dụng hóa: Hệ phân tán làm đơn giản việc

thiết kế các hệ thống phức tạp Người ta có thể phân một hệ thống phức tạp thành các

bộ phận con chuyên dụng thực hiện một số tác vụ chuyên biệt nào đó và hợp tác với nhau để giải quyết nhiệm vụ lớn

1.3 Đặc trưng hệ phân tán

Một hệ phân tán có thể được mô tả như là một tập các bộ xử lý tự trị liên lạc với nhau qua một mạng truyền thông và có các đặc trưng sau:

Không có đồng hồ chung: Không thể đồng bộ hóa đồng hồ của các bộ xử lý

khác nhau vì không biết chắc độ trễ truyền thông Chúng ta có thể dùng khái niệm nhân quả thay cho đồng hộ vật lý để đạt được tính đồng bộ của hệ thống

Không có bộ nhớ toàn cục: Các bộ xử lý không thể biết được trạng thái toàn cục

của hệ thống Bởi vậy để biết được trạng thái hệ thống, người thiết kế hệ phân tán cần phải xây dựng giải thuật đánh giá các tính chất toàn cục

Không có cơ chế phát hiện sự cố chính xác: Trong hệ phân tán, chúng ta không

thể phân biệt được bộ xử lý chậm hay bị sự cố Khi một bộ xử lý gặp sự cố, các bộ xử

lý còn lại vẫn phải tiếp tục làm việc để đạt được kết quả mong muốn Do đó, cần xây dựng cơ chế phát hiện lỗi và kháng lỗi

Khoảng cách địa lý: Các bộ xử lý trong một hệ thống phân tán có thể nằm cách

xa nhau về mặt địa lý Cấu hình mạng các trạm làm việc hoặc cụm các trạm làm việc trên mạng LAN đang được quan tâm nhiều hơn khi xây dựng các hệ phân tán cỡ nhỏ Cấu hình mạng các trạm làm việc đang trở nên phổ biến bởi tận dụng được hạ tầng sẵn

có, tiết kiệm chi phí Động cơ tìm kiếm Google dựa trên kiến trúc mạng các trạm làm việc

Sự tự trị và tính hỗn tạp: Các bộ xử lý có tốc độ khác nhau và chúng có thể chạy

một hệ điều hành khác nhau, nhưng hợp tác với nhau để giải quyết một vấn đề chung

1.4 Mô hình truyền thông báo

Trong một hệ thống truyền thông báo, các bộ xử lý giao tiếp với nhau bằng cách gửi thông báo qua các kênh truyền thông, mỗi kênh truyền là một kết nối hai chiều giữa hai bộ xử lý Tô pô của hệ thống được biểu diễn bởi một đồ thị vô hướng, trong

đó mỗi nút là một bộ xử lý, mỗi cạnh là một kênh truyền thông giữa các bộ xử lý tương ứng Giải thuật cho hệ thống truyền thông báo bao gồm một chương trình cục bộ

Trang 14

cho mỗi bộ xử lý, các chương trình này cung cấp khả năng cho bộ xử lý thực hiện tính toán cục bộ, gửi và nhận các thông báo từ mỗi hàng xóm của nó

Có thể hình thức hóa như sau: Một hệ thống hay giải thuật bao gồm n bộ xử lý

p 0 , p 1 ,…, p n-1 ; i là chỉ mục của bộ xử lý p i Mỗi bộ xử lý p i được coi như một máy

trạng thái với tập trạng thái Q i Bộ xử lý được xác định bởi một nút cụ thể trong đồ thị

Các cạnh liên thuộc với p i trong đồ thị được gắn nhãn bởi các số nguyên từ 1 đến r, trong đó r là bậc của p i Mỗi trạng thái của bộ xử lý p i chứa 2r thành phần đặc biệt, outbuf i (  ) và inbuf i( ), với mọi  thỏa mãn 1 ≤  ≤ r Thành phần đặc biệt này là tập các thông báo: outbuf i (  ) chứa các thông báo mà p i đã gửi tới hàng xóm của nó qua kênh  , nhưng chưa đến nơi, và inbuf i( ) chứa các thông báo nhận được trên kênh  ,

nhưng chưa xử lý Tập trạng thái Q i chứa tập con các trạng thái đáng chú ý ban đầu,

trạng thái ban đầu của các inbuf i( ) phải là rỗng

Trạng thái của bộ xử lý, ngoại trừ các thành phần outbuf i (  ), bao gồm các trạng thái tới được của p i Hàm chuyển của bộ xử lý p i đưa các đầu vào cho trạng thái tới

được của p i , tạo ở đầu ra một giá trị cho trạng thái tới được của p i trong đó mỗi inbuf i( ) rỗng, hàm chuyển cũng tạo ở đầu ra nhiều nhất một thông báo cho mỗi kênh

 : thông báo này sẽ được gửi tới hàng xóm trên kênh  Vì vậy, thông báo gửi trước

đó bởi p i đang đợi được chuyển không ảnh hưởng đến bước hiện thời của p i; mỗi bước

xử lý tất cả các thông báo đang đợi được chuyển tới p i , dẫn đến thay đổi trạng thái và

có nhiều nhất một thông báo được gửi tới mỗi hàng xóm

Cấu hình: Cấu hình là một vec tơ C = (q 0 ,…, q n-1 ) trong đó q i là trạng thái của p i

Các trạng thái của các biến outbuf trong một cấu hình mô tả các thông báo chuyển qua các kênh truyền thông Cấu hình ban đầu là một vec tơ (q 0 ,…, q n-1 ) sao cho mỗi q i

trạng thái ban đầu của p i

Sự kiện: Với các hệ thống truyền thông báo, chúng ta xem xét hai loại sự kiện, một loại là sự kiện tính, ký hiệu comp(i), biểu diễn một bước tính của bộ xử lý p i, trong

đó hàm chuyển của p i được áp dụng cho trạng thái tới được hiện thời loại còn lại là sự kiện giao, ký hiệu del(i,j,m), biểu diễn sự giao thông báo m từ bộ xử lý p i đến bộ xử lý

p j

Thực hiện: Là một chuỗi cấu hình xen kẽ sự kiện mô tả hoạt động của hệ thống, chuỗi này phải thỏa mãn các điều kiện khác nhau Có hai loại điều kiện là điều kiện an toàn và điều kiện sống động Điều kiện an toàn là điều kiện phải đúng với mọi tiền tố hữu hạn của chuỗi mô tả, có nghĩa rằng không có gì xấu xảy ra Điều kiện sống động

là điều kiện phải đúng với một số lần nhất định (có thể vô hạn lần), có nghĩa rằng cuối cùng điều tốt sẽ đến Bất kỳ chuỗi mô tả nào thỏa mãn mọi điều kiện an toàn đặt ra

được gọi là một thực hiện Một thực hiện cũng thỏa mãn tất cả các điều kiện sống động đặt ra được gọi là thực hiện thỏa đáng

Trang 15

Hệ thống không đồng bộ: Một hệ thống được gọi là không đồng bộ nếu nó không

có cận trên đối với thời gian Đoạn thực hiện  trong hệ thống truyền thông báo không

đồng bộ là một chuỗi cấu hình xen kẽ sự kiện có dạng: C 0 , 1 , C 1 , 2 , C 2 , 3 ,…, trong

đó mỗi C k là một cấu hình và mỗi k là một sự kiện Nếu  hữu hạn thì nó phải kết thúc trong một cấu hình, và những điều kiện sau phải được thỏa mãn:

- Nếu k = del(i, j, m), thì m phải là một phần tử của outbuf i( ) trong C k-1,

với  là nhãn kênh truyền (p i , p j ) của bộ xử lý p i Sự thay đổi từ cấu hình

C k-1 sang C k là m được loại bỏ khỏi outbuf i( ) trong C k-1 và được bổ sung

vào inbuf i (h) trong C k Nói cách khác, một thông báo đã được giao nếu và

chỉ nếu nó được chuyển từ outbuf của bên gửi sang inbuf của bên nhận

- Nếu k = comp(i), thì sự thay đổi từ cấu hình C k-1 sang C k là p i thay đổi

trạng thái theo hàm chuyển của nó thực hiện trên trạng thái tới được của

p i trong C k-1 , và tập các thông báo xác định bởi hàm chuyển của p i được

bổ sung vào các outbuf i trong C k Nói cách khác, p i thay đổi trạng thái và gửi các thông báo ra ngoài theo hàm chuyển của nó dựa trên trạng thái hiện thời, bao gồm tất cả các thông báo đang chờ được giao Hàm chuyển

của bộ xử lý đảm bảo rằng các inbuf rỗng

Thực hiện là một đoạn thực hiện C 0 , 1 , C 1 , 2 , C 2 , 3 ,…, trong đó C 0 là cấu hình ban đầu

Trong mô hình không đồng bộ, một thực hiện là thực hiện thỏa đáng nếu mỗi bộ

xử lý có số vô hạn lần các sự kiện tính và mỗi thông báo được gửi cuối cùng sẽ được giao

Hệ thống đồng bộ: Trong mô hình đồng bộ các bộ xử lý thực hiện theo các vòng

nhịp: thực hiện được phân chia thành các vòng, trong mỗi vòng, mọi bộ xử lý có thể gửi một thông báo tới hàng xóm của nó, các thông báo đã được giao, và mọi bộ xử lý tính toán dựa trên các thông báo vừa nhận Mô hình này, mặc dù nói chung không khả thi trong những hệ thống phân tán thực hành, nhưng lại rất tiện lợi cho việc thiết kế

giải thuật vì không phải tính đến nhiều điều không chắc chắn Thực hiện trong mô hình

đồng bộ là chuỗi cấu hình và sự kiện xen kẽ có thể được phân chia thành các vòng

riêng biệt Mỗi vòng bao gồm sự kiện giao mọi thông báo trong các outbuf, cho đến khi tất cả các outbuf rỗng, sau đó mỗi bộ xử lý thực hiện một bước tính

Trong mô hình đồng bộ, một thực hiện gọi là thực hiện thỏa đáng nếu nó là dãy

vô hạn, hàm ý rằng mọi bộ xử lý thực hiện vô hạn bước tính, và mọi thông báo trong

các outbuf nhất định sẽ được giao

Kết thúc: Chúng ta giả thiết rằng mỗi tập trạng thái của bộ xử lý bao gồm một tập con các trạng thái kết thúc và mỗi hàm chuyển của bộ xử lý ánh xạ các trạng thái kết thúc chỉ đến các trạng thái kết thúc Chúng ta nói rằng hệ thống đã kết thúc khi tất

Trang 16

cả các bộ xử lý ở trạng thái kết thúc và không còn thông báo nào đang chuyển Chú ý

rằng thực hiện thỏa đáng vẫn vô hạn, nhưng khi bộ xử lý đã vào trạng thái kết thúc, nó

sẽ ở lại trạng thái đó, thực hiện các bước “giả”

Độ phức tạp được xác định bằng hai độ đo: độ phức tạp thông báo và độ phức

tạp thời gian

Độ phức tạp thông báo là số tối đa các thông báo gửi đi trong thực hiện thỏa

đáng

Độ phức tạp thời gian là thời gian tối đa đến khi kết thúc trong thực hiện thỏa

đáng Với mô hình đồng bộ, độ phức tạp thời gian là số vòng tối đa Với mô hình không đồng bộ, bộ đo dựa trên giả thiết thời gian xử lý sự kiện là không đơn vị và thời gian truyền thông báo (từ sự kiện gửi đến sự kiện xử lý thông báo) tối đa là một đơn

Code, data, context

Hình 1.5.1-1 Sự tiến hóa của mô hình Mobile agents

Trang 17

Tác tử di động (Mobile Agent) là một trong những hướng nghiên cứu thu hút nhiều sự quan tâm nhất từ những năm 1990 đến nay, với những đặc điểm rất thích hợp cho việc phát triển các ứng dụng phân tán Tác tử di động là một phần mềm tự trị có khả năng di chuyển trên mạng để thực hiện một công việc xác định Khi di chuyển, các tác tử di động đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành, nhờ vậy tác tử di động có thể dừng việc thi hành đang thực hiện tại máy này, di chuyển sang máy khác

và khôi phục lại sự thi hành tại máy đích Hình 1.5.1-1 minh họa sự tiến hóa của mô hình tác tử di động

1.5.2 Các đặc tính của tác tử di động

Tác tử di động có một số đặc tính quan trọng sau đây:

 Tính tự trị (autonomous): Một tác tử có thể hoạt động không cần có sự

can thiệp trực tiếp của người sử dụng

 Tính di động (mobility): Một tác tử có thể di chuyển từ nơi này đến nơi

khác với các tình huống khác nhau

 Tính cộng tác (collaboration): Một tác tử có thể giao tác với tác tử khác

hay với con người, để trao đổi tri thức, thông tin với nhau

 Tính thích ứng (reactiveness): Là khả năng của tác tử di động có thể thực

thi trên những môi trường lạ

 Tính liên tục về mặt thời gian: Một tác tử có thể vừa di chuyển vừa xử lý

công việc trên mạng hoặc có thể tiếp tục công việc tại vị trí mới

 Tính bền vững (durability): Một tác tử có thể được lưu lại tại bộ nhớ thứ

cấp và có thể được gọi hoạt động trở lại sau

1.5.3 Ứng dụng của tác tử di động

Với các đặc tính như trên, mô hình tác tử di động có thể được sử dụng hiệu quả trong nhiều trường hợp khác nhau:

 Tương tác dữ liệu thay cho người sử dụng: Các ứng dụng thường xuyên

yêu cầu phản ứng ngay với các luồng dữ liệu thời gian thực, không cần phân biệt người sử dụng là ai và có mặt hay không

 Xử lý và tính toán song song: Các tính toán phức tạp được chia nhỏ thành

nhiều đơn vị để phân tán trên các máy khác nhau, mỗi đơn vị giao cho một tác tử di động điều phối

 Làm việc trên mạng có độ tin cậy kém, bị ngắt kết nối: Trong trường hợp

này có thể phục hồi mạng bằng cách di chuyển tác tử di động tới nguồn

dữ liệu mới để thực hiện thay vì chỉ tập trung vào việc kết nối lại

Trang 18

 Thu thập thông tin phân tán: Tác tử di động thu thập thông tin ở các điểm

nút khác nhau trong mạng

 Tìm kiếm và lọc thông tin: Tác tử di động có thể di chuyển tới các site, tìm

kiếm và lọc ra những thông tin thật sự cần thiết

 Giám sát theo thời gian: Nhiều trường hợp thông tin tìm kiếm chưa có sẵn

mà phải đợi đến thời điểm nó xuất hiện Tác tử di động được tung đến điểm cần thiết, giám sát và chờ đợi để thu thập các thông tin theo yêu cầu

 Phân phát thông tin: Tác tử di động di chuyển trên mạng và phân phát các

thông tin theo yêu cầu

 Thương lượng, đàm phán: Các tác tử di động có thể tương tác với nhau để

thương lượng, đàm phán những vấn đề cụ thể Ví dụ, thương lượng để tổ chức một cuộc họp

 Quản trị hệ thống mạng: Với các hệ thống mạng lớn, việc chẩn đoán lỗi,

duy trì sự ổn định của hệ thống là các công việc rất khó khăn Tác tử di động giúp cho các công việc chẩn đoán lỗi và duy trì từ xa sự ổn định của

hệ thống được dễ dàng hơn

 Thương mại điện tử: Tác tử di động có thể thực hiện các hoạt động

thương mại điện tử

Với các đặc tính và khả năng ứng dụng nêu trên, tác tử di động thực sự là một công cụ mạnh trong hệ phân tán Trong chương 4, chúng ta sẽ trình bày mô hình phân tán có sự tham gia của các tác tử Trên nền tảng đó, giải quyết bài toán truyền bá thông tin phân tán giữa các tác tử di động

Trang 19

CHƯƠNG 2. BẦU THỦ LĨNH TRÊN MẠNG ĐẦY ĐỦ

2.1 Giới thiệu bài toán

Bầu thủ lĩnh là một vấn đề cơ bản trong tính toán phân tán và đã được nghiên cứu trong các mô hình tính toán và các hình thái mạng với giả định khác nhau Giải

thuật bầu thủ lĩnh cho mạng n nút với định danh phân biệt, phải đưa mạng đến cấu

hình kết thúc, mà ở đó có chính xác một nút được bầu là thủ lĩnh, và tất cả các nút khác trong mạng biết định danh của thủ lĩnh

Mọi mạng có hình trạng là một đồ thị liên thông đều có thể đưa về mạng phủ mà

ở đó các nút được kết nối đầy đủ với nhau Vì vậy, bầu thủ lĩnh trên mạng đầy đủ đã được nhiều tác giả nghiên cứu và thu được các kết quả khác nhau, [10] đề xuất một

giải thuật cho mạng đầy đủ không cảm hướng với độ phức tạp thông báo O(n log n) và O(n /log n) thời gian, [4] đề xuất giải thuật cho mạng đầy đủ cảm hướng với độ phức tạp thông báo và thời gian đều là O(n), [9] đề xuất một giải thuật mạnh hơn cho mạng đầy đủ cảm hướng với độ phức tạp thông báo O(n) và O(log n) thời gian

Tuy nhiên các giải thuật ở trên đều yêu cầu mỗi nút biết tất cả các nút còn lại trong mạng, việc hiện thực hóa giả thiết này mất nhiều chi phí trong thực tế Tác giả J Villadangos và đồng sự [13] đã đề xuất giải thuật cho mạng đầy đủ không cần giả thiết

về hướng, không đòi hỏi mỗi nút biết trước tất cả các nút trong hệ thống, chỉ giả định

có một vòng ảo kết nối logic các nút trong hệ thống, mà vẫn đạt được độ phức tạp

tuyến tính về thời gian và thông báo là O(n)

Chương này sẽ mô tả chi tiết giải thuật của tác giả J Villadangos và đồng sự Xuất phát từ ý tưởng thiết kế giải thuật này, chúng ta sẽ thiết kế một giải thuật cho bài toán MAGP (Mobile Agent Gossip Problem) với giả thiết ban đầu về mạng yếu hơn giả thiết của các giải thuật cho mạng đầy đủ của tác giả Tomoko Suzuki và đồng sự [23,24], nhưng vẫn đạt được độ phức tạp di chuyển tối ưu hơn

2.2 Mô hình tính toán phân tán

Mạng là một đồ thị đầy đủ với các nút biểu diễn các bộ xử lý và các cạnh biểu diễn các kênh truyền thông hai chiều giữa các bộ xử lý Thời gian truyền thông báo được giả thiết là hữu hạn nhưng không thể đoán trước Chúng ta giả thiết các kênh truyền không bị mất mát thông báo cũng như ngắt thông báo Tuy nhiên các thông báo

có thể được sắp xếp lại Chúng ta giả định có một vòng ảo kết nối logic các nút trong

hệ thống theo một hướng nhất định Các nút không biết toàn bộ định danh của các nút khác trong hệ thống, mỗi nút chỉ cần biết một nút kế tiếp trên vòng ảo

Trong bài toán bầu thủ lĩnh, ban đầu tất cả các nút ở trạng thái bị động Một tập con bất kỳ các nút, thức dậy tự phát và bắt đầu giải thuật, và trở thành các nút ứng

Trang 20

viên Các nút có thể bắt đầu giải thuật ở thời điểm khác nhau Thủ lĩnh được xác định

từ tập các nút ứng viên tại thời điểm giải thuật được khởi tạo

2.3 Giải thuật bầu thủ lĩnh Villadangos

Ý tưởng: Ban đầu, tập tất cả các nút ở trạng thái passive, các nút có thể tự phát

bắt đầu giải thuật, các nút này là ứng viên có thể trở thành thủ lĩnh Để thu gọn dần vòng bao gồm các nút ứng viên, chúng ta thiết lập cơ chế hợp tác giữa các ứng viên Mỗi ứng viên gửi định danh của nó cho ứng viên kế tiếp trên vòng ảo, nút ở trạng thái

passsive khi nhận được thông báo này, sẽ tự thiết lập trạng thái là dummy, và chuyển thông báo này đến nút kế tiếp trên vòng ảo Ứng viên u có định danh lớn hơn ứng viên liền trước v, yêu cầu ứng viên v thông tin về ứng viên liền trước v, nút v sẽ thay đổi trạng thái của nó thành dummy, sau khi đã trả lời u về ứng viên liền trước nút v Vậy,

khi một ứng viên nhận được trả lời, nó biết định danh của ứng viên mới trước nó trên vòng ứng viên Cuối cùng, ứng viên có định danh lớn nhất biết tất cả các nút trong hệ

thống (ngoại trừ nó) ở trạng thái dummy, ứng viên này chính là thủ lĩnh

Trong giải thuật 2.3-1, biến status i là trạng thái của nút i, cand_succ i là ứng viên

kế tiếp nút i, cand_pred i là ứng viên liền trước nút i Giải thuật được mô tả chi tiết dưới đây

Trang 21

if status i = candidate then

if i < init then

if cand_succ i <> NULL then

send REP(cand_pred i ) to cand_succ i;

status i  dummy;

end if end if

if status i = candidate then

IF cand_pred i = NULL then

Trang 22

status i dummy;

send REP(k) to cand_succ i;

end if end if

end if

end

Giải thuật 2.3-1 được khởi động tự phát bởi bất cứ nút thụ động passive nào, chẳng hạn đó là nút i thực hiện thủ tục initiate i , thiết lập status i = candidate, gửi thông báo INF(i) tới nút kế tiếp nó trên vòng ảo

Khi thông báo INF(init) tới nút i, nó được xử lý bởi thủ tục rcvINF i (j, m) Nếu nút i là passive, nó trở thành dummy và chuyển thông báo tới nút kế tiếp nó trên vòng

ảo Nếu nút là candidate, thiết lập cand_pred i = init Xảy ra các trường hợp:

+ Nếu i > init, có hai khả năng xảy ra:

- Nếu cand_succ i = NULL thì i thiết lập status i = waiting và gửi thông báo REQ(i) cho nút init và đợi nút init gửi thông tin về định danh của ứng viên trước nút init trên vòng ảo

Giải thuật 2.3-1 Giải thuật bầu chọn thủ lĩnh Villadangos

Trang 23

- Ngược lại, cand_succ i  NULL, nghĩa là nút i đã nhận được một thông báo

REQ(k) từ nút k khác, biến cand_succ i là ứng viên kế tiếp nút i trên vòng ảo Vì định danh nút k lớn hơn nút i, nút i trở thành dummy và gửi cho k một thông báo REP(init) + Nếu i < init và cand_succ i  NULL, khi đó nút i đã nhận được một thông báo

REQ(k) từ nút k khác, biến cand_succ i là ứng viên kế tiếp nút i trên vòng ảo Vì định danh nút k lớn hơn nút i, nút i trở thành dummy và gửi cho k một thông báo REP(init) + Nếu i = init, nút i nhận thông báo INF(i), có nghĩa rằng không có ứng viên nào khác trong vòng ảo, nút i trở thành thủ lĩnh

Khi một ứng viên i nhận một thông báo REQ(j) từ j, i biết rằng j là nút ứng viên

kế tiếp nó trong vòng ảo Nó cũng biết rằng tất cả các nút từ i tới j ở trạng thái dummy Nếu nó biết ứng viên liền trước nó trong vòng ảo (cand_pred i  NULL), thì i gửi thông

báo REP(cand_pred i ) tới j và trở thành dummy Ngược lại, gán cand_succ i = j, để liên lạc j với ứng viên liền trước i Nếu nút i có status i = waiting, gán cand_succ i = j để liên lạc j với ứng viên liền trước nút i

Như vậy, một nút i thu thập thông tin ứng viên liền trước nó bằng hai cách khác nhau Nếu j là ứng viên liền trước i trong vòng ảo, i sẽ nhận một thông báo INF từ j Nếu có các ứng viên khác giữa j và i, một trong số chúng sẽ gửi thông báo REP mang định danh của nút j tới i Do đó, ý nghĩa của việc nhận một thông báo REP khá tương

tự với việc nhận thông báo INF, chỉ khác là một nút nhận thông báo REP phải là một nút ở trạng thái waiting, tức nút đợi thông tin ứng viên liền trước nó

Ví dụ thực hiện

Hình 2.3-1 minh họa thực hiện của giải thuật cho một mạng đơn giản Ban đầu, chúng ta có một tập có bốn nút như thể hiện trong hình 2.3-1.a, các nút được tổ chức logic theo một vòng nhưng tất cả các nút đã được kết nối đầy đủ

Nút 2 và 4 khởi tạo giải thuật bằng cách gửi thông báo INF tới các nút kế tiếp

Trang 24

Khi nút 1 và nút 3 xử lý thông báo INF, chúng vẫn chưa khởi tạo giải thuật (status = passive) Bởi vậy, chúng trở thành dummy và truyền thông báo INF đến các

nút kế tiếp chúng (hình 2.3-1.c)

Trong hình 2.3-1.d, các nút ứng viên nhận thông báo khởi tạo từ các nút khác Vì

nút 2 có định danh thấp hơn nút 4, cand_pred 2 = 4 Nút 4 có định danh lớn hơn yêu

cầu nút 2 về ứng viên liền trước nó bằng cách gửi thông báo REQ(4) tới nút 2

Khi một nút nhận một thông báo REQ, nó sẽ trả lời ngay khi nó biết nút ứng viên liền trước nó Trong trường hợp này, nút 2 gửi một thông báo REP(4) để trả lời nút 4 (hình 2.3-1.e) và nó trở thành nút dummy Trong trường hợp này, hình 2.3-1.f, nút 4

kiểm chứng rằng nó thỏa mãn điều kiện thủ lĩnh và tự nó tuyên bố là một thủ lĩnh

Trang 25

Hình 2.3-1.d Nút 4 gửi yêu cầu tới nút 2

Trang 26

Tính đúng đắn của giải thuật và các đánh giá hiệu năng

Đầu tiên, ta chứng minh rằng giải thuật là một giải thuật bầu thủ lĩnh Tức là phải

chứng tỏ rằng, cuối cùng trạng thái status của nút i được thiết lập là leader (liveness - sống động), khi nút i là thủ lĩnh, không có nút nào khác có cùng trạng thái với nó

Nếu một nút trở thành thủ lĩnh sau khi thực hiện thủ tục rcv_INF i (j, m), theo (1) các nút còn lại là dummy và định lý thỏa mãn

Khi có nhiều hơn một nút khởi tạo giải thuật Khi thông báo INF(i) tới một nút ứng viên j – rcv_INF j (k, INF(i)), nút j sẽ thiết lập cand_pred j = i Theo (1), trạng thái của tất cả các nút từ i tới j là dummy Vậy tất cả các nút từ j tới cand_pred j là dummy (2) Nếu j > i, nút j yêu cầu nút i thông tin về ứng viên liền trước nút i bằng thông báo REQ(j) và thay đổi trạng thái của nó là waiting Bởi vậy nếu một thông báo REQ(j) di chuyển hướng tới nút i thì đường đi từ nút i tới j chỉ chứa các nút dummy (3)

Khi một thông báo REQ(j) tới i – rcv_REQ i (j, REQ(j)), cand_succ i có thể thay

đổi thành j Theo (3) khi cand_succ i = j, tất cả các nút từ i tới j là dummy Nếu i biết ứng viên liền trước nó (cand_pred i  NULL), nó gửi cho nút j một thông báo

REP(cand_pred i ) và thay đổi trạng thái của chính nó thành dummy Bởi vậy, theo (2)

và (3), đường đi từ cand_pred i tới nút đích của thông báo REP(cand_pred i) chỉ chứa

Chứng minh Trong thời gian thực hiện giải thuật, chỉ có một tập con S  N các

nút trong mạng sẽ tự thay đổi trạng thái của chúng từ passive sang candidate Thực hiện thủ tục initiate, nút i gửi một thông báo INF(i) hướng tới nút kế tiếp i trên vòng Các nút mà trạng thái của nó là passive chuyển thông báo INF(i), vậy nếu |S| = 1,

Trang 27

thông báo này sẽ được chuyển qua vòng và cuối cùng sẽ đến nút i và thiết lập trạng thái status i của nó là leader

Giả sử |S| = 2 Cho i và j là các nút mà trạng thái của chúng thay đổi sang candidate, cả hai nút gửi thông báo INF(i) tới các nút kế tiếp chúng trong vòng ảo Các nút bị động passive chuyển các thông báo đó, cuối cùng nút j nhận được một thông báo INF(i) và nút i nhận được thông báo INF(j) Giả sử rằng i > j Trong trường hợp như vậy, khi nút i nhận được thông báo INF(j), vì cand_succ i = NULL, i gửi một thông báo INF(i) cho j Nút j có thể nhận thông báo INF(i) trước khi nhận thông báo REQ(i) Trong trường hợp như vậy, cand_pred j sẽ được thiết lập bằng i Vì vậy, khi j nhận được thông báo REQ(i), nó gửi thông báo REP(i) tới i Thông báo này tới i và thiết lập status i là leader

Giả sử |S| > 2 Chúng ta luôn luôn tìm được ba nút của S sao cho i là ứng viên kế tiếp của j trong vòng ảo và j là ứng viên kế tiếp của k trong vòng ảo trong đó i > j và k

> j Cuối cùng, i và j sẽ nhận được thông báo INF gửi bởi j và k Nút i sẽ yêu cầu nút j

về ứng viên liền trước j bằng thông báo REQ(i) (1) Nếu thông báo này tới j trước thông báo INF(k), thì cand_succ j = i, khi j nhận thông báo INF(k), REP(k) sẽ được gửi tới i, status j = dummy (2) Nếu INF(k) tới j trước REQ(i), thì cand_pred j = k, khi REQ(i) tới j, status j = dummy, và j gửi thông báo REP(k) tới i Trong cả hai trường hợp, REP(k) được xử lý bởi i, status j =dummy Bởi vậy, cặp thông báo REQ, REP giảm bớt số các ứng viên Cuối cùng |S| sẽ là 2, ta có kết luận của trường hợp trước đó

Bổ đề 2.3-1 Mỗi nút xử lý nhiều nhất một thông báo INF

Chứng minh Thông báo INF được gửi khi một nút i ở trạng thái bị động status i =

passive thực hiện tự phát thủ tục initiate, status i = candidate Đồng thời, chỉ các nút bị động chuyển các thông báo INF tới các nút kế tiếp nó trong vòng ảo, thực hiện này thay đổi trạng thái của chúng thành dummy Bởi vậy, mỗi thông báo INF(i) được gửi bởi ứng viên tạo ra nó và các nút ở trạng thái passive giữa hai ứng viên Vậy, mỗi nút chỉ nhận được một thông báo INF

Bổ đề 2.3-2 Mỗi nút nhận không quá một thông báo REQ

Chứng minh Các ứng viên, j nhận một thông báo INF(i) có thể gửi một thông báo REQ(j) tới i Tất cả các nút từ i tới j ở trạng thái dummy và j không chuyển INF(i), bởi vậy, không có nút nào khác có thể gửi một thông báo REQ tới i Nút i cuối cùng sẽ trả lời j thông báo REP(cand_pred i ) Rõ ràng cand_pred i  i, vì vậy mặc dù việc nhận

một thông báo như vậy có thể làm cho j gửi một thông báo REQ(j) tới cand_pred i,

không phải hướng tới i

Bổ đề 2.3-3 Mỗi nút gửi nhiều nhất một thông báo REP

Chứng minh Chỉ một nút nhận được một thông báo REQ gửi một thông báo REP, theo bổ đề 2.3-2, ta có bổ đề 2.3-3 thỏa mãn

Trang 28

Định lý 2.3-3 Giải thuật lựa chọn một thủ lĩnh với 3n thông báo

Chứng minh Theo bổ đề 2.3-3, mỗi nút xử lý nhiều nhất một thông báo REQ và trả lời lại bằng thông báo REP tương ứng, nút thay đổi trạng thái của nó thành dummy Theo bổ đề 2.3-1 và 2.3-2, mỗi nút xử lý và nhận nhiều nhất một thông báo INF, REQ

Theo định lý 2.3-2, cuối cùng, giải thuật sẽ chọn được một thủ lĩnh Như vậy chi phí

thông báo sau khi quá trình bầu thủ lĩnh kết thúc là 3n

Định lý 2.3-4 Giải thuật lựa chọn một thủ lĩnh trong n đơn vị thời gian

Chứng minh Để đánh giá độ trễ của giải thuật, trường hợp xấu nhất xảy ra khi

một nút được chọn là thủ lĩnh yêu cầu thông tin của các nút khác một cách tuần tự Do

đó, sau n thời gian, trạng thái của nó sẽ được thiết lập thành leader

mà vẫn đạt được độ phức tạp tuyến tính về thời gian và thông báo là O(n) Xuất phát

từ ý tưởng bầu chọn thủ lĩnh giữa các nút của giải thuật này, chúng ta sẽ thiết kế một giải thuật cho bài toán MAGP (Mobile Agent Gossip Problem) cho mạng đầy đủ, với giả thiết ban đầu về mạng yếu hơn giả thiết trong giải thuật cho MAGP trên mạng đầy

đủ cảm hướng, của tác giả Tomoko Suzuki và đồng sự [23,24], nhưng vẫn đạt được độ phức tạp di chuyển tốt hơn

Trang 29

CHƯƠNG 3. XÂY DỰNG CÂY KHUNG TỐI THIỂU

3.1 Bài toán cây khung tối thiểu

Trong phần này, chúng ta trình bày một số giải thuật phân tán để nhận được cây

khung tối thiểu (Minimum Spanning Tree - MST) trong một mạng không đồng bộ

Bài toán: Cho mạng là một đồ thị vô hướng N nút biểu diễn các bộ xử lý của

mạng và E cạnh biểu diễn các liên kết truyền thông giữa các bộ xử lý Tất cả các nút

được giả thiết là có các định danh phân biệt Chúng ta giả thiết rằng tất cả các cạnh có trọng số phân biệt và mỗi nút biết trọng số của tất cả các cạnh liên thuộc nó Các nút liên lạc bằng thông báo Thông báo không bị mất và chúng đến đích trong thời gian hữu hạn nhưng không biết trước, các thông báo gửi qua một cạnh đến theo thứ tự mà chúng được gửi đi Hãy thiết kế giải thuật xây dựng cây khung tối thiểu MST, sao cho khi kết thúc giải thuật, mỗi nút biết các cạnh liên thuộc nó thuộc về cây khung tối thiểu MST

3.2 Giải thuật GHS83

Giải thuật do tác giả Gallager và đồng sự đề xuất [19] Có thể coi đây là phiên bản phân tán của giải thuật PRIM Trong giải thuật PRIM, một nhánh của cây khung ban đầu là một nút tùy ý trong đồ thị, thuật toán sẽ kết nạp dần các nút vào nhánh, theo quy tắc cạnh nối nút này với nút ở trong nhánh là cạnh có trọng số nhỏ nhất, cuối cùng chúng ta sẽ nhận được cây khung MST của đồ thị Giải thuật GHS83 duy trì một rừng cây khung (được xem như các mảnh), mỗi mảnh là một cây con của cây khung tối thiểu MST Các mảnh được sát nhập qua các cạnh ngoài có trọng số tối thiểu của chúng cho đến khi chỉ còn một mảnh đơn bao trùm toàn bộ mạng

Bài toán tìm cây khung MST được phát biểu hình thức như sau:

Bài toán: Cho một đồ thị G = (V, E), trong đó V, E tương ứng là tập các nút và

các cạnh của đồ thị Mỗi cạnh của đồ thị có gắn một trọng số phân biệt w(e) Hãy tìm một cây khung T = (V, E ) sao cho tổng

E e

) e (

w nhỏ nhất

Trọng số của một cây trong đồ thị là tổng trọng số của tất cả các cạnh trong cây,

mục tiêu của chúng ta là tìm một cây khung có trọng số tối thiểu, gọi là cây MST

Mảnh MST: một mảnh của MST là một cây con của MST Giải thuật bắt đầu với

các mảnh là mỗi nút riêng lẻ và kết thúc với một mảnh duy nhất chính là cây khung tối thiểu MST

Liên kết ngoài: liên kết ngoài của một mảnh là liên kết nối một nút ở trong mảnh

với một nút bên ngoài mảnh

Trang 30

Hình 3.2-1 Minh họa chứng minh tính chất 1

Mỗi mảnh có một nút gốc, định danh của gốc là định danh của mảnh Cạnh tốt nhất là cạnh có trọng số tối thiểu trong số các cạnh ngoài của mảnh

Tính chất 1:

Cho một mảnh của MST, gọi e là một cạnh ngoài có trọng số tối thiểu của mảnh Thì e MST

Chứng minh Gọi e là cạnh ngoài của mảnh F trong MST Giả sử e không nằm

trong MST, MST  e tạo thành một chu trình C, tồn tại ít nhất một cạnh ngoài của

mảnh F là e e thuộc C, ta có w(e) > w(e) Kết nạp e vào MST và bỏ cạnh e, ta nhận được cây khung T’ có tổng trọng số của tất cả các cạch bé hơn cây khung MST ban đầu, điều này mâu thuẫn (hình 3.2-1)

một cạnh e trong C không nằm trong T (bởi vì T không chứa chu trình) Vì các trọng

số là phân biệt và e nằm trong T nhưng không nằm trong T  w(e) < w(e) Vì vậy

Trang 31

Ở trạng thái ban đầu mỗi nút là một mảnh, mỗi mảnh tìm cạnh ngoài có trọng số tối thiểu (MOE: Minimum-weight Outgoing Edge) một cách không đồng bộ Khi tìm thấy cạnh ngoài có trọng số tối thiểu, mảnh này sẽ cố gắng kết hợp với mảnh mà liên kết này dẫn đến Ban đầu, mỗi mảnh chỉ có một nút nên có mức là 0 Giả sử rằng mảnh

F ở mức L  0 có cạnh liên kết ngoài dẫn tới và mảnh F có mức L Mảnh F và F kết hợp với nhau chỉ khi thỏa mãn một trong hai điều kiện sau:

(1) Nếu L < L, thì mảnh F bị hấp thu bởi F, mảnh mở rộng có mức là L (2) Nếu L = L và các mảnh F và F có cùng một cạnh ngoài trọng số tối thiểu, thì hai mảnh F và F kết hợp thành một mảnh mới có mức là L + 1

Trong tất cả các trường hợp khác, mảnh F đơn giản đợi mảnh F đạt đến mức đủ lớn để kết hợp với F theo các luật ở trên

Giải thuật 3.2-1 dưới đây trình bày chi tiết giải thuật GHS83

Trang 32

Trạng thái nút và cạnh:

- Mỗi nút có ba trạng thái

o sleeping: trạng thái khởi tạo của nút

o find: khi nút tham gia vào việc tìm kiếm cạnh ngoài có trọng số tối

thiểu trong mảnh chứa nó

o found: khi đã tìm thấy cạnh tốt nhất của mảnh

- Mỗi nút phân loại mỗi cạnh liền kề nó ở một trong ba trạng thái:

o branch: nếu cạnh là một nhánh trong mảnh hiện tại, nói cách khác đây

chính là một cạnh của cây MST

o rejected: nếu cạnh nằm bên trong mảnh, nhưng không thuộc cây MST

o basic: chưa được phân loại, có thể là cạnh trong hoặc ngoài mảnh

Bắt đầu lặp cho đến khi chỉ còn một mảnh duy nhất trong mạng:

+ Tìm cạnh ngoài có trọng số tối thiểu trong mảnh:

- Tìm cạnh ngoài có trọng số tối thiểu của nút:

o Gốc của một mảnh thay đổi trạng thái của nó thành find (ban đầu nút gốc thức dậy tự phát từ trạng thái ngủ sleeping hoặc được đánh thức

bởi bất kỳ thông báo nào từ nút khác) và gửi một thông báo khởi tạo

initiate chứa định danh mảnh, số hiệu mức và trạng thái find tới tất cả

các nút trong mảnh

o Khi nút i nhận thông báo initiate, nó cập nhật định danh mảnh và số hiệu mức của nó Nút i sau đó thay đổi trạng thái của nó thành find và tìm liên kết ngoài có trọng số tối thiểu cục bộ Mỗi nút i sắp xếp cạnh liên thuộc nó có trạng thái basic theo trọng số của chúng với thứ tự tăng dần trong danh sách unused i Nút i tìm cạnh liên kết ngoài trọng

số tối thiểu cục bộ như sau:

 Nút i chọn cạnh tiếp theo (i,j) từ unused i và gửi một thông báo

test với định danh mảnh và số hiệu mức qua cạnh này

 Nút j nhận được một thông báo test từ i, nó hoạt động như sau:

Nếu định danh mảnh của j giống với định danh mảnh của i, thì i và j thuộc cùng một mảnh, j xóa cạnh (i, j) từ

Trang 33

danh sách unused j, thay đổi trạng thái cạnh này thành

rejected và j trả lời i bằng thông báo reject

o Khi nút i nhận thông báo reject từ j, nó xóa cạnh (i, j) từ danh sách unused i, thay đổi trạng thái

cạnh này thành rejected và tiếp tục bằng cách gửi thông báo test qua cạnh tiếp theo trong danh sách

của nó

Nếu các định danh mảnh của i và j là khác nhau:

o Nếu L j  Li , nút j gửi một thông báo accept tới i nút i nhận được thông báo accept sẽ lưu cạnh tốt nhất cục bộ của nó là (i,j), kết thúc quá trình tìm kiếm cạnh cục bộ tốt nhất tại nút i

o Ngược lại, j làm trễ sự trả lời cho đến khi L j  Li /* Bởi khi hai mảnh sát nhập vào nhau, các nút trong các mảnh này không nhận được ngay tức thì thông báo mang định danh và mức của mảnh mới */

- Tìm cạnh ngoài có trọng số tối thiểu của mảnh:

/* Sau khi mỗi nút trong mảnh đã tìm thấy cạnh tốt nhất cục bộ của nó, chúng phối hợp với nhau để tìm cạnh tốt nhất toàn cục của mảnh*/

o Khi một nút i đã xác định cạnh tốt nhất cục bộ của nó là e:

 Nếu i là nút lá, nó gửi một thông báo report chứa e đến cha của

nó và chuyển sang trạng thái found

 Ngược lại, i là nút trong, i đợi cho đến khi nó tìm ra cạnh tốt nhất cục bộ và nhận các thông báo report từ tất cả các con của

nó Sau đó i gửi thông báo report với cạnh nhỏ nhất trong số các cạnh này tới cha của nó và chuyển sang trạng thái found

o Nút gốc sau khi đã tìm ra cạnh tốt nhất cục bộ của nó và nhận các thông báo từ tất cả các con của nó, nút gốc chọn cạnh có trọng số tối

thiểu e min trong số các cạnh này

 Nếu chọn được e min, đây chính là cạnh tốt nhất của mảnh, nó

gửi thông báo change-root, tới nút trong mảnh có e min là cạnh liên thuộc Nút này trở thành gốc mới của mảnh, thay đổi trạng

thái của e min là branch, và gửi một thông báo connect với số hiệu mức của nó qua e min

 Ngược lại, không có cạnh ngoài nào được tìm thấy, kết thúc giải thuật, mảnh hiện thời chính là cây MST cần tìm

Trang 34

change-của mảnh kết hợp Nó tăng số hiệu mức change-của nó lên 1 và bắt đầu lần lặp

mới bằng cách gửi một thông báo initiate tới các hàng xóm của nó Ngược lại j gửi một thông báo connect tới i và i trở thành gốc mới của mảnh kết hợp, i tăng số hiệu mức của nó lên 1 và gửi thông báo initiate cho các hàng xóm của nó để khởi tạo lần lặp mới cho mảnh kết

hợp

3 l j > l i:

(a) Nếu nút j đã nhận được một thông báo initiate và chưa gửi thông báo report, thì nó gửi một thông báo initiate với định danh của mảnh G, số hiệu mức l j và trạng thái find tới i và đợi một thông báo report từ i trước khi gửi thông báo report của nó, đồng thời j thay đổi trạng thái của cạnh (j,i) thành branch Vì vậy, F được hấp thu vào G như là một phần của lần lặp hiện thời của G

(b) Nếu j đã gửi thông báo report:

 Trong trường hợp này, nút j gửi thông báo initiate với định danh của mảnh G, số hiệu mức l j và trạng thái found tới i, đồng thời j thay đổi trạng thái của cạnh (j,i) thành branch Một nút nhận được một thông báo initiate với trạng thái found thay đổi trạng thái của

nó thành found, cập nhật số hiệu mức và định danh mảnh của nó và

truyền thông báo tới các con của nó

Trang 35

/*

Khi j đã gửi thông báo report, cạnh tốt nhất cục bộ của nó phải có trọng số nhỏ hơn trọng số của (i,j) (thật vậy, cạnh (i,j) không thể là cạnh tốt nhất cục bộ của j bởi vì i sẽ không trả lời một thông báo test

từ j vì i ở trong mảnh có mức thấp hơn, dẫn đến j không thể gửi thông báo report) Do đó cạnh tốt nhất cục bộ của j có trọng số nhỏ hơn cạnh ngoài có trọng số tối thiểu của F Bởi vậy, sự tham gia của F trong việc tìm kiếm cạnh tốt nhất của G là không cần thiết

*/

Chứng minh tính đúng đắn:

Ta thấy giải thuật chỉ tìm cạnh ngoài có trọng số tối thiểu từ các mảnh, thông báo

connect chỉ được gửi trên cạnh ngoài tối thiểu, giải thuật thỏa mãn các tính chất 1 và 2,

do đó chúng ta nhận được cây MST

Để chỉ ra rằng khóa chết không tồn tại, ta xét tập các mảnh tồn tại trong bất kỳ thời điểm nào Ngoại trừ các mảnh có mức 0 bao gồm các nút trong trạng thái ngủ Giả thiết rằng giải thuật đã được bắt đầu nhưng không kết thúc, tập các mảnh ở trên không rỗng và mỗi mảnh có một cạnh ngoài trọng số tối thiểu Xét mảnh từ tập các mảnh có mức thấp nhất trong tập hợp với cạnh ngoài có trọng số nhỏ nhất trong tập đó Mọi

thông báo kiểm thử test từ mảnh đó hoặc sẽ đánh thức mảnh ở trạng thái ngủ sleeping

có mức không hoặc sẽ được phản hồi mà không cần đợi Tương tự, một thông báo

connect từ mảnh đó sẽ đánh thức mảnh ở trạng thái ngủ có mức 0 hoặc sẽ chuyển đến

mảnh có mức cao hơn, hoặc sẽ chuyển đến mảnh đồng mức và có chung cạnh ngoài với trọng số tối thiểu, dẫn đến mảnh mới có mức cao hơn Như vậy không có mảnh nào tồn tại vĩnh viễn  không tồn tại khóa chết

Ví dụ thực hiện:

Mạng ban đầu bao gồm 7 nút và 11 cạnh, mỗi cạnh được gắn trọng số như trong

hình 3.2-1.a, tất cả các nút ở trạng thái sleeping và tất cả các cạnh ở trạng thái basic Ban đầu, mỗi nút ở trạng thái sleeping được coi là một mảnh, sẽ có một số nút thức dậy bắt đầu khởi động giải thuật Khi một nút thức dậy từ trạng thái sleeping, nó thay đổi trạng thái của nó thành find và bắt đầu tìm kiếm cạnh liên kết ngoài có trọng

số tối thiểu cục bộ của nút, việc tìm kiếm này sẽ đánh thức nút kề cận, khi một nút thức dậy và tìm thấy cạnh liên kết ngoài có trọng số tối thiểu, nó thay đổi trạng thái

Giải thuật 3.2-1 Giải thuật GHS83

Trang 36

thành found và gửi thông báo connect qua cạnh này Hình 3.2-1.b, 3.2-1.c mô tả quá

trình này

Gọi mảnh ban đầu là F i ứng với các nút i, ta có F 1 và F 3 đều có L 1 = L 3 = 0,

MOE 1 = MOE 3 = (1, 3) , vậy F 1 và F 3 sát nhập thành F 3 có L 3 = 1, gốc là nút 3 Tương

tự F 5 sát nhập F 7 thành mảnh mới F 7 với L 7 = 1, gốc 7 Hình 3.2-1.d minh họa lần sát nhập đầu tiên

Tiếp tục đợt lặp đầu tiên, mảnh F 6 gửi thông báo connect tới F 3 , ta có L 3 > L 6 (1

> 0), vậy F 3 hấp thu F 6 tạo thành mảnh mới F 3 có mức L 3 = 1, và gốc là 3 Việc tìm

kiếm MOE trên F 3 làm thức nút 2, tương tự F 3 hấp thu F 2 , F 4 Hình 3.2-1.e minh họa

Trang 37

Ở đợt thứ 2 (hình 3.2-1.e, hình 3.2-1.f), ta có L 3 = L 7 = 1 và MOE 3 = MOE 7 = (6,

7), vậy F 3 kết hợp với F 7 tạo thành mảnh mới F 7 có mức L 7 = 2, gốc 7 Mảnh này chính là cây MST cần tìm, giải thuật kết thúc

Độ phức tạp thông báo:

Định lý 3.2-1 Độ phức tạp thông báo của giải thuật GHS83 là O(|E |+ N log N)

Chứng minh Bởi vì số hiệu mức của một mảnh có thể nhiều nhất là log N và số hiệu mức tăng sau mỗi lần lặp, một nút có thể tham gia không quá log N lần lặp Trong một lần lặp, mỗi nút trong một mảnh có thể nhận không quá một thông báo initiate và một thông báo accept Nó có thể chuyển nhiều nhất một thông báo report và một thông báo change-root hoặc thông báo connect Vì vậy, nếu chúng ta không quan tâm

đến việc kiểm tra cạnh không thuộc cây khung tại mỗi nút, thì các nút trong mạng chỉ

có thể gửi 5N thông báo trong mỗi lần lặp, do đó sau log N lần lặp, số thông báo sử dụng là 5N log N Có nhiều nhất một thông báo reject được gửi qua mỗi cạnh Do đó, việc kiểm tra một cạnh không thuộc cây khung yêu cầu không quá 2|E| thông báo Như vậy, độ phức tạp thông báo của giải thuật là 2|E| + 5N log N

Độ phức tạp thời gian:

Định lý 3.2-2 Độ phức tạp thời gian của giải thuật GHS83 là O(N log N )

Chúng ta sẽ chứng minh bằng qui nạp rằng mất nhiều nhất 5lN – 3N đơn vị thời gian để tất cả các nút trong mạng đạt đến mức l

Với l = 1: sau thời gian N - 1, tất cả các nút được đánh thức và sẽ gửi một thông báo connect Sau thời gian 2N, tất cả các nút sẽ ở mức 1 sau khi nhận thông báo initiate từ nút gốc thuộc mảnh chứa nó

Trang 38

Giả thiết đúng ở mức l, ta sẽ chứng minh đúng ở mức l + 1 Thật vậy, ở mức l, mỗi nút có thể gửi không quá N thông báo test và nó sẽ được trả lời trước thời điểm 5lN –3N + 2N = 5lN – N Tại mỗi lần lặp, các nút chuyển thông báo initiate không quá

N đơn vị thời gian, chuyển thông báo report không quá N đơn vị thời gian, chuyển thông báo change root hoặc connect không quá N đơn vị thời gian, vậy số các thông báo report, change root, connect, inititate chuyển đi trong một lần lặp mất nhiều nhất 3N đơn vị thời gian Bởi vậy, trước thời điểm 5lN – N + 3N = 5(l + 1)N – 3N tất cả các nút ở mức l + 1

Tại mức cao nhất, l  log2 N, chỉ có các thông báo test, reject, và report được sử

Trong giải thuật GHS83, để giữ độ phức tạp thông báo thấp, khi một mảnh F ở mức cao hơn gửi yêu cầu nối với mảnh có mức thấp hơn F, thì mảnh F đợi mảnh có mức thấp hơn F phát triển đến thời điểm mà tại đó số hiệu mức của nó bằng hoặc lớn hơn số hiệu mức của F Chính vì vậy GHS83 có độ phức tạp thời gian trên tuyến tính

N log N

Awerbuch đề xuất giải thuật Awe87 có độ phức tạp tuyến tính về mặt thời gian [3] Tuy nhiên, giải thuật yêu cầu giai đoạn đếm tổng số nút trong mạng, và áp dụng giải thuật GHS83 cho đến khi tất cả các mảnh trong mạng đạt đến kích thước là

N/ log N, sau đó mới áp dụng phương pháp của ông

Các giải thuật GHS83 và Awe87 yêu cầu sự phát triển cân bằng của các mảnh Với giải thuật SB95, một mảnh không đợi mảnh khác đạt đến một mức cụ thể trước khi chúng có thể kết hợp với nhau Chính vì vậy, giải thuật có tốc độ hội tụ nhanh, đạt

được độ phức tạp tuyến tính về thời gian là O(N) Tuy nhiên giải thuật không tối ưu về

độ phức tạp thông báo, giải thuật có độ phức tạp thông báo trong trường hợp xấu nhất

là O(N2), giải thuật sẽ đạt được độ phức tạp thông báo O(E + N log N) sau khi tất cả các mảnh đã đạt đến kích thước N / log N

Giải thuật SB95 không sử dụng số hiệu mức như GHS83 Do đó, việc trả lời

thông báo test tại mỗi nút để kiểm tra liên kết ngoài, không cần phải trì hoãn dựa trên

số hiệu mức như GHS83 Trong GHS83, số hiệu mức được sử dụng để đảm bảo rằng, các cạnh ngoài được nhận biết một cách đúng đắn Giải thuật SB95 đảm bảo việc nhận biết đúng đắn các cạnh ngoài bằng cách chia mỗi lần lặp tại mỗi mảnh làm hai đợt

Trang 39

Đợt đầu tiên, định danh của mảnh (định danh của gốc) được truyền bá tới tất cả các nút trong mảnh, đợt đầu tiên kết thúc khi tất cả các nút trong mảnh đã cập nhật định danh mới của mảnh Đợt thứ hai, nút gốc sẽ phát tỏa thông báo yêu cầu đến tất cả các nút trong mảnh tìm kiếm cạnh liên kết ngoài cục bộ tối thiểu tại mỗi nút, sau đó tại mỗi nút có sự tổng hợp kết quả tìm kiếm cạnh ngoài tối thiểu tại mỗi nút con gửi đến và của chính nó, cuối cùng nút gốc sẽ có kết quả tìm kiếm cạnh ngoài tối thiểu của toàn mảnh, mảnh sẽ trộn với mảnh khác qua cạnh ngoài tối thiểu này

Ý tưởng:

Ban đầu tất cả các nút ở trạng thái ngủ (sleeping), giải thuật bắt đầu tại một số

nút trong mạng, các nút khác được đánh thức bằng bất kỳ một thông báo nào gửi đến bởi các nút kề cận Mảnh ban đầu chỉ là một nút đơn, các mảnh sẽ được trộn với nhau qua cạnh ngoài có trọng số tối thiểu trong mỗi lần lặp

Đợt đầu tiên, định danh của mảnh (định danh của gốc) được truyền bá tới tất cả các nút trong mảnh, đợt đầu tiên kết thúc khi tất cả các nút trong mảnh đã gửi thông

báo finish tới gốc, tức tất cả các nút đã cập nhật định danh mới của mảnh Đợt thứ hai, nút gốc của mảnh sẽ phát tỏa thông báo mang trạng thái find, yêu cầu tất cả các nút

trong mảnh tìm liên kết ngoài có trọng số tối thiểu cục bộ, sau đó sẽ gửi thông báo

report hướng đến nút gốc Nếu là nút lá, thông báo report sẽ được gửi đến nút cha; nếu

là nút trong, nút này tìm kiếm xong liên kết ngoài có trọng số tối thiểu của nó, và đợi

nhận hết các thông báo report gửi đến từ nút con của nó, sau đó chọn cạnh ngoài có

trọng số tối thiểu để gửi đến nút cha của nó; cuối cùng, nút gốc sẽ nhận được kết quả cạnh liên kết ngoài có trọng số tối thiểu của mảnh (cạnh tốt nhất của mảnh) Khi mảnh

tìm thấy cạnh tốt nhất của nó, gốc sẽ gửi một thông báo change-root tới nút trong

mảnh có cạnh tốt nhất này là cạnh liên thuộc Nút này trở thành gốc mới của mảnh và

gửi một thông báo connect qua cạnh tốt nhất để yêu cầu kết nối tới mảnh mà cạnh tốt

nhất này dẫn đến

Giải thuật 3.3-1 trình bày chi tiết giải thuật SB95

Trạng thái nút và cạnh:

- Mỗi nút có ba trạng thái

o sleeping: trạng thái khởi tạo của nút

o update: khi nút nhận thông báo initiate 1 và cập nhật định danh của mảnh

o finish: khi nút cập nhật xong định danh của mảnh và gửi thông báo finish hướng tới gốc

Trang 40

o find: khi nút tham gia vào việc tìm kiếm cạnh ngoài có trọng số tối

thiểu trong mảnh chứa nó

o found: khi đã tìm thấy cạnh tốt nhất của mảnh

- Mỗi nút phân loại mỗi cạnh liền kề nó ở một trong ba trạng thái:

o branch: nếu cạnh là một nhánh trong mảnh hiện tại, nói cách khác đây

chính là một cạnh của cây MST

o rejected: nếu cạnh nằm bên trong mảnh, nhưng không thuộc cây MST

o basic: chưa được phân loại, có thể là cạnh trong hoặc ngoài mảnh

- Một nút thức dậy tự phát và phát tỏa thông báo wake_up đánh thức tất cả các

nút khác trong mạng, các nút thức dậy sẽ bắt đầu thực hiện giải thuật

Lặp cho đến khi nào chỉ còn một mảnh:

Đợt đầu tiên:

+ Gốc của một mảnh khởi tạo đợt đầu tiên bằng việc gửi một thông báo

initiate 1 chứa định danh mảnh tới các con của nó

- Khi nhận được thông báo initiate 1, một nút thay đổi trạng thái

thành update, cập nhật định danh mảnh và truyền bá thông báo initiate 1 tới các con của nó

- Một nút lá sau khi đã cập nhật xong định danh mảnh sẽ thay đổi

trạng thái của nó thành finish và gửi một thông báo finish tới cha

của nó

- Một nút trong đợi một thông báo finish đến từ tất cả các con trước khi gửi một thông báo finish tới cha của nó

- Khi gốc nhận được thông báo finish từ tất cả các con của nó, nó

biết rằng tất cả các nút trong mảnh biết định danh hiện thời của mảnh Gốc bắt đầu khởi tạo đợt hai

Đợt thứ hai:

+ Gốc của mảnh bắt đầu đợt thứ hai bằng việc gửi thông báo initiate 2 tới các con của nó

+ Tìm cạnh ngoài có trọng số tối thiểu của mảnh:

- Khi nhận thông báo initiate 2 , nút i thay đổi trạng thái của nó thành find và tìm liên kết ngoài có trọng số tối thiểu cục bộ Mỗi nút i sắp xếp cạnh liên thuộc nó có trạng thái basic theo trọng số của

Ngày đăng: 25/03/2015, 11:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Nguyễn Đại Thọ, Các hệ phân tán, Đại học Công nghệ - ĐHQG HN, 2006 Sách, tạp chí
Tiêu đề: Các hệ phân tán
[2]. Lưu Vĩnh Toàn, Nguyễn Thúc Hải, Phát triển ứng dụng phân tán bằng công nghệ tác tử di động, Khoa Công nghệ Thông tin – Đại học Bách Khoa Hà Nội, 2000.Tiếng Anh Sách, tạp chí
Tiêu đề: Phát triển ứng dụng phân tán bằng công nghệ tác tử di động
[3]. Awerbuch, Optimal distributed algorithms for minimum weight spanning tree, counting, leader election, and related problems, In: Proc. 19th ACM Symp. on Theory of Computing, 1987 Sách, tạp chí
Tiêu đề: Optimal distributed algorithms for minimum weight spanning tree, counting, leader election, and related problems
[4]. C. L. Michael, A. M. Teresa, B.W. Douglas, Election in a complete network with a sense of direction, Inf. Process.Lett, 1988 Sách, tạp chí
Tiêu đề: Election in a complete network with a sense of direction
[5]. D. Kempe, A. Dobra, and J. Gehrke, Computing aggregate information using gossip, Foundations of Computer Science, October 2003 Sách, tạp chí
Tiêu đề: Computing aggregate information using gossip
[6]. E. Korach, S. Moran, S.Zaks, Optimal lower bounds for some distributed algorithms for a complete network of processors, Theoretical Computer Science, 1989 Sách, tạp chí
Tiêu đề: Optimal lower bounds for some distributed algorithms for a complete network of processors
[7]. E. Kranakis, D. Krizanc, S. Rajsbaum, Mobile agent rendezvous: A survey, Proceedings of the 13rd Colloquium on Structural Information andCommunication Complexity, 2007 Sách, tạp chí
Tiêu đề: Mobile agent rendezvous: A survey
[8]. Gurdip Singh, Arthur. J. Bernstein, A highly asynchronous minimum spanning tree protocol, Distributed Computing, Springer Verlag 8(3), 1995 Sách, tạp chí
Tiêu đề: A highly asynchronous minimum "spanning tree protocol
[9]. Gurdip Singh, Efficient leader election using sense of direction, Distributed Computing, 1997 Sách, tạp chí
Tiêu đề: Efficient leader election using sense of direction
[10]. Gurdip Singh, Leader election in complete networks, SIAM J. Comput, 1997 Sách, tạp chí
Tiêu đề: Leader election in complete networks
[11]. Hagit Attiya, Jenifer Welch, Distributed computing: Fundamentals, simulations and advanced topics, Second Edition, John Wiley &amp; Sons, 2004 Sách, tạp chí
Tiêu đề: Distributed computing: Fundamentals, "simulations and advanced topics
[12]. J. Hromkovic, R. Klasing, A. Pelc, P. Ruzicka, and W. Unger, Dissemination of Information in Communication Networks: Broadcasting, Gossiping, Leader Election, and Fault-Tolerance, Springer-Verlag, 2005 Sách, tạp chí
Tiêu đề: Dissemination of Information in Communication Networks: Broadcasting, Gossiping, Leader Election, and Fault-Tolerance
[13]. J. Villadangos, A. Cordoba, F. Farina, M. Prieto, Efficient leader election in complete networks, Proceedings of the 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing, 2004 Sách, tạp chí
Tiêu đề: Efficient leader election in complete networks
[14]. L. Barriere, P. Flocchini, P. Fraigniaud, N. Santoro, Rendezvous and election of mobile agents: Impact of sense of direction, Theory of Computing Systems, 2007 Sách, tạp chí
Tiêu đề: Rendezvous and election of mobile agents: Impact of sense of direction
[15]. M.C. Loui, T.A. Matsushita, D.B. West, Election in complete networks with sense of direction, Information Processing Letters, 1986 Sách, tạp chí
Tiêu đề: Election in complete networks with sense of direction
[16]. N. Roy and G. Dudek, Collaborative robot exploration and rendezvous: Algorithms, performance bounds and observations, Autonomous Robots, 2001 Sách, tạp chí
Tiêu đề: Collaborative robot exploration and rendezvous: "Algorithms, performance bounds and observations
[17]. N. Santoro, Design and Analysis of Distributed Algorithms, Wiley Interscience, 2007 Sách, tạp chí
Tiêu đề: Design and Analysis of Distributed Algorithms
[18]. P. Flocchini, B. Mans, N. Santoro, Sense of direction in distributed computing, Theoretical Computer Science, 2003 Sách, tạp chí
Tiêu đề: Sense of direction in distributed computing
[19]. R.G. Gallager, P.A. Humblet, P.M. Spira, A distributed algorithm for minimum-weight spanning tree, ACM Transactions on Programming Languages and Systems, 1983 Sách, tạp chí
Tiêu đề: A distributed algorithm for minimum-weight spanning tree
[20]. S. Alpern, The Rendezvous Search Problem, SIAM Journal of Control and Optimization, 1995 Sách, tạp chí
Tiêu đề: The Rendezvous Search Problem

HÌNH ẢNH LIÊN QUAN

Hình 1.5.1-1. Sự tiến hóa của mô hình Mobile agents - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 1.5.1 1. Sự tiến hóa của mô hình Mobile agents (Trang 16)
Hình 2.3-1.b. Nút 2, 4 khởi tạo giải thuật INF(4) - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 2.3 1.b. Nút 2, 4 khởi tạo giải thuật INF(4) (Trang 24)
Hình 2.3-1.c. Nút 1, 3 chuyển thông báo INF(4) - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 2.3 1.c. Nút 1, 3 chuyển thông báo INF(4) (Trang 24)
Hình 2.3-1.e. Nút 2 trả lời nút 4 REP(4) - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 2.3 1.e. Nút 2 trả lời nút 4 REP(4) (Trang 25)
Hình 3.2-1. Minh họa chứng minh tính chất 1 - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 3.2 1. Minh họa chứng minh tính chất 1 (Trang 30)
Hình 3.2-1.a. Mạng ban đầu - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 3.2 1.a. Mạng ban đầu (Trang 36)
Hình 3.2-1.e. Kết thúc đợt sát nhập đầu - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 3.2 1.e. Kết thúc đợt sát nhập đầu (Trang 37)
Hình 3.3-1.a. Mạng ban đầu - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 3.3 1.a. Mạng ban đầu (Trang 43)
Hình 3.3-1.d. Mảnh F 3 , F 7  hấp thu mảnh khác F3 - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 3.3 1.d. Mảnh F 3 , F 7 hấp thu mảnh khác F3 (Trang 44)
Hình 3.3-1.e. Mảnh F 3 , F 7  tìm MOE F3 - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 3.3 1.e. Mảnh F 3 , F 7 tìm MOE F3 (Trang 44)
Hình 4.5.1-1.b. Đợt khởi tạo - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 4.5.1 1.b. Đợt khởi tạo (Trang 64)
Hình 4.5.1-1.d. Kết thúc lần lặp đầu tiên - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 4.5.1 1.d. Kết thúc lần lặp đầu tiên (Trang 65)
Hình 4.5.1-1.c. Tác tử tìm liên kết có trọng số tối thiểu - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 4.5.1 1.c. Tác tử tìm liên kết có trọng số tối thiểu (Trang 65)
Hình 4.5.1-1.f. Kết thúc đợt bầu chọn tác tử thủ lĩnh - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 4.5.1 1.f. Kết thúc đợt bầu chọn tác tử thủ lĩnh (Trang 66)
Hình 4.5.1-1.e. Thực hiện sát nhập cây khung T2 và T3 - Truyền bá thông tin phân tán giữa các tác tử di động
Hình 4.5.1 1.e. Thực hiện sát nhập cây khung T2 và T3 (Trang 66)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm