de cuong-on-tap-mon-agent

24
CÂU HỎI ÔN TẬP MÔN PHÁT TRIỂN PHẦN MỀM HƯỚNG AGENT – L13CNPM Cấu trúc đề thi: Đề thi sẽ gồm 4 câu hỏi lý thuyết (6 điểm) và 1 bài tập: trong đó áp dụng phương pháp luận MaSE và viết code JADE cho một chức năng đơn giản (4 điểm). Các câu hỏi tham khảo: 1. Agent là gì? Các đặc trưng cơ bản của agent. Phân biệt tính phản ứng và tính chủ động của agent. 2. Đặc tính xã hội của agent là gì? Cho ví dụ minh họa. 3. Phân biệt các dạng agent qua sơ đồ 3 vòng tròn. 4. Phân biệt các kiểu agent qua sơ đồ kiến trúc. 5. Ngôn ngữ truyền thông đa agent là gì? Thế nào là lý thuyết lời nói – hành động (Speech-act theory). 6. Giới thiệu và so sánh các ngôn ngữ truyền thông KQML và FIPA-ACL. 7. Phân biệt các kiểu tương tác với agent trung gian. 8. Ontology là gì? Vai trò của ontology trong tương tác đa agent. Cho ví dụ đơn giản để minh họa. 9. So sánh các cách tiếp cận phát triển phần mềm hướng agent. 10. Goal là gì? Phương pháp xác định và phân rã goal trong MaSE. 11. Trình bày phương pháp ánh xạ goal sang role trong MaSE. 12. Phương pháp xác định lớp AGENT trong MaSE. 13. Tác vụ (task) là gì? Trong MaSE, các tác vụ được xây dựng như thế nào?

Upload: dung-doan-tien

Post on 15-Aug-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: De cuong-on-tap-mon-agent

CÂU HỎI ÔN TẬP MÔN PHÁT TRIỂN PHẦN MỀM HƯỚNG AGENT –

L13CNPM

Cấu trúc đề thi:

Đề thi sẽ gồm 4 câu hỏi lý thuyết (6 điểm) và 1 bài tập: trong đó áp dụng

phương pháp luận MaSE và viết code JADE cho một chức năng đơn giản

(4 điểm).

Các câu hỏi tham khảo:

1. Agent là gì? Các đặc trưng cơ bản của agent. Phân biệt tính phản ứng và tính

chủ động của agent.

2. Đặc tính xã hội của agent là gì? Cho ví dụ minh họa.

3. Phân biệt các dạng agent qua sơ đồ 3 vòng tròn.

4. Phân biệt các kiểu agent qua sơ đồ kiến trúc.

5. Ngôn ngữ truyền thông đa agent là gì? Thế nào là lý thuyết lời nói – hành động

(Speech-act theory).

6. Giới thiệu và so sánh các ngôn ngữ truyền thông KQML và FIPA-ACL.

7. Phân biệt các kiểu tương tác với agent trung gian.

8. Ontology là gì? Vai trò của ontology trong tương tác đa agent. Cho ví dụ đơn

giản để minh họa.

9. So sánh các cách tiếp cận phát triển phần mềm hướng agent.

10. Goal là gì? Phương pháp xác định và phân rã goal trong MaSE.

11. Trình bày phương pháp ánh xạ goal sang role trong MaSE.

12. Phương pháp xác định lớp AGENT trong MaSE.

13. Tác vụ (task) là gì? Trong MaSE, các tác vụ được xây dựng như thế nào?

14. Phiên hội thoại (conversation) là gì. Phương pháp xác định và biểu diễn phiên

hội thoại.

15. Các kiểu hành vi trong JADE. Cho ví dụ đơn giản để minh họa.

Dạng bài tập: Cho một hệ thống ví dụ. Dựa trên phương pháp luận MaSE, hãy

thực hiện các bước sau:

- Xác đinh các goal và cây phân cấp goal của hệ thống.

- Xác định các role và biểu diễn biểu đồ role có gán task.

- Xác định các lớp agent biểu diễn biểu đồ lớp agent của hệ thống

- Biếu diễn một conversation giữa các agent (theo yêu cầu)

- Viết code với thư viện JADE cho một lớp hoặc một tương tác giữa

các agent trong sơ đồ lớp đã xây dựng (chỉ cần viết một đoạn mô tả).

Page 2: De cuong-on-tap-mon-agent

Câu 1 Agent là gì?Các đặc trưng cơ bản của Agent. Phân biệt tính phản ứng và tính chủ động của agent.

