Giải thuật dựa trên mô hình cây khung ñộng

Một phần của tài liệu Nghiên cứu vấn đề truyền bá thông tin giữa các tác tử di động trong mạng động (Trang 70)

4.4.1. Tư tưởng ca gii thut

Giải thuật tại phần 5.3 sử dụng thuật toán xây dựng cây khung trong mạng tĩnh. Vì vậy mỗi khi có thay ñổi trong topo mạng, toàn bộ kết quảñạt ñược sẽ bị hủy và các tác tử

phải thực hiện lại thuật toán từ ñầu. Độ phức tạp di chuyển ñể ñáp ứng với mỗi thay ñổi trong mạng là O(E).

Để giảm ñộ phức tạp này, thay vì sử dụng thuật toán xây dựng cây khung GHS-83 trong mạng tĩnh, chúng ta sẽ sử dụng giải thuật OMST. Đây là giải thuật xây dựng vào bảo toàn cây khung trong mạng ñộng (Xem chương 4). Độ phức tạp thông báo ñáp ứng với mỗi thay ñổi trong mạng của giải thuật này chỉ là O(E).

Vì vậy, tư tưởng của giải thuật ở phần này sẽ là: sử dụng giải thuật MSA ñể chuyển sang mô hình tác tử, áp dụng giải thuật OMST ñể xây dựng và bảo toàn cây khung trong mạng ñộng. Độ phức tạp di chuyển ứng với mỗi thay ñổi trong mạng trong trường hợp này có thể giảm xuống chỉ còn O(V).

Giải thuật có thểñược mô tả như sau:

•Tại thời ñiểm ban ñầu, các nút có tác tử sẽ tựñộng chuyển trạng thái từ sleeping sang find ñể tiến hành xây dựng cây khung theo giải thuật OMST. Các tác tử tại mỗi nút sẽ làm nhiệm vụ tính toán cục bộ và tạo ra các thông báo ñể lưu vào hàng

ñợi gửi. Các thủ tục tính toán cũng như gửi thông báo ñược lấy trong giải thuật OMST. Các thông báo trong hàng ñợi lần lượt ñược tác tử gửi tới các nút tương

ứng, theo giải thuật MSA.

•Khi xây dựng xong cây khung, các thông báo ñược tạo ra trong giải thuật OMST

ñã ñược gửi ñi hết. Giải thuật xây dựng vào bảo toàn cây khung tạm thời dừng lại

ñể ñợi các thay ñổi trong mạng. Các thực hiện tiếp theo của thuật toán sẽ diễn ra tương tự giải thuật duyệt. Các tác tử tiến hành di chuyển theo cây khung. Khi một tác tử phát hiện ra tác tử có ID nhỏ hơn, nó sẽ dừng lại. Cuối cùng, chỉ còn tác tử

có ID nhỏ nhất là liên tục di chuyển trên cây khung, thu thập và truyền thông tin cho các tác tử khác trong mạng

•Các tác tử ñứng yên tại mỗi nút sẽ ñợi trong một giới hạn thời gian, nếu quá giới hạn này mà không có tác tử nào di chuyển ñến nút ñó, nó sẽ tự ñộng khởi tạo lại quá trình di chuyển.

•Khi có một thay ñổi trong mạng, một tác tử khi di chuyển ñến nút kề với thay ñổi

giúp khôi phục lại cây khung. Sau ñó các tác tử lại có thể di chuyển theo cây khung như bình thường

Chương trình chính

•Thực hiện thủ tục BUILD_TREE xây dựng cây khung trong hệ thống

•Di chuyển trên cây khung bằng thủ tục VISIT ñể thu thập thông tin

•Nếu phát hiện thấy tác tử có ID nhỏ hơn, dừng lại và gọi thủ tục TIMEOUT

•Phát hiện thay ñổi trong mạng, gọi thủ tục ALERT ñể báo cho nút gốc thực hiện tiếp thuật toán

•Nếu tác tử tại nút gốc thấy thông báo Alert, gọi lại thủ tục BUILD_TREE ñể sửa lại cây khung

Th tc VISIT

