Tải bản đầy đủ (.pdf) (118 trang)

Mô hình tương tác dựa trên role trong hệ đa agent

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.91 MB, 118 trang )




ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ





Nguyễn Thị Thanh Huyền





MÔ HÌNH TƯƠNG TÁC DỰA TRÊN ROLE
TRONG HỆ ĐA AGENT











LUẬN VĂN THẠC SĨ














HÀ NỘI – 2007




ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ





NGUYỄN THỊ THANH HUYỀN






MÔ HÌNH TƯƠNG TÁC DỰA TRÊN ROLE
TRONG HỆ ĐA AGENT




Ngành: Công nghệ thông tin
Chuyên ngành:
Mã số: 1.01.10




LUẬN VĂN THẠC SĨ




NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS TRẦN ĐÌNH QUẾ







HÀ NỘI – 2007


iv

Mô hình tương tác dựa trên role trong hệ đa agent


MỤC LỤC
LỜI CAM ĐOAN iii
MỤC LỤC iv
DANH MỤC BẢNG BIỂU viii
DANH MỤC HÌNH VẼ ix
KÍ HIỆU VIẾT TẮT xi
MỞ ĐẦU 1
Chương 1. Tương tác trong hệ đa agent 6
1.1. Hệ đa agent 6
1.1.1. Hệ phần mềm phức tạp 6
1.1.2. Hệ đa agent 8
1.2. Tương tác trong hệ đa agent 10
1.2.1. Khái niệm tương tác đa agent 10
1.2.2. So sánh tương tác trong hệ đa Agent và hệ hướng đối tượng 12
1.3. Mô hình tương tác hướng agent 14
1.3.1. Đặc tả tương tác bằng UML 14
1.3.2. Mô hình tương tác dựa trên mục tiêu (goal) 15
1.3.3. Mô hình tương tác dựa trên role 19
1.4. Thương lượng đấu giá 20
1.4.1. Khái niệm thương lượng 20
1.4.2. Thương lượng đấu giá 22
1.4.3. Một số giao thức đấu giá cơ bản 24
v
Mô hình tương tác dựa trên role trong hệ đa agent

1.5. Kết chương 25
Chương 2. Role trong phát triển phần mềm 26

2.1. Tổng quan về role 26
2.1.1. Cơ sở thực tiễn 26
2.1.2. Role và vai trò của role trong hệ thống thông tin 27
2.2. Phát triển phần mềm dựa trên role 29
2.2.1. Role trong phát triển phần mềm 29
2.2.2. Role trong phát triển phần mềm hướng đối tượng 32
2.3. Role trong hệ đa agent 35
2.3.1. Mô hình role 35
2.3.2. So sánh role trong hệ đa agent và hướng đối tượng 38
2.3.3. Một số phương pháp mô hình tương tác dựa trên role 40
2.4. Kết chương 46
Chương 3. Mô hình tương tác dựa trên role 47
3.1. Mô hình role và tương tác dựa trên role BRAIN 47
3.1.1. Mô hình role 47
3.1.2. Mô hình tương tác dựa trên role 48
3.2. XRole – Tập kí hiệu đặc tả role 49
3.2.1. Đặc tả role 50
3.2.2. Cài đặt role 55
3.3. Cơ sở hạ tầng tương tác 58
3.3.1. RoleX 59
3.3.2. RoleSystem 60
vi
Mô hình tương tác dựa trên role trong hệ đa agent

3.4. Mô hình role cho đấu giá tự động 61
3.4.1. Thiết kế role 61
3.4.2. Đặc tả role 64
3.5. Kết chương 66
Chương 4. Cài đặt thử nghiệm hệ thống đấu giá 67
4.1. Mô tả bài toán 67

4.1.1. Giao thức đấu giá kiểu Anh 67
4.1.2. Chiến lược đấu giá 69
4.2. JADE Platform 72
4.2.1. Ngôn ngữ truyền thông ACL 73
4.2.2. Cơ chế truyền thông giữa các Agent 74
4.2.3. Ví dụ minh họa truyền thông ACL 76
4.3. Cài đặt role 76
4.4. Cấu trúc role agent 80
4.4.1. Cấu trúc hai tầng của hệ thống 80
4.4.2. Quá trình tương tác giữa các role agent 83
4.5. Kết quả thử nghiệm 84
4.5.1. Khởi tạo các role agent 84
4.5.2. Quá trình thương lượng giữa Seller và Auctioneer. 88
4.5.3. Quá trình thương lượng giữa Bidder và Auctioneer 89
4.5.4. Kết thúc đấu giá 90
4.5.5. Một số khảo sát kết quả 92
4.6. Đánh giá 96
vii
Mô hình tương tác dựa trên role trong hệ đa agent

4.6.1. Đánh giá hệ thống thử nghiệm 96
4.6.2. Đánh giá phương pháp BRAIN 97
KẾT LUẬN 100
Hướng phát triển trong tương lai 101
TÀI LIỆU THAM KHẢO 103



















viii
Mô hình tương tác dựa trên role trong hệ đa agent


DANH MỤC BẢNG BIỂU

Bảng 1.1. So sánh tương tác hướng agent và hướng đối tượng. 12

Bảng 2.1: Các phương pháp sử dụng role trong phát triển phần mềm 31