định nghĩa agent- agent là một hệ tính toán hoàn chỉnh hay chuơng trình đuợc đặt trong một môi truờng nhất định, có khả năng hoạt động một cách tự chủ và mềm dẻo trong môi truờng đó nhằm đạt đuợc mục đích đã thiết kế- Một agent thông minh là một hệ thống máy tính có khả năng hoạt động linh hoạt và tự chủ trong môi truờng. Linh hoat nghĩa là: Phản ứng, chủ động, mang tính xã hội. Các đặc trưng cơ bản của agent- tính tự chủ- khả năng phản ứng- tính chủ động- khả năng xã hội- ngoài ra agent còn có một số đặc trưng khác như: Tính thích nghi và

tự học hỏi; Bền vững trong quá trình hoạt động, Hoạt động huớng đích, Giao tiếp và cộng tác, Linh hoạt, Tính di động.

Phân biệt tính phản ứng và tính chủ động của Agent- Tính phản ứng: là khả năng agent có thể nhận biết đuợc môi truờng

( qua bộ phận cảm nhận nào đó) và dựa qua nhận biết đó, agent đáp ứng kịp thời những thay đổi xảy ra trog môi truờng. Tính phản ứng thể hiện rõ nhất ở các agent hoạt động trên các môi trường có tính thay đổi như Internet, môi truờng mạng phân tán, môi truờng vật lý,…Phản ứng của mỗi agent đối với 1 môi truờng bên ngoài đều huớng tới việc thực hiện mục tiêu ( đích) của agent đó.

- Tính chủ động: khi có sự thay đổi của môi trường, agent không chỉ phản ứng một cách đơn giản mà còn xác định một chuỗi các hành động cần thực hiện, bản thân mỗi agent sẽ chủ động trong việc khởi động và thưcj hiện chuỗi hành động này

Câu 2: Đặc tính xã hội của agent là gì?Các agent không chỉ huớng tới đích riêng của mình mà còn có khả

năng tuơng tác với các agent khác trong hệ thống để huớng tới đích chung của hệ thống. Các hoạt động tuơng tác này rất đa dạng bao gồm: phối hợp, thuơng lượng, cạnh tranh….

Câu 4: Phân biệt các dạng kiến trúc agent

Trả lời:

Các dạng kiến trúc Agent:

Kiến trúc suy diễn ( Deliberative – Logic Based Architectures):

- Dựa trên Symbolic AI : Đây là kiến trúc mà quá trình ra quyết định được thực hiện nhờ suy diễn Logic.

Page 3: De cuong-on-tap-mon-agent

- Các phương pháp ra quyết định : Logical Reasoning, Pattern matching, Symbolic manipulation.

- Miêu tả đặc trưng của thế giới:

+ Mục đích cần đạt tới.

+ Tập miêu tả hành động -> tìm một chuỗi action để đạt tới mục đích.

+ Sử dụng thuật toán đơn giản

+ Toạ kế hoạch không hiệu quả.

- Mô hình kiến trúc:

* Những hạn chế của kiến thức suy diễn:

- Vấn đề Transduction : tốn nhiều thời gian để chuyển đổi tất cả những thông tin cần thiết thành Symbolic Representation, đặc biệt nếu môi trường thay đổi rất nhanh.

- Vấn đề Representation: Làm thế nào để World – model đuợc biểu diễn một cách tượng trưng và làm thế nào để Agent có thể suy diễn kịp thời với sự thay đổi thông tin

- Cho những kết quả hữu hình: những kết quả sau cùng có thể là vô dụng.

(có thể có phần kiến trúc BDI hoặc không)

Kiến trúc BDI ( Belief- Desire – Intention: Suy luận thông minh)

Agent

Sensors

Effectors

World Model

Planner Plan Executor

Page 4: De cuong-on-tap-mon-agent

- Kiến trúc dựa trên quá trình suy luận thông minh (Practical reasoning) trong đó quá trình ra quyết định được tiến hành từng bước, các hành động được thực hiện xuất phát từ yêu cầu của hàm mục tiêu đề ra.

- Beliefs : biểu diễn tập các thông tin về Agent biết về môi trường hiện tại của nó ( và có thế một vài trạng thái trong).

- Desires: cái xác định động cơ của nó – ví dụ cái nó đang khám phá.

-Intentions: biểu diễn những quyết định phải hành động như thế nào để hoàn toàn đạt tới desires của nó.

- Mô hình kiến trúc (BDI)

+ Beliefs = “hiểu biết của Agent”

+ Desires = “những mục đích của Agent”

+Intentions=“những mục đích cần hoàn thành”(tập con của Desires).

* Extended : goals, plans.

Kiến trúc phản xạ ( Reactive)

- Là kiến trúc mà quá trình ra quyết định được cài đặt một cách trực tiếp, tức là sẽ có một ánh xạ trực tiếp từ tình huống tới hành động.

