Tải bản đầy đủ (.doc) (96 trang)

đồ án công nghệ thông tin Xây dựng mô hình hệ thống đa agent BKAS và xây dựng hệ thống hỗ trợ chuẩn đoán bệnh dưa trên mô hình BKAS.

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 (667.5 KB, 96 trang )

Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Bỏo cáo tốt nghiệp
Giáo viên hướng dẫn: ThS. Lê Tấn Hùng
Sinh viên thực hiện: Lê Đức An – CNPM - K44.
ĐỀ TÀI: Xây dựng mô hình hệ thống đa agent BKAS và xây
dựng hệ thống hỗ trợ chuẩn đoán bệnh dưa trên mô hình BKAS.
SV thực hiện: Lê Đức An – CNPM K44 Trang 1/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
MỤC LỤC
CƠ SỞ LÝ THUYẾT 6
GIỚI THIỆU CHUNG VỀ BKAS 29
SỰ PHỐI HỢP GIỮA CÁC AGENT TRONG HỆ BKAS 49
GIAO TIẾP GIỮA CÁC AGENT TRONG HỆ BKAS 57
XÂY DỰNG HỆ V_MEDINFO DỰA TRÊN MÔ HÌNH BKAS 74
Danh sách hình vẽ:
Hình 1: Những đặc điểm của agent 8
Hình 2: Phân loại agent theo khả năng 12
Hình 3: Mô hình cõu trỳc và tương tác với môi trường của agent 12
Hình 4 Cách agent tương tác với môi trường 13
Hình 5: Kiến trúc agent platform theo chuẩn của FIPA 20
Hình 6: Mô hình JADE Agent platform phân tán 21
Hình 7: Các thành phần giao tiếp trong JADE 25
Hình 8: Vòng đời của JADE Agent 26
Hình 9: Mô hình cấu trúc của BKAS 32
Hình 10: Đăng ký dịch vụ với facilitator agent 37
Hình 11: Sự uỷ quyền của facilitator agent trong trường hợp yêu cầu đa mục
tiêu 40
Hình 12: Hệ thống Văn phòng tự động (Automated Office) 44
Hình 13: Sự kết hợp của các hệ thống BKAS thông qua facilitator agent trung


tâm 47
Hình 14: Không còn danh giới giữa các hệ thống trong một cộng đồng agent.
48
Hình 15: Quỏ trình sinh kế hoạch tập trung cho nhóm agent theo 54
Hình 16: Cơ chế thực hiện theo kế hoạch phân tán 55
SV thực hiện: Lê Đức An – CNPM K44 Trang 2/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Hình 17: Hệ liên đoàn 60
Hình 18: Mụ hình giao tiếp giữa Agent A và Agent B 73
Hình 19: Mô hình hệ thống 80
Hình 20: Mô hình AUML của agent tổng quát 85
Hình 21: AUML của agent giao diện 86
Hình 22: AUML của agent điều phối 87
Hình 23: AUML của agent xử lý ontology 87
Hình 24: AUML của agent xử lý dữ liệu 88
Hình 25: AUML của agent chuyên gia 89
Hình 26: Cây khái niệm hình thành bệnh án số 90
Hình 27: Quá trình điều trị của bệnh nhân 90
Bảng các từ viết tắt:
VIẾT TẮT TỪ GÔC Ý NGHĨA
ACL Agent Communication
Language
Ngôn ngữ truyền thông agent
DAML-
OIL
Một loại ngôn ngữ ontology
MAS Multi-Agents System Hệ thống phần mềm đa Agent
OWL Ontology Web Language Ngôn ngữ ontology cho ứng dụng
Web

RDF Resource Description
Framework
Chuẩn mô tả tài nguyên ontology
RDFS RDF Schema Giản đồ mở rộng mô tả tài nguyên
ontology
BDI Belief – Desire – Intention kiến trúc agent có khả năng suy
luận
URL Uniform Resource Locator
XML Extensible Markup
Language
Ngôn ngữ định dạng mở rộng
SV thực hiện: Lê Đức An – CNPM K44 Trang 3/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
JADE Java Agent DEvelopment
Framework
framework & thư viện hỗ trợ phát
triển ứng dụng hướng agent.
FA Facilitator Agent Agent trung gian đặc biệt
ICL Inter-Agent
Communication Language
Khái niệm tổng quát về ngôn ngữ
truyền thông giữa các agent trong
cộng đồng agent.
GUI Graphical User Interface Giao diện người sử dụng
Lời nói đầu:
Trong những năm gần đõy, việc chăm sóc sức khoẻ cộng đồng ngày
càng được chú trọng. Công việc này đòi hỏi trình độ chuyên môn cũng như
kinh nghiệm của bác sĩ. Vấn đề này không chỉ thuộc trong phạm vi một cơ sở,
một vùng hay một quốc gia. Nó bao trùm trên phạm vi toàn cầu, chính vì vậy

