1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ á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.

98 1,1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 98
Dung lượng 0,92 MB

Nội dung

Hiện nay, khái niệm về agent cũn chưa thốngnhấ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ườngxung quanh thô

Trang 1

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.

Trang 2

MỤC LỤC

Danh sách hình vẽ: 4

Bảng các từ viết tắt: 5

Lời nói đầu: 6

LỜI CẢM ƠN 7

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 8

1.1 Công nghệ Agent, xây dựng phần mềm hướng Agent 8

1.1.1 Trình bày lý thuyết chung về Agent 8

1.1.2 Công nghệ phần mềm hướng agent 14

1.2 Hệ thống đa Agent 16

1.3 Môi trường JADE, hỗ trợ xây dựng hệ thống hướng Agent 18

1.3.1 Giới thiệu về JADE 18

1.3.2 Ðặc điểm của JADE 19

1.3.3 Kiến trúc của JADE 21

1.3.4 Các hệ thống giao tiếp trong JADE 22

1.3.5 Vòng đời của một JADE Agent 26

1.4 Kết luận 28

CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ BKAS 30

2.1 Mục tiêu xây dựng hệ BKAS 30

2.1.1 Liên kết và hợp tác 30

2.1.2 Giao tiếp với người sử dụng 32

2.2 Khái niệm - cấu trúc mô hình BKAS 32

2.2.1 Khái niệm 32

2.2.2 Mô hình 33

2.3 So sánh BKAS với các công nghệ tính toán phân tán 34

2.4 Các agent chính trong mô hình 35

2.5 Đăng ký dịch vụ trong hệ thống dựa mô hình BKAS 37

2.6 Yêu cầu dịch vụ trong hệ thống dựa mô hình BKAS 39

2.7 Facilitator agent 41

2.8 Ví dụ về ứng dụng của kiến trúc BKAS 43

2.9 Kết luận 46

CHƯƠNG 3: SỰ PHỐI HỢP GIỮA CÁC AGENT TRONG HỆ BKAS 49

3.1 Khái niệm phối hợp trong hệ thống BKAS 49

3.2 Vai trò của phối hợp 49

3.3 Kỹ thuật phối hợp giữa các agent 51

3.3.1 Cấu trúc có tổ chức 51

3.3.2 Đấu giá 52

3.3.3 Lập kế hoạch cho nhóm agent 53

3.3.4 Thương lượng 55

3.4 Kết luận 56

CHƯƠNG 4: GIAO TIẾP GIỮA CÁC AGENT TRONG HỆ BKAS 57

4.1 Vấn đề giao tiếp trong hệ đa agent 57

4.2 Các phương pháp giao tiếp: 58

4.2.1 Truyền thông trực tiếp 59

Trang 3

4.2.2 Các hệ liên đoàn 59

4.2.3 Truyền thông quảng bá 60

4.2.4 Hệ thống bảng đen 61

4.3 Truyền thông trong BKAS 62

4.4 Ngôn ngữ phục vụ truyền thông: 63

4.4.1 KQML, ngôn ngữ truyền thông cơ bản 63

4.4.2 ICL (Interagent Communication Language) 64

4.4.3 Giới thiệu ngôn ngữ ACL do jade cung cấp 66

4.5 Công nghệ ontology hỗ trợ giao tiếp giữa các agent 67

4.5.1 Giới thiệu chung 67

4.5.2 Tại sao lại cần phát triển Ontology 68

4.5.3 Cấu trúc chung của Ontology 70

4.5.4 Xây dựng Ontology 71

4.5.5 Ontology và hệ thống Multi-Agent 71

4.6 Kết luận 73

CHƯƠNG 5: XÂY DỰNG HỆ V_MEDINFO DỰA TRÊN MÔ HÌNH BKAS 74 5.1 Phát biểu bài toán 74

5.1.1 Đặt vấn đề 74

5.1.2 Bài toán cụ thể 74

5.2 Phương pháp luận giải quyết bài toán 77

5.2.1 Bài toán phân tán dựa trên Internet, www 77

5.2.2 Công nghệ Agent 77

5.2.3 Công nghệ Ontology 78

5.3 Mô hình bài toán dựa trên hệ BKAS 78

5.3.1 Mô hình 78

5.3.2 Phân tích các lớp Agent 80

5.3.3 Mô hình hệ thống Ontology 88

5.3.4 Vai trò của ontology đối với hệ thống 90

5.4 Kết quả - đánh giá 91

5.4.1 Kết quả đạt được 91

5.4.2 Đánh giá 92

5.4.3 Hướng phát triển tiếp theo 93

5.5 Kết luận 93

Tài liệu tham khảo: 94

Trang 4

Danh sách hình vẽ:

Hình 1: Những đặc điểm của agent 9

Hình 2: Phân loại agent theo khả năng 13

Hình 3: Mô hình câu trúc và tương tác với môi trường của agent 13

Hình 4 Cách agent tương tác với môi trường 14

Hình 5: Kiến trúc agent platform theo chuẩn của FIPA 21

Hình 6: Mô hình JADE Agent platform phân tán 22

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 33

Hình 10: Đăng ký dịch vụ với facilitator agent 38

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

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 72

Hình 19: Mô hình hệ thống 79

Hình 20: Mô hình AUML của agent tổng quát 84