Bảng 4.1. Quá trình thương lượng giữa Seller và Auctioneer 88
Bảng 4.2. Quá trình thương lượng giữa Bidder và Auctioneer 89
Bảng 4.3. Các Bidder tham gia đấu giá 92
Bảng 4.4. Kết quả phiên đấu giá khi thay đổi gia số 93
Bảng 4.5. Kết quả phiên đấu giá khi thay đổi TO3 94
Bảng 4.6. Kết quả ba phiên đấu giá đồng thời 96














ix
Mô hình tương tác dựa trên role trong hệ đa agent


DANH MỤC HÌNH VẼ
Hình 1.1. Mô hình chuẩn của hệ thống phức tạp. 7
Hình 1.2. Hệ đa agent. 9
Hình 1.3. Lược đồ tổng quan của phương pháp Hermes. 17
Hình 1.4. Lược đồ phân cấp IG. 18

Hình 2.1. Mô hình tương tác dựa trên role 37

Hình 3.1. Khung BRAIN 47
Hình 3.2. Mô hình tương tác giữa hai agent 49
Hình 3.3. Cú pháp khai báo DTD 50
Hình 3.4. DTD cho các role theo mô hình BRAIN 51
Hình 3.5. Lược đồ XML cho mô hình role theo BRAIN 53
Hình 3.6. Định nghĩa role Bidder trong XRole 54

Hình 3.7. Chuyển đối HTML của Bidder.xml 56
Hình 3.8. XSL chuyển tài liệu XML thành lớp Java 57
Hình 3.9. Mã nguồn lớp Java chuyển từ Bidder.xml 58
Hình 3.10. Đặc tả role Seller 64
Hình 3.11. Đặc tả role Auctioneer. 65
Hình 3.12. Đặc tả role Seller 66

Hình 4.1. Giao thức đấu giá kiểu Anh FIPA 68
Hình 4.2. Thuật toán quyết định của Auctioneer. 70
Hình 4.3. Thuật toán đấu giá của Bidder 72
Hình 4.4. Nền Jade và các Container 73
Hình 4.5. Cơ chế truyền thông điệp không đồng bộ của Jade 75
Hình 4.6. Lược đồ quan hệ giữa các lớp trong hệ Auction. 78
x
Mô hình tương tác dựa trên role trong hệ đa agent

Hình 4.7. Mã nguồn Java tương ứng với Seller.xml. 78
Hình 4.8. Mã nguồn Java tương ứng với Auctioneer.xml 79
Hình 4.9. Mã nguồn Java tương ứng với Bidder.xml 79
Hình 4.10. Mã nguồn Java cài đặt Bidder 80
Hình 4.11. Cấu trúc phân tầng của hệ đa agent dựa trên role 81
Hình 4.12. Giao diện khởi tạo role agent. 84
Hình 4.13. Giao diện của một Bidder 85
Hình 4.14. Giao diện của Seller. 85
Hình 4.15. Giao diện của Auctioneer. 86
Hình 4.16. Cây phân cấp Agent của nền Jade. 87
Hình 4.17. Giao diện kết quả của Bidder thắng cuộc 90
Hình 4.18. Giao diện kết quả của Bidder thất bại. 91
Hình 4.19. Giao diện kết quả của Seller. 91
Hình 4.20. Giao diện hiển thị của Auctioneer. 92

Hình 4.21. Giao diện thiết đặt thông số cho ba phiên đấu giá song song. 95











xi
Mô hình tương tác dựa trên role trong hệ đa agent


KÍ HIỆU VIẾT TẮT

BRAIN
Behavioral Roles for Agent INteractions
FIPA
Foundation of Intelligent Physical Agents
OMG
Object Management Group
AIP
Agent Interaction Protocol
ACL
Agent Communication Language
KQML
Knowledge Query Manipulation Language

KIF
Knowledge Interchange Format
DTD
Data Type Document
RBAC
Role Based Access Control
UML
Unified Modeling Language
AUML
Agent Unified Modeling Language
RBSD
Role Based Software Development
RoleX
Role eXtension
HTML
HyperText Markup Language
XSL
eXtension Style Language
XSD
XML Schema Definition
CFP
Call For Proposal
JADE
Java Agent DEvelopment Framework
1
Mô hình tương tác dựa trên role trong hệ đa agent

MỞ ĐẦU
Thiết kế và xây dựng các hệ thống phần mềm phức tạp là một việc làm hết
sức khó khăn và được cho là một trong những công việc kiến thiết phức tạp nhất

