CHƯƠNG 4 TRUYỀN BÁ THÔNG TIN PHÂN TÁN
4.3. Mối quan hệ giữa MAGP và NLEP
MAGP và NLEP (Node Leader Election Problem) có thể quy về nhau, chúng ta nhận được cận trên và cận dưới số bước di chuyển của MAGP từ NLEP và ngược lại. NLEP là chọn thủ lĩnh trong số các nút trong các hệ thống truyền thông báo. Đầu tiên chúng ta định nghĩa hệ thống truyền thông báo và NLEP.
4.3.1. Hệ thống truyền thông báo
Định nghĩa hệ thống truyền thông báo như sau:
Trong mạng G = (V, E, ), mỗi nút là một thực thể tính toán và liên lạc với các nút khác bằng cách trao đổi thông báo. Chúng ta giả thiết rằng mỗi nút có một định danh phân biệt. Một nút v thực hiện một chuỗi các thao tác sau :
receive(m, v(e)): Nút v nhận một thông báo m từ hàng xóm của nó thông qua liên kết được gắn nhãn v(e), và thực hiện tính toán cục bộ.
send(m, v(e)): Nút v gửi một thông báo m tới hàng xóm của nó thông qua liên kết được gắn nhãn v(e).
Trạng thái của nút được biểu diễn bởi tập các biến của nút. Chúng ta giả thiết một nút thay đổi trạng thái của nó chỉ khi nhận được một thông báo; mỗi nút thực hiện tính toán cục bộ và gửi một vài thông báo chỉ khi nó nhận được một thông báo từ hàng xóm của nó. Trạng thái của nút được ký hiệu bởi :
(sv, (m, v(e) ) ) (sv, M)
Trong đó M là một tập các thông báo (M = { (m1 ,v(e1)), (m2 ,v(e2)), … }, 0 | M|), sự chuyển ở trên nghĩa là nút v với trạng thái sv đã nhận được thông báo m
qua liên kết v(e) thay đổi trạng thái của nó thành sv và gửi các thông báo m1, m2, … thông qua các liên kết liên thuộc với v. Ngoại trừ các nút khởi tạo một thực hiện tính toán cục bộ một cách tự động. Đó là một sự chuyển trạng thái khởi tạo của nút ban đầu xảy ra mà không cần nhận thông báo. Chúng ta giả thiết sự chuyển trạng thái là nguyên tử.
Một hệ thống là không đồng bộ nếu độ trễ tính toán và thời gian tính toán cục bộ
là không thể dự đoán nhưng hữu hạn. Ngược lại một hệ thống là đồng bộ nếu thực hiện của tất cả các nút được phân chia thành các vòng; trong mỗi vòng, mỗi nút nhận tất cả các thông báo đã gửi trong vòng trước, thực hiện tính toán cục bộ, và gửi thông báo cho các hàng xóm của nó.
Một giải thuật trong hệ thống truyền thông báo giả định là truyền thông tin cậy. Truyền thông tin cậy thỏa mãn các tính chất sau:
(Sống động – Liveness) Mỗi thông báo được gửi đi bởi một nút v tới hàng xóm u
cuối cùng sẽ được nhận bởi u.
(Toàn vẹn - Integrity) Mỗi thông báo nhận được trước đó được gửi bởi một nút.
(Không có sao lặp - No Duplicates) Không có thông báo nào được nhận nhiều
hơn một lần tại bất kỳ nút nào.
NLEP là bài toán mà mỗi nút quyết định cuối cùng một thủ lĩnh chung duy nhất. Chúng ta xem xét vấn đề NLEP với giả thiết có chính xác k nút là các nút khởi tạo, NLEP được định nghĩa như sau:
Định nghĩa 4.3-1. (NLEP - Node Leader Election Problem). Cho v0, v1, … ,vk-1 ( 1 k < N) là các nút khởi tạo trong mạng G. Một giải thuật được gọi là giải quyết vấn đề bầu thủ lĩnh nếu nó thỏa mãn các điều kiện sau:
Có chính xác một trong số các nút được bầu chọn là thủ lĩnh và tất cả các nút
trong G biết định danh của thủ lĩnh.
Khi một nút quyết định trở thành thủ lĩnh, nó sẽ không bao giờ thay đổi quyết
định đó.
Định lý 4.3-1. Bài toán NLEP có thể giải quyết được bởi bất cứ giải thuật MAGP nào trong hệ tác tử di động.
Chứng minh. Mỗi nút ban đầu vi tạo một tác tử pi có thông tin khởi tạo Ii chính là định danh của nút vi. Bằng cách áp dụng một giải thuật MAGP, k tác tử được tạo bởi k
nút ban đầu thu thập tất cả định danh của các nút ban đầu. Nút có định danh lớn nhất trong số các nút này biết nó là thủ lĩnh, các nút còn lại biết định danh của thủ lĩnh. Bài toán NLEP đã được giải quyết.
Bây giờ, chúng ta chứng minh rằng MAGP có thể được quy về bài toán NLEP.
Định lý 4.3-2. Bài toán MAGP có thể được giải quyết bằng cách dùng giải thuật NLEP.
Chứng minh. Để chứng minh định lý này, chúng ta cần mô phỏng một giải thuật
truyền thông báo trong hệ tác tử di động. Chúng ta trình bày giải thuật mô phỏng hiệu quả cho các giải thuật truyền thông báo mà chỉ yêu cầu O(1) bước di chuyển của tác tử đối với mỗi thông báo. Chúng ta giả thiết rằng các giải thuật truyền thông báo kết thúc trong thời gian hữu hạn trong các hệ thống không đồng bộ. Chúng ta cũng giả định rằng nút ban đầu tương ứng với nút nhà của một tác tử.
4.3.2. Mô phỏng một giải thuật truyền thông báo
Để đơn giản hóa việc mô tả hoạt động của tác tử, chúng ta sử dụng định danh của nút thay cho nhãn của các liên kết để biểu diễn các nguồn hoặc đích của các thông báo và các bước di chuyển của các tác tử. Để mô phỏng một giải thuật truyền thông báo trong hệ tác tử di động, các tác tử cần chuyển các thông báo giữa hai nút. Ý tưởng của mô phỏng đơn giản; mỗi nút v duy trì các thông báo được tạo ra bởi tính toán cục bộ và các đích của chúng trong một hàng đợi gửi S-queuev trên bảng trắng whiteboard. Mỗi tác tử lấy một thông báo từ hàng đợi gửi ở trên nút nó đến thăm, di chuyển giữa các nút với thông báo, thực hiện tính toán cục bộ, và thêm các thông báo tạo ra vào hàng đợi gửi trên nút đến thăm.
Giải thuật 4.3-1 trình bày giải thuật mô phỏng giải thuật truyền thông báo trong hệ tác tử di động:
Dữ liệu ghi trên bảng trắng whiteboard của mỗi nút v
A: một giải thuật truyền thông báo
sv: trạng thái của nút v trong A
S-queuev: 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ử pi
visiti: một ngăn xếp chứa các nút mà pi đã đi qua (khởi tạo visiti = )
msgi: 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ử pi được khởi tạo tại vị trí ban đầu v
khởi tạo giải thuật A
Process()
+ Với tác tử pi từ nút u đến nút v
If (msgi) Then /* pi đến nút v bởi bước chuyển giao */ Đẩy u vào hàng đợi visiti
Process((msgi, u))
ElseSend /* pi đến nút v bởi bước chuyển quay lui */
Produce Process((m,u))
Thực hiện tính toán cục bộ (sv, (m, u)) | (sv, M) sv = sv và add (m, u) M vào hàng đợi S-queuev. Send
Produce Send
If ( S-queuev ) Then
Xóa thực thể đầu tiên (m, u) từ S-queuev
msgi = m
di chuyển tới u /* pi thực hiện một bước chuyển giao */ ElseReturn
Produce Return
Ifvisiti = Then terminate Else
lấy u từ ngăn xếp visiti
msgi =
di chuyển tới u /* pi thực hiện bước chuyển quay lui * /
Trong giải thuật 4.3-1, trên nút khởi tạo u, tác tử pi tương ứng khởi tạo một giải thuật truyền thông báo và thực hiện tính toán cục bộ ban đầu trên u. Nếu không có thông báo nào trong hàng đợi S-queueu thì tác tử pi kết thúc giải thuật. Ngược lại, pi lấy một thông báo m từ hàng đợi gửi S-queueu và di chuyển đến đích của m cùng với m
(chúng ta gọi sự di chuyển với một thông báo là bước chuyển giao - delivering move). Sau đó, tác tử pi lặp lại các hành động sau đây trên nút viếng thăm v; pi đưa nút viếng thăm trước đó u vào ngăn xếp visiti của pi để sau này quay trở lại u, và thực hiện bước tính cục bộ dựa trên thông báo m đã giao. Nếu S-queuev , tác tử pi thực biện bước giao thông báo m từ v đến đích của m, trong đó (m, w) là thông báo đầu tiên trong S- queuev. Nếu S-queuev rỗng, pi quay trở lại nút u là phần tử đầu tiên của hàng đợi visiti
(chúng ta gọi là sự di chuyển không cần một thông báo là bước chuyển quay lui - backtracking move). Trong trường hợp này, tác tử pi đến nút u không thực hiện tính toán cục bộ vì pi không giao thông báo. Tác tử pi kiểm tra hàng đợi S-queueu và lặp lại các hoạt động trên. Khi tác tử pi trở về nút nhà u của nó, pi kết thúc giải thuật nếu thỏa mãn visiti = và S-queueu = .
Tính đúng đắn của giải thuật mô phỏng
Bây giờ, chúng ta chứng minh tính đúng đắn của giải thuật 4.3-1, bằng cách chỉ ra rằng mọi thực hiện của 4.3-1 thỏa mãn các tính chất của truyền thông tin cậy.
Định lý 4.3-3. Cho A là một giải thuật truyền thông báo có một số 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 4.3-1 mô phỏng một số thực hiện của A.
Chứng minh. Dễ thấy bất cứ thực hiện nào của 4.3-1 thỏa mãn tính toàn vẹn và
không có sao lặp vì một thông báo trong S-queue được giao bởi một tác tử chính xác một lần.
Để chứng minh rằng một thực hiện của 4.3-1 thỏa mãn tính sống động, chúng ta chỉ ra rằng một hàng đợi S-queue ở tất cả các nút cuối cùng sẽ rỗng. Giả sử ngược lại, một thông báo m trong hàng đợi S-queuev không bao giờ được giao bởi bất cứ tác tử nào. Cho pi là tác tử lấy m từ hàng đợi. Vì S-queuev , tác tử pi thực hiện bước chuyển giao từ nút v và đưa nút v vào hàng đợi visiti của nó. Nếu tác tử pi cuối cùng cũng trở về nút v trong hàng đợi visiti của nó, pi tiếp tục bước chuyển giao từ v cho đến khi S-queuev trở nên rỗng. Kết quả, một thông báo m cuối cùng cũng được giao bởi một tác tử. Vì vậy, chúng ta xem xét tác tử pi không trở về nút v trong ngăn xếp visiti
của nó. Trong trường hợp này, tác tử pi 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 pi 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-queueu bởi một bước chuyển
tử pi 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. Bởi vậy, cuối cùng, tác tử pi trở về nút v và thông báo m sẽ được giao.
Hơn nữa, chúng ta chứng minh tính kết thúc của giải thuật 4.3-1; mỗi tác tử kết thúc giải thuật chỉ khi tác tử làm cho hàng đợi S-queue tại nút nhà của nó rỗng. Từ chứng minh định lý 4.3-3, có thể chỉ ra rằng mỗi tác tử cuối cùng cũng trở về nút nhà của nó và hàng đợi S-queue tại đó rỗng.
Bổ đề 4.3-1: Tất cả các tác tử kết thúc giải thuật 4.3-1 trong thời gian hữu hạn trong mọi thực hiện có thể.
Định lý 4.3-4: 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 truyền thông báo A không quá MA. Thì giải thuật 4.3-1 mô phỏng giải thuật A với không quá 2. MA bước di chuyển trong hệ tác tử di động.
Chứng minh. Tổng số bước chuyển giao không quá MA vì một tác tử giao một thông báo khi thực hiện một bước chuyển giao. Mỗi một tác tử đưa một nút vào ngăn xếp chỉ khi tác tử đó thực hiện bước chuyển giao. Tác tử thực hiện bước chuyển quay lui bằng cách lấy một nút từ ngăn xếp của nó. Do đó, tổng số các bước chuyển quay lui bằng tổng số bước chuyển giao, nghĩa là tổng số bước quay lui không vượt quá MA. Định lý đã được chứng minh.
Chứng minh định lý 4.3-2:
Chứng minh. Mỗi tác tử ghi trạng thái "ứng viên" lên bảng trắng whiteboard tại nút nhà, bằng cách mô phỏng giải thuật NLEP. Một tác tử được bầu chọn là thủ lĩnh và các tác tử khác ngưng việc di chuyển của chúng khi chúng kết thúc giải thuật NLEP mô phỏng. Tác tử thủ lĩnh sẽ duyệt toàn mạng để thu thập thông tin của mỗi tác tử, và duyệt lại một lần nữa để phân phát thông tin cho tất cả các tác tử khác, bài toán MAGP được giải quyết.