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

ứng dụng agent phần mềm trong tích hợp thông tin về phương tiện giao thông

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.19 MB, 84 trang )

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

NGUYỄN THỊ THÚY HẰNG
ỨNG DỤNG AGENT PHẦN MỀM TRONG TÍCH HỢP
THÔNG TIN VỀ PHƯƠNG TIỆN GIAO THÔNG
LUẬN VĂN THẠC SĨ
Hà Nội - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
o0o
NGUYỄN THỊ THÚY HẰNG
ỨNG DỤNG AGENT PHẦN MỀM TRONG TÍCH HỢP
THÔNG TIN VỀ PHƯƠNG TIỆN GIAO THÔNG
Ngành: Công nghệ Thông tin
Chuyên ngành: Công nghệ Phần mềm
Mã số: 60.48.10
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VIỆT HÀ
Hà Nội - 2009
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá
nhân tôi, không sao chép lại của người khác. Trong toàn bộ nội dung của luận văn,
những điều đã trình bày là của cá nhân tôi hoặc là được tôi tổng hợp từ nhiều nguồn tài
liệu. Tất cả các nguồn tài liệu tham khảo có xuất xứ rõ ràng và được trích dẫn hợp
pháp.
Tôi xin chịu toàn bộ trách nhiệm và chịu mọi hình thức kỷ luật theo quy định
cho lời cam đoan của tôi.
Hà Nội, tháng 12 năm 2009
Nguyễn Thị Thúy Hằng
i


LỜI CẢM ƠN
Lời đầu tiên tôi xin gửi lời cảm ơn chân thành nhất tới TS. Nguyễn Việt Hà,
Trưởng bộ môn Công nghệ phần mềm – khoa Công nghệ thông tin – Trường Đại học
Công nghệ - đã dành rất nhiều thời gian quí báu để tận tình hướng dẫn, chỉ bảo và định
hướng cho tôi trong suốt thời gian hoàn thành luận văn.
Tôi xin bày tỏ lòng biết ơn tới các thầy cô giáo Khoa Công nghệ thông tin -
Trường Đại học Công nghệ - ĐHQGHN đã truyền đạt cho em những kiến thức, kinh
nghiệm quý báu trong suốt thời gian học tập tại trường. Tôi xin gửi lời cảm ơn sâu sắc
tới các đồng nghiệp tại Trung tâm Công nghệ thông tin – Bộ Giao thông vận tải và
Cục Hàng Hải đã hết sức tạo điều kiện thuận lợi cho tôi trong suốt quá trình học tập và
thực hiện luận văn.
Tôi xin chân thành cảm ơn bạn bè và gia đình tôi, những người thân yêu luôn
luôn ở bên khuyến khích, động viên và ủng hộ tôi trong học tập cũng như trong cuộc
sống.
Do thời gian và trình độ có hạn nên luận văn này không thể tránh khỏi những
thiếu sót. Rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo, bạn bè, các
quý vị quan tâm tới vấn đề này để luận văn được hoàn thiện hơn.
Trân trọng cảm ơn!
Hà Nội, tháng 12 năm 2009
Nguyễn Thị Thúy Hằng
ii
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC CHỮ VIẾT TẮT vi
DANH MỤC BẢNG BIỂU vii
DANH MỤC HÌNH VẼ viii
MỞ ĐẦU 1
Chương 1 Tổng quan về agent 3

1.1 KHÁI NIỆM AGENT 3
1.1.1 Định nghĩa Agent 3
1.1.2 Một số agent điển hình 4
1.2 HIỆN TRẠNG CÔNG NGHỆ AGENT 8
1.2.1 Hiện trạng sử dụng agent 8
1.2.2 Các kiểu ứng dụng agent hiện nay 9
1.2.3 Hiện trạng sử dụng công nghệ agent 11
1.3 CÁC VẤN ĐỀ CHÍNH CỦA CÔNG NGHỆ AGENT 12
1.3.1 Truyền thông giữa các agent 12
1.3.2 Quản lý vòng đời agent 14
1.3.3 Tính di động 15
1.4 ĐÁNH GIÁ MỘT SỐ AGENT PLATFORM 15
1.4.1 Giới thiệu 15
1.4.2 Các chuẩn agent 16
iii
1.4.3 Khảo sát các tài liệu nghiên cứu về agent platform 17
1.4.4 Kết quả đánh giá các agent platform 18
1.4.5 Kết luận 24
Chương 2 Tích hợp thông tin 26
2.1 TỔNG QUAN VỀ TÍCH HỢP THÔNG TIN 26
2.1.1 Khái niệm tích hợp thông tin 26
2.1.2 Các mức độ tích hợp thông tin 26
2.1.3 Các phương pháp tích hợp thông tin 27
2.2 HỆ ĐA AGENT VÀ TÍCH HỢP THÔNG TIN 30
2.2.1 Hệ đa agent 30
2.2.2 Mối quan hệ giữa hệ đa agent và tích hợp thông tin 31
2.2.3 Cấu trúc chung của hệ đa agent tích hợp thông tin 32
2.3 ONTOLOGY VÀ CÁC VẤN ĐỀ LIÊN QUAN 34
2.3.1 Khái niệm 34
2.3.2 Các thành phần của ontology 35

2.3.3 Phân loại ontology 36
2.3.4 Các công cụ phát triển Ontology 38
2.3.5 Các ngôn ngữ Ontology 39
2.4 MÔ HÌNH TÍCH HỢP THÔNG TIN DỰA TRÊN ONTOLOGY 40
2.4.1 Vai trò của Ontology trong tích hợp thông tin 40
2.4.2 Kỹ thuật xây dựng ontology trong tích hợp thông tin 44
Chương 3 Hệ thống tích hợp thông tin giao thông 48
3.1. BÀI TOÁN TÍCH HỢP THÔNG TIN GIAO THÔNG 48
3.1.1 Mô tả bài toán 48
iv
3.1.2 Xây dựng các ontology hệ thống 49
3.2 JADE PLATFORM 59
3.2.1 Giới thiệu 60
3.2.2 Kiến trúc JADE 60
3.2.3 Ngôn ngữ truyền thông ACL 61
3.3 THỬ NGHIỆM HỆ THỐNG 61
3.3.1 BIÊN DỊCH VÀ CHẠY JADE PLATFORM 61
3.3.2 KẾT QUẢ THỬ NGHIỆM 63
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
v
DANH MỤC CÁC CHỮ VIẾT TẮT
ACL Agent Communication Language
AIP Agent Interaction Protocol
BDI Belief – Desire – Intention
CSDL Cơ sở dữ liệu
FIPA Foundation for Intelligent Physical Agent
JADE Java Agent Development Framework
JDK Java Development Kit
J2EE Java 2 Enterprise Edition