của loài người. Lịch sử phát triển phần mềm đã trải qua nhiều mô hình khác nhau
như lập trình thủ tục, hướng đối tượng, mẫu thiết kế… Mỗi mô hình đều có mục
đích hoặc đơn giản hóa quá trình kỹ nghệ hoặc mở rộng quy mô và tăng khả năng
xử lý phức tạp của hệ thống. Thập kỷ trước đã chứng kiến thời kỳ huy hoàng của kỹ
nghệ phần mềm hướng đối tượng, song bản chất tĩnh, ổn định của đối tượng tỏ ra
không phù hợp cho thiết kế các hệ thống trong môi trường phân tán, không thuần
nhất, động và mở như Internet. Thực thể phần mềm gọi là agent với những đặc
trưng như tự chủ, linh hoạt, di động, có khả năng giao tiếp…được coi là một trong
những lựa chọn cho phát triển các hệ thống phân tán và đã thu hút nhiều sự quan
tâm nghiên cứu ([36], [50], [8], [9]).
Với công nghệ agent, một hệ thống phức tạp được chia thành các thành phần
nhỏ hơn và mỗi agent được giao thực hiện một số nhiệm vụ nào đó. Các thành phần
phân rã này thường phụ thuộc lẫn nhau. Nhờ có khả năng tự chủ, các agent này có
thể giao tiếp, phối hợp với các agent khác để hoàn thành mục tiêu chung của hệ
thống. Như vậy, mỗi agent luôn cần có sự cộng tác từ phía các agent khác. Tương
tác chính là cầu nối, là phương tiện để các agent hoạt động cùng nhau. Tương tác
[9] có thể có nhiều dạng như phối hợp, hỗ trợ, thương lượng để hoàn thành mục tiêu
riêng hoặc để thực hiện mục tiêu chung hoặc thậm chí là cạnh tranh tài nguyên…
Do khả năng chủ động và tính xã hội của agent mà tương tác giữa các agent
trở nên phức tạp hơn nhiều so với tương tác giữa các đối tượng. Trong khi, đối
tượng chỉ đơn giản thực hiện những thao tác do người lập trình cài đặt mà không có
sự chủ động nào, agent được cung cấp tri thức, phương pháp và có thể chủ động
quyết định thực hiện cái gì, như thế nào [45]. Do vậy, tương tác trong hệ đa agent
có một số điểm khác biệt nổi bật so với tương tác trong hệ đối tượng:
2
Mô hình tương tác dựa trên role trong hệ đa agent

 Tương tác đa agent xảy ra một cách tự động, không cần sự kích hoạt từ
bên ngoài. Trong khi thực hiện một nhiệm vụ nào đó, nếu cần thiết, agent
hoàn toàn có thể tự kích hoạt tương tác với agent khác. Chính điều này tạo

ra sự lan tỏa tương tác khiến cho tương tác giữa các agent không chỉ dừng
lại ở hai chiều.
 Tương tác trong hệ đa agent mang tính chất xã hội vì đó không chỉ là một
bên đưa ra yêu cầu còn bên kia thực hiện mà agent hoàn toàn có khả năng
từ chối thực thi yêu cầu của các agent khác. Mặt khác, tương tác đa agent
có thể được phân chia theo ngữ cảnh xã hội thành các loại như tương tác
kết hợp, phối hợp, cạnh tranh, thương lượng Với các tương tác phức tạp
như cạnh tranh, thương lượng, việc xây dựng chiến lược, mô hình để agent
thực hiện tương tác một cách tự động gặp nhiều khó khăn vì cần phải có
những mô hình phù hợp và những công cụ mạnh hơn. Hơn nữa, do agent
có thể quyết định dựa trên tri thức, có khả năng phát động tương tác nên
tương tác trong hệ đa agent là rất khó đoán trước trong thời gian thiết kế.
Vì vậy, tính linh động là điều tối cần thiết trong mô hình tương tác đa
agent, nghĩa là mô hình tương tác phải cung cấp cho agent khả năng di
chuyển và hoạt động từ vị trí này sang vị trí khác, thêm bớt agent một cách
dễ dàng… trong thời gian chạy.
Cho đến nay, nhiều mô hình tương tác đã được đề xuất như mô hình dựa trên
mục tiêu (goal) [18], mô hình kế thừa từ mô hình hướng đối tượng AUML
[5]…Tuy nhiên, các mô hình này chưa thể hiện được đầy đủ bản chất chủ động và
tính xã hội của agent cũng như chưa hỗ trợ được đầy đủ các pha trong quy trình
phát triển phần mềm. Một số mô hình gần đây ra đời nhằm khắc phục những hạn
chế trên, trong số đó mô hình dựa trên role đang thu hút nhiều sự quan tâm nghiên
cứu.
Role [20] từ lâu đã được áp dụng trong nhiều lĩnh vực khác nhau và thường
được hiểu là tập các quyền hạn, chức năng và nghĩa vụ được cung cấp cho một đối
3
Mô hình tương tác dựa trên role trong hệ đa agent

tượng như con người để hoàn thành một nhiệm vụ nào đó. Trong hệ đa agent, mỗi
khi agent muốn thực hiện một công việc, nó sẽ đảm nhận một role tương ứng. Ví dụ,

