Vấn đề xây dựng kỹ thuật gán role cho hệ đa agent mở

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Hệ đa agent mở dựa trên mô hình role và tổ chức (Trang 42)

CHƢƠNG 3 : KỸ THUẬT GÁN ROLE TRONG HỆ ĐA AGENT MỞ

3.1. Vấn đề xây dựng kỹ thuật gán role cho hệ đa agent mở

Thiết kế và xây dựng hệ đa agent mở dựa trên role đang là chủ đề đƣợc quan tâm nghiên cứu rộng rãi ([2..25]). Một trong những vấn đề quan trọng nhất là làm thế nào để gán role và huỷ gán role cho các agent trong hệ thống. Nhiều cách tiếp cận khác nhau đã đƣợc đƣa ra nhằm mô hình hoá và đƣa ra kỹ thuật gán role cho agent trong một mô hình tổ chức cụ thể.

Một số cách gán role tiêu biểu là:

 Đối sánh trực tiếp các thành phần của role và agent từ đó lựa chọn role phù hợp cho agent

 Sử dụng biểu đồ UML để mô tả role và các agent có thể đảm nhận

 Sử dụng phƣơng pháp loại trừ dần các role không phù hợp

 Sử dụng role lãnh đạo

 Sử dụng một thành phần trong hệ thống để quản lý và gán role.

Phƣơng pháp gán role theo kiểu đối sánh trực tiếp (matching) đƣợc nhóm nghiên cứu Dignum đƣa ra trong [12] và [13]. Dựa trên định nghĩa hình thức role và agent (sử dụng ngôn ngữ 3APL), các quá trình gán role và huỷ gán role cho agent đƣợc thực hiện dựa trên việc đối sánh trực tiếp các thành phần trong mô tả theo 3APL của agent đang muốn đảm nhiệm role và đặc tả của role đó.

Odell ([20], [21], [22]) đã đƣa ra quan điểm biểu diễn quá trình thay đổi role của các agent dựa trên các biểu đồ UML nhƣ: biểu đồ trạng thái, biểu đồ tƣơng tác dạng tuần tự … Kỹ thuật gán role với biểu đồ UML sẽ có hai đặc trƣng:

 Mỗi role đƣợc xem nhƣ một tập các hành vi mong muốn sẽ đƣợc gán cho agent.

 Quá trình gán role sẽ là một chuyển tiếp trong biểu đồ trạng thái của agent với một trong các dạng: activate, suspend và shift.

Phƣơng pháp gán role sử dụng các hàm đánh giá đƣợc đƣa ra bởi nhóm DeLoach ([4], [5], [6]). Theo mô hình này:

 Mỗi role yêu cầu một tập khả năng (capabilities).

 Các role sẽ đƣợc gán cho các agent thoả mãn các khả năng mà role yêu cầu. Sự thoả mãn sẽ đƣợc đánh giá bởi một giá trị score [0..1].

 Với một mục tiêu cụ thể, hàm achieves: R, GL -> 0 .. 1 sẽ xác định một role hoàn thành một đích (GL) ở mức độ nào.

 Các yêu cầu về khả năng cần có để đảm nhiệm một role đƣợc xác định bởi hàm: requires: R, C Boolean.

Nhóm Karageogos et. al ([18]), dựa trên mô hình role và đại số qua hệ giữa các role, đã đƣa ra một thuật toán gán role với các đặc trƣng:

 Các role sẽ có một tập role không tƣơng thích

 Các agent khi tham gia hệ thống lúc đầu sẽ duyệt cả tập role.

 Các role sẽ loại trừ lẫn nhau dựa trên tính tƣơng thích cho đến khi tìm đƣợc role phù hợp cho agent.

Nhóm H. Xu và X. Zhang ([23], [24]) thì đƣa ra phương pháp ánh xạ A-R để gán role cho agent theo mô hình biểu diễn role đã đƣa ra. Phƣơng pháp ánh xạ này có hai đặc trƣng cơ bản:

 Sử dụng một role đặc biệt là role lãnh đạo. Agent đảm nhiệm role này sẽ tạo ra và quản lý các thể hiện role

 Khi agent mới tham gia hệ thống, agent lãnh đạo sẽ thực hiện gán cho agent phù hợp dựa trên tập ràng buộc, các yêu cầu và tính tƣơng thích giữa các role.

