Chương 1. Tương tác trong hệ đa agent AIP là một lớp các mẫu thiết kế phần mềm trong đó người ta mô tả các vấn đề thường xảy ra trong hệ đa agent và sau đó mô tả giải pháp để giải quyết những vấn đề đó. Định nghĩa một giao thức tương tác agent (AIP) bao gồm: Mô hình tương tác. Một trình tự các thông điệp gửi qua lại giữa các agent với các vai trò khác nhau.
Một ngữ nghĩa thống nhất với các hành động giao tiếp (CAs) trong một mô hình giao tiếp. Thông điệp phải thỏa mãn các hành động giao tiếp chuẩn, CA định nghĩa kiểu và nội dung thông điệp (ví dụ ngôn ngữ giao tiếp agent ACL FIPA hoặc KQML). Các giao thức ràng buộc các thông số của việc trao đổi thông điệp (ví dụ như thứ tự và kiểu trao đổi) tùy theo mối quan hệ giữa các agent hoặc ý định của việc giao tiếp. Kiểu lược đồ mới được giới thiệu trong AGENT UML là lược đồ giao thức (Protocol Diagram).
Do giao thức tương tác định nghĩa chính xác hành vi của một nhóm các Agent cộng tác nên chúng ta sẽ kết hợp các lược đồ chuỗi với ký hiệu lược đồ trạng thái để tạo nên đặc tả của giao thức tương tác. Mô hình tương tác dựa trên mục tiêu (goal) Tương tác được đặc tả dưới dạng các giao thức tương tác, như trong Petri nets [54], máy trạng thái hữu hạn [49] hay AGENT UML, đều không phù hợp với đặc tính tự chủ và chủ động của agent đồng thời không cho phép phục hồi tương tác sau khi bị lỗi. Một số nhà nghiên cứu của trường đại học RMIT, Úc đã đề xuất khái niệm tương tác hướng mục tiêu (goal) phù hợp hơn với bản chất của kỹ thuật agent, gọi là phương pháp Hermes [18]. Tương tác hướng mục tiêu được định nghĩa dưới dạng các mục tiêu tương tác (Interaction Goal - IG) và các ràng buộc thời gian.
Các agent tham gia tương tác sẽ quyết định cách thức để đạt được IG và bị giới hạn bởi các ràng buộc thời gian thiết lập trên các IG đó. Tương tác giữa các agent xảy ra vì LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 16 Chương 1. Tương tác trong hệ đa agent các agent đều có mục tiêu phải đạt được và tương tác là một cách để đạt được mục tiêu của chúng. Trong các thiết kế giao thức truyền thống, thiết kế tương tác chỉ là xác định một số chuỗi thông điệp hợp lệ dưới dạng các thông điệp và các dạng kết hợp như vòng lặp, phân nhánh, chuỗi…Phương pháp thiết kế Hermes sẽ thực hiện khác hẳn.
Người thiết kế tương tác sẽ không phải định nghĩa các chuỗi thông điệp mà thay vào đó thông điệp sẽ được mô tả dưới dạng các mục tiêu tương tác, các hành động sẵn có và các ràng buộc. Sau đó, agent sẽ quyết định chuỗi thông điệp (dựa trên ràng buộc tương tác) được sử dụng cho tương tác đó. Điều đó có nghĩa là các chuỗi thông điệp sẽ được sinh ra từ tương tác chứ không phải tương tác được sinh ra từ chuỗi thông điệp. Chính điểm này sẽ tạo ra tính linh động và bền vững của tương tác.
Quá trình thiết kế Hermes (Hình 1.3) có thể được coi là mô hình thác nước mini gia tăng trong đó mỗi bước được thừa hưởng kết quả từ bước trước. Quá trình này được áp dụng lặp đi lặp lại, mỗi lần phát triển thiết kế lại nảy sinh những thay đổi cho các phần đã phát triển trước. Hai bước quan trọng nhất trong thiết kế hướng mục tiêu là xác định role, IG và tổ chức cây phân cấp IG. Xác định các role và mục tiêu tương tác: Các role được định nghĩa dưới dạng các đối tượng tham gia tương tác.
Các mục tiêu tương tác có thể là các mục tiêu ở mức cao cần đạt được để thực hiện tương tác được coi là thành công. Khi xác định mục tiêu tương tác, tốt nhất là phải nghĩ rộng và nắm bắt được các mục tiêu mức cao. Cần chú ý rằng mục tiêu tương tác ở đây là mục tiêu của tương tác chứ không phải mục tiêu của một Agent cụ thể tham gia tương tác. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 17 Chương 1.
Tương tác trong hệ đa agent 1. Xác định mục tiêu tương tác và role 2. Cấu trúc phân cấp mục tiêu tương tác 3. Xác định hành động 4.
Chuỗi hành động 5. Xác định Kết quả thiết kế cuối thông điệp Kết quả trung gian 6. Định nghĩa Phản hồi thông điệp Kiểm tra lẫn nhau Hình 1. Lược đồ tổng quan của phương pháp Hermes.
Xây dựng cây phân cấp mục tiêu tương tác IG: Nếu có thể, các mục tiêu sẽ được chia thành các mục tiêu nhỏ hơn (Sub-IGs) và được tổ chức theo cấu trúc phân cấp như trong Hình 1.4…Cấu trúc cây này có một IG duy nhất là đỉnh, thể hiện mục tiêu tương tác tổng quát của hệ thống. Ví dụ, trong giao thức thương mại điện tử, mục tiêu tổng quát của tương tác giao dịch thương mại, Trade. Trade IG có thể được chia nhỏ hơn thành hai IG cụ thể hơn là Agree và Exchange. Hai IG này có thể được chia nhỏ nữa… Trong hình 1.4, hình tròn biểu diễn mục tiêu tương tác và đường thẳng liền kí hiệu sự phân rã (tức là mối quan hệ mục tiêu con.
Một khi các mục tiêu tương tác được phân rã thành các mục tiêu nhỏ hơn và các ràng buộc thời gian (đường mũi tên) sẽ được thêm vào. Khi các mục tiêu tương tác được LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 18 Chương 1. Tương tác trong hệ đa agent xác định thành cấu trúc cây mục tiêu thì các role liên quan trong tương tác sẽ được gán cho các mục tiêu. Trong ví dụ này, ta có thể thấy ngay là có hai role: Customer (C) và Merchant (M).
Chúng ta cũng cần phải xác định agent khởi xướng (initiator) cho mỗi mục tiêu tương tác. Agent khởi xướng là role khởi tạo và có trách nhiệm về một mục tiêu tương tác nào đó. Cây phân cấp mục tiêu tương tác cho ta thấy một cái nhìn tổng quan những mục tiêu cần đạt được để hoàn thành tương tác. Trade I: ↑ R: C,M Agree Exchange I: ↑ I: ↑ R: C,M R: C,M Determine Negotiate Negotiate Transfer Payment Send Availabilit Detail Price Goods I: C Recieve y I: ↑ I: ↑ I: M R: C,M I: M I: ↑ R: C,M R: C,M R: C,M R: C,M R: C,M Hình 1.
Lược đồ phân cấp IG. Sau khi xây dựng được cây phân cấp IG, bước tiếp theo là xác định hành động nào cần sử dụng để đạt được một mục tiêu tương tác cụ thể (ở mức lá) và có những ràng buộc nào giữa những hành động này. Việc xem xét này chính là thiết kế mức nội tại của các Agent. Không cần thiết phải xem xét các hành động của các mục tiêu tương tác IG không phải mức lá bởi các mục tiêu này sẽ đạt được nếu các mục tiêu con của nó được hoàn thiện.
Cứ như vậy, IG tổng thể sẽ được thực hiện. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 19 Chương 1. Tương tác trong hệ đa agent 1. Mô hình tương tác dựa trên role Qua tìm hiểu, chúng ta có thể nhận thấy phương pháp AUML [5] có ưu điểm là biểu diễn tương tác theo thời gian rất rõ ràng và trực quan nhưng lại có hạn chế là dùng quá nhiều timeline để mô tả giao thức tương tác.
Vì vậy, khi số lượng agent lớn sẽ làm cho lược đồ phức tạp, dễ nhầm lẫn dẫn đến khó xử lý dư thừa… Phương pháp dựa trên mục tiêu Hermes khắc phục được hạn chế của phương pháp AUML, tương thích tốt hơn với kỹ thuật agent và có thêm khả năng hồi phục từ trạng thái lỗi. Tuy nhiên, phương pháp dựa trên mục tiêu tương tác cũng gặp phải một số khó khăn như pha thiết kế theo phương pháp này tốn rất nhiều thời gian công sức và kết quả là cho ra rất nhiều các thành phần thiết kế khác nhau. Điều này làm cho quá trình cài đặt hệ thống trở nên phức tạp. Hiện nay, phương pháp dựa trên role đã và đang thu hút được nhiều sự quan tâm chú ý.
Role là một khái niệm đã được dùng từ lâu trong một số lĩnh vực kỹ nghệ phần mềm như UML và điều khiển truy cập RBAC. Khi áp dụng vào ngữ cảnh đa agent, role đã được điều chỉnh cho phù hợp. Role được coi là một nguyên mẫu hành vi dùng chung cho nhiều lớp agent khác nhau và được coi là một tập hành vi, khả năng và tri thức mà Agent có thể sử dụng để thực thi nhiệm vụ. Nhờ những đặc tính trên của role, phương pháp tương tác dựa trên role thể hiện một số ưu điểm nổi bật so với các phương pháp khác: Role cho phép tách quan tâm giữa những vấn đề về tính toán và vấn đề về tương tác trong quá trình phát triển ứng dụng hướng agent.
Các vấn đề tính toán được gói gọn trong chính bản thân agent khi định nghĩa hành vi cơ bản của nó. Mặt khác, giao tiếp của agent với các agent khác sẽ được tích hợp trong role và các hành vi phụ khác. Người ta có thể phát triển agent và role độc lập nhau về mặt thời gian cũng như phương pháp. Điều này giúp tăng khả năng phân rã và do đó làm đơn giản hóa quá trình phát triển hệ thống.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 20 Chương 1. Tương tác trong hệ đa agent Role là một khái niệm trừu tượng ở mức cao nên cho phép sự độc lập nhất định giữa các tình huống cụ thể, nhờ đó nâng cao được tính tổng quát của các phương pháp dựa trên role. Role có thể được phát triển theo nhu cầu và quy tắc cục bộ. Nhờ vậy mà tính cục bộ được nâng cao trong khi phát triển các hệ thống phân tán có quy mô lớn.
Role cho phép sử dụng lại giải pháp cũng như sản phẩm phần mềm: Role cho phép sử dụng lại giải pháp cũng như sản phẩm phần mềm Trên thực tế, role thường gắn liền với một ngữ cảnh hệ thống và độc lập với agent. Vì thế, người thiết kế có thể sử dụng lại những role đã được thực hiện tốt trước đó cho những ứng dụng tương tự. Chúng ta hoàn toàn có thể coi role là một dạng của mẫu thiết kế (design pattern) và khi đó tập các role có liên quan cùng với định nghĩa cách thức chúng tương tác với nhau được coi là một giải pháp cho một vấn đề cụ thể và nó có thể được sử dụng lại trong nhiều tình huống tương tự.