khi một agent muốn tham gia trả giá trong một phiên đấu giá, agent đó sẽ chọn đảm
nhận role Người mua (Bidder), ngược lại, nếu muốn rao bán một mặt hàng, agent
khác nào đó sẽ chọn đảm nhận role Người bán (Seller). Mọi thao tác liên quan đến
trả giá, tìm kiếm sản phẩm, mua hàng đều được tích hợp trong role Bidder, các thao
tác tìm trung gian, đặt giá được cài đặt trong role Seller. Bản thân mỗi agent không
cần phải cài đặt tất cả các chức năng này. Như vậy, việc sử dụng role cho phép
người phát triển phân tách rạch ròi vấn đề liên quan đến tương tác với các vấn đề
liên quan đến thuật toán của agent. Tương tác có thể được phát triển độc lập với
thuật toán tính toán của agent và điều này làm tăng tính môđun hóa và sử dụng lại
của phần mềm. Các ứng dụng cùng thể loại có thể sử dụng lại các role đã được phát
triển hoàn thiện của một ứng dụng trước đó và hoàn toàn có thể chỉnh sửa cho phù
hợp với ngữ cảnh cụ thể.
Hiện nay, nhiều phương pháp dựa trên role đã được đề xuất [9], mỗi phương
pháp mô hình role theo một cách riêng biệt như role dưới dạng quyền hạn, trách
nhiệm trong phương pháp GAIA [51] hay dịch vụ trong phương pháp ALAADIN
[22]…Trong luận văn này, chúng tôi chọn cách tiếp cận dựa trên khung BRAIN
[13] do nhóm tác giả G. Cabri, L.Ferrari và F.Zambonelli đề xuất.
Khung BRAIN cung cấp một mô hình để trừu tượng hóa role bao gồm: tập kí
hiệu XRole để đặc tả role cũng như cơ sở tương tác RoleX, RoleSystem để hỗ trợ cài
đặt và thực thi các ứng dụng dựa trên role. Trong BRAIN, role được mô hình dưới
dạng các hành vi, khả năng và tri thức mà agent có thể sử dụng để thực hiện nhiệm
vụ. Hành vi của agent là tập các sự kiện mà agent có thể quản lý còn khả năng của
Agenta là tập các hành động mà agent có thể thực hiện. Tương tác giữa các Agent
được mô hình bởi một cặp (hành động, sự kiện). Tương tác xảy ra khi một agent
chọn thực hiện một hành động và cơ sở tương tác sẽ dịch hành động này thành một
sự kiện rồi gửi tới agent nhận. Agent nhận tiếp nhận, xử lý các sự kiện này và đáp
4
Mô hình tương tác dựa trên role trong hệ đa agent

trả bằng cách chọn thực hiện một hành động trong khả năng của nó và hệ thống

chuyển hành động này thành sự kiện gửi lại agent gửi.
Ngày nay, với sự phát triển của Internet, các hệ thống đấu giá trực tuyến đã
trở nên phổ biến. Đặc biệt, việc sử dụng các agent thông minh đã giúp người dùng
có thể thoát ly việc ra quyết định trong đấu giá đồng thời có thể tham gia nhiều cuộc
đấu giá cùng lúc. Tuy nhiên, tương tác giữa các agent này lại đặt ra nhiều vấn đề đối
với người phát triển hệ thống như làm cách nào để agent có thể di chuyển dễ dàng
giữa các nút trong mạng, cách nào để một agent có thể tham gia đồng thời nhiều
cuộc đấu giá với những vai trò khác nhau…
Mục đích của luận văn này trước hết xem xét vấn đề tương tác, khái niệm
role trong phát triển phần mềm và đặc biệt trong mô hình tương tác của các agent.
Sau đó, tập trung nghiên cứu mô hình tương tác dựa trên role với khung BRAIN và
áp dụng mô hình vào phát triển hệ thống đấu giá trực tuyến. Nội dung luận văn
được chia thành các phần chính sau đây:
 Chương 1. Tương tác trong hệ đa agent: Chương này tập trung làm rõ
vai trò và tầm quan trọng của tương tác trong hệ đa agent. Một số đặc điểm
khác biệt của tương tác trong hệ đa Agent với tương tác trong các hệ khác
cùng một số đặc điểm của thương lượng – một loại hình tương tác phức
tạp nhất trong hệ đa agent.
 Chương 2. Role trong phát triển phần mềm: Khái niệm role trong phát
triển phần mềm và một số phương pháp mô hình role sẽ được trình bày
trong chương này.
 Chương 3. Mô hình tương tác dựa trên role: Chương này mô tả chi tiết
mô hình tương tác dựa trên role với khung BRAIN. Mô hình cung cấp
công cụ để phát triển một hệ thống phần mềm dựa trên khái niệm role, một
tập kí hiệu để đặc tả role và các cơ sở tương tác phục vụ cho việc cài đặt
và thực thi hệ thống.
5
Mô hình tương tác dựa trên role trong hệ đa agent

 Chương 4. Cài đặt thử nghiệm hệ thống đấu giá: Chương này sẽ trình

bày một cài đặt thử nghiệm hệ thống đấu giá sử dụng mô hình BRAIN trên
nền Jade.
Cuối cùng, phần kết luận trình bày một số kết quả đạt được của luận văn và hướng
phát triển trong tương lai.
















6
Chương 1. Tương tác trong hệ đa agent

1. Chương 1. Tương tác trong hệ đa agent
Tương tác là một trong những hoạt động cơ bản của các thành phần trong
một hệ thống. Nó quyết định sự thành công của từng thành phần đó cũng như mục
tiêu chung của hệ thống tổng thể. Trong chương này, chúng ta sẽ tìm hiểu về tương
tác trong hệ thống phần mềm, đặc biệt là tương tác giữa các Agent trong hệ đa agent.
1.1. Hệ đa agent
1.1.1. Hệ phần mềm phức tạp

Kỹ nghệ các hệ thống phức tạp đã luôn là vấn đề khó khăn đối với ngành
công nghệ phần mềm trong khi độ phức tạp của các hệ thống này lại không ngừng
tăng lên do sự phong phú về chức năng, mục đích, sự đa dạng về người dùng… Vì
vậy, chúng ta cần có một phương pháp luận thích hợp cung cấp các cấu trúc và kỹ
thuật để thể hiện được bản chất của hệ thống đồng thời làm giảm sự phức tạp trong
quá trình phát triển. Để tìm ra phương pháp luận này, chúng ta có thể sử dụng một
số đặc điểm quan trọng sau đây của hệ phức tạp [29] :
 Hệ thống luôn có cấu trúc phân cấp