Nhóm Zambonelli et.al ([2], [3], [4], [5], [6]) dựa trên biểu diễn role bằng XML đã đƣa ra phƣơng pháp gán role trong tƣơng tác bằng cách sử dụng một thành phần riêng gọi là Role Loader trong BRAIN Framework.

Nhƣ vậy, các cách tiếp cận của các nhóm nghiên cứu khác nhau đã đƣa ra những kỹ thuật mô hình hoá và gán role rất khác nhau nhƣng đều có một điểm chung. Đó là, kỹ thuật gán role phụ thuộc vào mô hình tổ chức tương ứng trong hệ

thống đó.

Các mô hình tổ chức khác nhau đã đƣợc giới thiệu trong phần 1.3.2 trong đó đã xem xét gán role cho từng dạng tổ chức. Trong các phần tiếp theo của chƣơng 3, luận văn sẽ đƣa ra mô hình tổ chức trong hệ thống thƣơng mại điện tử, đặc điểm nổi bật và vấn đề gán role cho agent trong mô hình tổ chức đó. Dựa trên đặc trƣng của mô hình tổ chức cụ thể đƣợc chọn, phần 3.3 sẽ đƣa ra một thuật toán gán role để áp dụng cho các role đƣợc biểu diễn theo XML.

3.2 Mô hình tổ chức trong thƣơng mại điện tử

Khi thiết kế một hệ đa agent mở, vấn đề quan trọng đầu tiên là cần xác định mô hình tổ chức phù hợp. Xét riêng với các hệ thống thƣơng mại điện tử, các thành phần tham gia có đích (goal) thƣờng là trái ngƣợc nhau (ngƣời mua, ngƣời bán) nhƣng luôn muốn có xu hƣớng cân bằng để đạt tới lợi ích cao nhất chung của cả hệ thống. Dựa trên các kiểu tổ chức đƣợc mô tả trong phần 1.3.2 thì tổ chức kiểu chợ có thể xem là phù hợp nếu xét trên đặc trƣng về mục tiêu của các agent

trong hệ thống. Tuy nhiên, để quản lý tốt các giao dịch thƣơng mại thì tổ chức kiểu

Với các phân tích nhƣ vậy, luận văn lựa chọn kiểu tổ chức kết hợp giữa kiểu chợ và kiểu liên hiệp. Kiểu tổ chức này có các đặc trƣng cơ bản sau:

 Các agent tƣơng tác với nhau theo kiểu tổ chức chợ (maket) với các

luật tƣơng ứng với các kiểu đấu giá (đấu giá Anh, đấu giá Hà Lan, đấu giá kín, đấu giá ngƣợc).

 Hệ thống có agent trung gian giống nhƣ trong tổ chức kiểu liên hiệp

nhƣng không phải mọi tƣơng tác đều thông qua agent trung gian. Tức là, các agent mới tham gia hệ thống cần tƣơng tác với agent trung gian để đƣợc cấp phát role, biết địa chỉ các agent cần tƣơng tác … sau đó quá trình tƣơng tác sẽ diễn ra trực tiếp giữa các agent.

 Role sẽ đƣợc cấp phát bởi agent trung gian (đóng vai trò giống nhƣ agent lãnh đạo). Agent trung gian sẽ quản lý thƣ viện role và gán cho các agent dựa trên quá trình đối sánh các quan hệ, các ràng buộc, khả năng của agent …

 Thƣ viện role đƣợc mô tả sử dụng mô hình role đã trình bày trong chƣơng 2, với bộ ba <Q, C, B> và biểu diễn role sử dụng XML.

 Khi đã nhận đƣợc role, agent có thể thực hiện các hành vi tƣơng ứng để hƣớng tới đích riêng của mình. Trong quá trình hoạt động, agent vẫn có thể thay đổi hoặc thêm, bớt role bằng cách tƣơng tác với agent trung gian.

3.3 Thuật toán ARA