(Tác t duyt theo cây khung, ñể tiến hành tìm th lĩnh và thu thp thông tin)

Khi tác tử p ñến nút v Nếu IDp <= minIDv

(Đặt li các giá tr minIDv và timev)

minIDv = IDp timev = 0

Di chuyển tiếp theo cây khung Nếu không

(Tác t phát hin ra tác t khác có ID nh hơn)

Dừng lại tại nút v.

Th tc TIMEOUT

(Đợi ti mt nút trong mt khong thi gian)

Nếu timev > WaitTime thì gọi lại thủ tục VISIT

(Khi tác t phát hin ra mt thay ñổi trong topo mng)

Nếu liên kết trong của cây khung bịñứt

Bỏ liên kết này trong cây ảo của nút hiện thời

Nếu nút hiện tại là nút con của liên kết, tác tử sẽñánh dấu nút này trở thành nút gốc, thực hiện thủ tục BUILD_TREE

Nếu là nút cha, tác tử sẽ chuyển thông báo Alert cho nút gốc.

Th tc BUILD_TREE

•Khi phát hiện một liên kết trong cây khung bị mất:

Thực hiện thủ tục loại bỏ liên kết này tại hai ñầu của liên kết.

•Khi hai mảnh kết hợp với nhau hoặc topo mạng thay ñổi: Gọi thủ tục UPDATE, sau ñó gọi thủ tục FIND.

•Khi hai mảnh chọn chung một liên kết ngoài:

Hai mảnh thực hiện thủ tục UPDATE riêng rẽ. Kết hợp hai mảnh lại làm một qua liên kết ngoài ñó.

Th tc UPDATE

(Thc hin bi tác t ti nút gc hoc ti nút nhn ñược thông báo update t nút cha gi xung)

•Thực hiện thủ tục LOCAL_UPDATE ñể cập nhật lại cây khung

•Tạo ra các yêu cầu update và cho vào hàng ñợi. Tác tử sẽ lần lượt gửi yêu cầu này cho các nút con

(Chi tiết th tc LOCAL_UPDATE có th xem ti chương 4)

Th tc FIND

(Thc hin bi tác t ti nút gc hoc ti nút nhn ñược thông báo find t nút cha gi xung)

•Tìm kiếm liên kết ngoài tối thiểu cục bộ của nút

•Tạo ra các yêu cầu find và cho vào hàng ñợi. Tác tử sẽ lần lượt gửi yêu cầu này cho các nút con

•Khi nhận ñược phản hồi từ tất cả các nút con, tổng hợp lại ñể xác ñịnh liên kết ngoài tối thiểu, tác tử sẽ chuyển thông báo này lên nút cha.

•Sau khi tổng hợp liên kết ngoài tối thiểu của mảnh tại nút gốc, tác tử sẽ gọi thủ

tục CHANGE_ROOT

Th tc CHANGE_ROOT

(Chuyn gc ca mnh ti nút k vi liên kết ngoài ti thiu)

•Khi tác tử chuyển thông báo tới một nút, ñánh dấu nút này là nút gốc

•Nếu là nút kề với liên kết ngoài tối thiểu, tác tử dừng lại và gọi thủ tục MERGE_TREE

•Tìm nút con trên ñường ñến liên kết ngoài tối thiểu, tác tử bỏñánh dấu gốc tại nút hiện tại và chuyển thông báo chuyển gốc cho nút này

Th tc MERGE_TREE

(Chỉ ñược gi nếu mnh có ID nh hơn)

Nếu chưa nhận ñược thông báo Request

•Tác tử tại nút gốc gửi thông báo Request cho mảnh bên kia qua liên kết ngoài tối thiểu

•Khi tác tử tại nút gốc nhận ñược thông báo Alert (có thay ñổi trong topo mạng), xét các trường hợp sau:

Nếu ñã nhận ñược Accept từ mảnh bên kia, bỏ qua Alert và kết hợp mảnh bình thường

Chưa nhận ñược Accept, tác tử chuyển thông báo Cancel sang bên mảnh kia, nếu nhận ñược Canceled thì hủy bỏ quá trình kết hợp mảnh