1
: Hệ thống bao gồm nhiều hệ thống
con có liên hệ với nhau, trong đó mỗi hệ thống con lại là tập hợp các thành
phần khác.
 Việc lựa chọn thành phần chính là tùy ý: Việc lựa chọn này tùy thuộc vào
mục đích và ý định của người phân tích hệ thống.
 Hệ thống có khả năng mở rộng nhanh: Các hệ thống phân cấp có thể phát
triển nhanh hơn các hệ thống không phân cấp. Các hệ thống phân cấp
phức tạp có thể được phát triển dễ dàng từ các hệ thống đơn giản nhờ các
dạng trung gian ổn định.


1
Cấu trúc phân cấp ở đây được hiểu theo nghĩa rộng, nghĩa là hệ thống được coi là một tập liên tục các hệ
thống con, mà không phải các mối quan hệ mang tính phân qưyền giữa hệ thống và các thành phần con.
7
Chương 1. Tương tác trong hệ đa agent

 Tương tác trong hệ thống được chia làm hai loại riêng biệt: Tương tác
giữa các hệ thống con với nhau là tương tác không thường xuyên và khó
đoán trước. Tương tác giữa các thành phần của một hệ thống con thường
xảy ra hơn và dễ dự đoán hơn.

Những đặc điểm trên sẽ giúp chúng ta định nghĩa được một cách nhìn chuẩn
về hệ thống như Hình 1.1:

Hình 1.1. Mô hình chuẩn của hệ thống phức tạp.
Trong mô hình trên, bản chất phân cấp của hệ thống được thể hiện qua các
liên kết ―bao gồm‖(composed of), các hệ thống con được kết nối bởi các liên kết
―tương tác không thường xuyên‖ và các thành phần của một hệ con được kết nối
với nhau bởi liên kết ―tương tác thường xuyên‖. Với mô hình này, một thành phần
ở một mức có thể được triển khai thành một tập hợp các thành phần con ở mức tiếp
theo.
Mô hình hệ thống phức tạp ở trên đã gợi mở nhiều vấn đề giúp các kỹ sư
phần mềm phát triển các công cụ mạnh để xử lý tính phức tạp của hệ thống. Hầu hết
các phương pháp được đề xuất đều dựa trên một số nguyên tắc và kỹ thuật sau:
 Sự phân rã (Decomposition): Kỹ thuật cơ bản nhất để giải quyết bất kỳ
một bài toán lớn nào cũng là chia nó thành các bài toán nhỏ dễ xử lý hơn,
trong đó mỗi bài toán nhỏ lại có thể tiếp tục được phân rã và xử lý tươđối





















Tương tác thường xuyên

Hệ thống con
Thành phần con
Bao gồm
Tương tác không thường
xuyên
8
Chương 1. Tương tác trong hệ đa agent

độc lập với nhau (giống như các hệ thống con có thể phân rã trong Hình
1.1). Sự phân rã này giúp xử lý tính phức tạp của hệ thống bởi nó giới hạn
phạm vi mà người thiết kế cần quan tâm, tức là, tại một thời điểm nào đó
chúng ta chỉ phải xem xét một phần nhỏ của bài toán mà không quan tâm
đến phần còn lại. Điều này tạo tính mô đun và chuyên môn hóa cho quá
trình phát triển.
 Trừu tượng hóa (Abstraction): Quá trình xác định mô hình của một hệ
thống chỉ tập trung vào một số thuộc tính hoặc chi tiết nhất định. Kỹ thuật
này lại một lần nữa có hiệu quả bởi vì nó giới hạn phạm vi cần quan tâm
của người thiết kế tại một thời điểm bất kỳ. Chúng ta có thể tập trung sự
chú ý các điểm nổi bật của vấn đề, không phí công sức vào các chi tiết ít
liên quan hơn.
 Tổ chức phân cấp: Là cách thức sắp đặt và quản lý các thành phần của hệ
thống cũng như mối quan hệ giữa chúng. Cơ chế tổ chức chủ yếu là nhiều

thành phần ở một mức sẽ được gộp lại thành một thành phần ở mức trên
và nhiều thành phần mức trên này lại được gộp lại để tạo thành một thành
phần của hệ thống ở mức cao hơn…
Dựa trên những kỹ thuật cơ bản này, mỗi phương pháp kỹ nghệ phần mềm
đều có cách áp dụng riêng và có những điểm mạnh yếu khác nhau. Phương pháp
hướng đối tượng, được dùng phổ biến trong thập kỷ trước, là một phương pháp khá
mạnh song vẫn bộc lộ nhiều hạn chế như chưa thích ứng tốt với tính động, phân tán
và mở của các hệ thống hoạt động trên mạng hiện nay. Phương pháp kỹ nghệ hướng
agent đã và đang thu hút được nhiều sự quan tâm nghiên cứu cho phát triển các hệ
phần mềm phức tạp.
1.1.2. Hệ đa agent
Như đã trình bày ở phần trên, hệ thống luôn có xu hướng phân rã thành các
thành phần nhỏ hơn. Với phương pháp hướng agent, các thành phần này chính là
9
Chương 1. Tương tác trong hệ đa agent