KQML Knowledge Query and Manipulation Language
ODBC Open Database Connection
OMG Object Management Group
SQL Structure Query Language
VPN Virtual Private Network
XML eXtensible Markup Language
WAN Wide Area Network
vi
DANH MỤC BẢNG BIỂU
Bảng 1.1. So sánh mức độ bảo trì của các agent platform 18
Bảng 1.2. So sánh mức độ tích cực của các platform 19
Bảng 1.3. So sánh mức độ cập nhật của các platform 20
Bảng 1.4. So sánh mức độ phổ biến của các platform 21
Bảng 1.5. So sánh mức độ truy cập thông tin của các platform 22
Bảng 1.6. So sánh thời gian phát hành phiên bản mới nhất của các platform 22
Bảng 1.7. So sánh khả năng cung cấp phiên bản gọn nhẹ của các platform 23
Bảng 1.8. So sánh khả năng dùng sẵn của các platform 24
vii
DANH MỤC HÌNH VẼ
Hình 2.1. Sơ đồ hệ đa agent tích hợp thông tin tổng quát 32
Hình 2.2. So sánh các công cụ xây dựng Ontology 39
Hình 2.3. Cách tiếp cận đơn ontology 41
Hình 2.4. Cách tiếp cận đa ontology 42
Hình 2.5. Cách tiếp cận lai 43
Hình 2.6. Các bước xây dựng cấu trúc ontology 45
Hình 2.7. Các bước xây dựng dùng chung 46
Hình 3.1. Sơ đồ tổ chức Bộ giao thông vận tải 49
Hình 3.2. Mô hình tích hợp phương tiện giao thông trong hệ đa agent 50
Hình 3.3. Định nghĩa thuộc tính trong ontology 53
Hình 3.4. Kiểu dữ liệu thuộc tính của các loại phương tiện. 54

Hình 3.5. Biểu diễn ontology trong Protégé 55
Hình 3.6. Cấu trúc MaritimeOntology 56
Hình 3.7. Cấu trúc AviationOntology 57
Hình 3.8. Cấu trúc RoadOntology. 58
Hình 3.9. Cấu trúc RailwayOntology 58
Hình 3.10. Cấu trúc tổng thể các khái niệm trong ontology giao thông 59
Hình 3.11. Sơ đồ kiến trúc tổng thể của JADE 60
Hình 3.12. Cấu trúc thư mục của JADE 62
Hình 3.13. Giao diện JADE 63
Hình 3.14. CSDL tích hợp thông tin giao thông vận tải 64
viii
Hình 3.15. Màn hình thực thi các agent 65
Hình 3.16. Tìm kiếm thông tin theo tên phương tiện 66
Hình 3.17. Tổng hợp thông tin phương tiện giao thông 67
ix
MỞ ĐẦU
Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin
trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồng nghĩa
với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày một tích luỹ nhiều lên.
Trong khi khối lượng dữ liệu ngày càng phát triển với tốc độ chóng mặt và phân tán
khắp nơi thì mỗi hệ thống chỉ cần một số thông tin nhất định phù hợp với yêu cầu
riêng của hệ thống đó và trong nhiều trường hợp để xây dựng một hệ thống cần đến
thông tin từ nhiều nguồn khác nhau. Xuất phát từ thực tế đó dẫn đến yêu cầu phải có
phương pháp tích hợp thông tin từ các nguồn khác nhau để có thể sử dụng tối ưu thông
tin cần thiết và quan trọng là có thể sử dụng thông tin dùng chung giữa các hệ thống
khác nhau.
Tích hợp thông tin là một khái niệm khá trừu tượng thậm chí là hơi mơ hồ
khiến nhiều người không thể định nghĩa được chính xác và cụ thể, thông thường tích
hợp thông tin có thể được hiểu là quá trình kết hợp dữ liệu từ các nguồn thông tin khác
nhau nhằm cung cấp cho người dùng một cái nhìn tổng quan và duy nhất về các dữ