Nếu ñã nhận ñược thông báo Request từ một mảnh bên kia qua cùng liên kết ngoài tối thiểu:

•Nếu nút nhận Request không phải nút gốc, tác tử sẽ di chuyển ñến nút gốc của mảnh này và yêu cầu thực hiện thủ tục UPDATE và FIND.

•Tác tử chuyển thông báo Accept qua liên kết này trở lại mảnh trước.

Chưa chuyển Accept, tác tử sẽ chuyển lại thông báo Canceled và hủy bỏ quá trình kết hợp mảnh.

Nếu ñã chuyển Accpet, bỏ qua thông báo Cancel.

4.4.2. Đánh giá gii thut

Ta chứng minh tính ñúng ñắn của thuật toán qua một sốñịnh lý sau:

Định lý 4.6. Bng cách áp dng gii thut trên, quá trình xây dng và bo toàn cây khung trong h thng luôn ñược ñảm bo.

Chng minh:

Trong giải thuật trên, ta áp dụng và chuyển ñổi giải thuật OMST cho mô hình tác tử. Giải thuật OMST ñã ñược chứng minh ñã ñúng ñắn cho mô hình truyền thông báo. Vì vậy, khi chuyển sang mô hình tác tử, chúng ta chỉ cần xét trường hợp, một nút trong mạng có phát sinh thông báo nhưng không tác tửñến và chuyển thông báo ñi.

Trong các thủ tục xây dựng cây, các nút chỉ phát sinh thông báo khi nhận ñược thông báo từ nút khác gửi ñến. Vì vậy, các thông báo này luôn ñược gửi ñi bởi tác tử tại nút ñó.

Chỉ duy nhất một trường hợp có thể tự phát sinh thông báo, ñó là tại các nút kề với liên kết của cây bị ñứt. Tuy nhiên, trường hợp này ñã ñược giải quyết tại thủ tục MERGE_TREE, khi tác tử chuyển yêu cầu Request ñến mảnh này, nó sẽ di chuyển ñến nút gốc và gọi thủ tục UPDATE và FIND. Định lý ñược chứng minh.

Định lý 4.7. Khi hai tác tửở trên hai nút liên thông, chúng s trao ñổi ñược thông tin sau mt thc hin nào ñó.

Chng minh:

Theo ñịnh lý 5.1, cây khung trong hệ thống sẽ ñược xây dựng và bảo toàn với mỗi thay ñổi trong mạng. Vì vậy, tác tử thủ lĩnh có thể di chuyển ñến tất cả các nút và truyền bá thông tin ñến tất cả các tác tử khác.

Từñịnh lý 5.2 ta suy ra ñược tính ñúng ñắn của giải thuật.

Định lý 4.8. “Độ yên tĩnh” ca thut toán là k – 1.

Sau khi xây dựng xong cây khung, trừ tác tử có ID nhỏ nhất, các tác tử khác trong quá trình di chuyển sẽ phát hiện ra ID nhỏ hơn mình và dừng lại. Cuối cùng chỉ còn tác tử

thủ lĩnh là liên tục di chuyển trong mạng. Định lý ñược chứng minh

Định lý 4.9. Độ phc tp di chuyn ca tác t th lĩnh trong mi vòng là O(V). (V là s nút trong mng)

Chng minh:

Tác tử thủ lĩnh chỉ cần di chuyển trên các liên kết trên cây khung trong mỗi vòng là

ñủñể duyệt toàn mạng. Và số liên kết trên cây là V – 1. Định lý ñược chứng minh

Định lý 4.10. Độ phc tp di chuyn ñáp ng vi mi thay ñổi trong mng là O(V).

Chng minh:

Độ phức tạp thông báo ứng với mỗi thay ñổi trong mạng của giải thuật OMST là O(V)

Giải thuật MSA chuyển một giải thuật trong mô hình thông báo sang mô hình tác tử

sẽ có ñộ phức tạp di chuyển tương ñương với ñộ phức tạp thông báo Từ hai ñiều trên, chúng ta chứng minh ñược ñịnh lý.

KT LUN

