Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1(c) SE/FIT/HUT 2005 1
Lesion 10 Agent Based and A-UML
Hệ dựa tác tử và mở rộng AUML
hunglt@it-hut.edu.vn
Phát triển hệ thống phần mềm
Độ phức tạp
Có một số lượng lớn các thành phần với nhiều tương tác
Có nhiều mô hình được đưa ra
để làm cho việc phát triển phần mềm dễ dàng hơn
được phát triển theo chiều tăng của độ phức tạp của phần mềm.
Mô hình
– sub-routines;
– procedures & functions;
– abstract data types;
– objects;
to agents.
Phần mềm hướng agent
Sự phát triển các hệ đa agent phức
tạp yêu cầu không chỉ các mô hình
và kĩ thuật
Phương pháp luận mới hỗ trợ cách
tiếp cận được công nghệ hoá phân
tích và thiết kế hệ thống.
Công nghệ phần mềm hướng agent:
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
Hệ đa agent như là một cộng đồng các agent, nơi
mà tương tác qua lại giữa các agent và với môi trường của chúng đưa tới một hành vi toàn thể hữu ích
Một hệ đa agent bao gồm:
9Các agent, được xem như các cá thể
9Tương tác giữa các agent
9Sự phụ thuộc qua lại giữa agent và các quan hệ
cộng đồng, hay là các quan hệ tổ chức
Hệ thống dựa agent
Phân tích và thiết kế hướng agent
nghĩa các yêu cầu và mục đích của hệ
thống
phân rã thành những mục tiêu con nhỏ hơn,
cho tới khi có thể quản lí được chúng.
trách nhiệm của một agent
Mỗi agent trong hệ thống được giao một hoặc một
số nhiệm vụ riêng
agent phải nắm được đầy đủ trách nhiệm đối với việc hoàn thành nhiệm vụ được giao
Các nhiệm vụ cộng đồng biểu diễn các chức năng toàn cục của hệ thống agent
Thiết kế quan tâm tới sự biểu diễn các mô hình trừu tượng lấy từ pha phân tích
Trách nhiệm, nhiệm vụ và giao thức tương tác cần được ánh xạ lên agent, các tương tác và tổ chức cấp cao
Thiết kế phần mềm hướng agent
Trang 2(c) SE/FIT/HUT 2005 7
Lý thuyết Gaia
Gaia là một lý thuyết dùng trong phân tích
và thiết kế hướng agent.
Phân tích hướng tới việc phát triển để hiểu
rõ hệ thống và cấu trúc của nó, mà không
tham chiếu tới việc thực hiện chi tiết
Gaia - Overview
Motivation behind Gaia
Tồn tại nhiều phương pháp nhưng không có phương pháp nào
hỗ trợ Agnet Cụ thể trong tương tác và tổ chức
Mô hình Gaia Supports Hỗ trợ phân tích thiết kế mức
vi mô Micro-level
Agent Structure
Hỗ trợ phân tích thiết kế mức cao vĩ mô Macro-level
Agent Society and Organizational Structure
Inter-agent relationships and agent abilities
Static at runtime
⇒ Most useful in closed systems
Gaia Analysis Process
1. Find Roles in the system
• Similar to finding (natural) objects and classes in
OOA
2. Model interactions between roles
• Responsibilities
• Liveness Properties – what good the agent does for the
system
• Safety Properties – ”safety-net” for the system
• Permissions – what the role is allowed to do
• Activities – the roles own tasks (doesn’t require
interaction)
• Protocols – particular patterns of interaction (e.g
9 Xác định các vai trò trong hệ thống và định nghĩa một dãy các vai trò chính bằng ngôn ngữ miêu tả phi hình thức
9 Với mỗi vai trò xác định các giao thức liên kết.
9 Xem xét lại các mô hình.
• Đầu ra của pha phân tích là mô hình hoàn thiện của các vai trò – mô tả về trách nhiệm, quyền hạn, các giao thức tương tác, hoạt động và mô hình tương tác
• mỗi giao thức được mô tả về sự chuyển đổi dữ liệu
và các thành phần có liên quan
Pha phân tích
Gaia Design Process
Ánh xạ vai trò vào các loại Agent và tạo ra các
thực thể
Similar to define classes in OOD
Similar to instantiate (right number of) objects in
OOD
Định nghĩa mô hình dịch vụ
How to fulfill a role in one or several agents
Tạo mô hình sơ bộ
Representation of communication between agents
• Pha thiết kế tập trung vào việc định nghĩa hệ thống agent để nó
có thể hoạt động.
Các giai đoạn:
9 Xác định mô hình agent, kết hợp vai trò vào các loại agent =>
xây dựng hệ thống phân cấp các loại agent và ước lượng số lượng các instance được yêu cầu đối với mỗi lớp.
9 Xác định các dịch vụ mà agent phải cung cấp để hoàn thành các nhiệm vụ mà chúng được giao bằng cách phân tích các nhiệm vụ và hoạt động Đó là các giao thức được định nghĩa cho mỗi vai trò.
9 Phát triển các mô hình thích hợp để xác định các khả năng thiếu sót trong thiết kế.
Đầu ra của pha thiết kế là kiến trúc thực tế của hệ thống agent.
Pha thiết kế
Trang 3(c) SE/FIT/HUT 2005 13
Các khái niệm cơ bản của lý thuyết
GAIA
Giới hạn của GAIA
Không có các hệ thống mở: Gaia yêu cầu phải biết các agent trong hệ thống, cũng như các giao thức tương tác giữa chúng
Không có các agent tư lợi: Gaia không giải quyết
rõ ràng các trường hợp trong đó bản chất của các tương tác là không hợp tác
Không có các luật cộng tác: Do thiếu sự trừu tượng hoá các nhiệm vụ chung nên Gaia không mô hình hoá rõ ràng các luật cộng tác và kết quả là gây thiếu sót hoặc bỏ qua hoàn toàn chúng trong các định nghĩa về agent
Mô hình cộng tác
Mô hình cộng tác giải quyết các vấn đề về tạo/huỷ, truyền thông,
phân tán, di động trong không gian cũng như đồng bộ theo thời
gian của một tập các thực thể, các quá trình, các đối tượng hoặc các
agent.
Mô hình cộng tác có thể bao gồm 3 thành phần sau:
9 Coordinables: các thực thể mà tương tác qua lại của chúng được thực hiện
theo mô hình VD: các agent trong hệ thống đa agent
9 Coordination media: sự trừu tượng hoá khả năng tương tác của agent và là
hạt nhân xung quanh các thành phần được tổ chức VD như cờ hiệu, các điều
khiển, kênh và các phương tiện phức tạp khác …
9 Coordination laws:định nghĩa các behaviour của Coordination media để đáp
ứng các sự kiện tương tác
chia thành 2 lớp data-driven và control-driven :
Trong mô hình cộng tác control-driven, các agent có khả năng cộng tác tương tác với các agent khác và với thế giới bên ngoài thông qua cổng vào/ra được định nghĩa từ trước
Trong mô hình data-driven, các agent có khả năng cộng tác tương tác với thế giới bên ngoài bằng cách chuyển đổi cấu trúc dữ liệu thông qua phương tiện cộng tác
Khi mô hình cộng tác được sử dụng, thì phương tiện cộng tác sẽ làm trung gian cho tất cả các tương tác của các agent và ảnh hưởng đến kết quả của các sự kiện tương tác theo các quy tắc cộng tác của chúng
2 agent có thể tương tác với nhau thậm chí chúng không biết gì
về nhau, phương tiện cộng tác hầu như chỉ quan tâm đến việc kết nối giữa các agent bằng cách gửi thông điệp
Mô hình cộng tác
Bằng cách làm trung gian cho tất cả tương tác của
các agent, phương tiện cộng tác về bản chất có thể
kiểm soát và ảnh hưởng tới tất cả các tương tác
Phương tiện cộng tác có thể ép buộc behaviour của
các agent tuân theo các tương tác của chúng bằng
cách:
9 Ngăn cản việc truy nhập của các agent tới phương tiện cộng
tác.
9 Sửa đổi ngữ nghĩa của các tương tác của agent
Việc chấp nhận mô hình cộng tác dẫn tới quan niệm
hệ thống đa agent như một cộng đồng, trong đó các nhiệm vụ riêng lẻ của các agent phải được mô hình hoá một cách riêng biệt với các nhiệm vụ của cộng đồng
Hệ thống đa agent nên được xây dựng dựa trên một
hạ tầng truyền thông phổ biến, hoạt động thực tế của
hệ thống nên bao gồm hoạt động của cơ sở hạ tầng cần thiết làm cho tất cả các tương tác đều tuân theo behaviour của phương tiện cộng tác
Trang 4(c) SE/FIT/HUT 2005 19
Mô hình cộng tác
Multiagent Systems Engineering Methodology (MaSE)
Motivation behind MaSE
Lack of proven methodologies for agent-systems
Lack of industrial-strength software tools
Similar to Gaia with respect to
Generality
Application Domain (closed systems)
MaSE’s differences from Gaia
Supports automatic code creation
Scott DeLoach
The MaSE Process – I
1 Capturing Goals
• initial system specification ⇒ struct hierarchy of goals
• i.e similar to requirement specification
2 Applying Use Cases (i.e UML)
• Use cases and sequence diagrams based on spec.
• Use cases – represent logical interaction path
• Sequence diagrams – number of messages needed
3 Refining Roles
• Creates roles corresponding to the goals (or a set of goals)
• Creates tasks – how to solve goals related to the role
The MaSE Process – II
4 Creating Agent Classes
• Maps roles to agent classes in an agent class diagram
• Resemble object class diagrams, but semantics is high-level conversation versus inheritance (and encapsulation)
5 Constructing Conversations
• Defines coordination protocols for interaction with state diagrams
6 Assembling Agent Classes
• Internal functionalities of classes created
• Based on either BDI, reactive, planning, knowledge-based and user-defined architecture.
The MaSE Process – III
7 System Design
• Create instances of the agent classes presented in a
deployment diagram
Future vision of MaSE
Support automatic code generation based on deployment
diagram
Design Patterns
• ” a pattern embodies a complete idea within a program, and thus it can sometimes appear at the analysis phase or high-level design phase” Bruce Eckel, ”Thinking in Patterns with Java”
• Types of patterns
Creational
• How an object can be created (e.g Factory, Prototype)
Structural
• Design to satisfy project constraints (e.g Iterator)
Behavioral
• Objects handling particular types of actions (e.g Interpreter)
Trang 5(c) SE/FIT/HUT 2005 25
Design Patterns for Agents
7-layer architecture
1 Mobility – mobile agents
2 Translation – communication/language
3 Collaboration – multi-agent issues
4 Actions – what agents should do
5 Reasoning – ”intelligence”
6 Beliefs – what the agent beliefs
7 Sensory – stimulus/response
Design Patterns for Mobile Agents
Classification scheme – 3 classes
1 Travelling class
2 Task class
3 Interaction class
Danny B Lange
Formal Methodologies in Software
Engineering
A formal methodology is usually logic-based
It can be used for
Specification of a system
• I.e Requirement specification
Directly (automatically) programming a system
• I.e Automatic code generation
Verification of a system
• Prove that a system is/behaves correct (according to its
specifications)
Formal Methodologies in AOSE
Concurrent MetateM
Temporal logic-based programming language for agents
Summary: future can found (calculated) based on the present and past state.
Formal Verification
Axiomatic approach – Deductive Verification
• Prove using logical deduction that an agent system is correct (powerful but can have exponential runtime)
Semantic approach - Model Checking
• Reverse engineer program to create a logic model, then check if the (formal) specification is valid in this model
Conclusions of Lecture
Agent-Methodologies are close to existing Software
Engineering (e.g OO) methodologies
Main difference is focus on interaction and behavior
There is currently a lack of (industrial-strength)
methodologies (e.g UML) and software tools supporting
agents.
AUML
Trang 6(c) SE/FIT/HUT 2005 31
Trong các thập niên 70, lập trình có cấu trúc chiếm ưu
thế trong sự phát triển phần mềm
Trong những năm 80, các phương pháp hướng đối
tượng
1995 UML ( Unified Modeling Language)
UML là ngôn ngữ rất mạnh để mô hình hóa các đối
tượng và thao tác của các đối tượng
Các mô hình tĩnh(Static Model): các biểu đồ lớp và gói
Các mô hình động(Dynamic Model): biểu đồ tương tác, lược
đồ trạng thái,biểu đồ hoạt động
UML cho hệ tác tử
Các hệ thống dựa agent đòi hỏi tất cả các quá trình của công nghệ phần mềm như: phân tích, thiết kế, đánh giá, bảo trì…
Agent có những điểm khác biệt (như đồng bộ và không đồng bộ các thao tác…) nên có những lúc UML không thể hỗ trợ toàn bộ để mô hình hóa hệ thống dựa agent
UML được mở rộng để có thể mô hình hóa các hệ thống agent
Đề xuất các mở rộng cho các đại diện UML: gói, mẫu, biểu đồ diễn tiến, biểu đồ cộng tác, biểu đồ hoạt động, biểu đồ lớp, biểu đồ triển khai và các lược đồ trạng thái
Sử dụng AUML trong UML
Sử dụng các biểu đồ trường hợp sử dụng hướng agent
mô tả các tương tác với người dùng, môi trường và
phần còn lại của hệ thống
Sử dụng biểu đồ ontology với các lớp mô hình các lớp
thực thể trong ontology để mô hình hoá ontology
Sử dụng các biểu đồ lớp UML gọi là các architecture
diagram để mô hình hoá kiến trúc hệ thống agent,
tương tác giữa các agent và vai trò của agent
Các hành động của agent được mô tả bằng các phương
thức
A-UML
Để đặc tả cho hệ thống dựa tác tử , FIPA (Foundation for Intelligent Physical Agents )
sử dụng UML mở rộng, gọi
là AUML ( Agent Unified Modeling Language) để đặc
tả giao thức tương tác tác tử (AIP – Agent Interaction Protcols).
Phương thức tương tác ở đỉnh của biều đồ là mức thấp nhất, sau đó là các mức chi tiết hơn
AUML: Một hướng tiếp cận giao
thức phân mức
Một giao thức tương tác agent (AIP) mô tả các mẫu truyền thông
như một dãy các thông điệp cho phép giữa các agent và ràng
buộc trong nội dung của các thông điệp này
Agent Interaction Protocols (3 layers)
1 Mô tả giao thức li ên lạc -Communication Protocol
• Type of interaction (UML Packages and Templates)
2 Mô tả tương tác giữa các agen -Interactions
• Sequence, Collaboration, Activity Diagrams and Statecharts
3 Mô tả quá trình xử lý bên trong agent- Internal Agent Processing
(micro-issues)
• Activity Diagrams and Statecharts
Mức 1: Biểu diễn giao thức liên lạc ở mức tổng quan
giải pháp có thể sử dụng lại
các giải pháp cho giao thức
9Package: tập hợp các nhân tố mô hình hoá mức
khái niệm
9Template: Template là một mô hình tham số
Trang 7(c) SE/FIT/HUT 2005 37
Ví dụ về Package
Các gói đóng cung cấp một kỹ thuật
chung cho việc phân chia các mô hình và
nhóm các thành phần mô hình Mỗi gói
đóng được biểu diễn như sau :
Mỗi gói đóng là nhóm thành phần có
quan hệ logic với nhau.
Kiến trúc của hệ thống được biểu diễn
nhờ mô hình liên kết giữa các gói đóng
Một gói đóng có thể chứa các gói đóng
khác
Dùng gói mô tả để mô tả giao thức lồng
nhau
Purchasing protocol (Broker X Retailer)
Supplying protocol (Retailer X
Wholesaler)
Ví dụ về Template
Một template là một thành phần mô hình được tham số hoá có các tham số bị ràng buộc tại thời gian mô hình
(ví dụ, khi một mô hình tuỳ biến mới được tạo ra), được
mô tả bằng các hộp vẽ bằng nét đứt ở góc phải trên của gói
Mức 2: Biểu diễn tương tác giữa
các AGENT
Sử dụng các biểu đồ trong UML để biểu diễn giao
thức:
9 Biểu đồdiễn tiến
9 Biểu đồ tương tác
9 Biểu đồ hoạt động
9 Biểu đồ trạng thái
Hai biểu đồ trên bao gồm các mẫu cấu trúc mô tả
tương tác giữa các đối tượng
Hai biểu đồ dưới biểu diễn các luồng xử lý
Biểu đồ diễn tiến
Biểu đồ diễn tiến là biểu đồ giữa các đối tượng theo thời gian.
Cột ngang biểu diễn các agent
Cột dọc được thể hiện sự tồn tại của đối
Hình vuông có vị trí dọc theo lifeline thể hiện thời gian agent thực hiện hành động (activation)
Thời gian được trôi từ trên xuống dưới, các thông điệp được đánh số theo thời gian
Biểu diễn Agent:AGENT-name/role:class
Một tương tác Agent cơ bản có dạng hình vẽ
Diễn tả các liên lạc đồng thời (and),không đồng thời (or), các vai trò khác nhau của agent
Biểu diễn tương tác đa luồng
Hình (a) biểu diễn các luồng được gửi đi song song
(phép AND)
Hình (b) bao gồm một hộp quyết định xác định
luồng nào sẽ được gửi đi (phép OR)
Hình (c) xác định trong một thời điểm chỉ có một
X
X
X
Yeu cau dat hang
Tu choi Khong hieu
De nghi
Thong bao
Huy bo de nghi
Thanh cong
Loi
Thong tin Chap nhan de nghi
Trang 8(c) SE/FIT/HUT 2005 43
Ví dụ về biểu đồ tuần tự
Biểu đồ tương tác
Biểu đồ cộng tác : là một cách khác mô tả tương tác giữa các agent
Biểu đồ hoạt động
Biểu đồ mô tả hành vi bên trong của một phương
thức hay một trường hơp sử dụng Biểu đồ nhằm
nhấn mạnh về các xử lý và các sự kiện kích hoạt
chúng
Biểu đồ hoạt động
Cung cấp luồng các điều khiển
Sử dụng cho các giao thức phức tạp chứa
nhiều tiến trình đồng thời
Mức 3: biểu diễn xử lý bên trong AGENT
AGENT yêu cầu giải thích rõ ràng những xử lý chi tiết bên trong AGENT để tiến hành giao thức
các AGENT mức thấp hơn
việc sử dụng đệ quy các cách biểu diễn mức 2 đã nói ở trên
Mở rộng biểu đồ hoạt động
Hình tròn có dấu chấm ở giữa thể hiện giao diện của
quy trình được thực hiện bởi các AGENT bên ngoài
Mở rộng biểu đồ trạng thái
Các AGENT giao tiếp với các AGENT khác được
Trang 9(c) SE/FIT/HUT 2005 49
Biểu đồ trạng thái
Một số mở rộng khác
Đặc tả vai trò Agent
9 Việc mô tả vai trò của AGENT trong tiến trình tương tác với các AGENT khác là một kỹ thuật sống còn đối với mỗi mô hình của hệ thống dựa AGENT
Mở rộng Package
9 Biểu diễn Agent khi Agent hoạt động như một giao diện
Mở rộng biểu đồ thực thi
9 Biểu diễn tính lưu động (mobility) của Agent
Một số khái niệm dựa AGENT khác
Dang kiem tra
cac truong
Dang kiem tra Credit Card
Phim xac nhan duoc nhan
Dang dang ky mat hang
Dang tinh toan Dang cap nhat
ban ghi
Hoan thanh dang ky Bao cao duoc
yeu cau
Dang cap nhat thong tin khach hang Dang hien thi
bao cao
Dang sua loi Dang cap nhat
dang ky
Dang hien thi hang Lap lai cho moi mat hang
Lap lai cho moi mat hang
Y
Da cap nhat xong
Ban ghi da cap nhat Tong cuoi da duoc
tinh
Dang thong bao loi
i >3
i<3 va Credit card khong co gia trih Cac truong
chua dien
va i<5
Nhan phim
dat hang
Đặc tả vai trò sâu hơn: agent/role
Diễn tả vai trò các agent trong tương tác
Nếu số lượng agent và số vai trò tăng, biểu đồ UML trở nên phức tạp
Đặc tả vai trò - 3 phương pháp biểu diễn
Phương pháp 1:
Đặc tả vai trò (tiếp)
Phương pháp 2:
Trang 10(c) SE/FIT/HUT 2005 55
Đặc tả vai trò (tiếp)
Phương pháp 3:
Đặc tả vai trò (tiếp)
Mở rộng Package
Mở rộng biểu đồ thực thi
Một số khái niệm dựa AGENT
khác
Nhân bản
Phân bào và sinh sản
Tổng kết
9đặc tả giao thức tương tác AGENT
9biểu diễn tập các tương tác giữa các AGENT bên trong giao thức
9biểu diễn hành vi bên trong AGENT
AGENT