- Sự suy diễn phức tạp có thể dẫn đến không lời giải hay đáp ứng về mặt thời gian.

- Cho phép (brooks):

+ Những kiến trúc thông minh được tạo ra không cần Symbolic (AI) Representation.

+ Behavior thông minh có thể được tạo ra không cần Explicit abstract symbolic reasioning (AI).

+ Tính thông minh là thuộc tính nổi bật trong hệ thống phức tạp.

Agent

Interaction

Plan, schedule, execute

BDI reasoner

Knowledge Base

Action

Perception

Page 5: De cuong-on-tap-mon-agent

+ Behavior thông minh là kết quả việc tương tác với môi trường.

- Sơ đồ kiến trúc:

- Đặc thù của Agent phản xạ: Tính phản xạ là một mô hình phản xạ cơ sở của hành động (behavior based model of activity) <-> mô hình thao tác tượng trưng được sử dụng trong sơ đồ.

- Ưu điểm: đơn giản, kinh tế, kiểm soát được khả năng tính toán, khả năng chịu lỗi cao.

- Nhược điểm:

+ Nếu Agent không sử dụng mô hình giống như mô hình của môi trương trong đó nó hoạt động thì chúng phải có đầy đủ những thông tin cần thiết bên trong để có thể thực hiện các Action thích hợp.

+ Hầu hết các Agent đều ra quyết định dựa trên các thông tin mang tính cục bộ của riêng mình.

+ Các agent đều không có khả năng học từ những kinh nghiệm đã gặp phải cũng như nâng cao khả năng của hệ thống kể cả đã hoạt động trong một thời gian dài.

Kiến trúc lai – Hybrid :

- Kết hợp tính phản xạ và tính suy diễn.

Agent

Sensors

Effect

ors

Stimulus-response behaviours

..... ......

State 1

State 2

State n Action n

Action 2

Action 1

Page 6: De cuong-on-tap-mon-agent

- Subsystem tạo ra những kế hoạch và quyết định sử dụng Symbolic reasoning và phản ứng lại sự kiện nhanh chóng mà không cần những reasoning phức tạp.

- Mô hình kiến trúc: (Trang bên)

Mô hình kiến trúc Hybrid:

- Mô hình kiến trúc xây dựng theo kiến trúc lớp : Ngang và dọc

+ Ưu nhược điểm phân lớp chiều ngang :

- Đơn giản. Nếu một Agent có n cách cư xử khác nhau thì sẽ cài đặt mô hình này.

- Tuy nhiên luôn có sự tranh giành trong việc ra quyết định, để bảo đảm sự tươg thích ta thường đưa vào một hàm điều khiển trung tâm để quyết định xem lớp nào đang điều khiển hoạt động của Agent.

- Có sự tương tác giữa các Action khi thực hiện.

Agent

Coservation modifications

Sensors

Effectors

Deliberative componentWorld Model

Planner Plan Executor

Reactive component

..... ......

State 1

State 2

State n Action n

Action 2

Action 1

Page 7: De cuong-on-tap-mon-agent

- Đây là một vấn đề khó và khi hoạt động có thể gây hiện tượng thắt cổ chai trong quá trình ra quyết định.

+ Ưu nhược điểm của phân lớp dọc:

- Sự phức tạp trong tương tác giữa các lớp đã đượ giảm.

- Luồng điều khiển phải đi qua toàn bộ các lớp vì thế nếu 1 lớp nào đó hoạt động không ổn định sẽ ảnh hưởng đến toàn bộ hệ thống.

Câu 5: Ngôn ngữ truyền thông đa agent là gì? Thế nào là lý thuyết lời nói – hành động (Speech-act theory).

1. Ngôn ngữ truyền thông đa agent Các agent trao đổi với nhau thông qua các thông điệp. Khác với các hệ hướng đối tượng trong hệ đa agent không chỉ biểu diễn các lời gọi hàm đơn giản mà còn phải biểu diễn thông tin và tri thức cần trao đổi giữa các agent. Các thông điệp này được biểu diễn theo các ngôn ngữ truyền thông agent (ACL – agent communication language) nhằm:- Định nghĩa khuôn dạng các thông điệp để trao đối giữa các agent

trong hệ thống- Thiết lập một giao thức trao đổi giữa các agent, gồm: định nghĩa các

kiểu thông điệp gửi và nhận, các mô hình trao đổi thông điệp giữa các agent

Các ngôn ngữ truyền thông đều dựa trên lý thuyết hành động lời nói2. Lý thuyết hành động lời nói