Hình 21: AUML của agent giao diện 85

Hình 22: AUML của agent điều phối 86

Hình 23: AUML của agent xử lý ontology 86

Hình 24: AUML của agent xử lý dữ liệu 87

Hình 25: AUML của agent chuyên gia 88

Hình 26: Cây khái niệm hình thành bệnh án số 89

Hình 27: Quá trình điều trị của bệnh nhân 89

Trang 5

Bảng các từ viết tắt:

ACL Agent Communication

Language Ngôn ngữ truyền thông agentDAML-

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

Trang 6

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àycà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 trongnghà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ảiquyết được, chúng ta xõy dựng lên một hệ thống dựa trên nền tảng internetgiú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ế

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 tintheo 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ếtnhững vấn đề phức tạp mà một thực thể không đủ khả năng hoặc tri thức thựchiệ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ũngnhư ra quyết định Chớnh vì vậy tác giả đồ án này muốn áp dụng phương phápluậ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ôngsức trong khi thời gian làm đồ án có giới hạn Vì vậy, đồ án tốt nghiệp nàykhé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ểmmạnh của mô hình: quản lý thông tin, chuẩn đoán bệnh, giao tiếp agent trongcộng đồng

Trang 7

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.

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.

Trang 8

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1.1 Trình bày lý thuyết chung về Agent

Khái niệm agent

Trong những năm gần đõy, công nghệ agent và xõy dựng phần mềmhướ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ệ agentngà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ốngnhấ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ườngxung quanh thông qua những bộ phận cảm nhận và hoạt động trênmô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ằngnhữ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ếtquả 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ănghoạt động hoặc đưa ra các quyết định dựa trên kinh nghiệm của bảnthâ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:

Trang 9

“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ôngthườ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 agentthô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

Trang 10

trong của agent, có khả năng phản xạ đối với các thay đổi của môitrườ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ácyê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ạpcủa các hệ thống đích thích hợp là rất quan trọng Ví dụ: nếu mộtagent 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ữngthông tin đặc biệt và phản ứng với những thay đổi Trong trườnghợp xuất hiện thờm cỏc thông tin mới đáng quan tâm khỏc thỡ tớnhchủ độ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 đíchcon 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ácagent đơn lẻ với khả năng hiểu biết giới hạn tới các hệ thống phứctạp, thông minh cao hơn Trên cơ sở tri thức đó, agent có khả năngsuy 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íchluỹ 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

Trang 11

đố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áctrạ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ỗithô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ạngcho người sử dụng hoặc chờ kết nối mạng của người dùng Điều nàycho phép giảm chi phí kết nối mạ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 độngtươ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 đượccung cấp một loạt các truy vấn được định nghĩa chính xác (nhữngtruy 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ốngagent đơ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ớimục đích cộng tác, phân đoạn các khả năng truyền thông Sự cộngtác giữa các agent đưa ra một số giải pháp tốt hơn và nhanh hơn đốivới những nhiệm vụ phức tạp vượt quá khả năng của một agent đơnlẻ

Trang 12

Dựa vào đặc trưng trên, chúng ta có thể phõn loại agent theo các đặctrư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ằngcá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 đãhoàn thành nhiệm vụ (hoặc gửi kết quả về cho hệ thống thông quacá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ăngthự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ượngthô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 Agentthô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ộtyê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ứctạp), chỉ thao tác dựa trên các đặc tả yêu cầu

Trang 13

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õydựng và phát triển

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ênquan giữa agent và môi trường mà nó tồn tại

Trang 14

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àotá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, …}

Một agent chuẩn được định nghĩa là một tập các ánh xạ từ tập trạng tháicủ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).S) Trong đó ρ(S).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).S) = { Sx, Sy}

o Xác định trước khi ρ(S).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

Trang 15

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ị trongmôi trường đó để đạt được các mục tiêu thiết kế của nó

 Khi nhìn nhận một thế giới theo kiểu hướng agent, rõ ràng rằng mộtagent đơ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 đượccá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àndiện) qua các tương tác kiểu client – server truyền thống (khả năng yêucầ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

AGENT

MÔI TRƯỜNG

Trang 16

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ônngữ) Do đó, các tương tác thường là được điều khiển ở mức trithứ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 thaotác trên một môi trường mà qua đó chúng chỉ có quan sát và điềukhiển cục bộ, các tương tác cần được xử lí trong một kiểu mềmdẻo tương tự Bởi vậy, các agent cần dụng cụ tính toán để đưa racác quyết định phụ thuộc vào ngữ cảnh về tính chất và phạm vicủa các tương tác của chúng và để bắt đầu (hoặc đáp ứng) cáctương tác mà không cần thiết được dự đoán trước ở giai đoạnthiết kế

 Trong hầu hết các trường hợp, các agents hành động để đạt đến cácmục tiêu đại diện cho các cá nhân riêng lẻ hay các công ty Vì vậy, khicá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ữacá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 đượccác liên kết đú, cỏc hệ thống agent thường cú cỏc cấu trúc rõ ràng choviệ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ênlưu ý rằng trong nhiều trường hợp, các mối quan hệ này có thể thay đổitrong 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ẳnghạ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ộtnhó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

