Khởi tạo các role agent

Một phần của tài liệu Mô hình tương tác dựa trên role trong hệ đa agent (Trang 94)

Hệ thống yêu cầu mỗi khi agent được tạo ra, người dùng luôn phải chọn một role nào đó để agent đảm nhận. Vì vậy, ngay khi chạy chương trình, giao diện khởi tạo role agent sẽ hiện ra yêu cầu người dùng nhập tên cho agent và chọn một trong ba role Bidder, Seller hoặc Auctioneer để đảm nhận như Hình 4.12.

Ví dụ, tên agent là Bidder1 và role cần đóng là Bidder. Sau khi người dùng nhấn nút Assume, một role agent có tên Bidder1 (Hình 4.13) sẽ được tạo ra để thực hiện chức năng người mua.

Hình 4.13. Giao diện của một Bidder

Trong giao diện của role agent Bidder1, người dùng chỉ cần nhập vào các thông tin cần thiết về mặt hàng cần mua như mô tả mặt hàng và số tiền hiện có. Căn cứ vào thông tin được cung cấp, Bidder1 sẽ tự động tìm kiếm và thực hiện việc đấu giá. Người dùng không cần tính toán bất kỳ việc gì liên quan đến đấu giá mà chỉ cần theo dõi thông tin về quá trình đấu giá của Bidder1 được hiển thị trong khung Process để biết kết quả cuối cùng.

Từ giao diện khởi tạo role Agent ở Hình 4.12, người dùng có thể chọn để đảm nhận role Seller hoặc Auctioneer. Ví dụ, chúng ta chọn tạo ra một role agent có tên Seller1 đảm nhận chức năng Seller của hệ thống. Giao diện của Seller1 sẽ có dạng như Hình 4.14:

Ở đây, người dùng chỉ nhập vào mô tả cho mặt hàng cần bán và giá sàn (giá tối thiểu người bán muốn bán mặt hàng của mình). Kết quả Seller1 trả về cho người dùng sẽ được hiển thị trong khung Process phía dưới cửa sổ như Hình 4.14.

Hoàn toàn tương tự, chúng ta có thể khởi tạo một role agent Auctioneer1 từ giao diện khởi tạo Hình 4.12. Auctioneer sẽ đóng vai trò cầu nối giữa Seller và Bidder đồng thời thiết lập các thông số cần thiết để điều khiển cuộc đấu giá.

Hình 4.15. Giao diện của Auctioneer.

Một số tham số người điều khiển phiên đấu giá phải xác lập bao gồm:

Thời gian timeout TO1: Là khoảng thời gian Auctioneer chờ Seller đưa

hàng lên rao bán. Hết thời gian này nếu không nhận được sự kiện putGoodOnSale từ bất kỳ Seller nào, Auctioneer sẽ khởi động lại. Đơn vị của TO1 được tính bằng giây.

Thời gian timeout TO2: Là thời gian Auctioneer chờ đợi sự kiện bid đầu

tiên từ phía các Bidder. Quá thời gian này, nếu không có Bidder nào trả giá, Auctioneer sẽ thông báo cho Seller hàng hóa không bán được và cả hai phải thực hiện lại từ đầu.

Thời gian timeout TO3: Là khoảng thời gian Auctioneer chờ đợi giữa các

lần trả giá của Bidder. Hết thời gian này, nếu không có sự kiện bid nào được gửi tới, Auctioneer sẽ thông báo người thắng cuộc cuối cùng và kết thúc phiên đấu giá.

Gia số I: Là tỉ lệ phần trăm giá mặt hàng sẽ tăng sau mỗi lần đề xuất. Đơn

vị tính của I là %. Công thức tính giá mới theo giá cũ như sau: Giá_mới = giá_cũ * (1+I)

Một thành phần hết sức quan trọng của hệ thống là Server agent với nhiệm vụ thực hiện và quản lý tương tác. Chương trình đã tự động khởi tạo Server agent ngay khi người dùng khởi động hệ thống. Server agent sẽ tự động dịch các hành động nhận được thành sự kiện tương ứng và gửi sự kiện này đến các agent nhận.

Tóm lại, để một cuộc đấu giá có thể thực hiện được, hệ thống phải có tối thiểu bốn thành phần là Bidder, Seller, Auctioneer và Server agent. Chúng ta có thể thấy điều này trong cây phân cấp agent của nền JADE như trong Hình 4.16.

Hình 4.16. Cây phân cấp Agent của nền Jade.

Tại một thời điểm, có thể có nhiều cuộc đấu giá diễn ra đồng thời, một Bidder có thể lựa chọn tham gia vào bất kỳ cuộc đấu giá nào. Mỗi Auctioneer chỉ điều khiển một cuộc đấu giá và Seller cũng chỉ tham gia vào một cuộc đấu giá tại một thời điểm nhất định. Seller và Bidder hoàn toàn không có bất kỳ mối liên hệ nào với nhau và Auctioneer sẽ đóng vai trò cầu nối. Do đó, quá trình đấu giá có thể được chia làm hai giai đoạn riêng biệt: giai đoạn thương lượng giữa Seller và Auctioneer để rao bán mặt hàng và giai đoạn thương lượng giữa Auctioneer và Bidder để tiến hành trả giá cho mặt hàng.

Một phần của tài liệu Mô hình tương tác dựa trên role trong hệ đa agent (Trang 94)

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

(118 trang)