liệu này [36]. Đối với dữ liệu từ các nguồn thông tin khác nhau thường khá hỗn tạp và
không đồng nhất về nhiều mặt như: sự không đồng nhất trong cách trình diễn dữ liệu,
cấu trúc dữ liệu, sự không đồng nhất về hệ thống và đặc biệt là sự không đồng nhất về
ngữ nghĩa. Cho đến nay đã có rất nhiều nghiên cứu đã được tiến hành trong lĩnh vực
tích hợp thông tin chủ yếu tập trung vào vấn đề không đồng nhất về ngữ nghĩa của các
nguồn thông tin [3], [5], [20], [29], [48], [49]. Các ontology là mô hình biểu diễn các
khái niệm và mối quan hệ giữa các khái niệm đó, trong những năm gần đây có nhiều
nhà khoa học đã đi sâu nghiên cứu sử dụng ontology để giải quyết vấn đề không đồng
nhất về ngữ nghĩa này [3], [20], [49], sự phát triển của các ontology ngày một nhiều
cùng với sự thừa nhận của cộng đồng đã thúc đẩy hơn nữa việc sử dụng ontology trong
tích hợp thông tin.
Có nhiều hướng tiếp cận khác nhau trong phương pháp tích hợp thông tin dựa
trên ontology bằng cách sử dụng hệ đơn ontology, đa ontology hoặc hệ ghép bao gồm
các ontology cục bộ cùng với một bộ từ vựng dùng chung [19]. Nhiều nghiên cứu đã
khẳng định cách tiếp cận lai sử dụng bộ từ vựng chung là cách tiếp cận phù hợp nhất
để xây dựng ontology cho mục đích tích hợp thông tin [3], [16], [20], [29].
Mục tiêu của luận văn là tìm hiểu agent và mô hình tích hợp thông tin dựa trên
ontology sử dụng bộ từ vựng chung sau đó áp dụng phương pháp này vào bài toán tích
hợp thông tin về phương tiện giao thông vận tải. Trên cơ sở hạ tầng viễn thông đã có,
các kết nối từ Trung tâm tích hợp dữ liệu của Bộ Giao thông Vận tải tới các Cục quản
lý chuyên ngành bằng hệ thống mạng riêng ảo (VPN) đã tạo ra mạng diện rộng
(WAN) của Bộ Giao thông Vận tải. Các kết nối liên thông cho phép chúng ta
xây dựng ứng dụng tích hợp thông tin từ các cục quản lý chuyên ngành về
Trung tâm tích hợp thông tin của Bộ để phục vụ công tác quản lý. Agent tại trung tâm
tích hợp thông tin của Bộ sẽ gửi yêu cầu tới các agent ở các cục quản lý chuyên ngành
và nhận kết quả trả về từ các agent này rồi tiến hành thu thập và tích hợp thông tin.
Nội dung chính của luận văn được chia thành ba chương như sau:
Chương 1 trình bày các kiến thức tổng quan về agent, các đặc trưng của agent,
so sánh các công nghệ agent trên cơ sở đó đi sâu tìm hiểu và ứng dụng nền tảng Jade
phục vụ cho việc cài đặt và thực thi hệ thống.

Chương 2 trình bày khái niệm tích hợp thông tin, nhu cầu tích hợp thông tin và
các phương pháp tích hợp thông tin và bài toán tích hợp thông tin trong hệ đa agent.
Trong chương này đi sâu tìm hiểu ontology và phương pháp tích hợp thông tin dựa
trên ontology để áp dụng vào bài toán giao thông.
Chương 3 trình bày về bài toán tích hợp thông tin giao thông và áp dụng
phương pháp tích hợp dựa trên ontology, phần cuối chương trình bày cách cài đặt, cấu
hình và thực thi ứng dụng thử nghiệm cho bài toán tích hợp thông tin về phương tiện
giao thông vận tải từ các cục quản lý chuyên ngành về Trung tâm tích hợp thông tin
của Bộ giao thông vận tải.
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 nghiên cứu tiếp theo trong tương lai.
Chương 1 Tổng quan về agent
1.1 KHÁI NIỆM AGENT
1.1.1 Định nghĩa Agent
Công nghệ agent là một hướng nghiên cứu thu hút rất nhiều sự quan tâm từ
những năm 90 đến nay. Tuy nhiên ngay trong chính cộng đồng agent cũng có rất nhiều
định nghĩa khác nhau về agent. Wooldridge [34] định nghĩa agent phần mềm “là một
hệ thống tính toán bao gói, được đặt trong một môi trường cụ thể, có khả năng hoạt
động linh hoạt và tự chủ để đạt được các mục tiêu thiết kế”. James Odell [25] lại định
nghĩa agent là một “thực thể có hành vi” với các đặc điểm sau:
• Tự trị – là khả năng hành động mà không cần đến sự can thiệp trực tiếp từ
bên ngoài. Nó có một số mức điều khiển thông qua trạng thái nội tại của nó
và có các hành động dựa trên kinh nghiệm của chính nó
• Tương tác – giao tiếp với môi trường và các agent khác.
• Thích nghi – khả năng phản ứng với các agent khác và/hoặc môi trường của
nó ở một vài mức độ nào đó. Dạng thích nghi cao cấp hơn là cho phép một
agent có thể sửa đổi hành vi của mình dựa trên kinh nghiệm của nó.
• Xã hội – thể hiện trong mối quan hệ xã hội.
• Di động – có thể tự di chuyển từ môi trường này sang môi trường khác.
• Ủy quyền – có thể hành động với tư cách của một ai đó hoặc một cái gì đó,

có nghĩa là hành động như một người đại diện hoặc hành động vì lợi ích của
một vài thực thể nào đó.
• Chủ động – Không đơn giản là chỉ tác động trở lại tới môi trường mà hành
động có chủ đích để đạt được mục tiêu.
• Thông minh – hình thức hóa các trạng thái của agent (ví dụ: niềm tin, mục
tiêu, các dự kiến, các giả định ) bằng tri thức và các tương tác với các agent
khác sử dụng ngôn ngữ tượng trưng
• Suy luận – có thể lựa chọn một hành động dựa trên các mục tiêu chính và sự
hiểu biết về một hành động cụ thể có khả năng giúp nó tiến đến gần mục
tiêu hơn.
• Không thể dự báo trước - có thể hành động theo cách nào đó không hoàn
toàn có thể dự đoán trước được thậm chí dù đã biết trước tất cả các điều kiện
ban đầu.
• Thời gian liên tục – là một quá trình chạy liên tục.
• Rõ ràng và giải nghĩa được – khi được yêu cầu thì phải rõ ràng và trong
suốt, khi cần có thể cung cấp nhật ký ghi lại các hành động của nó.
• Phối hợp – có thể thực hiện một số hành động trong một môi trường dùng
chung với các agent khác.
• Hợp tác – có thể phối hợp với các agent khác để đạt được mục đích chung.
Các agent không đối kháng nhau sẽ thành công hoặc thất bại cùng nhau (sử
dụng thuật ngữ “Cộng tác” đồng nghĩa với “Hợp tác”).
• Cạnh tranh – có thể phối hợp với các agent khác trừ khi thành công của một
agent dẫn đến thất bại của các agent khác (trái nghĩa của “Hợp tác”)
• Mạnh – khả năng giải quyết các lỗi và các dữ liệu không đầy đủ.
• Đáng tin cậy – trung thực.
Cho đến nay chưa có một định nghĩa chuẩn nào về agent, hầu hết mọi người
đều đồng ý rằng giới hạn về agent cho các hệ thống công nghệ thông tin sẽ không hữu
ích nếu không có ít nhất 3 tính chất đầu tiên ở trên. Những người khác đòi hỏi các
agent công nghệ thông tin phải có tất cả các tính chất trên với các mức độ khác nhau.
Thường thì một agent công nghệ thông tin được coi là một thực thể tự trị có thể tương

