Tài liệu tham khảo công nghệ thông tin Tìm hiểu về tương tác theo kiểu thương lượng và đấu giá trong hệ thống đa agent
Trang 1Học viện Công nghệ Bưu chính Viễn thông
Khoa Công nghệ thông tin -*** -
ĐỀ TÀI : TÌM HIỂU VỀ TƯƠNG TÁC THEO KIỂU THƯƠNG LƯỢNGVÀ ĐẤU GIÁ TRONG HỆ THỐNG ĐA AGENT
Giảng viên hướng dẫn: Nguyễn Mạnh Sơn Nhóm sv thực hiện: Nguyễn Hoàng Tuấn Anh
Nguyễn Văn AnhLê Tiến BìnhTrịnh Thanh BìnhNguyễn Đình HậuPhạm Văn HiếuPhạm Thị Thu HồngTrần Huy Tường
Trang 2Hà Nội 2010
LỜI MỞ ĐẦU
Agent là một hệ thống thông minh, có khả năng suy nghĩ và tư duy, lập luận.Hệ đa agent là một tập hợp các Agent cùng hoạt động trong một hệ thống, mỗi Agent có thể có mục đích khác nhau nhưng toàn bộ hệ thống sẽ cùng hướng tới một mục đích chung Do mỗi Agent là một thành phần chủ động và có một mục đích riêng do đó để hướng tới mục đích chung của toàn bộ hệ thống đa Agent, chúng phảitrao đổi tri thức và tương tác với nhau
Có rất nhiều vấn đề cần tìm hiểu khi nghiên cứu về hệ thống đa Agent Trong bài này, chúng em đi sâu vào sự tương tác giữa các Agent, cụ thể là tương tác theo kiểu thương lượng và đấu giá.
Trang 3PHẦN I: TỔNG QUAN VỀ AGENT VÀ HỆ ĐA AGENT
I.KHÁI NIỆM AGENT
Agent là một hệ tính toán hoàn chỉnh hay chương trình được đặt trong một môitrường nhất định có khả năng hoạt động một cách độc lập và mềm dẻo trong môitrường đó nhằm thực hiện một mục đích đã thiết kế
II.HỆ ĐA AGENT
1.Khái niệm
Hệ đa agent là một tập hợp các Agent cùng hoạt động trong một hệ thống, mỗiAgent có thể có mục đích khác nhau nhưng toàn bộ hệ thống sẽ cùng hướng tới mộtmục đích chung thông qua tương tác.
- Khả năng tính toán hiệu quả- Độ tin cậy cao
- Khả năng mở rộng- Tính mạnh mẽ- Khả năng bảo trì- Khả năng phản ứng- Tính linh hoạt
Trang 4Trong hệ đa Agent, mỗi Agent la một thành phần chủ động và hướng tới đíchriêng do vậy chúng cần trao đổi thông tin tri thức với nhau và thương lượng với nhaukhi cần thiết
- Ontology
- Quy trình phát triển hệ phần mềm hướng Agent
4.Các mô hình tương tác trong hệ đa Agent
Trong các hệ thống đa agent, nhiệm vụ chính của hệ thống được phân thànhcác nhiệm vụ nhỏ hơn và giao cho các agent thực thi Mỗi agent khi đó sẽ đảmnhiệm một nhiệm vụ con và nó phải làm cách nào đó để hoàn thành sứ mệnh củamình.
Cách thức mà các agent thực hiện nhằm đạt được mục tiêu đặt ra là tương tácvới các agent khác để lấy thông tin, cộng tác, cạnh tranh Càng ngày người ta càngnhận ra rằng ngoài các đặc trưng tự chủ, phản xạ, thì các đặc trưng tương tác mangtính xã hội càng trở thành quan trọng cho phát triển các hệ phần mềm phức tạp
Trong hệ thống phức tạp như tính toán hầu khắp và dịch vụ Web, các tươngtác có thể được phân làm hai loại:
Tương tác kiểu cộng tác, hỗ trợ:
Đây là những tương tác thường xảy ra giữa các agent thuộc cùng hệ thốngnhưng thuộc các hệ thống con khác nhau Chẳng hạn, một agent bán cần biết thôngtin về các sản phẩm máy tính hiện có, nó sẽ yêu cầu cho các agent tìm kiếm để cungcấp các thông tin này Khi đó, quan hệ giữa agent bán và agent tìm kiếm là quan hệcộng tác
Tương tác kiểu cạnh tranh:
Thông thường, các agent thuộc các hệ thống khác nhau có mối tương tácmang tính cạnh tranh Kiểu tương tác này xảy ra khi các agent mâu thuẫn lợi ích vớinhau, tranh giành nhau để đạt được cái mình muốn, như khi cùng truy xuất đến cáctài nguyên dùng chung hoặc quan hệ giữa hai agent mua và agent bán.
Như vậy, khi phát triển một hệ đa agent, bên cạnh những vấn đề liên quan đếntính toán số học trong bản thân của mỗi agent, chúng ta cần phải xem xét một vấn
Trang 5đề cũng hết sức quan trọng là tương tác giữa chúng Hơn nữa, cần phải phân táchrạch ròi hai kiểu tương tác để giúp cho quá trình phát triển hệ thống dễ dàng hơn.
PHẦN II: THƯƠNG LƯỢNG VÀ TƯƠNG TÁC
I.KHÁI NIỆM THƯƠNG LƯỢNG
Thương lượng là một tiến trình vừa cộng tác vừa cạnh tranh được diễn ra giữahai hay nhiều bên tham gia, bắt đầu bằng những mục tiêu (đích) khác nhau, dần dầnđi tới một thỏa thuận chung có lợi cho tất cả các bên.
II.PHÂN BIỆT GIỮA THƯƠNG LƯỢNG VÀ TƯƠNGTÁC
Thương lượng là một hình thức tương tác giữa các Agent, ngoài ra còn các môhình tương tác khác.
1.Các mô hình thương lượng
Trong bài toán thương lượng, tùy vào số bên tham gia, người ta chia làm bốnnhóm là: thương lượng 1-1, thương lượng 1-n, thương lượng n-n Sự phân chia nàyđược minh hoạ như hình
Trang 6III.MÔ HÌNH THƯƠNG LƯỢNG SONG PHƯƠNG1.Các cách tiếp cận
Đây là cách tiếp cận sử dụng chiến lược tương tác giữa các agent riêng lẻ interested agent) theo các luật trò chơi Trong cách tiếp cận này, các nhà nghiên cứucố gắng xác định một chiến lược tối ưu bằng cách phân tích mối tương tác giữa cácagent giống như trong một trò chơi và tìm ra điểm cân bằng của quá trình tương tácgiữa các agent đó.
Trong mô hình này, các hàm quyết định dựa trên heuristic được sử dụng để ướclượng và sinh ra các yêu cầu hay đề nghị mới trong quá trình thương lượng.
Trang 7Cách tiếp cận này cho phép các agent có thể chuyển các thông tin thêm hoặclập luận cho các giá trị tinh thần như niềm tin hay ý định trong quá trình thươnglượng.
2.Chiến lược cho Agent bán
Trong mô hình thương lượng song phương, agent bán có nhiệm vụ quản lý việcgiao dịch đồng thời với các khách hàng của mình Mỗi agent bán được trang bị mộttập các tri thức sau đây:
Tập O { 01, 02, 03 ….0m} các đơn vị hàng hóa có thể mang cung cấp, mỗi đơnvị hàng hóa 0i (của cùng một mặt hàng – mỗi agent bán chi, bán một mặt hàng) đượcmô tả thông qua n thuộc tính ( 01’ , 02’ …… 0n’ } và có một giá trị lợi ích gi nếu bánđược đơn vị hàng đó
Một tập R= { r1 rm } các ràng buộc đối với người mua của một đơn vịhàng hóa
Một tập C = { c1 …… cn } các hình thức khuyến mại cho các đơn vị hàng hóatương ứng, tập này cũng có nhiều miền giá trị kiểu boolean.
Một tập B= { b1, b2 …… Bm } các khách hàng đang thương lượng với agentbán Mỗi khách hàng được biểu diễn qua các thông tin sau: Tập các đơn vị hàng hóađã bị từ chối, đơn vị hàng hóa vừa mới giới thiệu đi, các thuộc tính và giá trị cácthuộc tính đã yêu cầu.
Khi đó hoạt động thương lượng cuả agent bán được biểu diễn theo sơ đồ mô tả như sau:
Trang 8 Khởi đầu: Sau khi đăng ký với hệ thống, agent bán sẽ chuyển ngay
vào trạng thái chờ để chờ đến các kết nối từ agent mua.
Chờ: Agent bán sẽ chờ đợi các kết nối đến từ các agent mua Tùy
thuộc vào nội dung nhận được mà agent bán chuyển vào các trạng thái phù hợp. Tìm kiếm: Là trạng thái mà agent bán chuyển vào khi nhận được
thông điệp “ find” Tại đây nó nhận được yêu cầu của khách hàng vừa nhận được vàtiến hành tìm kiếm các đơn hàng thỏa mãn các yêu cầu mà nó đã nhận được
- Nếu không tìm được đơn vị hàng nào, nó sẽ gửi thông điệp “ relax” với mongmuốn agent bán sẽ nhượng bộ trên thuộc tính nào đó
- Nếu tìm thấy nó được chọn đơn vị hàng hóa nào đem lại giá trị lợi ích gi caonhất để giới thiệu với agent mua kèm theo thông điệp “ check” Đồng thời cập nhậtđơn vị hàng hóa mới nhất vừa được gửi đi cho khách hàng tương ứng.
Khuyến mại
Tìm kiếmTìm lại
Khởi đầu
Kết thúc
Có khuyến mại gửi “recheck”
Không khuyến mạigửi “relax”
Thành công gửi “ check”Nhận “
Trang 9 Tìm lại: Là trạng thái khi agent bán chuyển vào khi nhận được thông
điệp “ refind” Khi đó, nó sẽ tiến hành tìm kiếm theo yêu cầu cũ do không có yêu cầumới bổ xung
- Nếu tìm thấy các đơn vị hàng hóa mới, agent bán sẽ chọn đơn vị hàng nào cógiá trị lợi ích cao nhất để gửi đến agent mua với thông điệp “ check” Đồng thời cậpnhật đơn vị hàng hóa mới nhất vừa được giới thiệu
- Nếu không tìm thấy hàng hóa mới, agent bán chuyển vào trạng thái khuyếnmại để xem có thể bổ sung các hình thức khuyến mại khác hay không.
Khuyến mại: Tại đây, agent bán lấy đơn vị hàng hóa mới nhất đã được
giới thiệu cho agent mua để kiểm tra xem đơn vị hàng hóa đó có hình thức khuyếnmại nào không.
- Việc này luôn đảm bảo có đơn vị hàng đã giới thiệu, vì trạng thái này chỉ
được chuyển đến trạng thái sau trạng thái tìm lại, trạng thái tìm lại chỉ xẩy ra khi
agent bán nhận được thông điệp “ refind”, tức là trước đó agent mua đã nhận đượcmột đơn vị hàng hóa do chính agent bán này giới thiệu
- Nếu đơn vị hàng hóa này có kèm theo khuyến mại, agent bán sẽ gửi cáchình thức khuyến mại kèm theo thông điệp “recheck”
- Nếu đơn vị hàng này không có khuyến mại hoặc có khuyến mại nhưng đãđược giới thiệu trước đó, agent bán sẽ gửi thông điệp “relax”, đồng thời cập nhật đơnvị hàng hóa này vào tập các hàng hóa đã bị từ chối.
Kết thúc: Là trạng thái kết thúc cho một phiên thương lượng với agent mua
mà không phải kết thúc cho bản thân agent bán Trạng thái này đạt được khi nó nhậnđược thông điệp “deal” báo chấp nhận hoặc “ fail” báo thất bại từ phía agent mua.
Quá trình trên có thể diễn ra nhiều lần với một hoặc nhiều agent mua khácnhau Khác với agent mua là sẽ kết thúc nhiệm vụ sau khi thương lượng, agent bánchỉ kết thúc nhiệm vụ khi đã bán hết các mặt hàng mà nó quản trị.
3.Chiến lược cho Agent mua
Hoạt động thương lượng cuat agent mua được biểu diễn theo sơ đồ mô tả nhưsau:
Trang 10Khởi đầu: Trong trạng thái khởi đầu của phiên thương lượng này, agent mua
tìm ra thuộc tính có độ ưu tiên ui cao nhất để gửi đi Trong trường hợp có nhiềuthuộc tính có độ ưu tiên ui cao nhất, nó sẽ gửi đi toàn bộ các thuộc tính này.
Yêu cầu: Khi muốn gửi đi yêu cầu về thuộc tính mới hoặc giá trị mới cho
thuộc tính đã yêu cầu, agent mua sẽ chuyển vào trạng thái yêu cầu để thực hiện việcgửi các yêu cầu đó cho phía đối tác Đồng thời với việc gửi yêu cầu đi, agent muacòn phải cập nhật lại nội dung các thuộc tính được gửi đi ( tập D) trong bộ nhớ hoạtđộng của mình.
Chờ: Là trạng thái để agent mua chờ đợi một thông điệp phúc đáp từ phía đối
tác Khi nhận được thông điệp phúc đáp, tùy thuộc vào nội dung của thông điệp mà
Chấp nhận Nhượng bộ
Khởi đầu
Chờ
Không chấp nhậngửi “ Refind”
Trang 11Kiểm tra: Khi nhận được thông điệp kiểu “ Check” từ phía agent bán thì
agent mua chuyển vào trạng thái kiểm tra Tạ đây, nó tiến hành kiểm tra xem cóthuộc tính nào bị vi phạm hay không Một thuộc tính bị coi là vi phạm nếu giá trị củanó kém hơn giá trị yêu cầu của thuộc tính đó đang được lưu giữ trong bộ nhớ hoạtđộng của agent mua ( khái niệm kém hơn là tùy thuộc vào thuộc tính của đối tượng.
- Nếu có ít nhất một thuộc tính bị vi phạm, agent mua sẽ chuyển sang trạng
thái yêu cầu để bổ xung các yêu cầu mới
- Trong trường hợp ngược lại, không có thuộc tính nào bị vi phạm, nó sẽ
chuyển vào trạng thái chấp nhận để kiểm tra xem đối tượng có thể chấp nhận được
không Vì, khi không có thuộc tính nào bị vi phạm thì chưa thể chắc chắn rằng mặthàng đó có thể được chấp nhận bởi người dùng hay không
Chấp nhận: Trong trường hợp không có thuộc tính nào bị vi phạm sau trạng
thái Kiểm tra hoặc nhận được thông điệp “ Recheck”, agent mua sẽ chuyển vàotrạng thái chấp nhận Các bước tiến hành để tính độ thỏa mãn tổng thể của đối
tượng đối với người dùng, dựa trên các kỹ thuật ước lượng dùng như sau:
Nhượng bộ: Khi nhận được thông điệp “ Relax” từ agent bán thì agent mua
chuyển vào trạng thái này
- Tại đây nó kiểm tra xem trong các thuộc tính đã gửi yêu cầu, có thuộc tínhnào còn có thể nhượng bộ được nữa hay không.
- Một thuộc tính được coi là nhượng bộ được nếu giá trị nhượng bộ của nó vẫnlớn hơn ngưỡng nhượng bộ λ của thuộc tính đó Sau khi kiểm tra, nếu không cóthuộc tính nào có thể nhượng bộ thêm, agent mua sẽ gửi thông điệp “fail” và chuyển
sang trạng thái Kết thúc ( thất bại).
- Ngược lại, nếu thuộc tính còn có thể nhượng bộ thêm, agent mua sẽ chọn ramột thuộc tính để nhượng bộ sao cho giá trị lợi ích của mình bị giảm đi là nhỏ nhất.Giá trị lợi ích bị mất được ước lượng dựa trên độ thỏa mãn bị giảm đi Δaai và độ ưutiên ui của thuộc tính đó
b Thương lượng song phương dựa trên Roleb.1 Khái niệm Role:
Trang 12Khái niệm role đã được sử dụng rộng rãi trong các phương pháp hướng đốitượng trong đó role được hiểu là một tập hành vi mà một đối tượng có thể áp đặt lênđối tượng khác để làm thay đổi khả năng cũng như hành vi của đối tượng đó.
Trong nghiên cứu phát triển phần mềm theo hướng Agent, ta có thể hiểu:
“Role là tập các khả năng, hành vi mong đợi và tri thức mà agent có thể sử dùngđến khi cần”.Tập các khả năng của một role là tập các hành động mà một agent đảm
nhận role đó có thể thực hiện để hoàn thành nhiệm vụ của mình Hành vi được mongđợi là tập các sự kiện mà agent phải quản lý nhằm thực hiện được nhiệm vụ của role
đó Do đó, một tương tác giữa các agent có thể được biểu diễn bởi cặp (hành động,sự kiện).
b.2 Mô hình tương tác
b.3 Đặc tả thương lượng song phương dựa trên Role
Chúng ta xét một trường hợp cụ thể là một hệ thống mua bán máy tính nhằmminh họa cách thức hoạt động của các hệ đa agent dựa trên role Hệ thống này sẽphải thực hiện các công việc như sau:
Lấy thông tin yêu cầu từ người mua: giá cả sản phẩm, nhà sản xuất,màu sắc, cấu hình
Tìm kiếm các nhà cung cấp sản phẩm Role
AKhả năng
Role
Khả năngHệ
thống tương tác
Tương tác giữa hai agent trong thương lượng
Hành vi
Hành vi
Trang 13Như vậy, các agent đại diện người mua sẽ phải tương tác với các agent củanhiều hệ thống khác trong các môi trường khác nhau Các chức năng của hệ thốngbao gồm các role sau: Request_Getter (Lấy thông tin), Buyer (Bên mua) và Seller(Bên bán).
Vai trò Request_Getter
Role này chịu trách nhiệm lấy các yêu cầu từ người dùng Mỗi người dùng khicó nhu cầu mua một mặt hàng nào đó sẽ phải khởi động một agent người dùng Sauđó agent này sẽ tìm kiếm và đảm nhận một role gọi là Request_Getter Khi đảmnhận role này, agent sẽ yêu cầu người dùng nhập vào các yêu cầu về sản phẩm cầnmua Việc lấy yêu cầu này sẽ được thực hiện thông qua role bằng cách gọi một dịchvụ trong role, ví dụ Get_Request
Sau khi lấy được yêu cầu người dùng, agent sẽ phải lưu các yêu cầu này dướidạng sao cho dễ hiểu và chuyển được dễ dàng sang hệ thống khác Vì vậy, roleRequest_Getter phải được thiết kế có một định dạng lưu trữ thông tin tốt và mộtphương thức để trả dữ liệu về cho agent
Định dạng tốt nhất thường được dùng để biểu diễn dữ liệu hiện nay là XML dotính khả chuyển và gọn nhẹ của nó Để giải quyết vấn đề thứ hai là trả dữ liệu vềcho agent, agent sẽ phải gọi một phương thức, chẳng hạn, store_data để lấy dữ liệuvà lưu vào một biến trong Sau khi lưu lại dữ liệu trong agent, agent người dùng sẽgiải phóng role Request_Getter và bắt đầu quá trình đi tìm các hệ thống thương mạiđiện tử
Vai trò Buyer, Seller và quá trình thương lượng
Agent người sử dụng sẽ tìm kiếm người bán, đăng ký và đảm nhận role ngườimua Buyer Với việc đảm nhận vai trò Buyer, nó được phép giao dịch với agent báncủa hệ thống Agent bán sẽ luôn đảm nhận vai trò Seller trong hệ thống
- Vai trò Buyer có các hành động và sự kiện sau:
Hành động: send_request (gửi yêu cầu đến agent bán), make_order (đặthàng), refuse (từ chối sản phẩm agent bán đưa ra), end (kết thúc thương lượng).
Sự kiện: list_sent (danh sách đã được gửi), downrequirement (bên bángợi ý giảm bớt yêu cầu).
Trang 14- Vai trò Seller có các hành động và sự kiện sau:
Hành động: get_request (lấy yêu cầu), require_search (yêu cầu tìm kiếmthông tin), list_product (liệt kê danh sách sản phẩm đạt yêu cầu), send_list (gửi danhsách sản phẩm đến agent mua), suggest_downRequirement (đề nghị giảm bớt yêucầu)
Sự kiện: request_sent (yêu cầu được gửi), refused (bên mua từ chối đềnghị), end (kết thúc thương lượng)
- Thương lượng giữa hai agent này sẽ tiến hành theo cách thức sau:
Agent mua, qua vai trò Buyer sẽ gửi cho vai trò Seller của agent bán cácthông tin về yêu cầu của người dùng
Agent bán sẽ phân tích yêu cầu và kiểm tra xem nó có hàng hóa thỏa mãnyêu cầu không Quá trình tìm kiếm sản phẩm đáp ứng sẽ không được trình bày ởđây.
Nếu agent bán tìm ra một danh sách các sản phẩm thỏa mãn hoàn toànyêu cầu và gửi cho agent mua thì dựa trên quyết định của mình Agent mua sẽ tiếnhành đặt.Quá trình thương lượng kết thúc tại đây.
Nếu agent bán không tìm ra sản phẩm đáp ứng mọi yêu cầu của agentmua Nó đưa ra danh sách đáp ứng nhiều yêu cầu nhất và đề nghị agent mua giảmbớt yêu cầu chưa thỏa mãn Nếu agent mua chấp nhận, quá trình thương lượng tiếptục, ngược lại agent mua sẽ kết thúc thương lượng và chuyển qua hệ thống khác
IV.MÔ HÌNH THƯƠNG LƯỢNG 1-N (ĐẤU GIÁ)1.Khái niệm đấu giá
Đấu giá là một trong những hình thức mua bán phổ biến trong thương mại trong một mô hình đấu giá người mua sẽ trả giá theo một cách thức nào đó để mua được mặt hàng