Luận văn ñã giới thiệu về mô hình tác tử di ñộng trong hệ phân tán, ñây là mô hình mới, hứa hẹn sẽ có nhiều ứng dụng trong tương lai. Luận văn cũng ñã trình bày về bài toán quan trọng trong mô hình tác tử là bài toán truyền bá thông tin ngẫu nhiên. Đây là một trong những bài toán cơ bản, ñược sử dụng nhiều trong thực tế cũng như ñể giải quyết các bài toán khác.

Trong luận văn cũng ñã nêu ra các nghiên cứu về bài toán truyền bá thông tin giữa các tác tử trong mạng tĩnh. Đây là vấn ñềñã ñược nhiều tác giả tập trung nghiên cứu, và cũng ñã có nhiều thuật toán ñể giải quyết như thuật toán hẹn gặp hoặc thuật toán bầu thủ

lĩnh.

Trong mô hình mạng ñộng, chưa có nhiều nghiên cứu về bài toán truyền bá thông tin giữa các tác tử. Bài báo của các tác giả T. Masuzawa and S. Tixeuil mới chỉ ñưa ra những nghiên cứu chung về bài toán trong các dạng mạng khác nhau. Trong bài báo có

ñưa ra một thuật toán khá ñơn giản, nhưng ñộ hiểu quả không cao và các tác giả cũng chưa tập trung vào ñánh giá ñộ phức tạp của giải thuật ở những khía cạnh khác. Trong luận văn, tôi ñã ñánh giá chi tiết ñộ phức tạp của giải thuật trên qua những chứng minh cụ

thể. Giải thuật tuy ñạt ñược “ñộ yên tĩnh” tốt nhất là k – 1, những ñộ phức tạp di chuyển của tác tử thủ lĩnh trong mỗi chu trình khá lớn, là O(E).

Đóng góp chính của luận văn là ñề xuất hai giải thuật ñể giảm ñộ phức tạp của bài toán truyền bá thông tin trong mạng ñộng. Cả hai giải thuật ñều dựa trên mô hình xây dựng cây khung trong hệ thống, nhờ ñó ñộ phức tạp di chuyển mỗi chu trình có thể giảm xuống.

Thuật toán ñược ñề xuất ñầu tiên dựa vào các giải thuật xây dựng cây khung trong mạng tĩnh GHS-83. Giải thuật này chia làm 2 bước, bước 1, các tác tử sẽ tiến hành giải thuật xây dựng cây khung, và chọn ra tác tử thủ lĩnh, bước 2, tác tử thủ lĩnh sẽ tiến hành duyệt liên tục trên cây khung và truyền bá thông tin. Nếu có thay ñổi trong mạng, các tác tử sẽ phát hiện ra và thực hiện việc xây dựng lại từñầu. Tính ñúng ñắn và ñộ phức tạp của giải thuật ñược chứng minh chi tiết. Trong ñó, ñộ yên tĩnh là k – 1, ñộ phức tạp di chuyển

ñỗi với mỗi thay ñổi của mạng là O(E), ñộ phức tạp di chuyển mỗi vòng là O(V).

Thuật toán ñược ñề xuất tiếp theo dựa vào giải thuật xây dựng cây khung trong mạng ñộng. Đây là giải thuật mới, rất hiệu quả trong việc xây dựng và duy trì một cây khung trong mạng có topo thay ñổi. Nhờ việc áp dụng giải thuật này, thuật toán giảm ñộ

giữ nguyên so với giải thuật trên (Độ yên tĩnh là k – 1, ñộ phức tạp di chuyển mỗi vòng là O(V)).

Các giải thuật trên tuy ñã cải thiện ñược ñộ phức tạp di chuyển của các tác tử. Tuy nhiên việc áp dụng chúng trong mô hình thực tế vẫn còn khó khăn. Vì vậy, hướng nghiên cứu trong tương lai là tiếp tục cải tiến các giải thuật trên ñểñưa vào áp dụng trên thực tế.

TÀI LIU THAM KHO Tiếng Vit

1. Lê Trọng Hùng (2009), Truyn bá thông tin gia các tác t di ñộng, Luận án thạc sĩ Công nghệ thông tin, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội.