tác với môi trường của nó. Nói cách khác, nó phải có khả năng quan sát môi trường và
hành động theo môi trường của nó.
1.1.2 Một số agent điển hình
Các agent trong các hệ thống công nghệ thông tin có những yêu cầu riêng:
chúng phải thực thi giống như phần mềm, phần cứng, người máy, hoặc kết hợp của cả
3. Theo James Odell [25], những người phát triển agent đã xác định một số dạng agent
điển hình trong phát triển hệ thống công nghệ thông tin như sau:
• Các Agent phần mềm:
Các agent phần mềm là một kiểu agent riêng. Một agent phần mềm là một thực
thể phần mềm tự trị có thể tương tác với môi trường của nó. Điều này có nghĩa chúng
là các thực thể tự trị và có thể tác động trở lại các thực thể khác, bao gồm cả con
người, máy móc và các agent phần mềm khác trong nhiều môi trường và nền tảng
(platforms) khác nhau. Về cơ bản, các agent phần mềm được thiết kế mẫu cho phần
mềm. Phát triển các công cụ, ngôn ngữ và môi trường để hỗ trợ mẫu dựa trên agent.
Tuy nhiên, có thể thực thi các mẫu thiết kế agent sử dụng các công cụ, ngôn ngữ và
môi trường hướng đối tượng hoặc bất kỳ công cụ, ngôn ngữ và môi trường nào khác
mà có khả năng hỗ trợ các thực thể phần mềm tự trị, tương tác và thích nghi. Chủ yếu
các công cụ dựa trên agent vẫn được ưa thích hơn bởi vì các mẫu thiết kế agent là có
sẵn trong phần mềm hơn là được lập trình. Nói cách khác, có thể sử dụng công nghệ
đối tượng cho công nghệ dựa trên agent, nhưng tính tự trị, tương tác và thích nghi của
agent hiện không được hỗ trợ trong công nghệ hướng đối tượng. Trong khi đó các
thuộc tính này có thể (và đang) được thêm vào cách tiếp cận hướng đối tượng thì các
mẫu thiết kế cho các agent và phần mềm dựa trên agent vẫn chưa được hỗ trợ hoàn
toàn và trực tiếp.
• Các agent tự trị:
Khi một agent có một sự độc lập nào đó với điều khiển bên ngoài, nó được coi
là tự trị.Ở một mức độ nào đó, các agent có thể hoạt động mà không cần sự can thiệp
hoặc gọi trực tiếp từ bên ngoài. Nếu không có quyền tự trị, một agent sẽ không còn là
một thực thể động nữa mà giống như một đối tượng thụ động như một bản ghi trong
một bảng quan hệ.

• Các agent tương tác :
Các agent tương tác có thể tương tác với cả môi trường và các thực thể khác và
có thể được biểu diễn theo cấp bậc. Ở một mức độ nào đó, các thông điệp đối tượng
(lời gọi hàm) có thể được coi là dạng cơ bản nhất của tương tác, mức độ tương tác
phức tạp hơn sẽ gồm các agent có khả năng phản ứng lại các sự kiện đáng chú ý bên
trong môi trường. Các tương tác phức tạp hơn ở các hệ thống trong đó các agent đã
bận tham gia trong các tương tác song song, phức tạp với các agent khác. Ở mức độ
này các agent bắt đầu hành động giống như một xã hội. Cuối cùng, mức độ tương tác
phức tạp nhất khi các hệ thống bao hàm nhiều agent hỗn tạp khác nhau có thể phối hợp
thông qua sự cộng tác và/hoặc cạnh tranh (ví dụ như thỏa thuận và lập kế hoạch).
• Các agent thích nghi:
Một agent được xem là thích nghi nếu nó có khả năng đáp ứng lại các agent
khác và/hoặc môi trường của nó ở một vài mức độ nào đó. Ít nhất thì nó phải phản ứng
lại một kích thích đơn giản – để tạo một đáp ứng tiền định, trực tiếp tới một sự kiện cụ
thể hoặc tín hiệu môi trường. Bộ điều nhiệt, các cảm biến tự động, và các máy tìm
kiếm đơn giản thuộc loại agent thích nghi.
Tiến xa hơn agent phản ứng đơn giản là các agent có khả năng suy luận. Các
agent suy luận này phản ứng lại bằng cách đưa ra các suy luận và bao gồm cả các
agent chẩn đoán bệnh và một số loại agent khai phá dữ liệu.
Dạng nâng cao hơn của agent thích nghi là có khả năng học và tiến hóa. Các
agent này có thể thay đổi hành vi của chúng dựa theo kinh nghiệm. Các kỹ thuật phần
mềm phổ biến cho việc học là các mạng nơ ron, các luật Bayesian, các luật phân
lớp…. Ví dụ các agent học là các agent có thể phân tích giọng nói, nhận dạng và theo
dõi mục tiêu. Một kỹ thuật chính cho các agent tiến hóa thường gồm các giải thuật di
truyền và lập trình di truyền. Có thể phát sinh ra các agent để phù hợp với mục tiêu đặt
ra. Ví dụ, kế hoạch hành động, và các chương trình phần mềm tối ưu hơn bất kỳ sản
phẩm nào do con người làm ra trong một khoảng thời gian vừa phải.
• Agent di động :
Trong khi các agent tĩnh tồn tại như một quy trình đơn lẻ trên một máy chủ thì
các agent di động có thể lấy lại và di chuyển mã của chúng tới một máy chủ mới tại đó