đặt ra yêu cầu phải có sự chia sẻ tri thức, kinh nghiệm giữa những người trong
nghành. Áp dụng công nghệ thông tin vào bài toán này hoàn toàn có thể giải
quyết được, chúng ta xõy dựng lên một hệ thống dựa trên nền tảng internet
giúp phân tán tri thức rộng rói.
Công việc chuẩn đoán bệnh ngày này đã được hỗ trợ bởi các thiết bị
hiện đại. Song với các cơ sở y tế tuyến dưới, không có trang thiết bị hiện đại,
nên việc hỗ trợ chuẩn đoán là cần thiết. Nhất là với các bác sĩ mới vào nghề
cũn thiếu kinh nghiệm thực tế.
SV thực hiện: Lê Đức An – CNPM K44 Trang 4/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Lớp ứng dụng của Internet có nhiều triển vọng với công nghệ agent là
các vấn đề trong thương mại điện tử nói chung như tìm kiếm và lọc thông tin
theo yêu cầu, tự động ra quyết định, chọn đối tác và tiến hành giao dịch. Khả
năng linh hoạt và phối hợp trong hệ thống đa agent giúp chúng ta giải quyết
những vấn đề phức tạp mà một thực thể không đủ khả năng hoặc tri thức thực
hiện. Mô hình đa agent thích hợp với các hệ thống phức tạp về tổ chức cũng
như ra quyết định. Chớnh vì vậy tác giả đồ án này muốn áp dụng phương pháp
luận và cộng nghệ agent xõy dựng lên một mô hình lý thuyết của hê đa agent
và áp dụng giải quyết bài toán hỗ trợ chuẩn đoán bệnh.
Tuy nhiên, việc xây dựng một hệ thống hoàn chỉnh đòi hỏi nhiều công
sức trong khi thời gian làm đồ án có giới hạn. Vì vậy, đồ án tốt nghiệp này
khép lại trong phạm vi xõy dựng lên mô hình lý thuyết của hệ thống đa agent
và cài đặt hệ thống chuẩn đoán bệnh với một số chức năng minh hoạ điểm
mạnh của mô hình: quản lý thông tin, chuẩn đoán bệnh, giao tiếp agent trong
cộng đồng.
LỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp, em đã
nhận được sự giúp đỡ về mọi mặt của các thầy cô trong
khoa Công nghệ thông tin nói chung cũng như các thầy

cô trong bộ môn Công nghệ phần mềm nói riêng. Đặc
biệt là sự quan tâm, chỉ bảo tận tình của thầy giáo hướng
dẫn Ths. Lê Tấn Hùng.
SV thực hiện: Lê Đức An – CNPM K44 Trang 5/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Em xin trân trọng gửi tới thầy Lê Tấn Hùng cùng toàn
thể thầy cô giáo trong khoa Công nghệ thông tin - Trường
Đại học Bách Khoa Hà Nội lời cảm ơn sâu sắc nhất.
Đồng thời gửi lời cảm ơn đến bệnh viện quân y 108, bác
sĩ Lâm Khánh đã nhiệt tình giúp đỡ em hoàn thành đề tài
này!
Tác giả: Lê Đức An.
CƠ SỞ LÝ THUYẾT
1.1 Công nghệ Agent, xây dựng phần mềm hướng Agent
1.1.1 Trình bày lý thuyết chung về Agent
 Khái niệm agent
SV thực hiện: Lê Đức An – CNPM K44 Trang 6/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Trong những năm gần đõy, công nghệ agent và xõy dựng phần mềm
hướng agent trở nên khá phổ biến. Xuất phát từ một ý tưởng của Shoham
(Shoham, Yoav. hoạt động trong lĩnh vực trí tuệ nhõn tạo), công nghệ agent
ngày càng phát triển. Ban đầu agent sinh ra với mục đích hỗ trợ quản lý khối
dữ liệu phõn tán khổng lồ [5]. Hiện nay, khái niệm về agent cũn chưa thống
nhất, dưới đõy là một số khái niệm lột tả được bản chất của agent:
o Agent là một thực thể nào đó có khả năng cảm nhận môi trường
xung quanh thông qua những bộ phận cảm nhận và hoạt động trên
môi trường đó nhờ các bộ phận phản ứng.
o Agent có lý trí thực hiện các hành động mà Agent cho rằng

những hành động này nhằm tối đa hiệu năng hoạt động trong khả
năng của Agent. Những hành động này dựa trên các dấu hiệu là kết
quả của sự phối hợp giữa các tri giác và dựa trên tri thức của Agent.
o Agent có khả năng tự chủ. Nghĩa là nó có thể mở rộng khả năng
hoạt động hoặc đưa ra các quyết định dựa trên kinh nghiệm của bản
thân Agent chứ không phụ thuộc vào môi trường.
Chúng ta có thể đưa ra một khái niệm tổng quát về agent như sau:
“Agent là một thực thể (phần cứng hay phần mềm) tồn tại và hoạt động
trong một môi trường nhất định. Agent có khả năng kiểm soát trạng thái và
hoạt động độc lập với các thực thể khác. Agent chỉ trao đổi, cộng tác với các
thành phần trung gian khi không có đủ điều kiện, thông tin hay tri thức để tự
thực hiện công việc. Một agent có thể có tính phản xạ hoặc có tính chủ động,
hoặc có cả hai tính chất đó. Với tính phản xạ, agent giống một hệ thống
hướng sự kiện. Với tính chủ động, agent là một hệ thống hướng mục đích.
Agent có thể hoạt động liên tục hay tạm dừng nhưng trạng thái của agent phải
luôn luôn toàn vẹn”.
 Các đặc trưng của agent
Agent phát triển từ khái niệm đối tượng thông thường, song nó có
những đặ trưng nổi trội thể hiện ưu điểm của agent so với đối tượng thông
thường:
SV thực hiện: Lê Đức An – CNPM K44 Trang 7/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Hình 1: Những đặc điểm của agent
Dưới đõy chúng ta tỡm hiểu các đặc trưng cơ bản của agent.
o Tính phản xạ: Agent cảm nhận môi trường (có thể là thế giới
thực, người sử dụng thông qua giao diện, các agent khác, Internet,
…) và phản ứng kịp thời trong một khoảng thời gian nhất định nào
đó. Tính phản xạ là một trong các yêu cầu cơ bản đối với agent
thông minh và được hỗ trợ để mở rộng bởi tất cả các agent khác.

