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ƯỢNG
VÀ ĐẤ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 Anh
Lê Tiến Bình Trịnh Thanh Bình Nguyễn Đình Hậu Phạm Văn Hiếu Phạm Thị Thu Hồng Trầ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ải trao đổ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ôi trườ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ôi trườ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ỗ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 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
- Khả năng sử dụng lại
3 Ứng dụng của hệ đa Agent
- Hệ sản xuất
- Hệ thống điều khiển tiến trình
- Hệ thống viễn thông
- Hệ quản lý thông lưu và đường giao thông
…
Những vấn đề quan trọng trong nghiên cứu phát triển hệ đa Agent:
- Tương tác giữa các Agent
Trang 4Trong hệ đa Agent, mỗi Agent la một thành phần chủ động và hướng tới đích riê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 nhau khi 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ành các nhiệm vụ nhỏ hơn và giao cho các agent thực thi Mỗi agent khi đó sẽ đảm nhiệ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ủa mì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ác vớ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àng nhậ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 mang tí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ương tá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ống như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ông tin 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 để cung cấ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ác mang 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ới nhau, tranh giành nhau để đạt được cái mình muốn, như khi cùng truy xuất đến các tà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 đến tí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ách rạ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ữa hai 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ƯƠNG TÁ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ốn nhó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
Số người mua
Số người bán
Hình: Các dạng thương lượng
Trang 6- Thương lượng 1-1:
Còn gọi là thương lượng song phương, chỉ có một người bán thương lượng với một người mua
- Thương lượng n-1:
Nhiều người mua một người bán Đây chính là hình thức đấu giá (Auction) Đấ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ô hình đấu giá (nhiều người mua, một người bán), người mua sẽ trả giá theo một cách thức nào đó, ví dụ như ai trả giá cao nhất sẽ thắng
- Thương lượng 1-n:
Một người mua có thể thương lượng đồng thời với nhiều người bán Hình thức này gọi là đấu giá ngược (Reverse-auction)
- Thương lượng n-n:
Còn gọi là thương lượng đa phương hay chợ (Market) Mỗi người mua có thể thương lượng đồng thời với nhiều người bán và mỗi người bán cũng có thể thương lượng đồng thời với nhiều người mua
III MÔ HÌNH THƯƠNG LƯỢNG SONG PHƯƠNG
1 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ẻ (Self-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ứu
cố 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ác agent 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ác giữ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 để ước lượ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ặc lập luận cho các giá trị tinh thần như niềm tin hay ý định trong quá trình thương lượ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ệc giao 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ột tậ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 đơn
vị 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) được
mô 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óa tươ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 agent bá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ác thuộ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 mong muố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 cao nhấ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ếm Tìm lại
Khởi đầu
Kết thúc
Chờ
Có khuyến mại gửi “recheck”
Không khuyến mại gửi “relax”
Thành công gửi “ check”
Nhận “ find”
Nhận “ find Thất b
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ầu mớ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ập nhậ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ến mạ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ến mạ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 được mộ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ác hì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 đơn
vị 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ác nhau Khác với agent mua là sẽ kết thúc nhiệm vụ sau khi thương lượng, agent bán chỉ 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ều thuộ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ệc gử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 mua cò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ận gửi “ Refind”
Nhận “ Relax” Nhận “ Recheck
Yêu cầu Kiểm tra
Kết thúc
Gửi “ find” Nhận “ check”
Không thể nhượng bộ gửi “
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ủa
nó 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ặt hà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ào trạ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ính nà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ẫn lớ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 ra mộ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à độ ưu tiên ui của thuộc tính đó
b Thương lượng song phương dựa trên Role
b.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 đối tượ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ằm minh 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
A
Khả năng
Role
Khả năng
Hệ thốn
g tươn
g 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ủa nhiề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ống bao 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 khi
có 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 đảm nhậ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ần mua 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ịch
vụ 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ưới dạng sao cho dễ hiểu và chuyển được dễ dàng sang hệ thống khác Vì vậy, role Request_Getter phải được thiết kế có một định dạng lưu trữ thông tin tốt và một phươ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 do tí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ệu
và 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ười mua Buyer Với việc đảm nhận vai trò Buyer, nó được phép giao dịch với agent bán củ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 (đặt hà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án gợi ý giảm bớt yêu cầu)