chúng có thể tiếp tục thực thi. Quan điểm ở mức khái niệm thì các agent di động như
vậy có thể được xem là lưu động, động, không định cư, lang thang, hoặc di cư. Ví dụ,
nếu một agent muốn lấy thông tin từ một vài nguồn khác nhau trên các platform khác
nhau, nó có thể gửi thông tin yêu cầu đến mỗi platform sử dụng kỹ thuật tương đương
với một RPC (remote procedure call - gọi thủ tục từ xa). Tuy nhiên, nếu khối lượng
thông tin ứng với site ở xa là lớn thì cần phải xem xét vấn đề lưu lượng và băng thông.
Hơn nữa, agent có thể xử lý dữ liệu từ xa hiệu quả hơn các dịch vụ như vậy tại site ở
xa. Việc di chuyển agent tới một trong nhiều platform khác nhau có thể sẽ hiệu quả
hơn là cách xử lý dữ liệu từ xa.
• Các agent phối hợp :
Các tổ chức nhân sự tồn tại chủ yếu để phối hợp các hành động của nhiều cá
nhân vì một số mục tiêu. Mục tiêu này có thể là tạo ra các kết cấu như các đơn vị kinh
doanh sinh lãi, các tổ chức từ thiện, các công ty ba lê hoặc các liên hiệp nhỏ. Tương tự
như vậy, các hệ thống bao gồm nhiều agent có thể sinh lợi theo cùng kiểu mẫu đó. Một
số ứng dụng phổ biến nhất về agent phối hợp là dây chuyền cung cấp, lập lịch, giải
quyết vấn đề, thương lượng hợp đồng, và thiết kế sản phẩm. Nếu không có sự phối
hợp ở mức độ nào đó, các hệ thống như vậy không thể tồn tại, dù là người hay là các
hệ thống dựa trên agent.
Các tổ chức nhân sự không được xây dựng bởi các cá nhân giống hệt nhau và
cùng làm những việc giống nhau mà có sự đa dạng hóa, có người đại diện, có thương
lượng, quản lý, cộng tác, cạnh tranh, và v.v…Và chúng ta cần thực hiện cách tiếp cận
giống như vậy trên các hệ thống đa agent. Tuy nhiên vẫn nên xem xét cẩn thận trong
khi thiết kế và xây dựng cấu trúc của các hệ thống dựa trên agent. Điều này sẽ giúp
tăng khả năng liên kết chặt chẽ giữa các agent với hành vi của chúng, mặc dù sẽ hạn
chế và điều chỉnh tính tự động của agent nhưng vẫn đảm bảo được tính linh hoạt ở
mức agent.
• Các agent thông minh :
Sau hàng thập kỷ thuật ngữ « thông minh » vẫn chưa được định nghĩa (hoặc
được hiểu) cho hệ thống nhân tạo và ngày nay việc áp dụng thuật ngữ này cho agent
có lẽ chưa thật thích đáng lắm. Hầu hết đều có xu hướng cho rằng agent và agent

thông minh là tương đương nhau. Có lẽ đây chỉ là sự cố gắng để truyền tải thông tin
rằng agent có nhiều sức mạnh hơn các cách tiếp cận thường. Ví dụ, khi so sánh với các
bảng quan hệ hoặc so sánh với các đối tượng, agent có thể được coi như là cái gì đó
“thông minh”. Hoặc, đây chỉ là sự cường điệu của tiếp thị. Tuy nhiên, không sai khi
nói rằng khái niệm về sự thông minh của các agent là rất khác so với của con người.
Chúng ta không tạo các agent để thay thế con người mà chúng ta tạo chúng để giúp đỡ
hoặc bổ sung thêm cho con người.
Các agent thông minh yêu cầu một bộ cơ bản các thuộc tính và tính năng. Ví
dụ, một trạng thái của agent thông minh phải được chuẩn hóa bởi tri thức (hiểu biết,
mục tiêu, mơ ước, ý định, giả định, v.v…) và có thể hành động trên cơ sở tri thức này.
Nó cần có khả năng kiểm tra sự hiểu biết và mơ ước của nó, hình thành ý định của nó,
lập kế hoạch các hành động mà nó sẽ thực hiện dựa trên các giả định nào đó, và cuối
cùng là hành động theo kế hoạch đó. Ngoài ra, các agent thông minh phải tương tác
được với các agent khác sử dụng ngôn ngữ tượng trưng. Các nhà nghiên cứu agent sử
dụng hiểu biết của chúng ta về suy nghĩ của con người để làm mẫu cho thiết kế các
agent.
• Các agent wrapper:
Agent này cho phép agent khác kết nối tới một dịch vụ/hệ thống phần mềm
không phải agent. Các agent client gửi các lệnh tới agent wrapper và được gọi đến
trong các dịch vụ cơ bản. (Agent wrapper có thể là không cần thiết với các đối tượng
nhưng vẫn nên có các đối tượng tồn tại trong cùng một môi trường).
Các loại agent trên thường chiếm ưu thế trong các hệ thống dựa trên agent,
ngoài ra một ứng dụng cũng có thể dùng các dạng agent khác như: agent môi giới,
agent quản lý, agent hỗ trợ, v.v…
1.2 HIỆN TRẠNG CÔNG NGHỆ AGENT
1.2.1 Hiện trạng sử dụng agent
Công nghệ agent có nhiều điểm tương tự như các công nghệ khác (ví dụ, hướng
đối tượng, giao diện người dùng đồ họa – GUI), tuy nhiên công nghệ agent không phải
là một công nghệ đơn lẻ mà là áp dụng kết hợp của nhiều công nghệ. Các agent cũng
không nhất thiết phải là agent mới và biệt lập hoàn toàn với ứng dụng. Ban đầu, các