Agent phải có bộ cảm nhận phù hợp, hoặc sở hữu các mô hình bên
trong của agent, có khả năng phản xạ đối với các thay đổi của môi
trường. Agent quan sát là một ví dụ của agent phản xạ đơn giản.
o Tính chủ động / Tính hướng đích: Agent không những phản
ứng lại môi trường, mà chỳng cũn có thể hành động có mục đích và
chủ động, tranh thủ thời cơ để đạt được mục đích đú. Tớnh chủ
động là cấp cao hơn khả năng phản xạ. Để agent có thể tự nhận các
yêu cầu ban đầu thì agent phải cú cỏc mục đích được xác định trước
kể cả hệ thống đích phức tạp. Tính chất toàn diện và độ phức tạp
của các hệ thống đích thích hợp là rất quan trọng. Ví dụ: nếu một
agent chỉ có nhiệm vụ chung là thu thập thông tin trong lĩnh vực cụ
thể nào đó thỡ nú không thể làm gì hơn ngoài việc giám sát những
thông tin đặc biệt và phản ứng với những thay đổi. Trong trường
hợp xuất hiện thờm cỏc thông tin mới đáng quan tâm khỏc thỡ tớnh
SV thực hiện: Lê Đức An – CNPM K44 Trang 8/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
chủ động biểu hiện rất hạn chế. Mặt khác, nếu agent biết rõ hệ thống
đích không chỉ ở mục đích tổng quan mà còn hiểu rõ từng mục đích
con thì mỗi mục đích con này sẽ cho phép agent thực hiện nhiệm vụ
chính xác hơn. Tính chủ động của agent chỉ thực sự thể hiện ở các
hệ thống dích phức tạp.
o Khả năng suy luận / Tự học: Mỗi agent thuộc một lĩnh vực
phải có những hiểu biết cơ bản về lĩnh vực đó. Tuy nhiên, mức độ
hiểu biết có thể được chia ra thành nhiều trình độ khác nhau từ các
agent đơn lẻ với khả năng hiểu biết giới hạn tới các hệ thống phức
tạp, thông minh cao hơn. Trên cơ sở tri thức đó, agent có khả năng
suy diễn để đưa ra các hành động thích hợp. Tri thức riêng này sẽ
được cập nhật thương xuyên trong quá trình hoạt động. Việc tích
luỹ này có thể từ các agent khác hoặc từ các tri thức liên quan mà

agent tự thu thập được.
o Tính tự chủ: Agent có thể hành động trong những khoảng thời
gian tương đối dài mà không cần sự can thiệp của con người và
tương tác của môi trường. Agent có khả năng kiểm soát nhất định
đối với hành động và trạng thái bên trong của mình. Ðể có khả năng
tự chủ, agent phải có khả năng điều khiển các hành động và các
trạng thái bên trong, đồng thời được cung cấp tài nguyên cũng như
các yêu cầu để thực hiện nhiệm vụ.
o Tính di động: Tính di động là khả năng agent đi qua các mạng
truyền thông điện tử. Tính di rất có lợi trong việc gửi các chuỗi
thông điệp qua mạng. Nếu agent di động hoạt động tự chủ, người sử
dụng không cần yêu cầu duy trì kết nối mạng liên tục. Thay vào đó,
người dùng có thể cung cấp cho agent nhiệm vụ, gửi nó qua mạng
và rời bỏ kết nối mạng. Ngay khi agent thu được kết quả yêu cầu, nó
sẽ tự động thông báo ngược trở lại bằng việc thiết lập kết nối mạng
cho người sử dụng hoặc chờ kết nối mạng của người dùng. Điều này
cho phép giảm chi phí kết nối mạng.
SV thực hiện: Lê Đức An – CNPM K44 Trang 9/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
o Truyền thông / Cộng tác: Agent thường yêu cầu tương tác với
môi trường để hoàn thành nhiệm vụ. Hai thuộc tính của hoạt động
tương tác là: truyền thông và đồng bộ. Agent có thể sử dụng khả
năng truyền thông để thực hiện liên lạc với môi trường. Ngôn ngữ
truyền thông agent cung cấp các giao thức chuẩn đối với việc thay
đổi thông tin cho phép các agent truyền thông với nhau. Agent được
cung cấp một loạt các truy vấn được định nghĩa chính xác (những
truy vấn này được sử dụng để truyền thông với các agent khác) và
tập các câu trả lời được định nghĩa chính xác.
Cơ chế truyền thông mô tả thường chỉ thích hợp với hệ thống

agent đơn lẻ, truyền thông giữa các agent và tài nguyên bên ngoài.
Cơ chế này không thích hợp với đối thoại giữa một số agent với
mục đích cộng tác, phân đoạn các khả năng truyền thông. Sự cộng
tác giữa các agent đưa ra một số giải pháp tốt hơn và nhanh hơn đối
với những nhiệm vụ phức tạp vượt quá khả năng của một agent đơn
lẻ.
Dựa vào đặc trưng trên, chúng ta có thể phõn loại agent theo các đặc
trưng thể hiện của chúng. Có thể chia agent thành 7 nhúm:
o Agent cộng tác: là các agent có khả năng tự trị và liên kết với
các agent khác khi thực thi nhiệm vụ của chúng. Agent cộng tác
được sử dụng khi giải quyết các bài toán lớn, vượt quá khả năng và
tri thức của một agent đơn lẻ. Agent thực hiện việc cộng tác bằng
cách sử dụng các cơ chế truyền thông.
o Agent giao diện: đảm nhận việc giao tiếp với người sử dụng,
đõy là một agent hữu ích trong hệ agent phõn tán. Agent này có khả
năng tự trị khi hoạt động trên máy của người sử dụng.
o Agent di động: là các agent có khả năng di chuyển trong hạ tầng
mạng (như WAWs hoặc WWW). Agent di động bắt buôc phải có
tớnh tự trị, nó tự hoạt động trên mạng và trở về “hệ thống” khi đã
SV thực hiện: Lê Đức An – CNPM K44 Trang
10/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
hoàn thành nhiệm vụ (hoặc gửi kết quả về cho hệ thống thông qua
các giao thức truyền thông giữa agent và hệ thống).
o Agent thông tin: hỗ trợ con người tìm kiếm thông tin trờn cỏc
hệ thống hoặc mạng phân tán. Agent thông tin phải có khả năng
thực hiện các nhiệm vụ sau: xác định vị trí các nguồn thông tin,
trích thông tin từ các nguồn, lọc thông tin liên quan từ toàn bộ
lượng thông tin tìm thấy dựa vào tóm tắt yêu cầu của người sử