Trang 17

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ácgiao 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ậnmộ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ẵncho việc mô tả và điều khiển sự phức tạp và thay đổi một mạng các mốiquan hệ tổ chức mà tồn tại giữa các agents

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ácthự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ậtngữ hệ thống đa agent ngày càng phổ biến, nó được sử dụng cho mọi hệ thốnghình thành từ những thành phần có khả năng tự trị, thể hiện một số đặc điểmsau:

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

Trang 18

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ôngminh khác nhau mỗi khi được tạo ra và khă năng học của mỗi agent cũng khácnhau trong quá trình tương tác với các agent khác hoặc với môi trường bênngoà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ợpnhấ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ủabả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:

 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ạngviễ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ếtphải có một cơ chế truyền thông giữa các 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ậtcủa FIPA và JADE bao gồm một tập hợp các công cụ hỗ trợ gỡ lỗi Môitrườ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

Trang 19

chung một hệ điều hành) và cấu hình có thể được điều khiển thông qua mộtgiao 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áorấ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áoACL (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ôngminh Nó bao gồm hai sản phẩm chính: môi trường agent tuân theo các tiêuchuẩn của FIPA và một package để phát triển các agent trong Java JADEhoàn toàn được viết bằng Java do đó một lập trình viên nếu muốn khai thácmô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ụngcá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 donhữ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ụ Jadekhá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

Trang 20

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ớicá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ốiTCP/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ốisocket Các thông điệp ACL có thể quay lại qua TCP/IP này vàoJADE platform Agent này rất hữu ích cho việc điều khiển bứctường lửa hay cung cấp các platform tương tác với các Java appletstrong 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ểntrự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ạoplatform

 Platform agent phân tán: agent có thể được phân vào một vài máychủ Do chỉ có một ứng dụng Java nên chỉ có một Java VirtualMachine được thực hiện trên mỗi máy chủ Các agent được thi hànhnhư một chuỗi các chương trình Java và tồn tại bên trong agentcontainer Agent container cung cấp các hỗ trợ cho các agent trong

Trang 21

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 agenttrên JADE

 Hỗ trợ các thao tác phức tạp, các hoạt động agent song song và hợpnhất qua các mô hình hành vi JADE lên kế hoạch cho các hành vicủ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ể đượcbắ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 giaodiệ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

mô tả agent, khả năng thống nhất trong một mạng DF) Điều đó liênquan đế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 platformgiố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ư request và FIPA-contract-net

FIPA- Đă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:

Trang 22

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ộtagent đượ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ộtAMS 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ớiAMS để nhận AID của nó

 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 CommunicationChannel) là một thành phần phần mềm điều khiển tất cả các trao đổithông điệp bên trong agent platform, bao gồm các thông điệp từ/đếncá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 racho phép kết nối các thông điệp Agent platform được chia ra trên nhiều máychủ, chỉ có duy nhất một ứng dụng Java, vì vậy chỉ có duy nhất một JavaVirtual Machine (JVM) được thực thi trên mỗi máy chủ Mỗi JVM là mộtcontainer cơ sở chứa các agent, nó cung cấp một môi trường cho các agentthực thi trên đó và cho phép nhiều agent chạy đồng thời trên một máy chủ

Trang 23

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ậphợp JADE agent khác.

Hình 6: Mô hình JADE Agent platform phân tán

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-containertrong 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 AgentContainer Table và một Agent Global Descriptor được cập nhật mỗi khi mộtcontainer tạo ra hay huỷ bỏ một agent Bên cạnh đó mỗi container duy trì mộtdanh sách cache các tham chiếu đối tượng của các container khỏc Cỏc thamchiếu này được bổ xung vào cache khi các thông điệp được gửi đi và nú giỳpcho 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ậnthông điệp:

 Cùng container: không sử dụng lời gọi từ xa

Trang 24

 Cùng platform, khác container nhưng được tìm thấy trong cache: mộtRMI 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: haiRMI được gọi Một cái để cập nhật cache và cái thứ hai thực hiện gửithông điệp

 Khác platform: một IIOP gọi đến từ một platform từ xa Quá trình trảiqua hai bước đối với cả phía truyền và phía nhận Đối với phía truyềnthông điệp, từ các đối tượng Java chuyển sang cỏc xõu Java và cuốicùng thành cỏc dũng byte IIOP Ngược lại đối với phía nhận dòng byteIIOP được chuyển thành cỏc xõu Java và cuối cùng thành các đốitượ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ồmmột framework để viết và triển khai nhiều MTP theo cách thức linh hoạt MộtMTP 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 JADEcontainer 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ộtcontainer, JADE platform thu được một một địa chỉ mới và bổ xung vào danhsá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 trongplatform 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ủacác agent khác thông qua việc yêu cầu đến AMS từ xa, hoặc đối với platformprofile 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:

Trang 25

