CHƯƠNG 1 KHÁI NIỆM VỀ AGENT 1.1 Agent là gì? Hiện nay thuật ngữ agent được sử dụng rất nhiều trong lĩnh vực thông tin như Mobile Agent - thuật ngữ chỉ phân mềm có khả năng di chuyển giữa các nền tảng khác nhau, User- Agent sử dụng trong giao thức HTTP để xác định thông tin trình duyệt… Vậy agent là gì? Hiện nay một số định nghĩa được đề xuất, trong đó nổi bật là định nghĩa của hai tác giả Wooldridge và Jennings đưa ra năm 1995. Định nghĩa đó như sau[2]: Một phần cứng hoặc (phần nhiều là) hệ thống phần mềm có các thuộc tính sau: • Sự tự trị: Các agent hoạt động mà không cần sự can thiệp trực tiếp của con người hoặc các agent khác và có một số điều khiển thông qua các hành động và trạng thái nội tại của chúng; • Khả năng xã hội: Các agents tương tác với các agent khác (và có thể cả con người) thông qua một vài loại ngôn ngữ giao tiếp của agent; • Khả năng phản ứng: Các agent nhận thức được môi trường xung quanh chúng, (nó có thể là thế giới thực, là người dùng thông qua giao diện sử dụng của họ, hoặc một tập các agent khác, Internet hoặc có thể là tất cả các sự kết hợp trên), và phản ứng đúng lúc nhằm thay đổi bản thân chúng. • Tính tích cực: Các agent không chỉ đơn giản hành động phản hồi lại môi trường mà chúng còn có khả năng thực hiện những hành vi một cách chủ động. Một định nghĩa gần đây hơn Wooldridge đề xuất năm 2002: Một agent là một hệ thống máy tính mà nó cư trú trong một vài môi trường và nó có khả năng hoạt động một cách độc lập trong môi trường đó đúng với mục tiêu thiết kế Theo định nghĩa trên agent là: • Các thực thể giải quyết vấn đề có thể nhận biết một cách rõ ràng với ranh giới và giao diện rõ ràng.dung TIEU LUAN MOI download : skknchat@gmail.dung 4 • Được đặt (nhúng) trong môi trường cụ thể - chúng nhận các đầu vào liên quan đến các trạng thái của môi trường thông qua các bộ cảm biến của chúng và hành động tác động lại môi trường thông qua các bộ phản ứng.
Được thiết kế để đáp ứng vai trò nhất định - chúng có mục tiêu cụ thể để hoàn thành, nó có thể hoàn toàn độc lập với các agent khác. • Tự trị - chúng điều khiển thông qua các trạng thái và các hành vi của chúng. • Khả năng đưa ra hành vi giải quyết vấn đề (phụ thuộc ngữ cảnh) - chúng cần phải phản ứng lại những thay đổi diễn trong môi trường trong thời gian cho phép để thỏa mãn mục tiêu thiết kế và có khả năng xây dựng các mục tiêu mới và thực hiện nhằm hoàn thành mục tiêu của nó [3] Định nghĩa thuật ngữ agent thường có xu hướng theo cái của mục đích của người định nghĩa và theo loại agent mà họ quyết định thiết kế. “Ranh giới của một agent có nghĩa là một công cụ cho việc phân tích các hệ thống, không có một mô tả chính xác nào có thể phân chia được thế nào là agent thế nào là không phải agent” (Russell - 1995).
Điều đó có nghĩa là không có thể định nghĩa một cách toàn vẹn cho đáp ứng mọi khía cạnh, mọi lĩnh vực. Mặc dù vậy chúng ta vẫn có thể trích ra một số thuộc tính mà các agent bộc lộ: • Sự tự trị (autonomy): Các agent hành động mà không cần sự can thiệp của con người và các agent khác. • Sự tồn tại (situated): Các agent được nằm trong môi trường thực hoặc môi trường ảo. • Khả năng phản ứng (reactivity): Các agent có khả năng nhận thức môi trường và hành động trong môi trường đó.
• Tính chủ động (pro - activity): Các agent không chỉ đơn giản hành động phản hồi lại môi trường mà chúng có khả năng định ra mục tiêu và lập kế hoạch để đạt được các mục tiêu của chúng • Khả năng về xã hội (social ability): Các agent tương tác với các agent khác, đôi khi với cả con người thông qua một số ngôn ngữ agent. • Sự thông minh (intelligent): Các agent có khả năng hoàn thiện tri thức • Tính tổ chức (organized): Các agent được tổ chức theo cấu trúc giống với xã hội con người hoặc xã hội sinh thái • Tính di động (mobile): Các agent có khả năng di chuyển từ nơi này sang nơi khác. Di chuyển ở đây có nghĩa là di chuyển cả mã thực thi và các trạng thái theo agent (LUAN.dung TIEU LUAN MOI download : skknchat@gmail.2 Phân loại agent Dựa trên các tiêu chí chính, tác giả tạm phân các agent thành 3 phân loại chính: Độ thông minh, tính di động và khả năng cộng tác và giao tiếp 1.1 Phân loại agent theo độ thông minh Một agent phải có độ thông minh nhất định. Sự thông minh là một trong những đặc tính của agent.
Độ thông minh ở đây được thể hiện ở khả năng agent đó giải quyết một cách công việc theo mục tiêu cụ thể một cách cách độc lập thông qua việc tự điều khiển các hành vi của mình, giao tiếp với các agent khác và khả năng học. Một agent càng thông minh nếu nó có thể thực hiện công việc càng ít sự can thiệp của người dùng. Khả giao tiếp Khả năng học Các agent thông minh Khả tự trị Hình 1: Agent thông minh theo phân loại của Nwana Ví dụ: Một agent mua sản phẩm có thể tự động giao tìm kiếm thông tin về sản phẩm, giao tiếp với các agent bán để thỏa thuận giá cả, và quyết định mua sản phẩm sao cho giá cả là thấp nhất.2 Phân loại agent theo tính di động Các agent được phân làm 2 loại mức: Agent có khả năng di động và agent không có khả năng di động. Agent không có khả năng di động là agent chỉ có khả năng thực hiện trong môi trường nó được tạo ra.
Các agent có khả năng di chuyển (di động) từ môi trường này sang môi trường khác. Khả năng di động của agent được phân làm 2 loại: [4] (LUAN.dung TIEU LUAN MOI download : skknchat@gmail.dung 6 • Di động mạnh (strong mobility): Khả năng hệ thống có thể di chuyển cả mã chương trình và trạng thái thi hành của agent từ môi trường này sang môi trường khác. • Di động yếu (weak mobility): Là khả năng của 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. Agent di động là một sự tiến hóa của mô hình ứng dụng phân tán.
So sánh với các mô hình ứng dụng phân tán truyền thống như “thực hiện lời gọi hàm từ xa” (RPC - Remote Procedure Call) - máy trạm gửi yêu cầu đến máy chủ và nhận kết quả do máy chủ thực hiện và mô hình Remote Evaluation (REV)[5] – máy trạm gửi mã x trình đến máy chủ và nhận kết quả trả về. Tham số(Dữ liệu) RPC Máy trạm Máy chủ Kết quả(Dữ liệu) Hàm(Mã chương trình, tham số dữ liệu) Máy trạm Máy chủ REV Kết quả(Dữ liệu) Máy chủ 1 Di chuyển Máy chủ 2 Agent di động Agent(Mã nguồn, Dữ liệu, Trạng thái) Di chuyển. Hình 2: Sự tiến hóa của mô hình agent di động Lợi ích của hệ thống agent di động là: Giảm tải mạng - thực hiện phương châm: mang xử lý đến nơi chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý, khắc phục sự trễ mạng, khả năng thi hành không đồng bộ và tự trị, thích ứng nhanh, khắc phục tình trạng không đồng nhất và nổi trội về khả năng chế ngự lỗi cao.3 Phân loại theo khả năng giao tiếp và cộng tác Một agent phải đảm bảo khả năng giao tiếp được với môi trường để có khả năng thực hiện công việc. Agent sử dụng khả năng truyền thông để liên lạc trao đổi với môi trường của nó và với các agent khác thông qua một ngôn ngữ truyền thông đã được chuẩn hóa đảm bảo mọi agent có thể hiểu được.
Các agent cung cấp một mô tả các khả năng truy vấn, giao tiếp để các agent khác có thể hiểu và giao tiếp với nó. Khả năng (LUAN.dung TIEU LUAN MOI download : skknchat@gmail.dung 7 giao tiếp của một agent trong hệ thống sẽ càng đòi hỏi cao khi hệ thống phân chia thành càng nhiều các agent nhỏ. Đặc biệt với các giao tiếp được định nghĩa sẵn của mỗi agent giúp quá trình phát triển phần mềm trong giai đoạn bảo trì nâng cấp dễ dàng, khả năng tái sử dụng cao. Ví dụ: Khi thực hiện quá trình xây dựng một agent mua hàng, chúng ta cần tìm các loại agent có mô tả bán hàng và thông qua các giao thức được mô tả về bán hàng của agent để agent mua hàng có thể thực hiện giao tiếp với agent bán hàng mà không cần quan tâm đến việc agent bán hàng thực hiện như thế nào.
Khả năng bảo trì nâng cấp có thể thể hiện ở chỗ một agent bán hàng có thể được xây dựng lại, với khả năng thực hiện công việc tốt hơn miễn sao đảm bảo được các giao tiếp bán hàng sẽ không làm ảnh hưởng gì tới hệ thống. ngoài ra trong hệ thống có thể có nhiều loại agent bán hàng khác nhau cho mỗi lĩnh vực khác nhau.3 Phân loại hệ thống agent Phân loại hệ thống agent, tác giả chọn 2 tiêu chí: Số lượng agent trong hệ thống, Số lượng nơi cư trú của agent ( số lượng máy tính tham gia hệ thống) 1.1 Phân loại hệ thống theo số lượng agent Số lượng agent liên kết trong một hệ thống là một tiêu chí để phân lại hệ thống đơn agent với hệ thống đa agent. Hệ thống đơn agent là hệ thống mà các đơn agent tồn tại trong môi trường mà không giao tiếp với bất kỳ một agent nào khác. Các agent chỉ kết nối với người dùng, tài nguyên.
Trái lại, hệ thống đa agent là hệ thống có nhiều agent có khả năng trao đổi, cộng tác với nhau.2 Phân loại hệ thống theo số lượng nơi cư trú (môi trường) Hệ thống agent có thể triển khai trên một hoặc nhiều phần cứng máy tính khác nhau tao ra tiêu chí phân loại hệ thống đa điểm (multi - node) và đơn điểm (single - node). Hệ thống đơn điểm là hệ thống mà môi trường hoạt động được thiết lập trên một máy tính duy nhất. Hệ thống đa điểm là hệ thống triển khai trên nhiều máy tính có khả năng giao tiếp như mạng LAN/WAN/Internet đảm bảo được truyền thông giữa các máy. Hệ thống đa điểm đảm bảo thực hiện phân tải và hơn thế nữa nó là môi trường thực sự phát huy tác dụng cao cho các agent có tính di động nhằm tối ưu hệ thống.