Nhiều vấn đề đã được đưa ra xem xét như mô hình role, quan hệ giữa các role, thiết kế dựa trên role, gán role cho các agent…Có rất nhiều mô hình biểu diễn role trong hệ đa agent mở đã đư
Trang 1Nguyễn Mạnh Sơn
HỆ ĐA AGENT MỞ DỰA TRÊN MÔ HÌNH ROLE VÀ TỔ CHỨC
LUẬN VĂN THẠC SĨ
Hà Nội - 2009
Trang 2Nguyễn Mạnh Sơn
HỆ ĐA AGENT MỞ DỰA TRÊN MÔ HÌNH ROLE VÀ TỔ CHỨC
Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm
Trang 3MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
MỤC LỤC iii
DANH MỤC BẢNG BIỂU v
DANH MỤC HÌNH VẼ vi
KÝ HIỆU VIẾT TẮT vii
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐA AGENT MỞ 3
1.1 Hệ đa agent mở 3
1.1.1 Hệ đa agent và Hệ đa agent mở 3
1.1.2 Các khái niệm cơ bản trong hệ đa agent mở 5
1.2 Vấn đề phát triển hệ đa agent 6
1.2.1 Phương pháp luận phát triển hệ đa agent đóng 6
1.2.2 Phương pháp luận phát triển hệ đa agent mở 9
1.2.3 Phương pháp luận O-MaSE 11
1.3 Mối quan hệ giữa role và mô hình tổ chức trong hệ đa agent mở 14
1.3.1 Vai trò của role trong thiết kế hệ đa agent mở 14
1.3.2 Role trong các mô hình tổ chức của hệ đa agent mở 15
1.4 Kết chương 19
CHƯƠNG 2: MÔ HÌNH ROLE TRONG HỆ ĐA AGENT MỞ 20
2.1 Vấn đề xây dựng mô hình biểu diễn role 20
2.2 Mô hình biểu diễn role trong BRAIN Framework 24
2.2.1 Vài nét lịch sử 24
2.2.2 Mô hình role 25
2.2.3 Biểu diễn role bằng XML 26
2.3 Đại số quan hệ giữa các role 28
2.3.1 Quan hệ Bằng nhau: 28
2.3.2 Quan hệ kế thừa 28
Trang 42.3.3 Quan hệ loại trừ 29
2.3.4 Quan hệ Yêu cầu 31
2.3.5 Quan hệ thêm vào 32
2.3.6 Quan hệ trộn 33
2.3.7 Quan hệ lãnh đạo 33
2.4 So sánh với các nghiên cứu liên quan 34
2.5 Kết chương 34
CHƯƠNG 3: KỸ THUẬT GÁN ROLE TRONG HỆ ĐA AGENT MỞ 35
3.1 Vấn đề xây dựng kỹ thuật gán role cho hệ đa agent mở 35
3.2 Mô hình tổ chức trong thương mại điện tử 37
3.3 Thuật toán ARA 38
3.4 So sánh các nghiên cứu liên quan 41
3.5 Kết chương 41
CHƯƠNG 4: THỬ NGHIỆM HỆ THỐNG ĐA ĐẤU GIÁ 42
4.1 Phân tích yêu cầu hệ thống 42
4.1.1 Mô tả hệ thống 42
4.1.2 Xây dựng mô hình goal của hệ thống 44
4.2 Xây dựng thư viện role 45
4.2.1 Xác định các role 45
4.2.2 Quan hệ giữa các role 47
4.3 Thiết kế hệ thống 49
4.3.1 Mô hình lớp agent 49
4.3.2 Thiết kế phân tầng hệ thống sử dụng JADE 51
4.5 Kết quả cài đặt thử nghiệm 53
4.6 Kết chương 62
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC 66
Trang 5DANH MỤC BẢNG BIỂU
Bảng 1.1: So sánh các phương pháp luận cho hệ đa agent mở 15
Bảng 2.1: Các role trong hệ thống đấu giá nhiều sản phẩm 24
Bảng 2.2: Biểu diễn role English bidder 26
Bảng 2.3: Ví dụ về Quan hệ kế thừa giữa các role 29
Bảng 2.4: Ví dụ về quan hệ yêu cầu giữa các role 32
Bảng 4.1: Các role trong hệ thống đa đấu giá 46
Bảng 4.2: Các role trong hệ thống đa đấu giá mô tả theo bộ ba <Q, C, B> 47
Bảng 4.3: Quan hệ kế thừa giữa role Bidder và English Bidder 48
Bảng 4.4: Quan hệ kế thừa giữa role Auctioner và English Auctioner 48
Bảng 4.5: Quan hệ yêu cầu giữa các role Manager và Notifier 49
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1: Các bước phát triển của Gaia 8
Hình 1.2: Mô hình OMACS 11
Hình 1.3: Các bước phát triển hệ đa agent mở theo O-MaSE 13
Hình 2.1: Tương tác giữa các role trong BRAIN 22
Hình 2.2: Biểu diễn role bidder bằng XML trong BRAIN Framework 25
Hình 2.3: Biểu diễn role bidder bằng XML 27
Hình 2.4: Ví dụ về quan hệ loại trừ giữa các role 31
Hình 3.1: Thuật toán gán role cho agent 40
Hình 4.1: Hệ thống đa đấu giá 43
Hình 4.2: Sơ đồ goal của hệ thống đa đấu giá 45
Hình 4.3: Mô hình các lớp agent trong hệ thống đa đấu giá 50
Hình 4.4: Mô hình kiến trúc của JADE 51
Hình 4.5: Thiết kế phân tầng hệ thống dựa trên JADE 52
Hình 4.6: Khởi động Manager Agent 54
Hình 4.7: Manager Agent đăng ký và nhận role Manager 55
Hình 4.8: Khởi động Auctioner Agent 56
Hình 4.9: Đăng ký và gán role cho Auctioner Agent 57
Hình 4.10: Auctioner Agent chờ trả giá từ phía Bidder Agent 57
Hình 4.11: Khởi động Bidder Agent 58
Hình 4.12: Gán role cho Bidder Agent 59
Hình 4.13: Khởi động nhiều Bidder Agent 59
Hình 4.14: Gán role cho nhiều Bidder Agent 60
Hình 4.15: Trả giá trong phiên đấu giá kiểu Anh 61
Hình 4.16: Auctioner đếm thời gian khi không có Bidder nào trả giá cao hơn 61
Hình 4.17: Kết thúc phiên đấu giá 62
Trang 7KÝ HIỆU VIẾT TẮT
AMS Agent Management System
DF Directory Facilitator
DL Description Language
FIPA Foundation for Intelligent Physical Agents
GaiaEXOA Gaia Extended with Organisation Abstraction
GUI Graphics User Interface
ROADMAP Role Oriented Analysis and Design for Multi-Agent Programming
UML Unified Modelling Language
XML eXtensible Markup Language
Trang 8MỞ ĐẦU
Sự phát triển mạnh mẽ của môi trường Internet và các ứng dụng trên Internet
đã nảy sinh các yêu cầu ngày càng phức tạp và đa dạng hơn về tính mở và tính phân tán cho các hệ thống thông tin nói chung Các hệ thống tính toán phân tán như web ngữ nghĩa (Semantic web), tính toán lưới (Grid computing), tính toán khắp nơi (ubiquitous computing), P2P (Peer to Peer), mạng xã hội, còn được gọi là
là các hệ tự trị phân tán – mở, hệ thông minh và phân tán hay hệ đa agent mở đang rất được quan tâm nghiên cứu và phát triển [16] Nếu xét trên cấu trúc của hệ thống thì một trong những đặc trưng quan trọng nhất của các hệ thống này là bao gồm các thành phần phần mềm tự chủ, có mục đích đã được thiết kế riêng và có thể tự do gia nhập hay rời khỏi hệ thống
Có rất nhiều vấn đề cần quan tâm khi nghiên cứu phát triển hệ đa agent mở Trong đó, vấn đề thiết kế hệ đa agent mở dựa trên tổ chức xã hội với role đã thu hút được nhiều quan tâm nghiên cứu ([1 25]) Role có thể hiểu là một vai trò xác định cho phép agent đảm nhiệm nó hướng tới việc thực hiện một số chức năng nào
đó trong hệ thống Trong hệ đa agent đóng, role được biểu diễn như một nhóm các tác vụ (task) cố định và các trách nhiệm được xác định trước Trong hệ đa agent
mở, role có thể được gán và thay đổi trong quá trình tương tác giữa các agent Việc một agent đảm nhận hay không đảm nhận một role là dựa trên khả năng và mục tiêu của agent đó trong quá trình thực thi của hệ thống
Nhiều vấn đề đã được đưa ra xem xét như mô hình role, quan hệ giữa các role, thiết kế dựa trên role, gán role cho các agent…Có rất nhiều mô hình biểu diễn role trong hệ đa agent mở đã được đưa ra Mỗi mô hình biểu diễn role có những quan điểm khác nhau về kiểu tổ chức đa agent, và role; đưa ra các cách thức biểu diễn role khác nhau và có những mô tả khác nhau về quan hệ giữa các role Tương tự như vậy, các cách tiếp cận của các nhóm nghiên cứu khác nhau đã đưa ra những
kỹ thuật gán role rất khác nhau nhưng đều có một điểm chung là: kỹ thuật gán role phụ thuộc vào mô hình tổ chức tương ứng trong hệ thống đó
Mục tiêu của luận văn là tìm hiểu tổng quan về hệ đa agent mở và phát triển
hệ đa agent mở, các cách tiếp cận mô hình role và gán role trong hệ đa agent mở
Trang 9Sau đó, luận văn sẽ phát triển một mô hình role và đại số tương tác trên role dựa trên mô tả role đã trong BRAIN Framework của nhóm nghiên cứu Cabri et al ([2 6]) Một thuật toán gán role cho agent trong hệ đa agent mở cũng được đưa ra
và thử nghiệm với hệ thống đa đấu giá
Nội dung luận văn được chia thành 4 chương:
Chương 1: Tổng quan về hệ đa agent mở Chương này sẽ giới thiệu tổng
quan về hệ đa agent đóng và mở, các khái niệm và đặc trưng cơ bản của hệ
đa agent mở Nội dung chương cũng đề cập đến các cách tiếp cận phát triển hệ đa agent mở, vấn để role và mô hình tổ chức trong hệ đa agent mở
để làm cơ sở cho các chương tiếp theo
Chương 2: Mô hình role trong hệ đa agent mở Chương này khái quát
các cách tiếp cận mô hình hóa role, trình bày chi tiết mô hình role với các thành phần <Q, C, B> và biểu diễn sử dụng XML Dựa trên mô hình biểu diễn này, luận văn sẽ xây dựng đại số quan hệ trên tập role đó
Chương 3: Kỹ thuật gán role trong hệ đa agent mở Chương này khái
quát các cách tiếp cận gán role cho agent trong hệ đa agent mở, sau đó đề xuất một thuật toán gán role áp dụng cho mô hình tổ chức có agent lãnh đạo
Chương 4: Thử nghiệm hệ thống đa đấu giá Chương này giới thiệu bài
toán xây dựng hệ thống đa đấu giá trong thương mại điện tử, trình bày các bước phân tích thiết kế hệ thống trong đó áp dụng mô hình biểu diễn và thuật toán gán role đã xây dựng trong các chương trước Cuối chương là một số kết quả cài đặt, thử nghiệm
Cuối cùng là Kết luận và Tài liệu tham khảo Phần phụ lục sẽ giới thiệu một
số phần chính trong chương trình thử nghiệm
Trang 10CHƯƠNG 1 TỔNG QUAN VỀ HỆ ĐA AGENT MỞ
Chương này sẽ trình bày tổng quan về hệ đa agent mở, các khái niệm trong hệ
đa agent mở Vấn đề phát triển hệ đa agent mở cũng sẽ được xem xét Phần cuối chương 1, luận văn sẽ trình bày khái quát về role và tổ chức trong hệ đa agent mở làm cơ sở cho nội dung của các chương tiếp theo
1.1 Hệ đa agent mở
1.1.1 Hệ đa agent và Hệ đa agent mở
Sự phát triển mạnh mẽ của Internet và các hệ thống trên nền Internet đã tạo nên các hệ thống tính toán phân tán như web ngữ nghĩa (Semantic web), tính toán lưới (Grid computing), tính toán khắp nơi (ubiquitous computing), P2P (Peer to Peer), mạng xã hội Các hệ thống này được gọi là là các hệ tự trị phân tán – mở hay còn gọi là hệ thông minh và phân tán Đặc trưng quan trọng của các hệ thống này là bao gồm các thành phần phần mềm tự chủ, có mục đích đã được thiết kế riêng và có thể tự do gia nhập hay rời khỏi hệ thống ([16])
Trang 11Agent và công nghệ Agent đã được quan tâm nghiên cứu từ nhiều năm trở lại đây, theo đó agent được hiểu 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ế Với các đặc trưng cơ bản như: tính tự chủ, tính chủ động, khả năng phản ứng và khả năng
xã hội, agent được xem là cách tiếp cận phù hợp để xây dựng các hệ thống mở và phân tán
Hệ đa agent có thể được hiểu 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
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 như:các bài toán vượt quá khả năng của một agent đơn, 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), các bài toán mà thông tin được thu thập từ nhiều nguồn khác nhau, các bài toán trong đó 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
Hệ đa agent như mô tả trên được xem là hệ đa agent đóng, tức là cấu trúc hệ thống không thay đổi trong quá trình tương tác Hành vi của các agent được thiết
kế từ đầu và không thay đổi trong quá trình hoạt động Tổ chức của agent cũng là
tổ chức cố định Với các hệ thống thông minh phân tán, hệ đa agent đóng tỏ ra không phù hợp Vì vậy, khái niệm hệ đa agent mở được đưa ra
Hệ đa agent mở được hiểu là hệ đa agent trong đó các agent có thể tự do gia nhập hay rời khỏi hệ thống và có khả năng tự động thay đổi vai trò trong tương tác
để phù hợp với môi trường
Các đặc trưng của hệ đa agent mở được xem là tương đối phức tạp và dựa trên
mô hình hệ thống của mỗi cách tiếp cận Tuy nhiên, có thể tóm lược các đặc trưng
cơ bản bao gồm: ([9], [10], [24], [20], ):
Hệ đa agent mở có cấu trúc tổ chức động và phức tạp Các agent có thể tham gia hoặc rời khỏi nhóm hoặc tổ chức Các nhóm và tổ chức này tương tác để tạo nên tổ chức mức cao hơn
Trang 12 Hệ đa agent mở có tính thích nghi, cấu trúc tổ chức tự động thay đổi cho phù hợp với môi trường bên ngoài
Các agent trong hệ đa agent mở có khả năng tự thay đổi role (vai trò) trong
tương tác dựa trên khả năng của agent đó Một trong những vấn đề rất
được quan tâm là xây dựng mô hình biểu diễn role role và các kỹ thuật gán role cho agent trong hệ đa agent mở
Tương tác trong hệ đa agent mở được xây dựng dựa trên các luật, các giao thức, quyền hạn và sử dụng mô hình tích hợp ontology với ontology chung của tổ chức Các luật, các giao thức cũng có thể thay đổi cho phù hợp với cấu trúc và trạng thái mới của tổ chức
1.1.2 Các khái niệm cơ bản trong hệ đa agent mở
Với các đặc trưng cơ bản đã trình bày trong phần 1.1.1, ngoài các khái niệm
đã được xem xét trong hệ đa agent đóng, trong hệ đa agent mở quan tâm đến các khái niệm sau ([9], [10], [20], [24]):
Goal (đích): tương tự như trong hệ đa agent đóng, goal trong hệ đa agent
mở mô tả một chức năng cần đạt được của hệ thống Các goal trong hệ đa agent mở được xem xét với các quan hệ phức tạp hơn trong hệ đa agent
đóng gồm AND, OR, xác định trước, tạo, hủy, kích hoạt
Role (vai trò): được định nghĩa là một thực thể có khả năng hướng tới
được một goal cụ thể hoặc hỗ trợ để đạt được goal đó Nếu như trong hệ đa agent đóng, các role được đưa ra với tính chất là cơ sở để xác định các agent thì trong hệ đa agent mở role có vai trò quyết định Mỗi role đưa ra tập các khả năng yêu cầu và tập hành vi tương ứng Vấn đề mô hình biểu diễn role và gán role là vấn đề thu hút nhiều mối quan tâm trong thời gian
Trang 13 Group (nhóm): Là tập các agent có đích giống nhau hoặc gần tương tự nhau
Organization (tổ chức): là tập hợp các agent và các nhóm agent Các agent
trong tổ chức có thể có goal rất khác nhau thậm chí trái ngược nhau nhưng
đều phải tuân theo các luật tương tác trong tổ chức đó
Domain (miền): là sự kết hợp giữa tổ chức với môi trường bên ngoài tạo nên giới hạn phạm vi quan tâm cho hệ thống
Protocol (giao thức): là các tương tác cụ thể giữa các agent hoặc quan hệ giữa các role
Capacity (khả năng) của agent: mỗi agent khi tham gia vào hệ đa agent
mở sẽ được xem xét dựa trên khả năng của agent đó đối với việc đảm nhiệm một role cụ thể Vấn đề mô hình hóa khả năng của agent cũng là
vấn đề rất được quan tâm
Plan (kế hoạch) của agent: là chuỗi hành vi của agent trong quá hệ thống cùng với các ràng buộc, các yêu cầu đồng bộ nếu có để hướng tới đích
Policy (chính sách): đặc tả các luật của các tổ chức áp dụng cho các hành
vi của các agent trong tổ chức đó
Ontology: định nghĩa các khái niệm trong miền quan tâm của tổ chức
Thông thường, ontology của hệ đa agent mở là một hệ ontology trong đó ontology chung được tích hợp từ các ontology thành phần
Dựa trên các khái niệm trên, nhiều nhóm nghiên cứu đã xây dựng các phương pháp luận xây dựng hệ đa agent mở Trong phần tiếp theo, luận văn sẽ trình bày khái quát các cách tiếp cận xây dựng hệ đa agent đóng và hệ đa agent mở
1.2 Vấn đề phát triển hệ đa agent
1.2.1 Phương pháp luận phát triển hệ đa agent đóng
a) Các cách tiếp cận xây dựng phương pháp luận
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 khác nhau Các phương pháp luận phát triển hệ đa agent đóng được xây dựng dựa trên một trong ba cách tiếp cận sau đây:
Trang 14 Cách tiếp cận dựa trên agent và công nghệ agent: cách tiếp cận này xây
dựng hệ đa agent dựa trên các khái niệm trừu tượng hóa mức xã hội như: nhóm, tổ chức, luật xã hội Tiêu biểu là các phương pháp luận Gaia, SODA,
AALAADIN
Cách tiếp cận phát triển từ hướng đối tượng: cách tiếp cận này 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á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 phương pháp luận tiêu
biểu gồm: MASSIVE, KGR, MaSE
Cách tiếp cận dựa trên công nghệ tri thức: 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 agentCá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
Mặc dù có những cách tiếp cận khác nhau và xây dựng mô hình hệ thống dựa trên các khái niệm tổ chức, goal, role, agent, tri thức nhưng các phương pháp luận cho hệ đa agent đóng đều có chung các nhược điểm:
Tổ chức agent cho hệ thống là tổ chức cố định và chỉ có một mức Các agent trong hệ thống không thể tự động tham gia hay rời khỏi tổ chức trong quá trình tương tác
Các agent không thể tự động thay đổi role (vai trò) trong quá trình tương tác Các role được gắn cho agent ngay khi agent bắt đầu hoạt động
Các giao thức và mô hình tương tác giữa các agent được thiết kế cố định dựa trên đích phải đạt được của mỗi agent
b) Một số phương pháp luận tiêu biểu cho hệ đa agent đóng
Có rất nhiều phương pháp luận cho hệ đa agent đã được xây dựng Mỗi phương pháp luận đều được áp dụng cho các hệ thống cụ thể và có các ưu điểm nhất định Một số phương pháp luận cho hệ đa agent đóng gồm:
Trang 15 AALADIN: Một phương pháp dựa trên ba khái niệm cơ bản là agent, role
và group, trong đó group là một tập các agent được coi là thành phần thực hiện nhiệm vụ nhỏ nhất Tức là nó là mức thấp nhất có thể hoàn thành được một nhiệm vụ của hệ thống Tuy nhiên, trong phương pháp này role gắn chặt với khái niệm agent nên nó sẽ gây khó khăn cho những người lập trình muốn có được sự độc lập giữa role và agent
ROPE: Role được định nghĩa là những thực thể riêng biệt và có thể được
các agent đảm nhận một cách linh động Phương pháp này tập trung nhiều vào sự cộng tác nên nó thiếu mối tương tác cạnh tranh giữa các agent
GAIA: Mô hình hệ đa agent dưới dạng các tổ chức mà ở đó các role có thể
tương tác Role được dùng nhiều trong các pha phân tích và thiết kế Role
có bốn thuộc tính cơ bản là: trách nhiệm (responsibility), quyền hạn (permission), hoạt động (activity) và giao thức (protocol) GAIA cung cấp một tập kí hiệu dựa trên tập kí hiệu FUSION để đặc tả quyền hạn của role Ngoài ra, GAIA cũng đưa ra được mô hình tương tác biểu diễn được sự phụ thuộc và mối quan hệ qua lại giữa các role trong hệ thống
Hình 1.1: Các bước phát triển của Gaia
MAS-CommonKADS: 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
PHA THIẾT
KẾ
Trang 16tượ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ư 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)
MaSE (Multiagent System Engineering) là phương pháp luận để phân tích
và thiết kế các hệ phần mềm hướng agent được phát triển bởi nhóm nghiên cứu thuộc Viện Công nghệ Hàng không Hoa Kỳ Quan điểm xây dựng của phương pháp luận này là xem agent như mức trừu tượng cao hơn của một
đối tượng: mỗi agent được xem là một đối tượng đặc biệt Quá trình phát
triển hệ đa agent theo MaSE bao gồm hai pha: pha phân tích và pha thiết kế:
Pha phân tích bao gồm các bước: Xác định Goal, Xác định các Use Case, Xây dựng Ontology và Hoàn thiện Role
Pha thiết kế bao gồm các bước: Xác định Agent, Xây dựng hội thoại, Hoàn thiện Agent và Triển khai hệ thống
Toàn bộ quá trình phân tích thiết kế hệ thống theo phương pháp luận MaSE được hỗ trợ bởi bộ công cụ agentTool trong đó mỗi bước đều được biểu diễn bởi các sơ đồ tương ứng
1.2.2 Phương pháp luận phát triển hệ đa agent mở
Do các đặc trưng riêng của hệ đa agent mở, phương pháp luận phát triển hệ đa agent mở cũng được xây dựng theo những cách tiếp cận rất khác nhau Phần lớn các phương pháp luận này đều phát triển từ các phương pháp luận phát triển hệ đa agent đóng Các hướng tiếp cận cho phương pháp luận phát triển hệ đa agent mở
sẽ được trình bày chi tiết trong chương 2 Trong phần này, chúng tôi liệt kê một số phương pháp luận cho hệ đa agent mở Các phương pháp luận ROADMAP, GaiaEXOA sẽ được trình bày chi tiết hơn trong chương 2
AGR (Agent-Role-Group): Là phương pháp phát triển từ AALADIN Dựa
trên ba khái niệm cơ bản: agent, role, group, phương pháp luận này xây dựng cấu trúc hệ thống trong đó mỗi agent đảm nhiệm một hoặc nhiều role
và chia sẻ các đặc tính chung khi tham gia vào nhóm và tổ chức AGR cũng
Trang 17đưa ra các giao thức tương tác nhưng cơ sở cho các giao thức này còn đơn giản
ROADMAP: Đây là phương pháp luận phát triển từ Gaia, bổ sung mô hình
tri thức (Knowledge Model) và mô hình môi trường (Environment Model)
để đưa ra cách nhìn rõ ràng hơn về tổ chức và các thuộc tính liên quan Các
pha chi tiết của phương pháp luận này sẽ được trình bày trong chương 2
GaiA-EXOA : Đây cũng là một phương pháp luận phát triển từ Gaia trong
đó đưa ra các đặc tả rõ ràng hơn về tổ chức và giao thức tương tác Chi tiết
về phương pháp luận này được trình bày trong chương 2
RoleEP (Role based Evolution Programming): Hỗ trợ nhiều cho việc phát
triển những ứng dụng cộng tác trong đó các agent tương tác với nhau để đạt được mục tiêu chung Phương pháp này dựa trên bốn khái niệm cơ bản là môi trường, đối tượng, agent và role Tuy nhiên, phương pháp này cũng chỉ
hỗ trợ cho duy nhất giai đoạn cài đặt trong quá trình phát triển
MOISE+: phương pháp luận này đưa ra một mô hình tổ chức và mô hình
hệ thống theo cả ba khía cạnh: cấu trúc, chức năng và deontic Các agent
được thiết kế dựa trên tập goal, mỗi agent sẽ được xây dựng một kế hoạch
(plan) và thực hiện các nhiệm vụ (mission) để hướng tới đích đó
Prometheus: là phương pháp luận theo cách tiếp cận hướng agent trong đó
các agent được thiết kế sử dụng mô hình BDI Khi áp dụng cho hệ đa agent
mở, phương pháp này tập trung vào việc mô tả role và kế hoạch cho các agent
BRAIN: Hỗ trợ tất cả các giai đoạn trong quá trình phát triển hệ thống
Phương pháp này cũng có tập kí hiệu dựa trên XML để đặc tả role và hơn nữa nó còn có cả cơ sở hạ tầng tương tác (interaction infrastructure) để giúp agent quản lý các role
O-MaSE ([9], [10], [11]): Đây là phương pháp luận phát triển từ MaSE
Với ưu điểm tương đối đơn giản và có đầy đủ các công cụ hỗ trợ, phương pháp luận này đã được áp dụng hiệu quả cho nhiều bài toán khác nhau Phương pháp luận này sẽ được lựa chọn để phát triển ứng dụng thử nghiệm trong chương 4 nên sẽ được xem xét kỹ hơn trong phần 1.2.3
Trang 181.2.3 Phương pháp luận O-MaSE
Phương pháp luận O-MaSE được xây dựng trên cơ sở mô hình OMACS, phát triển từ siêu mô hình của MaSE và đưa ra cơ sở cho phương pháp luận phát triển
hệ đa agent mở Điểm khác biệt cơ bản của mô hình này là quan điểm cho rằng: một agent có thể đảm nhận một role dựa trên năng lực yêu cầu cần phải có để đáp ứng role đó và khả năng hiện tại của agent đó Các agent sẽ tự thích nghi khả năng
để được đảm nhận role phù hợp nhằm hướng tới việc hoàn thành tập goal được yêu cầu Hình 1.2 mô tả các quan hệ cơ bản trong mô hình OMACS
Hình 1.2: Mô hình OMACS
Trong OMACS, tổ chức được định nghĩa là một bộ O = <G, R, A, C, , P, , oaf, achieves, requires, possesses> trong đó:
G: tập các goal (đích) của tổ chức
Trang 19 requires: hàm R → P(C): tập khả năng yêu cầu để đảm nhận một role
possesses: A x C → [0 1]: cho biết chất lượng của một khả năng với
một agent cụ thể
OMACS cũng định nghĩa thêm hai hàm bổ sung gồm:
capable: hàm A x R → [0 1]: cho biết một agent có thể đảm nhận một
role tốt ở mức độ nào (được tính toán từ requires và posseses)
potential: hàm A x G x R → [0 1]: cho biết một agent khi đảm nhận
một role để hướng đến một goal cụ thể thì sẽ tốt ở mức độ nào (được tính toán dựa trên capable và archieves)
Dựa trên mô hình OMACS, nhóm nghiên cứu DeLoach đã đưa ra các bước của phương pháp luận O-MaSE Đặc điểm cơ bản của O-MaSE là: kế thừa các ký hiệu, cú pháp và đặc tả quen thuộc trong hướng đối tượng như: các lớp, các quan
hệ (gộp, kế thừa, cộng hợp, phụ thuộc) và dựa trên các thành phần cơ bản và quan
hệ trong mô hình OMACS để định nghĩa các đối tượng (hoặc quan hệ) mới như: các tác nhân ngoài (external actor), các giao thức (protocol), các thông điệp (message), các kế hoạch (plan), và các đối tượng môi trường (environment objects)
Trang 20Hình 1.3: Các bước phát triển hệ đa agent mở theo O-MaSE
Hình 1.3 mô tả sơ đồ tổng quát các bước trong O-MaSE Ngoài các bước chính được mô tả như trên, O-MaSE còn định nghĩa thêm một số bước phụ, gồm:
Mô hình hóa miền (domain model): đặc tả môi trường và miền lĩnh vực
quan tâm của hệ thống Bước này, nếu có, sẽ được đặc sau bước xây dựng mô hình role và là cơ sở để xác định các lớp agent
Mô hình hóa chính sách (policy model): mô tả các ràng buộc trong hoạt
động của các agent và tương tác giữa chúng Là một bước phụ trong pha thiết kế
Mô hình năng lực (capacity model): mô tả khả năng của agent nhằm
hướng đến việc đảm nhiệm role Là một bước phụ trong pha thiết kế
Mô hình hành động (action model): mô tả chi tiết hoạt động bên trong
của agent khi đã đảm nhiệm một role cụ thể Là một bước phụ trong pha thiết kế
Role Model
Protocol Model
System Requirements
/Definition
GMoDS Goal Model
Agent Class Model
Trang 211.3 Mối quan hệ giữa role và mô hình tổ chức trong hệ đa agent mở
1.3.1 Vai trò của role trong thiết kế hệ đa agent mở
Như đã trình bày trong phần 1.1, role là một khái niệm quan trọng khi xem xét
hệ đa agent mở Có thể hiểu role là tập hợp các chuẩn mực, mô tả, quy tắc và khái niệm cho hành vi của một con người hoặc một vị trí xã hội Từ lâu, khái niệm role
đã được sử dụng trong phát triển phần mềm như một công cụ cho các hoạt động cơ bản như: mô hình hóa hệ thống, phân tích thiết kế hệ thống, mô tả tương tác, quản
lý nguồn nhân lực
Trong phát triển phần mềm hướng đối tượng với UML , role được sử dụng để xây dựng tập hành vi mà đối tượng có thể áp đặt lên đối tượng khác, hoặc là thành phần trong biểu đồ cộng tác, hoặc dùng để mô tả các lớp giao diện Tuy nhiên, role không phải là khái niệm có vai trò quyết định trong phân tích và thiết kế hướng đối tượng
Trong phát triển hệ đa agent và đặc biệt là hệ đa agent mở, nhiều nghiên cứu khẳng định role là khái niệm có vai trò quyết định ([2 25]) Theo Zambonelli
([3,4]), role được định nghĩa là tập các khả năng, hành vi mong đợi và tri thức mà agent có thể dùng đến khi cần Có thể hiểu, role cung cấp tập khả năng mà agent
có thể sử dụng trong quá trình hướng tới đích được thiết kế
Xét trên quan điểm phát triển hệ thống, trong hệ đa agent đóng, role có thể được biểu diễn như một nhóm các tác vụ (task) cố định và các trách nhiệm được xác định trước Trong hệ đa agent mở, role có thể được gán và thay đổi trong quá trình tương tác giữa các agent Việc một agent đảm nhận hay không đảm nhận một role là dựa trên khả năng và mục tiêu của agent đó trong quá trình thực thi của hệ thống
Các phương pháp luận phát triển hệ đa agent mở, đã giới thiệu trong phần 1.2.2, đều coi role là khái niệm quan trọng để tiến trình phát triển phần mềm Mỗi phương pháp có thể quan tâm ở mức độ nào đó với các khái niệm như tổ chức, goal, protocol hay cài đặt hệ thống nhưng đều rất coi trọng khái niệm role (xem Bảng so sánh 1.1)
Trang 22Bảng 1.1: So sánh các phương pháp luận cho hệ đa agent mở
Luận văn sẽ đi sâu vào hai vấn đề quan trọng khi phát triển hệ đa agent mở dựa trên role là xây dựng mô hình biểu diễn role (chương 2) và đưa ra thuật toán gán role áp dụng cho một mô hình tổ chức cụ thể (chương 3) Phần tiếp theo của chương 1 sẽ khái quát các mô hình tổ chức nói chung và quan điểm về role và gán role cho agent trong các mô hình tổ chức đó
1.3.2 Role trong các mô hình tổ chức của hệ đa agent mở
Dựa trên cấu trúc tổ chức xã hội con người, nhiều nhóm nghiên cứu khác nhau
đã đưa ra rất nhiều dạng tổ chức đa agent khác nhau Sự khác biệt giữa các dạng tổ chức này là do bản chất tương tác và vai trò của các agent tham gia trong tổ chức
đó Trong tài liệu [15], nhóm B Horling và V Lesser đã tổng kết các dạng tổ chức
đa agent Phần này sẽ trình bày vắn tắt các kiểu tổ chức này theo các đặc trưng chính và những suy nghĩ về vấn đề gán role cho các agent theo kiểu tổ chức đó
Tổ chức kiểu cây (Hierarchies)
Đặc trưng cơ bản của kiểu tổ chức cây là được xây dựng dựa trên cấu trúc phân rã của tập goal của hệ thống Các agent tham gia vào hệ thống để đảm nhận
các goal của hệ thống theo cách tiếp cận chia để trị Một đặc điểm quan trọng của kiểu tổ chức này là cố gắng giảm thiểu quan hệ “rộng rãi” giữa một agent với các
Trang 23nhiều agent khác Các agent chỉ quan hệ với các agent mức trên (node cha trong
cây) và mức dưới (node con trên cây)
Các role được gán trong cấu trúc cây hoàn toàn theo cấu trúc phân rã goal và
task trong hệ thống Mỗi agent khi tham gia hệ thống đều có một tập khả năng tương ứng với một vị trí nào đó trên cây và do đó sẽ được gán role tương ứng để hướng tới goal được yêu cầu cho node đó
Tổ chức Holarchies
Đặc trưng cơ bản của kiểu tổ chức này là hệ thống được chia thành các nhóm
có tính chất tự chủ (ở mức độ nào đó) gọi là holon Một agent có thể thuộc một
nhóm và một nhóm có thể thuộc một nhóm lớn hơn Mỗi nhóm như vậy thường gồm các agent cùng hướng đến việc thực hiện một tác vụ nào đó Có thể xem kiểu
tổ chức này là một trường hợp riêng của tổ chức kiểu cây trong đó cho phép một
số tương tác giữa các node không có quan hệ cha con trực tiếp
Gán role trong tổ chức Holarchies cũng dựa trên cấu trúc phân rã goal và task
của hệ thống Tuy nhiên, khác với cấu trúc cây, các role không thể tương ứng với một node trên cây mà cần xem xét các tương tác (ràng buộc) giữa các node Mỗi
node cũng có thể là một hoặc nhiều agent trong cùng một nhóm
Tổ chức kiểu liên minh (coalition)
Đặc trưng cơ bản của kiểu tổ chức liên minh là một tập con các agent trong hệ
thống có thể “liên minh” với nhau để hướng tới đích chung trong một thời gian Trong một liên minh, có thể có agent lãnh đạo Khi đã liên minh lại thì các liên
minh tương tác với nhau như những thực thể duy nhất Không có sự phối hợp giữa
các agent của các liên minh khác nhau
Gán role cho tổ chức kiểu liên minh có thể được quyết định bởi agent lãnh đạo (nếu có) Tại thời điểm các agent phải liên minh, agent lãnh đạo hoặc agent điều phối chung sẽ xác định và phân chia role cho các agent tham gia để hướng tới đích chung
Tổ chức kiểu đội (team)
Đặc trưng cơ bản của kiểu tổ chức đội (team) là các agent trong đội (team) có hành động riêng nhưng cùng hỗ trợ để đạt tới đích chung Các agent có thể hoạt động theo một “kế hoạch chung” xác định trước
Trang 24Gán role trong mô hình tổ chức này có hai đặc trưng cơ bản:
Mỗi agent trong đội đều có thể nhận một hoặc nhiều role để thực hiện các tác vụ phân rã từ đích chung của hệ thống
Các role có thể thay đổi tuỳ theo kế hoạch chung của đội và sự kiện từ môi trường
Tổ chức kiểu hội họp (congregation)
Đặc trưng cơ bản của tổ chức kiểu hội họp là các agent riêng lẻ phối hợp với nhau theo nhóm nhằm bổ sung cho nhau Mỗi nhóm agent theo kiểu này thường
không chỉ có một goal mà có thể có nhiều goal khác nhau Tuy nhiên, các agent này thường phải có một tập khả năng và yêu cầu cố định ban đầu tương tự nhau
Tổ chức kiểu hội họp có thể tồn tại lâu dài
Gán role trong tổ chức này sẽ có các đặc điểm:
Các hội sẽ được tạo ra và gán nhãn Mỗi agent tuỳ thuộc vào tập khả năng và yêu cầu của nó sẽ xem xét để lựa chọn hội phù hợp Role được
gán cho các agent khi agent tham gia vào hội
Các agent có thể thay đổi hội mà nó tham gia trong quá trình hướng tới goal của nó Do đó role cũng được thay đổi theo
Tổ chức kiểu xã hội (societies)
Đặc trưng cơ bản kiểu tổ chức xã hội là hệ thống được xây dựng có tính mở,
linh động Các agent có đích riêng rất khác nhau, khả năng không đồng nhất, tương tác với nhau nhằm hướng tới đích riêng của mình Kiểu tổ chức này ràng
buộc các agent bằng cách sử dụng các luật xã hội
Gán role trong tổ chức kiểu xã hội có thể rất phức tạp và thường không có
quy tắc chung cho tất cả các trường hợp Nếu có một hoặc một vài luật xã hội chi phối mọi hoạt động của tổ chức thì role cũng được gán cho agent dựa trên các luật
xã hội đó
Tổ chức kiểu liên hiệp (federation)
Đặc trưng cơ bản của kiểu liên hiệp là hệ thống có agent điều phối chung (facilitator, mediator, broker) Các agent trong liên hiệp chỉ tương tác với agent điều phối này Các liên hiệp khác nhau tương tác với nhau thông qua tương tác của
Trang 25các agent trung gian Các agent trong các liên hiệp khác nhau có thể không cần có
ngôn ngữ giao tiếp chung và tương tác, xử lý được tập trung ở agent trung gian
Role được gán cho các agent tham gia vào liên hiệp bởi agent điều phối trong liên hiệp đó Tùy thuộc vai trò của agent điều phối trong hệ thống cụ thể, các role
có thể được quản lý trực tiếp bởi agent điều phối hoặc agent điều phối chỉ là trung
gian để agent tham gia tổ chức tương tác với agent quản lý role
Tổ chức kiểu chợ (market-based)
Đặc trưng của tổ chức kiểu chợ khác với kiểu liên hiệp ở chỗ các agent trong
hệ thống là đối thủ cạnh tranh của nhau Các agent hướng tới việc đạt được lợi ích riêng, có thể trái ngược với lợi ích của các agent khác (ví dụ agent mua và agent bán) Tuy nhiên, các agent trong tương tác sẽ hướng tới cân bằng chung của toàn
bộ các agent tham gia
Gán role trong tổ chức kiểu chợ có thể sử dụng agent điều phối như trong mô
hình kiểu liên hiệp hoặc dựa trên hàm mục tiêu của mỗi agent
Tổ chức kiểu ma trận
Đặc trưng của kiểu ma trận là một agent có thể được quản lý bởi nhiều agent quản lý Các hoạt động của một agent có thể bị ảnh hưởng bới nhiều agent quản lý khác nhau Mỗi hàng trong ma trận là các agent, mỗi cột là các agent quản lý Gán role và quản lý role được thực hiện bởi các agent quản lý tại mỗi hàng
Agent quản lý nào chiếm ưu thế trong thời điểm hiện tại thì agent sẽ nhận được role từ agent quản lý đó
Tổ chức phức hợp (compound)
Đặc trưng cơ bản của kiểu tổ chức phức hợp là: kết hợp nhiều kiểu tổ chức
trong một hệ đa agent Ví dụ như: một kiểu tổ chức được dùng cho điều khiển,
một kiểu cho luồng dữ liệu …
Như vậy cũng sẽ không có kiểu gán role cố định cho mọi agent trong tổ chức dạng phức hợp Tùy thuộc vào mục đích của mỗi tổ chức con trong tổ chức chung thì các role sẽ được gán theo cách thức tương ứng với dạng của tổ chức con đó
Trang 27CHƯƠNG 2
MÔ HÌNH ROLE TRONG HỆ ĐA AGENT MỞ
Chương này khái quát các cách tiếp cận trong việc mô hình hóa role cho hệ đa agent mở và trình bày chi tiết mô hình role với bộ ba <Q, C, B> và biểu diễn với XML Dựa trên mô hình đó, luận văn xây dựng các quan hệ trên tập role và các tính chất của các quan hệ đó
2.1 Vấn đề xây dựng mô hình biểu diễn role
Khái niệm role đã được giới thiệu trong phần 1.3 Một trong những vấn đề rất được quan tâm là mô hình hóa role nhằm mô tả các chính xác yêu cầu và thiết kế
hệ thống Trong hệ đa agent đóng, role được biểu diễn như một nhóm các tác vụ (task) cố định và các trách nhiệm được xác định trước Trong hệ đa agent mở, role
có thể được gán và thay đổi trong quá trình tương tác giữa các agent Việc một agent đảm nhận hay không đảm nhận một role là dựa trên khả năng và mục tiêu của agent đó trong quá trình thực thi của hệ thống
Có rất nhiều mô hình biểu diễn role trong hệ đa agent mở đã được đưa ra Mỗi
mô hình biểu diễn role có những quan điểm khác nhau về kiểu tổ chức đa agent,
và role; đưa ra các cách thức biểu diễn role khác nhau và có những mô tả khác nhau về quan hệ giữa các role
Mô hình tổ chức của nhóm DeLoach ([9],[10],[11]) cho rằng mỗi role yêu
cầu một tập khả năng (C) Mô hình này xây dựng các hàm đánh giá:
Khả năng đảm nhiệm role bởi giá trị score [0 1]
Trang 28 Yêu cầu cần có để đảm nhiệm role (hàm requires: R, C Boolean
Quan hệ giữa các role được xây dựng dựa trên hàm related: R, R-> Boolean
Tuy nhiên, các thuộc tính cụ thể của role, các hành vi gán cho agent khi nhận role đó và các dạng quan hệ không được mô tả trong mô hình này
Mô hình của Odell ([20], [21], [22]) gắn role với khái niệm nhóm (group)
Role được định nghĩa là một tập các nhiệm vụ được chuẩn hoá cho các hành vi trong một group xác định Có thể có hai dạng quan hệ giữa các role:
Quan hệ gộp (aggregation): Các role có thể kết hợp với nhau, khi đó agent đảm nhiệm role này sẽ có tập hành vi gộp từ hai role ban đầu
Quan hệ “hiểu biết” (acquaintance) Nếu một role hiểu biết role khác
thì agent đảm nhiệm role này có thể chuyển sang đảm nhiệm role khác
bất cứ lúc nào
Biểu diễn role và thiết kế hệ thống dựa trên role trong mô hình này mở rộng
từ các khái trong UML nên rất gần gũi với các lập trình viên hướng đối tượng Tuy nhiên, cũng như trong mô hình của DeLoach, các thuộc tính cụ thể của role và các hành vi sẽ gán cho agent đảm nhiệm role không được mô tả chi tiết
Trong mô hình của H Xu và X Zhang ([23], [24]), các tác giả đưa ra cách
thức biểu diễn khái niệm role dựa trên các thành phần:
hàm beTaken (trạng thái được thực hiện - boolean)
Các goals (mục tiêu) sẽ được gắn với các role cụ thể và được thực hiện trong tập plan của role đó Một số quan hệ giữa các role được mô tả gồm: quan hệ kế thừa, quan hệ đối lập, quan hệ không tương thích Mô hình này phân biệt rõ hai
Trang 29khái niệm role và thể hiện role, tuy nhiên, ngoại trừ quan hệ kế thừa, các quan hệ
khác chưa được thể hiện rõ trong tập role của hệ thống
Nhóm nghiên cứu Cabri et al ([2 6]) biểu diễn role là một tập các khả năng
(capacities) và các hành vi mong muốn (expected behavior) Tập khả năng và
hành vi này sẽ được chuyển cho agent thực hiện role đó Hệ thống thực hiện gán role cho agent trong tương tác được gọi là BRAIN
Hình 2.1: Tương tác giữa các role trong BRAIN
Tương tác giữa các agent dựa trên role cũng được mô tả trong BRAIN dựa
trên các hành động (action) và sự kiện (event) Các role sẽ được gán trong quá
trình tương tác bằng cách sử dụng Role Loader Một trong những điểm rất quan trọng là nhóm nghiên cứu này là đã đưa ra biểu diễn role dựa trên XML ([4], [6])
và các bước gán role theo biểu diễn XML Trong [6], nhóm nghiên cứu này cũng
đã đưa ra một số thay đổi trong biểu diễn role và biểu diễn hình thức cho role trong BRAIN Framework
Ngoài các nghiên cứu biểu diễn role, nhiều nhóm cũng đi sâu nghiên cứu và đưa ra các quan điểm và thể hiện khác nhau cho quan hệ giữa các role ([12], [13],
[18], [20]) Trong đó, A Karageogos, S Thompson và N Mehandjiev ([18]) đã
đưa ra một cách biểu diễn đại số quan hệ trên tập role và mô tả tương đối đầy đủ các dạng quan hệ trên tập role gồm: quan hệ bằng nhau, quan hệ chứa, quan hệ loại trừ … Mặc dù đưa ra khá đầy đủ các dạng quan hệ nhưng mô hình biểu diễn role nhóm này sử dụng lại không biểu diễn chi tiết các thành phần của một role nên các quan hệ và đại số quan hệ được thể hiện chưa rõ ràng
Phần tiếp theo của chương 2 sẽ áp dụng mô hình biểu diễn role của nhóm Zambonelli trong BRAIN để thể hiện đại số quan hệ trên tập role (với đầy đủ các
HỆ THỐNG TƯƠNG TÁC Hành động
Sự kiện
Trang 30dạng quan hệ có thể có) Phần 2.2 sẽ trình bày mô hình biểu diễn role trong BRAIN Framework với XML Phần 2.3 đưa ra các quan hệ trên tập role đã được định nghĩa trong phần 2.2 Phần 2.4 là so sánh với các kết quả nghiên cứu liên quan
Để mô tả định nghĩa role và các quan hệ, chúng tôi xem xét ví dụ trên hệ thống đấu giá nhiều sản phẩm ([1]) Quá trình phân tích, thiết kế và cài đặt thử
nghiệm hệ thống này sẽ được trình bày chi tiết trong chương 4 Tuy nhiên để ví dụ cho mô hình và quan hệ trong chương 2, có thể mô tả ngắn gọn về yêu cầu hệ thống như sau:
Các agent mua được sinh ra đại diện cho người mua để mua sản phẩm yêu cầu theo một hoặc nhiều hình thức đấu giá
Một agent mua có thể đảm nhiệm nhiều role tương ứng với các kiểu đấu giá khác nhau
Người bán hàng cũng thể tham gia bán nhiều mặt hàng theo nhiều kiểu đấu giá khác nhau
Các hình thức đấu giá tiêu biểu được xem xét là: đấu giá kiểu Anh (đấu giá tăng), đấu giá Hà Lan (đấu giá giảm trên nhiều sản phẩm), đấu giá kín (kiểu 1 hoặc kiểu 2 - người thắng cuộc phải trả giá bằng người trả cao nhất hoặc cao thứ 2) và đấu giá ngược (hay đấu thầu)
Hoạt động chung của hệ thống được điểu phối bởi một agent quản lý, agent này chịu trách nhiệm quản lý các role và gán role cho các agent tham gia Các role trong hệ thống này được tổng kết trong Bảng 2.1
Trang 31Manager Quản lý chung
English Auctioner Bán theo Đấu giá
kiểu Anh
English Bidder Mua theo Đấu
giá kiểu Anh
Dutch Auctioner Bán theo Đấu giá
kiểu Hà Lan
Dutch Bidder Mua theo Đấu
giá kiểu Hà Lan
mô tả như trong Hình 2.1 Ngoài ra, nhóm đã đưa ra phương pháp biểu diễn role
sử dụng XML (XRole) Một biểu diễn diễn XML ví dụ cho role Bidder được biểu
diễn như trong Hình 2.2
Tuy nhiên, trong nghiên cứu gần đây ([4], [5], [6]), nhóm nghiên cứu này đã
đi sâu phân tích một số hạn chế của mô hình biểu diễn role chỉ dựa trên tập khả năng và hành vi mong muốn Đó là:
Mô hình này chưa cho phép biểu diễn sự thay đổi có tính liên tục của một agent trước, trong và sau khi gán role
Trước khi nhận được role mới, agent sẽ không có khả năng và các hành
vi cho phép của role đó Điều này là không thực tế vì quá trình thay đổi role thường diễn ra theo từng bước
Trang 32Để giải quyết vấn đề này, trong [6] đã đưa ra thêm một khái niệm mới là tập yêu cầu khởi đầu (starting requirements) của role Đây là tập các yêu cầu mà một
agent cần đạt được (đầy đủ) trước khi đảm nhiệm role
Hình 2.2: Biểu diễn role bidder bằng XML trong BRAIN Framework
Ngữ cảnh tương tác giữa các role r i và r j được định nghĩa là:
Trang 33gồm tập các liên kết có thể có giữa hai role r i và r j như: ràng buộc hay tính không tương thích
Gán role: Gán một role cho một agent được định nghĩa là một bộ p = (ri , ) với ý nghĩa là agent được đảm nhiệm role r i R
Xét trong hệ thống đấu giá nhiều sản phẩm, role English Bidder (người mua theo đấu giá kiểu Anh) có thể được biểu diễn bởi các tập <Q, C, B> như sau:
Tên role English Bidder
Q has an account, know English auction rule
C join an English auction, re-bid
B bid, re-bid, payment
Bảng 2.2: Biểu diễn role English bidder
2.2.3 Biểu diễn role bằng XML
Với biểu diễn role theo ba tập (Q, C, B) như trong Định nghĩa 1, chúng ta có thể biểu diễn role English Bidder theo dạng XML như trong Hình 2.3 Trong biểu
diễn này:
Thẻ require mô tả tập yêu cầu khởi đầu cho role
Thẻ capacity mô tả tập khả năng gắn thêm cho agent khi đảm nhiệm
role
Thẻ behavior mô tả tập hành vi cần thực hiện của agent
Trang 34Hình 2.3: Biểu diễn role bidder bằng XML
<?xml version="1.0" encoding="UTF-8"?>
<role xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Trang 352.3 Đại số quan hệ giữa các role
Phần này sẽ trình bày các quan hệ giữa các role dựa trên phân tích các thành phần của role đã định nghĩa trong phần 2.2
Quan hệ này là tập con của R R và thoả mãn các tính chất:
(i) Tính chất phản xạ r R: ( r extend r) (một role có thể được xem là kế thừa từ chính nó)
(ii) Tính chất bắc cầu (r 1 , r 2 , r 3 ) R: ((r 1 extend r 2 ) (r 2 extend r 3 ) (r 1 extend r 3 ) )
Quan hệ kế thừa xét trên các tập r 1 = <Q 1 , C 1 , B 1 > và r 2 = <Q 2 , C 2 , B 2 >:
r 1 extend r 2 : Q2 Q1
C2 C1
B2 B1
Trang 36Có thể hiểu role r1 được mở rộng từ role r2 bằng cách bổ sung một số yêu cầu khởi đầu, khả năng và hành vi
Xét trong hệ thống đấu giá nhiều sản phẩm, các role English Bidder, Dutch Bidder là kế thừa từ role Bidder, các role English Auctioner, Dutch Auctioner
là kế thừa từ Auctioner Trong trường hợp này, các role Bidder và Auctioner là trừu tượng Khi một agent tham gia hệ thống với vai trò người mua thì sẽ được gán role Bidder, tuy nhiên, tùy thuộc vào sản phẩm và phiên đấu giá cụ thể thì agent
đó sẽ nhận được role tương ứng (English Bidder, Dutch Bidder ) và khi đó mới thực sự có khả năng thực hiện các hành vi như trả giá, thay đổi giá Xem xét quan hệ kế thừa giữa các role thể hiện qua các tập <Q, C, B> trong Bảng 2.3
Q has an account has an account, know English auction rule
C Re-bid Join an English auction, re-bid
B Bid, rebid, payment Bid, re-bid, payment
Bảng 2.3: Ví dụ về Quan hệ kế thừa giữa các role
2.3.3 Quan hệ loại trừ
Quan hệ loại trừ giữa hai role r 1 và r 2 cho biết hai role này không thể gán cho một agent tại cùng một thời điểm Ký hiệu r 1 not r 2 Quan hệ này là tập con của R R
và thoả mãn các tính chất:
(i) Tính chất không phản xạ r R ((r not r))
(ii) Tính chất đối xứng: (r 1 , r 2 ) R: (r 1 not r 2 r 2 not r 1 )
Quan hệ loại trừ biểu diễn trên r 1 = <Q 1 , C 1 , B 1 > và r 2 = <Q 2 , C 2 , B 2 >:
Trang 37định nghĩa role Ở đây chỉ xem xét quan hệ loại trừ trên định nghĩa role với <Q, C,
B> và XML
Với biểu diễn role trong XML, ta cần thêm thẻ Incompatitive cho biết các role
không tương thích với role đang xét Hình 4 biểu diễn hai role: Manager và
English Bidder, qua đó thể hiện quan hệ loại trừ
<incompatitive> bidder </incompatitive>
<incompatitive> auctioner </incompatitive>
Trang 38<incompatitive> manager </incompatitive>
<incompatitive> notifier </incompatitive>
…
</role>
</role>
Hình 2.4: Ví dụ về quan hệ loại trừ giữa các role
2.3.4 Quan hệ Yêu cầu
Quan hệ yêu cầu giữa hai role cho biết khi một agent được gán role này thì cũng phải nhận được role kia Ký hiệu r 1 and r 2
Quan hệ này là tập con của R R và thoả mãn các tính chất:
Trong hệ thống đấu giá nhiều sản phẩm, role Manager và Notifier là hai role
có quan hệ yêu cầu (agent đã đảm nhiệm role Manager thì cũng đảm nhiệm luôn role Notifier) Bảng 4 mô tả hai role này theo các tập <Q, C, B>
Trang 39Tên role Manager Notifier
Bảng 2.4: Ví dụ về quan hệ yêu cầu giữa các role
2.3.5 Quan hệ thêm vào
Quan hệ thêm vào giữa hai role cho biết hai role này có thể cùng được gán cho một agent Ký hiệu r 1 add r 2 Tập hành vi của hai role không liên quan gì đến nhau
Quan hệ này là tập con của R R và thoả mãn các tính chất:
(i) Tính chất phản xạ r R(r add r)
(ii) Tính chất đối xứng: (r 1 , r 2 ) R: (r 1 add r 2 r 2 add r 1 )
Quan hệ này được biểu diễn trên r 1 = <Q 1 , C 1 , B 1 > và r 2 = <Q 2 , C 2 , B 2 >:
r 1 add r 2 : B1 B2 =
r1 Incompatitive(r2)
Có thể hiểu, nếu role r1 và r2 không có quan hệ loại trừ thì (r1 không thuộc tập các role không tương thích của r2 và ngược lại) và hai role này có tập hành vi hoàn toàn khác nhau thì hai role này có thể gán cho cùng một agent và khi đó agent sẽ
có tập hành vi là cộng hợp của hai tập hành vi ban đầu
Trong hệ đấu giá nhiều sản phẩm, role Bidder và Auctioner có quan hệ thêm
vào (nếu xét trên các sản phẩm khác nhau) Các role con thuộc các kiểu này cũng
có quan hệ thêm vào (một người mua có thể cùng một lúc tham gia nhiều phiên đấu giá hoặc cũng có thể vừa đóng vai trò người mua, vừa đóng vai trò người bán (nhưng phải trong các phiên đấu giá khác nhau))