Mô phỏng một giải thuật truyền thông báo

Một phần của tài liệu Truyền bá thông tin phân tán giữa các tác tử di động (Trang 52)

Để đơ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 (adsbygoogle = window.adsbygoogle || []).push({});

(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.

Một phần của tài liệu Truyền bá thông tin phân tán giữa các tác tử di động (Trang 52)