chức năng agent sẽ hiển thị bên trong các ứng dụng, nhưng về sau – cùng với kinh
nghiệm – sẽ trở thành một phần của môi trường ứng dụng hoặc hệ điều hành, khi đó
các ứng dụng không khai thác sự hỗ trợ của agent trong hệ điều hành sẽ trở nên bất
tiện.
Được chuẩn bị cho những mục tiêu lớn lao nhưng hiện nay, công nghệ agent
vẫn chỉ là một lĩnh vực đang tiếp tục được nghiên cứu và mới đang trong thời kỳ đầu
phát triển. Dù đã được quảng cáo rộng rãi nhưng công nghệ agent chưa được sử dụng
phổ biến, không được chấp nhận rộng rãi như là xu hướng tất yếu và cũng không có sự
thống nhất trong việc hỗ trợ agent ở mức hệ điều hành. Vì thế, việc triển khai công
nghệ và các hệ thống dựa trên agent là biệt lập và không thường xuyên, nhưng nó vẫn
tồn tại và trên thực tế là đang có xu hướng tăng dần. Hiện có một số lớp agent đang
được triển khai như sau:
Các agent quản lý hệ thống và mạng: Các công ty viễn thông hoạt động trong
lĩnh vực này nhiều nhất, và là nhóm tận tụy với mô hình agent nhất. Mục tiêu của họ là
sử dụng agent để thực hiện các nhiệm vụ quản lý mạng và hệ thống phức tạp như: cân
bằng tải, phòng ngừa thất bại, phân tích vấn đề và tổng hợp thông tin.
Các agent hỗ trợ quyết định: Chủ yếu được triển khai trong các môi trường
đóng, các công ty tiện ích và các tổ chức quân đội thường dùng các agent để hỗ trợ
quyết định và tổng hợp thông tin. Các hệ thống này có thể cảnh báo một thao tác với
một vấn đề có thể xảy ra, cung cấp thông tin để hỗ trợ một quyết định phức tạp.
Agent tìm sở thích: Đây có thể là các agent được sử dụng nhiều nhất và hầu hết
người dùng thậm chí không biết họ đang sử dụng chúng. Các agent này thường được
dùng bởi các Websites thương mại để chào hàng, ví dụ như nếu bạn thích “Frank
Sinatra’s Greatest Hits” thì có thể bạn sẽ thích “Tony Bennett’s Songs for a Summer
Day”. Dựa trên Patti Maes hoạt động ở MIT Media Labs và sau đó là Firefly, các
agent theo dõi các kiểu mẫu sở thích và cách sử dụng để đưa ra các gợi ý. Các agent
này được triển khai trên amazon.com và rất nhiều trang buôn bán CD và video.
Các agent hỗ trợ người dùng: Các agent này hoạt động ở mức giao diện người
dùng, đưa ra thông tin hoặc lời khuyên tới người dùng. Các công ty như Microsoft,
Lotus và Apple hoạt động nhiều nhất trong lĩnh vực này. Ví dụ được sử dụng nhiều

nhất của loại agent này là các ký hiệu trợ giúp dạng hoạt họa ở trong sản phẩm
Microsoft Office. Các agent này sử dụng các mạng bayesean để phân tích và dự đoán
các chủ đề có thể người dùng cần trợ giúp.
Các agent kết cấu có tổ chức: Các agent này kết cấu để thao tác theo kiểu tương
tự như các tổ chức của con người. Ví dụ, hệ thống dây chuyền cung cấp đa agent sẽ có
các agent đóng các vai trò khác nhau như người mua, nhà cung cấp, người môi giới,
kho hàng, đơn hàng, các mục hàng, và các phòng sản xuất. Các hệ điều hành sẽ có các
agent nguồn, các agent tài liệu, các agent xử lý v.v…
Mỗi agent trong số các agent này thể hiện một vài khía cạnh của các agent. Tuy
nhiên, không có agent nào thể hiện được toàn bộ tính năng có thể có của agent.
1.2.2 Các kiểu ứng dụng agent hiện nay
Các kiểu ứng dụng agent hiện nay vẫn còn hạn chế. Khi các khái niệm được
thừa nhận rộng rãi và có sẵn nhiều công cụ hơn thì hướng tiếp cận dựa trên agent sẽ
được nhúng trong các ứng dụng công nghệ thông tin nhiều hơn.
Thương mại điện tử: Các ứng dụng thương mại điện tử cho phép người dùng
thực hiện các giao dịch trong kinh doanh trên mạng. Một giao dịch có thể bao gồm sự
thương lượng với các thực thể ở xa và có thể đòi hỏi truy cập nguồn thông tin liên tục
thay đổi. Từ thực tế đó nảy sinh nhu cầu thay đổi hành vi của các thực thể để đạt được
một nghi thức chung trong việc thương lượng. Hơn nữa, việc di chuyển các thành phần
của ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch cũng được quan
tâm.
Tìm kiếm thông tin: lượng thông tin sẵn qua mạng nội bộ công ty giúp người
dùng mở rộng khả năng thu được các thông tin hữu ích một cách hiệu quả. Các agent
tìm kiếm chứa các phạm vi kiến thức về rất nhiều nguồn thông tin khác nhau. Kiến
thức này bao gồm các kiểu thông tin sẵn có trên mỗi nguồn, cách truy xuất thông tin
đó và kiến thức có tiềm năng hữu ích như: độ tin cậy và độ chính xác của nguồn thông
tin. Các agent tìm kiếm sử dụng kiến thức này để thực hiện các tác vụ tìm kiếm riêng
biệt.
Lọc thông tin: Các agent lọc thông tin cố gắng giải quyết vấn đề quá tải thông
tin bằng cách hạn chế hoặc sắp xếp thông tin tới người dùng. Tư tưởng chính là để