Mỗi speech act có 3 phương diện:- Locution (kiểu nói/cách nói): định nghĩa 1 cấu trúc lời nói- Illocution (hành vi ngôn ngữ thực hiện bởi người nói)- Perlocution ( sức thuyết phục, lôi cuốn của lời nói): kết quả của lời

phát biểu Một hành động lời nói ( speech act) đầy đủ không chỉ định nghĩa cấu

trúc lời nói mà còn xác định hành động liên quan đến lời nói đó.Ví dụ: John nói với Mary :” Làm ơn, đóng cửa lại”- Hành động này bao gồm kiểu diễn đạt( từ ngữ) của chính

JohnLocution- Mục đích của thông điệp này như mooth yêu cầu or mệnh

lệnhIllocution- Nếu sự việc diễn ra suôn sẻ,( lời nói có sức thuyết phục) thì cửa sẽ

được đóngPerlocutionNhưng mục đích của thông điệp thường không được xác định dễ dàngVí dụ: “Tôi lạnh”

Page 8: De cuong-on-tap-mon-agent

- Speech act ở đây có thể xem là 1 khẳng định, 1 yêu cầu cho mượn chiếc áo len or nhu cầu tăng nhiệt độ phòng

- Đối với các giao tiếp giữa các agent cần đảm bảo rằng không có sự nhập nhằng về loại thông điệp truyền đi.Có 5 kiểu speech act:

- Representtatives ( Mô tả/diễn tả/ thông báo)Vd: Trời đag mưa ( speech act mag tính chất thông báo về một hiện

tượng tự nhiên)- Directives (ra lệnh): yêu cầu người nghe làm gì đóVd: Hãy pha trà- Commisive ( hứa hẹn)- Expressive ( lời nói mag tính chất biểu cảm)- Declarations ( tuyên bố)Lý thuyết lời nói hành động sử dụng thuật ngữ “performative” để xác đinh hành vi ngôn ngữ bởi người nói trong các phát biểu điển hìnhNhìn chung một speech act gồm 2 thành phần:- Động từ “performative”

Ví dụ: yêu cầu, thông báo, hứa hẹn….- Nội dung (content) của speech actChẳng hạn:- Nếu performative = reaquest (yêu cầu)

Content =”the door is closed”Speech act =” please close the door”

- Nếu performative =inform (thông báo)Content =”the door is close”Speech act =” the door is closed”

- Nếu performative =inquire (Hỏi han/điều tra/thăm dò)Content =” the door is closed”Speech act =” is the door closed?”

Tóm lại: Lý thuyết hành động lời nói giúp xác định loại thông điệp bằng cách sử dụng các khái niện của hành vi ngôn ngữ thực hiện bởi người nói mà bộc lộ ý nghĩa của các hành vi giao tiếp của chính nó hướng tới đích chung của hệ thốngTuy nhiên các thông điệp chứa trong các giao thức có thể có nhiều hơn 1 nghĩa

- Có thể không có phản hồi đơn giản- Hoặc có thể yêu cầu sự phân tích và trợ giúp của các agent khác

Câu 8: Ontology là gi? Vai trò của Ontolofy trong tương tác đa agent?

Page 9: De cuong-on-tap-mon-agent

1. Ontology là gì?Ontology là một thuật ngữ của triết học, được sử dụng rộng rãi trong lĩnh vực trí tuệ nhân tạo và có nhiều định nghĩa khác nhau về Ontology trong đó định nghĩa của T.Gruber là được chấp nhận rộng rãi nhất. Theo T. Gruber, Ontology là một đặc tả hình thức về khái nhiệm. Các yêu cầu cho biểu diễn Ontology là:- Các khái niệm được dùng trong Ontology và các ràng buộc giữa các khái niệm đó được định nghĩa một cách rõ ràng.- Ontology phải là dạng thông tin sao cho máy có thể hiểu được.- Thông tin biểu diễn trong Ontology phải có tính phổ quát nghĩa là thông tin đó không chỉ cho một thành phần mà cần được chấp nhận bởi một nhóm các thành phần khác nhau.Có thể nói , Ontology xác định tập các thuật ngữ dùng để mô tả và biểu diễn các khái niệm dựa trên mối quan hệ qua lại giữa các khái niệm đó. Các khái niệm trong Ontology giúp cho việc dùng chung và chia sẻ tri thức giữa 2 miền tri thức khác.Trong hệ agent, Ontology biểu diễn thông tin và tri thức về miền quan tâm của các agent nhằm hỗ trợ tương tác. Mỗi Ontology là một cấu trúc phân lớp các khái niệm, thuật ngữ, mối quan hệ giữa khái niệm, thuật ngữ đó. Thông qua Ontology các agent sẽ hiểu được nội dung các thông tin đúp truyền thông mà nó nhận được trong quá trình tương tác.