dụng, chuẩn bị và hiển thị các kết quả theo hình thức thích hợp.
Agent thông tin phải được cung cấp tri thức về các nguồn thông tin
có sẵn, lĩnh vực bài toán được xem xét cũng như ngữ nghĩa của
thông tin.
o Agent phản xạ: đõy là một loại agent đặc biệt, nó nghe phản
ứng lại những thay đổi của môi trường tác động đến nó (hoặc một
yêu cầu). Bản chất của agent phản xạ có 3 ý chớnh: không có đặc tả
trật tự làm việc (kế hoạch), được coi như một tập các module có khả
năng tớnh toán tự động (liên kết giữa các module không quá phức
tạp), chỉ thao tác dựa trên các đặc tả yêu cầu.
o Agent lai: là sự kết hợp của hay (hoặc nhiều hơn) các loại agent
trong một agent. Ở mỗi loại agent đó đều có điểm mạnh và điểm
yếu riêng. Việc “lai” này giúp phát huy điểm mạnh và giảm thiểu
các yêu điểm của từng loại agent.
o Agent thông minh: là loại agent mạnh mẽ, có khả năng tự chủ
cao, khả năng cộng tác với các agent khác, và đặc biệt là có khả
năng học. Đõy là loại agent đang được nhiều người hướng tới xõy
dựng và phát triển.
SV thực hiện: Lê Đức An – CNPM K44 Trang
11/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Hình 2: Phân loại agent theo khả năng
 Kiến trúc tổng quát của agent.
Mô hình tương tác và cầu trúc bên trong của agent thể hiện mối liên
quan giữa agent và môi trường mà nó tồn tại.
Hình 3: Mô hình cõu trỳc và tương tác với môi trường của agent.
Chúng ta có thể nhận thấy các hành động của agent đều phụ thuộc vào
tác động của môi trường bên ngoài hoặc thông tin từ agent khác, và các hành
động này lại tác động ngược trở lại đối với môi trường.

Tập trạng thái môi trường có thể có: S = {s1, s2, s3, …}
Tập hành động của agent: A = {a1, a2, a3, …}
SV thực hiện: Lê Đức An – CNPM K44 Trang
12/96
Hợp tác Tự học
Tự trị
Agent thông minh
Agent cộng tác
Agent cộng tác / học
Agent giao diện
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
Một agent chuẩn được định nghĩa là một tập các ánh xạ từ tập trạng thái
của môi trường vào tập hành động của agent: Action: S* → A. Mỗi
hành động của agent đều phụ thuộc vào những hành động trước của nó. Và
mỗi hành động đó sẽ tác động đến môi trường theo dạng env: S x A → ρ(S).
Trong đó ρ(S) là một tập trạng thái của môi trường. Có 2 loại tác động lên môi
trường:
o Không xác định trước: khi ρ(S) = { Sx, Sy}
o Xác định trước khi ρ(S) = {Sx}
Để tạo ra sự liên kết tương tác qua lại như vậy, agent phải được cài đặt
hai loại hàm sau: see() và action().
Hàm see():được cài đặt dưới dạng phần cứng hoặc phần mềm để thu
nhận trạng thái của môi trường và tạo ra tri thức riêng cho agent.
Hàm action(): là biểu diễn hệ thống ra quyết định của agent
Hình 4 Cách agent tương tác với môi trường
Để có quyết định (do hàm action()) hợp lý, agent cần có tri thức từ hàm
see() chớnh xác và một tập tri thức quá khứ (kinh nghiệm) của agent trong quá
trình hoạt động
1.1.2 Công nghệ phần mềm hướng agent

Một phần mềm hướng agent là một hệ thống máy tính được đóng gói và
đặt trong một vài môi trường và có khả năng hành động mềm dẻo, tự trị trong
môi trường đó để đạt được các mục tiêu thiết kế của nó.
SV thực hiện: Lê Đức An – CNPM K44 Trang
13/96
AGENT
See
See
Action
Action
MÔI TRƯỜNG
MÔI TRƯỜNG
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
 Khi nhìn nhận một thế giới theo kiểu hướng agent, rõ ràng rằng một
agent đơn lẻ là không đủ. Hầu hết các bài toán đòi hỏi hoặc là liên quan
đến đa agents: để thể hiện tính chất phân quyền của bài toán, đa quỹ
tích của điều khiển, đa viễn cảnh hay các quan tâm cạnh tranh.
 Hơn nữa, các agent sẽ cần để tương tác với các agent khác, để đạt được
các mục tiêu riêng của chúng hoặc để điều khiển các phụ thuộc sinh ra
từ các trạng thái trong môi trường chung. Các tương tác này xuyên suốt
từ các thao tác ngữ nghĩa đơn giản (khả năng thay đổi các giao tiếp toàn
diện) qua các tương tác kiểu client – server truyền thống (khả năng yêu
cầu một hành động cụ thể được thực hiện), tới các tương tác xã hội (khả
năng phối hợp, điều phối và thương thuyết về cách thức của hành
động). Tuy nhiên, bất cứ tính chất nào của quá trình xã hội cũng có hai
điểm tương tác agent khác biệt định tính mà từ đó xuất hiện ở các mô
hình công nghệ phần mềm khác.
o Thứ nhất, các tương tác hướng agent thường xảy ra ở ngôn ngữ
giao tiếp agent bậc cao (điển hình dựa vào lí thuyết hành vi ngôn

ngữ). Do đó, các tương tác thường là được điều khiển ở mức tri
thức: trong các giới hạn mà các mục đích nên theo.
o Thứ hai, vì agent là giải pháp mềm dẻo cho bài toán, việc thao
tác trên một môi trường mà qua đó chúng chỉ có quan sát và điều
khiển cục bộ, các tương tác cần được xử lí trong một kiểu mềm
dẻo tương tự. Bởi vậy, các agent cần dụng cụ tính toán để đưa ra
các quyết định phụ thuộc vào ngữ cảnh về tính chất và phạm vi
của các tương tác của chúng và để bắt đầu (hoặc đáp ứng) các
tương tác mà không cần thiết được dự đoán trước ở giai đoạn
thiết kế.
 Trong hầu hết các trường hợp, các agents hành động để đạt đến các