phát triển một đại diện trực tuyến cho người dùng, đại diện này có đầy đủ kiến thức về
thông tin cơ bản của người dùng cần để nó có thể chọn các tài liệu ưa thích. Các loại
agent này thường thực hiện chức năng như những người canh cổng bằng cách ngăn
người dùng khỏi bị tràn ngập bởi luồng thông tin đến ồ ạt. Các agent lọc tin cùng làm
việc (hoặc đôi khi hợp nhất) với các agent tìm kiếm để giữ lại các kết quả tìm kiếm ở
mức độ vừa phải. Thông thường, các agent lọc tin sẽ kết hợp chặt chẽ với các kỹ thuật
học máy. Điều này cho phép chúng thích nghi với yêu cầu của mỗi người dùng và
cung cấp thông tin chính xác hơn nhiều so với phương pháp lọc tin bằng từ khóa.
Giám sát thông tin: nhiều tác vụ phụ thuộc vào thông báo xảy ra khi có thay đổi
trong các nguồn dữ liệu khác nhau. Một người lập kế hoạch xây dựng một kế hoạch để
chuyển các thiết bị từ vùng này sang vùng khác, nhưng việc thực hiện kế hoạch đó có
thể bị phá hỏng bởi sự ảnh hưởng của thời tiết xấu. Người lập kế hoạch sẽ thích tìm
hiểu các sự kiện có thể gây ảnh hưởng đến kế hoạch của anh ta khi chúng xảy ra. Khi
đó các agent sẽ rất hữu ích cho việc giám sát dữ liệu riêng tại các nguồn dữ liệu phân
tán. Là các phần mềm có cấu trúc nên chúng có đủ kiên nhẫn cần thiết để giám sát liên
tục sự thay đổi của các nguồn dữ liệu. Các agent di động có thể gửi thông điệp tới các
nơi ở xa hoặc các vị trí khác không thể truy cập được.
Môi giới nguồn dữ liệu (Data source mediation): Vùng quản lý dữ liệu đặt ở
nhiều hệ thống khác nhau, hầu hết chúng không bao giờ giao tiếp với nhau. Các agent
có thể dùng như người môi giới giữa các nguồn dữ liệu khác nhau, cung cấp cơ chế để
cho phép chúng kết hợp chặt chẽ với nhau. Dự án SIMS của ISI được phát triển như
một môi giới thông tin có thể cấp phép truy cập tới cơ sở tri thức và dữ liệu hỗn tạp, có
thể dùng nó để tạo mạng các agent thu nhặt thông tin, mỗi agent này có quyền truy cập
tới một vài nguồn thông tin. Các agent này sử dụng một ngôn ngữ bậc cao, một giao
thức truyền thông, và các ontology riêng để mô tả dữ liệu chứa trong các nguồn thông
tin của chúng. Điều này cho phép mỗi agent có thể giao tiếp với các agent khác ở mức
ngữ nghĩa cao hơn.
Các agent giao diện/ hỗ trợ cá nhân: Một agent giao diện là một chương trình
có thể thao tác bên trong một giao diện người dùng và trợ giúp đắc lực cho người dùng
thao tác với giao diện. Một agent giao diện có thể ngăn chặn dữ liệu vào của người

dùng, kiểm tra nó, và đưa ra hành động phù hợp. Tuy các agent giao diện không trực
tiếp liên quan tới quản lý dữ liệu nhưng chúng phải có tiềm năng thực hiện vai trò lớn
lao trong việc trợ giúp người dùng trong các hệ thống quản lý dữ liệu. Điều này càng
quan trọng hơn khi các hệ quản trị dữ liệu phân tán nhiều nơi và nhóm cùng nhau
thành dạng lớn hơn, hệ thống các hệ thống phức tạp. Các agent trong giao diện có thể
thực hiện các chức năng như một cầu nối giữa phạm vi kiến thức về hệ quản trị dữ liệu
và người dùng. Các agent này có thể giúp người dùng truy vấn, tìm khu vực định vị dữ
liệu, giải thích ngữ nghĩa của dữ liệu giữa các tác vụ khác. Các ví dụ là các hệ thống
hướng dẫn thông minh và trợ giúp duyệt web. Ngoài ra, Microsoft hiện đã gắn thêm
các agent giao diện vào trong các sản phẩm desktop để quan sát hành động của người
dùng và đưa ra những gợi ý phù hợp tới người dùng.
1.2.3 Hiện trạng sử dụng công nghệ agent
Hầu hết tất cả các hệ thống đang xây dựng ngày nay đều sử dụng ngôn ngữ lập
trình Java hoặc C++ [55]. Truyền thông và phối hợp giữa các agent chủ yếu sử dụng
ngôn ngữ KQML (Knowledge Query and Manipulation Language) [33] hoặc FIPA
ACL (Foundation Intelligent Physical Agen) [14], KIF (“Knowledge Interchange
Format”) [32]. KIF là ngôn ngữ dùng cho việc truyền thông hướng nội còn KQML và
FIPA ACL dùng cho việc truyền thông hướng mục đích [55].
Các tập hợp công cụ thương mại đầu tiên để xây dựng các agent bắt đầu có trên
thị trường vào khoảng năm 1999. Một số phải mua hoặc một số có thể cho tải về miễn
phí. Các hệ thống xây dựng agent biến đổi nhiều về mặt chức năng thì thường không
tuân theo một chuẩn nào. Các agent được xây dựng trong một hệ thống sẽ không làm
việc trong hệ thống khác. Và cũng không có sự hỗ trợ nào cho các giao thức truyền
thông giữa các công cụ này. Hình 1.1 mô tả một số công cụ phát triển hệ đa agent hiện
nay:
1.3 CÁC VẤN ĐỀ CHÍNH CỦA CÔNG NGHỆ AGENT
1.3.1 Truyền thông giữa các agent
Hiện đang là một trong những lĩnh vực quan trọng nhất cần chuẩn hoá. Không
chỉ nội dung và ý nghĩa của truyền thông có thể rất khác nhau mà cách thức truyền
thông cũng có rất nhiều cách khác nhau.

