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


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

2


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

3


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

Incremental

Cập nhật đƣợc thực hiện lần lƣợt trên

trưởng

Update

từng bộ xử lý

Cập nhật Tăng
trưởng theo
Phân đoạn Dữ

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.

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


3

liệu
4

Cấu hình

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


Khi nhận đƣợc thơng báo từ bộ xử trƣớc

Pipeline

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

4


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

Gửi thơng tin đến tất cả các bộ xử lý

Broadcast

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

Số bít trong dữ liệu riêng khác với dữ

discrepancy

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

5


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

Hình 1.1

Mơ hình tổng qt 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 tốn Duy trì dữ liệu chung trong hệ phân (24)
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

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, (27)
∆ = 7)

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)

6


MỞ ĐẦU
Trong tính tố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ó 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á

7


độ 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 tố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 tố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.

8


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 qt, 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 tố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 khố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 khố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 khốn cũng ln 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,

9


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

10


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 tố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, tồn bộ hệ thống vẫn có thể làm

việc

Mở rộng

Năng lực tính tố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 tồ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ớ tồ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 tồn cục. Ngồ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

11


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à Pi.
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 qt của các hệ thống phân tán.

Hinh 1.1. Mơ hình tổng qt 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.

12


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ể Pi đến thực thể Pj đƣợc sử dụng để chuyển thông báo
từ Pi đến Pj. 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 Pi gửi cho Pj nhƣng Pj chƣa nhận đƣợc. Mỗi khi P i gửi
cho Pj một thông báo m, m đƣợc đƣa vào hàng đợi q i,j. Pj có thể nhận m khi nó trên

đỉnh hàng đợi qi,j. Liên kết lƣỡng hƣớng giữa Pi và Pj có thể đƣợc mơ hình hóa bằng
hai hàng đợi: qi,j cho hƣớng từ Pi đến Pj và qj,i cho hƣớng từ Pj đến Pi.
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 = (s1, s2, …, sn, q1,2 q1,3, …, qi,j, …., qn, n-1), trong đó si, 1
≤ i ≤ n , là trạng thái của P i và qi, j, i  j, là hàng đợi chứa thông báo Pi gửi cho Pj
nhƣng Pj 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à

13


đọ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 = (s1, s2, …, sn,, r1, r2, …, rm), trong đó si, 1 ≤ i
≤ n, là trạng thái của Pi, rj, 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 ngun 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

14


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
c2 đƣợc gọi là đến được trực tiếp từ cấu hình c1, ký hiệu là c1 a c2, nếu tồn tại một
bƣớc tính a để từ cấu hình c1, thực hiện bƣớc a, ta đƣợc cấu hình c2. 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 aj, 0 ≤ j < n, để c = c0 a0 c1 a1 c2  … cn-1an-1 cn = 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 = (c1, a1, c2, a2, …) là một dãy xen kẽ các cấu hình và bƣớc tính
trong đó ci-1 ai-1 ci (i > 1); nói cách khác, cấu hình ci (i > 1) đến đƣợc trực tiếp từ cấu
hình ci-1 bằng việc áp dụng bƣớc tính ai-1. Ví dụ, trong mơ hình với bộ nhớ dùng
chung, nếu tại bƣớc ai, bộ xử lý Pj ghi giá trị x vào ơ nhớ dùng chung rk, thì chỉ hai
thành phần có giá trị khác nhau trong ci và ci+1 là Pj và rk.

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 lossi, j(m) – thông báo m đƣợc Pi gửi cho Pj
nhƣng bị mất và Pj không nhận đƣợc. Sự kiện lossi, j(m) áp dụng đƣợc trên cấu hình ck
nếu trong ck, qi,j chứa m. Kết quả áp dụng lossi, j(m) trên ck đƣợc cấu hình ck+1 trong đó
m bị loại khỏi qi,j cịn các thành phần khác khơng thay đổi so với trong ck. 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 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.

15


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 = (c1, c2, …) và hoàn toàn đƣợc
xác định từ cấu hình ban đầu, c1.
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 tốn và độ phức tạp bộ nhớ. Thoạt nhìn, việc đánh giá độ phức tạp
tính tố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ố

16


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 chun ngành thuộc tính tố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ỳ, ln đả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ệ.

17


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 tồ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 tồ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.

18


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 si. 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 tồ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ý Pi có trạng thái si, 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 tồn. Do vậy, nhiệm vụ của giải thuật đã đạt đƣợc khi
mỗi bộ xử lý Pi chỉ có duy nhất một trạng thái si. 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ý Pi 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 Pi.
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ý hồ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…

19



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 tố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.

20


CHƯƠNG 2. CÁC GIẢI THUẬT SƠ ĐẲNG
2.1. Giới thiệu

Trong tính tố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ó 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 tố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ề tồ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 tồ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 tố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.

21


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 tồ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 tố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 tố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.

22


2.2. Bài tố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 tố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 hồn tồ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 tố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].

23


Hình 2.1. Ví dụ minh họa bài tố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à P0 (nguồn),
P1, ..., và Pn. Gọi x0, x1, ..., xn lần lƣợt là dữ liệu/khung nhìn của P0, P1, ..., Pn 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ể.

24


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

0

1

0

1

0

2

1

1


1

0

1

1

0

0

0

1

1

0

0

1

0

0

1


25

Ban đầu


×