Với mô hình tổ chức và mô hình role đã trình bày trong chƣơng 2, thuật toán gán role cho các agent sẽ có những đặc điểm sau:

 Sử dụng role lãnh đạo (đƣợc đảm nhiệm bởi agent trung gian).

 Các thành phần đƣợc đƣợc xem xét khi gán role là: tập yêu cầu khởi đầu và tập các role không tƣơng thích.

 Các agent sẽ gửi yêu cầu đến agent trung gian để yêu cầu đảm nhiệm hoặc huỷ role.

Query: Hỏi xem một role nào đó sẵn sàng hay chƣa.

TakeRole: Muốn đảm nhiệm role

Release: Thông báo muốn huỷ role.

Các yêu cầu huỷ role sẽ đƣợc đáp ứng ngay. Yêu cầu dạng query (hỏi thông tin về role) sẽ đƣợc đáp ứng và dự trữ role tƣơng ứng cho agent đó nếu role đó có thể đƣợc đảm nhiệm.

Khi nhận đƣợc yêu cầu cần đảm nhiệm role (TakeRole), agent quản lý sẽ kiểm tra khả năng của agent đó có thoả mãn tập yêu cầu khởi đầu của role tƣơng ứng hay không. Nếu thoả mãn thì role đó sẽ đƣợc gán cho agent. Tuy nhiên, nếu role mới này không tƣơng thích với các role mà agent đó đang đảm nhiệm thì các hành vi gắn với role đó sẽ bị treo.

Thuật toán dạng giả mã đƣợc mô tả nhƣ trong Hình 3.1. Trong thuật toán này:

Input: Thƣ viện role class của hệ thống (biểu diễn dạng XML) (Ký hiệu R)

Output: Các role đƣợc gán (hoặc không) cho các agent.

 Tập agent trong hệ thống ký hiệu là A[] (mảng các agent).

 Role Leader: Ký hiệu là r*.

