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 đó.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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ả. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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ử. Tác tử phần mềm 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.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. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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ế.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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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.