Trần Đình Quế Năm bảo vệ: 2007 Abstract: Khái quát về tương tác trong hệ đa agent : khái niệm, mô hình tương tác trong hệ đa agent, so sánh tương tác trong hệ đa agent và hệ hướng đối
Trang 1Mô hình tương tác dựa trên role trong hệ đa agent
Nguyễn Thị Thanh Huyền
Trường Đại học Công nghệ Luận văn ThS chuyên ngành: Công nghệ thông tin; Mã số: 1 01 10
Người hướng dẫn: PGS.TS Trần Đình Quế
Năm bảo vệ: 2007
Abstract: Khái quát về tương tác trong hệ đa agent : khái niệm, mô hình tương tác
trong hệ đa agent, so sánh tương tác trong hệ đa agent và hệ hướng đối tượng, thương lượng đấu giá Tổng quan về vai trò của role trong phát triển phần mềm: role và vai trò của role trong hệ thống thông tin, role trong phát triển phần mềm hướng đối tượng, role trong hệ đa agent Giới thiệu mô hình tương tác dựa trên role BRAIN , XRole - tập ký hiệu đặc tả role, cơ sở hạ tầng tương tác, mô hình role cho đấu giá tự động Trình bày cách cài đặt role trong hệ thống đấu giá cũng như những kết quả thử nghiệm và đánh giá hệ thống thử nghiệm
Keywords: Công nghệ thông tin, Hệ thống thông tin, Hệ Đa Agent, Máy tính, Phần
mềm
Content
MỞ ĐẦU
Thiết kế và xây dựng các hệ thống phần mềm phức tạp là một việc làm hết sức khó khăn và được cho là một trong những công việc kiến thiết phức tạp nhất của loài người Lịch
sử phát triển phần mềm đã trải qua nhiều mô hình khác nhau như lập trình thủ tục, hướng đối tượng, mẫu thiết kế… Mỗi mô hình đều có mục đích hoặc đơn giản hóa quá trình kỹ nghệ hoặc mở rộng quy mô và tăng khả năng xử lý phức tạp của hệ thống Thập kỷ trước đã chứng kiến thời kỳ huy hoàng của kỹ nghệ phần mềm hướng đối tượng, song bản chất tĩnh, ổn định của đối tượng tỏ ra không phù hợp cho thiết kế các hệ thống trong môi trường phân tán,
không thuần nhất, động và mở như Internet Thực thể phần mềm gọi là agent với những đặc
trưng như tự chủ, linh hoạt, di động, có khả năng giao tiếp…được coi là một trong những lựa chọn cho phát triển các hệ thống phân tán và đã thu hút nhiều sự quan tâm nghiên cứu ([36], [50], [8], [9])
Trang 2Với công nghệ agent, một hệ thống phức tạp được chia thành các thành phần nhỏ hơn
và mỗi agent được giao thực hiện một số nhiệm vụ nào đó Các thành phần phân rã này thường phụ thuộc lẫn nhau Nhờ có khả năng tự chủ, các agent này có thể giao tiếp, phối hợp với các agent khác để hoàn thành mục tiêu chung của hệ thống Như vậy, mỗi agent luôn cần
có sự cộng tác từ phía các agent khác Tương tác chính là cầu nối, là phương tiện để các
agent hoạt động cùng nhau Tương tác [9] có thể có nhiều dạng như phối hợp, hỗ trợ, thương lượng để hoàn thành mục tiêu riêng hoặc để thực hiện mục tiêu chung hoặc thậm chí là cạnh tranh tài nguyên…
Do khả năng chủ động và tính xã hội của agent mà tương tác giữa các agent trở nên phức tạp hơn nhiều so với tương tác giữa các đối tượng Trong khi, đối tượng chỉ đơn giản thực hiện những thao tác do người lập trình cài đặt mà không có sự chủ động nào, agent được cung cấp tri thức, phương pháp và có thể chủ động quyết định thực hiện cái gì, như thế nào [45] Do vậy, tương tác trong hệ đa agent có một số điểm khác biệt nổi bật so với tương tác trong hệ đối tượng:
Tương tác đa agent xảy ra một cách tự động, không cần sự kích hoạt từ bên ngoài Trong khi thực hiện một nhiệm vụ nào đó, nếu cần thiết, agent hoàn toàn có thể tự kích hoạt tương tác với agent khác Chính điều này tạo ra sự lan tỏa tương tác khiến cho tương tác giữa các agent không chỉ dừng lại ở hai chiều
Tương tác trong hệ đa agent mang tính chất xã hội vì đó không chỉ là một bên đưa
ra yêu cầu còn bên kia thực hiện mà agent hoàn toàn có khả năng từ chối thực thi yêu cầu của các agent khác Mặt khác, tương tác đa agent có thể được phân chia theo ngữ cảnh xã hội thành các loại như tương tác kết hợp, phối hợp, cạnh tranh, thương lượng Với các tương tác phức tạp như cạnh tranh, thương lượng, việc xây dựng chiến lược, mô hình để agent thực hiện tương tác một cách tự động gặp nhiều khó khăn vì cần phải có những mô hình phù hợp và những công cụ mạnh hơn Hơn nữa, do agent có thể quyết định dựa trên tri thức, có khả năng phát động tương tác nên tương tác trong hệ đa agent là rất khó đoán trước trong thời gian thiết kế Vì vậy, tính linh động là điều tối cần thiết trong mô hình tương tác đa agent, nghĩa là
mô hình tương tác phải cung cấp cho agent khả năng di chuyển và hoạt động từ vị trí này sang vị trí khác, thêm bớt agent một cách dễ dàng… trong thời gian chạy Cho đến nay, nhiều mô hình tương tác đã được đề xuất như mô hình dựa trên mục tiêu (goal) [18], mô hình kế thừa từ mô hình hướng đối tượng AUML [5]…Tuy nhiên, các mô hình này chưa thể hiện được đầy đủ bản chất chủ động và tính xã hội của agent cũng như chưa hỗ trợ được đầy đủ các pha trong quy trình phát triển phần mềm Một số mô hình gần
đây ra đời nhằm khắc phục những hạn chế trên, trong số đó mô hình dựa trên role đang thu
hút nhiều sự quan tâm nghiên cứu
Trang 3Role [20] từ lâu đã được áp dụng trong nhiều lĩnh vực khác nhau và thường được hiểu
là tập các quyền hạn, chức năng và nghĩa vụ được cung cấp cho một đối tượng như con người
để hoàn thành một nhiệm vụ nào đó Trong hệ đa agent, mỗi khi agent muốn thực hiện một công việc, nó sẽ đảm nhận một role tương ứng Ví dụ, khi một agent muốn tham gia trả giá
trong một phiên đấu giá, agent đó sẽ chọn đảm nhận role Người mua (Bidder), ngược lại, nếu muốn rao bán một mặt hàng, agent khác nào đó sẽ chọn đảm nhận role Người bán (Seller)
Mọi thao tác liên quan đến trả giá, tìm kiếm sản phẩm, mua hàng đều được tích hợp trong role Bidder, các thao tác tìm trung gian, đặt giá được cài đặt trong role Seller Bản thân mỗi agent không cần phải cài đặt tất cả các chức năng này Như vậy, việc sử dụng role cho phép người phát triển phân tách rạch ròi vấn đề liên quan đến tương tác với các vấn đề liên quan đến thuật toán của agent Tương tác có thể được phát triển độc lập với thuật toán tính toán của agent và điều này làm tăng tính môđun hóa và sử dụng lại của phần mềm Các ứng dụng cùng thể loại có thể sử dụng lại các role đã được phát triển hoàn thiện của một ứng dụng trước đó và hoàn toàn có thể chỉnh sửa cho phù hợp với ngữ cảnh cụ thể
Hiện nay, nhiều phương pháp dựa trên role đã được đề xuất [9], mỗi phương pháp mô hình role theo một cách riêng biệt như role dưới dạng quyền hạn, trách nhiệm trong phương pháp GAIA [51] hay dịch vụ trong phương pháp ALAADIN [22]…Trong luận văn này, chúng tôi chọn cách tiếp cận dựa trên khung BRAIN [13] do nhóm tác giả G Cabri, L.Ferrari
và F.Zambonelli đề xuất
Khung BRAIN cung cấp một mô hình để trừu tượng hóa role bao gồm: tập kí hiệu
XRole để đặc tả role cũng như cơ sở tương tác RoleX, RoleSystem để hỗ trợ cài đặt và thực thi
các ứng dụng dựa trên role Trong BRAIN, role được mô hình dưới dạng các hành vi, khả năng và tri thức mà agent có thể sử dụng để thực hiện nhiệm vụ Hành vi của agent là tập các
sự kiện mà agent có thể quản lý còn khả năng của Agenta là tập các hành động mà agent có
thể thực hiện Tương tác giữa các Agent được mô hình bởi một cặp (hành động, sự kiện)
Tương tác xảy ra khi một agent chọn thực hiện một hành động và cơ sở tương tác sẽ dịch hành động này thành một sự kiện rồi gửi tới agent nhận Agent nhận tiếp nhận, xử lý các sự kiện này và đáp trả bằng cách chọn thực hiện một hành động trong khả năng của nó và hệ thống chuyển hành động này thành sự kiện gửi lại agent gửi
Ngày nay, với sự phát triển của Internet, các hệ thống đấu giá trực tuyến đã trở nên phổ biến Đặc biệt, việc sử dụng các agent thông minh đã giúp người dùng có thể thoát ly việc ra quyết định trong đấu giá đồng thời có thể tham gia nhiều cuộc đấu giá cùng lúc Tuy nhiên, tương tác giữa các agent này lại đặt ra nhiều vấn đề đối với người phát triển hệ thống như làm cách nào để agent có thể di chuyển dễ dàng giữa các nút trong mạng, cách nào để một agent có thể tham gia đồng thời nhiều cuộc đấu giá với những vai trò khác nhau…
Mục đích của luận văn này trước hết xem xét vấn đề tương tác, khái niệm role trong phát triển phần mềm và đặc biệt trong mô hình tương tác của các agent Sau đó, tập trung nghiên cứu mô hình tương tác dựa trên role với khung BRAIN và áp dụng mô hình vào phát triển hệ thống đấu giá trực tuyến Nội dung luận văn được chia thành các phần chính sau đây:
Trang 4 Chương 1 Tương tác trong hệ đa agent: Chương này tập trung làm rõ vai trò và
tầm quan trọng của tương tác trong hệ đa agent Một số đặc điểm khác biệt của tương tác trong hệ đa Agent với tương tác trong các hệ khác cùng một số đặc điểm của thương lượng – một loại hình tương tác phức tạp nhất trong hệ đa agent
Chương 2 Role trong phát triển phần mềm: Khái niệm role trong phát triển
phần mềm và một số phương pháp mô hình role sẽ được trình bày trong chương này
Chương 3 Mô hình tương tác dựa trên role: Chương này mô tả chi tiết mô hình
tương tác dựa trên role với khung BRAIN Mô hình cung cấp công cụ để phát triển một hệ thống phần mềm dựa trên khái niệm role, một tập kí hiệu để đặc tả role và các cơ sở tương tác phục vụ cho việc cài đặt và thực thi hệ thống
Chương 4 Cài đặt thử nghiệm hệ thống đấu giá: Chương này sẽ trình bày một
cài đặt thử nghiệm hệ thống đấu giá sử dụng mô hình BRAIN trên nền Jade
Cuối cùng, phần kết luận trình bày một số kết quả đạt được của luận văn và hướng phát triển trong tương lai
References
Tiếng Việt
[1] Nguyễn Phương Lan, Hoàng Đức Hải, “XML nền tảng và ứng dụng”, Nhà xuất
bản Lao động và Xã hội, 2005
[2] Trần Đình Quế, Nguyễn Thị Thanh Huyền, ―Tương tác dựa trên role trong hệ
đa agent‖, Kỷ yếu Hội thảo Quốc gia về Công nghệ thông tin và Truyền thông
lần thứ IX, trang 349, 06/2006, Đà Lạt, Việt Nam
Tiếng Anh
[3] S.T Acuna, N Juristo, ―Assigning people to roles in software projects,‖ Softw
Pract Exp, vol 34, no 7, pp 675–696, Jun 2004
[4] C Bartolini, C Preist, ―A Framework for Automated Negotiation‖,
HPL-2001-90, 2001
[5] B Bauer, J.P Müller, J Odell, ―Agent UML: A Formalism for Specifying
Multiagent Interaction‖, International Journal of Software Engineering and
Knowledge Engineering 11, 2001
Trang 5[6] D Baumer, D Ritchie, W Siberski, M Wulf, ―The Role Object Pattern‖, Proc
4th Pattern Languages of Programming conference (PLoP), Monticello, Illinois, USA, September 1997
[7] M Becht, T Gurzki, J Klarmann, M Muscholl, ―ROPE: Role Oriented
Programming Environment for Multiagent Systems‖, Proc Fourth IFCIS
Conference on Cooperative Information Systems (CoopIS'99), Edinburgh, Scotland, September 1999
[8] G Booch, ―Object-oriented analysis and design with applications‖, Addison
Wesley, 1994
[9] G Cabri, L Ferrari, L Leonardi, ―Agent role-based collaboration and
coordination: a survey about existing approaches‖, The 2004 IEEE Systems,
Man and Cybernetics Conference, Netherlands, October, 2004
[10] G Cabri, L Ferrari, L Leonardi, ―BRAIN: a Framework for Flexible
Role-based Interactions in Multiagent Systems‖, Proc First European Workshop in
Multi Agent Systems (EUMAS), Oxford, UK, December 2003
[11] G Cabri, L Ferrari, L Leonardi, F Zambonelli, ― Implementing role-based
interaction for Internet agents”, 2003 International Symposium on Applications
and the Internet, Orlando (USA), January 2003
[12] G Cabri, L Ferrari, L Leonardi, F Zambonelli, ―Role-based Approaches for
Agent Development‖, AAMAS'04, July 19-23, New York, USA, 2004
[13] G Cabri, L Ferrari, L Leonardi, F Zambonelli, ―Role-based Approaches for
Engineering Interactions in Large-scale Multi-Agent Systems‖, 2001
[14] G Cabri, L Ferrari, L Leonardi, F Zambonelli, ―RoleX Environment for
Multi-Agent Cooperation‖, 2004
[15] G Cabri, L Ferrari, L Leonardi,―Supporting the Development of Multi-Agent ”,
The International Workshop on AOSE-2005
[16] G Cabri, L Ferrari, L Leonardi, F Zambonelli, “XRole: XML Roles for Agent
Interactions”, in Proceedings of the 3rd International Symposium “From Agent
Theory to Agent Implementation”, at the 16th European Meeting on Cybernetics and Systems Research (EMCSR 2002), Wien, April 2002
Trang 6[17] B.G Cain, J.O Coplien, ―A role-based empirical process modeling
environment,‖ in Proc 2nd Int Conf Softw Process, Berlin, Germany, Feb
1993, pp 125–133
[18] C Cheong, M Winikoff, ―Hermes: Designing Goal-Oriented Agent
Interactions‖, Proceedings of 4th international joint conference on Autonomous
agents and multiagent systems, 2005
[19] C Cheong, M Winikoff, ―Improving Flexibility and Robustness in Agent
Interactions: Extending Prometheus with Hermes‖, Software Engineering for
Multi-Agent Systems IV, 2005
[20] V Dignum, F Dignum, ―Task and Social Coordination in Agent
Organizations‖, 2005
[21] M Fasli, ―Social Interactions in Multi-Agent Systems: A Formal Approach‖,
Proc First European Workshop on Multi-Agent Systems (EUMAS), Oxford,
UK, December 2003
[22] J Ferber, O Gutknecht, ―AALAADIN: A metamodel for the analysis and design
of organizations in multi-agent systems‖, Proc Third International Conference
on Multi-Agent Systems (ICMAS'98), 1998
[23] FIPA English Auction Interaction Protocol Specification, 2001
[24] FIPA, http://fipa.umbc.edu/mirror/specifications/identifiers.html
[25] M Fowler, ―Dealing with Roles‖, http://martinfowler.com/apsupp/roles.pdf,
1997
[26] A.C.B Garcia, A Lopes, C Bentes,―Electronic Auction with autonomous
intelligent agents: Finding opportunities by being there‖, Inteligencia Artificial,
Revista Iberoamericana de Inteligencia Artificial, 2001
[27] D Gelernter ―Generative Communication in Linda.‖ ACM Transactions on
ProgrammingLanguages and Systems, 7(1):80–112, 1985
[28] Jade, http://jade.tilab.com
[29] N.R Jennings and M Wooldridge, ―Agent-Oriented Software Engineering‖,
Proceedings of the 9th MAAMAW-99, 2000
Trang 7[30] R.C King, V Sethi, ―The impact of socialization on the roles adjustment of
information systems professionals,‖ J Manage Inf Syst., vol 15, no 4, pp
195–217, Spring 1998
[31] S Kraus, ―Automated Negotiation and Decision Making in Multiagent
Environments‖, the 9th ECCAI Advanced Course ACAI, 2001
[32] J Murdoch, J A McDermid, ―Modeling engineering design process with role
activity diagrams,‖ Trans Soc Des Process Sci., vol 4, no 2, pp 45–65, Jun,
2000
[33] J Mylopoulos, M Kolp, J Castro, ― UML for Agent-Oriented Software
Development: The Tropos Proposal‖, 2001
[34] J Odell, H.V.D Parunak, M Fleischer, ―The Role of Roles in Designing
Effective Agent Organization‖, Lecture Notes on Computer Science volume
2603, Springer, Berlin, 2003
[35] M.A Ould, Business Processes: Modeling and Analysis for Re-Engineering and
Improvement Hoboken, NJ: Wiley, 1995
[36] G.A Papadopoulos, ―Models and Technologies for the Coordination of
Internet Agents: A Survey‖, 2000
[37] C.F.G Parr, P Morrow, ―A Comparison of Mobile Agent and SNMP Message
Passing for Network Security Management Using Event Cases‖, 2006
[38] S Paurobally, J Cunningham, N.R Jennings, ―Developing Agent Interaction
Protocols Using Graphical and Logical Methodologies‖, 1st international
workshop on programming multi-agent systems, Melbourne, Australia, 2003
[39] I Rahwan,S.Ramchurn, N.R.Jennings, P McBurney,― Argumentation based
Negotiation‖,The Knowledge Engineering Review, 2004
[40] T Reenskaug, P Wold, O.A Lehne, ―Working with Objects — The OORAM ‖,
Software Engineering Method (Manning, Greenwich 1996)
[41] D Riehle, T Gross, ―Role model based framework design and integration,‖
ACM SIGPLAN Notices, vol 33, no 10, pp 117–133, Oct 1998
Trang 8[42] T Skylogiannis, G Antoniou, N Bassiliades, ―A System for Automated Agent
Negotiation with Defeasible Logic-Based Strategies – Preliminary Repo‖,
Proceedings The 2005 IEEE International Conference on Volume, Issue, 2005
[43] F Steimann, ―A radical revision of UML’s role concepts,‖ in Proc UML, 2000,
pp 194–209
[44] F Steimann, “Role = Interface: A Merger of Concepts”, Journal of
Object-Oriented Programming, 2001
[45] K.P Sycara, ―Multiagent Systems‖, Publication of American Association of
Artificial Intelligence, 1998
[46] M Turoff, S R Hiltz, “The electronic journal: A progress report‖, J Amer
Soc Inf Sci., vol 33, no 4, 1982
[47] A Tveit, ―A survey of Agent-Oriented Software Engineering‖, 2001
[48] M VanHilst, D Notkin, ―Using role components to implement
based designs,‖ in Proc ACM Conf OOPSLA, San Jose, CA, 1996, pp 359–
369
[49] M Winikoff, "Designing Commitment-Based Agent Interactions,"
IEEE/WIC/ACM International Conference on Intelligent Agent Technology (IAT 2006 Main Conference Proceedings) (IAT'06), 2006
[50] M Wooldridge, ―An Introduction to Multiagent Systems”, Published by John
Wiley and Sons, 2002
[51] M Wooldridge, N R Jennings, D Kinny, ―The Gaia Methodology for
Agent-Oriented Analysis and Design‖, Journal of Autonomous Agents and
Multi-Agent Systems, Vol 3, No 3, pp 285-312, 2000
[52] L Yu, B.F Schmid, ―A conceptual framework for agent-oriented and
role-based workflow modelling‖, Proc 1st International Workshop on
Agent-Oriented Information Systems, G Wagner and E Yu eds., Heidelberg, June
1999
[53] L Zhao, E Kendall, ―Role modeling for component design,‖ in Proc 33rd
Hawaii Int Conf Syst Sci., 2000, p 8048
Trang 9[54] H.Zhu, ―A Role Agent Model for Collaborative Systems‖, Proceedings of
International Conference on Information and Knowledge Engineering (IKE’03), USA, 2003
[55] H Zhu, M Zhou, P Seguin, ―Supporting Software Development With Roles‖,
System, Man and Cybernetics, Part A, IEEE Transactions on Publication, 2006