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

Nghiên cứu vấn đề truyền bá thông tin giữa các tác tử di động trong mạng độ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 (648.11 KB, 79 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ






PHAN ĐA PHÚC







NGHIÊN CỨU VẤN ĐỀ TRUYỀN BÁ THÔNG TIN
GIỮA CÁC TÁC TỬ DI ĐỘNG
TRONG MẠNG ĐỘNG








LUẬN VĂN THẠC SĨ














Hà Nội - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ





PHAN ĐA PHÚC






NGHIÊN CỨU VẤN ĐỀ TRUYỀN BÁ THÔNG TIN
GIỮA CÁC TÁC TỬ DI ĐỘNG
TRONG MẠNG ĐỘ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
Mã số: 60.48.15



LUẬN VĂN THẠC SĨ


NGƯỜI HƯỚNG DẤN KHOA HỌC: TS. Nguyễn Đại Thọ










Hà Nội - 2010
1

MỤC LỤC

MỞ ĐẦU 2
CHƯƠNG 1. GIỚI THIỆU MÔ HÌNH TÁC TỬ DI ĐỘNG TRONG HỆ PHÂN TÁN 5
1.1. Hệ phân tán 5
1.1.1. Khái niệm hệ phân tán 5

1.1.2. Ưu, nhược ñiểm của hệ phân tán 6
1.1.3. Đặc trưng hệ phân tán 7
1.1.4. Ứng dụng hệ phân tán 7
1.2. Các mô hình xử lý trong hệ phân tán 8
1.2.1. Mô hình truyền thông báo 8
1.2.2. Mô hình tác tử di ñộng 11
1.2.3. Giải thuật chuyển ñổi từ mô hình thông báo sang mô hình tác tử 13
1.3. Phân loại mô hình tác tử di ñộng 17
CHƯƠNG 2. TRUYỀN BÁ THÔNG TIN GIỮA CÁC TÁC TỬ TRONG MẠNG ĐỘNG 20
2.1. Bài toán truyền bá thông tin giữa các tác tử 20
2.2. Một số giải thuật cho bài toán truyền bá thông tin 22
2.2.1. Giải thuật hẹn gặp (rendezvous algorithm) 22
2.2.2. Giải thuật bầu thủ lĩnh 23
2.3. Vấn ñề truyền bá thông tin trong mạng ñộng 26
2.3.1. Sự khác nhau giữa mạng tĩnh và mạng ñộng 26
2.3.2. Đánh giá ñộ phức tạp của các thuật toán trong mạng ñộng 29
CHƯƠNG 3. XÂY DỰNG CÂY KHUNG TỐI THIỂU TRONG HỆ PHÂN TÁN 35
3.1. Mô tả bài toán 35
3.2. Giải thuật GHS-83 36
3.2.1. Tư tưởng của giải thuật 36
3.2.2. Giải thuật chi tiết 38
3.3. Giải thuật bảo toàn cây khung trong mạng ñộng (OMST) 44
3.3.1. Khái quát về giải thuật 44
3.3.2. Tư tưởng của giải thuật OMST. 45
3.3.3. Chi tiết giải thuật OMST 49
3.3.4. Tính ñúng ñắn của giải thuật 55
CHƯƠNG 4. ĐỀ XUẤT MỘT SỐ GIẢI THUẬT GIẢI QUYẾT BÀI TOÁN 57
4.1. Cấu trúc dữ liệu 57
4.2. Giải thuật duyệt toàn mạng 58
4.2.1. Tư tưởng của giải thuật: 58

4.2.2. Đánh giá giải thuật 62
4.3. Giải thuật dựa trên bài toán xây dựng cây khung tĩnh 62
4.3.1. Tư tưởng của giải thuật 62
4.3.2. Đánh giá giải thuật 66
4.4. Giải thuật dựa trên mô hình cây khung ñộng 68
4.4.1. Tư tưởng của giải thuật 68
4.4.2. Đánh giá giải thuật 72
KẾT LUẬN 74
TÀI LIỆU THAM KHẢO 76

2

MỞ ĐẦU

Công nghệ thông tin và viễn thông ngày càng phát triển, dẫn ñến những ñòi hỏi về
vấn ñề xử lí thông tin ngày càng cao. Các hệ thống xử lý thông tin hiện nay cần phải ñáp
ứng nhu cầu ngày càng lớn về việc tăng tốc ñộ tính toán. Tốc ñộ phát triển của phần cứng
và phần mềm không ñáp ứng ñược, khiến nhiều hệ thống tập trung thông thường không
còn phù hợp với các nhu cầu xử lý thực tế nữa. Vì vậy, những hệ thống phân tán có khả
năng sử dụng ñồng thời nhiều máy tính cho việc giải quyết một bài toán hiện ñang là một
hướng phát triển mới nhiều tiềm năng. Nhờ sự kết hợp các máy tính thông thường, ñơn lẻ
lại, hệ thống phân tán không những tăng ñược tốc ñộ xử lý lên nhiều lần, mà còn giảm
ñược chi phí ñầu tư so với các hệ thống tập trung truyền thống. Các hệ thống phân tán
hiện nay có khả năng ứng dụng trong rất nhiều lĩnh vực khác nhau, từ y tế, giáo dục ñến
thiên văn học, Bằng cách tận dụng tốt sức mạnh và tài nguyên của tất cả các máy tính
trong hệ thống, hệ phân tán hứa hẹn mang lại những thành tựu ñột phá hơn nữa trong
tương lai.
Các ứng dụng phân tán hiện nay có thể cài ñặt thông qua nhiều mô hình khác nhau.
Một trong những mô hình tốt, phù hợp và có nhiều ưu ñiểm là mô hình tác tử di ñộng. Tác
tử di ñộng là các chương trình tự trị có thể di cư từ một nút sang một nút khác trong

mạng, duyệt hệ thống ñể thực hiện nhiệm vụ trên các nút mà nó di chuyển tới. Mô hình
này ñang ñược phát triển nhằm thay thế mô hình truyền thông báo trong tương lai. Với
tính thích nghi và tính linh ñộng của mình, các tác tử di ñộng có thể làm ñơn giản hóa
việc thiết kế các hệ thống phân tán. Các nút trong hệ thống giờ ñây không cần phải cài ñặt
các phần mềm phân tán phức tạp nữa, do các tác tử khi di chuyển ñã mang theo cả mã
nguồn của mình ñến nút ñích. Mô hình tác tử hiện nay ñã ñược sử dụng trong một số hệ
phân tán cụ thể. Ví dụ như trong hệ thống quản lý mạng, các tác tử di ñộng ñược sử dụng
ñể cải tiến hiệu năng hệ thống. Mỗi tác tử sẽ thực hiện việc duyệt trên mạng, thu thập
thông tin tải của các nút, các liên kết và thông báo cho mỗi nút về thông tin này.
Trong mô hình tác tử di ñộng, mỗi tác tử là một thực thể ñộc lập, vì vậy việc giao
tiếp với nhau giữa các tác tử luôn là một vấn ñề quan trọng. Các tác tử trong quá trình
thực hiện các tác vụ của mình, có thể phải cần thông tin từ những tác tử khác. Ví dụ như
trong các mạng sensor, khi các tác tử thu thập ñược thông tin từ môi trường, cần phải trao
ñổi thông tin với những tác tử lân cận nhằm tăng tính chính xác trong việc xử lý. Để giải
quyết vấn ñề này, cần phải nghiên cứu những bài toán tương tác giữa các tác tử trong hệ
thông. Và một trong những bài toán quan trong nhất là bài toán truyền bá thông tin giữa
các tác tử. Trong bài toán này, mỗi tác tử ñược giả ñịnh có một thông tin riêng. Và yêu
3

cầu sau một số thực hiện, mỗi tác tử phải thu thập ñược thông tin của tất cả các tác tử
khác trong hệ thống.
Bài toán truyền bá thông tin giữa các tác tử trong mạng tĩnh ñã ñược nghiên cứu bởi
khá nhiều các tác giả. Mạng tĩnh là mạng tối ưu trên lý thuyết, trên mạng này không có sự
thay ñổi về hình trạng theo thời gian. Đây là loại mạng thường ñược sử dụng trong việc
nghiên cứu giải thuật, do tính ñơn giản của nó. Một số giải thuật tương ñối hiệu quả cho
bài toán truyền thông tin ñã ñược ñưa ra cho dạng mạng tĩnh này như giải thuật hẹn gặp
hoặc giải thuật bầu thủ lĩnh [22]. Độ phức tạp của những giải thuật này cũng ñã ñược tối
ưu hóa, và gần như không thể cải tiến thêm ñược nữa.
Tuy nhiên, các hệ thống trên thực tế không phải lúc nào cũng ñạt ñược sự ổn ñịnh
như mô hình lý thuyết. Sự thay ñổi topo mạng thực tế diễn ra thường xuyên, khi có những

nút rời bỏ hoặc tham gia vào hệ thống. Vì vậy, các thuật toán trên mạng tĩnh tương ñối
khó sử dụng trong các hệ thống thực.
Do ñó, trong luận văn này, tôi xin tập trung vào nghiên cứu một vấn ñề khá mới, ñó
là bài toán truyền bá thông tin giữa các tác tử trong mạng ñộng. Hiện nay, chỉ mới có
nhóm tác giả T. Masuzawa và S. Tixeuil là tiến hành nghiên cứu một mô hình chung về
vấn ñề này [21]. Các tác giả ñã ñưa ra những ñánh giá về ñộ phức tạp của bài toán trong
những mô hình mạng ñộng khác nhau. Tuy nhiên, bài báo chưa ñánh giá ñược hết các ñộ
phức tạp khác trong mô hình tác tử trong mạng ñộng, ñồng thời chưa có những giải thuật
cụ thể trong mô hình này.
Luận văn này sẽ trình bày một số nghiên cứu về vấn ñề truyền bá thông tin giữa các
tác tử trong mạng ñộng, và ñề xuất hai giải thuật cải tiến cho vấn ñề này. Hai giải thuật
này sẽ ñược chứng minh cụ thể cũng như ñưa ra những ñánh giá về ñộ phức tạp theo
những tiêu chí khác nhau.
Luận văn ñược chia làm 4 chương như sau:
Chương 1: Các thông tin tổng quan về hệ phân tán, và mô hình tác tử trong hệ phân
tán. Chương này giúp người ñọc có khái niệm chung về mô hình lý thuyết ñược sử dụng
trong các chương sau.
Chương 2: Giới thiệu về bài toán truyền bá thông tin trong mạng tĩnh và mạng ñộng.
Trong chương này sẽ ñề cập ñến một số giải thuật trong mạng tĩnh cũng như phân tích sự
khác biệt của bài toán trong hai dạng mạng này.
Chương 3: Đề cập ñến bài toán xây dựng cây khung tối thiệu trong hệ phân tán.
Chương này cũng ñưa ra hai giải thuật xây dựng cây khung, 1 giải thuật cho mạng tĩnh và
một cho mạng ñộng. Đây là hai giải thuật rất quan trọng, liên quan trực tiếp ñến các giải
thuật sẽ ñược ñề xuất trong chương 4.
4

Chương 4: Giới thiệu về giải thuật ñơn giản nhất cho bài toán trong mạng ñộng,
ñồng thời ñề xuất hai giải thuật cải tiến. Hai giải thuật này có thể giảm ñược ñộ phức tạp
di chuyển của tác tử nhờ vào việc xây dựng cây khung trong mạng. Các chứng minh về
tính ñúng ñắn cũng như ñộ phức tạp của giải thuật cũng ñược ñưa ra một cách chi tiết.


5

CHƯƠNG 1. GIỚI THIỆU MÔ HÌNH TÁC TỬ DI ĐỘNG
TRONG HỆ PHÂN TÁN

1.1. Hệ phân tán
1.1.1. Khái niệm hệ phân tán.
Hiện nay, trên thế giới có khá nhiều những ñịnh nghĩa khác nhau về hệ phân tán. Ví
dụ: một ñịnh nghĩa về hệ phân tán là “tập hợp các máy tính tự trị, ñược kết nối với nhau
bởi một mạng máy tính và ñược cài ñặt phần mềm hệ phân tán”. Hoặc chúng ta có thể coi
hệ phân tán là “một tập các máy tính ñộc lập, giao tiếp với người dùng như một hệ thống
thống nhất toàn vẹn”.
Tuy nhiên, khái niệm chính xác và tổng quá nhất về hệ phân tán là: “Hệ phân tán là
tập hợp các thiết bị tính riêng rẽ có thể giao tiếp với nhau”. Như vậy, các ñối tượng trong
hệ phân tán không nhất thiết phải là máy tính, mà có thể chỉ là các chíp xử lý, các thành
phần trong một bộ ña xử lý, các mạng cục bộ và Internet.
Như vậy, mục ñích chính của hệ phân tán là phối hợp hoạt ñộng của nhiều loại thiết
bị ñộc lập hoặc bán ñộc lập nhằm chia sẻ tài nguyên, ñảm bảo tính kháng lỗi và tính sẵn
sàng cho hệ thống.



Hình 1. Hệ phân tán

Ngày nay, hệ phân tán ñược ứng dụng trong rất nhiều lĩnh vực khác nhau, như giáo
dục, y tế, quốc phòng Nhờ ưu ñiểm là khả năng phối hợp các bộ xử lý ñộc lập, hệ phân
network

Bộ nhớ


c

c b


Bộ xử lý

Bộ nhớ

c

c b


Bộ xử lý

Bộ nhớ

c

c b


Bộ xử lý

6

tán có thể ñược sử dụng ñể giải quyết các bài toán phức tạp, mà nếu chỉ sử dụng một máy
tính thì không thể thực hiện ñược. Trên thế giới hiện có khá nhiều dự án ñã sử dụng mô

hình tính toán phân tán này. Ví dụ, như dự án SETI@home, với ý tưởng sử dụng thời gian
rỗi của các máy tính cá nhân kết nối vào mạng Internet ñể tìm kiếm các nền văn minh
ngoài Trái Đất. Đây là một phần của dự án SERENDIP (Search for Extraterrestrial Radio
Emissions from Nearby Developed Intelligent Populations) của ñại học California,
Berkeley (UC Berkeley), phân tích các kết quả quan sát của ñài thiên văn vô tuyến
Arecibo.
1.1.2. Ưu, nhược ñiểm của hệ phân tán
Hệ phân tán có rất nhiều ưu ñiểm so với các hệ thống tập trung:
• Tiết kiệm chi phí: Do có thể sử dụng kết hợp nhiều máy tính trong quá trình lưu
trữ và xử lý dữ liệu, nên trong các hệ phân tán không cần phải sử dụng những máy
chủ mạnh và tốn kém.
• Tăng tốc ñộ xử lý: Hiệu suất xử lý của hệ phân tán ñược nâng cao nhờ việc kết
hợp sức mạnh xử lý của nhiều máy tính lại với nhau, vì vậy thường hệ phân tán có
sức mạnh bằng nhiều máy tính cộng lại.
• Độ tin cậy cao: Các bộ xử lý trong hệ phân tán làm việc hoàn toàn ñộc lập. Khi
có một bộ xử lý bị lỗi hoặc ngừng làm việc, các bộ xử lý khác trong hệ thống vẫn
hoạt ñộng bình thường
• Khả năng mở rộng: Dễ dàng mở rộng hệ thống chỉ bằng cách thêm các bộ xử lý
mới vào.
• Khả năng chia sẻ tài nguyên: Các tài nguyên như dữ liệu hoặc các thiết bị ñắt tiền
ñược dùng chung, dễ dàng cho nhiều người dùng trong hệ thống cùng truy nhập.
• Khả năng truyền thông tin: Việc trao ñổi thông tin giữa nhiều người dùng trong
hệ thống rất dễ dàng.
Tuy nhiên, hệ phân tán cũng có một số nhược ñiểm. Các nhược ñiểm này liên quan
ñến vấn ñề kỹ thuật, vì vậy có thể khắc phục ñược bằng những công nghệ và thuật toán
mới
• Nhược ñiểm về phần mềm: Việc thiết kế, xây dựng và cài ñặt phần mềm trong hệ
phân tán khá phức tạp.
• Nhược ñiểm về truyền thông mạng: Độ trễ hay việc mất mát dữ liệu trong ñường
truyền mạng cũng là vấn ñề cần xử lý trong hệ phân tán

7

• Tính bảo mật: Nhiều người dùng và bộ xử lý tham gia vào hệ thống nên tính bảo
mật không cao
1.1.3. Đặc trưng hệ phân tán
Đặc ñiểm của hệ phân tán là phối hợp hoạt ñộng giữa các bộ xử lý bằng việc truyền
thông tin (thường là truyền tin qua mạng). Vì vậy, hệ phân tán có một số các ñặng trưng
sau ñây:
• Có ñộ trễ truyền thông: Phải mất một khoảng thời gian ñể một sự kiện xảy ra
trong hệ ảnh hưởng ñến toàn bộ hệ thống
• Không có ñồng hồ chung: Do ñộ trễ truyền thông, nên không thể ñồng bộ hóa
ñồng hồ của các bộ xử lý khác nhau. Vì vậy, người ta thường dùng khái niệm nhân
quả thay cho ñồng hồ vật lý.
• Không có bộ nhớ toàn cục: Các bộ xử lý có bộ nhớ cục bộ, nhưng không biết
ñược trạng thái toàn cục của hệ thống. Vì vậy cần có 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.
• 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.1.4. Ứng dụng hệ phân tán
Hệ phân tán có rất nhiều ứng dụng trong thực tế:
• Chia sẻ tải nguyên: Hệ phân tán kết nối các máy tính lại với nhau, vì vậy việc
chia sẻ tài nguyên phần cứng và phần mềm trở nên rất dễ dàng. Người sử dụng có
thể ngồi ở máy tính này, truy nhập và xử lý dữ liệu trong một máy tính khác cách
hàng nghìn cây số. Hiện nay, hệ phân tán còn có thể kết nối các thiết bị ñiện tử di
ñộng lại với nhau, tăng khả năng tương tác của người sử dụng. Các hệ cở sở dữ liệu

phân tán ra ñời dựa trên ứng dụng này. Thông tin có thể ñược lưu trữ ở nhiều vị trí
khác nhau, tăng ñộ an toàn của thông tin cũng như giảm hiện tượng thắt nút cổ chai
trong quá trình truy nhập
• Tính toán phân tán: Điển hình của ứng dụng này là mô hình tính toán lưới (Grid
Computing). Nhờ sự kết hợp tốc ñộ xử lý của nhiều máy tính với nhau, mô hình
8

tính toán phân tán sẽ giúp tăng hiệu suất cũng như giảm chi phí ñầu tư cho toàn bộ
hệ thống.

1.2. Các mô hình xử lý trong hệ phân tán
Trong các hệ phân tán hiện nay, tồn tại hai mô hình xử lý và truyền thông tin giữa
các bộ xử lý. Đó là “mô hình truyền thông báo” và “mô hình tác tử di ñộng”
Mô hình truyền thông báo là mô hình truyền thống. Trong ñó, mỗi bộ xử lý sẽ cài
ñặt một phần mềm phân tác cụ thể. Phần mềm này có trách nhiệm xử lý các sự kiện và
giao tiếp với các bộ xử lý khác bằng việc gửi các thông báo qua kênh truyền. Đây chính là
mô hình trao ñổi thông tin truyền thống trong các mạng máy tính.
Ngoài ra, hiện nay còn một mô hình mới ñược sử dụng trong các hệ phân tán, “mô
hình tác tử di ñộng (mobile agent)”. Điểm ñặc trưng của mô hình này là việc xử lý cũng
như trao ñổi thông tin hoàn toàn do các tác tử ñảm nhiệm. Trong ñó, các tác tử là các
chương trình tự trị, có khả năng di chuyển giữa các nút ñể tìm kiếm và xử lý thông tin.
Như vậy, trong mô hình này các nút chỉ là những “ñiểm dừng” của các tác tử, hoàn toàn
không ñóng vai trò gì trong vấn ñề xử lý.
Mô hình tác tử di ñộng có một số ưu ñiểm khác so với mô hình truyền thông báo.
Chúng ta sẽ lần lượt nghiên cứu cụ thể về từng mô hình ở phần tiếp theo.
1.2.1. Mô hình truyền thông báo
Một hệ phân tán có thể ñược mô tả dưới dạng một ñồ thị vô hướng. Trong ñó, các bộ
xử lý ñóng vai trò là các nút. Các kênh truyền giữa các bộ xử lý chính là các liên kết trong
ñồ thị [1][22].





Hình 2. Mô hình hệ phân tán

p
0

p
1

p
3

p
2

1

2

1

1

1

2

2


3

9

Như mô hình trên, hệ thống bao gồm 4 bộ xử lý ñược ký hiệu bởi 4 nút p
0
ñến p
3
, và
một số liên kết giữa các nút ñóng vai trò là kênh truyền dữ liệu. Lưu ý rằng trong hệ phân
tán, các nút không biết ñược cấu hình cũng như trạng thái của toàn hệ thống. Mỗi nút chỉ
biết ñược các liên kết kề nó và thường gán nhãn các liên kết theo thứ tự ñể phân biệt. Bậc
của một nút p chính là số liên kết kề với nút ñó, thường ký hiệu là deg
p

Trong mô hình truyền thông báo, các bộ xử lý có nhiệm vụ thực thi các chương trình
(theo một giải thuật nào ñó) và 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. Giải thuật cho mô hình truyền thông báo bao gồm một chương trình cục bộ
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ừ các hàng xóm của nó.
Tại mỗi bước trong quá trình thực hiện giải thuật phân tán, các bộ xử lý ñều có một
trạng thái nhất ñịnh, là trạng thái của các biến trong bộ nhớ mỗi bộ xử lý. Mỗi trạng thái
của bộ xử lý p
i
chứa 2 tập biến ñặc biệt, outbuf
i
(
l
) và inbuf

i
(
l
), với mọi
l
thỏa mãn 1 ≤
l
≤ deg
pi
. Trong ñó, outbuf
i
(
l
) 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
l
, nhưng chưa ñến nơi, và inbuf
i
(
l
) chứa các thông báo nhận ñược trên kênh
l
,
nhưng chưa xử lý. Tại trạng thái ban ñầu của mỗi bộ xử lý, inbuf
i
(
l
) là rỗng.

Một số khái niệm thường ñược xử dụng trong mô hình truyền thông báo
• Hàm chuyển (Transition function): có thể coi như một bước tính toán tại mỗi bộ
xử lý. Hàm chuyển nhận ñầu vào là trạng thái (của bộ xử lý) không bao gồm các
outbuf(
l
), và ñầu ra là một trạng thái có inbuf(
l
) rỗng. Như vậy các thông báo
ñang chờ ñược chuyển ñi không ảnh hưởng ñến quá trình xử lý hiện tại.
• 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 bộ
xử lý p
i
. Các trạng thái của các biến outbuf trong một cấu hình thể hiện các thông
báo ñang di chuyển qua các kênh truyền. Cấu hình ban ñầu là một vec tơ (q
0
,…,
q
n-1
) với q
i
là trạng thái ban ñầu của bộ xử lý p
i
. Cấu hình chính là trạng thái của
toàn bộ hệ thống

• Sự kiện: với các hệ thống chuyể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 ñặc trưng của hệ thống bao gồm ñiều kiện
an toàn và ñiều kiện sống ñộng. Trong ñó, ñ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.
10

Đ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.
Để thuận tiện cho việc nghiên cứu các giải thuật trong mô hình truyền thông báo,
người ta thường chia mô hình này sang làm 2 mô hình con, dựa trên ñặc trưng của hệ
thống mạng:
• Mô hình 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 trong các sự kiện, tức là không có giới hạn về thời
gian từ lúc thông báo gửi ñi ñến lúc nhận ñược, hoặc giới hạn về thời gian thực
hiện của bộ xử lý. 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. Trên thực tế, nếu hệ thống có cận thời gian cho mỗi sự
kiện là lớn và không cố ñịnh thì chúng ta có thể coi là hệ thống không ñồng bộ, ví
dụ mạng Internet.
• 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. Hay nói cách khác, các bộ xử lý
trong hệ thông thực hiện sự kiện tính và sự kiện giao trong một cận thời gian cố
ñịnh, ñồng bộ với các bộ xử lý khác. 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. Mô hình này không thực tế
nhưng khá thuận tiện trong việc thiết kế giải thuật vì loại bỏ ñược nhiều ñiểu không
chắc chắn.
Để ñánh giá hiệu suất của một giải thuật trong mô hình truyền thông báo, thông
thường chúng ta sử dụng 2 ñộ ño là: ñộ phức tạp thông báo và ñộ phức tạp thời gian
• Độ phức tạp thông báo (message complexity) là số tối ña các thông báo gửi ñi
trong thực hiện thỏa ñáng. Một thuật toán có ñộ phức tạp thông báo thấp rất phù
hợp với những mạng có băng thông nhỏ. Độ phức tạp thông báo áp dụng chung cho
cả hệ thống ñồng bộ và không ñồng bộ
• Độ phức tạp thời gian (time complexity) 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à
11

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 vị.
1.2.2. Mô hình tác tử di ñộng
Mô tả một hệ thống phân tán dưới dạng một ñồ thị vô hướng G = (V, E), trong ñó V

và E tương ứng là tập các nút và tập các cạnh của G, với các nút là các bộ xử lý, mỗi cạnh
là một kênh truyền mà ở trên ñó hai bộ xử lý trong mạng có thể liên lạc trực tiếp với nhau.
Liên kết giữa nút u và nút v ñược ký hiệu bởi e
uv
hoặc e
vu
. [1][22]
Trong mô hình tác tử di ñộng, các bộ xử lý cũng như các liên kết chỉ ñóng vai trò
như một bộ khung. Đối tượng thực sự làm nhiệm vụ xử lý cũng như truyền thông tin ñược
gọi là các tác tử di ñộng (mobile agent). Mỗi tác tử là một chương trình tự trị có thể di cư
từ một nút sang một nút khác trong mạng ñể xử lý cũng như thu thập và trao ñổi thông tin
với nhau. Như vậy trong mô hình tác tử di ñộng, các bộ xử lý hoàn toàn ñộc lập so với
các phần mềm phân tán. Để một bộ xử lý tham gia vào hệ thống, ta chỉ cần kết nối bộ xử
lý ñó vào mạng, hoàn toàn không cần cài ñặt thêm phần mềm gì cả.



Hình 3. Mô hình tác tử di ñộng

Một tác tử tại nút u chỉ có thể di cư sang nút v nếu có liên kết giữa 2 nút u và v. Số
lượng các nút và các tác tử tương ứng ký hiệu là N và k. Đối với ña số các hệ thống, các
tác tử và các nút ñược gán một ñịnh danh phân biệt. Tại thời ñiểm ban ñầu, các tác tử
không biết số lượng nút N, số lượng tác tử k cũng như ñịnh danh của các tác tử khác. Một
12

tác tử ñược khởi tạo tại một nút nào ñó trong mạng, và một nút có thể chứa nhiều tác tử.
Nut má tác tử ñược khởi tạo ban ñầu ñược gọi là nút nhà của tác tử.
Các tác tử có thể di cư từ nút này sang nút khác, bằng cách thực hiện thao tác sau
ñây:
• move(v, λ

v
(e)): thực hiện việc di cư từ nút v sang nút lân cận theo liên kết λ
v
(e)
Mỗi nút v có một bảng trắng (whiteboard), là vùng bộ nhớ cục bộ mà ở ñó các tác tử
trên v có thể ghi, ñọc và xóa thông tin. Mỗi tác tử có thể thực hiện những thao tác sau ñây
trên bảng trắng của mỗi nút:
• write(v, infos): một tác tử ghi thông tin infos lên bảng trắng của nút v.
• read(v): một tác tử ñọc thông tin trên bảng trắng của nút v.
• delete(v): một tác tử xóa thông tin trên bảng trắng của v.
Việc truy cập bảng trắng của nút ñược thực hiện theo quy tắc loại trừ: khi có nhiều
tác tử trên một nút thực hiện các thao tác của chúng, các thao tác ñược thực hiện một cách
tuần tự theo một thứ tự tùy ý.
Các tác tử có thể sử dụng bảng trắng ñể liên lạc với nhau hoặc chứa các thông tin
ñiều khiển. Tùy vào từng cách thức lưu trữ trong bảng trắng, chúng ta có thể phân loại mô
hình tác tử thành nhiều mô hình con khác nhau. Vấn ñề này sẽ ñược ñề cập chi tiết trong
phần tiếp theo.
Một số khái niệm trong mô hình tác tử:
• Trạng thái của một tác tử là trạng thái của các biến cục bộ của tác tử, bao gồm
các thông tin ñiều khiển và các thông tin mà tác tử ñã thu thập từ các tác tử khác.
• Trạng thái của một nút ñược biểu diễn bởi trạng thái bảng trắng của nó.
• Cấu hình hệ thống C bao gồm trạng thái của tất cả các nút, tất cả các tác tử, và vị
trí của mỗi tác tử trong mạng. Mỗi một cấu hình hệ thống ñược thay ñổi bởi các sự
kiện của các tác tử (sự kiện ñọc, ghi, và di cư). Kí hiệu C
0
là cấu hình ban ñầu của
hệ thống và Ev
i
là một tập các sự kiện xuất hiện ñồng thời tại cấu hình C
i

.
• Một thực hiện là một chuỗi xen kẽ các cấu hình và các tập sự kiện: EX = C
0
, Ev
0
,
C
1
, Ev
1
, C
2
, … sao cho sự xuất hiện các sự kiện Ev
i-1
thay ñổi cấu hình từ C
i-1
sang
C
i
.
Tác tử p
j
kết thúc tại cấu hình C
i
nếu p
j
không thực hiện bất cứ một thao tác nào sau
cấu hình C
i
.

13

Độ dài ñường ñi của một tác tử là tổng số bước di chuyển của một tác tử trong một
thực hiện.
Thông thường, trong các giải thuật cho mô hình tác tử di ñộng, chúng ta tập chung
vào ñộ phức tạp di chuyển. Do mỗi bước di cư của tác tử sẽ làm giảm ñáng kể hiệu suất
của giải thuật. Độ phức tạp di chuyển của giải thuật là tổng số bước di chuyển lớn nhất có
thể của tất cả các tác tử trong hệ tác tử di ñộng từ lúc bắt ñầu cho ñến khi kết thúc giải
thuật.
Trong một số hệ thống phân tán có trạng thái khác nhau, như hệ thống với mạng
ñộng (dynamic network). Thì ñộ phức tạp di chuyển không còn là yếu tố hàng ñầu ñể
ñánh giá hiệu suất của thuật toán nữa. Chúng ta thường sử dụng một số yếu tố khác như
ñộ yên tĩnh (quiescene). Vấn ñề này sẽ ñược ñề cập chi tiết ở chương 3.
1.2.3. Giải thuật chuyển ñổi từ mô hình thông báo sang mô hình tác tử
Mô hình truyền thông báo là mô hình quen thuộc trên thực tế, ñược sử dụng chủ yếu
trong các hệ phân tán từ trước tới nay. Các nghiên cứu về giải thuật phân tán ñều chủ yếu
tập trung vào mô hình truyền thông báo này. Nhiều giải thuật ñã ñược nghiên cứu rất sâu,
trở thành những giải thuật kinh ñiển, ví dụ như giải thuật bầu thủ lĩnh, loại trừ lẫn nhau
hay một số giải thuật xây dựng cây khung tối thiểu. Để xây dựng các giải thuật cho mô
hình tác tử, chúng ta hay xuất phát từ các giải thuật trong mô hình truyền thông báo.
Thậm chí, nếu có thể chuyển trực tiếp giải thuật trong mô hình truyền thông báo sang mô
hình tác tử mà vẫn giữ nguyên ñược ñộ phức tạp của giải thuật là tốt nhất. Sử dụng những
phương pháp chuyển ñổi này, ta có thể tận dụng ñược hết những nghiên cứu về giải thuật
phân tán ñã có, mà không phải băn khoăn về vấn ñề giải thuật ñó thuộc mô hình nào.
Đã có nhiều nghiên cứu chi tiết về vấn ñề này. Các giải thuật chuyển ñổi từ mô hình
truyền thông báo sang mô hình tác tử ñã ñược nghiên cứu và ñề cập chi tiết trong nhiều
tài liệu tham khảo [10]. Tuy nhiên, hầu hết các giải thuật ñều có ñộ phức tạp chuyển ñổi
lớn với O(N) bước di chuyển của tác tử cho việc truyền một thông báo. Tức là một giải
thuật có ñộ phức tạp O(N) trong mô hình thông báo, sẽ phải cần ñộ phức tạp O(N
2

) trong
mô hình tác tử. Độ phức tạp lớn như vậy là vì các giải thuật này còn ñảm bảo thêm yếu tố
kháng lỗi, ñề phòng trường hợp tác tử bị hỏng hoặc mất mát trong quá trình di chuyển.
Yếu tố này không thực sự cần thiết ñối với những nghiên cứu ñề cập trong luận văn này.
Tại chương 4, chúng ta sẽ xem xét kỹ lưỡng những biện pháp khắc phục trong quá trình
chuyển ñổi giải thuật. Vì vậy ở ñây, tôi chỉ giới thiệu một giải thuật ñơn giản ñể chuyển
ñổi giữa hai mô hình, với ñộ phức tạp O(1) bước di chuyển của tác tử cho việc truyền một
thông báo.
14

Giải thuật này có tên gọi là giải thuật MSA, ñược ñề cập chi tiết trong bài báo [22].
Đây là một giải thuật khá hiệu quả trong việc chuyển ñổi từ mô hình truyền thông báo
sang mô hình tác tử. Tư tưởng của giải thuật tương ñối ñơn giản ñơn giản: mỗi sự kiên
tính tại một nút v sẽ ñược thực hiện bởi một tác tử nào ñó khi nó di chuyển ñến v. Các
thông báo tạo ra cũng như các ñích ñến của chúng ñược lưu trong một hàng ñợi gửi S-
queue
v
trên bảng trắng. Mỗi tác tử khi di cư ñến một nút, sẽ thực hiện các tính toán cần
thiết, và lấy một thông báo từ hàng ñợi gửi, di cư ñến nút ñích ñể truyền thông báo cho
nút ñó. Nếu không có thông báo nào trong hàng ñợi gửi S-queue
u
, thì tác tử p
i
quay trở lại
nút liền kề trước khi di chuyển (còn gọi là bước quay lui – backtracking). Để làm ñược
ñiều này, mỗi tác tử p
i
lưu trữ một tập biến visit
i
, trong ñó lưu trữ thông tin những nút mà

tác tử p
i
ñã ñến thăm. Các tác tử trong mạng liên tục thực hiện việc tính toán, di chuyển
và quay lui như vậy cho ñến khi toàn bộ các hàng ñợi gửi tại các nút rỗng, và các tác tử
quay lại nút nhà của mình. Khi ñó, giải thuật MSA kết thúc.

Dữ liệu ghi trên bảng trắng của mỗi nút v
A: giải thuật truyển thông báo
s
v
: lưu trạng thái của nút v trong A
S-queue
v
: một hàng ñợi các thông báo sẽ ñược gửi (khởi tạo S-queue =
φ
)
/* một cặp (m,w) trong hàng ñợi S-queue có nghĩa là thông báo m sẽ ñược gửi tới
hàng xóm w */

Các biến của một tác tử p
i

visit
i
: một ngăn xếp chứa các nút mà p
i
ñã ñi qua (khởi tạo visit
i
=
φ

)
msg
i
: một không gian nhớ lưu nội dung của một thông báo.

+ Khi một tác tử p
i
ñược ñịnh vị ban ñầu trên nút bắt ñầu v:
khởi tạo giải thuật A
Process(
φ
)

+ Với tác tử p
i
từ nút u ñến nút v
If (msg
i

φ
) Then /* p
i
gửi một thông báo tới nút v */
Đẩy u vào hàng ñợi visit
i

Process((msg
i
, u))
Else Send /* p

i
quay lui trở lại v */

Produce Process((m,u)) /* tác tử thực hiện tính toán với thông báo vừa nhận*/
Thực hiện tính toán cục bộ (s
v
, (m, u)) | (s
v

, M′)
15

s
v
= s
v

và add ∀(m

, u

) ∈ M

vào hàng ñợi S-queue
v
.
/* các thông báo phát sinh ñược lưu vào hàng ñợi chuyển */
Send

Produce Send /* Lấy thông báo trong hàng ñợi và chuyển ñi */

If ( S-queue
v

φ
) Then
Xóa thực thể ñầu tiên (m, u) từ S-queue
v

msg
i
= m
di chuyển tới u /* p
i
thực hiện một bước chuyển m sang nút u */
Else Return /* nếu hàng ñợi rỗng thì quay lui */

Produce Return
If visit
i
=
φ
Then terminate
Else
lấy u từ ngăn xếp visit
i

msg
i
=
φ


di chuyển tới u /* p
i
thực hiện bước chuyển quay lui * /

Hình 4. Giải thuật MSA [22]

Tính ñúng ñắn của giải thuật MSA: [22]
Để chứng minh giải thuật MSA thực sự mô phỏng ñược một giải thuật từ mô hình
truyền thông báo sang mô hình tác tử di ñộng. Ta chứng minh một số ñịnh lý sau ñây:
Định lý 1.1. Cho A là một giải thuật chuyển thông báo có hữu hạn các thông báo
trao ñổi của bất kỳ thực hiện nào trong một hệ thống không ñồng bộ. Mọi thực hiện có thể
của giải thuật MSA mô phỏng một số thực hiện của A.
Chứng minh:
Do các thông báo cần chuyển ñều lưu trong hàng ñợi chuyển S-queue
u
, nên mỗi
thông báo chỉ ñược chuyển một lần duy nhất. Vì vậy thuật toán MSA ñảm bảo tính toàn
vẹn (các thông báo không bị lặp).
Để chứng minh rằng một thực hiện của MSA thỏa mãn thuộc tính sống ñộng, chúng
ta chỉ ra rằng hàng ñợi gửi S-queue ở tất cả các nút cuối cùng sẽ rỗng. Chứng minh phản
chứng, một thông báo m là thông báo ñầu tiên trong hàng ñợi S-queue
v
không bao giờ
ñược giao bởi bất cứ tác tử nào. Cho p
i
là tác tử lấy chuyển thông báo trước m từ hàng
ñợi. Vì S-queue
v


φ
, tác tử p
i
thực hiện bước chuyển giao từ nút v và ñưa nút v vào hàng
16

ñợi visit
i
của nó. Nếu tác tử p
i
cuối cùng cũng trở về nút v trong hàng ñợi visit
i
của nó, p
i

tiếp tục bước chuyển giao từ v cho ñến khi S-queue
v
trở nên rỗng. Kết quả, thông báo m
cuối cùng cũng ñược giao bởi một tác tử. Trong trường hợp tác tử p
i
không trở về nút v
trong ngăn xếp visit
i
của nó. Có nghĩa tác tử p
i
thực hiện các bước chuyển giao vô hạn lần
trên nút khác v vì cuối cùng p
i
sẽ trở về nút v bởi các bước chuyển quay lui nếu như số
bước chuyển giao hữu hạn. Một tác tử thực hiện bước chuyển giao tại một nút u chỉ khi S-

queue khác rỗng, và một thông báo ñược lấy từ S-queue
u
bởi một bước chuyển giao. Vì
vậy, một số vô hạn các thông báo ñược thêm vào các hàng ñợi S-queue vì tác tử p
i
thực
hiện các bước chuyển giao vô hạn lần. Điều này suy ra rằng một thực hiện của giải thuật
gốc A bao gồm một số vô hạn các sự kiện gửi. Điều này mâu thuẫn với số thông báo trao
ñổi trong bất cứ thực hiện nào của A là hữu hạn. Như vậy, trong cả hai trường hợp, các
tác tử chỉ dừng lại khi tất cả các hàng ñợi gửi là rỗng.
Bổ ñề 1.1: Tất cả các tác tử kết thúc giải thuật MSA trong thời gian hữu hạn trong
mọi thực hiện có thể.
Mỗi giải thuật MSA mô phỏng giải thuật truyền thông báo A. Nếu mọi thực hiện của
giải thuật A có một số hữu hạn các bước truyền thông báo, thì sau khi mô phỏng, mọi
thực hiện của giải thuật MSA cũng có một số hữu hạn các bước di chuyển của tác tử.
Định lý 1.2: Giả sử tổng số các thông báo trao ñổi trong mọi thực hiện của giải
thuật chuyển thông báo A không quá M
A
. Thì, giải thuật MSA mô phỏng giải thuật A với
không quá 2. M
A
bước di chuyển trong hệ tác tử di ñộng.
Chứng minh. Một tác tử thực hiện truyền thông báo bằng 2 bước di chuyển, một
bước giao và một bước quay lui. Với mỗi thông báo, tác tử sẽ thực hiện một bước di
chuyển ñể gửi thông báo ñó, và xóa nó trong hàng ñợi gửi. Vì vậy, một thông báo chỉ
tương ứng với một bước chuyển giao. Với mỗi bước giao, tác tử sẽ ñưa nút ñó vào biến
visit ñể thực hiện quay lui. Mỗi lần quay lui, nút trong biến visit sẽ bị xóa. Vì vậy, mỗi
bước chuyển giao chỉ tương ứng với một bước quay lui. Như vậy một giải thuật A có
không quá M
A

thông báo cần chuyển, thì sau khi mô phỏng sẽ có không quá 2. M
A
các
bước di chuyển của tác tử.
Chú ý: giải thuật MSA chỉ chuyển ñối chính xác với những giải thuật truyền thông
báo không tự ñộng phát sinh thông báo tại mỗi nút. Hay những giải thuật mà thông báo
ñầu ra tại một nút chỉ xuất hiện khi nút ñó có thông báo tại ñầu vào. Vì vậy, khi áp dụng
giải thuật MSA tại thuật toán thứ 3 trong chương 4, chúng ta sẽ phải có những thay ñổi
cho phù hợp.
17

1.3. Phân loại mô hình tác tử di ñộng
Để tiện cho việc nghiên cứu giải thuật, tùy vào ñặc ñiểm của mạng cũng như ñặc
ñiểm của các nút, chúng ta có thể phân loại mô hình tác tử ra thành một số loại con sau
ñây [21]:
• Dựa vào ñịnh danh của tác tử, ta có thể chia mô hình tác tử ra làm 2 loại con: mô
hình tác tử có ñịnh danh và mô hình tác tử vô danh.
 Trong mô hình tác tử có ñịnh danh, mỗi tác tử cũng như mỗi nút ñược gán
một ñịnh danh duy nhất và phân biệt. Nhờ ñó, các tác tử có thể phân biệt lẫn
nhau cũng như biết ñược vị trí nút mà mình ñang ñứng. Các giải thuật thiết kế
cho mô hình tác tử có ñịnh danh thường ñơn giản hơn. Vì vậy, mô hình này hay
ñược sử dụng ñể nghiên cứu giải thuật. Hiện nay, các giải thuật cho mô hình tác
tử nếu không có ñiều kiện gì, thì mặc nhiên là thiết kế cho mô hình tác tử có
ñịnh danh.
 Trong mô hình tác tử không ñịnh danh, các tác tử khi mới khởi tạo cũng như
các nút hoàn toàn không ñược gán một ñịnh danh nào cả. Vì vậy, các giải thuật
thiết kế cho mô hình này rất khó khăn, trong nhiều trường hợp không thể thực
hiện ñược.
• Dựa vào tính ñồng bộ trong mạng, giống như trong mô hình thông báo, mô hình
tác tử cũng có thể ñược chia ra làm 2 dạng: mô hình tác tử ñồng bộ và mô hình tác

tử không ñồng bộ.
 Mô hình tác tử ñồng bộ là mô hình mà tác tử mà các hoạt ñộng bao gồm xử lý
và di chuyển theo từng nhịp thời gian. Trong mỗi nhịp, tác tử sẽ thực hiện một
loạt các công việc, bao gồm di cư ñến một nút, truy cập vào bảng trắng và thực
hiện các tính toán cục bộ trên nút ñó. và tiến hành rời khỏi nút này di cư ñến
một nút khác. Nhịp thời gian kết thúc khi tác tử ñến ñược nút ñích. Hay nói cách
khác, mô hình tác tử ñồng bộ là mô hình có cận trên của thời gian ñối với mỗi
bước di chuyển và xử lý của tác tử. Khi nhiều hơn một tác tử cùng ñến một nút,
các tác tử vẫn xử lý trong cùng một nhịp, nhưng theo thứ tự tùy ý. Mô hình tác
tử ñồng bộ thường ký hiệu là Synch.
 Mô hình tác tử không ñồng bộ là mô hình mà không có giới hạn thời gian ñối
với các hành ñộng của tác tử. Thời gian di cư và xử lý của tác tử là không xác
ñịnh, nhưng hữu hạn. Khi một tác tử ñã rời khỏi một nút, chắc chắn tại một thời
ñiểm nào ñó, nó sẽ ñến nút ñích. Các hệ thống trên thực tế có thời gian truyền
dữ liệu lớn và không cố ñịnh thường ñược coi là mô hình không ñồng bộ. Đối
với mô hình không ñồng bộ, các giải thuật thường phức tạp hơn vì phải không
18

phụ thuộc vào ñộ trễ cũng như thứ tự truyền của các thông báo. Điều này nhiều
lúc không thực hiện ñược, ví dụ như các thuật toán trong mạng ñộng sẽ ñề cập
ñến ở các chương sau. Mô hình tác tử không ñồng bộ thường ký hiệu là Asynch.
• Dựa vào giới hạn của bảng trắng, mô hình tác tử có thể chia làm 3 loại con sau
ñây:
 Mô hình bảng trắng ñầy ñủ (full-whiteboard): Trong mô hình này, bảng trắng
có thể lưu tất cả các thông tin cần thiết, bao gồm cả các thông tin ñiều khiển
phát sinh trong quá trình xử lý cũng như các thông tin riêng của tác tử. Một tác
tử có thể lưu trữ thông tin cần trao ñổi tại các nút, các tác tử khác khi ñến nút
ñó, có thể lấy ñược thông tin của những tác tử ñã ghé thăm nút ñó. Vì vậy 2 tác
tử không cần gặp nhau vẫn có thể trao ñổi ñược thông tin với nhau. Tuy nhiên,
phương pháp này có nhược ñiểm về giới hạn của bảng trắng phải có ñộ lớn

thích hợp, và ñộ an toàn của thông tin trao ñổi không ñược ñảm bảo. Đối với
các hệ thống phân tán hoạt ñộng trên những mạng chung, người ta thường ít khi
sử dụng mô hình này. Mô hình bảng trắng ñầy ñủ thường ñược ký hiệu là FW
 Mô hình bảng trắng ñiều khiển (control_whiteboard): Đây là mô hình thông
dụng nhất, thường ñược sử dụng trong những nghiên cứu thuật toán về mô hình
tác tử. Trong mô hình này, bảng trắng chỉ lưu các thông tin ñiều khiển phát sinh
trong quá trình xử lý tại mỗi nút. Các thông tin này ñóng vai trong ñịnh hướng
về giải thuật cũng như ñường ñi của các tác tử. Vì vậy, ñộ lớn của bảng trắng
trong mô hình này không cần nhiều. Do các tác tử không lưu trữ thông tin riêng
của mình lên bảng trắng, nên thông tin sẽ ñược bảo mật cẩn thận hơn. Nhưng ñể
trao ñổi thông tin, hai tác tử cần phải cũng gặp mặt nhau tại một nút. Mô hình
bảng trắng ñiều khiển thường ký hiệu là CW
 Mô hình không bảng trắng (none_whiteboard): Trong mô hình này, các nút
hoàn toàn không có bảng trắng. Vì vậy các tác tử hầu như không thể ñịnh
hướng ñược trong quá trình di chuyển và thực hiện giải thuật. Mô hình không
bảng trắng rất khó thiết kế giải thuật và không phù hợp với thực tế. Vì vậy có rất
ít những nghiên cứu về mô hình này. Mô hình không bảng trắng ký hiệu là NW.
• Dựa vào trạng thái các liên kết, có thể chia làm 2 loại con là mô hình mạng song
công và mô hình mạng ñơn công.
 Mô hình mạng song công (full-duplex): Trong mô hình này, các tác tử có thể
cùng di chuyển theo cả hai hướng trong các liên kết trên mạng. Chú ý, khi hai
tác tử di chuyển trên cùng một liên kết theo 2 hướng ngược nhau, chúng vẫn
19

không gặp nhau. Vì vậy, các tác tử chỉ trao ñổi ñược thông tin khi cùng di
chuyển ñến một nút tại cùng một thời ñiểm.
 Mô hình mạng ñơn công (half-duplex): Mỗi liên kết chỉ cho phép tác tử di
chuyển theo một chiều tại một thời ñiểm.



20

CHƯƠNG 2. TRUYỀN BÁ THÔNG TIN GIỮA CÁC TÁC
TỬ TRONG MẠNG Đ ỘNG

2.1. Bài toán truyền bá thông tin giữa các tác tử
Bài toán truyền bá thông tin giữa các tác tử (Mobile agents gossip problem –
MAGP) là một trong những bài toán nền tảng, quan trọng ñể giải quyết các vấn ñề khác
trong mô hình tác tử di ñộng. Trong một mô hình tác tử, mỗi tác tử có thể có những thông
tin riêng của mình. Ví dụ như trong mạng sensor, mỗi sensor trong mạng sẽ ño các thông
số về môi trường tại vị trí của mình, nhưng ñể xử lý ñược, các sensor phải biết ñược thông
tin về mỗi trường tại các vị trí khác. Vì vậy, cần phải có một thuật toán ñể trao ñổi thông
tin giữa các sensor với nhau. Đây cũng chính là mục ñích của bài toán MAGP, các tác tử
trong hệ thống phải tìm cách trao ñổi thông tin với các tác tử khác. Bài toán ñược giải
quyết khi mỗi tác tử biết toàn bộ thông tin của tất cả các tác tử khác trong mạng [1][22].
Ta có thể mô tả bài toán MAGP như sau:
Một hệ thống phân tán mô tả dưới dạng một ñồ thị vô hướng G = (V, E), trong ñó V
và E tương ứng là tập các nút và tập các cạnh của ñồ thị, với các nút là các bộ xử lý, mỗi
cạnh là một kênh truyền mà ở trên ñó hai bộ xử lý trong mạng có thể liên lạc trực tiếp với
nhau. Liên kết giữa nút u và nút v ñược ký hiệu bởi e
uv
hoặc e
vu
. Trong hệ thống có k tác
tử, ký hiệu là p
1
, p
2
, . . . p
k

. Mỗi tác tử p
j
có thông tin riêng I
j
.
Đặt S
j
(C
i
) là một tập thông tin mà tác tử p
j
có trong cấu hình C
i
. Tại cấu hình khởi
tạo C
0
, mỗi tác tử p
j
có chỉ có duy nhất thông tin riêng I
j
: S
j
(C
0
) = {I
j
}
Bài toán MAGP ñược giải quyết trong cấu hình C
i
nếu tất cả k tác tử kết thúc và thỏa

mãn ñiều kiện sau ñây:
∀j (0 ≤ j < k) S
j
(C
i
) =
kl0 <≤
U
{I
l
}
21



Hình 5. Truyền bá thông tin giữa các tác tử

Tùy vào từng loại mô hình tác tử di ñộng khác nhau, bài toán MAGP sẽ có những
cách giải quyết khác nhau. Ví dụ như trong mô hình FW (mô hình bảng trắng ñầy ñủ), các
tác tử có thể lưu trữ thông tin riêng I
j
trên bảng trắng, vì vậy các tác tử không cần gặp mặt
nhau vẫn có thể trao ñổi thông tin. Trong trường hợp này, mỗi tác tử chỉ cần duyệt một
lần toàn mạng là ñã có thể thu thập ñược thông tin của toàn bộ các tác tử khác. Tuy nhiên,
mô hình này không phù hợp với thực tế.
Hiện nay, các nghiên cứu tập trung chủ yếu vào mô hình CW (mô hình bảng trắng
ñiều khiển). Trong mô hình này, các tác tử không ñược phép viết thông tin riêng I
j
lên
bảng trắng. Vì vậy, 2 tác tử chỉ trao ñổi thông tin khi chúng gặp ñược nhau. Lưu ý, các

tác tử không chỉ trao ñổi thông tin riêng của mình, mà còn trao ñổi tất cả các thông tin ñã
thu thập ñược từ ñầu ñến thời ñiểm gặp nhau. Mô hình trao ñổi thông tin như sau: Tại cấu
hình C
i
, có P tác tử cùng ñến một nút, thì thông tin mà mỗi tác tử trong P tác tử này có
ñược tại cấu hình C
i+1
ñược tính như sau:
22

∀p
j


P: S
j
(C
i+1
) =
Pp
l

U
{S
l
(C
i
)}
Mô hình CW là mô hình phù hợp ñối bài toán truyền bá thông tin trên thực tế. Phần
tiếp theo, tôi sẽ trình bày một số giải thuật liên quan ñến mô hình này.


2.2. Một số giải thuật cho bài toán truyền bá thông tin
2.2.1. Giải thuật hẹn gặp (rendezvous algorithm)
Đây là một trong những cách tiếp cận ñầu tiên ñể giải quyết bài toán truyền bá thông
tin giữa các tác tử, ñã ñược nhiều chuyên gia nghiên cứu. Do ñặc ñiểm của mô hình CW,
các tác tử phải gặp nhau tại một nút mới trao ñổi ñược thông tin. Vì vậy, ý tưởng của giải
thuật là cho tất cả các tác tử 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 sẽ giải quyết ñược bài toán
MAGP [18].


Hình 6. Các tác tử hẹn gặp tại một nút ñể trao ñổi thông tin
Giải thuật hẹn gặp yêu cầu mỗi tác tử phải biết rõ topo của toàn mạng, ñể chọn ñược
thời ñiểm và vị trí hẹn gặp thích hợp. Như vậy, các tác tử cần duyệt toàn mạng ñể lấy
ñược topo về mạng, trong quá trình duyệt toàn mạng, mỗi tác tử xác ñịnh cho mình ñiểm
hẹn gặp tốt, các tác tử thỏa thuận với nhau thời gian hẹn gặp và vị trí hẹn gặp, sau ñó tập
23

kết tại nút hẹn gặp ñể trao ñổi thông tin. Cụ thể hơn, một giải thuật hẹn gặp bao gồm bốn
bước sau:
• Duyệt toàn mạng.
• Tìm các vị trí hẹn gặp tốt.
• Sắp xếp trước thời gian hẹn gặp, chọn ñiểm hẹn gặp tốt nhất.
• Di chuyển ñến ñiểm hẹn gặp ñó, và chia sẻ thông tin với tác tử khác.
Giải thuật hẹn gặp có ñộ phức tạp bước di chuyển của tác tử và thời gian thực hiện
lớn. Đối với mạng có N nút, M liên kết và k tác tử, ñể duyệt toàn mạng, mỗi tác tử sẽ tốn
ñộ phức tạp di chuyển là O(M). Như vậy k tác tử sẽ yêu cầu ñộ phức tạp di chuyển là
O(kM). Việc tìm ñiểm hẹn gặp và chọn ñiểm hẹn gặp tốt nhất là một vấn ñề không hề ñơn
giản, và rất khó thực hiện khi mạng lớn. Chẳng hạn, ñể giải quyết bài toán truyền bá
thông tin giữa các tác tử, với k tác tử trong một mạng tuyến tính N nút (mạng dạng bus),

chúng ta có thể làm như sau: p là tác tử tận cùng bên trái, tác tử p di chuyển ñến tận cùng
bên phải của mạng ñể thu thập thông tin của tất cả các tác tử, sau ñó, quay về tận cùng
bên trái ñể phân phát thông tin cho tất cả các tác tử. Kết quả là, mỗi tác tử ñều nhận ñược
thông tin của tất cả các tác tử còn lại, chi phí bước di chuyển cho cách này là 2N. Trong
khi giải thuật hẹn gặp có cận dưới số bước tác tử di chuyển ñã là

(kM), lớn hơn rất
nhiều so với cách di chuyển bình thường.
Trong trường hợp mạng ñộng, giải thuật hẹn gặp còn gặp nhiều vấn ñề phức tạp hơn
nữa. Do vị trí hẹn gặp trong mạng ñộng có thể bị mất bất cứ lúc nào. Vì vậy, trường hợp
các tác tử ñã chọn ra ñược một ñiểm hẹn gặp thích hợp, nhưng không thể di chuyển ñược
ñến ñiểm ñó là rất dễ xảy ra. Vì vậy, trong nghiên cứu về bài toán MAGP trong mạng
ñộng nay, chúng ta sẽ ñi theo một hướng tiếp cận khác.
2.2.2. Giải thuật bầu thủ lĩnh
Một cách tiếp cận khác cho bài toán MAGP ñược các tác giả ñưa ra trong [22]. Giải
thuật này dựa trên ý tưởng chọn ra một tác tử làm nhiệm vụ thu thập và truyền thông tin
cho tất cả các tác tử khác. Đầu tiên, các tác tử bằng một cách nào ñó ñể chọn ra một tác tử
(gọi là tác tử thủ lĩnh), tác tử này sau ñó sẽ di chuyển tới tất cả các nút trong mạng (trong
khi các tác tử khác ñứng yên), tìm gặp và trao ñổi thông tin với tất cả các tác tử còn lại.
Như vậy, giải thuật này ñược chia ra làm 2 giai ñoạn:
• Giai ñoạn bầu chọn: Một tác tử thủ lĩnh ñược bầu chọn từ k tác tử.
• Giai ñoạn duyệt: Tác tử thủ lĩnh di chuyển toàn mạng ñể thu thập và phân phát
thông tin cho tất cả các tác tử khác.

×