Bài toán dịch vụ du lịch đã có các role tương ứng với các đích như sau: • Role Matchmaker thực hiện đích tìm đối tác
• Role Buyer thực hiện đích thương lượng
• Role User thực hiện đích thông báo kết quả.
• Role Hotel thực hiện đích đặt chỗ khách sạn
• Role Station thực hiện đích đặt vé tàu.
Hình 5.7: Sơ đồ ontology của hệ thống
Thing
Tupe NameValue
Address Name Host Port Internal MinValue MaxValue Hotel RoomCost StarNumber Distance Internet Train Date Position Timelost Cost HotelReward Telephone Gift TrainReward Breakfast Gift Hotelfull HotelID Name Address Reward Picture Trainfull Name Reward StartTime
• Với đích đặt chỗ (1.2), đích này phần lớn task đã được thực hiện bởi hai đích con là đặt chỗ khách sạn và đặt vé tàu, phần việc còn lại là tích hợp thông tin theo yêu cầu người sử dụng nên được thực hiện bởi role User.
Việc giao tiếp với khách hàng được giao cho role User bởi vì bản thân role này đã thực hiện các đích thông báo kết quả, tích hợp thông tin trong đích đặt chỗ, là các đích giao tiếp với người dùng. Do vậy, không cần thiết phải tạo ra một role hoàn toàn mới để đảm nhiệm việc này.
Trong bài toán này, ngoài tài nguyên con người đã được giải quyết như trên, các nguồn tài nguyên bên ngoài còn lại bao gồm các khách sạn và các nhà ga quản lí các chuyến tàu. Việc giao tiếp với các đối tượng này được giao cho các role tương ứng là
Hotel và Station, bởi các role này đã thực hiện các đích đặt chỗ khách sạn và đặt vé tàu, các các đích mang tích chất giao tiếp với các đối tượng đã nêu. Do vậy, cũng không cần thiết phải tạo ra các đích mới để đảm nhiệm các công việc này.
Với các sự kiện của use case tìm đối tác, xuất hiện giữa hai role User và
Matchmaker sẽ trở thành giao thức UserConnect giữa hai role tương ứng. Hình 5.8 là sơ đồ role ban đầu của hệ thống.
Trong bài toán này, có ba task trùng tên là thương lượng (negotiation) của ba role tương ứng là Buyer, Hotel và Station. Mặc dù trùng tên và có chức năng tương tự nhau, nhưng mỗi role lại có task thượng lượng theo thuật toán khác nhau (người bán và người mua) và nhằm đem lại lợi ích cho các đối tượng có quyền lợi khác nhau (chi tiết các task này được mô tả trong phần tiếp theo). Các task của các role còn lại được tổ chức như Hình 5.9.
Role User chỉ có một task là modelling, thực hiện mô hình hoá yêu cầu của người dùng và chuẩn bị cho các hoạt động thương lượng. Mặc dù role User phải thực hiện hai đích là thông báo kết quả và đặt chỗ, nhưng các đích này có công việc gần giống nhau và đều liên quan đến việc mô hình hoá sở thích người dùng; do vậy chỉ cần một task
modelling là đủ.
Role Buyer cũng chỉ có một task là negotiation, thay mặt người dùng thương lượng với các đối tác. Tuy nhiên, đích thương lượng thuộc vào loại đích đặc biệt, cần nhiều bên tham gia nhưng không thể chia thành các đích nhỏ hơn được nữa. Do đó, nó được chia ra làm ba task cùng tên negotiation nằm ở ba role tương ứng là Buyer, Hotel và
Station.
Role Station và Hotel có hai task: interface có task giao tiếp (truyền thông) với các khách hàng và người môi giới, task negotiation thay mặt người bán thương lượng với khách hàng.
Role Matchmaker mặc dù chỉ cần thực hiện một đích là tìm đối tác, nhưng để hoàn thành được task này, nó cần phải thu thập được địa chỉ và khả năng của các agent khác trong hệ thống để khi cần thiết, môi giới cho các người mua có yêu cầu. Do đó, nó cần đến hai nhiệm vụ: task confirm xác nhận các đăng kí dịch vụ từ các nhà cung cấp dịch vụ, nghĩa là thu thập tri thức về các người bán tham gia vào hệ thống. Task matching
môi giới các khách hàng với các nhà cung cấp dịch vụ phù hợp với họ, việc môi giới này được dựa trên các tri thức mà nó đã thu thập được trong task confirm.
Sau khi các task được gán vào các role xác định, các giao thức giữa các role trong sơ đồ role ban đầu sẽ được xác định cụ thể bởi các task liên quan. Chẳng hạn,
trong sơ đồ role ban đầu, role Matchmaker có ba giao thức kết nối tới, đến bước này chúng được cụ thể hoá như sau:
- Các giao thức StationConnection và HotelConnection liên quan đến task
confirm do task này chịu trách nhiệm thu thập tri thức về các người bán.
- Giao thức còn lại là UserConnection liên quan đến task matching do task này trực tiếp thực hiện môi giới người mua với người bán phù hợp.
Phần việc còn lại của bước này là xây dựng cách thức hoạt động bên trong của mỗi nhiệm vụ.
Sơ đồ bên trong task
Hình 5.10 là sơ đồ của task thương lượng thuộc role Buyer. Vì role này chỉ có một task nên tất cả các chuyển tiếp trong sơ đồ task này đều tham gia vào tương tác ngoài. Theo đó, nó bước vào trạng thái Start khi nhận được thông điệp “start” từ task modelling
của role User, do đó task này thuộc loại task bị động. Các tương tác còn lại đều được tiến hành với task thương lượng của role Station hoặc role Hotel.
− Tại trạng thái Start, nó tìm ra thuộc tính về hàng hoá có độ ưu tiên cao nhất, gửi đi theo thông điệp “find” và chuyển vào trạng thái Wait để chờ các đáp ứng từ task
negotiation của đối tác.
− Tại trạng thái Wait, nếu nhận được thông điệp “check” thì nó chuyển vào trạng thái
Check, nếu nhận được thông điệp “recheck” thì nó chuyển vào trạng thái Recheck, nếu nhận được thông điệp “relax” thì nó chuyển vào trạng thái Relax, nếu nhận được thông điệp “redeal” thì nó chuyển vào trạng thái Redeal.
− Tại trạng thái Recheck, nó kiểm tra lại xem mặt hàng cũ với thêm các hình thức khuyến mãi có thể chấp nhận được hay không.
− Tại trạng thái Relax, nếu còn nhượng bộ được, nó chọn ra thuộc tính để nhượng bộ sao cho giá trị lợi ích bị giảm đối với nó là nhỏ nhất, gửi đi theo thông điệp “find” và chuyển vào trạng thái Wait, nếu không nhượng bộ được nữa thì nó gửi thông điệp “fail” báo thất bại và chuyển vào trạng thái kết thúc.
Như vậy, kết quả của pha phân tích là một tập các role và các task tương ứng nhằm hoàn thành mục đích của hệ thống. Hoạt động bên trong và các tương tác bên ngoài giữa các task là nhân tố quan trọng cho pha thiết kế sau này.
5.3 Kết luận
Nội dung chương này đã trình bày chi tiết các bước trong pha phân tích hệ đa agent trong hệ dịch vụ du lịch TraNeS. Pha phân tích bao gồm bốn bước: Xác định đích, xác định use case, xây dựng Ontology và xây dựng sơ đồ role. Kết quả của pha này sẽ tạo điều kiện cho việc xây dựng các bước trong pha thiết kế và sẽ được trình bày một cách chi tiết trong chương đến.
THIẾT KẾ HỆ DỊCH VỤ
• Một số vấn đề thiết kế hệ đa agent • Thiết kế hêê dịch vụ du lịch
• Kết luận
Nhiệm vụ của pha thiết kế là chuyển các role được xác định trong pha phân tích thành tập các agent và xác định số lượng, vị trí các agent trong hệ thống. Như đã trình bày trong Chương 4, pha này bao gồm các bước:
1. Xác định các lớp agent 2. Xây dựng các phiên hội thoại 3. Hoàn thiện các agent
4. Triển khai hệ thống
Chương này nhằm tập trung trình bày chi tiết các bước này trong ngữ cảnh hệ dịch vụ du lịch TraNeS.