Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
730,94 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN NGỌC KHẢI NGHIÊN CỨU VỀ TÁC TỬ PHẦN MỀM VÀ ỨNG DỤNG VÀO BÀI TOÁN ĐẶT LỊCH HỌP LUẬN VĂN THẠC SĨ Hà Nội - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN NGỌC KHẢI NGHIÊN CỨU VỀ TÁC TỬ PHẦN MỀM VÀ ỨNG DỤNG VÀO BÀI TOÁN ĐẶT LỊCH HỌP Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60.48.10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC PGS. TS. NGUYỄN VIỆT HÀ Hà Nội - 2010 LỜI CAM ĐOAN Tôi xin cam đoan kết quả đạt đƣợc trong luận văn là sản phẩm của riêng cá nhân tôi, không sao chép lại của ngƣời khác. Trong toàn bộ nội dung của luận văn, những điều trình bày là của cá nhân tôi hoặc là đƣợc tôi tổng hợp từ nhiều nguồn tài liệu tham khảo có xuất xứ rõ ràng và trích dẫn hợp pháp. Tôi xin chịu toàn bộ trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của tôi. Hà Nội, tháng 10 năm 2010 Nguyễn Ngọc Khải LỜI CÁM ƠN Tôi xin chân thành cám ơn các thầy cô giáo trong khoa Công nghệ thông tin, trƣờng Đại học Công nghệ đã hƣớng dẫn, giúp đỡ và truyền đạt kiến thức cho tôi trong xuốt quá trình học tập để hôm nay tôi có thể hoàn thành đƣợc luận văn của mình. Đặc biệt tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo PGS. TS. Nguyễn Việt Hà - là ngƣời đã trực tiếp hƣớng dẫn giúp đỡ tôi về mọi mặt để hoàn thành luận văn này. Tôi xin chân thành cám ơn các bạn đồng nghiệp, gia đình và bạn bè đã tạo mọi điều kiện giúp đỡ tôi trong xuốt quá trình học tập cũng nhƣ quá trình làm luận văn. Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nỗ lực của mình, song luận văn chắc chắn không tránh khỏi thiếu sót, tôi rất mong nhận đƣợc các ý kiến đóng góp, ý kiến phê bình của các thầy cô giáo, của các bạn đồng nghiệp để tôi tiếp tục nghiên cứu và hoàn thiện hơn luận văn của mình. Xin chân thành cảm ơn ! Hà Nội, tháng 10 năm 2010 Học viên Nguyễn Ngọc Khải MỤC LỤC MỞ ĐẦU 1 CHƢƠNG 1: TÁC TỬ PHẦN MỀM VÀ HỆ ĐA TÁC TỬ 3 1.1. Tác tử phần mềm 3 1.1.1 Khái niệm tác tử phần mềm 3 1.2.2 Tƣơng tác trong hệ đa tác tử 11 1.2.3 Các lợi thế của các hệ thống đa tác tử 12 1.2.4 Lĩnh vực áp dụng các hệ thống đa tác tử 13 CHƢƠNG 2: KỸ NGHỆ PHẦN MỀM HƢỚNG TÁC TỬ 14 2.1 Cách tiếp cận phát triển hệ đa tác tử 14 2.1.1 Cách tiếp cận theo tác tử 14 2.1.2 Cách tiếp cận phát triển từ phƣơng pháp hƣớng đối tƣợng 15 2.1.3 Cách tiếp cận dựa trên công nghệ tri thức 15 2.2 Phƣơng pháp MaSE 16 2.2.1 Đặc điểm của phƣơng pháp luận MaSE 16 2.2.2 Quy trình phát triển phần mềm hƣớng tác tử 18 CHƢƠNG 3: ỨNG DỤNG TÁC TỬ CHO BÀI TOÁN ĐẶT LỊCH HỌP 33 3.1 Mô tả bài toán đặt lịch họp 33 3.2.1 Giải pháp dữ liệu tập trung xử lý tập trung 34 3.2.2 Giải pháp dữ liệu phân tán xử lý tập trung 35 3.2 Giải pháp ứng dụng công nghệ tác tử 37 3.3.1 Giải pháp thứ nhất 37 3.3.2 Giải pháp thứ hai 40 3.3.3 Một số kỹ thuật liên quan đến hoạt động của tác tử 42 CHƢƠNG 4: THỰC NGHIỆM 46 4.1 Công cụ phát triển thực nghiệm 46 4.1.1 Giới thiệu về JADE 46 4.1.2 Xây dựng hệ thống đa tác tử với JADE 47 4.2 Thực nghiệm 49 4.2.1 Hệ thống thực nghiệm 49 4.2.2 Kết quả thực nghiệm 50 KẾT LUẬN 53 1 MỞ ĐẦU Trong thời đại công nghiệp hiện nay, tại các công ty, xí nghiệp, trƣờng học thƣờng xuyên cần tổ chức các cuộc họp, các cuộc hội thảo. Mỗi khi cần tổ chức một cuộc họp ngƣời tổ chức phải căn cứ trên các điều kiện ràng buộc của cuộc họp và thời gian biểu của các thành viên để chọn ra một thời gian tổ chức cuộc họp sao cho phù hợp nhất. Tuy nhiên lịch làm việc của mỗi thành viên lại rất khác nhau, vì vậy việc tìm ra những khoảng thời gian để tổ chức cuộc họp sao cho ít ảnh hƣởng nhất đến các thành viên của cuộc họp đôi khi rất khó khăn. Thông thƣờng hiện nay ngƣời tổ chức thƣờng phải đàm phán bằng điện thoại hay email với các thành viên để thống nhất lịch họp. Giải pháp này chỉ có tác dụng khi số ngƣời tham gia là ít, còn đối với các cuộc họp có đông ngƣời tham gia thì thƣờng phải cố định một thời gian cụ thể và yêu cầu các thành viên phải tuân theo. Điều này không những làm ảnh hƣởng đến công việc của các thành viên mà đôi khi còn làm ảnh hƣởng đến hiệu quả công việc của cơ quan. Để giải quyết vấn đề trên, chúng ta cần một hệ thống đặt lịch họp tự động để tìm ra thời gian tổ chức cuộc họp cho phù hợp nhất dựa trên ràng buộc của cuộc họp và lịch biểu cá nhân của các thành viên. Vấn đề đặt ra là hệ thống phải đảm bảo đƣợc các yêu cầu về bảo mật các thông tin cá nhân có trong lịch biểu của các thành viên, phải đảm bảo cho ngƣời dùng sử dụng hệ thống thuận tiện mọi lúc mọi nơi. Để đảm bảo đƣợc các yêu cầu trên chúng ta bắt buộc phải lƣu trữ dữ liệu của các thành viên phân tán trên các máy tính cá nhân của họ và sử dụng các chƣơng trình mang các thuật toán đến các máy tính đó để tính toán và mang kết quả về. Để thực hiện đƣợc ý tƣởng này chúng tôi nhận thấy sử dụng công nghệ tác tử là một giải pháp hợp lý nhất. Công nghệ tác tử là một công nghệ có nhiều ƣu điểm nổi bật so với các công nghệ hiện thời, đặc biệt trong lĩnh vực xử lý phân tán. Công nghệ tác tử cũng là một công nghệ mới hứa hẹn nhiều tiềm năng trong lĩnh vực công nghệ phần mềm, tuy nhiên chúng cũng còn nhiều thách thức đang chờ đợi chúng ta giải quyết. Đó cũng chính vì các lý do mà tôi lựa chọn đề tài này để thực hiện trong luận văn của mình. Nội dung chính của luận văn bao gồm các vấn đề sau: Tìm hiểu các khái niệm cơ bản về công nghệ tác tử, các hệ thống đa tác tử. Tìm hiểu về quy trình phát triển phần mềm hƣớng tác tử. Xây dựng các giải pháp cho bài toán đặt lịch họp dựa trên công nghệ tác tử và các kết quả thực nghiệm của các giải pháp đó. 2 Với nội dung trên luận văn đƣợc bố cục bao gồm bốn chƣơng nhƣ sau: Chƣơng 1 trình bày các khái niệm về tác tử phần mềm, hệ đa tác tử, các đặc điểm của tác tử, cách thức phân loại tác tử, cách thức giao tiếp của các tác tử trong hệ đa tác tử, các lợi ích và các lĩnh vực có thể áp dụng hệ đa tác tử. Chƣơng 2 trình bày về các phƣơng pháp tiếp cận hệ đa tác tử và quy trình phát triển phần mềm hƣớng tác tử MaSE. Chƣơng 3 trình bày chi tiết về bài toán đặt lịch họp, phân tích và đề xuất các giải pháp ứng dụng công nghệ tác tử để giải quyết bài toán. Chƣơng 4 trình bày về thực nghiệm và các kết quả đạt đƣợc khi tiến hành thực nghiệm các giải pháp đã đề ra trong chƣơng 3. Ngoài ra chƣơng này còn dành một phần để trình bày về công cụ JADE (Java Agent Development), một trong các công cụ dùng để triển khai các giải pháp ứng dụng công nghệ tác tử rất hiệu quả. 3 CHƢƠNG 1 TÁC TỬ PHẦN MỀM VÀ HỆ ĐA TÁC TỬ Chƣơng này luận văn sẽ trình bày các kiến thức cơ sở về tác tử, hệ đa tác tử, cách thức phân loại tác tử, các ƣu điểm của công nghệ tác tử, các lĩnh vực có thể áp dụng công nghệ tác tử. Đây là nền tảng để chúng ta tiếp cận với các vấn đề liên quan đến tác tử và hệ đa tác tử. 1.1. Tác tử phần mềm 1.1.1 Khái niệm tác tử phần mềm Cho đến nay vẫn chƣa có một định nghĩa thống nhất về tác tử phần mềm, tuy nhiên qua tìm hiểu một số khái niệm do các nhà khoa học nghiên cứu về tác tử phần mềm đề xuất, chúng ta có thể mô tả tác tử phần mềm nhƣ là một đối tƣợng phần mềm hoạt động một cách tƣơng đối độc lập, tự chủ và có khả năng cộng tác với nhau trong một môi trƣờng để hoàn thành một nhiệm vụ định trƣớc. Đặc điểm cơ bản của tác tử là có khả năng đóng gói mã lệnh, dữ liệu và cả trạng thái thi hành, nhờ vậy có thể chuyển công việc đang thực hiện tại một máy đến một máy khác [26]. Nhƣ vậy, so với các công nghệ tính toán phân tán trƣớc đây, công nghệ tác tử tỏ ra là công nghệ tiên tiến nhất hiện nay. 1.1.2 Các đặc tính của tác tử Tác tử có các đặc tính chính nhƣ sau [9]: – Tính tự trị: là khả năng tự kiểm soát bản thân của tác tử sau khi đƣợc giao việc mà không cần sự can thiệp nào của ngƣời dùng hoặc của tác tử khác. – Tính di động: là khả năng di chuyển từ môi trƣờng thi hành này sang môi trƣờng thi hành khác của một tác tử. Khả năng di động của một tác tử đƣợc phân thành hai loại: di động mạnh (strong mobility) và di động yếu (weak mobility). Di động mạnh là khả năng mà hệ thống có thể di chuyển cả mã chƣơng trình và trạng thái thi hành của tác tử đến một môi trƣờng khác. Di động yếu là khả năng mà hệ thống chỉ có thể di chuyển mã chƣơng trình giữa các môi trƣờng thi hành với nhau, mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhƣng trạng thái thi hành thì không thể di chuyển. – Tính thích ứng: là khả năng mà tác tử có thể thực thi trên những môi trƣờng lạ, và cảm nhận đƣợc sự thay đổi của môi trƣờng. 4 – Khả năng cộng tác: là khả năng liên lạc, phối hợp hoạt động của các tác tử với các tác tử khác của cùng môi trƣờng hay với các loại đối tƣợng khác trong những môi trƣờng khác. – Tính chủ động: các tác tử có khả năng thể hiện các ứng xử hƣớng mục tiêu bằng việc hoàn thành các kế hoạch để thoả mãn các mục tiêu thiết kế. 1.1.3 Tiêu chí phân loại tác tử [14] [24] Để phân loại tác tử chúng ta có thể căn cứ theo các tiêu chí sau: + Theo tính di động của tác tử + Theo khả năng suy luận hay phản xạ của tác tử + Theo tính chất đặc thù của tác tử + Theo vai trò của tác tử. + Theo tính lai tạp của tác tử. – Phân loại tác tử theo tính di động Theo tiêu chí về khả năng di chuyển giữa môi trƣờng này sang môi trƣờng khác, giữa các nút mạng này sang nút mạng khác chúng ta có thể phân chia tác tử làm hai loại: tác tử tĩnh và tác tử động. – Theo khả năng suy luận hay phản xạ Tác tử có thể đƣợc phân lớp theo tính suy luận hoặc tính phản xạ của chúng. Theo tiêu chí này, tác tử đƣợc phân làm hai loại: tác tử suy luận và tác tử phản xạ. Các tác tử suy luận bắt nguồn từ mô hình tƣ duy suy luận: các tác tử có một tập trạng thái trong, mô hình tƣ duy và chúng hoạt động một cách có kế hoạch và có sự hợp tác với các tác tử khác. Các tác tử phản xạ thì không có tập trạng thái trong, chúng hoạt động theo hình thức đáp ứng lại trạng thái hiện thời của môi trƣờng. – Theo tính chất đặc thù của tác tử Theo tính chất đặc thù của tác tử thì tác tử có thể đƣợc phân thành bốn loại: tác tử hợp tác, tác tử hợp tác học tập, tác tử giao diện và tác tử thông minh. Tác tử có khả năng tự động là các tác tử có khả năng tự thi hành các hành động mà không cần có sự can thiệp của con ngƣời, thậm chí đôi khi điều này là không thể đánh giá đƣợc. Các tác tử này có tập trạng thái trong cũng nhƣ tập mục đích riêng, và chúng hoạt động thay mặt cho ngƣời dùng theo một phƣơng 5 thức nào đó nhằm đạt đƣợc mục đích. Điểm chốt yếu của tính tự động là khả năng chủ động, nhƣ chúng có khả năng tự khởi tạo công việc chứ không chỉ đơn thuần đáp ứng lại trƣớc các trạng thái hiện thời của môi trƣờng. Khả năng hợp tác của tác tử là đặc điểm hết sức quan trọng, để có thể hợp tác đƣợc các tác tử cần sở hữu các khả năng xã hội, ví dụ khả răng tƣơng tác với các tác tử khác và có thể là cả con ngƣời thông qua một số ngôn ngữ nào đó. Cuối cùng, để tác tử thực sự thông minh thì ngoài khả năng phản xạ hay tƣơng tác với môi trƣờng thì chúng phải có khả năng học tập. Ở đây chúng ta quan niệm rằng bất cứ một thực thể thông minh nào cũng cần phải có khả năng học tập. Quá trình học tập cũng có thể giúp nâng cao hiệu năng hoạt động của tác tử. – Theo vai trò của tác tử Chúng ta cũng có thể phân loại các tác tử theo vai trò riêng của nó do ngƣời dùng thiết kế. Ví dụ các tác tử tìm kiếm thông tin mạng, tác tử báo cáo, tác tử biểu diễn, tác tử phân tích và thiết kế, tác tử kiểm tra, tác tử đóng gói và tác tử trợ giúp vv. – Theo tính lai tạp của tác tử Trên thực tế, để nâng cao hiệu năng của tác tử ta thƣờng kết hợp hai hay nhiều mô hình tác tử khác nhau trong cùng một tác tử để tạo ra các tác tử lai. Việc phân biệt các tác tử theo các tiêu chí trên cũng chỉ mang tính chất tƣơng đối, có những tác tử trong hoàn cảnh này thì coi chúng là tác tử di động, trong hoàn cảnh khác thì lại coi chúng là tác tử tĩnh, … vì vậy, tùy từng trƣờng hợp cụ thể mà chúng ta phân loại tác tử và sử dụng các tiêu chí phân loại cho phù hợp. Để hiểu rõ hơn về cách phân loại này, phần tiếp theo chúng ta sẽ xem xét chi tiết các loại tác tử này. 1.1.4 Các loại tác tử [31] Dựa vào các tiêu chí phân loại tác tử ở trên chúng ta có các loại tác tử sau: – Tác tử di động Tác tử di động là các phần mềm tính toán có khả năng di chuyển trong các mạng diện rộng, ví dụ nhƣ mạng internet, tƣơng tác với các host khác, thay mặt cho ngƣời dùng thu thập thông tin và thực hiện các tập công việc đƣợc giao sau đó quay trở lại báo cáo các kết quả đã đạt đƣợc cho ngƣời chủ. Tập công việc này có thể ở mức đơn giản nhƣ truy xuất thông tin hoặc phức tạp nhƣ việc điều [...]... mô tả và thiết kế các hệ thống tính toán phân tán [29] 1.2.2 Tƣơng tác trong hệ đa tác tử 12 Trong một hệ thống đa tác tử, các tác tử phải có hai khả năng cơ bản là tìm kiếm “đối tác , tức là các tác tử khác, và hợp tác với chúng để thực hiện công việc Việc hỗ trợ các tác tử trong việc tìm kiếm đối tác đƣợc thực hiện bởi các tác tử trung gian (middle agent) Các tác tử thông thƣờng sử dụng tác tử trung... là: + + Nhiệm vụ đƣợc phân rã trƣớc khi đƣợc giao cho mỗi tác tử + – Các chức năng đƣợc thực hiện độc lập Các tác tử phản xạ có xu hƣớng hoạt động trực tuyến tƣơng ứng với dữ liệu mà nó nhận đƣợc từ môi trƣờng Tác tử lai Trong các phần ở trên ta đã nhắc đến năm loại tác tử: tác tử di động, tác tử hợp tác, tác tử giao diện, tác tử thông tin và tác tử phản xạ Mỗi loại trong số chúng đều có những điểm mạnh... cho thể hiện của một tác tử Các tác tử di động là tác tử vì chúng còn có tính tự động và tính hợp tác, mặc dù khác với các tác tử hợp tác Ví dụ, chúng có thể hợp tác hoặc trao đổi thông tin thông qua một tác tử khác, chúng có các phƣơng pháp biết đƣợc các tác tử khác Bằng cách này một tác tử có thể trao đổi thông tin với các tác tử khác mà không phải truyền đi tất cả các thông tin về mình Điều này hết... nhận biết công cộng về các tác tử cũng đồng nghĩa với các tác tử di động Các chức năng của tác tử di động đƣợc mô tả nhƣ trong hình vẽ 1.1 Interacts with User Application Communicate Feedback Observes Imitates Asks Interacts with User’s Agent Other Agent Hình 1.1: Chức năng của các tác tử di động – Tác tử hợp tác Các tác tử hợp tác nhấn mạnh vào tính tự động và cộng tác với các tác tử khác để thực hiện... Việc xử lý tính toán trên mạng phần lớn là không đồng nhất vì sự đa dạng về phần cứng và phần mềm đƣợc sử dụng Do tác tử di động độc lập với phần cứng, hệ điều hành và tầng vận chuyển, chỉ phụ thuộc vào tầng thi hành, nên chúng cung cấp một điều kiện tối ƣu cho việc liên kết các hệ thống không đồng nhất – Mạnh mẽ và chế ngự lỗi cao Với khả năng phản ứng năng động, với những sự kiện và những thay đổi... trƣờng mà các tác tử tƣơng tác đƣợc với nhau gọi là hệ thống đa tác tử (multiagent) Đây là một môi trƣờng mạng gắn kết một cách tự do các tác tử để giải quyết một vấn đề mà từng tác tử riêng biệt không giải quyết đƣợc Việc sử dụng hệ thống đa tác tử cho phép một vấn đề có thể đƣợc giải quyết một cách phân tán trên nhiều hệ thống phần mềm và phần cứng khác nhau Hiện nay, hệ thống đa tác tử đƣợc coi là... đó từ một yêu cầu từ tác tử khác – Tác tử thông minh: thể hiện ở tính phản xạ, tính chủ động, hành động hƣớng mục đích và linh hoạt – Tác tử chủ động: một hệ thống đa tác tử vốn là hệ thống đa luồng, trong đó mỗi tác tử đƣợc giả thiết để điều khiển ít nhất một luồng 1.1.7 Lợi ích của công nghệ tác tử Ứng dụng công nghệ tác tử sẽ có một số lợi ích chính sau: – Làm giảm tải mạng Tác tử di động cho phép... nhiên phải lƣu ý rằng rất có thể các tác tử loại này có các tính chất trùng lặp với những loại đã nêu trên, nhƣ tác tử giao diện hoặc tác tử hợp tác Điều này là không thể chánh khỏi vì khi đƣa ra các định nghĩa trƣớc về tác tử ta dựa trên câu hỏi “chúng là gì”, trong khi đó tác tử thông tin đƣợc định nghĩa với câu hỏi “chúng làm gì” Mặc dù tác tử thông tin và tác tử hợp tác có xuất phát điểm rất khác nhau,... hiểu và sƣu tầm các khái niệm, định nghĩa về chúng mà đƣợc cộng đồng nghiên cứu về tác tử đánh giá cao Phân tích các ƣu điểm, nhƣợc điểm, các lĩnh vực có thể áp dụng Đây là các kiến thức cơ sở, nền tảng rất quan trọng không thể thiếu đƣợc để chúng ta tiếp cận, tìm hiểu các vấn đề liên quan đến tác tử và hệ đa tác tử 14 CHƢƠNG 2 KỸ NGHỆ PHẦN MỀM HƢỚNG TÁC TỬ Trong chƣơng này, chúng ta sẽ tìm hiểu về. .. mỗi tác tử và sự trao đổi tri thức giữa các tác tử trong hệ thống chính là cơ sở của mọi hoạt động của hệ thống Các nghiên cứu theo cách tiếp cận này sử dụng các khái niệm và quá trình trong công nghệ tri thức để xây dựng nên phƣơng pháp luận cho hệ đa tác tử Các phƣơng pháp luận này tập trung vào các quá trình thu thập tri thức, mô hình tri thức và lập luận đƣợc sử dụng bởi các thành phần tác tử trong . NGUYỄN NGỌC KHẢI NGHIÊN CỨU VỀ TÁC TỬ PHẦN MỀM VÀ ỨNG DỤNG VÀO BÀI TOÁN ĐẶT LỊCH HỌP Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60.48.10 . đặc thù của tác tử Theo tính chất đặc thù của tác tử thì tác tử có thể đƣợc phân thành bốn loại: tác tử hợp tác, tác tử hợp tác học tập, tác tử giao diện và tác tử thông minh. Tác tử có khả. cơ bản về công nghệ tác tử, các hệ thống đa tác tử. Tìm hiểu về quy trình phát triển phần mềm hƣớng tác tử. Xây dựng các giải pháp cho bài toán đặt lịch họp dựa trên công nghệ tác tử và các