các agent. Một hệ thống không thể hoạt động hiệu quả với chỉ một agent duy nhất
đảm nhiệm toàn bộ hệ thống, khái niệm hệ đa agent ra đời [50]:
―Hệ đa agent là một hệ thống bao gồm nhiều agent tương tác qua lại với nhau‖

Hình 1.2. Hệ đa agent.
Qua mô hình hệ thống, chúng ta có thể nhận thấy một số đặc điểm của hệ đa
Agent như sau [29]:
 Mỗi agent có một phạm vi hoạt động cũng như tầm ảnh hưởng riêng trong
hệ thống. Phạm vi hoạt động của agent trong môi trường thể hiện bằng
hình chiếu của agent tương ứng xuống môi trường trong Hình 1.2. Phạm vi
của các agent có thể độc lập hoặc chồng chéo lên nhau nhưng luôn luôn
chỉ là một phần nhỏ của với môi trường.
 Mỗi agent không có đủ điều kiện (dữ liệu, thông tin) và khả năng để giải
quyết toàn bộ vấn đề của hệ thống. Mỗi agent chỉ được cung cấp khả năng

đủ (thậm chí còn thiếu) để đạt mục tiêu. Vì vậy, để hoàn thành mục tiêu
(cả riêng và chung), các agent cần tương tác với nhau.





A1
A3
A4
A5
A2
Tầm ảnh hưởng
của agent
A2
Agent i
Tương tác
Quan hệ tổ chức
10
Chương 1. Tương tác trong hệ đa agent

 Các agent trong hệ đa agent có thể hoạt động một cách độc lập, không chịu
sự điều khiển của các agent khác cũng như của hệ thống. Chúng chỉ có thể
trao đổi chứ không chi phối lẫn nhau. agent là các đối tượng thông minh
nên việc agent này áp đặt hoạt động lên agent khác là không thể có. Tuy
nhiên, sự độc lập ở đây chỉ là tương đối, không có agent nào hoạt động
hoàn toàn riêng lẻ, tách rời. Các agent vẫn phải tương tác với nhau để yêu
cầu giúp đỡ hoặc phối hợp để thực hiện được nhiệm vụ đề ra (thể hiện qua
liên kết tương tác trong Hình 1.2 ). Việc trao đổi sẽ thông qua một ngôn
ngữ giao tiếp riêng, ở mức tri thức có thể là KQML, ACL hay KIF.

Tóm lại, mục tiêu tổng thể của hệ thống được chia thành các mục tiêu nhỏ
hơn và giao cho các agent. Mỗi agent sẽ được cung cấp khả năng cần thiết để hoàn
thành những mục tiêu đó. Tuy nhiên, để cho agent gọn nhẹ và dễ dàng di chuyển
trên môi trường phân tán, agent thường không được trang bị đầy đủ các tính năng
mà chúng phải tương tác qua lại để hỗ trợ nhau, cùng hợp tác để đạt mục tiêu chung.
Như vậy, trong hệ đa agent, tương tác chính là chìa khóa dẫn đến thành công của hệ
thống.
1.2. Tương tác trong hệ đa agent
1.2.1. Khái niệm tương tác đa agent
Như đã đề cập ở phần trên, hệ đa agent là hệ thống gồm nhiều agent tự chủ
và linh hoạt khác nhau. Mỗi agent đều có mục tiêu riêng và một phần mục tiêu
chung của cả hệ thống. Trong quá trình hoạt động các agent phải liên hệ với nhau để
hoàn thành nhiệm vụ, tất cả những mối liên hệ đó được gọi chung là tương tác. Vậy
tóm lại, chúng ta có định nghĩa tương tác trong hệ đa agent [29]:
“Tương tác là các mối liên hệ, trao đổi để kết hợp, phối hợp hoặc cạnh tranh,
thương lượng giữa các agent trong hệ đa agent nhằm đạt được mục tiêu riêng của
từng agent cũng như mục tiêu tổng thể của hệ thống. ”
Trong các hệ thống thông tin, tương tác có thể được chia thành ba loại chính:
11
Chương 1. Tương tác trong hệ đa agent

 Tương tác bình đẳng (peer to peer): đơn giản chỉ là trao đổi các thông
điệp có thể hiểu được giữa các thành phần với nhau.
 Tương tác kiểu khách – chủ truyền thống (client-server): Tương tác này
xảy ra khi một bên yêu cầu bên kia thực hiện một hành động cụ thể nào đó.
 Tương tác xã hội: Các thành phần trong hệ thống có mối liên hệ phức tạp,
mang tính xã hội như quan hệ tương hỗ, cạnh tranh, thương lượng…
Trong ba loại tương tác trên, tương tác kiểu bình đẳng hay khách-chủ là
tương tác phổ biến trong các hệ hướng đối tượng và hướng thành phần. Với hai loại
tương tác này, các bên thực hiện tương tác bằng cách trao đổi thông điệp hoặc dùng