Tiếng Anh

2. Y. Afek, B. Awerbuch and E. Gafni (1987), “Applying static network protocols to

dynamic networks”, Proceedings of the 28th IEEE conference on Foundations of Computer Science, pp. 358-370.

3. Y. Afek, S. Kutten, M. Yung (1990), “Memory-efficient self stabilizing protocols

for general networks”, Proceedings of 5th workshop on Distributed Algorithms, pp. 15-28.

4. B. Awerbuch (1985), “Complexity of network synchronization”, Journal of the

ACM, 32, pp. 804-832.

5. B. Awerbuch, I. Cidon and S. Kutten (1990), “Communication-optimal

maintenance of replicated information”, Proceedings of IEEE Symposium on Foundations

of Computer Science, pp. 492-502.

6. B. Awerbuch, O. Goldreich, A. Herzberg (1990), “A quantitative approach to

dynamic networks”, Proceedings of the ACM symposium on Principles of Distributed

Computing”, pp. 189-203.

7. B. Awerbuch, I. Cidon and S. Kutten (2008), “Optimal Maintenance of a

Spanning Tree”, Journal of the ACM, 55, pp. 8-42.

8. J. Beauquier, T. Herault, E. Schiller (2001), “Easy Stabilization with an agent”,

Proceedings of the 5th Workshop on Self-Stabilizing Systems, pp. 35-51.

9. B. Bellur, R.G. Ogier (1999), “A reliable, efficient topology broadcast protocol

for dynamic networks”, Proceedings of IEEE INFOCOM.

10. J. Chalopin, E. Codard, Y. Metivier and R. Ossamy (2006), “Movile agent

algorithms versus message passing algorithms”, Proceedings of the 10th International Conference on Principles of Distributed Systems, pp. 197-201.

11. C. Cheng, I.A. Cimet, S.P.R. Kumar (1988), “A protocol to maintain a minimum

spanning tree in dynamic topology”, Proceedings of ACM, pp. 330-337

12. S. Cicerone, G. Stefano, D. Frigione, U. Nanni (2003), “A fully dynamic

13. S. Das, P. Flocchini, A. Nayak, N. Santoro (2006), “Effective elections for

anonymous mobile agents”, Proceedings of the 17th International Symposium on Algorithms and Computation, pp. 732-743.

14. S. Dolev, A. Israeli, S. Moran (1993), “Self-stabilization of dynamic systems

assuming only read/write atomicity”, Distributed Computing, 7, pp. 3-16.

15. R.G. Gallager (1977), “A minimum delay routing algorithm using distributed

computation”, IEEE trans Commun, 25, pp 73-85.

16. R.G. Gallager, P.A. Humblet and P.M. Spira (1983), “A distributed algorithm

for minimum-weight spanning tree”, ACM Transactions on Programming Languages and

Systems, 5, pp. 66-77.

17. S. Ghosh (2000), “Agents, distributed algorithm, and stabilization”, Proceedings

of International Computing and Combinatorics Conference, pp. 242-251.

18. E. Kranakis, D. Krizanc and S. Rajsbaum (2006) , “Mobile agent rendezvous”,

Proceedings of the 13th Colloquium on Structural Information and Communication Complexity, pp. 1-9.

19. GD. Marco, L. Gargano, E. Kranakis, D. Krizanc, A. Pelc, U. Vaccaro (2006),

“Asynchronous deterministic rendezvous in graphs”, Theoretical Computer Science, 355,

pp. 315-326.

20. T. Masuzawa and T. Herman (2001), “Self-stabilizing agent traversal”,

Proceedings of the 5th Workshop on Self-Stabilizing Systems, pp. 152-166.

21. T. Masuzawa and S. Tixeuil (2010), “Quiescence of Self-stabilizing Gossiping

among Mobile Agents in Graphs”, Theoretical Computer Science, 411, pp. 1569-1574.

22. T. Suziki, T. Izumi, F. Ooshita, H. Kakugawa and T. Masuzawa (2007), “Move-

Một phần của tài liệu Nghiên cứu vấn đề truyền bá thông tin giữa các tác tử di động trong mạng động (Trang 70)