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

Ứng dụng cây quyết định mờ trong khai phá dữ liệu

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 (1.19 MB, 65 trang )



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


CAO HÙNG CƯỜNG


ỨNG DỤNG CÂY QUYẾT ĐỊNH MỜ TRONG KHAI
PHÁ DỮ LIỆU

Ngành: Công nghệ thông tin
Mã số: 1.01.10

LUẬN VĂN THẠC SỸ

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS. TS. HỒ THUẦN



Hà Nội - 2007
2

MỤC LỤC

LỜI CẢM ƠN 1
MỤC LỤC 2
CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT 4
DANH SÁCH CÁC HÌNH VẼ 6


MỞ ĐẦU 7
CHƢƠNG 1. HỆ PHÂN TÁN 9
1.1. Khái niệm hệ phân tán 9
1.2. Vai trò của hệ phân tán 9
1.3. Đặc trƣng của các hệ phân tán 11
1.4. Mô hình hóa các hệ phân tán 12
1.4.1. Mô hình chuyển thông báo 13
1.4.2. Mô hình với bộ nhớ dùng chung 13
1.4.3. Mô hình xen kẽ 14
1.4.4. Thực hiện và những tính chất của thực hiện 14
1.5. Đánh giá độ phức tạp 16
1.6. Khả năng kháng lỗi và tính tự ổn định 17
1.6.1. Khả năng kháng lỗi 17
1.6.2. Tính chất tự ổn định 17
1.6.3. Vai trò của tự ổn định 18
1.6.4. Đánh giá độ phức tạp 19
CHƢƠNG 2. CÁC GIẢI THUẬT SƠ ĐẲNG 21
2.1. Giới thiệu 21
2.2. Bài toán 23
2.3. Đánh giá độ phức tạp 24
2.4. Giải thuật Phát tỏa Đầy đủ 25
2.5. Giải thuật Cập nhật Tăng trƣởng [4] 27
3
CHƢƠNG 3. GIẢI THUẬT CẬP NHẬT VỚI TRI THỨC BỘ PHẬN [3] 32
3.1. Tƣ tƣởng 32
3.2. Giải thuật 33
3.3. Tính đúng đắn và độ phức tạp 37
3.4. Ví dụ một thực hiện 38
CHƢƠNG 4. GIẢI THUẬT AS CẢI TIẾN 44
4.1. Đặt vấn đề 45

4.2. Thực hiện cải tiến 45
4.3. Tính đúng đắn và độ phức tạp 49
4.4. Ví dụ một thực hiện 52
CHƢƠNG 5. GIẢI THUẬT DUY TRÌ DỮ LIỆU CHUNG PHÂN TÁN ÁP DỤNG
TRONG THỰC TIỄN 58
5.1. Hệ thống động với tôpô bất kỳ 58
5.2. Dữ liệu chung phân tán 59
5.3. Độ dài dữ liệu không cố định 59
5.4. Khả năng kháng lỗi và tính tự ổn định 60
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64

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

TT
Tiếng Việt
Tiếng Anh
Ý nghĩa
1
Bộ xử lý
Processor
Một thực thể trong mạng
2
Cập nhật Tăng
trưởng
Incremental
Update
Cập nhật đƣợc thực hiện lần lƣợt trên
từng bộ xử lý

3
Cập nhật Tăng
trưởng theo
Phân đoạn Dữ
liệu
Incremental
Updates with
Data segments
Thực hiện nhiều Cập nhật Tăng trƣởng
đồng thời, mỗi Cập nhật Tăng trƣởng
cho một đoạn dữ liệu.
4
Cấu hình
Configuration
Trạng thái toàn cục của hệ thống bao
gồm trạng thái của các thực thể và trạng
thái của các kênh truyền giữa các thực
thể
5
Cây bao trùm
Spanning tree
Cây bao gồm tất cả các nút của một đồ
thị, và mỗi nút xuất hiện duy nhất một
lần.
6
Đồ thị phụ thuộc
Dependency
graph
Độ thị có hƣớng không chu trình có
thêm các phụ thuộc hàm

7
Dẫn ống
Pipeline
Khi nhận đƣợc thông báo từ bộ xử trƣớc
thì chuyển ngay thông báo này cho bộ xử
lý liền sau.
8
Dữ liệu chung
Common data
Dữ liệu đƣợc nhìn nhận nhƣ nhau bởi
mọi thực thể trong hệ thống
9
Hệ phân tán
Distributed
system
Hệ thống bao gồm các thiết bị tính riêng
rẽ có thể giao tiếp với nhau
10
Khứ lỗi
Fault tolerance
Khả năng hệ thống bỏ qua một số hữu
5
hạn lỗi để những bộ phận chƣa bị lỗi vẫn
hoạt động bình thƣờng
11
Phát tỏa
Broadcast
Gửi thông tin đến tất cả các bộ xử lý
trong thành phần liên thông
12

Phát tỏa Đầy đủ
Full Broadcast
Phát tỏa mọi thông tin có
13
Phát tỏa với Tri
thức Bộ phận
Broadcast with
Partial
Knowledge
Phát tỏa chỉ những phần dữ liệu thay đổi
với mục đích sửa lỗi tại các bộ xử lý
nhận
14
Sai khác cục bộ
Local
discrepancy
Số bít trong dữ liệu riêng khác với dữ
liệu nguồn
15
Sai khác tổng
Total
discrepancy
Tổng tất cả các sai khác cục bộ
16
Tiến trình
Process
Một chƣơng trình đang thực thi
17
Trạm
Site

Một thực thể trong mạng
18
Tự ổn định
Self-stabilizing
Tính chất của hệ thống có thể xuất phát
từ trạng thái bất kỳ luôn thể hiện đƣợc
hành vi hợp lệ mong muốn.
19
Khung nhìn
View
“Hình ảnh” mà một bộ xử lý nhận đƣợc
từ một bộ xử lý khác
20
Nguồn
Source
Bộ xử lý nguồn







6
DANH SÁCH CÁC HÌNH VẼ

Hình 1.1
Mô hình tổng quát hệ thống phân tán
(12)
Hình 1.2

Mô hình chuyển thông báo
(13)
Hình 1.3
Mô hình với bộ nhớ dùng chung
(14)
Hình 2.1
Ví dụ minh họa bài toán Duy trì dữ liệu chung trong hệ phân
tán. Trong ví dụ này, có n+1 = 5 bộ xử lý duy trì một khung
nhìn với m = 4 mục. Nguồn là bộ xử lý 0. Các mục sai so với
nguồn được gạch chân. Độ sai khác cục bộ là số mục gạch
chân tại một bộ xử lý. Độ sai khác tổng là ∆ = 7
(24)
Hình 2.2
Một thực hiện của giải thuật Phát tỏa Đầy đủ (n = 4, m =4,
∆ = 7)
(27)
Hình 2.3
Sửa lỗi cho hai bộ xử lý đầu trong một thực hiện của giải
thuật Cập nhật Tăng trưởng (n = 4, m =4, ∆ = 7)
(28)
Hình 3.1
Một trạng thái của hệ thống khi thực hiện giải thuật AS
(33)
Hình 3.2
Vùng quét của bộ xử lý Q
(34)
Hình 3.3
Hình chữ nhật của các tiến trình con của tiến trình Q
(35)
Hình 3.4