mục tiêu đại diện cho các cá nhân riêng lẻ hay các công ty. Vì vậy, khi
các agents tương tác, thường có một số ngữ cảnh cơ bản thuộc tổ chức.
Ngữ cảnh này trợ giúp việc định nghĩa tính chất của mối quan hệ giữa
SV thực hiện: Lê Đức An – CNPM K44 Trang
14/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
các agents. Ví dụ, chúng có thể hoạt động ngang hàng trong một nhóm,
một agent có thể là ông chủ của các agents khác, hoặc chúng có thể
được bao hàm trong một loạt các mối quan hệ chủ - tớ. Để giành được
các liên kết đú, cỏc hệ thống agent thường cú cỏc cấu trúc rõ ràng cho
việc mô hình các mối quan hệ tổ chức (chẳng hạn như peer, boss,…) và
các cấu trúc tổ chức (chẳng hạn như teams, groups, coalitions,…). Nên
lưu ý rằng trong nhiều trường hợp, các mối quan hệ này có thể thay đổi
trong khi hệ thống hoạt động.
 Tương tác xã hội có nghĩa là sự tồn tại các mối quan hệ tiến hóa (chẳng
hạn một agent quyết định một giao dịch mới) và các mối liên hệ mới
được tạo ra (chẳng hạn như một số các agents có thể hình thành một
nhóm để đưa ra một dịch vụ cụ thể mà không có một cá nhân nào có

thể đề nghị). Phạm vi thời gian của các mối quan hệ đó có thể được
thay đổi nhiều: từ chỗ chỉ đủ dài để đưa ra một dịch vụ cụ thể một lần
tới một liên kết lâu dài. Để đương đầu với sự thay đổi và biến động này,
các nhà nghiên cứu agent đó cú những nỗ lực đáng kể: phát minh ra các
giao thức mà cho phép cỏc nhúm tổ chức được hình thành và giải tán,
chỉ rõ các cơ chế để đảm bảo cỏc nhúm hoạt động cùng nhau trong mô
hình kết dính, và phát triển các cấu trúc để mô tả đặc điểm các hành vi
vĩ mô của các tập hợp.
 Bằng cách vẽ các vấn đề trên cùng nhau, ta có thể thấy việc chấp nhận
một hướng tiếp cận hướng agent với công nghệ phần mềm có nghĩa là
việc phân rã bài toán thành nhiều thành phần tương tác và tự trị (agents)
mà cú cỏc mục tiêu cụ thể để đạt tới. Các mô hình trừu tượng chủ yếu
định nghĩa “agent – oriented mindset” là các agents, các tương tác và
các tổ chức. Cuối cùng, các cấu trúc và cơ chế rõ ràng thường là có sẵn
cho việc mô tả và điều khiển sự phức tạp và thay đổi một mạng các mối
quan hệ tổ chức mà tồn tại giữa các agents.
SV thực hiện: Lê Đức An – CNPM K44 Trang
15/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
1.2 Hệ thống đa Agent
 Khái niệm
Hiện tại có rất nhiều những định nghĩa khác nhau về thuật ngữ hệ thống
đa agent (MAS – multi-Agent System). Một hệ thống đa agent là một tập các
thực thể có khả năng làm việc cùng với nhau để tỡm ra lời giải cho những vấn
đề vượt ngoài khả năng hoặc tri thức của một cá thể. Thời gian gần đõy, thuật
ngữ hệ thống đa agent ngày càng phổ biến, nó được sử dụng cho mọi hệ thống
hình thành từ những thành phần có khả năng tự trị, thể hiện một số đặc điểm
sau:
o Mỗi agent không có đủ khả năng giải quyêt trọn vẹn một vấn đề.

o Không có sự điều khiển toàn bộ hệ thống.
o Dữ liệu được tổ chức phõn tán.
o Việc tớnh toán thiếu đồng bộ.
Một trong những nhõn tố quyết định sự phát triển của hệ thống đa agent
là việc áp dụng nền tảng Internet, cung cấp cơ sở cho một môi trường mở, nơi
agent có thể tương tác với các agent khác để hợp tác và chia sẻ kinh nghiệm.
Để tương tác trong môi trường như vậy, agent cần giải quyết được hai vấn đề:
chúng có khả năng tỡm được những agent khác (khi các agent có thể hiện hữu,
không tồn tại, hoặc có thể di chuyển bất kỳ thời điểm nào); và chúng có khả
năng tương tác.
 Ưu điểm của hệ đa agent
Trong phần trên, chúng ta đã biết rằng mỗi agent có một mức độ thông
minh khác nhau mỗi khi được tạo ra và khă năng học của mỗi agent cũng khác
nhau trong quá trình tương tác với các agent khác hoặc với môi trường bên
ngoài. Tuy nhiên, khi các agent liên kết với nhau tạo thành một hệ thống hợp
nhất, hệ thống đa agent (Multi Agent System – MAS). Trong hệ thống này,
các agent tương tác với nhau và hỗ trợ cho nhau để hoàn thành nhiệm vụ của
bản thân agent cũng như nhiệm vụ chung của hệ thống. Hệ thống này có một
số ưu điểm sau:
SV thực hiện: Lê Đức An – CNPM K44 Trang
16/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
• Có khả năng giải quyết các vấn đề lớn, ngoài khả năng của agent
đơn lẻ.
• Cho phép giải quyết các bài toán có tính phân tán như quản lý mạng
viễn thông v.v.
• Cho phép giải quyết các bài toán trong đó thông tin và tri thức có
nguồn gốc phân tán.
Tuy nhiên, để hệ thống đa agent hoạt động có hiệu quả thì nhất thiết