( 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ảnhồi Trong một số trường hợp, agent thậm chí có thể quyết định kích hoạt mộtvà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ậndạng agent cho một agent Khi agent được sinh ra, ID của Agent chứa đựngtoàn bộ các địa chỉ platform có sẵn, nhưng sau đó nó không được cập nhậtthườ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ạidanh 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ácAgent 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ậndạ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 đợiriê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ụngphương thức blockingReceive()) hay không ngăn cản (sử dụng phương

Trang 26

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à đốivớ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ẫutrong đó một tham số truyền mô tả mẫu của ACLMesage được yêucầ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

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 địnhnghĩ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

Trang 27

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ứctươ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ụ đượcthự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

Hình 8: Vòng đời của JADE Agent

Một JADE Agent tại một thời điểm chỉ có một trạng thái nhất địnhtrong vòng đời agent theo đặc tả của FIPA JADE đưa ra một vài hằng số thểhiện các trạng thái của agent bao gồm:

1 AP_INITIATED: Agent được tạo nhưng chưa được đăng ký với AMS,chưa có tên hoặc chưa có địa chỉ và không thể thực hiện giao tiếp vớicác agent khác

2 AP_ACTIVE: Agent đã được đăng ký với AMS, có tên, địa chỉ và cóthể tiếp cận toàn bộ các đặc tính JADE

3 AP_SUSPENDED: Agent bị ngừng Luồng bên trong của nó bị đìnhchỉ và không có hành vi nào đang được thực hiện

4 AP_WAITING: Agent bị ngăn cản, chờ một cái gì đó Luồng bêntrong của nó trong trạng thái ngủ và sẽ được đánh thức khi một số điềukiện được thoả mãn

Trang 28

5 AP_DELETED: Agent xem như đã chết Luồng trong đã kết thúc vàagent không còn được đăng ký với AMS

6 AP_TRANSIT: Một mobile agent ở vào trạng thái này trong khi nóđang di chuyển đến một vị trí mới

7 AP_COPY: Trạng thái này được sử dụng bên trong thông qua JADEcho agent đang được sao lưu

8 AP_GONE: Trạng thái này được sử dụng bên trong JADE khi mộtmobile Agent đã chuyển đến một vị trị mới và có một trạng thái ổnđịnh

Ngoài ra, lớp agent cung cấp các phương thức public để thực hiện sựchuyển tiếp giữa các trạng thái Các phương thức đều có dạng doXXX() Vídụ: phương thức doWait() đặt agent vào trạng thái AP_WAITING từ trạngthái AP_ACTIVE, doSuspend() đặt agent vào trạng thái AP_SUSPENDED từtrạng thái AP_ACTIVE hay AP_WAITING state,

Lưu ý rằng một agent chỉ được phép thực hiện các hành vi của nó khi

nó ở trạng thái AP_ACTIVE Để ý rằng nếu một số hành vi gọi phương thứcdoWait() thì toàn bộ agent và các hoạt động của nó bị ngăn cản và không thểgọi hành vi Thay vào đó phương thức block() trở thành một phần của lớphành vi để cho phép đình chỉ một hành vi agent riêng lẻ

JADE quản lý việc sinh ra một agent mới theo những bước sau: agentcontructor được thực hiện, agent được gán một AID, nó được đăng ký vớiAMS, được đặt trong trạng thái AP_ACTIVE, và cuối cùng phương thứcsetup() được thực hiện Theo như đặc tả FIPA, một AID có những thuộc tínhsau:

 Một tên duy nhất: theo mặc định, JADE kết hợp tên cục bộ (localname) và một nhận dạng platform agent để sinh ra tên

 Một tập các địa chỉ agent Mỗi Agent kế thừa các địa chỉ truyền tảiagent platform của nó

 Một tập các dịch vụ trang trắng với những agent đã được đăng ký

Trang 29

Phương thức setup() chứa một số hoạt động của agent Người lập trìnhphải thực hiện phương thức setup() để khởi tạo agent Khi phương thức setup()được thực hiện, agent đã được đăng ký với AMS và trạng thái của nó làAP_ACTIVE Người lập trình sẽ sử dụng thủ tục khởi tạo này để:

 Thay đổi dữ liệu đã đăng ký với AMS (tuỳ chọn)

 Mô tả về agent và các dịch vụ được cung cấp của nó, nếu cần thiếtđăng ký agent với một hay một số domain (tuỳ chọn)

 Thêm một số nhiệm vụ cho hàng đợi các nhiệm vụ bằng phương thứcaddBehaviour() (bắt buộc) Những hành vi này được lên lịch ngay khiphương thức setup() kết thúc

Phương thức setup() sẽ bổ xung ít nhất một hành vi cho Agent JADE

sẽ tự động thực hiện hành vi đầu tiên trong hàng đợi và sau đó chuyển đến cáchành vi khác trong hàng đợi sử dụng một lịch biểu round-robin non-preemptive

Phương thức addBehaviour(Behaviour) và removeBehaviour(Behaviour) củalớp Agent có thể được sử dụng để quản lý hàng đợi các nhiệm vụ

Phương thức Agent.doDelete() để ngừng các hoạt động của agent

Phương thức Agent.takeDown() được thực hiện khi Agent đi đến trạng tháiAP_DELETED và nó sẽ được huỷ bỏ Phương thức takeDown() có thể đượcghi đè bởi người lập trình để dọn sạch tài nguyên Khi phương thức này đượcthực hiện Agent vẫn được đăng ký với AMS và do đó vẫn có thể gửi thôngđiệp tới các agent khác, nhưng sau khi phương thức này hoàn thành agent sẽ bịhuỷ đăng ký và luồng của nó bị huỷ

Như trình bày trên, công nghệ phần mềm hướng agent đang có nhữngbước phát triển mạnh mẽ Phần mềm xõy dựng trên hệ thống đa agent có ưuđiểm hơn các cách tiếp cận khác bởi tớnh mềm dẻo trong kiến trúc, khả năng

mở rộng linh hoạt Chớnh vì vậy viện bảo trì và năng cấp phần mềm trở nênđơn giản và tiết kiệm hơn nhiều

Trang 30

Chớnh vì xu hướng phát triển nhanh chóng như vậy, chúng ta cần phải

có hướng tiếp cận hợp lý và hiệu quả trọng việc nắm bắt công nghệ và áp dụngthực tế Framework jade cung cấp cho ta thư viện cài đặt agent và môi trườngkhá mạnh để chạy agent Công việc của chúng ta chỉ cũn là xõy dựng một môhình hệ thống đa agent hợp lý cho mọi hệ thống hướng agent

Trang 31

CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ BKAS.

Như đã trình bày trên, Agent có những ưu điểm nổi trội hơn hẳn nhữngđối tượng hay component thường, đó là khả năng tự trị, độc lập, đặc biệt làkhả năng lưu động(di động) Song điểm mạnh nhất của phương pháp lập trìnhhướng Agent không phải ở khả năng của các cá thể Agent riêng lẻ, người tathường chú ý đến khả năng giao tiếp, liên kết và phối hợp giữa các cá thểAgent Nhiều Agent có khả năng giao tiếp qua lại sẽ tạo ra một hệ thốngAgent mềm dẻo, có khả năng hỗ trợ lẫn nhau thực hiện các công việc lớn màmột Agent đơn lẻ khó có thể thực hiện Hệ thống này được gọi là hệ đa Agent,MAS (MutilAgent System)

Mục tiêu xõy dựng hệ BKAS thành một framework cho hệ đa agentphần mềm, một cộng đồng agent Trong công đồng agent này, mỗi Agent cóthể được phát triển trên các ngôn ngữ, công cụ khác nhau, nhưng chúng đượccung cấp khả năng giao tiếp qua lại í tưởng cơ bản của BKAS là đưa raphương pháp kết nối các ứng dụng (các hệ thống) dựa agent hoạt động độc lậptrên một hệ phõn tán Dưới đõy chúng tôi xin trình bày một số mục đích của

mô hình BKAS dưới hai góc độ: liên kết và hợp tác, giao tiếp với người xử

Trang 32

 Cung cấp khả năng kết hợp linh hoạt, mềm dẻo giữa các cộng đồngthành phần cấp dịch vụ (ở đõy là các Agents) độc lập trong cả quátrình xõy dựng ứng dụng cũng như khi triển khai thực tế CácAgents khi đã dựa trên một ngôn ngữ giao tiếp và một nền tảngontology cần thiết cho một giao tiếp hiệu quả, thì có khả năng thamgia vào một cộng đồng agent, trong các hoạt động phối hợp khácnhau, mà không đòi hỏi quá nhiều tri thức về tớnh chất đặc điểmcủa các agent khác Các agent cùng với bản sao của chúng hoặc cácagent có khả năng tương đương có thể cùng tồn tại trong một cộngđồng, như vậy có thể tạo ra đa liên kết giữa các cộng đồng trongcùng một hệ thống

 Cung cấp cấu trúc liên kết hợp tác mềm dẻo giữa các thành viêntrong một cộng đồng agent Framework này cho phép xõy dựngnhững tương tác mẫu đa dạng giữa các agent với chi phí nhỏ, khôngphụ thuộc vào độ phức tạp cũng như cấu trúc của từng agent trongtương tác Như vậy việc cung cấp dịch vụ độc lập với cấu hình củacác agent trong hệ thống

 Có một số yêu cầu trong cấu trúc của các cá thể agent Các hướngtiếp cận khác xõy dựng hệ đa agent đòi hỏi các cá thể agent phải đáp

ứng một số yêu cầu khác nhau Ví dụ, KQML (Knowledge Query

and Manipulation Language) là ngôn ngữ giao tiếp gần với ngôn

ngữ tự nhiên, thể hiện trong nội dung của thông điệp, nên chỉ cầnmột số yêu cầu kiến trúc từng agent cá thể Mặt khác, mô hình kiến

trúc agent có khả năng suy luận BDI (Belief – Desire – Intention)

lại yêu cầu nhiều hơn các đòi hỏi khắt khe, bởi vì nó chỉ xõy dựngmột hệ ngôn ngữ giả tự nhiên BKAS nằm trong khoảng giữa haigiới hạn trên, mục tiêu của chúng tôi là cung cấp một tập các hànhđộng liên kết và tương tác đa dạng, mà không có hạn chế với bất kỳcông nghệ nào đã được định nghĩa ở mức dưới

Trang 33

2.1.2 Giao tiếp với người sử dụng

Hệ thống gộp bởi nhiều thành phần phõn tán, cùng với cấu hình của cácthành phần, yêu cầu việc thao tác trên giao diện người dùng phải được:

 Cung cấp các cơ sở khái niệm hoá giao tiếp với các thành phần phõntán dựa trên ngôn ngữ tự nhiên Hệ thống có thể thực thi các tác vụphức tạp thông qua một tập các agent, song người sử dụng khôngcần biết điều này, họ cần có khả năng mô tả yêu cầu mà không cầnhiểu chi tiết về các agent trong hệ thống Với các công nghệ nhậndạng tiếng nói, chữ viết cũng như ngôn ngữ tự nhiờn đang đượchoàn thiện dần, một kiến trúc agent cần phải được chuẩn bị cho cácmẫu nhập yêu cầu này đóng vai trò lớn hơn trong việc sử lý tác vụcủa cộng đồng agent

 Coi người sử dụng như thành viên đặc biệt trong công đồng agent.Bằng việc cung cấp đặc tả tác vụ trong agent phần mềm, và khảnăng tái sử dụng các chuyển đổi giữa mức đặc tả tác vụ và yêu cầungười dùng, nó có thể tạo ra các liên kết kết hợp chặt chẽ giữa agent

và người sử dụng(được coi như một dạng agent của cộng đồngagent)

 Hỗ trợ việc cộng tác giữa agent và người sử dụng( thực hiện đồngthời trên hệ thống dữ liệu chia sẻ và các xử lý tài nguyên chung)

2.2.1 Khái niệm

BKAS viết tắt từ cụm Bach Khoa Agent System, là một mô hình kiến

trúc, một framework mang tớnh mở cho hệ liên (hay đa) Agent mà trên đó mộtcộng đồng các Agent phõn mềm (Software Agent) được phát triển trên nhiềungôn ngữ, nhiều công cụ khác nhau, chạy trên các máy phõn tán có thể cộngtác với nhau theo các nhiệm vụ đã được xác định cụ thể cho từng Agent

Ý tưởng cơ bản và bao trùm của BKAS là sự uỷ quyền (delegated) Sự

uỷ quyền được thể hiện ở điểm là thay vì các agent trong hệ thống phải khai

Trang 34

báo và mã hoá một cách cứng nhắc (hard-code) các khả năng của mình cũngnhư các tương tác với các agent khác trong hệ thống, các agent có thể mô tảcác khả năng, các tương tác của mình và khai báo nó với một agent đặc biệttrong hệ thống là Facilitator agent Facilitator sẽ phối hợp cộng đồng agent đểthực hiện các công việc, cung cấp các dịch vụ như cơ chế song song, xử lý lỗi

và phát hiện xung đột mà mỗi client agent không phải tự lo về những thứ đó

2.2.2 Mô hình

Hình 9: Mô hình cấu trúc của BKAS.

Trên đây là mô hình cơ bản của framework BKAS, bao gồm một sốagent thiết yếu nhất cho một hệ thống đa agent: agent giao diện người sử dụng

(Interface agent), agent xử lý ontology (Ontology agent), một số agent ứng dụng (Application agent) và siêu agent (meta-agent) Các agent trên có vai trò

Application

Agent

Modalty Agents

User Interface Agent

API

Application

Ontology Agent

Meta Agent

Cơ sở tri thức

Dữ liệu về agent

Siêu dữ liệu

Trang 35

ngang nhau trong hệ thống, chúng được tổ chức như một cộng đồng thông qua

mối quan hệ chung với một agent điều phối (Faccilitator agent).

2.3 So sánh BKAS với các công nghệ tính toán phân tán

Một đặc điểm rất quan trọng mà phân biệt BKAS với các mô hình tính toánphân tán khác là mô hình tính toán ủy quyền (delegated computing) của nó, cho phépngười dùng và các agent phần mềm mô tả những yêu cầu bằng những cái cần đượclàm mà không cần những đặc tả về ai sẽ làm công việc đó và cách thức mà công việc

đó được thực hiện, chẳng hạn: “Khi một thông điệp dành cho tôi tới về vấn đề anninh, hóy bỏo cho tôi ngay lập tức” Requester sẽ giao quyền điều khiển để đáp ứngmột mục tiêu (goal) cho facilitator agent – một server agent được chuyên môn hóatrong BKAS mà phối hợp hoạt động của cộng đồng agent nhằm thực hiện những mụctiêu giải quyết các vấn đề phức tạp ở mức cao

Trong BKAS, sự điều khiển cách thức mà tương tác và truyền thôngxảy ra giữa các agent là sản phẩm của sự phối hợp của bốn nguồn tri thứckhác nhau:

1 Requester chỉ ra một mục tiêu cho facilitator và cung cấp lời chỉ dẫn

về việc mục tiêu đú nờn được đáp ứng như thế nào

2 Các provider đăng ký các khả năng của chúng với facilitator, biếtnhững dịch vụ nào mà chúng có thể cung cấp và giới hạn của những khả năngcủa chúng

3 Facilitator bảo trì một danh sách các provider agent đang sẵn sàng vàmột tập các chiến lược chung để đáp ứng các mục tiêu

4 Các meta-agent lưu giữ những tri thức và chiến lược cụ thể đối vớimột phạm vi (domain) hay mục tiêu (goal), được sử dụng như là một sự trợgiúp cho facilitator

Những tri thức này được sử dụng để làm thuận lợi hơn sự phối hợpgiữa giữa một tập các BKAS agent Facilitator khớp (match) một yêu cầu vớimột hoặc nhiều agent mà cung cấp dịch vụ để đáp ứng yêu cầu đó, giaonhiệm vụ cho chúng, kết hợp các kết quả của chúng, và gửi kết quả lại chorequester Cách phối hợp giữa các agent như thế này có thể được áp dụng để

Trang 36

thực hiện cả hai loại công việc đơn giản và phức tạp, nhiều bước Để bổ sungcho sự ủy quyền, BKAS cũng cung cấp khả năng tạo ra những cuộc gọi trựctiếp đến một agent cụ thể, và broadcast các yêu cầu.

Facilitator agent: được đặc tả như một agent server có khả năng hồi

đáp tới việc truyền thông giữa các agent cùng hoạt động và việc giảiquyết các vấn đề chung Trong nhiều hệ thống, facilitator cũng được

sử dụng để cung cấp một kho dữ liệu chung cho tất cả các agent của

nó, cho phép chúng ghi nhận theo kiểu bảng đen của tương tác Một

hệ thống không có giới hạn về số lượng facilitator agent.Một hệthống lớn có thể là sự kết hợp của nhiều nhúm facilitator agent vàagent thành phần, và mỗi nhúm như vậy đều có cấu trúc như hình 1.Một facilitator duy trì một cơ sở tri thức là các bản ghi năng lực vềmột tập hợp các agent, và việc sử dụng tri thức đó để thực hiện cácyêu cầu và cung cấp các dịch vụ trong việc thực thi các liên hệ.Điểm cơ bản trong chức năng của facilitator agent là sự uỷ quyền

“trong suốt” (transparent delegation) Điều này có nghĩa là, khi một

agent thành viên phát sinh một yêu cầu, và facilitator agent có thểquản lý những đáp ứng yêu cầu đó, agent yêu cầu không cần bất cứtri thức nào để nhận dạng hay định vị agent thực thi yêu cầu này.Nhiệm vụ của facilitator agent là kết nối giữa yêu cầu và thực thiyêu cầu Sự uỷ quyền trong suốt này là khả thi vì các khả năng củatừng agent trong hệ thống đều được đặc tả dưới dạng các dịch vụ, sựtrong suốt ở đõy có nghĩa là các agent yêu cầu và thực thi yêu cầukhông hề “biết” nhau, chúng chi cần đặc tả yêu cầu và đặc tả khảnăng của chúng với facilitator agent

Facilitator agent là agent quan trọng nhất trong mô hình, vai trò và

cơ chế hoaạt động của nó cũn được nhắc đến trong phần sau của báocáo

Trang 37

Agent khác (Client Agent): các agent của trong mô hình, trừ

facilitator agent, đều được coi là các agent khách (client agent).

Facilitator agent cung cấp cơ chế giao tiếp, và các dịch vụ thiết yếucho các agent khách Khi được kích hoạt, agent khách tạo kết nốiđến facilitator agent, là facilitator agent mức cha của agent khách

đó, để đăng ký những dịch vụ mà nó có thể cung cấp Khi có yêucầu về một trong các dịch vụ đó, facilitator agent sẽ gửi yêu cầu đếncho agent khách này thông qua ngôn ngữ truyền thông giữa các

agent – ICL (sẽ được trình bày trong phần sau) Agent khách sẽ

phõn tích yêu cầu này, thực thi nó, và gửi kết quả hoặc báo cáo đếncho facilitator agent Trong quá trình thực thi một yêu cầu, agentkỏhch này có thể sử dụng các dịch vụ khác mà hệ thống agents cungcấp

Agent ứng dụng (Application Agent): cung cấp một tập các service

(dịch vụ) cơ bản về một nhu cầu cụ thể nào đó Trên thực tế chúng

có thể là các ứng dụng cụ thể Điều đáng quan tâm là các ứng dụng

có thể là các ứng dụng có công nghệ độc lập (Ví dụ như các ứngdụng xử lý tiếng nói email hay các ứng dụng cụ thể nào đó như cácứng dụng về bài toán lập kế hoạch du lịch)

Siêu agent (Meta-agent): là agent đóng vai trò trợ giúp cho

Facilitator trong việc phối hợp các hoạt động của các agent khác.Meta-agent có thể giúp cho Facilitator agent trong việc hỗ trợ giaotiếp giữa các agent ở các miền (lĩnh vực) nhiệm vụ độc lập cũngnhư được xây dựng trờn cỏc công nghệ độc lập Meta-agent có thểtăng nên khi việc sử dụng các miền (lĩnh vực) nhiệm vụ tăng lêncũng như các tri thức xác định về các miền nhiệm vụ như các luật(rule), thuật toán lớn

Agent giao diện người dùng (User Interface Agent): đóng vai trũ

khỏ quan trọng và thú vị trong nhiều hệ BKAS Trong một số hệ,Interface Agent được thực hiện bởi một tập các agent khác được gọi

là các “Micro-agent”, trong đó mỗi “Micro-agent“ đóng vai trò giám

Trang 38

sát một kiểu đầu vào khác nhau của hệ thống (Point-and-click, cáctín hiệu từ bút, giọng núi,…) và cộng tác để có thể đưa ra các diễngiải tốt nhất trợ giúp cho hệ thống giao diện người dùng (UserInterface).

Agent thao tác với ontology (Ontology agent): là agent quan trọng

trong hệ thống đa agent có sử dụng nền tảng ontology Agent nàyđảm nhiệm các thao tác trên hệ ontology, cung cấp tri thức về lĩnhvực cho các agent yêu cầu Hiện nay, việc sử dụng ontology mã hoá

tri thức về một lĩnh vực, tạo ra một lưới ngữ nghĩa(web semantic)

trở lên rất phổ biến, nên việc sử dụng agent thao tác với ontologygiúp phõn tách hệ thống với tri thức về lĩnh vực mà hệ thống thaotác

Cơ sở hạ tầng chung để xõy dựng lên những agent trên được cung cấpbới một thư viện hỗ trợ, đặc trưng cho các ngôn ngữ lập trình khác nhau.Những thư viện này được thiết kế để giảm thiểu các yêu cầu phức tạp khi xõydựng một hệ thống mới và tăng cường khả năng kế thừa của hệ thống.Framework Jade cung cấp một thư viện như vậy

Như vậy, trong một hệ BKAS, các agent khách hoàn toàn độc lập vớinhau, chúng chỉ biết duy nhất một facilitator agent mức cha của chúng Điềunày tạo ra khả năng linh hoạt trong việc mở rộng hệ thống, đăng ký và cungcấp các dịch vụ của hệ thống

Mỗi agent trong hệ thống xõy dựng trên mô hình BKAS đều định nghĩa

và công bố một tập các khả năng, mô tả các dịch vụ mà nó cung cấp Nhữngcông bố này thiết lập một giao diện mức cao cho agent này Giao diện nàyđược facilitator agent sử dung trong giao tiếp với agent đó, và đặc biệt quantrọng trong việc uỷ quyền đáp ứng các yêu cầu (hoặc một phần của yêu cầu)

Trang 39

cho agent Chúng ta có thể coi những công bố các khả năng của agent như cácđáp ứng.

Có hai loại đáp ứng chớnh: đáp ứng chức năng và đáp ứng về dữ liệu.Một đáp ứng thủ tục thực hiện một công việc hay một hành động, trong khiđáp ứng dữ liệu phục vụ việc truy cập vào một tõp dữ liệu Ví dụ, trong việctạo một agent cho một ứng dụng mail, đáp ứng chức năng có thể được địnhnghĩa cho hành động gửi thông điệp đến cho một người, kiểm tra việc nhậncác mail vào trong hàng đợi, hay việc trình bày từng tin trên màn hình Cũnagent phụ trách dữ liệu, chúng định nghĩa một đáp ứng dữ liệu với mỗi mộtquan hệ được mô tả trong cơ sở dữ liệu Thông thường, một đáp ứng dữ liệuđược sử dụng để cung cấp một kho dữ liệu chia sẻ, mà không chỉ được truyvấn, mà cũn được cập nhật bởi các agent khác có yêu cầu

Hình 10: Đăng ký dịch vụ với facilitator agent.

Về mặt công nghệ, những điểm khác biệt cơ bản ở hai loại đáp ứng nàylà:

Facilitator agent

Agent xử

lý dữ

liệu

Agent xứ lý ontology

Đăng ký dịch vụ -

đáp ứng dữ liệu

Đăng ký dịch vụ - đáp ứng chức năng

Trang 40

 Mỗi đáp ứng chức năng đều phải có một phần điều khiển được địnhnghĩa và công bố, trong khi đáp ứng về dữ liệu thì không cần (việcđiều khiển các yêu cầu đến đáp ứng dữ liệu được cung cấp một cáchtrong suốt bởi thư viện agent).

 Đáp ứng dữ liệu được kết hợp với tập hợp các chõn lý (hay mệnhđề), chúng có thể bị thay đổi trong quá trình sử dụng hệ thống do cảagent cung cấp đáp ứng đó và các agent khác trong hệ thống sẽ

Mặc dù có những khác biệt trên, nhưng cần lưu ý rằng cách thức sửdụng (cách thức mà các agent yêu cầu các dịch vụ) là giống nhau với cả hailoại đáp ứng Quá trình yêu cầu dịch vụ của một agent sẽ được trình bày trongphần sau

Thư viện agent cung cấp một tập các hàm cho phép agent có thể thêm,xoá, sửa đổi các đáp ứng của nó, những việc này có thể thực hiện bất kỳ thờiđiểm nào sau khi agent đó đã kết nối với facilitator agent của nó

Các đáp ứng của agent thể hiện các đóng góp của agent đó cho hệthống Song việc công bố một đáp ứng cần phải tuân theo một cú pháp chung,mọi agent đều hiểu được Có nghĩa là, mọi agent cần phải đặc tả chi tiết đáp

ứng của mình Một đáp ứng gồm ba phần: mục đích, một danh sách thao tác,

danh sách các tham số

Đáp ứng (mục đích, các thao tác, các tham số).

Mục đích: theo cú pháp của ngôn ngữ giao tiếp agent, mục đớch là

sự mô tả dịch vụ được cung cấp bởi đáp ứng đó Cú pháp mô tả mục

đích dưới dạng các hàm (function) với các tham số(hoặc không có tham số) Ví dụ, send_message(email, ToPerson, Params), trong đó

send_message là tên hàm hay tên dịch vụ, ToPerson và Params là

các tham số

khiển truy cập đến các dịch vụ của agent đăng ký đáp ứng

Ngày đăng: 30/04/2015, 09:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w