Hoạt động của một tiến trình (mũi tên biểu diễn thông báo
sửa lỗi )
(36)
Hình 3.5
Một thực hiện của giải thuật AS (vùng chữ nhật đầu tiên).
(39)
Hình 4.1
Giải thuật AS cải tiến
(48)
Hình 4.2
Một thực hiện của giải thuật AS cải tiến (vùng chữ nhật đầu
tiên).
(53)
Hình 5
Khung chung cho các phiên bản tự ổn định của các giải thuật
Cập nhật Tăng trưởng, giải thuật AS, và giải thuật AS cải
tiến.
(61)
7

MỞ ĐẦU

Trong tính toán phân tán có rất nhiều công việc liên quan đến việc duy trì khung
nhìn (view) đến các đối tƣợng chung tại các trạm (sites) khác nhau của hệ thống phân
tán. Với đối tƣợng chung là tôpô của hệ thống ta có yêu cầu cập nhật tôpô, hay nếu đối
tƣợng chung là một tài nguyên cụ thể đƣợc lƣu trữ trên một trạm nào đó ta có yêu cầu
liệt kê danh sách tài nguyên trên mỗi trạm, hoặc một cơ sở dữ liệu tổng quát.
Các đối tƣợng này bị tác động bởi những thay đổi, ví dụ liên kết giữa hai nút mạng
đƣợc thêm mới hay mất đi làm thay đổi tôpô mạng, một tài nguyên đƣợc chiếm dụng
rồi giải phóng, một bản ghi cơ sở dữ liệu đƣợc sửa đổi. Nhƣ vậy, vấn đề đặt ra ở đây là

cần có một cơ chế hiệu quả cho việc cập nhật khung nhìn về đối tƣợng chung tại các
trạm khác nhau.
Mục tiêu của luận văn này là xem xét, đánh giá một số giải thuật cập nhật “khung
nhìn” về đối tƣợng chung đó, đồng thời đƣa ra đề xuất cải tiến các giải thuật đã xem
xét nếu có thể.
Các giải thuật duy trì dữ liệu chung trong hệ phân tán, và đặc biệt phƣơng pháp
Phát tỏa với Tri thức Bộ phận, đƣợc tìm hiểu trong luận văn này bao gồm Phát tỏa
Đầy đủ, Cập nhật Tăng trưởng [4], giải thuật AS [3]. Từ các tìm hiểu về giải thuật
trên, tác giả luận văn đã đƣa ra một đề xuất cải tiến giải thuật AS. Cải tiến này đƣợc
thực hiện bằng cách cắt bỏ các thông báo dƣ thừa đƣợc sử dụng trong giải thuật AS.
Kết quả cải tiến đƣợc tác giả luận văn đánh giá và chứng minh. Ngoài ra, trong luận
văn này, tác giả đã quan tâm đến các khía cạnh thực tế khi áp dụng những giải thuật
đƣợc xem xét hoặc đề xuất, trong đó khả năng kháng lỗi với tính tự ổn định [7] đƣợc
đặc biệt chú ý. Với mỗi giải thuật đã đƣợc xem xét hoặc đề xuất, tác giả đã chỉ ra một
phiên bản tự ổn định của nó.
Luận văn đƣợc trình bày trong năm chƣơng với nội dung mỗi chƣơng nhƣ sau:
Chương 1 giới thiệu hệ phân tán, các mô hình hệ phân tán, vai trò, đặc trƣng của
các hệ phân tán, các khái niệm cơ bản về cấu hình, thực hiện và phƣơng pháp đánh giá
8
độ phức tạp của giải thuật phân tán [1], [8], [9]. Phần cuối chƣơng trình bày các vấn đề
về khả năng kháng lỗi với tính chất tự ổn định [7].
Tiếp theo, Chương 2 trình bày bài toán duy trì dữ liệu chung trong hệ phân tán và
các giải thuật sơ đẳng, bao gồm giải thuật Phát tỏa Đầy đủ và giải thuật Cập nhật
Tăng trưởng [4]. Mô hình bài toán, tiêu chuẩn đánh giá độ phức tạp đƣợc trình bày.
Với mỗi giải thuật, sau phần xem xét và trình bày giải thuật, tác giả đều đƣa ra một ví
dụ minh họa thực hiện của giải thuật.
Chương 3 trình bày giải thuật cập nhật với tri thức bộ phận, giải thuật AS [3]. Sau
phần trình bày tƣ tƣởng và chi tiết giải thuật là phần chứng minh tính đúng đắn và
đánh giá các độ phức tạp. Một ví dụ đƣợc tác giả đƣa ra để minh họa cho hoạt động
của giải thuật AS.

Trong Chương 4, tác giả đƣa ra một đề xuất cải tiến giải thuật AS bằng cách cắt bỏ
các thông báo không cần thiết trong giải thuật AS. Hiệu quả tiết kiệm thời gian và
thông báo của giải thuật AS cải tiến so sánh với giải thuật gốc đƣợc phát biểu và
chứng minh. Giải thuật cũng đƣợc mô tả bằng mã hình thức.Cuối cùng là minh hoạ
một thực hiện của giải thuật AS cải tiến.
Chương 5 bàn về các thay đổi cần thực hiện để các giải thuật duy trì dữ liệu có thể
thực thi đƣợc trong một số vấn đề hiện thực của hệ phân tán, đó là các vấn đề về Hệ
thống với tôpô bất kỳ, Dữ liệu chung phân tán, Độ dài dữ liệu thay đổi, Khả năng
kháng lỗi và tự ổn định.

Chắc chắn, luận văn còn có những thiếu sót trong nội dung cũng nhƣ trong trình
bày. Tác giả của luận văn rất mong nhận đƣợc sự đóng góp ý kiến của các thầy cô giáo
và của các anh/chị học viên.


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

1.1. Khái niệm hệ phân tán
Có rất nhiều khái niệm khác nhau về hệ phân tán. Một cách tổng quan, 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. Đây là một khái niệm 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 ngày nay, từ các bộ
chíp VLSI đến các bộ đa xử lý, các mạng cục bộ, và Internet. Nếu nhƣ hệ song song
phối hợp nhiều bộ xử lý nhằm giải quyết một vấn đề cho trƣớc một cách nhanh nhất
thì hệ phân tán bao gồm một tập các bộ xử lý có chƣơng trình làm việc riêng bán độc
lập, vì những lý do gì đó, ví dụ chia sẻ tài nguyên, tăng tính sẵn sàng, khứ lỗi, các bộ
xử lý cần phối hợp hành động với nhau.
Ta có thể thấy các hệ phân tán ở khắp mọi nơi. Điển hình, các hệ phân tán đƣợc sử
dụng để chia sẻ tài nguyên và chia sẻ dữ liệu. Các máy tính kết nối mạng với nhau có
thể dùng chung máy in, máy quét, chia sẻ các tệp tài liệu, chƣơng trình… Tính toán

