Sau khi xây dựng được cây phân cấp IG, bước tiếp theo là xác định hành động nào cần sử dụng để đạt được một mục tiêu tương tác cụ thể (ở mức lá) và có những ràng buộc nào giữa những hành động này. Việc xem xét này chính là thiết kế mức nội tại của các Agent. Không cần thiết phải xem xét các hành động của các mục tiêu tương tác IG không phải mức lá bởi các mục tiêu này sẽ đạt được nếu các mục tiêu con của nó được hoàn thiện. Cứ như vậy, IG tổng thể sẽ được thực hiện.
Trade I: ↑ R: C,M Agree I: ↑ R: C,M Exchange I: ↑ R: C,M Determine Availabilit y I: ↑ R: C,M Negotiate Detail I: ↑ R: C,M Negotiate Price I: ↑ R: C,M Transfer Goods I: M R: C,M Payment I: C R: C,M Send Recieve I: M R: C,M
1.3.3. Mô hình tương tác dựa trên role
Qua tìm hiểu, chúng ta có thể nhận thấy phương pháp AUML [5] có ưu điểm là biểu diễn tương tác theo thời gian rất rõ ràng và trực quan nhưng lại có hạn chế là dùng quá nhiều timeline để mô tả giao thức tương tác. Vì vậy, khi số lượng agent lớn sẽ làm cho lược đồ phức tạp, dễ nhầm lẫn dẫn đến khó xử lý dư thừa… Phương pháp dựa trên mục tiêu Hermes khắc phục được hạn chế của phương pháp AUML, tương thích tốt hơn với kỹ thuật agent và có thêm khả năng hồi phục từ trạng thái lỗi. Tuy nhiên, phương pháp dựa trên mục tiêu tương tác cũng gặp phải một số khó khăn như pha thiết kế theo phương pháp này tốn rất nhiều thời gian công sức và kết quả là cho ra rất nhiều các thành phần thiết kế khác nhau. Điều này làm cho quá trình cài đặt hệ thống trở nên phức tạp.
Hiện nay, phương pháp dựa trên role đã và đang thu hút được nhiều sự quan tâm chú ý. Role là một khái niệm đã được dùng từ lâu trong một số lĩnh vực kỹ nghệ phần mềm như UML và điều khiển truy cập RBAC. Khi áp dụng vào ngữ cảnh đa agent, role đã được điều chỉnh cho phù hợp. Role được coi là một nguyên mẫu hành vi dùng chung cho nhiều lớp agent khác nhau và được coi là một tập hành vi, khả năng và tri thức mà Agent có thể sử dụng để thực thi nhiệm vụ. Nhờ những đặc tính trên của role, phương pháp tương tác dựa trên role thể hiện một số ưu điểm nổi bật so với các phương pháp khác:
Role cho phép tách quan tâm giữa những vấn đề về tính toán và vấn đề về tương tác trong quá trình phát triển ứng dụng hướng agent. Các vấn đề
tính toán được gói gọn trong chính bản thân agent khi định nghĩa hành vi cơ bản của nó. Mặt khác, giao tiếp của agent với các agent khác sẽ được tích hợp trong role và các hành vi phụ khác. Người ta có thể phát triển agent và role độc lập nhau về mặt thời gian cũng như phương pháp. Điều này giúp tăng khả năng phân rã và do đó làm đơn giản hóa quá trình phát triển hệ thống.
Role là một khái niệm trừu tượng ở mức cao nên cho phép sự độc lập nhất định giữa các tình huống cụ thể, nhờ đó nâng cao được tính tổng quát của
các phương pháp dựa trên role.
Role có thể được phát triển theo nhu cầu và quy tắc cục bộ. Nhờ vậy mà
tính cục bộ được nâng cao trong khi phát triển các hệ thống phân tán có quy mô lớn.
Role cho phép sử dụng lại giải pháp cũng như sản phẩm phần mềm: Role
cho phép sử dụng lại giải pháp cũng như sản phẩm phần mềm Trên thực tế, role thường gắn liền với một ngữ cảnh hệ thống và độc lập với agent. Vì thế, người thiết kế có thể sử dụng lại những role đã được thực hiện tốt trước đó cho những ứng dụng tương tự. Chúng ta hoàn toàn có thể coi role là một dạng của mẫu thiết kế (design pattern) và khi đó tập các role có liên quan cùng với định nghĩa cách thức chúng tương tác với nhau được coi là một giải pháp cho một vấn đề cụ thể và nó có thể được sử dụng lại trong nhiều tình huống tương tự.
Như vậy, với cách tiếp cận theo role, số lượng thành phần thiết kế không còn quá lớn, không làm cho quá trình cài đặt phức tạp. Ví dụ, trong một hệ thống đấu giá trực tuyến, thành phần thiết kế chính của hệ thống chỉ đơn giản gồm các role người bán, người điều khiển đấu giá và người mua tiềm năng…Các mối tương tác của hệ thống cũng diễn ra chủ yếu giữa các role này. Vì vậy, phương pháp này tạo cho người phát triển một cách nhìn tự nhiên, khoa học và đơn giản về hệ thống, từ đó quá trình phát triển cũng dễ dàng hơn. Chi tiết về phương pháp này sẽ được chúng tôi trình bày chi tiết trong chương 2 và 3 của luận văn.
1.4. Thương lượng đấu giá
1.4.1. Khái niệm thương lượng
Thương lượng là chủ đề thu hút rất nhiều sự quan tâm nghiên cứu trong khoa học máy tính cũng như trong khoa học kinh tế chính trị. Thương lượng có thể được
dùng theo nhiều nghĩa khác nhau nhưng nói chung đều nói tới quá trình tương tác nhằm đẩy mạnh sự phối hợp và hợp tác giữa các thành phần trong một hệ thống [31]:
Thương lượng là quá trình thoả hiệp giữa các bên có lợi ích xung đột nhau để đi tới một kết quả thống nhất, có thể chấp nhận được.
Với sự bùng nổ của Internet, số lượng giao dịch trên mạng ngày một tăng lên đòi hỏi phải có một cách quản lý thích hợp. Trên thực tế, việc một người tham gia vào nhiều giao dịch cùng lúc là không khả thi bởi việc quản lý rất phức tạp. Điều này, đòi hỏi người tham gia phải có các đại diện cho mình và việc giao dịch phải được tiến hành một cách tự động mà không cần đến sự can thiệp của con người. Điều này hoàn toàn có thể đạt được nhờ việc sử dụng agent, từ đó nảy sinh khái niệm thương lượng tự động ([42], [26]):
Thương lượng tự động là quá trình thương lượng diễn ra một cách tự động giữa các agent (đại diện cho các bên có lợi ích xung đột nhau).
Về bản chất, thương lượng là quá trình tương tác giữa hai bên có lợi ích xung đột nhau. Trong các hệ thống thực cũng như hệ thống phần mềm, việc xung đột lợi ích giữa các bên là không thể nào tránh khỏi. Vì vậy, thương lượng là một quá trình tất yếu và ảnh hưởng lớn đến kết quả hoạt động của hệ thống và không có thương lượng, một số hệ thống không bao giờ đạt được mục đích hoạt động của mình. Ví dụ về thương lượng tự động có thể kể đến như tương tác giữa agent mua và agent bán trong các ứng dụng thương mại điện tử hoặc quan hệ giữa server và client trong các hệ thống cung cấp dịch vụ như truy cập cơ sở dữ liệu dùng chung, hệ thống đăng ký mail, hệ thống game online…
Một quá trình thương lượng tự động được đặc trưng bởi ba thành phần chính sau đây [4]:
Mục tiêu thương lượng: Là tập các kết quả cuối cùng mà quá trình thương lượng phải đạt được.
Chiến lược thương lượng: Chiến lược thương lượng xác định cách thức hành động của agent để đạt được mục tiêu đề ra một cách hiệu quả nhất. Mỗi một agent có chiến lược thương lượng riêng, được giữ bí mật với bên kia.
Giao thức thương lượng: Đây là tập các qui tắc điều khiển tiến trình thương lượng (bao gồm luồng thông điệp trao đổi giữa các bên, ai có thể làm gì, khi nào…) nhằm đảm bảo cho tiến trình thương lượng được suôn sẻ. Giao thức thương lượng được phổ biến rộng rãi cho tất cả các bên tham gia.
Theo số lượng các bên tham gia trong thương lượng, chúng ta có thể chia các mô hình thương lượng tự động làm hai loại chính:
Thương lượng đấu giá, đấu thầu, chợ: Đây là các mô hình dạng một –
nhiều hoặc nhiều – nhiều trong đó nhiều Agent sẽ thương lượng với một hoặc nhiều agent khác. Mô hình này được sử dụng rộng rãi trong lĩnh vực bán hàng trực tuyến. Một số website sử dụng kiểu thương lượng này có thể kể đến eBay (http://www.ebay.com).
Thương lượng song phương: Đây là mô hình thương lượng mà một cặp
Agent tương tác qua lại với nhau[39]. Với các mô hình kiểu này, người ta hay sử dụng các phương pháp Heuristic vì phương pháp này tỏ ra hiệu quả trong việc xử lý tính không chắc chắn vốn có trong thương lượng song phương.
1.4.2. Thương lượng đấu giá
Theo thuyết kinh tế, đấu giá là một cách quyết định giá trị của những loại hàng hóa giá cả không ổn định hoặc khó xác định. Giá trị hàng hóa thường được quyết định bởi mức độ quan tâm của khách hàng. Thương lượng đấu giá chính là quá trình xác định giá sản phẩm giữa các bên tham gia. Đấu giá đã được sử dụng để mua và bán hàng hóa từ thời Hy Lạp cổ đại và ngày càng phát triển nhờ sự bùng nổ
của Internet. Hiện nay, đấu giá đã trở thành một trong những cách thức bán hàng hiệu quả và phổ biến nhất trên Internet. Hiện có hơn 2500 Website hoạt động theo kiểu đấu giá trực tuyến. Có nhiều hình thức đấu giá khác nhau nhưng tất cả đều dựa trên một nguyên tắc cơ bản. Bên bán sẽ rao bán hàng hóa trực tiếp hoặc qua trung gian là các công ty tổ chức đấu giá. Cuộc đấu giá sẽ bắt đầu từ một giá khởi điểm nào đó (thường là thấp hơn giá thị trường). Nhiều người mua sẽ tham gia trả giá và hàng hóa sẽ được bán cho người trả giá cao nhất.
Thực tế, các cuộc đấu giá hoạt động với thời điểm bắt đầu và kết thúc rất khác nhau và có thể diễn ra bất cứ lúc nào. Vì những lý do này, người mua gặp rất nhiều khó khăn trong việc mua bán của mình. Để mua một mặt hàng nào đó, người mua sẽ phải theo dõi nhiều phiên đấu giá khác nhau để tìm đúng lúc một site nào đó bán mặt hàng mà họ mong muốn. Thậm chí ngay cả khi người mua đã chọn được cuộc đấu giá cần tham gia thì họ cũng phải quyết định số tiền nên đặt để có thể mua được mặt hàng phù hợp với điều kiện của mình. Một số phương pháp để hỗ trợ người dùng đã được áp dụng như đặt proxy (eBay và Yahoo!Auction) hoặc công cụ tìm kiếm đấu giá (như BixXS và AuctionBeagle). Tuy nhiên, các hệ thống này vẫn gặp phải một số vấn đề như chỉ hoạt động được trên một site nhất định với một giao thức đấu giá nhất định và quyết định trả giá vẫn thuộc phần trách nhiệm của con người. Điều này khiến cho con người chưa thoát ly được việc tham gia đấu giá.
Để khắc phục những hạn chế này, nhiều nghiên cứu tập trung phát triển các agent tự động có khả năng tham gia vào nhiều cuộc đấu giá khác nhau ([4], [26], [31], [39], [42]). Các agent được cung cấp các khả năng thương mại có thể thực hiện các cuộc trao đổi mua bán một cách tự động. Về chi tiết, agent có thể theo dõi và thu thập thông tin từ các cuộc đấu giá đang diễn ra, đưa ra quyết định thay cho người mua và đảm bảo việc chuyển phát hàng hóa. Agent cũng phải đảm bảo rằng nó không bao giờ trả giá quá số tiền mà nó có (số lượng tối đa mà người mua có thể trả) và nó cố gắng để mua được hàng hóa phù hợp với yêu cầu của người mua (ví dụ như trong thời gian sớm nhất, với giá rẻ nhất có thể hoặc cơ hội thành công lớn nhất).
1.4.3. Một số giao thức đấu giá cơ bản
Những đơn vị tổ chức đấu giá này sử dụng nhiều giao thức đấu giá khác nhau. Các kiểu đấu giá khác nhau dựa trên tính chất trung gian (có hay không đối tượng trung gian), hình thức tương tác giữa các bên tham gia và cách lựa chọn người thắng cuộc. Hiện các hệ thống đấu giá sử dụng một trong các kiểu đấu giá cơ bản sau đây [26]:
Đấu giá kiểu Anh: Đấu giá kiểu Anh là kiểu đấu giá thông dụng nhất.
Người bán đặt ra một giá khởi điểm cho mặt hàng, người mua lần lượt đưa ra giá, lần sau cao hơn lần trước. Hoạt động trả giá sẽ kết thúc khi hết thời hạn đấu giá hoặc không có người mua nào tăng giá trả cho mặt hàng đó. Mặt hàng sẽ được bán cho người trả giá cao nhất với giá đã trả. Đấu giá kiểu Anh cũng cho phép người bán đặt ra giá sàn cho hàng hóa của mình. Đây là loại đấu giá có đối tượng trung gian là người điều khiển đấu giá.
Đấu giá Vickrey: Đấu giá Vickrey tương tự như đấu giá kiểu Anh trong việc bán và trả giá. Điểm khác biệt là một người mua không được biết giá trả của những người mua khác và người trả giá cao nhất là người thắng cuộc và sẽ mua hàng với giá của người trả cao thứ hai. Đây là một dạng đấu giá hay vì người mua sẽ có động lực để trả giá họ cho là xứng đáng với giá trị hàng hóa mà không cần lo lắng tới những người trả giá khác.
Đấu giá kiểu Hà Lan: Người điều khiển đấu giá sẽ bắt đầu quá trình đấu giá với một giá trần và sau đó giảm dần cho tới khi có người chấp nhận giá đưa ra. Đấu giá Hà Lan có ý nghĩa quan trọng trong các ứng dụng thời gian thực, trong đó người bán cần bán sản phẩm trong thời gian ngắn.
Đấu giá Yankee: Đấu giá Yankee là một dạng biến thể của đấu giá kiểu
Hà Lan trong đó người trả giá thành công sẽ trả giá mà họ đã đặt cho mặt hàng chứ không phải giá của người trả thấp nhất được chấp nhận (giống như trong đấu giá kiểu Hà Lan)
Việc lựa chọn giao thức đấu giá nào là quyền của người bán và người tổ chức các phiên đấu giá nhằm vào đối tượng phục vụ của hệ thống. Đấu giá kiểu Anh thì tốt hơn cho người mua trong khi đấu giá kiểu Hà Lan mang lại nhiều lợi ích hơn cho người bán…Đấu giá kiểu Anh là giao thức thường được chọn hơn cả do tính đơn giản, dễ dùng và hiệu quả.
1.5. Kết chương
Trong chương này, chúng tôi đã trình bày khái niệm tương tác cũng như sự cần thiết của tương tác trong hệ đa agent. Tương tác chính là chìa khóa để đạt mục tiêu của hệ thống, do đó, các nhà nghiên cứu đã phát triển nhiều công cụ khác nhau để mô hình hóa tương tác agent trong đó mô hình dựa trên role hiện đang thu hút được nhiều sự quan tâm nghiên cứu và đã thể hiện nhiều ưu điểm vượt trội. Luận văn này tập trung nghiên cứu một số mô hình tương tác dựa trên role và việc sử dụng các mô hình này vào kỹ nghệ phần mềm. Chi tiết sẽ được trình bày trong các chương tiếp theo.
2. Chương 2. Role trong phát triển phần mềm
Role đã được nghiên cứu và áp dụng trong nhiều lĩnh vực khác nhau. Trong kỹ nghệ phần mềm, role cùng với agent đang là một chủ đề thu hút nhiều sự quan tâm nghiên cứu. Chương này sẽ trình bày tổng quan về role và cách thức mô hình tương tác dựa trên role trong hệ đa agent. Cuối cùng sẽ là một vài khảo sát về các phương pháp mô hình dựa trên role.
2.1. Tổng quan về role
2.1.1. Cơ sở thực tiễn
Trong một xã hội, các cá nhân có thể thay đổi thường xuyên, người này mất đi, người kia xuất hiện song cấu trúc xã hội là luôn luôn ổn định. Xã hội vẫn có các thành phần cố định nông dân, công nhân, giáo viên, sinh viên, cha mẹ, con cái…Đây chính là các vai trò hay role. Vậy nên có thể nói chính role đã tạo nên cấu trúc xã hội và là cái bất di bất dịch chứ không phải con người. W.Shakespeare đã từng nói:
―Cả thế giới là một sân khấu. Và con người là các diễn viên. Họ đến rồi đi.
Mỗi người trong đời mình đóng rất nhiều vai khác nhau.‖
(As You like It, Act II, Scene 7). Một vai diễn có thể được nhiều người đảm nhận và người này không diễn thì