2. Vai trò của Ontology trong tương tác giữa các agent:Ontology được xem nhưu một khuôn mẫu chung để biểu diễn ngữ nghĩa thông tin trong một miền xác định thông qua một tập khái niệm, các mối quan hệ và một tập các luật được sử dụng để ràng buộc các khái niệm và mối quan hệ cần thiết. Ontology được sử dụng cho các mục đích sau:- Hỗ trợ truyền thông tin giữa con người; giữa con người với máy tính và giữa các hệ thống máy tính độc lập với nhau.- Cho phép các hệ thống sử dụng lại miền tri thức.- Làm cho miền tri thức trở nên rõ ràng hơn.- Phân tích hay kết hợp các miền tri thức nhờ các phép toán.Trong trường hợp sử dụng Ontology để hỗ trợ truyền thông giữa các agent phần mềm thì các Ontology sẽ biểu diễn các khái niệm và các thuật ngữ được sử dụng trong quá trình tương tác giữa các agent cùng với các mối quan hệ cũng như các luật ràng buộc giữa các khái niệm, thuật ngữ đó. Để thực hiện truyền thông giữ các agent, mỗi một agent trong hệ thống phải biết các thông tin:- Khả năng và dịch vụ của các agent khác.- Ontology để định nghĩa các khái niệm trao đổi.- Ngôn ngữ truyền thông agent mà các agent dùng để biểu diễn thông điệp.Như vậy, các agent trong hệ thống phải dùng chung một ngôn ngữ truyền thông để biểu diễn các thông điệp và trong mỗi thông điệp phải có Ontology tương ứng mà agent gửi thông điệp đó sử dụng

Page 10: De cuong-on-tap-mon-agent

Câu 7: Giới thiệu ngắn gọn các mô hình tuơng tác sử dụng agent trung gian

1. Mô hình tuơng tác với Agent trung tâmTrong mô hình này, nhiệm vụ của các agent trung tâm là chủ động liên lạc với các agent khác có dữ liệu hay tri thức cần thiết trong hệ thống. Các dịch vụ mà agent trung tâm có thể cung cấp là:- Tự động xác định các dịch vụ thông tin- Xác định vai trò của các agent trong hệ thống- Tự thu thập va tạo ra thông tin từ các agent cung cấp sau đó gửi trả lại

cho các agent yêu cầuĐể thực hiện các nhiệm vị trên các agent trung tâm sử dụng mô hình thông tin toàn cục bằg cách thu thập và tích hợp các thông tin cần thiết để giải quyết các yêu cầu có thể chuyển cho các agent phù hợp trong hệ thống để giải quyết.. Như vậy agent trung tâm đóng vai trò là agent trực tiếp quản lý các agent khác lại vừa tự tìm ra thông tin cần thiêt để giải quyết và gửi trả lại kết quả cho các agent yêu cầu. Hiệu quả hoạt động của hệ thống phụ thuộc vào khả năng của agent này.

2. mô hình tuơng tác với agent đối đầuTrong mô hình này, Midagent( agent trung gian) đóng vai trò Agent điều phối ( Brocker Agent). Công việc mà Agent điều phối thực hiện là một phần công việc của agent trung tâm và đuợc biểu diễn như sau:

Như vậy trong mô hình tương tác này, bất kì một liên lạc giữa agent yêu cầu và agent cung cấp dều phải thông qua agent điều phối.

3. Mô hình tương tác với agent môi giới

Agent yêu cầu

Agent điều phối

Agent cung cấp

0: đăng kí, hủy đang kí dịch vụ

2: Yêu cầu dịch vụ và giao tác

4: Trả lại kết quả dịch vụ

3: chuyển kết quả dịch vụ

1: Yêu cầu dich vụ

Page 11: De cuong-on-tap-mon-agent

Trong mô hình này, Midagent đóng vai trò như một agent môi giới mà nhiệm vị chính của nó là tạo ra cơ chế liên lạc trực tiếp giữa Agent yêu cầu và Agent cung cấp như hình minh họa

Khi muốn tham gia vào hệ thống, mỗi agent đăng kí dich vụ môi giới với agent môi giới và trở thành nhà cung cấp dich vụ( agent cung cấp). agent môi giới sẽ cập nhật vào cơ sở tri thức của nó tên và khả năng dịch vị của agent cung cấp. Trong 1 tương tác cụ thể, khi có một agent yêu cầu mọt dịch vụ thì nó sẽ gửi yêu cầu đến agent môi giới, agent môi giới xem xét và gửi cho agent cung cấp tên và địa chỉ của agent cung cấp. quá trình tương tác sau đó sẽ diễn ra trực tiếp giữa agent yêu cầu và agent cung cấp