ngang hàng là một kiểu thực hiện của hệ phân tán ngày càng trở nên phổ biến cho việc
cung cấp các thiết bị và dịch vụ tính toán. Các hệ phân tán nhiều tham vọng hơn cho
hiệu năng hoạt động cao bằng cách kết hợp giải các bài toán con một cách song song,
đồng thời tăng tính sẵn sàng của hệ thống trong trƣờng hợp một số thiết bị gặp lỗi.
1.2. Vai trò của hệ phân tán
Ngày nay hệ phân tán đang trở nên phổ biến vì những vai trò ứng dụng quan trọng
của chúng. Trƣớc hết, phải kể đến đó là vai trò trao đổi thông tin. Các hệ phân tán cho
khả năng chia sẻ thông tin rộng rãi và tức thời. Lấy ví dụ, thông tin từ hệ thống máy
tính đặt tại Sở giao dịch chứng khoán TPHCM có thể đƣợc sử dụng bởi hệ thống máy
tính đặt tại trụ sở của các công ty chứng khoán thành viên hay cũng có thể chia sẻ đến
tận các nhà đầu tƣ. Các thông tin chứng khoán cũng luôn yêu cầu phải có tính chính
xác cũng nhƣ tức thời rất cao, và hệ phân tán cũng có thể cung cấp những khả năng
đảm bảo đƣợc điều này.
Hệ phân tán cũng cho 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ể "nói chuyện" với các máy tính khác loại, các điện thoại cố định, di động,
10
các PDA, … Các hệ phân tán cho khả năng chia sẻ tài nguyên cả phần cứng lẫn phần
mềm. Các máy tính kết nối mạng có thể dùng chung máy in, có thể chia sẻ các tệp dữ
liệu, các tệp chƣơng trình.
Thứ hai, bằng việc sao lặp, nhân bản, các hệ phân tán cho độ tin cậy 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 đột nhiên biến mất, ngƣời
ta có thể khôi phục lại bằng cách sao phần nhân bản đã đƣợc lƣu tại một nơi khác trên
hệ thống máy tính của ngân hàng.
Thứ ba, thông qua song song hóa, các thực thể 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, do vậy làm tăng hiệu suất hoạt động
của hệ thống.
Thứ tư, 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
thƣờng phân một hệ thống phức tạp thành các hệ thống con chuyên dụng và hợp tác
với nhau. Làm nhƣ vậy, không những việc thiết kế đơn giản mà việc thực hiện cũng
đơn giản.

Các ƣu điểm của hệ phân tán so với máy tính cá nhân và so với hệ tập trung đƣợc
chỉ ra ngắn gọn trong các bảng sau.

Bảng 1.1. Ưu điểm của hệ phân tán so với máy tính cá nhân.
Ưu điểm
Mô tả
Chia sẻ dữ liệu
Cho phép nhiều người dung cùng truy cập vào một cơ
sở dữ liệu chung
Chia sẻ thiết bị
Cho phép nhiều người dung dung chung các thiết bị đắt
tiền như máy in màu, máy quét,
Truyền thông
Giúp truyền thông giữa người với người dễ dàng hơn,
ví dụ bằng thư điện tử
Mềm dẻo
Phân công việc cho bất kỳ máy nào sẵn sàng

11
Bảng 1.2. Ưu điểm của hệ phân tán so với hệ tập trung.
Ưu điểm
Mô tả
Hiệu năng
Máy tính đa bộ xử lý có hiệu năng cao hơn máy tính
mainframe
Tốc độ
Tổng năng lực tính toán của một hệ phân tán có thể
cao hơn máy tính mainframe
Phân tán
Một số ứng dụng chạy trên nhiều máy tính xa nhau về

mặt không gian
Tính tin cậy
Khi một máy gặp lỗi, toàn bộ hệ thống vẫn có thể làm
việc
Mở rộng
Năng lực tính toán có thể được nâng lên nhờ them các
bộ xử lý bình thường

Mặc dù các hệ phân tán có những hạn chế nhƣ hiện tại có ít phần mềm cho chúng,
đòi hỏi an ninh và tính bảo mật cao nhƣng những ƣu điểm lớn kể trên làm cho vai trò
của các hệ phân tán ngày càng trở nên quan trọng.
1.3. Đặc trưng của các hệ phân tán
Ba đặc trƣng, và cũng là những khó khăn điển hình khi thiết kế, của hệ phân tán là:
không đồng bộ, thiếu thông tin toàn cục, và không có cơ chế phát hiện sự cố chính
xác. Một hệ phân tán không có đồng hồ chung. Ta cũng 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. Để đạt đƣợc
tính đồng bộ, ta không thể dùng đồng hồ vật lý mà phải vận dụng các khái niệm và
giải thuật nhân quả. Tƣơng tự, một hệ phân tán không có bộ nhớ toàn cục chung. Các
bộ xử lý không thể biết đƣợc trạng thái toàn cục của hệ thống. "Hiểu biết" của mỗi bộ
xử lý chỉ có tính cục bộ. Do vậy, ngƣời thiết kế hệ phân tán, cụ thể là ngƣời xây dựng
giải thuật phân tán phải xây dựng cơ chế đánh giá các tính toàn cục. Ngoài ra, chúng ta
không có cơ chế phát hiện sự cố chính xác trong hệ phân tán vì 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
12
phải tiếp tục làm việc để đạt đƣợc kết quả nhƣ mong muốn. Những đặc trƣng này thực
sự là những khó khăn khi thiết kế các hệ phân tán.
1.4. Mô hình hóa các hệ phân tán
Trong một hệ phân tán, mỗi thực thể (máy tính, bộ xử lý, tiến trình) chạy một
chƣơng trình riêng bao gồm tập các lệnh. Khi thực hiện lệnh, thực thể thay đổi trạng
thái cục bộ của nó. Ta có thể mô hình hóa sự thay đổi này bằng cách xem mỗi thực thể

là một máy trạng thái. Một hệ phân tán đƣợc mô hình hóa bằng tập n máy trạng thái.
Ký hiệu máy thứ i là P
i
.
Truyền thông giữa các thực thể có thể thực hiện bằng cách chuyển thông báo hay
sử dụng bộ nhớ dùng chung. Truyền thông bằng cách ghi vào và đọc ra từ bộ nhớ dùng
chung thƣờng hạn chế hệ thống với các thực thể gần nhau về mặt địa lý, ví nhƣ hệ
thống đa bộ xử lý hay các máy tính đa nhiệm. Truyền thông theo cách chuyển thông
báo không có giới hạn nhƣ vậy, có thể thực hiện trong cả hệ thống mà các thực thể rất
xa nhau về mặt địa lý nhƣ các mạng máy tính. Hình 1.1. dƣới đây là minh họa mô hình
tổng quát của các hệ thống phân tán.


Hinh 1.1. Mô hình tổng quát hệ thống phân tán.

