Chương 1 Tổng quan về agent 1.1 KHÁI NIỆM AGENT 1.1 Định nghĩa Agent Công nghệ agent là một hướng nghiên cứu thu hút rất nhiều sự quan tâm từ những năm 90 đến nay. Tuy nhiên ngay trong chính cộng đồng agent cũng có rất nhiều định nghĩa khác nhau về agent. Wooldridge [34] định nghĩa agent phần mềm “là một hệ thống tính toán bao gói, được đặt trong một môi trường cụ thể, có khả năng hoạt động linh hoạt và tự chủ để đạt được các mục tiêu thiết kế”. James Odell [25] lại định nghĩa agent là một “thực thể có hành vi” với các đặc điểm sau: Tự trị – là khả năng hành động mà không cần đến sự can thiệp trực tiếp từ bên ngoài.
Nó có một số mức điều khiển thông qua trạng thái nội tại của nó và có các hành động dựa trên kinh nghiệm của chính nó Tương tác – giao tiếp với môi trường và các agent khác. Thích nghi – khả năng phản ứng với các agent khác và/hoặc môi trường của nó ở một vài mức độ nào đó. Dạng thích nghi cao cấp hơn là cho phép một agent có thể sửa đổi hành vi của mình dựa trên kinh nghiệm của nó. Xã hội – thể hiện trong mối quan hệ xã hội.
Di động – có thể tự di chuyển từ môi trường này sang môi trường khác. Ủy quyền – có thể hành động với tư cách của một ai đó hoặc một cái gì đó, có nghĩa là hành động như một người đại diện hoặc hành động vì lợi ích của một vài thực thể nào đó. Chủ động – Không đơn giản là chỉ tác động trở lại tới môi trường mà hành động có chủ đích để đạt được mục tiêu. Thông minh – hình thức hóa các trạng thái của agent (ví dụ: niềm tin, mục tiêu, các dự kiến, các giả định.) bằng tri thức và các tương tác với các agent khác sử dụng ngôn ngữ tượng trưng z 4 Suy luận – có thể lựa chọn một hành động dựa trên các mục tiêu chính và sự hiểu biết về một hành động cụ thể có khả năng giúp nó tiến đến gần mục tiêu hơn.
Không thể dự báo trước - có thể hành động theo cách nào đó không hoàn toàn có thể dự đoán trước được thậm chí dù đã biết trước tất cả các điều kiện ban đầu. Thời gian liên tục – là một quá trình chạy liên tục. Rõ ràng và giải nghĩa được – khi được yêu cầu thì phải rõ ràng và trong suốt, khi cần có thể cung cấp nhật ký ghi lại các hành động của nó. Phối hợp – có thể thực hiện một số hành động trong một môi trường dùng chung với các agent khác.
Hợp tác – có thể phối hợp với các agent khác để đạt được mục đích chung. Các agent không đối kháng nhau sẽ thành công hoặc thất bại cùng nhau (sử dụng thuật ngữ “Cộng tác” đồng nghĩa với “Hợp tác”). Cạnh tranh – có thể phối hợp với các agent khác trừ khi thành công của một agent dẫn đến thất bại của các agent khác (trái nghĩa của “Hợp tác”) Mạnh – khả năng giải quyết các lỗi và các dữ liệu không đầy đủ. Đáng tin cậy – trung thực.
Cho đến nay chưa có một định nghĩa chuẩn nào về agent, hầu hết mọi người đều đồng ý rằng giới hạn về agent cho các hệ thống công nghệ thông tin sẽ không hữu ích nếu không có ít nhất 3 tính chất đầu tiên ở trên. Những người khác đòi hỏi các agent công nghệ thông tin phải có tất cả các tính chất trên với các mức độ khác nhau. Thường thì một agent công nghệ thông tin được coi là một thực thể tự trị có thể tương tác với môi trường của nó. Nói cách khác, nó phải có khả năng quan sát môi trường và hành động theo môi trường của nó.2 Một số agent điển hình Các agent trong các hệ thống công nghệ thông tin có những yêu cầu riêng: chúng phải thực thi giống như phần mềm, phần cứng, người máy, hoặc kết hợp của cả z 5 3.
Theo James Odell [25], những người phát triển agent đã xác định một số dạng agent điển hình trong phát triển hệ thống công nghệ thông tin như sau: Các Agent phần mềm: Các agent phần mềm là một kiểu agent riêng. Một agent phần mềm là một thực thể phần mềm tự trị có thể tương tác với môi trường của nó. Điều này có nghĩa chúng là các thực thể tự trị và có thể tác động trở lại các thực thể khác, bao gồm cả con người, máy móc và các agent phần mềm khác trong nhiều môi trường và nền tảng (platforms) khác nhau. Về cơ bản, các agent phần mềm được thiết kế mẫu cho phần mềm.
Phát triển các công cụ, ngôn ngữ và môi trường để hỗ trợ mẫu dựa trên agent. Tuy nhiên, có thể thực thi các mẫu thiết kế agent sử dụng các công cụ, ngôn ngữ và môi trường hướng đối tượng hoặc bất kỳ công cụ, ngôn ngữ và môi trường nào khác mà có khả năng hỗ trợ các thực thể phần mềm tự trị, tương tác và thích nghi. Chủ yếu các công cụ dựa trên agent vẫn được ưa thích hơn bởi vì các mẫu thiết kế agent là có sẵn trong phần mềm hơn là được lập trình. Nói cách khác, có thể sử dụng công nghệ đối tượng cho công nghệ dựa trên agent, nhưng tính tự trị, tương tác và thích nghi của agent hiện không được hỗ trợ trong công nghệ hướng đối tượng.
Trong khi đó các thuộc tính này có thể (và đang) được thêm vào cách tiếp cận hướng đối tượng thì các mẫu thiết kế cho các agent và phần mềm dựa trên agent vẫn chưa được hỗ trợ hoàn toàn và trực tiếp. Các agent tự trị: Khi một agent có một sự độc lập nào đó với điều khiển bên ngoài, nó được coi là tự trị.Ở một mức độ nào đó, các agent có thể hoạt động mà không cần sự can thiệp hoặc gọi trực tiếp từ bên ngoài. Nếu không có quyền tự trị, một agent sẽ không còn là một thực thể động nữa mà giống như một đối tượng thụ động như một bản ghi trong một bảng quan hệ. Các agent tương tác : Các agent tương tác có thể tương tác với cả môi trường và các thực thể khác và có thể được biểu diễn theo cấp bậc.
Ở một mức độ nào đó, các thông điệp đối tượng (lời gọi hàm) có thể được coi là dạng cơ bản nhất của tương tác, mức độ tương tác phức tạp hơn sẽ gồm các agent có khả năng phản ứng lại các sự kiện đáng chú ý bên trong môi trường. Các tương tác phức tạp hơn ở các hệ thống trong đó các agent đã z 6 bận tham gia trong các tương tác song song, phức tạp với các agent khác. Ở mức độ này các agent bắt đầu hành động giống như một xã hội. Cuối cùng, mức độ tương tác phức tạp nhất khi các hệ thống bao hàm nhiều agent hỗn tạp khác nhau có thể phối hợp thông qua sự cộng tác và/hoặc cạnh tranh (ví dụ như thỏa thuận và lập kế hoạch).
Các agent thích nghi: Một agent được xem là thích nghi nếu nó có khả năng đáp ứng lại các agent khác và/hoặc môi trường của nó ở một vài mức độ nào đó. Ít nhất thì nó phải phản ứng lại một kích thích đơn giản – để tạo một đáp ứng tiền định, trực tiếp tới một sự kiện cụ thể hoặc tín hiệu môi trường. Bộ điều nhiệt, các cảm biến tự động, và các máy tìm kiếm đơn giản thuộc loại agent thích nghi. Tiến xa hơn agent phản ứng đơn giản là các agent có khả năng suy luận.
Các agent suy luận này phản ứng lại bằng cách đưa ra các suy luận và bao gồm cả các agent chẩn đoán bệnh và một số loại agent khai phá dữ liệu. Dạng nâng cao hơn của agent thích nghi là có khả năng học và tiến hóa. Các agent này có thể thay đổi hành vi của chúng dựa theo kinh nghiệm. Các kỹ thuật phần mềm phổ biến cho việc học là các mạng nơ ron, các luật Bayesian, các luật phân lớp….
Ví dụ các agent học là các agent có thể phân tích giọng nói, nhận dạng và theo dõi mục tiêu. Một kỹ thuật chính cho các agent tiến hóa thường gồm các giải thuật di truyền và lập trình di truyền. Có thể phát sinh ra các agent để phù hợp với mục tiêu đặt ra. Ví dụ, kế hoạch hành động, và các chương trình phần mềm tối ưu hơn bất kỳ sản phẩm nào do con người làm ra trong một khoảng thời gian vừa phải.
Agent di động : Trong khi các agent tĩnh tồn tại như một quy trình đơn lẻ trên một máy chủ thì các agent di động có thể lấy lại và di chuyển mã của chúng tới một máy chủ mới tại đó chúng có thể tiếp tục thực thi. Quan điểm ở mức khái niệm thì các agent di động như vậy có thể được xem là lưu động, động, không định cư, lang thang, hoặc di cư. Ví dụ, nếu một agent muốn lấy thông tin từ một vài nguồn khác nhau trên các platform khác nhau, nó có thể gửi thông tin yêu cầu đến mỗi platform sử dụng kỹ thuật tương đương với một RPC (remote procedure call - gọi thủ tục từ xa). Tuy nhiên, nếu khối lượng thông tin ứng với site ở xa là lớn thì cần phải xem xét vấn đề lưu lượng và băng thông.
Hơn nữa, agent có thể xử lý dữ liệu từ xa hiệu quả hơn các dịch vụ như vậy tại site ở z 7 xa. Việc di chuyển agent tới một trong nhiều platform khác nhau có thể sẽ hiệu quả hơn là cách xử lý dữ liệu từ xa. Các agent phối hợp : Các tổ chức nhân sự tồn tại chủ yếu để phối hợp các hành động của nhiều cá nhân vì một số mục tiêu. Mục tiêu này có thể là tạo ra các kết cấu như các đơn vị kinh doanh sinh lãi, các tổ chức từ thiện, các công ty ba lê hoặc các liên hiệp nhỏ.
Tương tự như vậy, các hệ thống bao gồm nhiều agent có thể sinh lợi theo cùng kiểu mẫu đó. Một số ứng dụng phổ biến nhất về agent phối hợp là dây chuyền cung cấp, lập lịch, giải quyết vấn đề, thương lượng hợp đồng, và thiết kế sản phẩm. Nếu không có sự phối hợp ở mức độ nào đó, các hệ thống như vậy không thể tồn tại, dù là người hay là các hệ thống dựa trên agent.