Câu 6: Giới thiệu và so sánh KQML và FIPA-ACL

KQML (Knowledge Query and Manipulation Language)

KQML định nghĩa ba mức là mức nội dung, mức thông điệp và

mức truyền thông. Mỗi thông điệp KQML định nghĩa một hành động

thoại, ngữ nghĩa đi kèm hành động thoại đó, giao thức và một tập các

thuộc tính. Cấu trúc chung của một thông điệp KQML như sau

(performative-name: sender A: receiver B: content X: language L: ontology N: reply-with W: in-reply-to P)

Mỗi một thông điệp KQML tương ứng với một dạng tương tác trong

trường performative-name. Có tới 25 dạng tương tác (performative) đã được

Agent yêu cầu

Agent môi giới

Agent cung cấp

0:Đăng kí, hủy đăng kí dịch vụ

1: Yêu cầu dịch vụ

2: Trả lại tên agent cung cấp

4: Trả lại kết quả dịch vụ

Page 12: De cuong-on-tap-mon-agent

định nghĩa bao gồm ask-one, advertise, broadcast, insert... Đồng thời,

KQML cho phép mở rộng và định nghĩa thêm các dạng tương tác khác khi

cần thiết.

Trường content mô tả nội dung của thông điệp. Nội dung này có thể

rất phức tạp tuỳ thuộc vào nhu cầu trao đổi thông tin của hai agent trong

phiên liên lạc đó. Agent nhận sẽ hiểu được nội dung trong trường content

bằng cách tham chiếu vào trường ontology của thông điệp mà nó nhận được.

KQML cũng định nghĩa các giao thức truyền thông bao gồm cả thứ tự các

thông điệp, các perormative. Ví dụ một giao thức truyền thông được định

nghĩa trong KQML như Hình 2.1:

FIPA-ACL (Foudation for Intelligent Physical Agent)

- Là một chuẩn của ACL

- Có cấu trúc tương tự như KQML

+ performative: có 20 dạng performative trong FIPA

- FIPA-ACL cũng dựa trên lý thuyết hành động - lời nói . FIPA-ACL

sử dụng XML theo dạng như sau [10]:

<fipa-message act = “ “> <sender> </sender> <receiver> </receiver> <content> </content> <language> </language> <ontology> </ontology> <conversation-id> </conversation-id>

</fipa-message>- “ Inform” và Request là hai performative cơ bản trong FIPA-ACL.

- Ý nghĩa của Inform và Request được xác định 2 phần:

+ Pre-condition ( điều kiện tiên quyết): những gì phải đúng sự thật để

các speech act thành công

+rational effect (ảnh hưởng mang tính lý luận): những gì người gửi

thông điệp hy vọng mang lại

So với KQML, FIPA-ACl linh động hơn và có thể dễ dàng thêm vào các các

dạng tương tác mới. Tuy nhiên , FIPA-ACL không định nghĩa các

tell(X)

F

A B

broker(ask(X))tell(X)

advertise(ask(X))

ask(X)

Page 13: De cuong-on-tap-mon-agent

performative theo kiểu sử dụng các thành phần trung gian như trong KQML.

Đó là các performative như broker hay advertise.

Câu 9 So sánh các cách tiếp cận phát triển phần mềm hướng agent1. Cách tiếp cận theo Agent và công nghệ agent:- Xuất phát từ nhận định:+ Agent có những đặc trưng riêng như tính tự chủ, chủ động, khái niệm phản ứng. Các đặc trưng này là hoàn toàn khác object và tạo cho agent khả năng tương tác chủ động và khả năng suy luận mà object không có. không thể mô hình hóa agent bằng các phương pháp luận dành cho hướng đối tượng.+ Agent hoạt động như một xã hội với các luật chi phối riêng nên có thể xem agent từ các khía cạnh xã hội và sử dụng các khái niệm trừu tượng mức xã hội để mô hình hóa các agent trong hệ thống.- Các khái niệm trừ tượng mức xã hội theo cách tiếp cận này: agent, nhóm (group), tổ chức (organization)- Với cách tiếp cận này, quá trình phát triển hệ thống được phân chia thành 2 pha:+ pha phân tích - ứng mô hình tổ chức (organization model)+ pha thiết kế - ứng mô hình agent (agent model) Phương pháp luận tiêu biểu theo hướng tiếp cận này: GaiA, SODA, AALAADIN2. Cách tiếp cận phát triển từ phương hướng đối tượng:- Cách tiếp cận này xem mỗi agent cũng là một đối tượng nhưng ở mức trừu tượng cao hơn. Công cụ sử dụng và biểu diễn đối tượng và phân tích thống kê hệ thống hướng đối tượng UML hoàn toàn có thể mở rộng để biểu diễn các đặc trưng của agent.- Cách tiếp cận này tập trung vào các công việc sau:+ phát triển các công cụ dựa trên nền tảng sẵn có của hướng đối tượng để áp dụng cho hệ đa agent. Ví dụ: mở rộng UML AUML.+ Bổ sung các bước, pha mang tính đặc trưng của agent và công nghệ như đích (goal), vai trò (role) và Ontology.- Phương pháp luận tiêu biểu: + MASE (Multiagent System Engenerring)+ MASSIVE+ KGR3. Cách tiếp cận dựa trên công nghệ tri thức:- Phương pháp luận này tập trung vào các quá trình thu thập tri thức (Knowledge acquisition), mô hình tri thức (Knowledge modelling) và lập luận được sử dụng bởi các thành phần agent trong hệ thống phần mềm.- Phương pháp luận tiêu biểu: CoMoMAS, MAS_comonKADS.