phải có một cơ chế truyền thông giữa các agent.
1.3 Môi trường JADE, hỗ trợ xây dựng hệ thống hướng Agent
1.3.1 Giới thiệu về JADE
JADE (Java Agent DEvelopment Framework) là một phần mềm viết
hoàn toàn trên ngôn ngữ Java. Nú giỳp cho hoạt động của hệ đa agent trở nên
đơn giản thông qua một middle-ware đòi hỏi tuân theo các tiêu chuẩn kỹ thuật
của FIPA và JADE bao gồm một tập hợp các công cụ hỗ trợ gỡ lỗi. Môi
trường agent có thể được phân tán trên nhiều mỏy (khụng nhất thiết phải dùng
chung một hệ điều hành) và cấu hình có thể được điều khiển thông qua một
giao diện người dùng (GUI) từ xa. Cấu hình thậm chí có thể thay đổi tại thời
điểm chạy bằng cách dời agent từ máy này sang mỏy khỏc khi có yêu cầu. Hệ
thống duy nhất đòi hỏi là Java Run Time phiên bản 1.2.
Kiến trúc truyền thông trong JADE hỗ trợ việc gửi/nhận các thông báo
rất linh hoạt và hiệu quả. JADE tạo ra và quản lí một hàng đợi các thông báo
ACL (Agent Communication Language) riêng đối với mỗi agent. Agent có thể
truy nhập vào hàng đợi của nó bằng cách kết hợp nhiều phương thức:
blocking, polling, timeout và pattern matching based.
JADE là một môi trường phát triển phần mềm với mục đích phát triển
hệ đa agent (MAS) và các ứng dụng theo tiêu chuẩn của FIPA cho agent thông
minh. Nó bao gồm hai sản phẩm chính: môi trường agent tuân theo các tiêu
chuẩn của FIPA và một package để phát triển các agent trong Java. JADE
hoàn toàn được viết bằng Java do đó một lập trình viên nếu muốn khai thác
SV thực hiện: Lê Đức An – CNPM K44 Trang
17/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
môi trường này cũng phải dùng Java. JADE được viết trên ngôn ngữ Java và
được tạo thành từ rất nhiều gói Java, mang đến cho người lập trình ứng dụng
các thành phần chức năng tạo sẵn cũng như các giao diện (abstract interface)
để tự thiết kế. Java là ngôn ngữ lập trình được chọn để xây dựng JADE do

những điểm mạnh của nó: sử dụng lập trình hướng đối tượng trong các hệ
phân tán không đồng nhất, một số đặc điểm đó là OSR (Object Serialization,
Reflection) và RMI (Remote Method Invocation).
Jade tích hợp một số công cụ giúp đơn giản việc quản trị và phát triển
ứng dụng. Mỗi công cụ được chứa trong các package riêng biệt trong
jade.tools. Hiện nay, JADE cung cấp một số các công cụ sau:
 Remote Management agent - RMA: hoạt động trong môi trường đồ
hoạ giúp cho việc quản lý và điều khiển platform. RMA đầu tiên có
thể được tạo ra với tuỳ chọn "-gui ", sau đú thì một số GUI có thể
được kích hoạt. RMA có khả năng khởi động các công cụ Jade
khác.
 Dummy agent: là một công cụ giám sát và gỡ lỗi, cung cấp giao
diện người dùng dạng đồ hoạ và một JADE agent. Thông qua giao
diện này, người dùng có thể tạo ra các thông báo và gửi chúng đi tới
các agent, nó cũng có khả năng hiển thị danh sách tất cả các thông
điệp ACL nhận và gửi
 Sniffer: là một agent có thể chặn các thông báo ACL trong khi
chúng đang được truyền và hiển thị dưới dạng đồ hoạ bằng cách sử
dụng cỏc kớ hiệu tương tự như lược đồ tuần tự trong UML.
 IntrospectorAgent: là một công cụ hữu ích cho phép kiểm soát
vòng đời của agent và các thông báo ACL.
 SocketProxyAgent: đõy là một agent đơn giản, hành động giống
như một bidirectional gateway giữa môi trường JADE và kết nối
TCP/IP. Thông báo ACL di chuyển trên dịch vụ giao vận JADE,
được chuyển sang một sâu ASCII và chuyển đi qua các kết nối
socket. Các thông điệp ACL có thể quay lại qua TCP/IP này vào
JADE platform. Agent này rất hữu ích cho việc điều khiển bức
SV thực hiện: Lê Đức An – CNPM K44 Trang
18/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn

Hùng
tường lửa hay cung cấp các platform tương tác với các Java applets
trong một trình duyệt Web.
 DF GUI: là một giao diện đồ hoạ hoàn chỉnh, giúp người phát triển
hệ thống quan sát và điều khiển hệ thống ở mức hạ tầng, điều khiển
trực tiếp từng agent.
1.3.2 Ðặc điểm của JADE
JADE có một số đặc điểm chính sau:
 Platform agent theo chuẩn FIPA: bao gồm AMS, ACC và DF mặc
định. Cả 3 agent này đều được kích hoạt tự động lúc khởi tạo
platform.
 Platform agent phân tán: agent có thể được phân vào một vài máy
chủ. Do chỉ có một ứng dụng Java nên chỉ có một Java Virtual
Machine được thực hiện trên mỗi máy chủ. Các agent được thi hành
như một chuỗi các chương trình Java và tồn tại bên trong agent
container. Agent container cung cấp các hỗ trợ cho các agent trong
quá trình thực hiện. Agent container và một số agent được quản lý
từ máy chủ ở xa thông qua giao diện đồ hoạ.
 Các công cụ gỡ lỗi hỗ trợ cho việc phát triển các ứng dụng đa agent
trên JADE.
 Hỗ trợ các thao tác phức tạp, các hoạt động agent song song và hợp
nhất qua các mô hình hành vi. JADE lên kế hoạch cho các hành vi
của agent theo kiểu không ưu tiên.
 Hỗ trợ đa phạm vi: Một số DF agent theo chuẩn FIPA có thể được
