Tải bản đầy đủ (.ppt) (24 trang)

Chuong 3 Bau thu linh tren vong 2

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 (259.42 KB, 24 trang )

Chương 3

BẦU THỦ LĨNH TRÊN VÒNG
(2(

1


Nội dung
• Bầu thủ lĩnh đồng bộ khơng đồng dạng
• Bầu thủ lĩnh đồng bộ đồng dạng
• Cận dưới của giải thuậu bầu thủ lĩnh dựa trên so
sánh

2


BTL đồng bộ khơng đồng dạng
• Giải thuật
– Hoạt động theo đợt, mỗi đợt gồm n vòng.
– Các bộ xử lý cùng bắt đầu giải thuật tại một vòng
– Ở đợt thứ i, bộ xử lý có id là i, nếu tồn tại, gửi một thơng báo đi
khắp vịng và trở thành thủ lĩnh
• Các bộ xử lý khơng có id là i nếu nhận được thơng báo thì chuyển
tiếp sang bên cạnh
• Bộ xử lý có id nhỏ nhất sẽ trở thành thủ lĩnh

• Ví dụ
– n = 4 và id nhỏ nhất là 7
• Từ đợt 0 đến 6, khơng có thơng báo nào được gửi
• Ở đầu đợt 7, bộ xử lý có id là 7 gửi thơng báo đi khắp vịng



• Độ phức tạp thơng báo là O(n) (tối ưu)
• Độ phức tạp thời gian là O(nx), x là id nhỏ nhất
3


BTL đồng bộ đồng dạng (1)
• Mơ hình
– Các bộ xử lý không buộc phải bắt đầu giải thuật cùng nhau
– Một bộ xử lý bắt đầu thực hiện giải thuật ở một vòng bất kỳ hoặc
ở vòng đầu tiên nhận được thơng báo

• Ý tưởng của giải thuật
– Thơng báo gửi từ các bộ xử lý khác nhau sẽ có tốc độ truyền
khác nhau
• Thơng báo fast: thơng báo được chuyển tiếp ngay
• Thơng báo slow: thơng báo bị làm trễ trước khi chuyển
– Thông báo của bộ xử lý có id càng lớn thì càng bị làm trễ

– Các bộ xử lý nhận được thông báo trước khi bắt đầu giải thuật
sẽ khơng tham gia bầu thủ lĩnh
• chỉ nuốt hoặc chuyển đi thông báo nhận được

4


BTL đồng bộ đồng dạng
• Giải thuật
– Đầu tiên các bộ xử lý ở trạng thái asleep
– Một số bộ xử lý ngẫu nhiên đổi trạng thái thành active

• Gửi id của nó trong một thơng báo fast

– Mỗi bộ xử lý asleep khi nhận được một thơng báo thì
chuyển sang trạng thái relay
• Nuốt hoặc chuyển tiếp thơng báo nhận được

5


BTL đồng bộ đồng dạng (3)
• Giải thuật (tiếp theo)
– Mỗi bộ xử lý active khi nhận được một thông báo
• Nếu là thơng báo fast thì sẽ đổi thành thơng báo slow
• Nuốt hoặc chuyển tiếp thơng báo

– Bộ xử lý nhận lại được thông báo chứa id của chính nó thì sẽ
trở thành thủ lĩnh
– Quy tắc nuốt thơng báo
• Thơng báo sẽ bị nuốt tại một bộ xử lý nếu id trong thông báo > id
nhỏ nhất mà bộ xử lý nhận đuợc thông báo đã biết được
– bao gồm id của bộ xử lý nhận được nếu là đó bộ xử lý active
– bỏ qua id của bộ xử lý nhận được nếu đó là bộ xử lý relay

– Quy tắc chuyển tiếp thơng báo
• Nếu thơng báo là fast thì chuyển tiếp ngay
• Nếu thơng báo là slow thì làm trễ 2i - 1 vịng trước khi chuyển tiếp
– i là id của bộ xử lý khởi tạo thông báo

6



Pseudocode (1)

7


Pseudocode (2)
// Với mỗi thơng báo (m,h) trong đó m: id của bộ xử lý khởi tạo thông báo,
h:1 nếu là thông báo fast, 2 nếu là slow

8


Phân tích giải thuật đồng dạng (1)
• Tính đúng đắn
– Chỉ bộ xử lý có id nhỏ nhất trong số các bộ xử lý
active nhận được thông báo chứa id của chính nó

• Độ phức tạp thơng báo
– Thơng báo có id nhỏ nhất đi nhanh nhất sẽ chặn các
thơng báo khác không cho phát sinh quá nhiều
– Phân các thơng báo ra làm ba loại
• Loại 1: Các thơng báo fast
• Loại 2: Các thơng báo slow gửi đi trong khi thơng báo của
thủ lĩnh vẫn cịn là fast
• Loại 3: Các thông báo slow gửi đi trong khi thông báo của
thủ lĩnh đã trở thành slow
9



Phân tích giải thuật đồng dạng (2)
• Số thơng báo loại 1
– Không bộ xử lý nào nhận quá một thơng báo fast
• Giả sử một bộ xử lý pi nhận được hai thông báo fast, một từ
pk, một từ pj, với pk cách xa pi hơn pj theo chiều kim đồng hồ
• Bộ xử lý pj phải trở thành active trước khi nhận được bất kỳ
thơng báo nào
• Để đến được pi, thông báo fast của pk phải đến pj khi pj đang
ở trạng thái active
• Thơng báo fast của pk sẽ chuyển thành slow trước khi đến pi

– Tổng số thông báo loại 1 ≤ n
...

pk

...

pj

... pi ...
10


Phân tích giải thuật đồng dạng (3)
• Số thơng báo loại 2
– Số bước dịch của thông báo loại 2 có id là i ≤ n/2i




• Thơng báo của thủ lĩnh là fast trong ≤ n vịng
• Thơng báo slow có id là i cứ 2i vịng mới dịch chuyển một lần
n −1
n
Tổng số thông báo loại 2 ≤ ∑ i ≤ n
i =1 2
• Nhiều thơng báo nhất khi có các id từ 0 đến n - 1

• Số thông báo loại 3
– Số bước dịch của thông báo loại 3 có id là i ≤ n2x/2i



• Số vịng để thơng báo slow của thủ lĩnh có id là x trở về ≤ n2x
• Sau đó, khơng có thêm thôngn −báo
nào được gửi
1
20
Tổng số thông báo loại 3 ≤ ∑ n 2i ≤ 2n
i =0
• Nhiều thơng báo nhất khi có các id từ 0 đến n - 1 (x = 0)
11


Phân tích giải thuật đồng dạng (4)
• Độ phức tạp thơng báo là O(n)
– Tổng số thơng báo ≤ 4n
• Độ phức tạp thời gian là O(n2x)
– Tổng số vòng ≤ n2x (x là id của thủ lĩnh)


12


BTL dựa trên so sánh
• Tính chất chung của hai giải thuật đồng bộ đã
học
– Sử dụng id để xác định độ trễ thơng báo
• Phương cách khơng chuẩn

– Số vịng thực hiện thỏa đáng phụ thuộc các id
• Các id có thể rất lớn so với n

• Sẽ chứng minh các giải thuật sử dụng id để so
sánh có độ phức tạp thông báo Ω(nlogn)

13


Các khái niệm trong BTL dựa trên
so sánh
• Hai vịng R1 = (x1, x2,..., xn) và R2 = (y1, y2,..., yn) tương
đương thứ tự (order equivalent) nếu xi < xj ⇔ yi < yj
• Các bộ xử lý pi trong R1 và pj trong R2 tương ánh
(matching) nếu chúng có cùng khoảng cách từ id nhỏ
nhất

14


Các khái niệm trong BTL dựa trên

so sánh (2)
– Hai bộ xử lý trong 2 vòng là hoạt động như nhau
(behave the same) nếu ở mỗi vịng
• Bộ xử lý này gửi một thông báo sang trái (phải) ⇔ Bộ xử lý
kia gửi một thơng báo sang trái (phải)
• Bộ xử lý này thành thủ lĩnh ⇔ Bộ xử lý kia thành thủ lĩnh

– Một giải thuật bầu thủ lĩnh gọi là dựa trên so sánh
(comparison- based) nếu ∀ cặp vòng R1 và R2 tương
đương thứ tự, mọi cặp bộ xử lý tương ánh pi trong R1
và pj trong R2 hoạt động như nhau trong exec(R1) và
exec(R2)

15


Cận dưới thơng báo (1)
• Định lý
∀ n ≥ 8 là lũy thừa của 2, ∃ một vịng kích thước n sao cho bất
kỳ giải thuật đồng bộ dựa trên so sánh nào thực hiện trên đó
cũng gửi Ω(nlogn) thơng báo

• Các bước chứng minh
– Với mỗi n, xây dựng một vịng Sn có tính đối xứng cao sao cho
mọi giải thuật dựa trên so sánh đều tiêu tốn nhiều thơng báo
• Tính đối xứng cao nghĩa là nhiều bộ xử lý có miền lân cận tương
đương thứ tự ⇒ thực hiện (gửi thơng báo) như nhau
• Chứng minh hai bộ xử lý có miền lân cận tương đương thứ tự trên
cùng một vịng thực hiện như nhau (khơng phải trên các vịng khác
nhau)


– Tính số lượng thơng báo cần gửi dựa vào số lượng các miền
lân cận trong mỗi vịng và số vịng có thơng báo gửi đi cần thiết
để thực hiện giải thuật

16


Cận dưới thơng báo (2)
• Một số khái niệm
– Một vịng là tích cực nếu trong vịng đó có ít nhất một thơng báo
được gửi
• Với giải thuật thơng thường, một bộ xử lý có thể biết được một
thơng tin nào đó ngay cả trong vịng khơng tích cực
• Với giải thuật dựa trên so sánh, không thể biết như vậy
• Một vịng tích cực thứ k có thể lớn hơn rất nhiều vịng thứ k
Dựa vào số vịng tích cực và số thơng báo được gửi trong
mỗi vịng để tính tốn độ phức tạp thơng báo

– Một vịng kích thước n là cách thưa (spaced ring) nếu ∀ id x
thuộc vòng, các id x - 1 đến x - n khơng thuộc vịng

• Bổ đề 1
– Nếu vịng R cách thưa và pi và pj có các miền lân cận bán kính k
tương đương thứ tự thì pi và pj hoạt động như nhau qua k vịng
tích cực

17



Chứng minh bổ đề 1
• Xây dựng R' sao cho
– Các miền lân cận bán kính k của pj trong R' và pi trong R giống
hệt nhau
– Các id trong R' đôi một khác nhau
– R' tương đương thứ tự với R
– pj trong R' tương ánh với pj trong R

18


Chứng minh bổ đề 1 (tiếp)


pi trong exec(R) qua k vịng tích cực hoạt động giống pj trong exec(R')
– Vì có cùng miền lân cận bán kính k



pj trong exec(R') qua k vịng tích cực hoạt động như pj trong exec(R)
– Vì tương ánh với nhau

Vấn đề là làm thế nào để xây dựng được vòng R cách thưa và có các
miền lân cận bán kính k tương đương thứ tự ?

19


Xây dựng vịng đối xứng cao
• Xây dựng Sn đối xứng cao qua hai bước

– Xây dựng Rnrev
• Với mỗi i (i = 0,..., n - 1), lấy id của pi là rev(i), trong đó rev(i) là số nguyên có
biểu diễn nhị phân dùng logn bit là đảo ngược của biểu diễn nhị phân của i
• Các phân đoạn kế tiếp độ dài j của Rnrev (j là lũy thừa của 2) tương đương thứ
tự với nhau

– Sn là phiên bản cách thưa của Rnrev
• Nhân mỗi id trong Rnrev lên n + 1 lần rồi cộng thêm n

20


Bổ đề 2 về số miền lân cận bán
kính k của Sn
• Bổ đề 2
∀ k < n/8, ∀ miền lân cận N bán kính k của Sn, có nhiều hơn

n
2(2k + 1)

miền lân cận bán kính k của Sn tương đương thứ tự với

N (kể cả N)

• Chứng minh bổ đề 2






N có số hàng xóm là 2k +1
Gọi j là số lũy thừa của 2 bé nhất thỏa mãn 2(2k + 1)> j > 2k+1
Chia Sn thành n/j miền sao cho có một miền chứa N
Do cách xây dựng Sn, tất cả các miền đều là tương đương thứ
tự
– Có n/j miền hay có nhiều hơn n/2(2k+1) tương đương thứ tự với
N
21


Bổ đề 3 về số vịng tích cực
• Bổ đề 3

– Số vịng tích cực trong exec(Sn) ≥ n/8

• Chứng minh bổ đề 3
– Giả sử số vịng tích cực T < n/8
• Gọi pi là thủ lĩnh được bầu
• Trạng thái của một bộ xử lý chỉ phụ thuộc vào miền lân cận
bán kinh T
n
2(2T + 1)

• Theo bổ đề 2, có nhiều hơn
miền lân cận bán kính T
tương đương với miềnnlân >cận
bán kính T của pi
1
• n ≥ 8 và T < n/8 ⇒ 2(2T + 1)
∀ ∃ pj ≠ pi có miền lân cận bán kính T tương đương thứ tự với

miền lân cận bán kính T của pi
• Theo bổ đề 1, pj cũng được bầu
• Mâu thuẫn
22


Bổ đề 4 về số thơng báo trong vịng
tích cực
• Bổ đề 4

n
– Có ít nhất 2(2k + 1) thơng báo được gửi ở vịng tích cực

thứ k của exec(Sn), 1 ≤ k ≤ n/8

• Chứng minh bổ đề 4
– Ở mỗi vịng tích cực có ≥ n1 bộ xử lý pi gửi 1 thơng báo
• Theo bổ đề 2, có ít nhất 2(2k + 1) bộ xử lý có miền lân cận bán
kính k tương đương thứ tự với miền lân cận k của pi
• Theo bổ đề 1, mỗi bộ xử lý đó gửi một thơng báo ở vịng tích
cực thứ k

• Tổng số thơng
báo được
gửi trong exec(Sn)
n /8
n/8
n
n
1


= Ω(n log n)


6 k =1 k
k =1 2( 2 k + 1)

23


Bài tập số 4


Đề bài:
1. Bài tập 3.9 (SGK). Với vịng Rnrev (trong phần chứng
minh định lý Cận dưới thơng báo), hãy chứng minh
rằng khi chia Rnrev thành n/j phần đoạn trong đó j là
lũy thừa của 2 thì các phân đoạn kế tiếp độ dài j
của Rnrev tương đương thứ tự với nhau





Thời hạn nộp bài: Thứ 2 21/5/2007
Địa chỉ gửi bài: ,

Đầu đề email: [BT cac he phan tan] [4]
Tênhọcviên
24




×