Tùy theo phƣơng pháp truyền thông đƣợc sử dụng, ta có mô hình chuyển thông báo
hay mô hình với bộ nhớ dùng chung.
13
1.4.1. Mô hình chuyển thông báo
Trong mô hình chuyển thông báo, các láng giềng trao đổi thông tin cho nhau bằng
cách gửi và nhận thông báo. Liên kết giữa các thực thể có thể đơn hoặc lƣỡng hƣớng.
Liên kết đơn hƣớng từ thực thể P
i
đến thực thể P
j
đƣợc sử dụng để chuyển thông báo
từ P
i
đến P
j

. Ta có thể trừu tƣợng hóa liên kết đơn hƣớng trên bằng hàng đợi FIFO q
i, j

chứa tất cả các thông báo đƣợc P
i
gửi cho P
j
nhƣng P
j
chƣa nhận đƣợc. Mỗi khi P
i
gửi
cho P
j
một thông báo m, m đƣợc đƣa vào hàng đợi q
i,j
. P
j
có thể nhận m khi nó trên
đỉnh hàng đợi q
i,j
. Liên kết lƣỡng hƣớng giữa P
i
và P
j
có thể đƣợc mô hình hóa bằng
hai hàng đợi: q
i,j
cho hƣớng từ P
i

đến P
j
và q
j,i
cho hƣớng từ P
j
đến P
i
.
Trạng thái của hệ thống phân tán chuyển thông báo tại một thời điểm cụ thể đƣợc
xác định bởi trạng thái của các bộ xử lý và nội dung của các hàng đợi chứa thông báo
tại thời điểm đó. Cấu hình hệ thống (hay cấu hình) đƣợc dùng để chỉ trạng thái này.
Một cấu hình đƣợc ký hiệu c = (s
1
, s
2
, …, s
n
, q
1,2
q
1,3
, …, q
i,j
, …., q
n, n-1
), trong đó s
i
, 1
≤ i ≤ n , là trạng thái của P

i
và q
i, j
, i  j, là hàng đợi chứa thông báo P
i
gửi cho P
j
nhƣng P
j
chƣa nhận đƣợc. Sau đây là minh họa mô hình chuyển thông báo.

Hình 1.2. Mô hình chuyển thông báo.

1.4.2. Mô hình với bộ nhớ dùng chung
Trong mô hình với bộ nhớ dùng chung, các bộ xử lý trao đổi thông tin cho nhau
bằng cách sử dụng chung các ô nhớ. Các bộ xử lý có thể ghi vào một tập các ô nhớ và
14
đọc ra từ một tập các ô nhớ khác. Cấu hình hệ thống bao gồm trạng thái của các bộ xử
lý và nội dung của các ô nhớ dùng chung. Một cấu hình của hệ thống gồm n bộ xử lý
và m ô nhớ dùng chung đƣợc ký hiệu c = (s
1
, s
2
, …, s
n
,, r
1
, r
2
, …, r

m
), trong đó s
i
, 1 ≤ i
≤ n, là trạng thái của P
i
, r
j
, 1 ≤ j ≤ m, là nội dung của ô nhớ dùng chung thứ j.

Hình 1.3. Mô hình với bộ nhớ dùng chung.

1.4.3. Mô hình xen kẽ
Mô hình xen kẽ đƣợc sử dụng để lý giải hành vi của hệ thống phân tán. Trong mô
hình này, tại mỗi thời điểm có duy nhất một bộ xử lý thực hiện một bƣớc tính (còn gọi
là bƣớc nguyên tử). Mỗi bƣớc nguyên tử bao gồm một số phép tính bên trong bộ xử lý,
hay còn gọi là sự kiện tính, và một phép giao, hay còn gọi là sự kiện giao - một phép
gửi hoặc nhận trong hệ thống chuyển thông báo hay một phép ghi hoặc đọc trong hệ
thống sử dụng bộ nhớ dùng chung.
1.4.4. Thực hiện và những tính chất của thực hiện
Trong một hệ thống phân tán, các bộ xử lý có thể thực hiện các bƣớc tính một cách
đồng thời; tuy nhiên, chúng ta giả thiết bƣớc tính này không ảnh hƣởng đến bƣớc tính
khác. Điều này đúng trong mô hình chuyển thông báo vì một thông báo đƣợc gửi đi
không thể nhận đƣợc bởi thao tác nhận xảy ra đồng thời với thao tác gửi. Trong mô
hình bộ nhớ dùng chung, chúng ta giả thiết kiến trúc bộ nhớ dùng chung đảm bảo tuần
tự hóa: có thể sắp xếp các thao tác đọc và ghi theo thứ tự hoàn toàn để kết quả của
15
thao tác đọc từ một ô nhớ là giá trị đƣợc ghi vào ô nhớ tại lần ghi cuối cùng vào ô nhớ
trƣớc thao tác đọc.
Trong các phần sau đây, chúng ta sử dụng thuật ngữ bước cho bƣớc nguyên tử và

ký hiệu một bƣớc (cùng với định danh của bộ xử lý thực hiện bƣớc tính) là a. Cấu hình
c
2
đƣợc gọi là đến được trực tiếp từ cấu hình c
1
, ký hiệu là c
1

a
c
2
, nếu tồn tại một
bƣớc tính a để từ cấu hình c
1
, thực hiện bƣớc a, ta đƣợc cấu hình c
2
. Cấu hình c’ đƣợc
gọi là đến được từ cấu hình c, ký hiệu c  c’, nếu tồn tại các cấu hình c
i
, 0 ≤ i ≤ n, và
các bƣớc a
j
, 0 ≤ j < n, để c = c
0

a0
c
1

a1

c
2
 … c
n-1

an-1
c
n
= c’. Bƣớc tính a’
đƣợc gọi là áp dụng được trên cấu hình c nếu tồn tại cấu hình c’ để c 
a'
c’.
Một thực hiện E = (c
1
, a
1
, c
2
, a
2
, …) là một dãy xen kẽ các cấu hình và bƣớc tính
trong đó c
i-1

a
i-1
c
i
(i > 1); nói cách khác, cấu hình c
i

(i > 1) đến đƣợc trực tiếp từ cấu
hình c
i-1
bằng việc áp dụng bƣớc tính a
i-1
. Ví dụ, trong mô hình với bộ nhớ dùng
chung, nếu tại bƣớc a
i
, bộ xử lý P
j
ghi giá trị x vào ô nhớ dùng chung r
k
, thì chỉ hai
thành phần có giá trị khác nhau trong c
i
và c
i+1
là P
j
và r
k
.
Một thực hiện đƣợc gọi là thỏa đáng nếu trong thực hiện đó mọi bƣớc tính áp dụng
đƣợc vô hạn lần đƣợc thực hiện vô hạn lần. Nói cách khác, nếu một bộ xử lý có một
bƣớc để thực hiện thì bộ xử lý sẽ thực hiện bƣớc tính đó.
Trong các hệ thống phân tán chuyển thông báo, một thông báo có thể bị mất trong
khi thực hiện giải thuật. Các mã phát hiện lỗi đƣợc sử dụng để nhận biết và loại bỏ các
thông báo bị ngắt, những thông báo này đƣợc xem là thông báo bị mất. Để mô hình
hóa các hệ thống này, chúng ta mở rộng định nghĩa bƣớc tính để bao hàm sự kiện mất
thông báo (sự kiện môi trƣờng) dạng loss

