Agent Architectures<br />
Kiến trúc Agent và Hệ Agent<br />
<br />
Nội dung<br />
Agent architecture (internal) là gì?<br />
Abstract Agent-Architecture<br />
Deliberative Architectures (Kiến<br />
trúc suy diễn)<br />
Reactive Architectures (Kiến trúc<br />
phản xạ)<br />
Hybrid Architectures (Kiến trúc lai)<br />
<br />
1.<br />
2.<br />
3.<br />
<br />
Lê Tấn Hùng<br />
<br />
4.<br />
<br />
CNTT – ĐHBK Hà nội<br />
<br />
5.<br />
<br />
(C)Copyright<br />
Software<br />
Engineering<br />
Department<br />
<br />
•<br />
<br />
6.<br />
7.<br />
<br />
Kiến trúc Phân lớp (Layer)<br />
<br />
Kiến trúc BDI (Belief- Desire- Intention)<br />
Kiến trúc mở (OAA)<br />
2<br />
<br />
2. Định nghĩa kiến trúc<br />
Agent - I<br />
<br />
I. Kiến trúc Agent<br />
<br />
1.Lý do Kiến trúc Agent?<br />
Thay thế cho việc chuyển từ ý tưởng, chỉ<br />
dẫn thành thực thi chúng<br />
E.g. after or in the late steps of Gaia<br />
<br />
Làm thế nào để xây dựng những hệ thống<br />
máy tính thoả mãn những yêu cầu đặc biệt<br />
bằng agent theoritists<br />
Những kiến trúc phần mềm như thế nào là<br />
phù hợp?<br />
<br />
Pattie Maes<br />
Một phương pháp học đặc biệt để xây dựng agents.<br />
Nó chỉ rõ làm thế nào agent có thể được tách ra<br />
thành cấu trúc của 1 tập các modules thành phần<br />
và làm thế nào những modules đó có thể tương tác<br />
với nhau.<br />
Toàn bộ tập modules và sư tương tác giữa chúng<br />
cho ta câu trả lời làm thế nào mà những dữ liệu<br />
cảm biến and trạng thái hiện tại của agent xác<br />
định actions và những trạng thái trong tiếp theo<br />
của agent.<br />
Một kiến trúc bao gồm các kỹ thuật và thuật toán<br />
hỗ trợ cho phương pháp này.<br />
<br />
3<br />
<br />
Definitions of Agent<br />
Architecture - II<br />
<br />
4<br />
<br />
Kiến trúc Agent?<br />
<br />
Kaelbling<br />
Một tập hợp đặc biệt các software (or hardware)<br />
modules, được thiết kế đặc trưng bởi những<br />
<br />
hộp với những mũi tên để chỉ ra dữ liệu và<br />
dòng điều khiển giữa các modules<br />
Một cách nhìn trừu tượng hơn với kiến<br />
trúc agent là một phương pháp chung để<br />
thiết kế được những modules riêng biệt<br />
cho những nhiệm vụ cụ thể<br />
<br />
Mô tả các trạng thái<br />
trong của agent<br />
Cấu trúc dữ liệu của nó<br />
Thao tác có thể thực<br />
hiện trên các cấu trúc<br />
Luồng điều khiển giữa<br />
các cấu trúc dữ liệu.<br />
Kiến trúc agent khác nhau trên nhiều khía<br />
cạnh khác nhau về cấu trúc dữ liệu và thuật toán<br />
được biểu diễn bên trong agent<br />
<br />
5<br />
<br />
6<br />
<br />
1<br />
<br />
3. Abstract Agent<br />
Arch.<br />
a.Standard Agent<br />
S = { s1, s2, ... }<br />
<br />
AGENT<br />
<br />
(Non-)Deterministic Behavior<br />
<br />
Action<br />
Input<br />
<br />
Sensor<br />
Output<br />
<br />
Hành vi của Môi trường mô hình hóa :<br />
<br />
ENVIRONMENT<br />
<br />
env: S x A<br />
ρ(S)<br />
P means the powerset or set of all subsets<br />
<br />
Tập trạng thái môi trường có thể có<br />
<br />
non-determistic<br />
<br />
A = { a1, a2, ... }<br />
<br />
if ρ(S) = {sx, sy}<br />
<br />
Tập hành vi của Agent<br />
<br />
Không xác định trạng thái kế tiếp của Agent<br />
deterministic<br />
if ρ(S) = {sx}<br />
Trạng thái kế tiếp xác định và là duy nhất<br />
<br />
Agent:<br />
Function Action: S*<br />
A<br />
Agent tập ánh xạ các trạng thái của môi trường vào các hành<br />
động của agent<br />
Kiểu agent này gọi là standard agent.(agent chuẩn)<br />
• Một agent chuẩn quyết định hành động để thực thi phụ thuộc<br />
vào history của nó, i.e., its experiences to date.<br />
<br />
Interested in agents whose interactions with<br />
environment doesn’t end (e.g. infinite)<br />
7<br />
<br />
Mô hình trong<br />
abstract agent – Sub system<br />
<br />
8<br />
<br />
Kiến trúc trong (Sub-system)<br />
<br />
Lý thuyết tổng quan về Agent là rất hữu ích, nhưng<br />
nó không giúp ta xây dựng agent một cách hiệu<br />
quả,vì không chỉ ra việc làm thế nào để thiết kế ra<br />
những action của agent<br />
Chúng ta cải tiến lại abstract model, bằng cách chia<br />
nhỏ nó thành những hệ thống nhỏ hơn (sub-systems)<br />
(like top-down refinement in software engineering).<br />
Việc cải tiến thành những sub-systems liên quan tới<br />
việc lựa chọn dữ liệu và các cấu trúc điều khiển,<br />
những thứ hợp thành agent.<br />
<br />
The sub-system view of an agent: một kiến trúc agent<br />
là mô tả thành phần bên trong của Agent:<br />
cấu trúc dữ liệu của nó,<br />
những hành động sẽ thao tác trên cấu trúc dữ liệu đó<br />
dòng điểu khiểu dữ liệu giữa các dữ liệu đó.<br />
<br />
Thường chia chức năng quyết định (desicion) thành<br />
hai sub-systems:<br />
nhận thức (perception)<br />
hành động (action)<br />
<br />
9<br />
<br />
10<br />
<br />
Perception và Action<br />
Nhận thức và hành động<br />
<br />
See() và Action()<br />
Với P là tập nhận thức đầu vào<br />
<br />
Hàm see sẽ quan sát môi trường trong khi đó<br />
hàm action biểu diễn hệ thống ra quyết định<br />
của agent.<br />
<br />
•Hàm see()<br />
Có thể được cài đặt dưới<br />
dạng phần cứng/mềm<br />
Đầu ra của hàm see() là<br />
một tập các tri thức<br />
(percept) thu nhận<br />
<br />
see<br />
see<br />
<br />
See: S -> P<br />
Action: P* -> A<br />
Giả sử môi trường có hai trạng thái:s1 và s2; s2≠ s1<br />
nhưng see(s1) = see(s1)<br />
có nghĩa là hai trạng thái môi trường khác nhau<br />
nhưng đều được cảm nhận giống nhau (nhìn thấy<br />
giống nhau)<br />
=> thông tin thu nhận được là giống nhau<br />
<br />
action<br />
action<br />
<br />
AGENT<br />
<br />
ENVIRONMENT<br />
11<br />
<br />
12<br />
<br />
2<br />
<br />
Vi dụ<br />
Cho 2 trạng thái của môi trường, s1 and s2, có thể<br />
phân biệt được các agent nếu chúng map to the same<br />
percept.<br />
Ví dụ 1 bộ ổn nhiệt có thể phân biệt được các trạng<br />
thái của môi trường:<br />
x = tooCold<br />
y = WomanIsDanger<br />
•:Có nghĩa là trạng thái môi trường cho bởi tập:<br />
S = {{x,y},{x,!y},{!x,y},{!x,!y}}<br />
<br />
Bây giờ, để hoạt động một cách hiệu quả, bộ<br />
cảm nhiệt không quan tâm liệu y = true<br />
không? – điều này không ảnh hưởng tới<br />
action của nó.<br />
Vì vậy hàm nhận thức see sẽ là:<br />
<br />
13<br />
<br />
c.History<br />
<br />
14<br />
<br />
History of Agent<br />
<br />
Chúng ta có thể thay thế sự tương tác của<br />
agent với môi trường là history,<br />
Ví dụ:.một chuỗi các cặp: state-action<br />
với s0 là trạng thái đầu tiên của môi trường<br />
ai hành động của agent khi nó ở trạng thái si.<br />
<br />
với mọi chuỗi h có thể là history của một agent đều<br />
bắt đầu từ trạng thái đầu tiên s0:<br />
Với i ∈ N, ai = action((s0,s1,s2,…, si))<br />
(tất cả mọi hành động đều phải qua một chuỗi trạng<br />
thái)<br />
i ∈ N such that i> 0, si ∈ env(si-1,ai-1)<br />
(mỗi trạng thái mới của agent phải thuộc một tập các<br />
trạng thái có thể có của môi trường từ trạng thái<br />
trước đó và một action cụ thể)<br />
N là tập số tự nhiên (0,1,2,…)<br />
<br />
15<br />
<br />
16<br />
<br />
b.State based Agent<br />
<br />
Characteristic behaviour<br />
action:S* ->A , trong một môi trường,<br />
env:S x A ->P(S), là tập tất cả histories có thể có của<br />
agent. Chúng ta sẽ biểu thị tập histories của agent<br />
bằng hist(agent,env).<br />
• Hai agents, agent1 and agent2, được gọi là tương<br />
tác tương đương nhau đối với một môi trường, env,<br />
iff hist(agent1 ,env) ≡ hist(agent2,env)<br />
• nếu chúng tương tác tương đương nhau đối với mọi<br />
môi trường chúng được gọi đơn giản là<br />
behaviourally equivalent.<br />
17<br />
<br />
Các agent thường<br />
có dữ liệu bên<br />
trong<br />
Dữ liệu: thông tin<br />
về trạng thái của<br />
môi trường<br />
Thông tin về quá<br />
khứ của Agent<br />
<br />
AGENT<br />
<br />
see<br />
see<br />
<br />
next<br />
next<br />
<br />
action<br />
action<br />
<br />
state<br />
<br />
ENVIRONMENT<br />
<br />
thường sử dụng một chuỗi nhận thức, một agent có trạng<br />
thái trong nơi nơi ghi những thông tin về trạng thái môi<br />
trường và quá khứ của chính nó<br />
18<br />
<br />
3<br />
<br />
Trạng thái trong<br />
<br />
Next() : I x P -> I<br />
<br />
Internal State<br />
<br />
Gọi I là tập tất cả các trạng thái trong có thể<br />
có của agent.<br />
see : S -> P<br />
action : I -> A<br />
Hàm thực hiện quá trình lựa chọn hành động<br />
bây giờ được định nghĩa như một ánh xạ từ<br />
các trạng thái trong của agent đến tập các<br />
hành động có thể được thực hiện:<br />
<br />
Hàm next(): hàm ánh xạ từ một trạng thái trong I và<br />
tri thức thu nhận được P vào một trạng thái trong<br />
khác I’ (tức là khi nhận được tri thức mới, trạng thái<br />
trong của agent đã thay đổi)<br />
Vòng lặp:<br />
while(true) {<br />
p = see(s);<br />
i = next(i,p);<br />
perform(action(i));<br />
}<br />
<br />
19<br />
<br />
State-based vs standard agents<br />
<br />
Behavior – Abstract Agent<br />
Arch.<br />
1.<br />
2.<br />
3.<br />
4.<br />
<br />
5.<br />
<br />
20<br />
<br />
Khởi tạo với trạng thái s0<br />
Quan sát môi trường với trang thái s, tạo lập<br />
và thu nhận tri thức bằng see(s)<br />
Trạng thái trong của agent được thay dổi và<br />
cập nhật thông qua hàm next(i0,see(s))<br />
Các hành động tiếp theo mà agent thực hiện<br />
sẽ được lựa chọn nhờ hàm,<br />
action(next(i0,see(s)))<br />
Hành động thực hiện sẽ đưa đến 1 chu trình<br />
mới (thu nhận tri thức), goto 2<br />
21<br />
<br />
II.Phân loại kiến trúc Agent<br />
<br />
State-based agents không hiệu quả hơn agent<br />
chuẩn (standard agents), đã định nghĩa phần<br />
trước<br />
• Thực tế chúng đồng nhất in their expressive<br />
power<br />
• Tất cả state-based agent có thể được biến<br />
đổi thành 1 agent chuẩn có behaviourally<br />
equivalent.<br />
22<br />
<br />
1. Kiến trúc suy diễn<br />
Dựa trên symbolic AI<br />
<br />
Deliberative (Kiến trúc suy diễn)<br />
Logic-Based Architectures<br />
Belief-desire-intension BDI(Suy luận thông minh)<br />
<br />
Kiến trúc mà quá trình ra quyết định<br />
được thực hiện nhờ suy diễn logic.<br />
Các phương pháp ra quyết định<br />
•Logical Reasoning<br />
•Pattern matching<br />
•Symbolic manipulation<br />
<br />
Reactive (Kiến trúc phản xạ)<br />
Hybrid (Kiến trúc lai)<br />
Layered architectures (Kiến trúc lớp)<br />
23<br />
<br />
24<br />
<br />
4<br />
<br />
Kiến trúc suy diễn<br />
<br />
Kiến trúc suy diễn<br />
<br />
Symbolic description of World<br />
Mục đích cần đạt tới<br />
Tập miêu tả hành động<br />
Tìm một chuỗi actions để đạt<br />
tới mục đích.<br />
Sử dụng thuật toán đơn giản<br />
Tạo kế hoạch không hiểu quả<br />
25<br />
<br />
26<br />
<br />
BDI Architecture<br />
<br />
Kiến trúc (BDI)<br />
Belief-Desire-Intention<br />
<br />
[Brenner et al, simplified; origin Rao and Georgeff]<br />
• Extended<br />
<br />
• BDI<br />
<br />
Kiến trúc dựa trên quá trình suy luận thông minh<br />
(practical reasoning) trong đó quá trình ra quyết định<br />
được tiến hành từng bước, các hành động được thực<br />
hiện xuất phát từ yêu cầu của hàm mục tiêu đề ra.<br />
Beliefs:biểu diễn tập các thông tin mà agent biết về<br />
môi trường hiện tại của nó.(và có thể một vài trạng<br />
thái trong),<br />
Desires: cái xác định động cơ của nó - ví dụ cái nó<br />
đang khám phá, ..<br />
Intentions: biểu diễn những quyết định phải hành<br />
động như thế nào để hoàn toàn đạt tới desires của<br />
nó (committed desires)<br />
27<br />
<br />
- beliefs = “hiểu biêt của agent”<br />
- desires = “những mục đích của agent”<br />
- intentions = “những mục đích cần hoàn<br />
thành” (tập con của desires)<br />
<br />
+ goals<br />
+ plans<br />
<br />
plan, schedule, execute<br />
actions<br />
<br />
interaction<br />
<br />
BDI reasoner<br />
<br />
perception<br />
<br />
AGENT<br />
<br />
knowledge base<br />
28<br />
<br />
5<br />
<br />
Các thành phần của agent BDI<br />
Tập các niềm tin hiện tại (belief): biểu diễn tập các<br />
thông tin mà agent biết được về môi trường hiện tại<br />
của nó.<br />
Hàm thu nhận tri thức từ môi trường (belief revision<br />
function) thu nhận thông tin mới, cùng với niềm tin<br />
đã có tạo ra những hiểu biết mới về môi trường<br />
Hàm sinh các lựa chọn (option generation function):<br />
đưa ra các lựa chọn có thể có đối với agent (desire)<br />
dựa trên hiểu biết đang có về môi trường và mong<br />
muốn của nó.<br />
29<br />
<br />
Các tuỳ chọn hiện tại (set of current options) biểu<br />
diễn tập các hành động mà agent có thể thực<br />
hiện.<br />
Hàm lọc (filter function): biểu diễn cho quá trình<br />
cân nhắc của agent để chọn ra mong muốn dựa<br />
trên những điều kiện đang có, đang biết.<br />
Tập các mong muốn (intention): biểu diễn mong<br />
muốn hiện tại của agent.<br />
Hàm chọn hành động để thực hiện (action<br />
selection function): xác định hành động sẽ được<br />
thực hiện.<br />
30<br />
<br />
5<br />
<br />