Câu 10: Goal là gi? Các bước xác định và phân tích goal trong MaSE* Khái niệm- Đích (goal) là một khái niệm để chỉ mục đích mà hệ thống cần đạt được.

Page 14: De cuong-on-tap-mon-agent

+ Các goal sẽ phải thực hiện được một hoặc nhiều agent+ Đích sẽ được phân rã thành các đích con, các đích con tiếp tục được phân rã và các đích ở mức thấp hơn này sẽ không được coi là đích mà chỉ được xem xét để đưa vào các bước sau của ta phân tích.* Các bước xác định- Để xây dựng cây đích cần xác định:+ Tập hợp các đích+ Xây dựng cây phân tích cấp đích* Tập hợp đích:- Bước này thực hiện trích các yêu cầu chức năng có trong tài liệu đặc tả hệ thống, mỗi yêu cầu chức năng được mô tả bằng một đích.Các yêu cầu chức năng được xác định bằng cách trả lời câu hỏi “Hệ thống phải làm cái gì?”- Đích đầu tiên xác định một cách trực quan thông qua việc xác định mục tiêu cần đạt được của hệ thống- Các đích tiếp theo được xác định thông qua đích trước bằng cách trả lời câu hỏi “Muốn đạt được đích X thì cần phải có cái gì?” Quá trình này được gọi là quá trình phân rã, từ các đích ban đầu sẽ trở thành các đích con. Quá trình dừng lại khi các chức năng con sinh ra không phải là nhiệm vụ mức hệ thống (không đóng vai trò đích cảu hệ thống).* Tổ chức cây đích:- Một sơ đồ phân cấp đích là một đồ thị có hướng và không có chu trình (dạng tựa hình cây). Trong đó:+ Các đỉnh biểu diễn các đích, có tên trùng đích mà nó biểu diễn.+ Các mũi tên chỉ ra quan hệ đích cha-con và quan hệ với các đích khác.- Có 2 trường hợp xảy ra:+ Nếu đã xác định được đích tổng thể của hệ thống thì đặt nó ở gốc của cây đích.+ Nếu đích tổng thể không xác định được trực tiếp từ yêu cầu thì phải kết hợp các đích ở mức cao nhất lại thành một đích tổng thể cho hệ thống. Các đích còn lại có thể phân cấ thành các quan hệ cha-con hoặc ngang hàng bằng cách lặp các thủ tục sau:Bước 1: Các đích được phân rã từ các đích khác trong các bước con trước phải là đích con với đích cha tương ứng.Bước 2: Nếu các đích không được phân rã từ bất kỳ một đích nào, để xác định quan hệ cha-con, thì trả lời câu hỏi “chúng có thực hiện một phần nhiệm vụ cho một đích nào không?”. Nếu có, nó sẽ trở thành đích con của đích mà nó hỗ trợ. Nếu không, phải xem xét lại rằng đích đó có cần thiết cho hệ thống hay không. Nếu không cần thiết thì nó sẽ bị loại bỏ và ngược lại nếu cần thiết nó sẽ tạo một nhánh mới ngay từ nút gốc của cây đích.

Câu 11: Phương pháp ánh xạ goal sang role trong MaSETrả lời:- Input: - Goal hierarchy diagram ( cây phân cấp đích)- Product: - Agent roles

- Concurrent Tasks (Tác vụ đồng thời)

Page 15: De cuong-on-tap-mon-agent