dữ liệu chia sẻ. Tương tác trong hệ đa agent thuộc vào loại thứ ba, là tương tác xã
hội. Loại tương tác này có ngữ nghĩa phức tạp, phong phú và đa dạng.
Nhờ có tính chủ động, agent có khả năng tự phát động tương tác khi cần mà
không phải nhờ đến agent khác ra lệnh. Nhờ tính phản ứng và tự chủ, tương tác
trong hệ đa agent không còn việc một bên đưa ra yêu cầu và bên kia buộc phải thực
hiện, agent hoàn toàn có khả năng từ chối. Do vậy, tương tác giữa hai agent có thể
xảy ra theo hai chiều. Mặt khác, agent thường không có đủ khả năng để làm tất cả
mọi việc, điều này buộc agent phải phát động tương tác để yêu cầu hỗ trợ từ agent
khác. Nhờ vậy mà tương tác trong hệ đa agent có thể là tương tác có nhiều hơn hai
agent tham gia, hay còn gọi là tương tác nhiều chiều.
Trong các hệ thống, mâu thuẫn giữa các agent là không thể tránh khỏi. Mâu
thuẫn này có thể xuất phát từ việc chia sẻ tài nguyên, cũng có thể do các agent có
mục tiêu riêng trái ngược nhau Quan hệ giữa agent mua và agent bán trong các hệ
thống thương mại điện tử là một ví dụ. Các agent có xung đột sẽ phải dung hòa lợi
ích giữa các bên, bằng tương tác cạnh tranh, thương lượng. Vì vậy, tương tác trong
hệ đa agent có thể chia làm hai loại chính [29]:
 Tương tác kiểu cộng tác, hỗ trợ: Đây là những tương tác thường xảy ra
khi các agent muốn đạt được mục tiêu chung của hệ thống mức trên.
12
Chương 1. Tương tác trong hệ đa agent

Chẳng hạn, để thực hiện được việc mua bán, agent mua cần kết hợp với
agent lấy thông tin khách hàng và agent tìm kiếm để tìm ra nơi bán sản
phẩm cần mua…Khi đó, quan hệ giữa agent mua, agent lấy tin và agent
tìm kiếm là quan hệ cộng tác.
 Tương tác kiểu cạnh tranh: Thông thường, tương tác cạnh tranh thường
xảy ra khi các agent cần thực hiện nhiệm vụ, mục tiêu riêng. Khi đó, nhiều
agent có cùng yêu cầu về tài nguyên hoặc mục tiêu của chúng mâu thuẫn
với nhau dẫn đến sự cạnh tranh lẫn nhau và xuất hiện thương lượng. Chi
tiết về thương lượng sẽ được trình bày trong phần 1.4 của chương này.

1.2.2. So sánh tương tác trong hệ đa Agent và hệ hướng đối tượng
Một số điểm sau đây có thể được coi là điểm phân biệt giữa tương tác đa
agent và tương tác giữa các đối tượng [2]:
 Tương tác trong hệ đa Agent là tương tác chủ động: Agent có thể tự
quyết định khi nào cần tương tác, phải tương tác với agent nào và bằng
cách nào…Trong khi đó, tương tác trong hệ hướng đối tượng là hoàn toàn
bị động. Mọi tương tác của đối tượng đều cần được phát động từ bên ngoài,
có thể do một đối tượng khác hoặc do hệ thống. Bản thân đối tượng không
có quyền quyết định thực hiện tương tác nào, vào thời điểm nào

Tương tác hướng agent
Tương tác hướng đối tượng
Tính chủ động


Ngôn ngữ giao tiếp


Số chiều
n2
1
Tính lan truyền


Tính động, mở


Bảng 1.1. So sánh tương tác hướng agent và hướng đối tượng.
 Tương tác trong hệ agent có ngôn ngữ giao tiếp riêng: Agent có ngôn
ngữ giao tiếp mức cao (có tính khai báo) như KQML hoặc FIPA ACL. Các

ngôn ngữ này đều dựa trên thuyết hoạt động nói (“speech act theory”). Kết
quả là các tương tác thường được kiểm soát ở mức tri thức: dưới dạng mục
13
Chương 1. Tương tác trong hệ đa agent

tiêu nào agent nên theo đuổi, tại thời điểm nào và bởi cái gì (lời gọi
phương thức, hàm chức năng đều phải tuân theo một cú pháp định trước).
Tương tác giữa các đối tượng chỉ đơn giản là việc gọi thực hiện phương
thức công cộng của đối tượng cần giao tiếp. Giao tiếp của đối tượng với
đối tượng là do người phát triển tự cài đặt dựa trên các công cụ của ngôn
ngữ lập trình, hoàn toàn không có ngôn ngữ chung.
 Tương tác giữa các agent có tính lan truyền: Agent có khả năng phản
ứng lại tác động của môi trường, nhờ đó agent có khả năng tự phát động
tương tác. Mặt khác, do chỉ được cung cấp khả năng có hạn, agent phải
phát động tương tác tới agent khác để yêu cầu giúp đỡ, đến lượt agent
được yêu cầu lại phát động tương tác đến các agent khác… Vậy nên, có
thể nói tương tác đa agent có tính lan truyền. Ngược lại, các đối tượng chỉ
thực hiện một hành vi nào đó khi nhận được lời gọi hành động từ các đối
tượng khác. Vì vậy, tương tác trong hệ hướng đối tượng chỉ gói gọn trong
hai đối tượng và không thể lan theo dây chuyền.
 Tương tác trong hệ đa Agent rất khó đoán trước: Hệ đa agent là hệ mở,