bắt đầu lúc thực hiện chương trình và có thể được liên kết thành một
tổ chức để thi hành các ứng dụng đa vùng. Trong đó một vùng là
một tập hợp logic các agent mà các thiết bị của chúng được đưa ra
từ trước thông qua một tập các công cụ hỗ trợ. Mỗi DF có một giao
diện đồ hoạ và tất cả các năng lực chuẩn định nghĩa bởi FIPA (khả
năng nhận thức, nhận thức lại, thay đổi và khả năng tìm kiếm những

SV thực hiện: Lê Đức An – CNPM K44 Trang
19/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
mô tả agent, khả năng thống nhất trong một mạng DF). Điều đó liên
quan đến việc thực hiện một môi trường agent đa phạm vi.
 Hiệu quả truyền tải các thông điệp ACL bên trong các platform
giống nhau. Trên thực tế các thông điệp được chuyển nhượng, được
mó hoỏ thành các đối tượng Java hơn là cỏc xõu.
 Thư viện các giao thức tương tác FIPA luôn sẵn sàng như FIPA-
request và FIPA-contract-net.
 Đăng ký và xoá bỏ đăng ký của agent với AMS là tự động.
 Hỗ trợ các ngôn ngữ định nghĩa ứng dụng và các ontology.
 Giao diện trong quy trình cho phép các ứng dụng bên ngoài có thể
can thiệp vào các agent tự chủ.
1.3.3 Kiến trúc của JADE
FIPA đưa ra mô hình chuẩn của một agent platform như hình vẽ sau:
Hình 5: Kiến trúc agent platform theo chuẩn của FIPA
• Hệ thống quản lý agent (AMS - Agent Management System) là một
agent được sử dụng để giám sát tất cả các điều khiển truy nhập và sử
dụng agent platform. Mỗi một agent platform chỉ tồn tại duy nhất một
AMS. AMS cung cấp dịch vụ trang trắng (White – Page) và vòng đời
(Life- cycle), duy trì một thư viện các định danh của agent (AID –
Agent IDentifier) và trạng thái của agent. Mỗi agent phải đăng kí với
AMS để nhận AID của nó.
SV thực hiện: Lê Đức An – CNPM K44 Trang
20/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
• Agent DF (Directory Facilitator) là agent cung cấp dịch vụ trang vàng

(Yellow – Page) cho agent platform.
• Hệ thống giao chuyển thông điệp MTS (Message Transport System)
hay còn gọi là kênh kết nối agent ACC (Agent Communication
Channel) là một thành phần phần mềm điều khiển tất cả các trao đổi
thông điệp bên trong agent platform, bao gồm các thông điệp từ/đến
các platform ở xa.
JADE hoàn toàn tuân theo kiến trúc này và khi một JADE platform
được thiết lập, AMS và DF lập tức được tạo ra và module ACC được tạo ra
cho phép kết nối các thông điệp. Agent platform được chia ra trên nhiều máy
chủ, chỉ có duy nhất một ứng dụng Java, vì vậy chỉ có duy nhất một Java
Virtual Machine (JVM) được thực thi trên mỗi máy chủ. Mỗi JVM là một
container cơ sở chứa các agent, nó cung cấp một môi trường cho các agent
thực thi trên đó và cho phép nhiều agent chạy đồng thời trên một máy chủ.
Main - Container agent chứa các agent. AMS và DF tồn tại trên đó và RMI
đăng kí vào container này. Các container khác chứa agent kết nối với Main -
Container agent và cung cấp một môi trường đầy đủ cho việc thực thi các tập
hợp JADE agent khác.
Hình 6: Mô hình JADE Agent platform phân tán
SV thực hiện: Lê Đức An – CNPM K44 Trang
21/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
1.3.4 Các hệ thống giao tiếp trong JADE
Để phục vụ cho việc điều khiển quá trình giao tiếp, mỗi main-container
trong JADE bao gồm một RMI (Remote Method Invocation). RMI này được
sử dụng để các container khác đăng ký với platform khi bắt đầu hoạt động.
Trong quá trình hoạt động của mình, main-container duy trì một Agent
Container Table và một Agent Global Descriptor được cập nhật mỗi khi một
container tạo ra hay huỷ bỏ một agent. Bên cạnh đó mỗi container duy trì một
danh sách cache các tham chiếu đối tượng của các container khỏc. Cỏc tham

chiếu này được bổ xung vào cache khi các thông điệp được gửi đi và nú giỳp
cho Agent Global Descriptor tìm kiếm các thông điệp.
Cơ chế giao tiếp trong JADE rất linh hoạt, các container luôn chọn cơ
chế truyền thông có sẵn và hiệu quả nhất dựa theo sự định vị của agent nhận
thông điệp:
• Cùng container: không sử dụng lời gọi từ xa.
• Cùng platform, khác container nhưng được tìm thấy trong cache: một
RMI riêng lẻ sẽ được gọi, đối tượng thông điệp được thực hiện tuần tự
hoặc không tuần tự qua RMI.
• Cùng platform, khác container nhưng không tìm thấy trong Cache: hai
RMI được gọi. Một cái để cập nhật cache và cái thứ hai thực hiện gửi
thông điệp.
• Khác platform: một IIOP gọi đến từ một platform từ xa. Quá trình trải
qua hai bước đối với cả phía truyền và phía nhận. Đối với phía truyền
thông điệp, từ các đối tượng Java chuyển sang cỏc xõu Java và cuối
cùng thành cỏc dũng byte IIOP. Ngược lại đối với phía nhận dòng byte
IIOP được chuyển thành cỏc xõu Java và cuối cùng thành các đối
tượng Java.
Đặc tả FIPA 2000 đề xuất một số các giao thức chuyển giao thông điệp
MTP (Message Transport Protocol) khác nhau. Khi đú cỏc thông điệp ACL
có thể được giải phóng khỏi cách thức cứng nhắc trước đây. JADE bao gồm
một framework để viết và triển khai nhiều MTP theo cách thức linh hoạt. Một
SV thực hiện: Lê Đức An – CNPM K44 Trang
22/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng
MTP dựa theo FIPA có thể được biên dịch riêng rẽ và đặt trong một file jar,
mã sẽ được tải tự động khi MTP được kích hoạt. Hơn nữa, mỗi JADE
container có thể có một số các MTP hoạt động, do vậy người quản lý platform
có thể chọn bất cứ cái gì mà mình muốn. JADE thực hiện đường truyền thông