- Mục tiêu của bước này là chuyển tập các đích (goal) của hệ thống vào tập các role cùng với các nhiệm vụ của nó: Thông thường việc ánh xạ từ đích sang role là tương ứng 1-1, nghĩa là mỗi role thực hiện một đích.- Tuy nhiên, trong một số trường hợp, một role có thể tương ứng với nhiều đích khi các đích này có quan hệ chặt chẽ hoặc gần giống nhau.- Các giao tiếp với bên ngoài sẽ được xây dựng thành một role riêng biệt và hoạt động tương tự như một tương tác từ một nguồn tài nguyên bên ngoài với phần còn lại của hệ thống. Các thành phần được coi là nguồn tài nguyên bên ngoài bao gồm: cơ sở dữ liệu, các file, hệ thống bổ sung và con người. Sau khi xác định các role phù hợp của hệ thống, phải xác định được tập các giao thức giao tiếp ban đầu giữa các role này.- Sơ đồ role ban đầu sẽ được chi tiết hóa bằng cách gán task cho các role. Task là mộ nhiệm vụ cụ thể, chi tiết mà các role phải thực hiện nhằm đạt được đích mà nó có trách nhiệm phải thực hiện.

Mỗi task có thể giao tiếp với các task khác để đảm nhiệm đích của chúng.

- Các role có thể hoạt động với 2 loại tương tác:1. Tương tác trong: các tương tác giữa các task trong cùng một role.2. Tương tác ngoài: các tương tác giữa các task của các role khác

nhau.- Thông thường, mỗi đích nên cho tương ứng một task, bởi vì muốn đạt được một đích, thì ít nhất một task cần phải hoàn thành.

Câu 12: Phương pháp xác định lớp agent trong MaSE.- Input:

+ Agent roles+Tasks( các tác vụ)

- Product:+ sơ đồ lớp agent và các phiên hội thoại liên lạc giữa chúng

- Diagram ( Sơ đồ)+ Sơ đồ lớp agent

- Sử dụng role để xác định các agentMỗi lớp agent sẽ đảm nhiệm 1 hoặc nhiều roleNhiều lớp agent có cùng đảm nhận một role

- Thông thường là ánh xạ 1-1 ( mỗi role phải đảm nhiệm bởi ít nhất một lớp agent). Trong trường hợp một lớp agent đảm nhiệm nhiều role thì các agent của lớp đó sẽ luân phiên đảm nhiệm công việc cho từng role. Trường hợp này xảy ra khi các role phục vụ cho các đích liên quan chặt chẽ với nhau hoặc co khối lượng tương tác với nhau lớn, chúng được xếp vào cùng một lớp agent nhằm giảm chi phí truyền thông

Page 16: De cuong-on-tap-mon-agent

- Nhiệm vụ còn lại của bước này là xác định các phiên hội thoại xuất hiện giữa các lớp agent để hoàn thiện sơ đồ lớp agent của hệ thống. Các phiên hội thoại được xác định từ các quan hệ giữa các role mà các lớp agent tương ứng cần thực hiện.

- Mỗi phiên hội thoại gồm hai sơ đồ lớp truyền thông, một cho bên khởi xướng và một cho bên đáp ứng phiên hội thoại

- Các phiên hội thoại biểu diễn tương tác giữa các lớp agent diễn ra ở mức ngữ nghĩa thông qua ontology.

Câu 15 : hành vi của JADEHành vi đơn giản:

One _shot behaviourCyclic BehaviourGeneric Behaviour

Hành vi quy hoạch WakerbehaviourTickerbehaviourCác hợp chất hành viSequentielbehaviourFsmbehaviourVDimport jade.core.Agent;import jade.core.behaviours.Behaviour;import jade.core.behaviours.CyclicBehaviour;import jade.core.behaviours.OneShotBehaviour;

public class SimpleAgent extends Agent { protected void setup() {

// l'ajout d'un one-shot behaviour pour afficher un Hello world :D

addBehaviour(new OneShotBehaviour(this){public void action(){ System.out.println("Bonjour tous le monde je

suis l'agent "+getLocalName()); }

});

// l'ajout d'un CyclicBehaviour pour afficher un message à chaque fois qu'il s'execute

addBehaviour(new CyclicBehaviour(this) {public void action() {

System.out.println("cyclique... "); } });

// l'ajout d'un generic behaviour // le Behaviour s'arrête quand aléatoire reçoit la valeur 7 addBehaviour(new RandomBehaviour()); }

/** * Inner class RandomBehaviour */ private class RandomBehaviour extends Behaviour { private int aleatoire ;

public void action() { aleatoire = (int) (Math.random()*10);

Page 17: De cuong-on-tap-mon-agent

System.out.println("aleatoire ="+ aleatoire); }

public boolean done() { return aleatoire == 7; }

public int onEnd() { myAgent.doDelete(); return super.onEnd(); } } }

Hành