i, j
(m) – thông báo m đƣợc P
i
gửi cho P
j

nhƣng bị mất và P
j
không nhận đƣợc. Sự kiện loss
i, j
(m) áp dụng đƣợc trên cấu hình c
k

nếu trong c
k
, q
i,j
chứa m. Kết quả áp dụng loss
i, j
(m) trên c
k
đƣợc cấu hình c
k+1
trong đó
m bị loại khỏi q
i,j
còn các thành phần khác không thay đổi so với trong c
k
. Khác với
các sự kiện tính đƣợc thực hiện bởi các bộ xử lý, trong các thực hiện thỏa đáng, chúng

ta không yêu cầu các sự kiện môi trƣờng áp dụng đƣợc trên vô hạn lần phải xảy ra vô
hạn lần. Nói cách khác, ta không yêu cầu tính thỏa đáng phải áp dụng đối với các sự
kiện môi trƣờng.
16
Một thực hiện thỏa đáng kéo dài vô hạn không có nghĩa là các chƣơng trình cục bộ
không bao giờ kết thúc. Để mô hình hóa tính kết thúc của giải thuật, chúng ta định ra
một số trạng thái kết thúc của các bộ xử lý. Đây là trạng thái của các bộ xử lý mà một
khi đạt đƣợc, các bộ xử lý sẽ không bao giờ thay đổi, không gửi/nhận thông báo (đối
với mô hình chuyển thông báo) hoặc không làm thay đổi nội dung các biến dùng
chung (đối với mô hình với bộ nhớ dùng chung). Cấu hình trong đó tất cả các bộ xử lý
không lỗi ở trạng thái kết thúc và không có thông báo treo (đã đƣợc gửi nhƣng chƣa
đƣợc nhận) nào (với mô hình chuyển thông báo) đƣợc gọi là cấu hình kết thúc. Một
thực hiện kết thúc khi nó đạt đến cấu hình kết thúc.
Các hệ thống phân tán đƣợc mô tả ở trên thuộc lớp không đồng bộ. Trong thực tế,
tồn tại một lớp các hệ phân tán đồng bộ. Các thành phần trong hệ phân tán đồng bộ
thƣờng gần nhau về mặt địa lý và đƣợc điều khiển bởi một đồng hồ sung. Các bộ xử lý
thực hiện các phép tính đồng bộ theo nhịp sung đồng hồ. Tuy nhiên, chúng ta không
quan tâm đến cấu trúc vật lý của hệ thống mà chỉ quan tâm đến tính đồng bộ của nó.
Vì tất cả các bộ xử lý thực hiện các phép tính đồng thời nên một thực hiện của hệ
thống phân tán đồng bộ đơn giản đƣợc ký hiệu là E = (c
1
, c
2
, …) và hoàn toàn đƣợc
xác định từ cấu hình ban đầu, c
1
.
1.5. Đánh giá độ phức tạp
Rõ ràng, để xây dựng các hệ phân tán, chúng ta cần xây dựng các giải thuật phân
tán. Thực hiện của giải thuật phân tán diễn ra phân tán trên nhiều bộ xử lý. Cũng nhƣ

các giải thuật khác, giải thuật phân tán đƣợc đánh giá độ phức tạp trên hai khía cạnh:
độ phức tạp tính toán và độ phức tạp bộ nhớ. Thoạt nhìn, việc đánh giá độ phức tạp
tính toán dƣờng nhƣ trái ngƣợc với tính không đồng bộ của hệ thống phân tán. Theo
định nghĩa về các hệ thống không đồng bộ, không có giới hạn trên về thời gian xử
lý/truyền thông báo. Tuy nhiên, để có thể đánh giá và so sánh các giải thuật với nhau,
ngƣời ta sử dụng số vòng không đồng bộ để đánh giá độ phức tạp của một thực hiện cụ
thể. Vòng không đồng bộ (hay vòng) thứ nhất trong thực hiện E là tiền tố ngắn nhất E’
của E sao cho mỗi bộ xử lý thực hiện ít nhất một bƣớc trong E’. Gọi E’’ là hậu tố của
E theo liền sau E’, E=E’E’’. Vòng thứ hai của E là vòng thứ nhất của E’’, vv… Số
17
vòng trong thực hiện của một giải thuật phân tán đƣợc dùng để đánh giá độ phức tạp
thời gian của giải thuật.
Một cách trực quan, định nghĩa vòng không đồng bộ bỏ qua tốc độ của các bộ xử
lý bằng việc kéo dài vòng đủ dài để trong mỗi vòng, bộ xử lý có tốc độ chậm nhất
cũng thực hiện đƣợc một bƣớc tính.
Độ phức tạp thời gian của một hệ thống đồng bộ là số sung trong thực hiện (bằng
số vòng).
Độ phức tạp bộ nhớ của một giải thuật là tổng số bit nhớ (dùng chung và cục bộ)
đƣợc sử dụng để cài đặt giải thuật.
Độ phức tạp thông báo là tổng số thông báo (hoặc tổng kích thƣớc các thông báo)
đƣợc gửi/nhận khi thực hiện giải thuật.
1.6. Khả năng kháng lỗi và tính tự ổn định
1.6.1. Khả năng kháng lỗi
Khả năng kháng lỗi là một trong những đặc tính quan trọng của bất cứ hệ thống
nào, không chỉ các hệ phân tán. Khả năng kháng lỗi của một hệ thống đƣợc thể hiện ở
số lƣợng và số loại lỗi mà hệ thống có thể gặp phải nhƣng có thể khắc phục để hoạt
động bình thƣờng trở lại sau khi gặp lỗi. Nhƣ vậy, một hệ thống thực sự tin cậy phải
có khả năng kháng lỗi tốt.
Có nhiều phƣơng pháp kháng lỗi, trong đó phƣơng pháp lý tƣởng nhất là làm cho
hệ thống có tính tự ổn định để sau khi hệ thống gặp bao nhiêu, bất kỳ loại lỗi gì cũng

