Tài liệu tìm hiểu "Lập trình hướng agent"
Bạn đang xem 20 trang mẫu của tài liệu "Tài liệu tìm hiểu "Lập trình hướng agent"", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- tai_lieu_tim_hieu_lap_trinh_huong_agent.doc
Nội dung text: Tài liệu tìm hiểu "Lập trình hướng agent"
- LỜI GIỚI THIỆU Trong những năm gần đây, sự phát triển mạnh mẽ của các công nghệ truyền thông và internet đã ảnh hưởng sâu rộng đến mọi mặt của cuộc sống từ kinh tế, khoa học đến văn hoá và xã hội. Rõ ràng sự phát triển của phần cứng đóng vai trò rất quan trọng trong quá trình tiến hoá này nhưng yếu tố then chốt đã ảnh hưởng mạnh mẽ đến xã hội tri thức ngày nay chính là bản thân phần mềm. Khi mà mạng máy tính và Internet trở thành phổ biến thì việc xử lý thông tin phân tán, chia xẻ và tích hợp thông tin thông qua đường truyền giữa các máy với những cơ sở dữ liệu có những khuôn dạng khác nhau càng ngày càng trở nên phổ biến. Điều này dẫn đến một thách thức mới đối với giới phát triển phần mềm khi phải đối đầu với những yêu cầu thực tế của các hệ phần mềm phức tạp, mở và phân tán. Những nghiên cứu và công nghiệp phát triển phần mềm trong những cuối năm 80 và đầu thập niên 90 xoay quanh cách tiếp cận hướng đối tượng tiến hoá từ phương pháp luận phần mềm cấu trúc truyền thống. Phương pháp hướng đối tượng có ưu điểm so với phương pháp cấu trúc là khả năng sử dụng lại mã nguồn, dễ đọc mã nguồn và xử lý lỗi. Ý tưởng cơ bản của nó là xem hệ phần mềm như tập hợp các thực thể tương tác gọi là “đối tượng” trong đó mỗi đối tượng được xác định bởi ba yếu tố: Định danh, trạng thái và hành vi1. Như vậy, phát triển phần mềm dựa trên cách tiếp cận này có nghĩa là tiến hành xây dựng mô hình của hệ thống cần được phát triển (cả trong các pha phân tích và thiết kế) dựa trên khái niệm đối tượng và những khái niệm liên quan như thành viên, phương thức, quan hệ Ngôn ngữ UML đã được sử dụng rộng rãi để mô hình các hệ phần mềm này dưới dạng use case, biểu đồ lớp, biểu đồ tương tác Tuy nhiên, cách tiếp cận hướng đối tượng tỏ ra không đáp ứng được nhu cầu phát triển các hệ phần mềm mở, phân tán, phức tạp như quản lý mạng viễn thông, thương mại điện tử, trợ giúp văn phòng, tìm kiếm/lọc thông tin Là một phát triển tiếp theo của hướng đối tượng, cách tiếp cận hướng agent được xem là công nghệ hứa hẹn cho phát triển các hệ phần mềm phức tạp này. Ý tưởng cơ bản của hệ đa agent là xem hệ phần mềm như một cấu trúc xã hội bao gồm các agent có khả năng tự chủ cùng với các tương tác “có tính chất tri thức” hay “mang ngữ nghĩa” giữa chúng. Giống như đối tượng, các agent cũng có định danh, trạng thái và hành vi nhưng những khái niệm này được mô tả một cách tinh tế hơn: 1 Trạng thái được mô tả bởi bộ giá trị của các biến, hành vi được mô tả theo các phương thức có thể được thực hiện từ trong chính đối tượng đó hay gọi từ những đối tượng khác. Tương tác giữa các đối tượng được mô tả theo một số các quan hệ khác nhau có được giữa chúng. 1
- Trạng thái có thể bao gồm tri thức, lòng tin, đích cần phải thoả mãn, các trách nhiệm được gán cho từng agent; Hành vi là những vai trò mà agent có thể đảm nhiệm, những công việc cần phải tiến hành, các sự kiện cần phải được quan sát Công nghệ phần mềm hướng agent đã thu hút nhiều quan tâm nghiên cứu vì nó được xem là cách tiếp cận tiến hoá từ công nghệ phần mềm hướng đối tượng và công nghệ tri thức. Nó đã tỏ ra có nhiều hứa hẹn cho phát triển các hệ phần mềm trong môi trường phân tán và mở. Thập niên 90 đã chứng kiến sự nở rộ của nhiều ứng dụng và thử nghiệm thành công trong các lĩnh vực khác nhau như viễn thông, quản lý không lưu, các dịch vụ trên Internet Những năm 2000, các nghiên cứu về agent tập trung vào xây dựng các phương pháp luận phát triển phần mềm bao gồm xây dựng quy trình, công cụ cùng các kỹ thuật phân tích và thiết kế hệ đa agent. Như vậy, công nghệ agent đã được nghiên cứu và phát triển mạnh mẽ trên thế giới và đã được áp dụng trong nhiều lĩnh vực khác nhau. Tuy nhiên, những nghiên cứu ở trong nước về agent mới chỉ ở giai đoạn bắt đầu và theo hiểu biết của chúng tôi nghiên cứu về công nghệ phần mềm hướng agent chưa được quan tâm nhiều. Nhằm đáp ứng nhu cầu nghiên cứu và phát triển các hệ phần mềm đa agent, đề tài đã tập trung xem xét quy trình phát triển và các kỹ thuật cho các bước trong các pha phân tích và thiết kế hệ này. Thuật ngữ quy trình trong đề tài này được hiểu là bao gồm các bước trong các pha phân tích và thiết kế phần mềm. Mặc dù có nhiều phương pháp luận và công cụ phát triển hệ đa agent đã được xây dựng nhưng phương pháp luận MaSE (chi tiết sẽ được trình bày trong Chương 2) đã được lựa chọn vì hai lý do sau đây: a. Phương pháp luận MaSE kế thừa từ phương pháp luận hướng đối tượng và do đó sẽ dẽ dàng hơn cho những người phát triển phần mềm đã quen thuộc với cách tiếp cận hướng đối tượng phổ biến hiện nay; b. Phương pháp lụân này có công cụ đi kèm agentTool có thể hỗ trợ phát triển từ phân tích, thiết kế đến sinh mã nguồn. Hơn nữa, trong khi các công cụ khác tách biệt khâu phát triển ontology thì agentTool đã tích hợp khâu này vào trong quá trình phát triển và do đó đã tạo điều kiện dễ dàng cho người phát triển hơn vì không phải sử dụng các công cụ khác để phát triển ontology và hơn nữa nó lại được sinh ra trong quá trình sinh mã nguồn hệ thống. Nội dung nghiên cứu của đề tài bao gồm: Nghiên cứu các đặc trưng của agent và hệ đa agent; một số vấn đề cơ bản liên quan đến phát triển hệ phần mềm agent bao gồm xây dựng ontology và tương tác; 2
- Nghiên cứu các bước trong phân tích và thiết kế hệ đa agent và sử dụng công cụ agentTool trong các bước này. Nghiên cứu áp dụng phương pháp luận MaSE trong phân tích và thiết kế hệ dịch vụ thương mại điện tử TraNeS. Tài liệu được tổ chức thành 2 phần bao gồm 7 chương như sau: Phần 1 Cơ sở phát triển hệ đa agent Chương 1: Hệ đa agent Chương này trình bày một cách tổng quan về agent, hệ đa agent và các cách tiếp cận trong nghiên cứu xây dựng các phương pháp luận phát triển hệ đa agent. Nội dung của chương này tập trung xem xét các cách tiếp cận khi xây dựng các phương pháp luận phát triển hệ phần mềm đa agent. Chương 2: Tương tác trong hệ đa agent Chương này trước hết trình bày tổng quan vấn đề tương tác trong hệ đa agent bao gồm các dạng tương tác, tương tác với agent trung gian và thương lượng trong hệ đa agent. Một mô hình thương lượng song phương dựa trên ràng buộc mờ sẽ được trình bày nhằm cơ sở cho phát triển hệ dịch vụ du lịch sẽ được đề cập đến trong các chương tiếp theo. Chương 3: Ontology trong hệ đa agent Ontology là khái niệm quan trọng nhằm biểu diễn ngữ nghĩa của thông tin được truyền đi giữa các agent trong quá trình tương tác. Nội dung của chương này tập trung xem xét khái niệm ontology và vai trò của nó trong tương tác giữa các agent. Phần kỹ thuật xây dựng ontology trong hệ đa agent sẽ được đề cập trong Chương 4. Chương 4: Quy trình phát triển hệ phần mềm hướng agent Nội dung chương này tập trung trình bày quy trình phát triển hệ phần mềm hướng agent dựa trên phương pháp luận MaSE cùng với các bước tương ứng trong quá trình phát triển dựa trên công cụ agentTool. Các bước phát triển ontology của hệ thống cũng được gói gọn trong chương này. Một áp dụng của quy trình này cho phát triển hệ dịch vụ thương lượng tự động sẽ được mô tả chi tiết trong các chương còn lại. 3
- Phần 2: Áp dụng phát triển hệ dịch vụ du lịch Chương 5: Phân tích hệ dịch vụ Chương này nhằm trình bày chi tiết một áp dụng của quy trình phát triển hệ đa agent cho phân tích hệ dịch vụ du lịch TraNeS. Nội dung các bước phân tích này được trình bày gắn liền với công cụ phát triển agentTool. Chương 6: Thiết kế hệ dịch vụ Nội dung chính của chương này là trình bày một áp dụng của quy trình phát triển hệ đa agent trong thiết kế cho thiết kế hệ dịch vụ du lịch TraNeS. Chương 7: Cài đặt và tích hợp hệ dịch vụ Nội dung của chương này trình bày các vấn đề liên quan đến cài đặt và tích hợp hệ dịch vụ thương lượng. Chương 8: Giới thiệu hệ TraNeS Nội dung nhằm điểm qua một số đặc trưng và cách tiến hành cài đặt của hệ dịch vụ du lịch TraNeS đã được phát triển trong các Chương 5, 6 và 7. Kết luận Phần cuối cùng là kết luận và một số vấn đề cần quan tâm nghiên cứu hơn nữa trong phát triển các ứng dụng. Tài liệu này được viết với giả thiết rằng người đọc đã quen thuộc với phương pháp luận phát triển phần mềm hướng đối tượng. Do đó, nhiều khái niệm không được nhắc lại như use case, biểu đồ tương tác, biểu đồ trạng thái. Mặc dù nhóm đề tài đã có nhiều nỗ lực để hoàn thiện tài liệu nhưng không thể tránh khỏi những thiếu sót. Rất mong nhận được những ý kiến đóng góp và chỉ bảo của các đồng nghiệp. 4
- MỤC LỤC LỜI GIỚI THIỆU 1 MỤC LỤC 5 PHẦN 1 CƠ SỞ PHÁT TRIỂN HỆ ĐA AGENT 8 CHƯƠNG 1 HỆ ĐA AGENT 9 1.1 Agent 10 1.1.1 Khái niệm agent 10 1.1.2 Agent và đối tượng 12 1.2 Hệ đa agent 13 1.2.1 Khái niệm hệ đa agent 13 1.2.2 Môi trường tính toán thích hợp cho hệ đa agent 14 1.2.3 Các ứng dụng của hệ đa agent 15 1.3 Các phương pháp luận phát triển hệ đa agent 16 1.3.1 Các cách tiếp cận phát triển hệ đa agent 17 1.3.1.1 Các phương pháp mô hình yêu cầu 18 1.3.1.2 Các cách tiếp cận trong phân tích thiết kế hệ thống đa agent 19 1.4 Phương pháp luận Gaia 22 1.4.1 Giới thiệu chung 22 1.4.2 Pha phân tích 23 1.4.3 Pha thiết kế 23 1.5 Phương pháp luận MAS-CommonKADS 24 1.5.1 Giới thiệu chung 24 1.5.2 Pha khái niệm hoá 25 1.5.3 Pha phân tích 25 1.5.4 Pha thiết kế 27 1.4 Kết luận 28 CHƯƠNG 2 TƯƠNG TÁC TRONG HỆ ĐA AGENT 29 2.1 Tổng quan về tương tác trong hệ đa agent 30 2.1.1 Ngôn ngữ truyền thông giữa các agent 31 2.1.2 Các mô hình tương tác 33 2.1.3 Tương tác với agent trung gian 37 2.2 Thương lượng trong hệ đa agent 40 2.3 Mô hình thương lượng song phương 42 2.3.1 Cơ sở toán học cho thương lượng song phương 42 2.3.2 Chiến lược thương lượng cho agent bán 45 2.3.3 Chiến lược thương lượng cho agent mua 47 2.4 Kết luận 52 CHƯƠNG 3 ONTOLOGY TRONG HỆ ĐA AGENT 53 3.1 Khái niệm Ontology 54 3.1.1 Khái niệm 54 3.1.2 Ontology và cơ sở tri thức 55 5
- 3.1.3 Phân loại ontology 56 3.1.4 Vai trò của ontology trong tương tác giữa các agent 57 3.2 Biểu diễn ontology 58 3.2.1 Biểu diễn ontology theo kiểu hình thức 59 3.2.2 Biểu diễn ontology theo kiểu không hình thức 65 3.3 Phương pháp luận xây dựng ontology tổng quát 67 3.4 Kết luận 69 CHƯƠNG 4 QUY TRÌNH PHÁT TRIỂN HỆ PHẦN MỀM HƯỚNG AGENT 70 4.1 Đặc điểm của phương pháp luận MaSE 71 4.2 Quy trình phát triển hệ phần mềm hướng agent 72 4.2.1 Khái quát các bước phát triển 72 4.2.2 Pha phân tích 73 4.2.3 Pha thiết kế 93 4.3 Kết luận 103 PHẦN 2 ÁP DỤNG PHÁT TRIỂN HỆ DỊCH VỤ DU LỊCH 104 CHƯƠNG 5 PHÂN TÍCH HỆ DỊCH VỤ 105 5.1 Mô hình sở thích người sử dụng 106 5.1.1 Bài toán dịch vụ du lịch 106 5.1.2 Mô hình sở thích người sử dụng 107 a. Ràng buộc các thuộc tính 107 b. Ràng buộc giữa các mặt hàng 109 5.2 Phân tích hệ thống 110 5.2.1 Xác định đích của hệ thống 110 5.2.2 Xây dựng các use case 112 5.2.3 Xây dựng ontology 114 5.2.4 Hoàn thiện các role 116 5.3 Kết luận 120 CHƯƠNG 6 THIẾT KẾ HỆ DỊCH VỤ 121 6.1 Một số vấn đề về thiết kế hệ đa agent 122 6.2 Thiết kế hệ đa agent 122 6.2.1 Xây dựng các lớp agent 122 6.2.2 Xây dựng các phiên hội thoại 124 6.2.3 Hoàn thiện các agent 129 6.2.4 Triển khai hệ thống 133 6.3 Kết luận 133 CHƯƠNG 7 CÀI ĐẶT VÀ TÍCH HỢP HỆ THỐNG 134 7.1 Vài nét về agentMom 135 7.2 Mô hình tích hợp hệ thống 137 7.2.1 UserAgent 137 7.2.2 HotelAgent và TrainAgent 137 7.2.3 MatchAgent 138 7.2.4 Hoạt động của hệ thống 139 6
- 7.3 Cài đặt các lớp agent 140 7.3.1 UserAgent 140 7.3.2 HotelAgent 146 7.3.3 TrainAgent 150 7.3.4 MatchAgent 153 7.4 Kết luận 156 CHƯƠNG 8 GIỚI THIỆU HỆ TRANES 157 8.1 Đặc trưng của Hệ TraNeS 158 8.2 Các mô hình hoạt động của hệ TraNeS 158 8.3 Các nhóm chức năng của Hệ TraNeS 162 8.4 Cài đặt Hệ TraNeS 179 8.5 Bài học từ phát triển hệ TraNeS 179 8.6 Kết luận 180 KẾT LUẬN 183 TÀI LIỆU THAM KHẢO 184 7
- PHẦN 1 CƠ SỞ PHÁT TRIỂN HỆ ĐA AGENT 8
- CHƯƠNG 1 HỆ ĐA AGENT Agent Hệ đa agent Một số vấn đề cơ bản khi nghiên cứu và phát triển hệ đa agent Các phương pháp luận phát triển hệ đa agent Nội dung chương này trước hết trình bày một cách khái quát về agent, hệ đa agent, môi trường thích hợp cho ứng dụng hệ đa agent, và ba vấn đề cơ bản cần quan tâm khi nghiên cứu và phát triển hệ đa agent là ontology, tương tác và phương pháp luận phát triển hệ đa agent. Phần tiếp theo của chương tập trung trình bày tổng quan các phương pháp luận trong phát triển hệ đa agent nhằm làm cơ sở cho xây dựng quy trình phát triển hệ đa agent sẽ trình bày trong Chương 4. 9
- CHƯƠNG 1: HỆ ĐA AGENT 10 1.1 Agent 1.1.1 Khái niệm agent Trong những năm gần đây, sự phát triển của các công nghệ Internet đã dẫn tới việc áp dụng rộng rãi của công nghệ thông tin vào nhiều lĩnh vực khác nhau của cuộc sống như tìm kiếm truy xuất thông tin, quản lý mạng viễn thông, thương mại điện tử, hỗ trợ ra quyết định, giải trí, Sự đa dạng của các lĩnh vực áp dụng khiến cho việc phát triển phần mềm càng ngày càng trở nên phức tạp và sự phức tạp này thể hiện ở một số đặc điểm sau đây: Khối lượng công việc cần xử lý ngày càng lớn: Các hệ phần mềm ngày nay phải xử lý một khối lượng dữ liệu rất lớn hoặc thao tác trên một số lượng lớn các nguồn thông tin. Bên cạnh đó, quá trình phát triển hệ thông thường xuyên phải đối mặt với các bài toán có độ phức tạp lớn (nhiều bài toán thuộc dạng NP đầy đủ) đặc biệt là với các ứng dụng thương mại điện tử hay điều khiển phức tạp. Yêu cầu về tính chính xác ngày càng cao: Yêu cầu này xuất hiện cùng với sự ra đời của các hệ thống đòi hỏi độ chính xác và thời gian thực như các hệ điều khiển không lưu, điều khiển thiết bị viễn thông, các bài toán quản lý lưu lượng, quản lý tiến trình công việc Đặc biệt, việc xây dựng và triển khai các ứng dụng thời gian thực đang ngày càng trở thành nhu cầu tất yếu và là một trong những hướng phát triển của công nghệ thông tin và truyền thông nói chung. Yêu cầu về tính mở và phân tán: Yêu cầu này xuất hiện cùng với sự phát triển của các hệ thống mạng, đặc biệt là hệ thống trên mạng Internet. Ngày nay, hầu hết các hệ thống thông tin đều gắn bó chặt chẽ với môi trường mạng. Internet đã trở thành một phần quan trọng trong cuộc sống con người và do đó các phần mềm cũng cần phải đáp ứng ngày càng tốt hơn các nhu cầu của con người như tìm kiếm thông tin, hỗ trợ người mua và người bán đưa ra quyết định, và phải có tính mở, tức là có thể được cập nhật, thay đổi hay bổ sung các dịch vụ vào hệ thống. Yêu cầu tính độc lập cao giữa các thành phần trong hệ thống: Yêu cầu này thể hiện rõ nhất trong các hệ ra quyết định và các hệ thương mại điện tử. Các hệ thống này yêu cầu các thành phần phải hoạt động độc lập và chủ động tương tác với các thành phần khác nhằm hướng tới đích riêng của mình. Nhất là trong các hệ thống mà mục đích riêng của các thành phần là không thống nhất với nhau, thậm chí tranh chấp nhau thì yêu cầu này càng trở nên quan trọng. Những yêu cầu này đã dẫn đến sự nghiên cứu và phát triển mạnh mẽ của công nghệ phần mềm trong những năm gần đây. Cách tiếp cận dựa trên cấu trúc chiếm ưu thế vào những năm 70-80 đã dần dần bị thay thế bởi phương pháp luận hướng đối tượng với
- CHƯƠNG 1: HỆ ĐA AGENT 11 tập ký hiệu chuẩn UML mà ngày nay đã trở thành phổ biến trong phân tích, thiết kế và xây dựng các hệ phần mềm. Tuy nhiên, khi hệ thống thông tin càng ngày càng phức tạp thì người ta cũng nhận ra sự hạn chế của cách tiếp cận này. Nguyên nhân cơ bản là do tính thụ động của các đối tượng nghĩa là các đối tượng chỉ thực sự hoạt động khi nhận được một thông điệp từ đ ối tượng khác. Với các hệ thống có yêu cầu về tính phân tán như các hệ thương lượng trong thương mại điện tử, các hệ quản lý mạng viễn thông thì tương tác thụ động như vậy tỏ ra không phù hợp. Các thành phần phần mềm trong hệ thống như vậy phải phục vụ cho những dịch vụ khác nhau và do đó cần phải chủ động theo mục đích của riêng mình đồng thời phải tương tác với các thành phần khác để chia sẻ tài nguyên, yêu cầu hỗ trợ tính toán Ta thử xét một ví dụ sau đây. Trong hệ dịch vụ du lịch, người sử dụng thường có nhiều yêu cầu khác nhau cho các gói du lịch của mình như vé máy bay, vé tàu, chỗ ở Do đó, thành phần phần mềm thay mặt người dùng cần phải tương tác, thương lượng với nhiều dịch vụ khác một cách tự động và sau đó tích hợp kết quả gửi lại cho người sử dụng, mỗi thành phần như thế được gọi là một agent. Mặc dù cho đến nay chưa có một định nghĩa thống nhất về khái niệm này, nhiều nghiên cứu cho rằng: Agent là một hệ tính toán hoàn chỉnh hay chương trình được đặt trong một môi trường nhất định, có khả năng hoạt động một cách tự chủ và mềm dẻo trong môi trường đó nhằm đạt được mục đích đã thiết kế. Các đặc trưng cơ bản của agent sau đây đã được nhiều người thừa nhận ([9], [13], [14], [20] ): Tính tự chủ (autonomy): Mỗi agent có một trạng thái riêng, độc lập với các agent khác (tự chủ ở trạng thái bên trong) đồng thời nó có thể tự quyết định các hành động của mình (tự chủ về hành động). Tự chủ ở trang thái bên trong thể hiện ở chổ: mỗi agent chứa một trạng thái nào đó của riêng nó, các agent khác không truy nhập được vào các trạng thái này. Còn tính tự chủ về hành động thể hiện ở chỗ agent có thể tự quyết định các hành động của mình (có thể là một hành động đơn hoặc là một chuỗi các hành động) dựa trên trạng thái hiện thời mà không có sự can thiệp của con người hay các agent khác. Tính tự chủ chính là đặc trưng quan trọng nhất của agent. Khả năng phản ứng (reactivity): Tính phản ứng là khả năng agent có thể nhận biết được môi trường (qua bộ phận cảm nhận nào đó) và dựa qua nhận biết đó, agent đáp ứng kịp thời những thay đổi xảy ra trong môi trường. Tính phản ứng thể hiện rõ nhất ở các agent hoạt động trên các môi trường có tính mở và hay thay đổi như Internet, môi trường mạng phân tán, môi trường vật lý, Phản ứng của mỗi một agent đối với môi trường bên ngoài đều hướng tới việc thực hiện mục tiêu (đích) của agent đó.
- CHƯƠNG 1: HỆ ĐA AGENT 12 Tính chủ động (pro-activeness): Khi có sự thay đổi của môi trường, agent không chỉ phản ứng một cách đơn giản mà còn xác định một chuỗi hành động cần thực hiện, bản thân mỗi agent sẽ chủ động trong việc khởi động và thực hiện chuỗi hành động này. Khả năng xã hội (social ability): Các agent không chỉ hướng tới đích riêng của mình mà còn có khả năng tương tác với các agent khác trong hệ thống để hướng tới đích chung của hệ thống. Các hoạt động tương tác này rất đa dạng bao gồm phối hợp, thương lượng, cạnh tranh 1.1.2 Agent và đối tượng Để hiểu rõ hơn khái niệm agent, chúng ta hãy so sánh agent và đối tượng. Trong phương pháp hướng đối tượng, các đối tượng được định nghĩa là các thực thể tính toán đóng gói bao gồm các trạng thái, các hành động hay phương thức trong trạng thái đó và các đối tượng liên lạc với nhau thông qua việc gửi các thông điệp (message). Xét theo quan điểm hệ thống, có thể xem mỗi agent cũng là một đối tượng nhưng ở mức trừu tượng cao hơn. Vì vậy, khái niệm đối tượng được sử dụng trong phần này là để chỉ các đối tượng chuẩn (standard object) trong phương pháp hướng đối tượng. Với định nghĩa agent đã được đề cập ở Mục 1.1.1 thì các đối tượng và các agent có các điểm khác biệt sau: Agent có tính tự chủ cao hơn đối tượng. Điều này thể hiện ở chỗ các agent có thể tự quyết định hành động của mình mà không phải là thực hiện hành động theo yêu cầu của agent khác. Ngược lại, các đối tượng chỉ thực sự hoạt động khi nhận được lời gọi hàm từ các đối tượng khác. Trong các ngôn ngữ lập trình hướng đối tượng như Java chẳng hạn, các đối tượng có các thành phần riêng kiểu private không thể truy nhập từ các đối tượng khác. Tuy nhiên, các đối tượng lại không thể tự chủ về mặt hành vi của mình, một đối tượng với thành phần public, có thể được truy nhập bởi các đối tượng khác và chỉ khi một đối tượng khác sử dụng các lời gọi tới các thành phần public của đối tượng này thì nó mới thực sự hoạt động. Agent có tính hướng đích, mỗi agent có một đích riêng và đích của các agent trong một hệ thống có thể thống nhất hay không tương thích với nhau. Trong khi đó các đối tượng không có mục đích riêng, chúng cùng chia sẻ mục đích chung của cả hệ thống. Do đó, các agent thường phải thương lượng với nhau trong quá trình tương tác. Agent có các hành vi linh hoạt dựa trên các đặc trưng như tính chủ động, khả năng phản ứng và khả năng xã hội đã trình bày ở trên. Còn các đối tượng thì không có các kiểu hành vi này.
- CHƯƠNG 1: HỆ ĐA AGENT 13 Mỗi agent có một hoặc nhiều luồng điều khiển (thread) riêng. Trong hệ hướng đối tượng cũng có điều khiển theo kiểu luồng (thread) nhưng không yêu cầu mỗi đối tượng là có thread riêng mà ngược lại có thể có nhiều đối tượng chung một thread. Bản chất của sự khác nhau này cũng là đặc trưng quan trọng về mức độ tự chủ của agent so với đối tượng. 1.2 Hệ đa agent 1.2.1 Khái niệm hệ đa agent Khả năng của mỗi agent thể hiện ở năng lực giải quyết vấn đề của riêng agent đó. Trong một hệ thống cụ thể, thông thường tài nguyên dành cho mỗi agent là hạn chế do đó khả năng hành động của mỗi agent cũng là hạn chế. Mỗi agent chỉ tập trung giải quyết một vấn đề tại một vị trí cụ thể nào đó chứ không thể giải quyết được hết các vấn đề đặt ra cho hệ thống. Trong các hệ phân tán phức tạp, hệ đa agent được xem là hệ xử lí thông tin có nhiều hứa hẹn. Có thể hiểu hệ đa agent là một tập các agent cùng hoạt động trong một hệ thống, mỗi agent có thể có đích khác nhau nhưng toàn bộ hệ agent cùng hướng tới mục đích chung thông qua tương tác. Quá trình tính toán và xử lý thông tin trong hệ đa agent được xem là có nhiều ưu điểm hơn so với các hệ thống khác như hệ đối tượng [20]: - Khả năng tính toán hiệu quả.: Hệ đa agent cung cấp khả năng tính toán hiệu quả hơn nhờ quá trình tính toán được phân chia cho các agent khác nhau và khả năng phối hợp cùng xử lý của nhiều agent. - Độ tin cậy cao: Do có nhiều agent cùng tham gia giải bài toán và các agent có cơ chế trao đổi, kiểm tra kết quả nên độ tin cậy tính toán trong hệ đa agent được cho là cao hơn. - Khả năng mở rộng: Hệ đa agent là hệ mở vì có thể có thêm các agent mới hoặc bớt đi các agent khi các agent hoàn thành nhiệm vụ. Khả năng này phù hợp với tính mở của yêu cầu các hệ phần mềm hiện nay. - Tính mạnh mẽ: Hệ đa agent có thể xử lý được các bài toán ra quyết định phức tạp hoặc các bài toán dựa trên thông tin không chắc chắn như các bài toán thương lượng trong thương mại điện tử, các bài toán điều khiển tự động - Khả năng bảo trì: Do hệ đa agent gồm nhiều agent, mỗi agent là một module có tính tự chủ cao nên hệ đa agent là hệ dễ bảo trì. - Khả năng phản ứng: Hệ đa agent kế thừa khả năng phản ứng của các agent đơn nên khi nhận biết được một thay đổi của môi trường thì các agent trong hệ thống sẽ phối hợp với nhau để đưa ra hành động tương ứng với thay đổi đó.
- CHƯƠNG 1: HỆ ĐA AGENT 14 - Tính linh hoạt: Các agent trong hệ đa agent có khả năng khác nhau có thể tương tác với nhau để cùng giải quyết một vấn đề chung. Một agent trong hệ thường không phải chờ agent khác mà chủ động tương tác để tìm ra thông tin cần thiết để giải quyết vấn đề đặt ra cho riêng mình. - Khả năng sử dụng lại: Hệ đa agent có khả năng sử dụng lại vì mỗi agent có khả năng riêng và có thể dùng lại cho nhiều ứng dụng khác nhau. 1.2.2 Môi trường tính toán thích hợp cho hệ đa agent Hệ đa agent tỏ ra có nhiều ưu điểm trong việc giải quyết các bài toán phức tạp hiện nay dựa trên tính năng của từng agent và sự phối hợp giữa các agent. Các môi trường và dạng bài toán thích hợp cho hệ đa agent bao gồm [20]: Hệ đa agent có thể giải quyết một bài toán vượt quá khả năng của một agent đơn. Trong hệ sử dụng một agent đơn, hệ thống thường tập trung tất cả các xử lý cho một agent duy nhất. Nhưng do tài nguyên của một agent đơn là hạn chế (chẳng hạn như đường truyền hay bộ nhớ ) nên các hệ thống như vậy thường có những “nút cổ chai”, gây nghẽn mạng hoặc tình trạng bế tắc khi có quá nhiều yêu cầu tập trung về một agent. Hệ đa agent giải quyết vấn đề này thông qua cơ chế phối hợp, cộng tác giữa các agent. Hệ đa agent cung cấp phương pháp giải quyết các bài toán phân tán trong đó có nhiều thành phần tự chủ cùng hoạt động trong một xã hội agent (society of agent) và cùng tuân theo các luật xã hội (social law) trong xã hội đó. Các thành phần trong các hệ đa agent không phải luôn luôn có cùng chung một đích. Để thực hiện các đích riêng của mình, các agent có thể tương tác với các agent khác theo các giao thức tương tác như: phối hợp, cộng tác, hoặc trong trường hợp mục đích riêng mâu thuẫn nhau thì có thể là cạnh tranh, thương lượng. Hệ đa agent cung cấp phương pháp giải quyết các bài toán mà thông tin được thu thập từ nhiều nguồn khác nhau. Các nguồn thông tin này có bản chất phân tán trong một hệ thống rất lớn. Ví dụ cụ thể cho dạng bài toán này chính là bài toán truy xuất thông tin trên internet, các bài toán tích hợp và xử lý thông tin Một dạng bài toán khác rất phù hợp với hệ đa agent là bài toán tích hợp hệ chuyên gia. Mỗi hệ chuyên gia là một hệ thống tập trung giải quyết một vấn đề xác định dựa trên tri thức của chuyên gia về vấn đề đó. Thực tế có thể có nhiều hệ chuyên gia tuy hướng tới giải quyết cùng một vấn đề nhưng lại phân tán ở những “vị trí” rất xa nhau. Hệ đa agent cung cấp khả năng phối hợp giữa các hệ chuyên gia này để nâng cao khả năng xử lý của hệ thống. Cách tiếp cận hướng agent phù hợp khi hệ thống yêu cầu các kiểu liên lạc phức tạp, đa dạng. Ví dụ như các hệ thống sử dụng cơ chế liên lạc của con người hoặc tương tác giữa các thực thể hỗn tạp.
- CHƯƠNG 1: HỆ ĐA AGENT 15 Cách tiếp cận hướng agent phù hợp các hệ thống cần phải thực hiện tốt trong tình huống không thể mô tả hành vi của các thành phần trong hệ thống một cách rõ ràng theo dạng từng trường hợp (case-by-case). Cách tiếp cận hướng agent cũng tỏ ra phù hợp trong tình huống có sự thương lượng, cộng tác hay cạnh tranh giữa các thực thể khác nhau trong hệ thống. Ví dụ như các tác vụ khác nhau với các đích xung đột nhau có thể cần phải thực hiện đồng thời, khi đó sẽ có các quá trình cạnh tranh hay thương lượng giữa các thành phần. Cách tiếp cận hướng agent cũng phù hợp khi hệ thống phải hành động một cách tự chủ để thay mặt người dùng, ví dụ như trong các quá trình thương lượng giữa các thành phần bên trong hệ thống để đạt tới những mục đích khác nhau. 1.2.3 Các ứng dụng của hệ đa agent Trong những năm gần đây, các hệ đa agent đã ngày càng trở nên phổ biến và được áp dụng trong nhiều hệ thống khác nhau. Theo Jennings et al. [23], các ứng dụng của hệ đa agent có thể chia thành các nhóm sau: Các hệ ứng dụng trong công nghiệp Các ứng dụng hệ đa agent trong công nghiệp là những ứng dụng đầu tiên của lĩnh vực nghiên cứu này. Hiện nay, agent đã được áp dụng rộng rãi trong các dạng hệ thống như: - Hệ sản xuất: trong các hệ đa agent ứng dụng trong sản xuất, công việc sẽ được phân chia thành các nhóm công việc hoặc các công việc nhỏ hơn vào giao cho các agent thực hiện. Các agent cần có cơ chế lập kế hoạch và phối hợp (tương tác) lẫn nhau để hoàn thành công việc được giao. - Hệ thống điều khiển tiến trình: Các hệ điều khiển tiến trình có vai trò rất lớn trong công nghiệp. Hệ đa agent trong hệ thống này sẽ được xem như một bộ điều khiển tiến trình (process controller) với tính tự chủ và linh hoạt để điều khiển hoạt động của tiến trình đó. - Hệ thống viễn thông: các hệ thống viễn thông thường là các hệ thống lớn, phân tán, yêu cầu quá trình giám sát và quản lý theo thời gian thực (như quản lý mạng viễn thông, giám sát hoạt động của thiết bị). Các ứng dụng này rất phù hợp với hệ đa agent. - Ngoài ra, hệ đa agent cũng đã được áp dụng trong các hệ thống quản lý không lưu và quản lý lưu lượng giao thông. Đây là các hệ quản lý yêu cầu tính thời gian thực cao, các thành phần trong hệ thống phải có tính tự chủ và linh hoạt trong xử lý tình huống. Các ứng dụng trong thương mại Trong thời gian gần đây, hệ đa agent ngày càng được áp dụng nhiều trong thương mại điện tử. Với các hệ ứng dụng này, việc trao đổi mua bán diễn ra thuận lợi và hiệu quả
- CHƯƠNG 1: HỆ ĐA AGENT 16 hơn cho cả người bán, người mua cũng như các nhà sản xuất. Các hệ ứng dụng agent trong thương mại bao gồm: - Hệ quản lý thông tin: Các hệ thống này thực hiện việc lọc, tách và thu thập thông tin cần thiết dùng trong thương mại. Hệ thống thường xuyên phải xử lý một khối lượng thông tin rất lớn nhằm cung cấp cho người dùng những thông tin cần thiết. - Các hệ thương mại điện tử: Các agent trong các hệ thương mại điện tử sẽ đại diện cho người bán, người mua cũng như người môi giới trong các giao dịch điện tử. Các agent này tự trao đổi với nhau thông qua các chiến lược thương lượng của mình. Đây chính là xu hướng phát triển của thương mại điện tử hiện nay. - Các ứng dụng quản lý tiến trình kinh doanh. Quản lý tiến trình kinh doanh nhằm giúp cho người quản lý ra quyết định trong một tình huống cụ thể hoặc thực hiện một công việc cụ thể nào đó với sự hỗ trợ của tất cả các thành viên trong đơn vị. Các agent sẽ đại diện cho các thành viên thực hiện các vai trò xác định. Công việc sẽ được phân chia cho các nhóm thành viên dựa trên cơ chế tương tác giữa các agent. Các ứng dụng giải trí Các hệ đa agent cũng đã được sử dụng để xây dựng các ứng dụng giải trí như các trò chơi điện tử và các ứng dụng khác như nhà hát hay rạp chiếu phim tương tác (Interactive Theatre and Cinema). Các ứng dụng trong y tế - Ứng dụng giám sát bệnh nhân. Các agent hoạt động như các chuyên gia để theo dõi hoặc chẩn đoán bệnh cho người bệnh. Việc chẩn đoán bệnh được thực hiện thông qua cơ chế lập luận của agent. - Các ứng dụng chăm sóc sức khoẻ (Health Care). Hệ đa agent được thiết kế để thực hiện các nhiệm vụ của mạng lưới y tế cộng đồng. 1.3 Các phương pháp luận phát triển hệ đa agent Trong nghiên cứu phát triển hệ đa agent ba vấn đề sau đây đã được quan tâm xem xét: Tương tác giữa các agent Trong các hệ đa agent, mỗi agent là một thành phần chủ động và hướng tới đích riêng nên cần phải trao trao đổi thông tin-tri thức với nhau và thương lượng với nhau khi cần thiết. Quá trình trao đổi, tương tác giữa các agent không thể giống với dạng tương tác thụ động (thông qua các lời gọi hàm) trong hệ hướng đối tượng. Vấn đề tương tác giữa các agent được xem là then chốt trong phát triển hệ đa agent và sẽ được trình bày chi tiết trong Chương 2. Ontology các agent tương tác với nhau thông qua việc gửi và nhận các thông điệp truyền thông giống như các đối tượng. Tuy nhiên, các thông điệp này không biểu diễn các
- CHƯƠNG 1: HỆ ĐA AGENT 17 lời gọi hàm đơn giản mà cần phải biểu diễn được thông tin và tri thức trao đổi giữa các agent. Mỗi agent trong hệ đa agent có thể có một miền quan tâm riêng, để các agent hiểu nhau trong quá trình trao đổi cần một cấu trúc ngữ nghĩa gọi là ontology. Ontology và xây dựng ontology để biểu diễn thông tin và tri thức trong hệ thống sẽ được trình bày chi tiết trong Chương 3. Phương pháp luận phát triển hệ đa agent Xây dựng hệ đa agent cần phải theo quan điểm nào và các bước nào? Do xuất phát điểm của các nhà nghiên cứu khác nhau (hoặc là từ cộng đồng trí tuệ nhân tạo hoặc là từ giới nghiên cứu hướng đối tượng) nên có những quan điểm khác nhau về phát triển hệ đa agent. Điều này dẫn tới việc có nhiều phương pháp luận phát triển hệ đa agent khác nhau; hoặc dựa trên phương pháp luận truyền thống hướng đối tượng hoặc dựa trên công nghệ tri thức hoặc cả hai. Tổng quan các phương pháp luận phát triển hệ đa agent sẽ được đề cập tiếp theo trong phần này. 1.3.1 Các cách tiếp cận phát triển hệ đa agent Nhu cầu phát triển các ứng dụng phần mềm dựa trên công nghệ agent trong những năm gần đây đã dẫn đến sự ra đời của nhiều phương pháp luận dựa vào ba cách tiếp cận sau đây: (1) cách tiếp cận dựa trên agent và công nghệ agent, (2) cách tiếp cận phát triển từ hướng đối tượng và (3) cách tiếp cận dựa trên công nghệ tri thức. Nội dung phần còn lại của chương này trước hết trình bày các cách tiếp cận xây dựng hệ đa agent và một số phương pháp luận đã được phát triển dựa trên các cách tiếp cận đó. Sau đó, chúng tôi sẽ tập trung trình bày khái quát hai phương pháp luận đại diện cho hai cách tiếp cận (1) và (2) là Gaia và MAS-CommonKADS. Quá trình phát triển một hệ thống phần mềm thông thường bao gồm các pha chính sau đây: Xác định yêu cầu Phân tích Thiết kế Cài đặt và tích hợp Trong các pha trên thì phân tích và thiết kế hệ thống được xem là các pha chính thể hiện quan điểm của người phát triển về hệ thống của mình. Phần tiếp theo sẽ trình bày một số phương pháp mô hình yêu cầu của người sử dụng, các cách tiếp cận trong phân tích và thiết kế hệ đa agent; phần cài đặt và tích hợp cho một áp dụng cụ thể sẽ được trình bày trong chương 7 của tài liệu này.
- CHƯƠNG 1: HỆ ĐA AGENT 18 1.3.1.1 Các phương pháp mô hình yêu cầu Việc xác định yêu cầu hệ thống là công việc đầu tiên cần thực hiện khi xây dựng một hệ đa agent. Phương pháp mô hình yêu cầu nhằm mô hình và phân tích các yêu cầu chức năng cũng như các yêu cầu phi chức năng của hệ cần phát triển. Tập các yêu cầu cần phải có khả năng biểu diễn đầy đủ và chính xác các ràng buộc của hệ thống trên thực tế; nó đóng vai trò quan trọng trong việc giám sát các thay đổi có thể có trong toàn bộ quá trình phân tích thiết kế sau này. Theo Weiss [37], có hai hướng khác nhau trong việc mô hình hoá yêu cầu hệ thống: (1) mô hình yêu cầu hướng agent và (2) mô hình yêu cầu hướng đích (goal). Chúng ta sẽ lần lượt xem xét hai kỹ thuật này. Phương pháp mô hình hoá yêu cầu hướng agent Mô hình yêu cầu hướng agent dựa trên hai đặc điểm: Mỗi agent là một phần mềm cụ thể có khả năng hoạt động tự chủ và hướng tới đích riêng của mình. Agent được xây dựng dựa trên việc mô hình quá trình nhận thức và lập luận của con người. Như vậy, mỗi yêu cầu cần phải xác định được: hệ đa agent nhằm mục đích giải quyết những vấn đề gì; cần phải mô hình hoá những tri thức nào và nhất là mô hình hoá cơ chế lập luận của agent dựa trên những cơ sở nào. Các phương pháp đại diện cho kiểu mô hình này gồm: i*: đây là cơ sở để mô hình hoá tập yêu cầu thông qua các thuộc tính ý định (intention) như mục đích (goal) hay thoả thuận (commitment). Các yêu cầu sẽ được nhóm theo các thuộc tính ý định này và thông qua quá trình mô hình hoá để chuyển sang giai đoạn phân tích (và đặc tả) yêu cầu. ALBERT (Agent-oriented Language for Bulding and Eliciting Real-Time requirement) và ALBERTII. Đây là các kỹ thuật xác định yêu cầu tập trung vào khái niệm agent. ALBERT đồng thời cũng là một ngôn ngữ để đặc tả yêu cầu theo kiểu hình thức. Hai kiểu mô hình hoá i* và ALBERT có thể áp dụng riêng biệt hoặc kết hợp với nhau. Mô hình yêu cầu trong phương pháp luận Tropos ([2]) chính là ví dụ của việc kết hợp hai kiểu này. Phương pháp mô hình hoá yêu cầu hướng đích
- CHƯƠNG 1: HỆ ĐA AGENT 19 Đích (goal) là khái niệm để trả lời câu hỏi hệ thống hướng tới cái gì. Phương pháp mô hình hóa yêu cầu hướng đích sẽ xác định các yêu cầu chức năng và phi chức năng theo phương pháp sau: Yêu cầu chức năng sẽ được thu thập và nhóm theo trả lời của các câu hỏi cái gì. Tức là cần phải trả lời các câu hỏi như hệ thống hướng tới thực hiện các công việc gì? các thành phần nào cần có trong hệ thống? các ràng buộc của hệ thống là gì?. Các yêu cầu phi chức năng nhằm mô hình hoá các câu hỏi tại sao, thế nào như hệ thống thực hiện nhiệm vụ của mình như thế nào, tại sao cần hệ đa agent? Các ví dụ của phương pháp mô hình hoá yêu cầu hướng đích: KAOS (Knowledge Acquistion in automated Specification): là một khuôn mẫu chung để mô hình hoá yêu cầu dựa trên tính hướng đích của agent. NFR (Non-Functional Requirement): Tập trung vào việc đặc tả và lập luận liên quan đến các yêu cầu phi chức năng. NFR cũng xây dựng phương pháp để biểu diễn các yêu cầu softgoal, ví dụ như các goal không định nghĩa một cách rõ ràng được, các goal mô tả yêu cầu thoả mãn ràng buộc 1.3.1.2 Các cách tiếp cận trong phân tích thiết kế hệ thống đa agent Theo [37] các phương pháp luận phân tích và thiết kế hệ đa agent đều được xây dựng dựa trên một trong ba cách tiếp cận (Xem Hình 1.1): - Dựa trên agent và công nghệ agent - Phát triển từ phương pháp hướng đối tượng - Dựa trên công nghệ tri thức.
- CHƯƠNG 1: HỆ ĐA AGENT 20 Phương pháp luận phát triển hệ đa agent Cách tiếp cận dựa Cách tiếp cận phát Cách tiếp cận theo trên Agent và Công triển từ hướng đối Công nghệ tri nghệ Agent: tượng thức - Các khái niệm trừu tượng - Agent: object có mức - Dựa trên quá trình mức xã hội: Agent, nhóm, trừu tượng cao hơn. nhận dạng, thu nhận tổ chức - Mở rộng UML và mô hình hoá tri thức Hình 1.1: Các cách tiếp cận xây dựng phương pháp luận đa agent Cách tiếp cận theo agent và công nghệ agent Các nghiên cứu xây dựng phương pháp luận phát triển hệ đa agent theo các đặc trưng của agent và công nghệ agent xuất phát từ các nhận định sau: - Agent có những đặc trưng riêng như tính tự chủ, tính chủ động và khả năng phản ứng. Các đặc trưng này là khác hoàn toàn khác với đối tượng và tạo cho agent khả năng tương tác chủ động và khả năng suy luận mà các đối tượng không có. Vì vậy, không thể mô hình hoá agent bằng cách sử dụng các phương pháp luận dành cho hướng đối tượng. - Agent hoạt động như một xã hội với các luật chi phối riêng nên có thể xem xét agent từ khía cạnh xã hội và sử dụng các khái niệm trừu tượng mức xã hội để mô hình hoá các agent trong hệ thống. Các khái niệm trừu tượng mức xã hội được sử dụng để mô hình hoá agent theo cách tiếp cận này bao gồm agent, nhóm (group), tổ chức (organization) Mức trừu tượng xã hội được xem như là một mức trừu tượng cao hơn so với mức đối tượng thông thường và phù hợp với việc biểu diễn các agent vì xã hội các agent bao gồm các thành phần có tính phản ứng, linh hoạt và tương tác chủ động. Dựa trên các khái niệm trừu tượng mức xã hội mà phương pháp luận này định nghĩa các bước, các pha của toàn bộ quá trình phát triển hệ thống. Thông thường, với cách tiếp cận này, quá trình phát triển hệ thống được phân thành hai pha tách biệt: pha phân tích và pha thiết kế. Pha phân tích tương ứng với mô
- CHƯƠNG 1: HỆ ĐA AGENT 21 hình tổ chức (organization model) còn pha thiết kế ứng với mô hình agent (agent model). Tiêu biểu cho các phương pháp luận thuộc loại này là các phương pháp luận Gaia, SODA, AALAADIN Phương pháp luận Gaia sẽ được giới thiệu chi tiết hơn trong phần 1.4. Cách tiếp cận phát triển từ phương pháp hướng đối tượng. Khác với cách tiếp cận trên, cách tiếp cận phát triển từ phương pháp hướng đối tượng dựa trên quan điểm cho rằng các kỹ thuật đã được phát triển và được áp dụng rộng rãi cho công nghệ phần mềm hướng đối tượng có thể được mở rộng cho các phần mềm hướng agent. Cách tiếp cận này xem mỗi agent cũng là một đối tượng nhưng ở mức trừu tượng cao hơn. Các công cụ sử dụng để biểu diễn đối tượng và phân tích thiết kế hệ thống hướng đối tượng như UML hoàn toàn có thể mở rộng để biểu diễn các đặc trưng riêng của agent. Các nghiên cứu xây dựng phương pháp luận phát triển từ phương pháp luận hướng đối tượng tập trung vào các công việc sau: - Phát triển các công cụ dựa trên nền tảng sẵn có của hướng đối tượng để áp dụng cho hệ đa agent, ví dụ như mở rộng UML thành AUML (Agent UML). - Bổ sung các bước, pha mang tính đặc trưng của agent và công nghệ agent như đích (goal), vai trò (role) và ontology. Tiêu biểu cho các phương pháp luận này là các phương pháp luận MaSE, MASSIVE, KGR Cách tiếp cận dựa trên công nghệ tri thức Dựa trên quan điểm cho rằng quá trình mô hình tri thức riêng của mỗi agent và sự trao đổi tri thức giữa các agent trong hệ thống chính là cơ sở của mọi hoạt động của hệ thống, các nghiên cứu theo cách tiếp cận này sử dụng các khái niệm và quá trình trong công nghệ tri thức để xây dựng nên phương pháp luận cho hệ đa agent. Các phương pháp luận này tập trung vào các quá trình thu thập tri thức (Knowledge acquisition), mô hình tri thức (Knowledge modelling) và lập luận được sử dụng bởi các thành phần agent trong hệ thống phần mềm. Tiêu biểu cho cách tiếp cận này là các phương pháp luận như CoMoMAS, MAS- ComonKADS. Như vậy, có ba cách tiếp cận trong phân tích và thiết kế hệ đa agent. Mỗi cách tiếp cận lại có những ưu điểm riêng. Để hiểu những điểm khác biệt của các phương pháp luận theo các cách tiếp cận này, phần còn lại của chương này dành trình bày về phương
- CHƯƠNG 1: HỆ ĐA AGENT 22 pháp luận Gaia (theo cách tiếp cận agent và công nghệ agent) và phương pháp luận MAS-CommonKADS (theo cách tiếp cận dựa trên công nghệ tri thức). Riêng với MaSE, đại diện cho cách tiếp cận phát triển từ hướng đối tượng, là phương pháp luận được lựa chọn để xây dựng quy trình phát triển hệ phần mềm hướng agent sẽ được trình bày chi tiết trong chương 4 của tài liệu. 1.4 Phương pháp luận Gaia 1.4.1 Giới thiệu chung Gaia [38] là một phương pháp luận được xây dựng theo cách tiếp cận agent và công nghệ agent. Phương pháp luận này phân biệt hoàn toàn hai pha phân tích và thiết kế đồng thời kết hợp các mô hình khác nhau trong các pha đó. Gaia tập trung xem xét hệ đa agent trên khía cạnh tổ chức với các khái niệm như: vai trò (role), tương tác (interaction), và thu thập tri thức (acquaintance). Phương pháp luận Gaia tiến hành phát triển hệ thống dựa trên cả hai quan điểm: quan điểm vĩ mô với mức xã hội (social level) và quan điểm vi mô với mức agent (agent level). Các bước phân tích thiết kế trong Gaia là sự chuyển tiếp giữa các mô hình trong quá trình xây dựng hệ thống. Mối quan hệ giữa các bước này được biểu diễn như trong Hình 1.2 : Tập yêu cầu (Requirement Statement) PHA Mô hình vai trò Mô hình tương tác (Role model) (Interaction model) PHÂN TÍCH Mô hình agent Mô hình dịch vụ Mô hình tri thức PHA (Agent model) (Service model) (Acquaintance model) THIẾT KẾ Hình 1.2: Các bước phát triển của Gaia Gaia cũng mượn một số khái niệm và ký hiệu từ phân tích thiết kế hệ hướng đối tượng. Tuy nhiên, Gaia không áp dụng các phương pháp này để phát triển hệ đa agent mà cung cấp một tập các khái niệm mang tính đặc trưng của agent giúp cho người phát triển có thể hiểu và mô hình hoá được các hệ thống phức tạp. Gaia giúp người phát triển hệ thống xem quá trình phát triển hệ agent như là một quá trình thiết kế tổ chức (organisational design). Các khái niệm chính trong Gaia được phân thành hai nhóm
- CHƯƠNG 1: HỆ ĐA AGENT 23 chính là trừu tượng và cụ thể. Các khái niệm trừu tượng bao gồm role, quyền hạn (permission), trách nhiệm (responsibilities), giao thức (protocol), hoạt động (activities) còn các khái niệm cụ thể là kiểu agent (agent type), dịch vụ (service) hay thu thập tri thức (acquaintance). Ta sẽ lần lượt xem xét chi tiết các pha phân tích và thiết kế trong Gaia. 1.4.2 Pha phân tích Mục đích của pha phân tích là phát triển một hiểu biết cơ bản về hệ thống và cấu trúc của nó (không xét chi tiết đến việc cài đặt hệ thống). Hiểu biết này được biểu diễn theo cấu trúc tổ chức của hệ thống. Chúng ta có thể xem cấu trúc tổ chức của một hệ thống bao gồm một tập các role, các mối quan hệ giữa các role và tương tác giữa các role đó. Khái niệm role trong Gaia bao gồm bốn thuộc tính: trách nhiệm (responsibilities), quyền hạn (permissions), hoạt động (activities) và giao thức (protocols). Trách nhiệm xác định các yêu cầu chức năng ứng với role đó. Quyền hạn của một role giúp nhận ra các trách nhiệm thông qua việc xác định các tài nguyên sẵn sàng cho role đó. Các hoạt động của role là các tính toán liên kết với role mà agent có thể có thể tiến hành mà không cần tương tác với agent khác. Mỗi role cũng được định nghĩa bởi một số giao thức, mỗi giao thức xác định role đó phải tương tác với các role khác như thế nào. Dựa trên yêu cầu, pha phân tích sẽ tiến hành xây dựng mô hình role và mô hình tương tác giữa các agent trong hệ thống. Mô hình role nhằm xác định các role của hệ thống và được biểu diễn một cách trừu tượng theo hai thuộc tính: - Các quyền hạn ứng với role đó - Các trách nhiệm của role đó Mô hình tương tác xác định sự phụ thuộc và các mối quan hệ giữa các role trong tổ chức đa agent. Mỗi giao thức tương tác kết nối 2 role sẽ được định nghĩa cụ thể trong mô hình này. Tương tác trong mô hình này được xem xét theo bản chất tự nhiên và mục đích của tương tác chứ không phải dựa trên việc gửi và nhận các thông điệp. 1.4.3 Pha thiết kế Mục đích của pha thiết kế trong Gaia là chuyển các mô hình trong pha phân tích sang mức trừu tượng thấp hơn (tương tự như trong thiết kế hướng đối tượng) nhằm hướng tới việc cài đặt hệ thống. Nói cách khác, pha thiết kế nhằm trả lời câu hỏi làm thế nào để xã hội các agent thông qua tương tác đạt được đích của hệ thống, và riêng với các agent thì cần những gì để đạt được điều đó.
- CHƯƠNG 1: HỆ ĐA AGENT 24 Pha thiết kế trong Gaia bao gồm ba mô hình: mô hình agent xác định các kiểu agent trong hệ thống và các agent cụ thể trong hệ thống sẽ là các thể hiện của các kiểu agent này; mô hình dịch vụ xác định các dịch vụ chính cần có để thực hiện các role trong kiểu agent tương ứng; còn mô hình thu thập tri thức nhằm biểu diễn liên lạc giữa các agent khác nhau. Ta sẽ xem xét cụ thể từng mô hình: Mô hình agent Mục đích là xác định các kiểu agent có thể sử dụng trong quá trình phát triển hệ thống. Một kiểu agent là một tập các role. Trên thực tế có thể tồn tại các tương ứng 1-1 giữa các role và các kiểu agent. Tuy nhiên, điều này là không bắt buộc, người thiết kế có thể chọn một số role một số role có liên quan vào trong cùng một kiểu agent cho phù hợp. Với mỗi kiểu agent, người thiết kế có thể xác định số agent thể hiện có thể có thông qua một chú giải ghi bên dưới tên lớp agent như sau. Nếu số chú giải có dạng là một số n thì sẽ có chính xác n thể hiện, nếu là m n thì sẽ có ít nhất là m và nhiều nhất là n thể hiện, nếu là * có thể có 0 đến nhiều thể hiện, còn nếu là + thì có nghĩa là có từ 1 đến nhiều thể hiện. Mô hình dịch vụ Xác định các dịch vụ kết hợp với mỗi role và đặc tả các thuộc tính chính của dịch vụ đó. Có thể xem mỗi dịch vụ là một chức năng của agent. Mỗi dịch vụ sẽ có các thuộc tính như đầu vào, đầu ra, các điều kiện đầu vào (pre-conditions) và các điều kiện đầu ra (post-conditions). Các điều kiện đầu vào và đầu ra xác định các ràng buộc cho dịch vụ đó. Mô hình thu thập tri thức Xác định các liên lạc giữa các kiểu agent đã tồn tại. Mô hình không xác định thông điệp gì được gửi đi và khi nào gửi đi, mà chỉ đơn giản là chỉ ra các phiên liên lạc đang tồn tại. Mục đích của mô hình này là nhằm phát hiện ra các “nút cổ chai” có thể có trong thời gian hoạt động của hệ thống. Một mô hình có dạng như một đồ thị với các node là các kiểu agent. 1.5 Phương pháp luận MAS-CommonKADS 1.5.1 Giới thiệu chung MAS-CommonKADS [21] là phương pháp luận mở rộng từ CommonKADS để áp dụng cho phân tích và thiết kế hệ đa agent. Đây là một phương pháp luận theo cách tiếp cận dựa trên công nghệ tri thức. Phương pháp luận này thêm vào CommonKADS các kỹ thuật của phân tích thiết kế hướng đối tượng như kỹ thuật mô hình hoá đối tượng (Object Modelling Technique: OMT), thiết kế hướng trách nhiệm (Responsibility Driving Design: RDD) và các kỹ thuật để mô tả giao thức agent như
- CHƯƠNG 1: HỆ ĐA AGENT 25 ngôn ngữ mô tả và đặc tả (Specification and Description Language: SDL) và biểu đồ thông điệp tuần tự (Message Sequence Charts). MAS-CommonKADS đưa ra các mô hình sau: - Mô hình agent (Agent model: AM): biểu diễn các đặc tính của agent như: khả năng lập luận, các dịch vụ, các nhóm agent và các sơ đồ phân cấp các agent. - Mô hình task (Task model: TM): biểu diễn các task mà agent có thể tiến hành, các đích (goal), các thành phần - Mô hình chuyên gia (Expert model: EM): biểu diễn tri thức cần cho agent để đạt được đích của nó đặt ra. - Mô hình tổ chức (Organisation model: OM): biểu diễn cấu trúc tổ chức xã hội trong hệ đa agent cần xây dựng. - Mô hình phối hợp (CoM): biểu diễn các phiên hội thoại giữa các agent, các tương tác và các giao thức tương tác tương ứng. - Mô hình liên lạc (Communication model: CM): biểu diễn chi tiết các tương tác giữa con người với hệ thống đa agent. - Mô hình thiết kế (Design model: DM): tập hợp từ các mô hình trước đó để thiết kế hệ thống. Bao gồm ba mô hình nhỏ: thiết kế mạng, thiết kế agent và thiết kế nền. Các bước phát triển hệ đa agent theo phương pháp luận MAS-CommonKADS bao gồm 3 pha chính là: pha khái niệm hoá, pha phân tích và pha thiết kế. Chúng ta sẽ lần lượt xem xét các pha này. 1.5.2 Pha khái niệm hoá Nhiệm vụ chính của pha này là mô tả bài toán thông qua các biểu đồ use cases và scenario có dạng tương tự như trong phân tích hướng đối tượng. Các biểu đồ này giúp chúng ta hiểu rõ các yêu cầu phi hình thức của hệ thống và kiểm tra hệ thống về sau. Mỗi thành phần tham gia vào các use case và biểu đồ tuần tự được gọi là một role. 1.5.3 Pha phân tích Mục đích của pha phân tích là đặc tả các yêu cầu của hệ thống vào trong các mô hình được chỉ ra trong phần 1.5.1 trừ mô hình thiết kế. Quá trình xây dựng các mô hình này được mô tả ngắn gọn như sau.
- CHƯƠNG 1: HỆ ĐA AGENT 26 Xây dựng Mô hình agent Các agent sẽ được xác định theo các chiến lược sau: - Phân tích các thành phần tham gia vào các use case đã xác định trong pha khái niệm hoá để nhóm các role tương tự nhau vào trong một agent nhằm đơn giản hoá các trao đổi, liên lạc trong hệ thống. - Phân tích các câu trong mô tả bài toán để tìm ra các chủ ngữ là các đối tượng chủ động và gán chúng thành các agent. Các hành động của các chủ ngữ này sẽ trở thành đích của agent nếu như hành động đó do agent khởi tạo, và sẽ trở thành dịch vụ của nó nếu như hành động đó được thực hiện theo yêu cầu bên ngoài. - Sử dụng chiến lược heuristics: các agent sẽ được xác định thông qua các khái niệm về khoảng cách như: sự phân tán tri thức, phân tán về địa lý, phân tán về mặt logic hoặc phân tán về tổ chức. - Sử dụng mô hình chuyên gia để xác định các chức năng và các yêu cầu về năng lực xử lý tri thức, thông qua đó để định nghĩa các agent. - Sử dụng thẻ CRC và kỹ thuật RDD giống như trong thiết kế hướng đối tượng. Xây dựng Mô hình Task Các task được xác định theo cách tiếp cận từ trên xuống và được biểu diễn theo dạng hình cây. Mô tả một task bao gồm tên của task, đầu vào và đầu ra của task, cấu trúc của task, các điều kiện thực hiện, Mô hình này giúp người phát triển hệ thống dễ dàng quản lý các thay đổi trong các bước còn lại của pha phân tích cũng như trong pha thiết kế. Xây dựng Mô hình phối hợp Mô hình phối hợp được xây dựng theo 2 pha: - Định nghĩa các kênh truyền thông giữa các agent và xây dựng một bản mẫu (prototype). - Phân tích các tương tác và chỉ ra các tương tác phức tạp cùng với các giao thức phối hợp tương ứng. Mỗi pha bao gồm một loạt các bước nhỏ, trong đó sử dụng các ký hiệu theo MSC (Message Sequence Chart), SDL (Specification and Description Language) hoặc biểu diễn thông qua các cấu trúc tri thức (tham khảo thêm trong [21]). Xây dựng Mô hình tri thức Người phát triển sẽ sử dụng mô hình chuyên gia để mô hình hoá khả năng lập luận của các agent trong việc thực hiện các task và hướng tới đích của nó. Ở đây chỉ có một số mô hình chuyên gia được xây dựng nhằm mô hình hoá khả năng lập luận trong miền tri thức và mô hình hoá khả năng suy luận của agent.
- CHƯƠNG 1: HỆ ĐA AGENT 27 Mô hình chuyên gia biểu diễn các tri thức ứng dụng (bao gồm tri thức miền, tri thức lập luận, và tri thức tác vụ) cùng với tri thức giải quyết bài toán. Quá trình xây dựng mô hình tri thức sẽ lần lượt xem xét và biểu diễn các tri thức ứng dụng và các tri thức giải quyết bài toán. Xây dựng Mô hình tổ chức Tương tự như trong CommonKADS, mô hình tổ chức trong MAS-CommonKADS cũng được xây dựng để biểu diễn các mối quan hệ tĩnh hoặc được cấu trúc hoá giữa các agent (trong khi mô hình phối hợp biểu diễn các mối quan hệ động). Mô hình tổ chức cũng sử dụng tập ký hiệu theo OMT nhưng với ngữ nghĩa thay đổi cho phù hợp với hệ đa agent. 1.5.4 Pha thiết kế Dựa trên tập các agent cùng với các mô hình đã được xây dựng trong pha phân tích, pha thiết kế sẽ tiến hành xây dựng mô hình thiết kế. Pha này bao gồm các bước nhỏ sau: - Thiết kế kiến trúc mạng agent (agent network design) - Thiết kế agent (agent design) - Thiết kế nền (platform design) Ta sẽ lần lượt xem xét từng bước này. Thiết kế kiến trúc mạng agent Bước này xác định cơ sở hạ tầng cho hệ đa agent bao gồm các điều kiện cần thiết về mạng, về tri thức và các sự phối hợp giữa các thành phần trong hệ thống. Các agent cũng sẽ được định nghĩa trên cơ sở hạ tầng của hệ thống phụ thuộc vào một số điều kiện cần thiết theo yêu cầu sau: - Các điều kiện về mạng: bao gồm dịch vụ đặt tên agent, dịch vụ đăng ký, mức độ bảo mật, mã hoá và chứng thực, các giao thức truyền thông và ứng dụng - Các điều kiện về tri thức: bao gồm các ontology server, các bộ chuyển đổi ngôn ngữ mô tả tri thức - Các điều kiện về sự phối hợp giữa các thành phần trong hệ thống: bao gồm các giao thức phối hợp, các dịch vụ quản lý nhóm agent Kết quả của bước thiết kế kiến trúc mạng agent là các agent phải liên lạc được với nhau thông qua các giao thức tương tác và ontology của hệ thống. Thiết kế Agent Bước này xác định kiến trúc phù hợp nhất cho mỗi agent dựa theo các module: liên lạc với người dùng (user-communication), liên lạc giữa các agent (agent communication), năng lực xử lý và các dịch vụ của hệ thống.
- CHƯƠNG 1: HỆ ĐA AGENT 28 Thiết kế nền Bước này lựa chọn môi trường phát triển cho hệ đa agent và các phần cứng cần thiết cho hệ thống nếu cần. 1.4 Kết luận Chương này trước hết tập trung trình bày những nét khái quát về agent, hệ đa agent, những ứng dụng của hệ đa agent. Một sự so sánh giữa agent/hệ đa agent và đối tượng/hệ đối tượng cũng đã được điểm qua nhằm làm sáng tỏ hơn các khái niệm này. Tiếp theo đó là điểm qua một số vấn đề quan trọng khi nghiên cứu và phát triển hệ agent: ontology, tương tác và các phương pháp luận. Phần quan trọng của chương này là trình bày tổng quan các phương pháp lụân phát triển hệ đa agent nhằm làm cơ sở cho xây dựng quy trình phát triển hệ đa agent dựa trên phương pháp luận MaSE mà sẽ được trình bày chi tiết trong Chương 4.
- CHƯƠNG 2 TƯƠNG TÁC TRONG HỆ ĐA AGENT Tổng quan về tương tác trong hệ đa agent Thương lượng trong hệ đa agent Mô hình thương lượng song phương Chương này tập trung trình bày vấn đề tương tác trong hệ đa agent. Trước hết sẽ đề cập tổng quan về vai trò tương tác trong hệ đa agent và ngôn ngữ truyền thông được sử dụng trong quá trình trao đổi thông tin và tri thức giữa các agent. Phần tiếp theo sẽ trình bày các mô hình tương tác trong hệ đa agent và đặc biệt tập trung xem xét mô hình thương lượng song phương với ràng buộc mờ nhằm làm cơ sở cho phát triển hệ dịch vụ du lịch TraNeS sẽ được trình bày trong các chương 5, 6, 7, 8. 29
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 30 2.1 Tổng quan về tương tác trong hệ đa agent Hệ đa agent bao gồm nhiều agent tự chủ có thể hoạt động trên những máy tính khác nhau. Tuy nhiên, các agent thường phải trao đổi, tương tác với nhau và chính các tương tác trong hệ đa agent quyết định kiến trúc của hệ thống đó. Các dạng tương tác này phức tạp hơn rất nhiều so với các tương tác trong hệ đối tượng. Các agent tương tác với nhau bằng cách gửi thông điệp và bản chất của các thông điệp này cũng là những lời gọi hàm như trong hệ các đối tượng nhưng các lời gọi trong tương tác giữa các agent có nhiều khác biệt so với tương tác giữa các đối tượng: Các tham số có thể có kiểu được định nghĩa trong một cấu trúc ngữ nghĩa gọi là ontology. Các tham số được viết theo một dạng thông điệp truyền thông được định nghĩa bởi một ngôn ngữ truyền thông agent (như KQML hoặc FIPA-ACL). Nội dung của thông điệp trong tương tác đa agent có thể rất phức tạp như một chuỗi các hành động hoặc các yêu cầu Ngoài sự khác nhau về dạng của các đối số, tương tác trong hệ đa agent cũng khác tương tác giữa các đối tượng do bản chất khác nhau giữa đối tượng và agent. Agent là thành phần có tính tự chủ và hành động hướng đích chứ không thụ động như các đối tượng. Với mỗi hệ agent cụ thể được xây dựng thì mục đích chung của hệ thống và mục đích riêng của từng agent có thể khác nhau, thậm chí không tương thích nhau. Ví dụ trong hệ thương mại điện tử, nếu agent mua có nhiệm vụ mua được hàng với giá càng rẻ càng tốt thì agent bán lại có mục đích là bán với giá càng cao càng tốt. Sự thống nhất và mâu thuẫn về mục đích của các agent trong hệ thống dẫn đến sự đa dạng của các mô hình tương tác trong hệ đa agent. Như vậy, tương tác trong hệ đa agent có những đặc trưng riêng khác biệt so với tương tác đa đối tượng. Vai trò của tương tác trong hệ đa agent có thể được tổng kết như sau: Thông qua tương tác, mỗi agent sẽ thu thập thông tin và tri thức nhằm đạt được đích (goal) riêng của mình và hướng tới đích chung của cả hệ thống. Tương tác tạo nên tính động cho hệ đa agent. Qua tương tác, hệ thống có thể được mở rộng hay thu hẹp một cách dễ dàng, nhất là với các hệ đa agent sử dụng agent trung gian.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 31 Quá trình tương tác không chỉ diễn ra giữa các agent mà còn có thể diễn ra giữa các hệ agent khác nhau. Khi đó, khả năng phối hợp giữa các hệ thống để giải quyết các vấn đề phức tạp tăng lên nhiều lần. Tương tác giữa các agent quyết định kiến trúc và hoạt động của hệ đa agent đó. Thông qua việc xem xét các tương tác cần có giữa các agent, người thiết kế hệ thống có thể xây dựng kiến trúc hệ thống và phân tách nhiệm vụ một cách rõ ràng cho từng agent. Tương tác giữa các agent giúp tích hợp các nguồn thông tin trong hệ thống. Trong hệ tích hợp thông tin, mỗi agent đại diện cho một nguồn thông tin nhất định. Các nguồn thông tin này thường là không đồng nhất, được biểu diễn theo những cách khác nhau. Thông qua tương tác, thông tin giữa các nguồn đ ó sẽ đ ược tích hợp để thu đ ược những thông tin cần thiết. Ba vấn đề sau đây cần quan tâm xem xét khi nghiên cứu về tương tác trong hệ đa agent: 1. Mô hình tương tác: Tuỳ thuộc vào mục đích của hệ thống cụ thể mà người phát triển hệ thống phải lựa chọn một mô hình tương tác phù hợp, mô hình tương tác này sẽ quy định kiến trúc của hệ thống cũng như hành vi của các agent trong hệ thống. 2. Ngôn ngữ truyền thông sử dụng trong các thông điệp: Khi hoạt động trong cùng một hệ thống với nhau các agent phải sử dụng chung một ngôn ngữ truyền thông. Ngôn ngữ này không chỉ quy định cấu trúc thông điệp mà còn quy định các dạng thông điệp hỏi và trả lời trong các phiên hội thoại. 3. Ontology và sử dụng ontology trong tương tác đa agent: Mỗi agent trong hệ thống là một thành phần phần mềm riêng biệt, do đó, miền tri thức quan tâm của các agent trong một hệ thống có thể khác nhau. Để các agent có thể hiểu nhau trong quá trình trao đổi thì hệ thống phải sử dụng ontology nhằm biểu diễn các khái niệm mô tả miền và mối quan hệ giữa các khái niệm đó. Phần 2.1.1 sẽ trình bày những nét chung về ngôn ngữ truyền thông đa agent. Các mô hình tương tác sẽ được trình bày trong phần 2.3. Ontology sẽ được trình bày trong chương 3. 2.1.1 Ngôn ngữ truyền thông giữa các agent Các agent trao đổi với nhau thông qua các thông điệp. Khác với hệ hướng đối tượng, thông điệp trong hệ đa agent không chỉ biểu diễn các lời gọi hàm mà còn phải biểu diễn thông tin và tri thức cần trao đổi giữa các agent. Các thông điệp này được biểu diễn theo
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 32 các ngôn ngữ truyền thông agent (ACL: Agent Comminucation Language) nhằm mục đích: Định nghĩa khuôn dạng các thông điệp để trao đổi giữa các agent trong hệ thống. Thiết lập một giao thức trao đổi giữa các agent, bao gồm: định nghĩa các kiểu thông điệp gửi và nhận, các mô hình trao đổi thông điệp giữa các agent. Các ngôn ngữ truyền thông đều dựa trên lý thuyết hành động - lời nói (speech-act) ([11]). Mỗi thông điệp bao giờ cũng phải mô tả đầy đủ người gửi, người nhận, mục đích của lời nói và ngữ nghĩa của lời nói. Một hành động - lời nói đầy đủ không chỉ định nghĩa cấu trúc lời nói mà còn xác định hành động liên quan đến lời nói đó. Có nhiều ngôn ngữ truyền thông đa agent đã được đưa ra trong đó hai ngôn ngữ truyền thông được sử dụng rộng rãi nhất nhất là KQML ([11]) và FIPA-ACL ([10]). KQML (Knowledge Query and Manipulation Language) Đây là một ngôn ngữ được phát triển theo dự án DARPA trong khoảng thời gian đầu những năm 1990 [11]. KQML định nghĩa ngôn ngữ và giao thức cho quá trình chuyển đổi thông tin và tri thức trong hệ đa agent. KQML định nghĩa ba mức là mức nội dung, mức thông điệp và mức truyền thông. Mỗi thông điệp KQML định nghĩa một hành động thoại, ngữ nghĩa đi kèm hành động thoại đó, giao thức và một tập các thuộc tính. Cấu trúc chung của một thông điệp KQML như sau (performative-name : sender A : receiver B : content X : language L : ontology N : reply-with W : in-reply-to P) Mỗi một thông điệp KQML tương ứng với một dạng tương tác trong trường performative-name. Có tới 25 dạng tương tác (performative) đã được định nghĩa bao gồm ask-one, advertise, broadcast, insert Đồng thời, KQML cho phép mở rộng và định nghĩa thêm các dạng tương tác khác khi cần thiết. Trường content mô tả nội dung của thông điệp. Nội dung này có thể rất phức tạp tuỳ thuộc vào nhu cầu trao đổi thông tin của hai agent trong phiên liên lạc đó. Agent nhận sẽ hiểu được nội dung trong trường content bằng cách tham chiếu vào
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 33 trường ontology của thông điệp mà nó nhận được. KQML cũng định nghĩa các giao thức truyền thông bao gồm cả thứ tự các thông điệp, các perormative. Ví dụ một giao thức truyền thông được định nghĩa trong KQML như Hình 2.1: F advertise(ask(X)) broker(ask(X)) tell(X) A tell(X) ask(X) B Hình 2.1: Một giao thức truyền thông trong KQML FIPA-ACL (Foudation for Intelligent Physical Agent) FIPA-ACL (Foundation Intelligent Physical Agent) là ngôn ngữ truyền thông agent được phát triển năm 1997. FIPA-ACL cũng dựa trên lý thuyết hành động - lời nói và có cấu trúc tương tự như KQML. FIPA-ACL sử dụng XML theo dạng như sau [10]: So với KQML, FIPA-ACL linh động hơn và có thể dễ dàng thêm vào các dạng tương tác mới. Tuy nhiên, FIPA-ACL không định nghĩa các performative theo kiểu sử dụng thành phần trung gian (facilitator) như trong KQML. Đó là các performative như broker hay advertise. 2.1.2 Các mô hình tương tác Phân loại mô hình tương tác Dựa vào mục đích của các bên tham gia tương tác, có thể chia các hình thức tương tác thành hai loại chính: Hợp tác và cạnh tranh ([20]). Hợp tác: Hai bên cùng thực hiện một công việc chung (cộng tác) hoặc công việc của bên này là bước tiền đề cho bên kia (Phối hợp). Hình thức tương tác này thường xuất
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 34 hiện khi các agent có chung mục đích, nhiệm vụ hoặc cùng thực hiện một tiến trình phức tạp nhất định. Cạnh tranh: Hai bên cạnh tranh nhau về thông tin, hoặc quyền lợi (thương lượng) hoặc hoàn toàn trái ngược nhau về lợi ích (đối đầu). Như vậy, có thể có các loại hình tương tác như sau: Tương tác Hợp tác Cạnh tranh Phối hợp Cộng tác Thương lượng Đối đầu Hình 2.2: Các loại hình tương tác Phần 2.3.2 sẽ trình bày một số mô hình tương tác theo cách phân loại này. Một số mô hình hợp tác Các giao thức phối hợp Trong các môi trường phân tán và hạn chế về tài nguyên cho các agent thì các agent thường phải phối hợp với nhau. Như trình bày trong phần 2.2.1, mô hình tương tác được coi là phối hợp khi công việc của agent này là tiền đề cho công việc của agent kia. Để các agent phối hợp với nhau, các nghiên cứu cho rằng cần xây dựng kỹ thuật phân tán công việc cần thực hiện, bao gồm cả phân tán về điều khiển (control) và phân tán dữ liệu (data). Phân tán về điều khiển tức là các agent có thể tự chủ trong việc sinh ra các hành động mới và quyết định mục đích kế tiếp để hướng tới việc thực hiện công việc chung. Tri thức của hệ thống trong trường hợp này cần được biết bởi tất cả các thành phần trong hệ thống. Dựa trên tri thức này, các agent sẽ xác định hành động tiếp theo cần thực hiện trong một chuỗi công việc cần thiết để hoàn thành mục tiêu chung của hệ thống.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 35 Liên quan đến mô hình phối hợp còn nhiều vấn đề khác như sự thoả thuận (commitment), các quy ước (conventions) và việc biểu diễn các thoả thuận hay các quy ước này ([20]) Các giao thức cộng tác Chiến lược chung của các giao thức cộng tác là phân rã nhiệm vụ cần thực hiện của cả hệ thống và sau đó phân tán các tác vụ (task) cụ thể cho các thành viên. Các agent cùng hướng tới đích chung thông qua việc thực hiện các tác vụ mà mình được giao. Việc phân rã các task như thế nào được thực hiện bởi người thiết kế hệ thống và tuân theo các giao thức cụ thể. Các tác vụ được phân rã phải thoả mãn các yêu cầu sau: - Tránh xung đột tài nguyên - Các tác vụ phải phù hợp với khả năng của agent - Tạo ra một agent có nhiệm vụ phân phối tác vụ cho các agent khác trong hệ thống. - Xác định các tác vụ có độ độc lập cao để giảm thiểu việc truyền thông và đồng bộ hoá kết quả. - Định nghĩa lại các tác vụ nếu cần thiết để hoàn thành một tác vụ “khẩn cấp”. Phần tiếp theo sẽ trình bày hai giao thức cộng tác tiêu biểu là giao thức mạng hợp đồng và giao thức bảng đen. Giao thức Mạng hợp đồng Giao thức mạng hợp đồng là một giao thức tương tác kiểu cộng tác. Giao thức này sẽ kết hợp các kết quả từ các agent khác nhau thông qua việc mô hình hoá hệ thống theo cơ chế hợp đồng sử dụng trong thương mại để trao đổi sản phẩm và dịch vụ. Mạng hợp đồng sẽ cung cấp giải pháp cho bài toán: tìm một agent phù hợp cho một tác vụ cho trước. Giả sử có một agent có một tác vụ cần xử lý. Agent này sẽ được gọi là manager, và agent có khả năng xử lý tác vụ này gọi là contractor. Tương tác giữa manager và contractor sẽ diễn ra theo biểu đồ tương tác sau:
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 36 Manager Contractor Thông báo tác vụ cần thực hiện Phản hồi đánh giá khả năng thực hiện task Xác nhận một hợp đồng cho contractor phù hợp Thực hiện tác vụ và trả lại kết quả Kết thúc tác vụ Hình 2.3: Giao thức mạng hợp đồng Manager sẽ gửi thông báo về tác vụ cần thực hiện cho tất cả các agent khác trong hệ thống. Khi nhận được yêu cầu, các agent sẽ gửi trả lại cho manager thông báo về khả năng thực hiện tác vụ của mình. Manager sẽ đánh giá và chọn ra agent phù hợp nhất để thực hiện tác vụ đó và xác nhận agent đó thành contractor. Contractor sẽ có nhiệm vụ thực hiện tác vụ và trả lại kết quả cho manager. Trên lý thuyết, manager có thể là bất kỳ agent nào trong hệ thống khi có task cần thực hiện. Vì vậy mỗi agent có thể nhận được nhiều task, nếu agent đó là agent có khả năng xử lý cao thì rất nhiều manager sẽ chọn agent đó làm contractor. Khi đó, contractor sẽ lựa chọn task “hấp dẫn” nhất và mô hình mạng hợp đồng sẽ trở nên phức tạp hơn nhiều. Giao thức Bảng đen Phương pháp giải quyết bài toán dựa trên giao thức Bảng đen được mô tả như sau: Giả sử có một nhóm chuyên gia hoặc agent cùng ngồi cạnh một bảng đen lớn. Các chuyên gia sẽ cộng tác với nhau để giải quyết bài toán thông qua việc sử dụng bảng đen để phát triển lời giải. Quá trình giải bài toán bắt đầu khi bài toán và dữ liệu đầu vào được viết lên bảng đen. Các chuyên gia sẽ quan sát bảng đen và cố gắng đưa ra ý kiến để phát triển lời giải của bài toán. Khi tìm ra được một thông tin/ý kiến phù hợp, chuyên gia này sẽ viết ý kiến (thông tin) đó lên bảng đen. Các chuyên gia khác sẽ sử dụng thông tin này để tiếp tục tìm ra lời giải. Quá trình cứ tiếp tục như vậy cho đến khi bài toán được giải quyết hoàn toàn.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 37 Áp dụng giao thức bảng đen cho hệ đa agent ta sẽ có mô hình tương tác kiểu bảng đen. Khi đó, hệ thống này có các đặc điểm sau: - Tính độc lập về giải pháp: Các chuyên gia có thể đưa ra các ý kiến độc lập với nhau. - Tính đa dạng trong kỹ thuật giải bài toán: Thông qua bảng đen và các phương pháp biểu diễn tri thức thì một bài toán có thể có rất nhiều hướng giải quyết khác nhau. - Cho phép biểu diễn thông tin một cách linh hoạt trên bảng đen. - Sử dụng ngôn ngữ tương tác chung. Một giao thức kết hợp cộng tác và cạnh tranh là thương lượng sẽ được trình bày chi tiết trong phần 3.2 và 3.3 của tài liệu. Phần tiếp theo dành để trình bày kiến trúc agent trung gian. 2.1.3 Tương tác với agent trung gian 2.1.3.1 Vai trò của agent trung gian Trên quan điểm chú trọng đến các mô hình có sử dụng agent trung gian, ta có thể chia các mô hình tương tác trong hệ đa agent thành: (i) tương tác với agent trung gian và (ii) tương tác không sử dụng agent trung gian. Các mô hình tương tác không sử dụng agent trung gian như mô hình bảng đen, mạng hợp đồng có ưu điểm là đơn giản, dễ xây dựng và phù hợp với những hệ thống đa agent đóng. Các mô hình này yêu cầu các agent phải biết được khả năng của các agent khác trong hệ thống mà nó muốn tương tác. Do đó, hệ thống với các mô hình này khó mở rộng cho agent khác tham gia như trong môi trường Internet. Khác với các mô hình bảng đen hay hợp đồng, mô hình tương tác với agent trung gian ([24], [35], [40]) sử dụng một agent trung gian MidAgent nhằm quản lý khả năng của các agent khác. Trong mô hình này, Agent Yêu cầu (Requester Agent) sẽ tương tác với MidAgent để biết được khả năng của các agent (Agent Cung cấp: Provider Agent) trong hệ thống có thể giải quyết được yêu cầu của mình . Vai trò của MidAgent trong những mô hình cụ thể có thể khác nhau nhưng lớp agent này đều có chung những đặc trưng sau: Cung cấp các phương tiện dịch vụ cơ bản để quản lý xã hội các agent; Phối hợp các dịch vụ được cung cấp theo một giao thức xác định nào đó;
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 38 Ðảm bảo quản lý các agent bên trong xã hội agent và quản lý việc thêm hay bớt các agent tham gia vào hệ thống. Trong [24], lớp mô hình tương tác sử dụng agent trung gian được chia ra thành 3 mô hình nhỏ gồm mô hình tương tác kiểu Agent Trung tâm (Mediator Agent), mô hình tương tác kiểu Môi giới (MatchMaker) và mô hình tương tác kiểu Điều phối (Broker). 2.1.3.2 Các mô hình tương tác với agent trung gian Mô hình tương tác với Agent Trung tâm (Mediator Agent) Trong mô hình này, nhiệm vụ của Agent Trung tâm là chủ động liên lạc với các agent khác có dữ liệu hay tri thức cần thiết trong hệ thống. Các dịch vụ mà Agent Trung tâm có thể cung cấp là: Tự động xác định các dịch vụ thông tin; Xác định vai trò của các agent trong hệ thống; Tự thu thập và tạo ra thông tin từ các Agent Cung cấp (Provider Agent) sau đó gửi trả lại cho các agent yêu cầu. Ðể thực hiện nhiệm vụ trên, Agent Trung tâm sử dụng mô hình thông tin toàn cục bằng cách thu thập và tích hợp các thông tin cần thiết để giải quyết các yêu cầu hoặc có thể chuyển yêu cầu cho các agent phù hợp trong hệ thống để giải quyết. Như vậy, Agent Trung tâm đóng vai trò vừa là agent trực tiếp quản lý các agent khác lại vừa tự tìm ra thông tin cần thiết để giải quyết và gửi trả lại kết quả cho các agent yêu cầu. Công việc của Agent Trung tâm là rất nhiều và hiệu quả hoạt động của hệ thống phụ thuộc hoàn toàn vào khả năng của agent này. Vai trò của MidAgent sẽ giảm đi trong hai mô hình còn lại được trình bày sau. Mô hình tương tác với Agent Điều phối (Broker Agent) Trong mô hình này, MidAgent đóng vai trò là Agent Điều phối (Broker Agent). Công việc mà Agent Điều phối cần thực hiện là một phần công việc của Agent Trung tâm và được biểu diễn như trong Hình 2.4. Khi có một agent mới tham gia vào hệ thống, thì nó phải đăng ký khả năng cung cấp dịch vụ của mình cho Agent Điều phối. Dịch vụ, tên và địa chỉ của Agent Cung cấp này sẽ được cập nhật vào cơ sở tri thức của Agent Điều phối.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 39 1: Yêu cầu dịch vụ Agent Agent Yêu cầu Điều phối 5: Trả lại kết quả dịch vụ 0: Đăng ký, huỷ đăng ký dịch vụ Agent Cung cấp 3: Yêu cầu dịch vụ và giao tác 4: Chuyển kết quả dịch vụ Hình 2.4: Mô hình tương tác sử dụng Agent Điều phối Khi có một agent Agent Yêu cầu gửi cho Agent Điều phối một yêu cầu dịch vụ nào đó, Agent Điều phối sẽ tìm kiếm trong cơ sở tri thức của mình xem có Agent Cung cấp nào có thể giải quyết được yêu cầu của Agent Yêu cầu không và sau đó liên lạc trực tiếp với agent đó để giải quyết yêu cầu. Sau cùng, Agent Điều phối sẽ gửi lại kết quả cho Agent Yêu cầu và kết thúc quá trình tương tác. Như vậy, trong mô hình tương tác này, bất cứ một liên lạc nào giữa Agent Yêu cầu và Agent Cung cấp đều phải thông qua Agent Điều phối. Trong một số tài liệu, Agent Điều phối còn được gọi là Facilitator ([40]). Ưu điểm của mô hình này là khả năng mở rộng hệ thống. Một agent mới muốn tham gia vào hệ thống thì agent đó chỉ cần đăng ký dịch vụ với Agent Điều phối. Tuy nhiên, nhược điểm của mô hình này là Agent yêu cầu phải gửi đi toàn bộ yêu cầu của mình cho Agent Điều phối mà điều này thường không thực tế đặc biệt trong thương mại điện tử. Mô hình tương tác với Agent Môi giới (MatchMaker Agent) Trong mô hình này, MidAgent đóng vai trò như một Agent Môi giới mà nhiệm vụ chính của nó là tạo ra cơ chế liên lạc trực tiếp giữa Agent Yêu cầu và Agent Cung cấp như minh hoạ trong Hình 2.5.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 40 1: Yêu cầu dịch vụ Agent Agent Yêu cầu Môi giới 2: Trả lại tên agent cung cấp 3: Yêu cầu 0: Đăng ký, dịch vụ Huỷ đăng ký dịch vụ Agent Cung cấp 4: Trả lại kết quả dịch vụ Hình 2.5: Mô hình tương tác sử dụng Agent Môi giới Tương tự như mô hình Agent Điều phối, khi muốn tham gia vào hệ thống, mỗi agent phải đăng ký dịch vụ với Agent Môi giới và trở thành nhà cung cấp dịch vụ (Agent Cung cấp). Agent Môi giới sẽ cập nhật vào cơ sở tri thức của nó tên và khả năng dịch vụ của Agent Cung cấp. Trong một tương tác cụ thể, khi có một Agent Yêu cầu yêu cầu một dịch vụ, nó sẽ gửi yêu cầu đó đến Agent Môi giới. Agent Môi giới sẽ xem xét trong cơ sở tri thức của nó để tìm ra Agent Cung cấp có thể thực hiện yêu cầu và sẽ gửi cho Agent Yêu cầu tên, địa chỉ của Agent Cung cấp đó. Quá trình tương tác sau đó sẽ diễn ra trực tiếp giữa Agent Yêu cầu và Agent Cung cấp. Như vậy, công việc mà Agent Môi giới phải thực hiện là một phần công việc của Agent Điều phối. Trong mô hình này, Agent Yêu cầu chỉ cần gửi đi yêu cầu nào liên quan đến việc tìm ra Agent Cung cấp phù hợp. 2.2 Thương lượng trong hệ đa agent Khác với các mô hình tương tác kiểu cộng tác như mạng hợp đồng hay bảng đen, thương lượng là một tiến trình tương tác vừa cộng tác vừa cạnh tranh được diễn ra giữa hai hay nhiều bên tham gia, bắt đầu bằng những mục tiêu (đích) khác nhau, dần dần đi đến một thoả thuận chung có lợi cho tất cả các bên. Trong bài toán thương lượng, tuỳ vào số bên tham gia, người ta chia làm bốn nhóm là: thương lượng 1-1, thương lượng 1- n, thương lượng n-1 và thương lượng n-n. Sự phân chia này được minh hoạ như Hình 2.6.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 41 Số người mua Số người bán 1-1 1-n n-1 n-n Hình 2.6: Các dạng thương lượng Thương lượng 1-1: còn gọi là thương lượng song phương, chỉ có một người bán thương lượng với một người mua. Thương lượng n-1: nhiều người mua một người bán. Đây chính là hình thức đấu giá (Auction). Đấu giá là một trong những hình thức mua bán phổ biến trong thương mại. Trong mô hình đấu giá (nhiều người mua, một người bán), người mua sẽ trả giá theo một cách thức nào đó, ví dụ như ai trả giá cao nhất sẽ thắng. Thương lượng 1-n: Một người mua có thể thương lượng đồng thời với nhiều người bán. Hình thức này còn gọi là đấu giá ngược (Reverse-Auction). Thương lượng n-n: còn gọi là thương lượng đa phương hay chợ (market). Mỗi người mua có thể thương lượng đồng thời với nhiều người bán và mỗi người bán cũng có thể thương lượng đồng thời với nhiều người mua. Khi hệ thống có các agent đại diện cho người mua và người bán thì các agent này sẽ tự động thương lượng với nhau. Trong thương lương song phương người ta chia ra ba cách tiếp cận [5]: Cách tiếp cận dựa trên lý thuyết trò chơi Đây là cách tiếp cận sử dụng chiến lược tương tác giữa các agent ích kỷ (self- interested agent) theo các luật trò chơi. Trong cách tiếp cận này, các nhà nghiên cứu cố gắng xác định một chiến lược tối ưu bằng cách phân tích mối tương tác giữa các agent giống như trong một trò chơi và tìm ra điểm cân bằng của quá trình tương tác giữa các agent đó. Cách tiếp cận dựa trên Heuristic
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 42 Trong mô hình này, các hàm quyết định dựa trên heuristic được sử dụng để ước lượng và sinh ra các yêu cầu hay đề nghị mới trong quá trình thương lượng. Cách tiếp cận dựa trên lập luận (Argumentation-based) Cách tiếp cận này cho phép các agent có thể chuyển các thông tin thêm hoặc lập luận cho các giá trị tinh thần như niềm tin hay ý định trong quá trình thương lượng. Phần 3.4 của tài liệu sẽ tìm hiểu một kiến trúc thương lượng sử dụng agent trung gian và áp dụng kiến trúc này cho thương lượng song phương cũng như thương lượng đa phương. 2.3 Mô hình thương lượng song phương 2.3.1 Cơ sở toán học cho thương lượng song phương Nội dung phần này trình bày các khái niệm cơ bản về logic mờ nhằm làm cơ sở cho việc mô hình hoá chiến lược thương lượng dựa trên ràng buộc mờ sẽ được trình bày trong phần 2.3.2. Tập mờ Khái niệm tập mờ nhằm biểu diễn và tính toán với các dữ liệu liên quan đến biến ngôn ngữ. Định nghĩa 2.1 ([12]): Cho X là một tập khác rỗng. Một tập mờ A trong X được đặc trưng bởi hàm liên thuộc A : X [0,1] và A (x) được hiểu là mức độ phụ thuộc của phần tử x vào tập mờ A, với mọi phần tử x X . Các hàm liên thuộc có đồ thị dạng hình thang hoặc tam giác thường được chọn cho nhiều ứng dụng thực tế. Hình 2.7: Các phương pháp ước lượng mờ: hình thang và tam giác
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 43 Lát cắt của tập mờ Định nghĩa 2.2 ([26]): Gọi A là một tập mờ trong một tập không rỗng X với hàm thuộc A . Một lát cắt của tập mờ A được xác định là tập các phần tử x X sao cho A (x) . Hình 2.8 minh hoạ một cách xác định lát cắt của một tập mờ. Hình 2.8: Xác định lát cắt của tập mờ Các toán tử mờ Định nghĩa 2.3 ([26]): Một hàm G :[0,1] [0,1] [0,1] được gọi là hàm ưu tiên nếu nó thoả mãn bốn điều kiện. 1. G(u1 ,a) G(u2 ,a) nếu u1 u2 , 2. G(u,a1 ) G(u,a2 ) nếu a1 a2 , 3. G(1, a) = a, 4. G(0, a) = 1. Định nghĩa 2.4 ([25]): Một hàm O :[0,1] [0,1] [0,1] được gọi là hàm đồng nhất ưu tiên nếu nó thoả mãn các điều kiện. 1. O(u1 ,) O(u2 ,) nếu u1 u2 , 2. O(u,1 ) O(u,2 ) nếu 1 2 , 3. O(1,) . Định nghĩa 2.5 ([26]): Một toán tử hai ngôi :[0,1] [0,1] [0,1] được gọi là toán tử đồng nhất nếu nó đơn điệu tăng, đối xứng và tồn tại một phẩn tử [0,1] sao cho a [0,1] : a a . Phần tử khi đó được gọi là phần tử đơn vị của toán tử đồng nhất . Một toán tử đồng nhất với phần tử đơn vị có các tính chất sau đây [26]: 1. a a a ,
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 44 2. a b max(a,b) nếu a,b , 3. a b min(a,b) nếu a,b , 4. min(a,b) a b max(a,b) nếu a ,b , 5. 0 a 0 . Định nghĩa 2.6 ([26]): Một hàm F :[0,1] [0,1] [0,1] [0,1] được gọi là hàm chấp nhận tổng thể của người mua đối với một mặt hàng nếu nó thoả mãn các điều kiện. 1. F(0, , ) 0 và F( ,0, ) 0 , 2. F(1 , 1 , 1 ) F( 2 , 2 , 2 ) nếu 1 2 , 1 2 , 1 2 , 3. F( , , ) min( , ) , 4. F( , , ) 1 nếu , 0 , là ngưỡng chấp nhận của người dùng. Toán tử OWA Toán tử OWA (Ordered Weighted Average) là một kỹ thuật kết hợp dựa trên các trọng số được sắp xếp, do Ronald R. Yager giới thiệu năm 1988. Định nghĩa 2.7 ([12]): Một toán tử OWA n chiều là một ánh xạ F : R n R xác định bởi n T vector w (w1 , w2 , wn ) sao cho wi [0,1] , 1 i n và wi w1 w2 wn 1 . i 1 n F(a1 ,a2 , an ) w j b j w1b1 wnbn j 1 với bj là phần tử lớn thứ j của tập A (a1 , an ) . Một số trường hợp đặc biệt của toán tử OWA [12]. Max: trong trường hợp w* (1,0, 0)T thì Max(a1, an) = max{a1, an}. T Min: trong trường hợp w* (0,0, 1) thì Min(a1, an) = min{a1, an}.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 45 1 1 1 Average: trong trường hợp w ( , , , )T thì A n n n a a F (a , a ) 1 n . A 1 n n Một ứng dụng quan trọng của toán tử OWA là trong kết hợp theo các lượng từ ngôn ngữ [12]. Giả sử {A1, A2, An} là một tập các tiêu chí để đánh giá một lớp các đối tượng nào đó và x là một đối tượng thuộc lớp đó sao cho với mỗi tiêu chí A i, giá trị hàm Ai (x) [0,1] chỉ ra độ thoả mãn của đối tượng x đối với thuộc tính A i. Nếu muốn tìm mức độ thoả mãn “tất cả các tiêu chí” của đối tượng x, kí hiệu là D(x), thì D(x) = Min{A1(x), A2(x), An(x)} Nếu muốn tìm mức độ thoả mãn “ít nhất một tiêu chí” của đối tượng x, kí hiệu là E(x), thì E(x) = Max{A1(x), A2(x), An(x)} Trong các trường hợp còn lại, tuỳ theo lượng từ ngôn ngữ mà phải xây dựng các hàm tìm mức độ thoả mãn của đối tượng x theo dạng các lượng từ đơn điệu không giảm hoặc lượng từ đơn điệu không tăng (xem chi tiết [12]). 2.3.2 Chiến lược thương lượng cho agent bán Trong mô hình thương lượng song phương, agent bán có nhiệm vụ quản lí việc giao dịch đồng thời với các khách hàng của mình. Mỗi agent bán được trang bị một tập các tri thức sau đây: a. Tập O = {O1, O2, Om} các đơn vị hàng hoá có thể cung cấp, mỗi đơn vị hàng hoá Oi (của cùng một mặt hàng - mỗi agent bán chỉ bán một mặt hàng) được mô tả thông i i i qua n thuộc tính {o1 ,o2 , on } và có một giá trị lợi ích gi nếu bán được đơn vị hàng đó. b. Một tập R = {r1, r2, rm} các ràng buộc đối với người mua của các đơn vị hàng hoá. Tập này có miền giá trị kiểu boolean (có hoặc không). c. Một tập C = {c 1, c2, cn} các hình thức khuyến mại cho các đơn vị hàng hoá tương ứng, tập này cũng có miền giá trị kiểu boolean.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 46 d. Một tập B = {B 1, B2, Bk} các khách hàng đang thương lượng với agent bán. Mỗi khách hàng được biểu diễn qua các thông tin sau: Tập các đơn vị hàng hoá đã bị từ chối, đơn vị hàng hoá vừa mới giới thiệu đi, các thuộc tính và giá trị các thuộc tính đã yêu cầu. Khi đó, hoạt động thương lượng của agent bán diễn ra theo sơ đồ được mô tả trong Hình 2.9. Khởi đầu: sau khi đăng kí với hệ thống, agent bán sẽ chuyển ngay vào trạng thái chờ để chờ các kết nối đến từ các agent mua. Chờ: tại đây, agent bán sẽ chờ đợi các kết nối đến từ các agent mua. Tuỳ thuộc vào nội dung thông điệp nhận được mà agent bán chuyển vào các trạng thái phù hợp. Tìm kiếm: là trạng thái mà agent bán chuyển vào khi nhận được thông điệp “find”. Tại đây, nó cập nhật thêm yêu cầu của khách hàng vừa nhận được và tiến hành tìm kiếm các đơn vị hàng hoá thoả mãn các yêu cầu mà nó đã nhận được. Nếu không tìm được đơn vị hàng nào, nó sẽ gửi đi thông điệp “relax” với mong muốn agent bán sẽ nhượng bộ trên thuộc tính nào đó. Nếu tìm thấy, nó chọn đơn vị hàng hoá nào đem lại giá trị lợi ích gi cao nhất để giới thiệu với agent mua kèm theo thông điệp “check”. Đồng thời cập nhật đơn vị hàng hoá mới nhất vừa được gửi đi cho khách hàng tương ứng. Hình 2.9: Mô hình chiến lược thương lượng của agent bán Tìm lại: là trạng thái agent bán chuyển vào khi nhận được thông điệp “refind”. Khi đó, nó sẽ tiến hành tìm kiếm theo các yêu cầu cũ do không có yêu cầu mới bổ sung. Nếu tìm thấy các đơn vị hàng hoá mới, agent bán sẽ chọn đơn vị hàng nào cho giá trị lợi ích g i cao nhất để gửi đến agent mua với thông điệp “check”. Đồng thời cập nhật đơn vị hàng
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 47 hoá mới nhất vừa được giới thiệu. Nếu không tìm thấy hàng hoá mới, agent bán chuyển vào trạng thái khuyến mại để xem có thể bổ sung các hình thức khuyến mại hay không. Khuyến mại: tại đây, agent bán lấy lại đơn vị hàng hoá mới nhất đã được giới thiệu cho agent mua để kiểm tra xem đơn vị hàng đó có hình thức khuyến mại nào không. Việc này luôn đảm bảo có đơn vị hàng đã giới thiệu, vì trạng thái này chỉ được chuyển đến sau trạng thái tìm lại, trạng thái tìm lại chỉ xảy ra khi agent bán nhận được thông điệp “refind”, tức là trước đó agent mua đã nhận được một đơn vị hàng hoá do chính agent bán này giới thiệu. Nếu đơn vị hàng này có kèm theo khuyến mại, agent bán sẽ gửi các hình thức khuyến mại này kèm theo thông điệp “recheck”. Nếu đơn vị hàng này không có khuyến mại hoặc có khuyến mại nhưng đã được giới thiệu trước đó, agent bán sẽ gửi thông điệp “relax” , đồng thời cập nhật đơn vị hàng hoá này vào tập các hàng hoá đã bị từ chối. Kết thúc: là trạng thái kết thúc cho một phiên thương lượng với agent mua mà không phải kết thúc cho bản thân agent bán. Trạng thái này đạt được khi nó nhận được thông điệp “deal” báo chấp nhận hoặc “fail” báo thất bại từ phía agent mua. Quá trình trên có thể diễn ra nhiều lần với một hoặc nhiều agent mua khác nhau. Khác với agent mua là sẽ kết thúc nhiệm vụ sau khi thương lượng, agent bán chỉ kết thúc nhiệm vụ khi đã bán hết các mặt hàng mà nó quản lí. 2.3.3 Chiến lược thương lượng cho agent mua Trong mô hình thương lượng song phương, mỗi agent mua đại diện cho một khách hàng, sẽ thương lượng với một đối tác duy nhất và do đó mỗi agent mua được trang bị các tri thức sau: a. Tập A = {A 1, A2, An} các thuộc tính của hàng hoá. Trong trường hợp nhiều mặt hàng thì mỗi mặt hàng sẽ được xem xét với tập thuộc tính riêng của mặt hàng đó. Mỗi thuộc tính Ai có độ ưu tiên u i tương ứng. Trong trường hợp thuộc tính A i có giá trị khoảng thì mỗi giá trị (hoặc khoảng con các giá trị) trong khoảng đó có một mức j độ thoả mãn người dùng ai . b. Mỗi thuộc tính Ai có một giá trị i gọi là ngưỡng nhượng bộ của thuộc tính. Giá trị của ngưỡng này cho biết thuộc tính tương ứng có thể được nhượng bộ thêm nếu giá j trị độ thoả mãn ai của nó chưa thấp hơn i . c. Một giá trị được gọi là ngưỡng chấp nhận, đặc trưng cho khả năng chấp nhận của người dùng. Nếu khả năng chấp nhận của người dùng càng cao thì ngưỡng chấp
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 48 nhận có giá trị càng thấp. Nghĩa là mặt hàng chỉ được chấp nhận nếu độ thoả mãn tổng thể của nó không nhỏ hơn ngưỡng này. Ngưỡng chấp nhận được ước lượng từ các độ quan trọng ui và ngưỡng nhượng bộ i của mỗi thuộc tính như sau: . Ước lượng ngưỡng chấp nhận trên mỗi thuộc tính i O(ui ,i ) . Hàm O được chọn thoả mãn các điều kiện của định nghĩa 3.4. . Kết hợp các giá trị i lại với nhau bằng toán tử OWA. Nhận xét rằng, với yêu cầu của người dùng thì nếu có ít nhất một thuộc tính không thoả mãn thì mặt hàng sẽ không được chấp nhận, nghĩa là trường hợp này thuộc dạng “ít nhất một” và dạng toán tử OWA được áp dụng là toán tử Max. Max(1 , 2 , n ) . d. Một tập D các cặp thuộc tính và giá trị của các thuộc tính đã gửi đi cho bên agent bán. Tại thời điểm đầu, agent mua chỉ gửi đi các yêu cầu của các thuộc tính có độ ưu tiên cao nhất. Sau đó, trong suốt quá trình thương lượng, agent mua sẽ gửi thêm yêu cầu chỉ khi giá trị thuộc tính tương ứng không thoả mãn yêu cầu của nó. Do vậy, khi có yêu cầu nhượng bộ từ phía agent bán, agent mua chỉ tiến hành chọn lựa khả năng nhượng bộ trên các thuộc tính đã được yêu cầu lưu trong tập D này. Với tập các tri thức này, quá trình thương lượng của agent mua diễn ra theo sơ đồ được minh hoạ trong Hình 2.10.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 49 Hình 2.10: Mô hình chiến lược thương lượng của agent mua Khởi đầu: Trong trạng thái khởi đầu của phiên thương lượng này, agent mua tìm ra thuộc tính có độ ưu tiên ui cao nhất để gửi đi. Trong trường hợp có nhiều thuộc tính có độ ưu tiên ui cao nhất, nó sẽ gửi đi toàn bộ các thuộc tính này. Yêu cầu: Khi muốn gửi đi yêu cầu về thuộc tính mới hoặc giá trị mới cho thuộc tính đã yêu cầu, agent mua sẽ chuyển vào trạng thái yêu cầu để thực hiện việc gửi các yêu cầu đó cho phía đối tác. Đồng thời với việc gửi yêu cầu đi, agent mua còn phải cập nhật lại nội dung các thuộc tính được gửi đi (tập D) trong bộ nhớ hoạt động của mình. Chờ: Là trạng thái để agent mua chờ đợi một thông điệp phúc đáp từ phía đối tác. Khi nhận được thông điệp phúc đáp, tuỳ thuộc vào nội dung của thông điệp mà agent mua chuyển vào các trạng thái tương ứng. Kiểm tra: Khi nhận được thông điệp kiểu “check” từ phía agent bán thì agent mua chuyển vào trạng thái kiểm tra. Tại đây, nó tiến hành kiểm tra xem có thuộc tính nào bị vi phạm hay không. Một thuộc tính bị coi là vi phạm nếu giá trị của nó kém hơn giá trị yêu cầu của thuộc tính đó đang được lưu giữ trong bộ nhớ động của agent mua. Khái niệm kém hơn là tuỳ thuộc vào thuộc tính của đối tượng. Chẳng hạn, với thuộc tính giá phòng thì kém hơn là khi giá phòng của khách sạn nhận được cao hơn giá được yêu cầu. Nếu có ít nhất một thuộc tính bị vi phạm, agent mua sẽ chuyển sang trạng thái yêu cầu để bổ sung các yêu cầu mới. Trong trường hợp ngược lại, không có thuộc tính nào bị vi phạm, nó sẽ chuyển vào trạng thái chấp nhận để kiểm tra xem đối tượng có
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 50 thể chấp nhận được không; bởi vì khi không có thuộc tính nào bị vi phạm thì chưa thể chắc chắn rằng mặt hàng sẽ được chấp nhận bởi người dùng. Chấp nhận: Trong trường hợp không có thuộc tính nào bị vi phạm sau trạng thái kiểm tra hoặc nhận được thông điệp “recheck”, agent mua sẽ chuyển vào trạng thái chấp nhận. Các bước tiến hành để tính độ thoả mãn tổng thể của đối tượng đối với người dùng, dựa trên các kỹ thuật ước lượng mờ được tiến hành như sau. . Tính độ phù hợp tương đương b i của thuộc tính A i dựa vào độ ưu tiên u i và độ phù hợp ai: bi = G(ui,ai). Trong đó, a i được ước lượng mờ theo phương pháp hình thang từ giá trị thực của mặt hàng so với các giới hạn của người dùng trên thuộc tính tương ứng. Hàm G được chọn thoả mãn các điều kiện của định nghĩa 2.3. Trong áp dụng được trình bày ở chương 5, hàm chuyển đổi độ phù hợp tương đương được sử dụng là G(u,a) (a 1)u 1 . . Toán tử OWA được áp dụng để tính độ thoả mãn ràng buộc của mặt hàng từ các độ thoả mãn ràng buộc b i trên các thuộc tính A i. Nhận xét rằng một mặt hàng muốn thoả mãn được các ràng buộc của người dùng thì nó phải thoả mãn các ràng buộc trên tất cả các thuộc tính; vậy toán tử OWA được áp dụng là dạng “tất cả mọi”, tức là toán tử dạng Min. Min(b1 ,b2 , bn ) . . Tính độ thoả mãn ràng buộc của bên bán: bên bán có thể có một số ràng buộc đối với người mua, chẳng hạn về độ tuổi hay cấm mang theo vật nuôi Khi đó, độ thoả mãn được tính là phần bù (phủ định mờ) của giá trị độ yêu thích của khách hàng về điều kiện tương ứng ( ai với a i là độ yêu thích của người dùng, ai [0,1] ). Ví dụ: nếu khách sạn cấm đưa súc vật vào phòng mà người dùng muốn đưa theo súc vật với mức độ là 40% (0.4) thì độ thoả mãn ràng buộc 0.4 0.6 . . Tính độ thoả mãn khuyến mại : Với mỗi hình thức khuyến mại, độ thoả mãn sẽ bằng độ yêu thích của khách hàng đối với hình thức khuyến mại đó ( i ai với a i là độ yêu thích của người dùng, ai [0,1] ). Nếu có nhiều hơn một hình thức khuyến mại cho cùng một mặt hàng, các độ thoả mãn i được kết hợp với nhau bởi một phép toán đối xứng hai ngôi (ký hiệu là ) thoả mãn điều kiện: max{ 1 , 2 } 1 2 1.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 51 Trong áp dụng ở chương 5, phép toán được sử dụng là 1 2 1 2 1 2 . . Tính khả năng chấp nhận mặt hàng từ các giá trị độ thoả mãn yêu cầu , độ thoả mãn ràng buộc và độ thoả mãn khuyến mại : F( , , ) . Hàm F được chọn thoả mãn các điều kiện của định nghĩa 2.6. Trong áp dụng ở chương 4, hàm tính khả năng chấp nhận của người dùng được sử dụng là F( , , ) min( , ) ((1 ) ) . Trong đó là toán tử đồng nhất với phần tử đơn vị , thoả mãn các điều kiện của định nghĩa 2.5. Trong áp dụng ở chương 4, toán tử đồng nhất được áp dụng là (1 )ab a b . (1 )ab (1 a)(1 b) với là ngưỡng chấp nhận của người dùng. Sau các bước này, nếu khả năng chấp nhận lớn hơn ngưỡng chấp nhận thì mặt hàng được chấp nhận và agent mua gửi thông điệp “deal” đến bên bán và chuyển vào trạng thái kết thúc (thành công). Nếu nhỏ hơn thì mặt hàng không được chấp nhận và agent mua sẽ gửi thông điệp “refind” yêu cầu tìm lại với các yêu cầu cũ mà không cần gửi thêm yêu cầu bổ sung. Nhượng bộ: Khi nhận được thông điệp “relax” từ agent bán thì agent mua chuyển vào trạng thái này. Tại đây, nó kiểm tra xem trong các thuộc tính đã gửi yêu cầu, có thuộc tính nào còn nhượng bộ được nữa hay không, một thuộc tính được coi là còn nhượng bộ được nếu giá trị hiện tại của nó vẫn lớn hơn ngưỡng nhượng bộ của thuộc tính đó. Sau khi kiểm tra, nếu không có thuộc tính nào có thể nhượng bộ thêm, agent mua sẽ gửi thông điệp “fail” và chuyển sang trạng thái kết thúc (thất bại). Ngược lại, nếu có thuộc tính còn có thể nhượng bộ thêm, agent mua sẽ chọn ra một thuộc tính để nhượng bộ sao cho giá trị lợi ích của mình bị giảm đi là nhỏ nhất. Giá trị lợi ích bị mất được ước lượng dựa trên độ thoả mãn bị giảm đi a ivà độ ưu tiên u i của thuộc tính đó. Hàm tính giá trị lợi ích bị mất được chọn thoả mãn điều kiện của định nghĩa 3.4 và có thể sử dụng hàm L(u,a) ua . Khi đó, agent mua sẽ tìm xem thuộc tính A i nào cho giá trị l i nhỏ nhất. Giá trị thuộc tính ấy sẽ được nhượng bộ thêm một mức và agent mua chuyển sang trạng thái yêu cầu để gửi đi. Trong trường hợp có nhiều hơn một thuộc tính cùng đạt giá trị nhỏ nhất, agent mua sẽ chọn ngẫu nhiên một trong số các thuộc tính này để nhượng bộ.
- CHƯƠNG 2: TƯƠNG TÁC TRONG HỆ ĐA AGENT 52 Như vậy, agent mua có thể có hai trạng thái kết thúc là thành công hoặc thất bại, việc thành công hay thất bại đều do bản thân agent này quyết định. Điều này là phù hợp với thực tế khi quá trình thương lượng kết thúc là do người mua quyết định mua hoặc không. 2.4 Kết luận Chương này đã trình bày một cách khái quát về tương tác trong hệ đa agent, ngôn ngữ truyền thông dùng trong tương tác và một số mô hình tương tác. Các kiến trúc hệ đa agent với agent trung gian đã được nghiên cứu và áp dụng rộng rãi trong phát triển các hệ dịch vụ thương mại điện tử. Cho đến nay đã có nhiều mô hình thương lượng được đưa ra, mô hình thương lượng song phương dựa trên ràng buộc mờ đã được trình bày nhằm áp dụng cho phát triển hệ dịch vụ du lịch TraNeS sẽ được trình bày trong Chương 5.
- CHƯƠNG 3: ONTOLOGY TRONG HỆ ĐA AGENT 53 CHƯƠNG 3 ONTOLOGY TRONG HỆ ĐA AGENT Khái niệm ontology Biểu diễn ontology Phương pháp luận xây dựng ontology Ontology là một thuật ngữ trong triết học nhằm mô tả bản chất của sự tồn tại và đã được sử dụng rộng rãi trong lĩnh vực trí tuệ nhân tạo. Trong hệ đa agent, ontology biểu diễn thông tin và tri thức về miền quan tâm của các agent nhằm hỗ trợ tương tác. Mỗi ontology là một cấu trúc phân lớp các khái niệm (concepts), các thuật ngữ (term) và các mối quan hệ (relations) giữa các khái niệm, thuật ngữ đó. Thông qua ontology, các agent sẽ hiểu được nội dung các thông điệp truyền thông mà nó nhận được trong quá trình tương tác. Nội dung chương này nhằm trình bày khái niệm ontology, vấn đề biểu diễn ontology, vai trò của ontology trong tương tác đa agent và phương pháp luận tổng quát để xây dựng ontology. 53
- CHƯƠNG 3: ONTOLOGY TRONG HỆ ĐA AGENT 54 3.1 Khái niệm Ontology 3.1.1 Khái niệm Ontology là một thuật ngữ của triết học đã được sử dụng một cách rộng rãi trong lĩnh vực trí tuệ nhân tạo và đã có nhiều định nghĩa khác nhau về ontology ([1], [4], [15], [17], [20], [36]), trong đó định nghĩa của T. Gruber là được chấp nhận rộng rãi nhất. Theo T. Gruber ([15]), Ontology là một đặc tả hình thức về khái niệm. Các yêu cầu cho biểu diễn ontology là: Các khái niệm được dùng trong ontology và các ràng buộc giữa các khái niệm đó phải được định nghĩa một cách rõ ràng. Ontology phải là dạng thông tin sao cho máy có thể hiểu được. Thông tin biểu diễn trong ontology phải có tính phổ quát nghĩa là thông tin đó không chỉ cho một thành phần mà cần được chấp nhận bởi một nhóm các thành phần khác nhau. Có thể nói, ontology xác định tập các thuật ngữ dùng để mô tả và biểu diễn các khái niệm dựa trên mối quan hệ qua lại (hoặc ràng buộc) giữa các khái niệm đó. Các khái niệm trong ontology giúp cho việc dùng chung và chia sẻ tri thức giữa hai miền tri thức khác nhau. Khi sử dụng trong hệ đa agent, ontology là một cấu trúc ngữ nghĩa được tham chiếu trong quá trình truyền thông giữa các agent, giúp các agent, với các miền tri thức quan tâm khác nhau, có thể hiểu nhau trong quá trình trao đổi (thông qua việc hiểu các message mà nó nhận được). Để minh hoạ cho định nghĩa trên, ta xem xét ví dụ trong Hình 4.1. Các khái niệm như UserRequest, HotelRequest, TrainRequest được biểu diễn dưới dạng các nút trong một đồ thị có hướng. Mỗi cạnh của đồ thị đều có nhãn biểu diễn mối quan hệ giữa các khái niệm trong đồ thị. Ở đây ta có ba mối quan hệ là SubClassOf (khái niệm này là lớp con của khái niệm kia), InstanceOf (khái niệm này là thể hiện của khái niệm kia) và HasA (khái niệm này có một thuộc tính là khái niệm kia).
- CHƯƠNG 3: ONTOLOGY TRONG HỆ ĐA AGENT 55 UserRequest SubClassOf SubClassOf HotelRequest TrainRequest HasA HasA HasA HasA HasA Distance Internet Position HasA Timelost HasA StarNumber RoomCost TicketPrice InstanceOf InstanceOf Cost Hình 3.1: Ví dụ về ontology 3.1.2 Ontology và cơ sở tri thức Ontology biểu diễn tri thức của các agent chứ không phải về dữ liệu của một miền nào đó. Nó cung cấp tập các khái niệm biểu diễn tri thức trong miền quan tâm của các agent. Các agent sẽ thông qua ontology để hiểu nhau trong quá trình trao đổi, tương tác. Giữa ontology và cơ sở tri thức cũng có sự khác biệt ở vai trò của việc biểu diễn tri thức. Các đặc điểm thể hiện sự khác biệt này bao gồm: Ontology hướng tới việc mô tả tri thức như xã hội con người. Trong khi cơ sở tri thức hướng tới việc đặc tả tri thức cho một lĩnh vực cụ thể nào đó mà hệ thống cần giải quyết. Ontology liên quan đến tri thức miền tĩnh. Cơ sở tri thức biểu diễn các thông thông tin có thể bị thay đổi trong quá trình suy luận. Do đó, các luật và các cơ chế suy luận là thành phần rất quan trọng của cơ sở tri thức. Tri thức biểu diễn trong ontology là không đổi trong quá trình suy luận. Ontology biểu diễn các khái niệm như các hành động, các quá trình, các tài nguyên, các khái niệm đó không bị thay đổi khi có suy luận. Trong khi tri thức biểu diễn trong cơ sở tri thức là các hoạt động được thực hiện trong một hệ riêng biệt, các tài nguyên dùng để tạo nên các sản phẩm cụ thể nào đó. Những tri thức như vậy sẽ bị thay đổi trong quá trình hoạt động của hệ thống (khi có suy luận). Tri thức trong ontology hướng tới việc sử dụng lại và dùng chung trong các trình ứng dụng.
- CHƯƠNG 3: ONTOLOGY TRONG HỆ ĐA AGENT 56 Mặc dù ontology hướng tới việc miêu tả các tri thức có tính chất tĩnh nhưng nó vẫn phụ thuộc chặt chẽ vào trình ứng dụng. Nếu hai trình ứng dụng cùng chung một miền tri thức nhưng nhiệm vụ lại khác nhau thì biểu diễn ontology trong miền đó cho mỗi ứng dụng là khác nhau. Điểm này khác với cơ sở tri thức vì trong cơ sở tri thức, tri thức biểu diễn một miền xác định là nhất quán. Trong một hệ thống gồm tập hợp nhiều agent, mỗi agent thường có cơ sở tri thức riêng của mình và hệ thống cũng có thể dùng nhiều ontology. Xét về mối quan hệ, ontology mô tả các khái niệm để từ đó mỗi agent (qua tương tác) cập nhật tri thức vào trong cơ sở tri thức của mình. Tuy nhiên, mục đích chính khi xây dựng ontology trong hệ đa agent là giúp cho quá trình tương tác và truyền thông giữa các agent. 3.1.3 Phân loại ontology Ontology có thể được phân loại dựa trên phương pháp hình thành khái niệm. Theo H. Beck et al ([1]), có các kiểu ontology như sau: Ontology biểu diễn (Representation ontologies hay còn gọi là meta ontologies). Kiểu ontology này nhằm khái niệm hoá và biểu diễn các tri thức theo kiểu hình thức. Ontology kiểu này định nghĩa các khái niệm như là các lớp, các mối quan hệ, các hàm hay các tiên đề được định danh (named-axiom). Ontology chung (General ontology) hay còn gọi là ontology mức cao (upper ontology). Kiểu ontology này nhằm phân loại một tập các thực thể tồn tại trong thế giới vật chất. Nó thường biểu diễn các khái niệm chung, không phụ thuộc vào vấn đề hay miền cụ thể nào được mô tả trong ontology đó. Tri thức định nghĩa trong kiểu ontology này thường là sự vật (thing), sự kiện (event), thời gian (time), không gian (space) hoặc các khái niệm chung khác. Ontology miền (Domain ontologies). Tri thức được định nghĩa trong kiểu ontology này là tri thức xác định một miền nào đó. Từ vựng, khái niệm được mô tả trong kiểu ontology này có mối quan hệ gần gũi với các miền tri thức tổng quát, ví dụ như hàng không, y tế Ontology ứng dụng (Application ontology). Mô tả các phần tri thức phụ thuộc vào một miền tri thức riêng biệt cũng như nhiệm vụ cụ thể nào đó. Một ontology ứng dụng thường biểu diễn các khái niệm liên quan trực tiếp đến việc giải quyết bài toán. Tuy được phân thành nhiều loại, nhưng thường thì ontology của một hệ thống bao gồm nhiều kiểu ontology chứ không chỉ có một kiểu ontology nhất định nào đó. Ví dụ, trong