thay đổi liên tục. Vì vậy, quan hệ giữa các agent rất khó xác định trước
trong pha thiết kế. Mặt khác, do đặc tính thông minh của âgent, việc xác
định agent sẽ phản ứng ra sao, như thế nào trước tác động của môi trường
là không khả thi. Ngược lại, trong hệ hướng đối tượng, chúng ta phải xác
định được đối tượng nào tương tác với đối tượng nào và ra sao để cài đặt
cách thức gọi phương thức thực hiện tương tác đó. Do vậy, có thể nói
tương tác giữa các đối tượng là hoàn toàn tĩnh.
Tóm lại, tương tác giữa các agent được xem là ở mức trừu tượng cao hơn
tương tác giữa các đối tượng theo nghĩa là đạt ở mức tri thức với khả năng tương tác

linh hoạt để có thể coi là những đối tượng thông minh.
14
Chương 1. Tương tác trong hệ đa agent

1.3. Mô hình tương tác hướng agent
Có nhiều phương pháp khác nhau cho mô hình tương tác trong hệ đa agent.
Một số phương pháp như Message passing [37] xem tương tác đơn giản chỉ là sự
trao đổi thông điệp giữa hai agent, phương pháp Linda [27] dựa chủ yếu trên mô
hình cộng tác không cặp đôi và không gian dữ liệu chia sẻ. Nhìn chung, các phương
pháp này mới chỉ dừng lại ở mức biến đổi các phương pháp tương tác trước đây
bằng cách thêm vào một số khái niệm mới như “meeting point”, “event channel”
hoặc “tuple space” cho phù hợp với agent mà chưa thực sự tính đến những đặc
trưng của agent như tính xã hội, khả năng phản ứng và tự chủ.
Một số nhà nghiên cứu khác thì tận dụng sự tương đồng giữa agent và đối
tượng để đề xuất ra các phương pháp mô hình tương tác dựa trên UML như Tropos
[33] và AUML [5]. Một số khác thì mô hình tương tác agent dưới dạng các dịch vụ
(service) và nhiệm vụ (task) như Agentis hay mô hình hóa dựa trên mục tiêu tương
tác (goal) như Hermes, hoặc mô hình dựa trên role như BRAIN…Sau đây, chúng ta
sẽ tìm hiểu một số mô hình tương tác hướng agent tiêu biểu hiện nay.
1.3.1. Đặc tả tương tác bằng UML
Trước đây, kỹ thuật hướng Agent vẫn chưa áp dụng được vào việc phát triển
phần mềm công nghiệp vì kỹ thuật này vẫn chưa có được các công cụ hỗ trợ đầy đủ
các pha trong vòng đời phát triển phần mềm. Vì vậy, người ta đã nghĩ đến sự kết
hợp kỹ nghệ hướng Agent với các chuẩn phổ biến như phát triển phần mềm hướng
đối tượng để tạo ra một công cụ hiệu quả hơn. Hai tổ chức FIPA và OMG đã phối
hợp để đưa ra một mô hình kỹ nghệ hướng agent mới, gọi là AGENT UML [5].
Đây là sự mở rộng của ngôn ngữ UML, một chuẩn không chính thức cho phân tích
và thiết kế hướng đối tượng. Phần cơ bản của AGENT UML là giao thức tương tác
đa agent AIP.
15

Chương 1. Tương tác trong hệ đa agent

AIP là một lớp các mẫu thiết kế phần mềm trong đó người ta mô tả các vấn
đề thường xảy ra trong hệ đa agent và sau đó mô tả giải pháp để giải quyết những
vấn đề đó. Định nghĩa một giao thức tương tác agent (AIP) bao gồm:
 Mô hình tương tác.
 Một trình tự các thông điệp gửi qua lại giữa các agent với các vai trò khác
nhau.
 Một ngữ nghĩa thống nhất với các hành động giao tiếp (CAs) trong một
mô hình giao tiếp.
Thông điệp phải thỏa mãn các hành động giao tiếp chuẩn, CA định nghĩa
kiểu và nội dung thông điệp (ví dụ ngôn ngữ giao tiếp agent ACL FIPA hoặc
KQML). Các giao thức ràng buộc các thông số của việc trao đổi thông điệp (ví dụ
như thứ tự và kiểu trao đổi) tùy theo mối quan hệ giữa các agent hoặc ý định của
việc giao tiếp.
Kiểu lược đồ mới được giới thiệu trong AGENT UML là lược đồ giao thức
(Protocol Diagram). Do giao thức tương tác định nghĩa chính xác hành vi của một
nhóm các Agent cộng tác nên chúng ta sẽ kết hợp các lược đồ chuỗi với ký hiệu
lược đồ trạng thái để tạo nên đặc tả của giao thức tương tác.
1.3.2. Mô hình tương tác dựa trên mục tiêu (goal)
Tương tác được đặc tả dưới dạng các giao thức tương tác, như trong Petri
nets [54], máy trạng thái hữu hạn [49] hay AGENT UML, đều không phù hợp với
đặc tính tự chủ và chủ động của agent đồng thời không cho phép phục hồi tương tác
sau khi bị lỗi. Một số nhà nghiên cứu của trường đại học RMIT, Úc đã đề xuất khái
niệm tương tác hướng mục tiêu (goal) phù hợp hơn với bản chất của kỹ thuật agent,
gọi là phương pháp Hermes [18]. Tương tác hướng mục tiêu được định nghĩa dưới
dạng các mục tiêu tương tác (Interaction Goal - IG) và các ràng buộc thời gian. Các
agent tham gia tương tác sẽ quyết định cách thức để đạt được IG và bị giới hạn bởi
các ràng buộc thời gian thiết lập trên các IG đó. Tương tác giữa các agent xảy ra vì

×