có thể tự trở lại trạng thái bình thƣờng và tiếp tục hoạt động tốt.
1.6.2. Tính chất tự ổn định
Khái niệm tự ổn định đƣợc Dijkstra đƣa ra đầu tiên năm 1973 trong bài báo nổi
tiếng “Self-stabilizing systems in spite of distributed control” [7]. Tự ổn định, sau đó,
đƣợc nghiên cứu nhƣ một chuyên ngành thuộc tính toán phân tán.
Một hệ tự ổn định có thể xuất phát từ một cấu hình bất kỳ, luôn đảm bảo sẽ thể
hiện được hành vi “hợp lệ” mong muốn. Nói cách khác, với thực hiện bất kỳ, sau hữu
hạn lần biến đổi cấu hình, ta có chuỗi cấu hình hợp lệ.
18
Ta định nghĩa hành vi hợp lệ mong muốn bằng tập các thực hiện hợp lệ đƣợc ký
hiệu là LE. Một tập các thực hiện hợp lệ đƣợc xác định cho một hệ thống cụ thể và
một bài toán cụ thể. Mọi thực hiện của hệ thống tự ổn định có hậu tố xuất hiện trong
LE. Ví dụ, với bài toán loại trừ lẫn nhau, thực hiện hợp lệ là thực hiện trong đó tại mọi
cấu hình, có nhiều nhất một bộ xử lý nằm trong đoạn găng, và trong đó mọi bộ xử lý
đƣợc vào đoạn găng vô hạn lần.
Một cấu hình c đƣợc gọi là an toàn đối với tập thực hiện hợp lệ LE và một giải
thuật A nếu mọi thực hiện thỏa đáng của giải thuật A xuất phát từ c đều thuộc LE.
Một giải thuật đƣợc gọi là tự ổn định đối với tập thực hiện hợp lệ LE nếu mọi thực
hiện thỏa đáng của giải thuật đều đạt đến một cấu hình an toàn đối với giải thuật và
LE.
1.6.3. Vai trò của tự ổn định
Một hệ thống tự ổn định có thể bỏ qua mọi lỗi. Ta tƣởng tƣợng, lỗi xuất hiện đẩy
hệ thống về một trạng thái nào đó. Nhờ khả năng tự ổn định, sau lần xuất hiện lỗi cuối
cùng, và sau hữu hạn bƣớc chuyển trạng thái nữa, hệ thống trở lại trạng thái hợp lệ và
hoạt động bình thƣờng. Tính tự ổn định đặc biệt hữu ích đối với các hệ thống động
(các bộ xử lý và liên kết có thể đƣợc thêm mới, mất chức năng, đƣợc khôi phục lại).
Tự ổn định cho chúng ta một cách giải quyết triệt để trong khắc phục lỗi. Một hệ
thống không thể tránh đƣợc lỗi. Lỗi có thể do phần cứng, phần mềm, do ngƣời sử dụng
thiết lập hay nhập liệu sai, … Cách khắc phục lỗi truyền thống là liệt kê ra các lỗi,
đồng thời, đƣa ra cách giải quyết cho mỗi lỗi. Tuy nhiên, cách này chỉ giải quyết đƣợc

một số lỗi thƣờng gặp. Chúng ta không thể kể ra tất cả các lỗi tiềm tàng, do vậy không
thể đảm bảo hệ thống không còn lỗi. Một khi, hệ thống gặp lỗi lạ, tức là lỗi không có
trong danh sách lỗi, nó không biết giải quyết nhƣ thế nào và mãi mãi trong trạng thái
nhƣ vậy. Một cách giải quyết khác là khứ lỗi [AS04, Lyn97]. Tuy nhiên, cách này
cũng chỉ khắc phục đƣợc hữu hạn lỗi. Khi số lỗi vƣợt quá hệ số kháng lỗi, hệ thống rơi
vào trạng thái lỗi và không thể hoạt động bình thƣờng trừ khi nó đƣợc khởi động lại.
19
1.6.4. Đánh giá độ phức tạp
Cũng nhƣ các giải thuật phân tán khác, giải thuật tự ổn định đƣợc đánh giá độ phức
tạp thời gian dựa trên số vòng không đồng bộ. Số vòng trong thực hiện của một giải
thuật tự ổn định đƣợc dùng để đánh giá độ phức tạp thời gian của giải thuật.
Giải thuật tự ổn định không bao giờ kết thúc, và các bộ xử lý phải tiếp tục liên lạc
với các láng giềng của chúng. Trong mô hình với bộ nhớ dùng chung, các bộ xử lý
phải tiếp tục đọc các ô nhớ dùng chung của các láng giềng. Trong mô hình chuyển
thông báo, các bộ xử lý phải tiếp tục gửi và nhận thông báo. Tính chất không kết thúc
của giải thuật tự ổn định đƣợc giải thích nhƣ sau: giả sử các bộ xử lý kết thúc, P
i
kết
thúc ở trạng thái s
i
. Theo tính chất tự ổn định của giải thuật, hệ thống phải đạt đến cấu
hình an toàn xuất phát từ bất kỳ cấu hình nào. Khi hệ thống đƣợc bắt đầu từ cấu hình c
tại đó bộ xử lý P
i
có trạng thái s
i
, không có bộ xử lý nào thực hiện bất kỳ bƣớc nào,
nhƣ vậy c là một cấu hình an toàn. Do vậy, nhiệm vụ của giải thuật đã đạt đƣợc khi
mỗi bộ xử lý P
i

chỉ có duy nhất một trạng thái s
i
. Rõ ràng, nhiệm vụ này không yêu
cầu bất kỳ liên lạc nào giữa các bộ xử lý và giải thuật đƣợc sử dụng không phải là một
giải thuật phân tán.
Tính không kết thúc của giải thuật dễ ràng đƣợc nhận ra từ mã của giải thuật: mã
của giải thuật thƣờng bao gồm một vòng lặp vô hạn chứa các thao tác liên lạc với các
láng giềng. Ví dụ, trong mô hình với bộ nhớ dùng chung, mã của giải thuật cho một bộ
xử lý P
i
thƣờng bắt đầu với các thao tác đọc các ô nhớ dùng chung của láng giềng,
theo đó là các thao tác ghi vào các ô nhớ dùng chung cục bộ. Số bƣớc cần thiết để thực
hiện một lần lặp của vòng lặp vô hạn trong ví dụ này là O(∆), trong đó ∆ là cận trên
bậc (số láng giềng) của P
i
.
Chúng ta mở rộng khái niệm vòng không đồng bộ để có khái niệm chu kỳ không
đồng bộ (hay là chu kỳ). Chu kỳ thứ nhất của thực hiện E là tiền tố ngắn nhất E’ của E
sao cho mỗi bộ xử lý hoàn thành ít nhất một lần lặp của vòng lặp vô hạn trong E’. Gọi
E’’ là hậu tố của E liền tiếp sau E’, E = E’E’’. Chu kỳ thứ hai của E là chu kỳ thứ nhất
của E’’, vv…
20
Lƣu ý rằng nếu mỗi lần lặp của vòng lặp vô hạn bao gồm các thao tác đọc ô nhớ
dùng chung của láng giềng, tính toán cục bộ, và ghi vào các ô nhớ dùng chung cục bộ,
thì mỗi chu kỳ kéo dài O(∆) vòng.
Độ phức tạp thời gian của một hệ thống đồng bộ là số sung trong thực hiện (bằng
số vòng).
Độ phức tạp bộ nhớ của một giải thuật là tổng số bit nhớ (dùng chung và cục bộ)
đƣợc sử dụng để cài đặt giải thuật.
Độ phức tạp thông báo là tổng số thông báo (hoặc tổng kích thƣớc các thông báo)

