Agent – Agent-Based<br />
Software Engineering<br />
<br />
Mục đích môn học<br />
Cung cấp cho sinh viên<br />
Khái niệm, đặc điểm, phân loại, Kiến trúc về<br />
Agent<br />
Các hệ Agent, đa Agent và Giao thức giao tiếp<br />
Công cụ xây dựng các hệ Agent<br />
<br />
Tác tử - Công nghệ phần mềm dựa tác tử<br />
New way to think about programing<br />
Agent Based / Agent Oriented<br />
<br />
Định hướng cho sinh viên<br />
Phát triển phần mềm dựa Agent<br />
Tiếp cận phân tích và phát triển phần mềm hướng<br />
Agent<br />
<br />
Software<br />
Engineering<br />
Department<br />
<br />
(c) SE/FIT/HUT<br />
<br />
(c) SE/FIT/HUT<br />
<br />
Yêu cầu<br />
<br />
2<br />
<br />
(c) SE/FIT/HUT<br />
<br />
4<br />
<br />
Nội dung<br />
<br />
Học về CNPM<br />
Lập trình hướng đối tượng<br />
Trí tuệ nhân tạo ???<br />
Ngôn ngữ lập trình C++, Java, C#<br />
Đồ án môn học<br />
<br />
(c) SE/FIT/HUT<br />
<br />
Khái niệm<br />
Đặc điểm<br />
Phân loại<br />
Hệ dựa Agent<br />
Ứng dụng<br />
<br />
3<br />
<br />
Agent ?<br />
<br />
Agent là gì?<br />
<br />
Theo từ điển Heritage của Mỹ:<br />
"... Agent là một đối tượng mà có ảnh hưởng hay có khả năng<br />
và có quyền để tác động hay đại diện cho một đối tượng<br />
khác."<br />
Russel và Norvig:<br />
"Một agent có thể được xét tới bởi khả năng nhận thức về môi<br />
trường nó đang tồn tại qua bộ cảm biến (sensor) và khả<br />
năng tác động lên môi trường đó qua cơ quan phản ứng<br />
(effector )."<br />
Theo Pattie Maes<br />
“Agent tự chủ là các hệ tính toán tồn tại trong môi trường<br />
động và phức tạp , tri giác và hành động tự chủ trong môi<br />
trường này , qua đó hình dung được nhiệm vụ hoặc mục<br />
đích cua mình."<br />
(c) SE/FIT/HUT<br />
<br />
5<br />
<br />
Ví dụ ….<br />
Phần cứng<br />
Điều nhiệt<br />
Tầu vũ trụ<br />
Xe tự hành<br />
PDA<br />
……<br />
<br />
Phần mềm<br />
Kiểm tra thư<br />
Antivius<br />
Giao diện<br />
Tìm việc làm<br />
Kết bạn<br />
….<br />
<br />
(c) SE/FIT/HUT<br />
<br />
6<br />
<br />
1<br />
<br />
Agent/Object<br />
Những điểm khác nhau chính<br />
<br />
Agent và Object ?<br />
<br />
agent có tính tự chủ:<br />
agent có khả năng tự chủ hơn object.<br />
tự quyết định có thực hiện hay không một<br />
hành động hay một yêu cầu từ một agent<br />
khác.<br />
agent là thông minh:<br />
<br />
Object:<br />
<br />
là các thực thể có thể tính toán được<br />
được gói gọn trong một vài trạng thái<br />
có thể thực hiện các hành động hay các<br />
phương thức để thay đổi trạng thái.<br />
liên lạc thông qua việc gửi các thông điệp.<br />
<br />
(c) SE/FIT/HUT<br />
<br />
khả năng linh động trong hành vi ( phản xạ + tự<br />
chủ và cộng đồng),<br />
Mô hình đối tượng chuẩn không có những kiểu<br />
hành vi như vậy;<br />
7<br />
<br />
Tổng kết<br />
“Objects do it for free; agents do it for money.”<br />
<br />
Agent/Object<br />
<br />
object điều khiển thông<br />
qua các trạng thái bên trong<br />
nhưng không qua hành vi<br />
của nó<br />
các object khác có thể gọi<br />
các phương thức chung của<br />
nó.<br />
<br />
Tuyến điều khiển<br />
chương trình hướng đối tượng có một tuyến điều khiển<br />
riêng lẻ<br />
mỗi agent có một tuyến điều khiển riêng của mình.<br />
<br />
Agent có tính chủ động:<br />
một hệ thống đa agent là đa tuyến,<br />
mỗi agent được giả sử là có ít nhất một<br />
tuyến điều khiển tự chủ.<br />
<br />
(c) SE/FIT/HUT<br />
<br />
Mô hình agent có sự linh<br />
hoạt trong hành động: tính<br />
phản xạ, tính chủ động và<br />
tính cộng đồng<br />
Agent có thể chỉ yêu cầu<br />
các agent khác thực hiện<br />
hành động .<br />
<br />
mô hình lập trình hướng đối<br />
tượng chuẩn không phải là<br />
agent thông minh<br />
9<br />
<br />
Agents và Hệ chuyên gia<br />
<br />
(c) SE/FIT/HUT<br />
<br />
10<br />
<br />
Những điểm khác nhau chính:<br />
<br />
Hệ chuyên gia có đặc trưng riêng ‘chuyên gia’<br />
khỏi một vài phạm vi (như các căn bệnh về<br />
máu ).<br />
Nó có sự hiểu biết phong phú về các bệnh về<br />
máu,theo một dạng các quy tắc. Ví dụ: MYCIN<br />
phân biệt được những căn bệnh về máu trong<br />
con người.<br />
Một bác sĩ sẽ thu được lời khuyên chuyên môn<br />
về bệnh máu dựa trên việc đưa cho MYCIN các<br />
thông tin, trả lời các câu hỏi và đặt các chất<br />
vấn.<br />
(c) SE/FIT/HUT<br />
<br />
8<br />
<br />
(c) SE/FIT/HUT<br />
<br />
11<br />
<br />
Môi trường<br />
agents đặt trong một môi trường và nhận biết<br />
MYCIN không nhận biết được tất cả — chỉ nhận biết<br />
những thông tin thu được qua việc đặt cho người<br />
dùng các câu hỏi.<br />
<br />
Hoạt động :<br />
Agent tác động lại môi trường<br />
MYCIN không thao tác trên bệnh nhân.<br />
<br />
Một số hệ chuyên gia (thường là điều khiển tiến<br />
trình) HCG là các agent<br />
(c) SE/FIT/HUT<br />
<br />
12<br />
<br />
2<br />
<br />
II. Các đặc điểm cơ bản<br />
<br />
Tính tự chủ - Autonomy<br />
Agent có thể hành động trong những<br />
khoảng thời gian tương đối dài<br />
Không cần sự can thiệp của con người<br />
Có khả năng kiểm soát nhất định đối với<br />
hành động và trạng thái bên trong của<br />
mình<br />
<br />
Một Agent là một đơn vị phần cứng hay phổ<br />
thông hơn là hệ thống máy tính dựa trên<br />
phần mềm có các thuộc tính sau:<br />
<br />
Autonomy (Tính tự chủ )<br />
Pro-activeness (Tính chủ động)<br />
Reactivity (Tính phản xạ)<br />
Social Ability (Tính cộng đồng)<br />
(c) SE/FIT/HUT<br />
<br />
Agent được định nghĩa dựa trên tính tự chủ là “một<br />
thực thể có khả năng kiểm soát hành động một cách<br />
độc lập với các thực thể khác, trừ khi cần phải trao<br />
đổi thông tin vì agent không có đủ tri thức để hoàn<br />
thành công việc”.<br />
13<br />
<br />
(c) SE/FIT/HUT<br />
<br />
Tính chủ động<br />
<br />
Tính phản xạ<br />
<br />
Agent không chỉ phản ứng lại môi trường, chúng<br />
có thể hành động có mục đích và chủ động tranh<br />
thủ thời cơ để đạt được mục đích đó.<br />
Agent hướng mục tiêu<br />
Agent có khả năng suy diễn và lập kế hoạch từ thông tin và tri<br />
thức mà nó thu nhận được.<br />
Từ mục tiêu, agent xác định các hành động cần thiết và nó<br />
thực hiện một cách linh hoạt, có tính toán và chủ đích cho đến<br />
lúc đạt được mục tiêu đề ra.<br />
Ví dụ agent cần hoàn thành mục tiêu x, nó lập kế hoạch bao<br />
gồm các trạng thái trung gian y,z... phải đi qua và xác định<br />
các hành động để chuyển từ trạng thái này sang trạng thái<br />
khác.<br />
<br />
Khả năng tri giác được môi trường (thế giới<br />
thực, người sử dụng, các agent khác,<br />
Internet)<br />
phản ứng kịp thời trong một thời gian nhất<br />
định nào đó.<br />
<br />
Agent phản xạ:<br />
agent có khả năng phản ứng lại các tác động từ môi<br />
trường theo một cơ chế nào đó.<br />
Agent có khả năng suy diễn từ sự kiện và trạng thái<br />
trong để ra quyết định.<br />
(c) SE/FIT/HUT<br />
<br />
15<br />
<br />
Tính cộng đồng<br />
(Social Ability )<br />
<br />
(c) SE/FIT/HUT<br />
<br />
16<br />
<br />
Sự phối hợp<br />
<br />
Agent có thể tương tác với những agent<br />
khác hay con người để hoàn thành công<br />
việc riêng của mình hay trợ giúp các<br />
agent khác trong những hoạt động nào<br />
đó.<br />
Một vài mục tiêu có thể thu được với sự phối hợp<br />
của các agent khác.<br />
=>> MultiAgent (đa Agent)<br />
<br />
1.<br />
<br />
2.<br />
3.<br />
4.<br />
<br />
5.<br />
6.<br />
7.<br />
<br />
(c) SE/FIT/HUT<br />
<br />
14<br />
<br />
17<br />
<br />
Agents sử dụng các ngôn ngữ và các giao<br />
thức chuẩn để phối hợp và cộng tác để thu<br />
được những mục tiêu chung.<br />
Phối hợp với human agents và các agent phàn<br />
mềm khác ( Mô hình khởi đầu hỗn hợp)<br />
Đàm phán và phối hợp với các agent khác<br />
Cácn ngôn ngữ truyền thông Agent và các<br />
giao thức hỗ trợ tất cả các dạng thao tác<br />
trong.<br />
Nhất quán với qui ước con người và trực giác<br />
Cơ cấu hướng đội và đồng diễn agent.<br />
Agents có tính xã hội.<br />
(c) SE/FIT/HUT<br />
<br />
18<br />
<br />
3<br />
<br />
Các đặc điểm khác<br />
<br />
Tính di động<br />
<br />
• Tính linh hoạt: trong việc phản ứng lại các tác<br />
động từ môi trường bên ngoài. Agent không thực<br />
hiện các hành động một cách máy móc mà có sự<br />
lựa chọn thích hợp.<br />
• Tính thích nghi: là khả năng tự thay đổi để thích<br />
ứng với môi trường và theo ý muốn của người sử<br />
dụng.<br />
• Tính liên tục theo thời gian : Agent về mặt hệ<br />
thống là một tiến trình hoạt động liên tục.<br />
<br />
• Khả năng agent xuyên qua các mạng truyền<br />
thông điện tử.<br />
• Cho phép gửi các chuỗi thông điệp thông qua<br />
mạng.<br />
<br />
(c) SE/FIT/HUT<br />
<br />
• Ví dụ: Nếu agent di động hoạt động tự chủ, người sử dụng<br />
không cần yêu cầu duy trì kết nối mạng liên tục. Thay vào<br />
đó, có thể cung cấp cho agent nhiệm vụ, gửi nó thông qua<br />
mạng và rời bỏ kết nối mạng.<br />
• Khi agent thu được kết quả yêu cầu, tự động thông báo<br />
ngược trở lại bằng việc thiết lập kết nối mạng cho người sử<br />
dụng hoặc chờ sự lựa chọn mạng tiếp theo của người sử<br />
dụng.<br />
<br />
19<br />
<br />
III. Phân loại<br />
Các loại Agent<br />
<br />
Phân loại<br />
<br />
Các ứng dụng sử dụng Agent<br />
• Agent cá nhân<br />
•Smart Agent<br />
• Agent tự chủ<br />
•Hybrid Agent<br />
• Agent giao diện<br />
•Softbot<br />
• Agent di động<br />
•Knowbot<br />
• Agent thông tin<br />
•Taskbot<br />
• Internet Agent<br />
•Robot ….<br />
• ......<br />
<br />
20<br />
<br />
(c) SE/FIT/HUT<br />
<br />
Number of agent<br />
<br />
Mức độ thông minh<br />
(Degree of intelligence)<br />
Tính di động(Mobility)<br />
Số lượng Agent<br />
(number of Agent)<br />
<br />
Multi_agent_system<br />
<br />
Single agent<br />
Degree of<br />
intelligence<br />
Stationary<br />
Mobile<br />
simple<br />
<br />
Lạm phát Agent<br />
<br />
complex<br />
<br />
Mobility<br />
<br />
(c) SE/FIT/HUT<br />
<br />
21<br />
<br />
22<br />
<br />
Agent cộng tác<br />
(Collaborative)<br />
<br />
Phân loại chung<br />
<br />
Vấn đề mở rộng khi tồn tại nhiều agent đơn<br />
Khả năng hoạt động trong của các Legacy<br />
System<br />
Giải quyết các vấn đề về phân tán(Phép chẩn<br />
đoán phân tán)<br />
Sử dụng nguồn tài nguyên phân tán(e.g. health<br />
care)<br />
Phân cấp Modularity (=> giảm độ phức tạp)<br />
<br />
Agents cộng tác<br />
Agents giao diện<br />
Agents di động<br />
Information/Internet Agents<br />
Agents phản xạ<br />
Hybrid Agents<br />
Smart Agents<br />
<br />
(c) SE/FIT/HUT<br />
<br />
(c) SE/FIT/HUT<br />
<br />
23<br />
<br />
Tốc độ (nhờ có sự tương tranh)<br />
Khả năng tái sử dụng<br />
Độ linh hoạt<br />
Mô phỏng và hiểu xã hội<br />
(c) SE/FIT/HUT<br />
<br />
24<br />
<br />
4<br />
<br />
Vấn đề đặt ra<br />
<br />
Agents giao diện<br />
<br />
Lý thuyết điều phối<br />
Sự ổn định, Khả năng mở rộng, Độ<br />
hiệu quả<br />
Hệ thống di sản (legacy system)<br />
Khó khăn trong vấn đề Học<br />
<br />
(c) SE/FIT/HUT<br />
<br />
Trợ lý cá nhân cộng tác với người sử dụng<br />
Động cơ thúc đẩy: Tăng khả năng của con<br />
người.<br />
<br />
25<br />
<br />
Vấn đề đặt ra<br />
<br />
•<br />
•<br />
<br />
26<br />
<br />
Agents di động<br />
<br />
Chứng minh rằng Agents giao diện giảm<br />
gánh nặng công việc và sự trợ giúp<br />
Agent học cách nhận biết hiện trạng của<br />
người dùng.<br />
Nâng cao khả năng của agent theo thời<br />
gian<br />
Mở rộng agent giao diện đàm phán với<br />
agent ngang hàng<br />
Nâng cao sự tin cậy và khả năng của agent<br />
giao diện<br />
Mở rộng phạm vi ứng dụng agent giao diện<br />
(c) SE/FIT/HUT<br />
<br />
(c) SE/FIT/HUT<br />
<br />
27<br />
<br />
Ví dụ: Giảm tải trong<br />
SNMP<br />
<br />
Giảm khối lượng công việc của net (đáng<br />
cố gắng nếu kích thước dữ liệu được<br />
truyền >> kích thước của agent)<br />
Nguồn tài nguyên cục bộ có hạn<br />
Tính toán dị bộ<br />
Tính toán phân tán linh hoạt<br />
Hiệu quả rõ ràng<br />
Cân nhắc lại việc thiết kế phần mềm nói<br />
chung<br />
Dễ dàng hợp tác<br />
Kiến trúc tính toán phân tán linh hoạt<br />
(c) SE/FIT/HUT<br />
<br />
28<br />
<br />
Vấn đề đặt ra<br />
Authentication<br />
Secrecy: Bảo mật (phía agent: ngăn<br />
ngừa sự thay đổi agent trái phép)<br />
Security Bảo mật(Phía host:ngăn ngừa<br />
những mối hại agent cố tình)<br />
Tính phí (Agent sẽ chi trả cho nguồn tài<br />
nguyên như thế nào)<br />
Độ hiệu quả của nguồn tài nguyên<br />
Thao tác giữa các phần<br />
<br />
(c) SE/FIT/HUT<br />
<br />
29<br />
<br />
(c) SE/FIT/HUT<br />
<br />
30<br />
<br />
5<br />
<br />