1.3.1.1 Các ngôn ngữ truyền thông agent
Các thông điệp phải có ngữ nghĩa tốt để có thể nhìn thấy được và tính toán
được. Vì thế chúng ta cần phải chuẩn hoá ngôn ngữ truyền thông agent (agent
communication languages – ACL) để những người khác có thể phát triển các agent
của họ để có thể thao tác lẫn nhau. Ngoài ra họ phải có một dạng ngữ nghĩa chính thức
để các cách thực thi khác nhau vẫn duy trì được các tính năng cần thiết của ACL. Bằng
cách xác định rõ một ACL chúng ta có thể hệ thống hoá các yếu tố tương tác cơ bản
giữa các agent một cách hiệu quả.
Theo Weiß [55] một số ngôn ngữ chính dùng cho việc truyền thông giữa các
agent là: KQML[33] (đây có lẽ là ngôn ngữ truyền thông agent được sử dụng rộng rãi
nhất), ARCOL (“ARTIMIS Communication Language”) [35] (ngôn ngữ truyền thông
dùng trong hệ thống ARTIMIS, có ít từ ngữ truyền thông gốc hơn KQML), FIPA ACL
[14] (là ngôn ngữ truyền thông agent chịu ảnh hưởng mạnh bởi ARCOL) và KIF [32]
Hình 1.1. Một số công cụ phát triển hệ đa agent.
(ngôn ngữ dựa trên logic này được thiết kế để biểu diễn bất cứ loại tri thức hoặc siêu
tri thức nào). Sự kết hợp của FIPA-ACL, ARCOL, và KQML hầu như đã tạo nên một
chuẩn hoàn chỉnh cho các ngôn ngữ truyền thông agent.
1.3.1.2 Cơ chế truyền tải thông điệp
Trong môi trường agent, có thể lập lịch các thông điệp như hướng sự kiện. Có
thể gửi thông điệp dưới chế độ đồng bộ hoặc không đồng bộ. Hơn nữa, cơ chế truyền
thông điệp nên hỗ trợ đánh địa chỉ duy nhất như đánh địa chỉ dựa trên vai trò (tức là
đánh địa chỉ “trang trắng” so với “trang vàng”). Cuối cùng, cơ chế truyền tải phải hỗ
trợ các chế độ truyền tải đơn, truyền tải đa và truyền tin quảng bá (unicast, multicast,
broadcast) và các dịch vụ như hành vi quảng bá tin, không từ chối thông điệp, và
logging.
1.3.1.3 Truyền thông Ontology
Truyền thông agent là các khái niệm về truyền thông giữa các agent. Các agent
có thể có các thuật ngữ khác nhau cho cùng một khái niệm, các thuật ngữ giống hệt
nhau cho các khái niệm khác nhau và các hệ thống lớp khác nhau. Khi biểu diễn kiến
thức từ nhiều miền khác nhau đòi hỏi phải có một ontology chung, cách xây dựng và

liên kết chúng với nhau.
1.3.1.4 Các giao thức tương tác agent
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. Như vậy, tương tác chính 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 chung
của hệ thống. Trong các hệ thống thông tin, tương tác có thể chia thành ba loại chính:
+ 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 tỏng 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…
1.3.2 Quản lý vòng đời agent
Các agent sẽ là phần mềm chạy trong môi trường phần mềm. Vì thế, chúng phải
có cơ chế ngầm hiểu các hành động như: đang bắt đầu, đang tạm dừng, đang được
quản lý, đang được theo dõi. Một số agent được thực thi như mã di động (mobile code)
có bổ sung thêm các vấn đề về vòng đời như: cho phép có các quyền để chạy, các
quyền để thực hiện một số tác vụ nào đó, và để có truyền thông tại nhiều địa điểm
khác nhau ngoài điểm bắt đầu xuất phát. Các agent có thể tiến hóa và khi chúng ta
kiểm tra quản lý vòng đời, chúng ta phải kiểm tra cả các môi trường phần mềm sẽ
chạy agent. Môi trường có thể rất nhỏ, không kết nối liên tục với các thiết bị như điện
thoại di động hay trợ giúp kỹ thuật số cá nhân hoặc có thể bao gồm nhiều máy chủ có
khả năng chạy số lượng agent khổng lồ. Yêu cầu đối với các môi trường hơi khác nhau
và cần phải xem xét cho phù hợp đối với từng hệ thống cụ thể.
a, Thời gian tồn tại của agent
Các agent có thể tồn tại logic trong khoảng thời gian nó hiển thị hành vi im lìm
không hoạt động. Các giao diện hỗ trợ vòng đời của agent cần cân nhắc các yêu cầu về

sự tồn tại “logic” của rất nhiều agent trái với sự tồn tại vật lý trong bộ nhớ.
Trong các hệ thống hiện đang hỗ trợ các agent “sống lâu” (long-lived), các
agent có thể “ngủ” và thường được lưu trữ trong ổ đĩa vật lý. Khi agent tồn tại lâu dài,
dữ liệu và trạng thái hiện tại vẫn được duy trì và sẽ phục hồi lại khi agent “thức”. Có
một trạng thái khác khi chuyển giữa trạng thái để agent ngủ và khi đánh thức nó dậy,
có thể truy vấn xem nó đang ở trong tình trạng nào, và khi agent đang thức dậy sẽ có
thông báo khoảng thời gian trôi qua và nó có thể đánh giá lại môi trường.
Các hệ agent có thể có nhiều mô hình thông điệp trong khi agent “ngủ”. Một số
cần mô hình kiểu sự kiện thô với các thông điệp được truyền đi một cách chắc chắn.
Một số khác cần kiểu ngẫu nhiên khi một agent nhìn thấy một thông điệp quan trọng
có thể tác động đến thông tin. Có nhiều kiểu thông điệp truyền trực tiếp giữa hai agent,
với phương pháp store-and-forward và mô hình publish-and-subscribe . Các sự kiện hệ
thống có thể được truyền qua các thông điệp hoặc một số cơ chế khác. Phải thiết kế
các mô hình sao cho việc truyền thông điệp là tối ưu. Tuy có nhiều mô hình khác nhau
nhưng qua thời gian sẽ xuất hiện một số mẫu thiết kế nào đó.
b, Quá trình hoạt động của agent
Cần thiết phải có các kỹ thuật ghi lại lịch sử các hành động của agent để trình
điều khiển hành vi của agent có thể kiểm tra lại và agent đó có thể đánh giá các hành

×