đƣợc gửi/nhận khi thực hiện giải thuật.




























21

CHƯƠNG 2. CÁC GIẢI THUẬT SƠ ĐẲNG

2.1. Giới thiệu
Trong tính toán phân tán có rất nhiều công việc liên quan đến việc duy trì khung
nhìn (view) đến các đối tƣợng chung tại các trạm (sites) khác nhau của hệ thống phân
tán. Với đối tƣợng chung là tôpô của hệ thống ta có yêu cầu cập nhật tôpô, hay nếu đối
tƣợng chung là một tài nguyên cụ thể đƣợc lƣu trữ trên một trạm nào đó ta có yêu cầu
liệt kê danh sách tài nguyên trên mỗi trạm, hoặc một cơ sở dữ liệu tổng quát.
Các đối tƣợng này bị tác động bởi những thay đổi, ví dụ liên kết giữa hai nút mạng
đƣợc thêm mới hay mất đi làm thay đổi tôpô mạng, một tài nguyên đƣợc chiếm dụng
rồi giải phóng, một bản ghi cơ sở dữ liệu đƣợc sửa đổi. Nhƣ vậy, vấn đề đặt ra ở đây là
cần có một cơ chế hiệu quả cho việc cập nhật khung nhìn về đối tƣợng chung tại các
trạm khác nhau.
Một ví dụ điển hình về cập nhật khung nhìn dạng này là bài toán Cập nhật Tôpô
(Topology Update) với nhiệm vụ duy trì tại mỗi nút mạng khung nhìn về toàn mạng
trong khi đối mặt với những thay đổi tôpô có thể xuất hiện trong mạng, liên kết đƣợc
thêm mới hay bị đứt đoạn. Giao thức Cập nhật Tôpô phải đảm bảo thực hiện truyền
những thay đổi này sao cho mọi nút mạng phải đƣợc cập nhật, bắt đầu đƣợc biết cục
bộ tại hai nút đầu liên kết, tiếp đến sẽ thông báo đến toàn mạng qua một mạng không
đồng bộ.
Các giao thức Cập nhật Tôpô vẫn đang giữ vai trò quan trọng trong nhiều mạng
thƣơng mại và mạng chính phủ quan trọng của nƣớc Mỹ nhƣ ARPANET [16],
DECNET [19], và SNA [17] cũng nhƣ trong các mạng tốc độ cao mới đây nhƣ IBM’s
PARIS [18], [2] và NSF/DARPA’s AURORA. Các giao thức cập nhật đƣợc sử dụng
để quản lý các nhiệm vụ nhƣ định tuyến, dự trữ băng thông. Một lý do nữa để nghiên
cứu bài toán Cập nhật Tôpô, nhƣ chỉ ra trong [4], là Cập nhật Tôpô là thể hiện khó
nhất của bài toán cập nhật cơ sở dữ liệu. Cũng chú ý rằng nhiều bài toán phụ thuộc
tôpô nhƣ Tìm Đường đi Ngắn nhất và Xây dựng Cây Bao trùm Tối thiểu có thể đƣợc
giải quyết một cách cục bộ tại mỗi nút mạng khi các bản sao của tôpô mạng đƣợc duy
trì tại tất cả các nút.

22
Khi xảy ra sự cố gây ra đứt đoạn kết nối trong mạng hoặc có thể do một nguyên
nhân bất kỳ nào đó, các nút mạng có thể có các khung nhìn khác nhau về cơ sở dữ liệu
chung, một số nút mạng vẫn chứa các bản ghi đã cũ. Do vậy, khi kết nối đƣợc thiết lập
trở lại, sự khác biệt giữa các khung nhìn giữa các nút sẽ cần phải đƣợc loại bỏ. Hai nút
liền kề liên kết đƣợc khôi phục gửi khung nhìn cho nhau và thống nhất với nhau một
khung nhìn chung. Tiếp đó, mỗi nút đƣơng sự sẽ gửi khung nhìn chung đến tất cả các
nút trong cùng thành phần liên thông. Phát biểu hình thức của bài toán này đƣợc cho
trong mục 2.2 liền sau đây.
Một phƣơng pháp sơ đẳng để thực hiện việc truyền khung nhìn chung đến tất cả
các nút trong mạng là phát tỏa thông tin đến tất cả các nút. Phƣơng pháp này, đƣợc gọi
là Phát tỏa Đầy đủ (Full Broadcast), có thể rất lãng phí về truyền thông vì nó không
tận dụng tri thức có trƣớc trong hệ thống. Các nút chỉ cần thông báo về các thay đổi
nếu chúng đã có khung nhìn gần đúng về cơ sở dữ liệu. Phƣơng pháp Cập nhật Tăng
trưởng (Incremental Update) [4], [2] tận dụng toàn bộ các tri thức đã có trong hệ
thống, chỉ gửi duy nhất một thông báo trên một lỗi.
Phát tỏa Đầy đủ và Cập nhật Tăng trưởng là hai đại diện cho hai thái cực; một thái
cực tốn kém cho truyền thông nhất nhƣng có độ phức tạp thời gian gần tối ƣu, thái cực
kia hiệu quả nhất cho truyền thông nhƣng có độ phức tạp thời gian lớn. Trong khi Cập
nhật Tăng trưởng tốt hơn Phát tỏa Đầy đủ ở độ phức tạp truyền thông, nó lại xấu hơn
Phát tỏa Đầy đủ khi xét về độ phức tạp thời gian. Thực tế này là do Phát tỏa Đầy đủ
đã tận dụng tối đa kỹ thuật dẫn ống (pipeline) thông điệp trong khi Cập nhật Tăng
trưởng không sử dụng kỹ thuật này [5].
Bài toán Phát tỏa với Tri thức Bộ phận (Broadcast with Partial Knowledge), đƣợc
phát biểu trong [5], là bài toán cập nhật khung nhìn của tất cả các nút trong khi tận
dụng đƣợc cả tri thức có trƣớc và cả kỹ thuật dẫn ống - nhằm giảm thiểu cả độ phức
tạp thông báo và độ phức tạp thời gian.
Một kết quả quan trọng của [4] là bài toán Cập nhật Tôpô có thể rút gọn về bài
toán Phát tỏa với Tri thức Bộ phận. Cụ thể hơn, mọi giao thức Phát tỏa với Tri thức
Bộ phận có thể chuyển thành giao thức Cập nhật Tôpô với cùng độ phức tạp thời gian