Procedure A-R_mapping(){

1. Khởi tạo

CreatManagerAgent(am); CreatOrdinaryAgent(A[]);

2. Tạo các role instance

TakeLeadingRole(am , r*) CreatRoleInstances(am , R );

3. Gán role

For mỗi agent a[i] trong A[] Q = ReceiveRequest(a[i]) If Q=Query(r) Then If Search(r, R) Then Reserve(r); Notify(a[i], r, Found); Else

Notify(a[i], r, NotFound); Else If Q=TakeRole(r) Then If Check_Start_Requirement(a[i], r) Then Assign(a[i], r) If Check_Compatibility(a[i].role, r) Then Suspend(r.Behavior); Else If Q=Realease(r) Then

Deact(a[i], r); End For

UpdateRelationship( A[]);

End

Hình 3.1: Thuật toán gán role cho agent

Giải thích chi tiết các hàm

 CreatManagerAgent(agent): Thực hiện tạo agent quản lý, gán role Manager cho agent này (quản lý tên, địa chỉ các agent khác).

 CreatOrdinaryAgent(agent): Thực hiện tạo các agent thông thƣờng theo yêu cầu từ hệ thống, không gán role.

 TakeLeadingRole(am , r*): Gán role Leader cho agent quản lý (đƣợc phép tạo ra role vfa gán role)

 CreatRoleInstances(am , R ): Agent quản lý nhận thƣ viện role

và tạo ra các thể hiện role.

 ReceiveRequest(a[i]): Nhận yêu cầu từ agent a[i]. Trả về một Request.

 Reserve(r): Dự trữ sẵn role r cho agent vừa gửi yêu cầu dạng Query

 Notify(a[i], r, message): Thông báo cho agent a[i] về tình trạng của role r. Có hai dạng message là: Found và NotFound.

 Assign(a[i], r): Gán role r cho agent a[i], bao gồm việc gán toàn bộ

khả năng C và tập hành vi B.

 Check_Start_Requirement(a[i], r): Kiểm tra điều kiện khởi đầu của agent a[i] với role r. Hàm này trả về giá trị dạng Boolean.

 Check_Compatibility(a[i].role, r): Thực hiện kiểm tra tính

tƣơng thích của role r với các role mà a[i] đã đƣợc gán. Việc kiểm tra này dựa trên danh sách các role không tƣơng thích trong mô tả role. Hàm này trả về giá trị dạng Boolean.

 Suspend(r.Behavior): Tạm dừng các hành vi của agent tƣơng ứng với role r cho đến khi thoả mãn tính tƣơng thích.

 Deact(a[i], r): Huỷ role r ra khỏi agent a[i]

3.4. So sánh các nghiên cứu liên quan

Trong ([2..6]) đã đƣa ra định nghĩa role sử dụng bộ 3 <Q, C, B> và các biểu diễn role theo XML. Tuy nhiên, phƣơng pháp gán role sử dụng thành phần trung tâm Role Loader chỉ phù hợp với kiểu tổ chức dựa trên nền của hệ thống BRAIN và không áp dụng đƣợc cho các hệ thống khác.

Nhóm H. Xu và X. Zhang ([13], [14]) đã đƣa ra phƣơng pháp ánh xạ A-R để gán role cho agent dựa trên mô hình tổ chức có agent lãnh đạo. Tuy nhiên, phƣơng pháp ánh xạ này chỉ phù hợp với role và tổ chức đƣợc mô tả theo phƣơng pháp của nhóm này chứ không phù hợp với các role đƣợc định nghĩa sử dụng <Q, C, B> và XML.

Trong chƣơng này, chúng tôi đã xây dựng thuật toán gán role dựa trên ý tƣởng của phƣơng pháp ánh xạ A-R nhƣng mở rộng để áp dụng cho kiểu tổ chức có agent trung gian đã đƣợc mô tả trong phần 3.2. Thuật toán này cũng xem xét khái niệm role dựa trên bộ <Q, C, B> đã trình bày trong chƣơng 2.

3.5. Kết chƣơng

Chƣơng 3 đã trình bày các cách tiếp cận trong việc xây dựng kỹ thuật gán role cho agent trong hệ đa agent mở. Với mô hình tổ chức có agent lãnh đạo trong thƣơng mại điện tử và dựa trên mô hình role đã xây dựng trong chƣơng 2, luận văn đã xây dựng thuật toán ARA để gán role cho agent.

CHƢƠNG 4

THỬ NGHIỆM HỆ THỐNG ĐA ĐẤU GIÁ

Chƣơng này xây dựng một hệ thống áp dụng mô hình role và thuật toán gán roel đã trình bày trong chƣơng 2 và chƣơng 3. Các bƣớc phân tích, thiết kế hệ thống đƣợc xây dựng dựa trên sự kết hợp phƣơng pháp luận O-MaSE (đã trình bày trong chƣơng 1) và phƣơng pháp mô hình role trong chƣơng 2. Cụ thể:

- Bƣớc phân tích yêu cầu: Sử dụng mô hình goal của phƣơng pháp luận O- MaSE.

- Bƣớc xây dựng thƣ viện role, sử dụng mô hình role với bộ ba <Q, C, B> và biểu diễn sử dụng XML.

- Bƣớc xây dựng quan hệ giữa các role: sử dụng định nghĩa các quan hệ trong chƣơng 2.

- Bƣớc thiết kế các lớp agent, xây dựng dựa trên mô hình tổ chức và kỹ thuật gán role đã trình bày trong chƣơng 3.

- Thiết kế chi tiết và cài đặt sử dụng thƣ viện JADE.

4.1 Phân tích yêu cầu hệ thống

4.1.1 Mô tả hệ thống

Hệ thống đa đấu giá trƣớc hết là một hệ thống thƣơng mại điện tử với nhiều hình thức đầu giá. Nhƣ mô tả trong Hình 4.1: có thể mô tả ngắn gọn về hệ thống nhƣ sau:

 Các agent mua đƣợc sinh ra đại diện cho ngƣời mua để mua sản phẩm yêu cầu theo một hoặc nhiều hình thức đấu giá.

 Một agent mua có thể đảm nhiệm nhiều role tƣơng ứng với các kiểu đấu giá khác nhau.

 Ngƣời bán hàng cũng thể tham gia bán nhiều mặt hàng theo nhiều kiểu đấu giá khác nhau.

 Các hình thức đấu giá tiêu biểu đƣợc xem xét là: đấu giá kiểu Anh (đấu giá tăng), đấu giá Hà Lan (đấu giá giảm trên nhiều sản phẩm), đấu giá kín

(kiểu 1 hoặc kiểu 2 - ngƣời thắng cuộc phải trả giá bằng ngƣời trả cao nhất hoặc cao thứ 2) và đấu giá ngược (hay đấu thầu).

 Hệ thống có chức năng kết nối ngƣời mua (agent mua) với ngƣời bán (agent bán) nhằm thực hiện thành công giao dịch thƣơng mại tại mỗi phiên đấu giá.

Hình 4.1: Hệ thống đa đấu giá

Dựa trên các mô tả trên, các yêu cầu chức năng của hệ thống có thể đƣợc tổng kết gồm:

 Ngƣời bán đƣợc lựa chọn hình thức đấu giá bán hàng và nắm rõ thông tin liên quan đến phiên giao dịch với sản phẩm của mình.

 Mỗi sản phẩm khi bán có thể có nhiều thông tin (các thuộc tính) của sản phẩm nhƣng thuộc tính duy nhất để đấu giá là giá bán sản phẩm. Tùy thuộc vào hình thức đấu giá mà ngƣời bán có thể phải đƣa ra mức giá khởi điểm và thời gian bắt đầu và kết thúc phiên đấu giá.

E-commerce Buyer English Auction Dutch Auction Seal-bid Auction Reverse Auction Lựa chọn phiên đấu giá phù hợp English Auction Dutch Auction Seal-bid Auction Reverse Auction Seller Lựa chọn cách thức bán hàng Hệ thống đa đấu giá

 Ngƣời mua đƣợc lựa chọn một trong các sản phẩm đang bán. Tùy thuộc vào hình thức giao dịch của sản phẩm đang chọn mà agent mua đại diện cho ngƣời mua sẽ phải nhận đƣợc role tƣơng ứng để bắt đầu quá trình giao dịch.

 Khi giao dịch kết thúc thì hệ thống phải thông báo ngƣời thắng cuộc và mức giá phải trả theo quy định của hình thức đấu giá tƣơng ứng.

4.1.2 Xây dựng mô hình goal của hệ thống

Dựa trên các yêu cầu đƣợc mô tả trong phần 4.1.1, phần này xây dựng tập các goal của hệ thống. Các goal sẽ đƣợc tổ chức dƣới dạng cây phân cấp AND, OR, áp dụng bƣớc mô hình goal của phƣơng pháp luận O-MaSE. Trong đó:

 Quan hệ gộp (aggregation) đƣợc dùng để biểu diên quan hệ AND giữa các đích.

 Quan hệ khái quát hóa đƣợc dùng để biểu diễn mối quan hệ OR

 Goal AND yêu cầu tập các goal con của nó phải đạt đƣợc thì mới hoàn thành goal cha. .

 Goal gốc OR đƣợc hoàn thành khi một trong các goal con đƣợc hoàn thành. Trong hệ thống đa đấu giá, cây phân cấp goal sẽ bao gồm:

 Goal gốc: Mục đích tổng quát của hệ thống. Goal này đƣợc đặt tên là MultiAuction System. Goal gốc sẽ hoàn thành khi hoàn thành cả ba goal con gồm: Buy an item (mua sản phẩm), Sell an item (bán sản phẩm) và Manage Auction (quản lý phiên đấu giá).

 Goal Buy an item đƣợc thực hiện bởi một trong bốn goal con tƣơng ứng với bốn kiểu đấu giá (Bid with English Auction, Bid with Dutch Auction, Bid with

Seal-Bid Auction và Bid with Reserve Auction)

 Goal Sell an item đƣợc thực hiện bởi một trong bốn goal con tƣơng ứng với bốn kiểu đấu giá (Sell with English Auction, Sell with Dutch Auction, Sell with

Seal-Bid Auction và Sell with Reserve Auction).

 Goal Manage Auction đƣợc hoàn thành khi hoàn thành cả ba goal con, gồm:

Hình 4.2: Sơ đồ goal của hệ thống đa đấu giá

4.2 Xây dựng thƣ viện role

4.2.1 Xác định các role

Phần này xác định các role trong hệ thống và gắn tƣơng ứng mỗi role với một hoặc một vài goal mà nó đảm nhận. Trong hệ thống đa đấu giá, các role thƣờng chỉ liên quan đến một goal cụ thể.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Hệ đa agent mở dựa trên mô hình role và tổ chức (Trang 42)

Tải bản đầy đủ (PDF)

(79 trang)