điệp cho cả thông điệp đến và đi. Khi một MTP mới được kích hoạt trên một
container, JADE platform thu được một một địa chỉ mới và bổ xung vào danh
sách trong platform profile.
Trong suốt vòng đời, một JADE agent có thể được liên lạc thông qua
địa chỉ khác nhau. JADE tự động lưu lại trên cả profile của platform và cơ sở
nhận thức AMS dựa trên sự nhất quán với MTP thực tế được kích hoạt trong
platform vào thời điểm hiện hành.
Do vậy một agent có thể dễ dàng thu được danh sách địa chỉ đầy đủ của
các agent khác thông qua việc yêu cầu đến AMS từ xa, hoặc đối với platform
profile hoặc với một hoạt động tìm kiếm thông thường. Trong trường hợp đầu,
đó là thông điệp ACL phải được gửi đến AMS:
( REQUEST
:sender (Agent-identifier :name InterfaceAgent@hercules:1099/JADE )
:receiver (set (Agent-identifier :name ams@hercules:1099/JADE ))
:content ((action (Agent-identifier :name ams@Zadig:1099/JADE )
(get-description )))
:language FIPA-SL0
:ontology FIPA-Agent-management
:protocol FIPA-request
)
Tuy nhiên, một agent khi gửi một thông điệp để bắt đầu một giao tiếp
có thể lựa chọn rõ ràng hơn một tập con các địa chỉ có sẵn từ thông điệp phản
hồi. Trong một số trường hợp, agent thậm chí có thể quyết định kích hoạt một
vài ứng dụng MTP đặc biệt không thuộc về platform mà thuộc bản thân agent.
Để hỗ trợ tính chất này, lớp agent cung cấp phương thức getAID() trả về nhận
dạng agent cho một agent. Khi agent được sinh ra, ID của Agent chứa đựng
toàn bộ các địa chỉ platform có sẵn, nhưng sau đó nó không được cập nhật
SV thực hiện: Lê Đức An – CNPM K44 Trang
23/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn

Hùng
thường xuyên. Mỗi agent được phép quản lý bản sao ID của nó khi nó muốn.
Nờỳ một agent muốn giữ bản cập nhật nó sẽ liên hệ với AMS để cập nhật lại
danh sách địa chỉ agent, mặt khác nó sẽ đặt vào trong AgentID của nó một tập
địa chỉ phù hợp (lấy từ danh sách platform). Trong JADE, có thể sử dụng các
Agent ID với một danh sách địa chỉ rỗng.
Một AID được gỏn nhón cho một agent do vậy nó có thể được nhận
dạng một cách rõ ràng trong thế giới agent. AID bao gồm tên và địa chỉ. JADE
sử dụng một cơ chế rất đơn giản để xây dựng tên duy nhất thông qua một nick
định nghĩa người sử dụng đến tên platform agent của nó, cách nhau bởi ký tự
@. Chỉ những tên hợp lệ đầy đủ mới được sử dụng trong ACLMessages.
Tất cả các thông điệp nhận bởi một agent được đặt trong một hàng đợi
riêng thông qua platform. Một số mô hình đã được áp dụng để nhận các thông
điệp từ những hàng đợi này:
• Hàng đợi thông điệp có thể được truy cập theo cách ngăn cản (sử dụng
phương thức blockingReceive()) hay không ngăn cản (sử dụng phương
thức receive()). Cách ngăn cản phải được sử dụng rất cẩn thận bởi vì
nó gây ra sự đình chỉ tất cả các hoạt động của agent và đặc biệt là đối
với các hành vi của nó. Cách không ngăn chặn trả về ngay lập tức giá
trị null khi thông điệp yêu cầu không có trong hàng đợi.
• Cả hai phương thức có thể được phát triển với khả năng đối chiếu mẫu
trong đó một tham số truyền mô tả mẫu của ACLMesage được yêu
cầu.
• Truy cập ngăn cản có thể có một tham số timeout.
• Hai hành vi ReceiverBehaviour và SenderBehaviour có thể được sử
dụng để lên lịch các nhiệm vụ agent yêu cầu nhận hay gửi thông điệp.
SV thực hiện: Lê Đức An – CNPM K44 Trang
24/96
Đồ án tốt nghiệp đại học Giáo viện hướng dẫn: Ths.Lê Tấn
Hùng

Hình 7: Các thành phần giao tiếp trong JADE
1.3.5 Vòng đời của một JADE Agent
Lớp agent mô tả một lớp chung cho các agent định nghĩa bởi người sử
dụng. Do đó, một JADE Agent đơn giản là một thể hiện của một lớp java định
nghĩa bởi người sử dụng kế thừa từ lớp agent. Điều này nói lên sự kế thừa các
đặc điểm tương tác cơ sở với agent platform (đăng ký, cấu hình, quản lý từ xa,
…) và một tập các phương thức cơ sở có thể được gọi để thực hiện những
hành vi thông thường của agent (gửi / nhận thông điệp, sử dụng các giao thức
tương tác chuẩn, đăng ký với một vài domain ).
Mô hình hoạt động của một agent là đa nhiệm tức là các nhiệm vụ được
thực hiện đồng thời. Mỗi dịch vụ hay một chức năng cung cấp bởi một agent
sẽ thực hiện nhiều hành vi.
SV thực hiện: Lê Đức An – CNPM K44 Trang
25/96

×