và truyền thông.
23
2.2. Bài toán
Xét một mạng truyền thông không đồng bộ bao gồm n+1 bộ xử lý, mỗi bộ xử lý
lƣu giữ một dữ liệu cục bộ gồm m bit. Sẽ có một bộ xử lý đƣợc phân biệt là bộ xử lý
nguồn (source). Bài toán Duy trì dữ liệu chung trong một hệ phân tán yêu cầu tất cả
các bộ xử lý cập nhật dữ liệu riêng của nó sao cho giống dữ liệu riêng của bộ xử lý
nguồn. Ngoài ra trong một số giải thuật giả thiết biết láng giềng (neighbor-knowledge)
có thể đƣợc sử dụng. Giả thiết biết láng giềng nghĩa là, mỗi bộ xử lý biết dữ liệu của
các làng giềng của nó. Giả thiết này hoàn toàn thực tế trong ngữ cảnh Cập nhật Tô pô
vì khi một liên kết đƣơc thêm mới hay khôi phục, hai bộ xử lý liền kề cung đó có thể
lập tức thông báo cho nhau về dữ liệu của mình.
Chúng ta chỉ cần xét trƣờng hợp tôpô mạng là một cây với bộ xử lý nguồn là gốc
của cây đó. Giải thiết này hợp với giả thiết khung công việc (framework) đƣợc mô tả
trong [4] và trong [2], ở đó thay đổi trong tôpô đƣợc phát tỏa thông qua cây bao trùm.
Hơn nữa, chúng ta chỉ cần giải quyết bài toán trên một chuỗi, với bộ xử lý nguồn ở
một đầu của chuỗi. Bài toán phát tỏa trên cây bao trùm có thể rút gọn về bài toán phát
tỏa trên một chuỗi bằng cách thực hiện lƣợt duyệt theo chiều sâu cây bao trùm để tạo
thành chuỗi.
Để đơn giản chúng ta giả thiết mỗi nút biết đƣợc vị trí của nó trong chuỗi. Điều này
có thể đƣợc thực hiện với chi phí tối thiểu bằng cách phát tỏa một thông báo đếm số
chặng thông báo đi qua xuất phát từ bộ xử lý nguồn.
Để giao thức hoạt động đúng, một giả thiết cần đƣợc đảm bảo là mạng tĩnh. Liên
kết hay nút đƣợc thêm vào, mất đi hay khôi phục lại đƣợc quản lý bởi một giao thức ở
mức dƣới (nhƣ trong [4] và [5]), và giao thức này phải đƣợc khởi động lại trên một cây
mới.
Cấu hình hệ thống bao gồm dữ liệu của các bộ xử lý, có thể đƣợc biểu diễn nhƣ
một mảng hai chiều của các bít với cột bên trái nhất là dữ liệu của bộ xử lý nguồn, cột
thứ i từ bên trái sang là dữ liệu của bộ xử lý thứ i trong chuỗi tính từ bộ xử lý nguồn
(xem Hình 2.1) [3].


24

Hình 2.1. Ví dụ minh họa bài toán Duy trì dữ liệu chung trong hệ phân tán. Trong
ví dụ này, chúng ta có n+1 = 5 bộ xử lý duy trì một khung nhìn với m = 4 mục. Nguồn
là bộ xử lý 0. Các mục sai so với nguồn được gạch chân. Độ sai khác cục bộ là số mục
gạch chân tại một bộ xử lý. Độ sai khác tổng là ∆ = 7.

Dữ liệu đƣợc lƣu tại mỗi bộ xử lý (gồm m bít) là khung nhìn của nó về dữ liệu
nguồn. Nhiệm vụ đặt ra cho các bộ xử lý là cập nhật khung nhìn của chúng mỗi khi dữ
liệu nguồn thay đổi sao cho khung nhìn của tất cả các bộ xử lý giống nhau và giống dữ
liệu nguồn.
Ký hiệu các bộ xử lý trong chuỗi bắt đầu từ bộ xử lý nguồn lần lƣợt là P
0
(nguồn),
P
1
, , và P
n
. Gọi x
0
, x
1
, , x
n
lần lƣợt là dữ liệu/khung nhìn của P
0
, P
1
, , P

n
tƣơng
ứng.
2.3. Đánh giá độ phức tạp
Độ phức tạp truyền thông đƣợc tính bắng tổng số bít đƣợc gửi và nhận bởi hai bộ
xử lý bất kỳ trong chuỗi.
Độ phức tạp thời gian đƣợc đánh giá theo chuẩn của các hệ thống không đồng bộ,
trong đó các bít dữ liệu đƣợc truyền trên liên kết một cách tuần tự, bít nối tiếp bít, mỗi
bít đƣợc truyền qua một liên kết trong một đơn vị thời gian, và thời gian thực hiện sự
kiện tính trên các bộ xử lý là không đáng kể.
25
Nhằm đánh giá mức khai thác tri thức cục bộ đã có, chúng ta sử dụng số đo của [5]
đó là số đo mức độ “đúng” của tri thức tại mỗi bộ xử lý. Gọi độ sai khác cục bộ tại
một bộ xử lý là số bít trong dữ liệu của nó khác với dữ liệu nguồn. Độ sai khác tổng là
tổng các độ sai khác cục bộ, và đƣợc ký hiệu là ∆ (xem Hình 2.1).
Độ phức tạp thời gian và độ phức tạp truyền thông là các hàm của m, n và ∆.
2.4. Giải thuật Phát tỏa Đầy đủ
Giải thuật Phát tỏa Đầy đủ, nhƣ đã đƣợc giới thiệu ở trên, thực hiện gửi toàn bộ dữ
liệu nguồn đến tất cả các bộ xử lý theo kỹ thuật dẫn ống. Bắt đầu là bộ xử lý nguồn gửi
dữ liệu nguồn cho bộ xử lý liền sau nó. m bít dữ liệu nguồn đƣợc gửi liên tiếp. Mỗi bộ
xử lý khác nguồn, khi nhận đƣợc bít thứ i của dữ liệu nguồn, chuyển ngay bít đó cho
bộ xử lý kế sau nó nếu nó không phải là bộ xử lý cuối cùng trong chuỗi, và hiệu chỉnh
bít thứ i trong dữ liệu của mình nếu cần. Hình 2.2 mô tả một thực hiện của giải thuật.
Trong ví dụ thực hiện này, hệ thống gồm n+1 = 5 bộ xử lý, số bít dữ liệu của mỗi bộ
xử lý là m = 4. Các bít dữ liệu đƣợc đánh số 0, 1, 2, và 3. Những bít dữ liệu khác với
nguồn đƣợc in đậm và gạch chân. Liên kết giữa hai bộ xử lý liên tiếp không đƣợc vẽ ở
đây nhƣng đƣợc hiểu là khoảng trắng giữa hai cột dữ liệu liên tiếp ứng với hai bộ xử lý
liền nhau trong chuỗi. Trạng thái của các bộ xử lý (các dữ liệu cục bộ của chúng) và
trạng thái của các liên kết (bít dữ liệu đƣợc truyền trên nó) tại mỗi đơn vị thời gian
đƣợc biểu diễn trong Hình 2.2. Trong hình này, một liên kết giữa hai bộ xử lý liên tiếp

đƣợc hiểu là khoảng trắng giữa hai cột dữ liệu ứng với chúng; các số 0 hoặc 1 ghi ở
một khoảng trắng chỉ bít 0 hoặc 1 đang đƣợc truyền trên liên kết tƣơng ứng.



3
2
1
0
0
1
0
0


1
1
0
1


0
1
0
0


1
0
1

0


0
1
1
1

Ban đầu

×