Hệ thống lọc và sắp xếp tin tức theo ngữ cảnh người dùng

  • Số trang: 62 |
  • Loại file: PDF |
  • Lượt xem: 16 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN NGỌC ĐỊNH HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG LUẬN VĂN THẠC SĨ Hà Nội - 2008 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN NGỌC ĐỊNH HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG Ngành: Công nghệ thông tin Mã số: 1.01.10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VIỆT HÀ Hà Nội - 2008 MỤC LỤC MỞ ĐẦU.....................................................................................................................................1 CHƯƠNG 1.KHÁI NIỆM VỀ AGENT.....................................................................................3 1.1.Agent là gì?...........................................................................................................................3 1.2.Phân loại agent......................................................................................................................5 1.2.1.Phân loại agent theo độ thông minh...................................................................................5 1.2.2.Phân loại agent theo tính di động ......................................................................................5 1.2.3.Phân loại theo khả năng giao tiếp và cộng tác...................................................................6 1.3.Phân loại hệ thống agent.......................................................................................................7 1.3.1.Phân loại hệ thống theo số lượng agent.............................................................................7 1.3.2.Phân loại hệ thống theo số lượng nơi cư trú (môi trường).................................................7 CHƯƠNG 2.CÔNG NGHỆ PHẦN MỀM HƯỚNG AGENT...................................................8 2.1.Cách tiếp cận hướng agent trong công nghệ phần mềm.......................................................8 2.1.1.Phân chia hướng agent.....................................................................................................10 2.1.2.Trừu tượng hóa hướng agent............................................................................................11 2.1.3. Sự cần thiết cho việc quản lý linh hoạt sự thay đổi của cấu trúc tổ chức.......................11 2.2.So sánh hướng agent với hướng đối tượng và phần mềm đóng gói....................................12 2.3.Vòng đời phát triển của phần mềm hướng agent................................................................13 2.3.1.Mô hình hóa hệ thống agent.............................................................................................13 2.3.2.Phân tích thiết kế..............................................................................................................14 2.3.3.Kiểm thử...........................................................................................................................15 CHƯƠNG 3.PHƯƠNG PHÁP THIẾT KẾ & PHÁT TRIỂN HỆ THỐNG ĐA AGENT PASSI...............17 3.1.1.Giới thiệu về PASSI.........................................................................................................17 3.2.Mô tả yêu cầu......................................................................................................................18 3.3.Xác định các agent..............................................................................................................18 3.4.Xác định vai trò...................................................................................................................19 3.5.Xác định các tác vụ.............................................................................................................19 3.6.Mô tả Ontology - Ontology Description.............................................................................21 3.7.Định nghĩa cấu trúc đa agent...............................................................................................30 3.8.Định nghĩa cấu trúc của từng agent.....................................................................................31 3.9.Mô tả các hành vi trong hệ thống đa agent.........................................................................31 3.10.Mô hình mã chương trình - Code Model..........................................................................32 3.11.Mô hình triển khai Deployment Model.............................................................................32 CHƯƠNG 4.XÂY DỰNG HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG......33 4.1.Mô tả bài toán.....................................................................................................................33 4.1.1.Các Use Case hệ thống.....................................................................................................34 4.1.2.Xác định các Agent..........................................................................................................37 4.1.3.Xác định vai trò của các agent.........................................................................................38 4.1.4.Xác định các tác vụ của các agent....................................................................................41 4.2.Mô hình xã hội các agent....................................................................................................43 4.2.1.Mô tả Ontology lĩnh vực..................................................................................................43 4.2.2.Mô tả Ontology truyền thông...........................................................................................46 4.3.Mô hình thực thi các agent..................................................................................................47 4.3.1.Các trúc các agent (đa agent)...........................................................................................47 4.3.2.Định nghĩa cấu trúc từng agent........................................................................................48 4.4.Cài đặt và triển khai............................................................................................................50 4.5.Một số giao diện..................................................................................................................50 4.6.Thử nghiệm và đánh giá......................................................................................................51 KẾT LUẬN ..............................................................................................................................52 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Cụm từ viết đầy đủ ACL Agent Communication Language AI Artificial Intelligence AORML Agent - Object - Relationship Modeling Language AUML Agent UML COD Communication Ontology Description DOD Domain Ontology Description FIPA Foundation for Intelligence Physical Agent HTML HyperText Markup Language HTTP Hypertext Transfer Protocol JADE Java Agent DEvelopment framework LAN Local Area Network LORA Logic Of Rational Agents PASSI Process for Agent Societies Specification and Implementation RDF Resource Description Framework REV Remote Evaluation RPC Remote Procedure Call UML Unified Modeling Language WAN Wide Area Network 1 MỞ ĐẦU Hiện nay với sự phát triển các kênh thông tin trên Internet, số lượng tin tức hàng ngày rất nhiều và phong phú. Người dùng thường mất rất nhiều thời gian để lướt qua các kênh thông tin này để thu lượm những thông tin về các lĩnh vực mình quan tâm mà thông thường thì lượng thông tin này thường chiếm một phần nhỏ trong lượng tin tức được xuất bản mỗi ngày. Thực tiễn đề ra yêu cầu có hệ thống tự động thu thập các tin tức (báo chí) trên Internet, sắp xếp chúng sao cho người dùng có thể tiếp cận được thông tin mình quan tâm. Đó là một hệ thống có tính thông minh: +Có khả năng học hỏi (học để biết thông tin nào là gần với sở thích người dùng) +Có khả năng phản ứng với môi trường (tự động nhận biết khi có thông tin mới, thông báo với người dùng nếu có thông tin mà người dùng quan tâm) +Có khả năng đáp ứng cho nhiều người dùng trên hệ thống. +Có khả năng dễ nâng cấp hệ thống về chất lượng cũng như về khả năng đáp ứng của hệ thống. Với bài toán trên hệ thống là một tập hợp các vấn đề: +Thu thập tin tức +Trích trọn thông tin +Phân loại thông tin +Quản lý thông tin về người dùng Về tổng thể, đây là một bài toán phức tạp khi kết hợp nhiều các yêu cầu khác nhau với nhiều rằng buộc giữa các yêu cầu. Việc chia nhỏ các vấn đề sẽ giúp ta giải quyết bài toán một cách đơn giản hơn rất nhiều. Và chia để trị cũng là tư tưởng của phát triển phần mềm hướng agent. Với khả năng phân chia không gian vấn đề và tổ chức tốt các mối quan hệ phụ thuộc cũng như các tương tác trong một hệ thống phức tạp mà Công nghệ phần mềm hướng agent là một cách tiếp cận mới cho các hệ thống phức tạp và đó cũng là lý do mà tôi đã chọn hướng agent để giải quyết bài toán này. 2 Agent là một cách tiếp cận mới với các đặc điểm: phân tán, tự trị, thông minh, hoạt động tin cậy, thông minh… có thể đáp ứng được những yêu cầu ngày càng phức tạp của các hệ thống phần mềm hiện đại. Theo tư tưởng của công nghệ phần mềm hướng agent, hệ thống phần mềm như một tập các agent, mỗi agent có tính thông minh, tự trị, tương tác, di động và có mục tiêu hoạt động cụ thể. Sự phát triển của công nghệ agent đang đặt ra một tương lai hứa hẹn cho việc phát triển ngành công nghệ phần mềm ngày một tốt hơn. Công nghệ agent sẽ ngày càng góp phần nhiều hơn nữa trong công nghiệp phần mềm của thế giới nói chung và của nước ta nói riêng. Mục đích của luận văn này là việc xây dựng hệ thống phát triển hệ thống lọc và sắp xếp tin tức theo ngữ cảnh người dùng đáp ứng các khả năng thu thập nội dung các bài viết trên các website tin tức tiếng Việt trên Internet và sắp xếp kết quả hiển thị thứ tự các bài viết theo sở thích thói quen của người dùng dựa trên việc ứng dụng công nghệ Agent. Cấu trúc các phần còn lại của luận văn như sau: Chương 1 trình bày các kiến thức cơ sở về tác tử (agent), chương 2 đi sâu vào công nghệ phần mềm hướng agent. Chương 3 trình bày phương pháp thiết kế và phát triển hệ thống đa agent PASSI Process for Agent Societies Specification and Implementation [1]. Chương 4 trình bày Hệ thống phát triển hệ thống lọc và sắp xếp tin tức theo ngữ cảnh người dùng được thiết kế sử dụng phương pháp PASSI. 3 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. 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 5 1.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.2.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. 1.2.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] 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ề. RPC Tham số(Dữ liệu) Máy trạm Máy chủ Kết quả(Dữ liệu) Máy trạm Hàm(Mã chương trình, tham số dữ liệu) Máy chủ REV Máy chủ 2 Agent di động Kết quả(Dữ liệu) Máy chủ 1 Di chuyển 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. 1.2.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 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. 1.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.3.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. 1.3.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. 8 CHƯƠNG 2 CÔNG NGHỆ PHẦN MỀM HƯỚNG AGENT Ngày nay các hệ thống do các yêu cầu ngày càng phức tạp về nghiệp vụ, về khả năng tính toán, hệ thống phần mềm ngày càng đòi hỏi sự phức tạp hơn. Việc thiết kế và xây dựng hệ thống phần mềm gặp rất nhiều khó khăn. Để giải quyết vần đề khó khăn này có nhiều các mô hình phát triển phần mềm (lập trình thủ tục, lập trình cấu trúc, lập trình hướng đối tượng…). Mô hình phát triển phần mềm ngày càng làm cho quá trình phát triển phần mềm được dễ dàng hơn, giảm tính phức tạp của ứng dụng. Tuy nhiên các cách tiếp cận hiện tại chưa đáp ứng được yêu cầu của sự thay đổi phần mềm theo sự biện đổi của môi trường. Vòng đời của một phần mềm ngày càng ngắn và nhanh lỗi thời. Sự biến đổi liên tục yêu cầu có phương pháp mới trong quá trình làm phần mềm nhằm có những giải pháp linh hoạt cho các ứng dụng lớn, phức tạp và có yêu cầu biến đổi theo thời gian. Công nghệ hướng agent hứa hẹn một công nghệ phát triển phần mềm có thể đáp ứng được các yêu cầu này 2.1 Cách tiếp cận hướng agent trong công nghệ phần mềm Một hệ thống phức tạp bản chất là một tập các thành phần con có liên quan với nhau, mỗi một thành phần bản thân chúng lại là một hệ thống phân cấp. Các hệ thống con có thể tương tác với nhau và bản thân các thành phần của hệ thống con cũng tương tác với nhau. Cách thức tổ chức quan hệ là không cố định, nó có thể thay đổi theo thời gian. Hình 3 minh họa về một hệ thống phức tạp với nhiều các thành phần là các hệ thống con. Mỗi hệ thống con gồm nhiều các thành phần, và các thành bên trong một hệ thống con được liên kết thông qua các liên kết thường xuyên và tương tác giữa các hệ thống con là tương tác không thường xuyên. Để giải quyết bài toán đó đòi hỏi phải có một công cụ cũng như phương pháp đủ mạnh để quản lý sự phức tạp này[6]: Phân tách (decomposition): Giải pháp cơ bản nhất để xử lý bất kỳ một vấn đề phức tạp bằng cách chia nó ra thành nhiều các thành phần nhỏ và dễ quản lý hơn. Mỗi một 9 thành phần trong số đó có thể xử lý độc lập một cách tương đối. Phân tách giúp xử lý vấn đề phức tạp vì nó giúp cho người thiết kế chỉ tập trung lần lượt từng vấn đề mà chứ không phải tất cả các vần đề cùng một lúc Trừu tượng hóa (abstraction): Là quá trình định nghĩa một mô hình đơn giản hóa cho hệ thống, tập trung nhấn mạnh một số chi tiết hoặc thuộc tính. Kỹ thuật này giúp tập trung vào một vấn đề tổng quan chứ không đi vào chi tiết cụ thể của từng vần đề, vì vậy nó giúp tiết kiệm thời gian. Tổ chức (Organisation): Tiến trình xác định và quản lý các quan hệ giữa các thành phần với nhau. Quản lý các qua hệ giúp người thiết kế giải quyết vấn đề phức tạp theo hai cách: • Nhóm một số thành phần cơ bản thành một nhóm và coi chúng như một đơn vị cấp cao hơn trong quá trình phân tích. • Cung cấp các đặc tả các quan hệ giữa các đơn vị ở cấp cao đó. Hệ thống con Thành phần hệ thống con Quan hệ bao gồm Tương tác thường xuyên Tương tác không thường xuyên Hình 3: Mô hình về hệ thống phức tạp 10 Từ các đặc tính của hệ thống phức tạp ở trên và các giải thích về agent ở mục 2 ta có thể nghĩ đến tại sao kỹ thuật hướng agent có thể phù hợp để phát triển các hệ thống phần mềm. Kỹ thuật này cơ bản gồm 3 phần: Phân chia hướng agent là cách phân chia hiệu quả không gian vấn đề của hệ thống phức tạp (phần 2. 1. 1). Trừu tượng hóa hướng agent là cách mô tả của mô hình hóa hệ thống phức tạp (phần 3. 1. 2). Xác định và tổ chức quản lý các quan hệ hướng agent là phân chia hiệu quả các phục thuộc và tương tác trong hệ thống phức tạp (phần 2. 1. 3). 2.1.1 Phân chia hướng agent Các hệ thống phức tạp gồm một số các hệ thống con có quan hệ với nhau được tổ chức phân cấp. Tại bất kỳ một cấp nào, các hệ thống con cũng phải cùng nhau thực hiện để đạt được mục tiêu tổng thể của toàn hệ thống. Hơn thế nữa các thành phần cũng phải kết hợp với nhau để phân chia các chức năng toàn cục trong hệ thống con. Dựa vào phân tích trên, thì đó là một cách module hóa một cách bản chất các thành phần. Trong các thành phần việc module hóa các thành phần trong giới hạn của mục tiêu mà chúng cần hoàn thành. Hay nói cách khác, mỗi một thành phần có thể hoàn thành một hoặc nhiều các mục tiêu. Hiện nay, xu hướng tăng tính cục bộ và bao gói trong trong các thành phần được phân chia, làm cho các thành phần được phân chia độc lập hơn, ít phụ thuộc vào các thành phần khác hơn. Áp dụng lý thuyết này cho việc phận chia các mục tiêu cần đạt được có nghĩa là các thành phần độc lập có thể có các luồng điều khiển riêng của chúng và chúng có thể nắm được thông tin và khả năng giải quyết các vấn đề gặp phải trong quá trình thực hiện các mục tiêu. Do cách thành phần hoạt động trong môi trường mà thông tin chỉ mang tính cục bộ nên chúng phải có khả năng xác định, vào thời thời chạy chúng cần xác định hành động nào cần phải thực hiện để đạt được mục tiêu. Nói một cách ngắn gọn, các thành phần cần phải tự quyết định các hành động. Để các thành phần tự trị và chủ động hoàn thành các mục tiêu của chúng, chúng cần tương tác với các thành phần khác. Nhưng do tính phức tạp vốn có của hệ thống nên không dễ gì xác định được mối quan hệ có thể xảy ra lúc nào. Vì vậy cố gắng dự đoán hoặc phân tích tất cả các khả năng có thể sảy ra là một việc làm vô ích trong quá trình thực hiện phân tích. Vì vậy, cân phải cung cấp các thành phần có khả năng tự quyết định về phạm vi tương tác của chúng trong quá trình chúng hoạt động. Việc các thành phần tự đưa ra được các quyết định tại thời điểm chạy giúp quá trình phân tích các hệ thống phức tạp thành các hệ thống con dễ dàng hơn. Vì các rằng buộc giữa các thành phần được trừu tượng hóa ở mức cao hơn cụ thể chúng trao đổi với nhau thông qua ngôn ngữ truyền thông agent ở mức cao, thông điệp trao đổi mang tính tri thức nên các thành phần không phải đưa ra các giao thức để trao đổi thông tin với nhau. Các agent chỉ trao đổi với nhau ở mức thông tin còn quyết đinh hành động vẫn do nội tại agent quyết định nhằm đạt được mục tiêu cụ thể tại thời điểm đó. 11 Tóm lại phân chia hướng agent hướng phân chia hệ thống phức tạp thành các thành phần có khả năng tự trị, tương tác và mỗi thành phần có một hoặc nhiều mục tiêu cụ thể nhằm làm cho việc phát triển hệ thống phức tạp trở nên dễ dàng hơn. 2.1.2 Trừu tượng hóa hướng agent Một phần quan trọng trong tất cả các cách thiết kế là đi tìm một mô hình chuẩn cho việc biểu diễn vấn đề. Thông thường sẽ có nhiều cách và các tác vụ khác nhau được để chọn lấy một cách thích hợp. Quá trình làm tốt hơn cho một trường hợp cụ thể trong quá trình thiết kế phần mềm, các trừu tượng tốt nhất trừu tượng giảm tối thiểu sự khác nhau về ngữ nghĩa giữa các đơn vị vấn đề được phân tích và cấu trúc biểu diễn trong mô hình giải pháp. Trong trừu tượng hóa hướng agent, vấn đề ở đây được mô tả gồm các hệ thống con, các thành phần hệ thống con, các tương tác và các quan hệ có tổ chức. Tiếp đến thực hiện lặp quá trình: • Coi các thành phần của hệ thống con như là một agent. • Sự ảnh hưởng qua lại giữa các hệ thống và giữa các thành phần kết hợp được thể hiện một cách tự nhiện dưới dạng các tương tác mang tính xã hội mức cao: “tại bất kỳ một cấp trừ tượng hóa nào cũng tìm thấy một tập các đối tượng có thể cộng tác với nhau để đạt được mục tiêu của mức quan niệm cao hơn. Cách nhìn nhận này phù hợp với cách tiếp cận hướng agent. Hệ thống các agent được mô tả là “kết hợp các hành động để giải quyết vấn đề chung” hoặc “thượng lượng để giải quyết vấn đề”. Do vậy tập các khái niệm hướng agent hoàn toàn thích hợp cho việc nắm bắt các loại tương tác xảy ra trong hệ thống phức tạp • Các hệ thống phức tạp bao gồm sự thay đổi của những quan hệ giữa các thành phần. Chúng đòi hỏi tập hợp các thành phần được xem xét như một đơn vị khái niệm đơn khi nhìn nhận từ các cấp độ trừu tượng khác nhau. Một lần nữa cách, quan điểm này cũng rất phù hợp với khái niệm hướng agent. Và vì vậy những điều kiện thuận lợi được cung cấp đặc thì để biểu diễn một cách rõ ràng các quan hệ có tổ chức. Các giao thức tương tác được phát triển để định hình các nhóm. Cuối cùng, các cấu trúc sẵn sàng cho các mô hình. Điểm cuối cùng này thể hiện rõ nét quan hệ để biểu diễn các hệ thống con khi mà chúng không có cái gì hơn một nhóm các thành phần cùng nhau thực hiện hoàn thành một mục tiêu. 2.1.3 Sự cần thiết cho việc quản lý linh hoạt sự thay đổi của cấu trúc tổ chức Các hệ thống phức tạp bao gồm một sự đa dạng các quan hệ có tổ chức. Các quan hệ ở đây quan trọng hai lý do chính: Thứ nhất, nó cho phép số các thành phần phân chia có thể nhóm với các thành phần khác và được xem xét như một thực thể khái niệm. Thứ 12 hai, nó cho phép các liên kết cấp độ cao giữa các thực thể khác nhau được mô tả. Dựa trên ảnh hưởng và tác động của các quan hệ có tổ chức và các cấu trúc trong hành vi hệ thống thì điều quan trọng là phải cung cấp các hỗ trợ để xác định và quản lý chúng một cách linh hoạt. Và hơn thế nữa, do các quan hệ thường xuyên thay đổi nên khả năng tương thích với tình huống cũng rất cần thiết. Các tổ chức là các thực thể lứp đầu tiên trong hệ thống agent. Do đó, các cấu trúc rõ ràng và cơ chế linh hoạt là trung tâm của mô hình agent. Những yếu tố này khi đi cùng các kỹ thuật tính toán cho phép các hệ thống hướng agent bao quát hai vấn đề bản chất của hệ thống phức tạp. Thứ nhất, định nghĩa về thành phần cơ sở có thể thay đổi tùy thuộc vào nhu cầu của người quan sát. Do đó ở một mức độ nào đó, toàn bộ các hệ thống con có thể được coi nhu một thực thể đơn lẻ, tập hợp các agent có thể được coi là các thành phần cơ sở của một một mức độ trừu tượng cao hơn. Quá trình lặp lại cho đến khi toàn bộ hệ thống được hiểu một cách thấu đáo. Thứ hai, các cấu trúc đó cung cấp một loạt các dạng trung gian có thể mở rộng, đây là yếu tố cần thiết cho việc phát triển nhanh các hệ thống phức tạp. Và nó còn có nghĩa rằng các agent độc lập hoặc các nhóm tổ chức có thể phát triển một cách tương đối độc lập và sau đó thêm dần chúng vào hệ thống. 2.2 So sánh hướng agent với hướng đối tượng và phần mềm đóng gói So sánh giữa công nghệ phận mềm hướng agent và hướng đối tượng ta thấy có nhiều điểm tương đồng. Các đồi tượng, agent cùng có khác thuộc tinh và phươg thức, chúng trao đổi với nhau qua việc yêu cầu phượng thức hoặc gửi thông điệp. hoặc sử dụng các khái niệm hướng đối tượng cổ điển như kế thừa, bao gói dữ liệu hoặc kết hợp. Tuy vậy agent có chứa rất nhiều các thuộc tính khác với đối tượng. Vì vậy phương pháp hướng đối tượng có những hạn chế nhất định trong việc áp dụng vào môi trường hướng agent. Ngoài các thuộc tính và phương thức, agent còn có các trạng thái tinh thần như tin tưởng, mong muốn, ý định và các khai niệm như kế hoạch, mục tiêu. Agent chứa dựng một thành phần chức năng và một số mẫu các hành vi. Một agent giống một hệ thống con hơn là một đối tượng đơn lẻ. Hơn thế nữa, agent mang tính chủ động trong cách hành động nhằm đạt được mục tiêu đề ra chúng tự cảm nhận sự thay đổi môi trường, tự kích hoạt một cách chủ động (trong khi đối tượng chỉ được kích hoạt khi được yêu cầu phương thức hoặc gửi thông điệp). Các đối tượng trao đổi với nhau thông qua cách gửi các thông điệp, trong khi đó các agent giao tiếp với nhau thông qua giao thức hội thoại phức tạp mang tính ngữ nghĩa. So với phần mềm đóng gói - một công nghệ liên quan đến hệ thống hướng đối tượng. Phần mêm đóng gói là một thành phần độc lập được thiết kế sao cho có khả năng tái sử dụng ở mức cao. Khi đó quá trình phát triển phần mềm chỉ là ghép nối các thành 13 phần có sẵn lại với nhau để tạo ra phần mềm theo yêu cầu. Cũng giống như phần mềm bao gói đều được phát triển từ công nghệ hướng đối tượng, chúng đều kế thừa được thuộc tính của đối tượng, các đối tượng quan hệ, các agent cũng chứa đựng các đối tượng và các thành phần nhưng hơn nữa các agent cũng chia sẽ các thành phần, có tính tái sử dụng nhưng khác ở chỗ, phần mềm đóng gói không có khả năng tự trị và cũng như các đối tượng chúng không có tính chủ động và các hành vi mang tính xã hội. Có thể nói rằng kỹ thuật hướng agent là một sự phát triển phát triển mở rộng của các mô hình khác. 2.3 Vòng đời phát triển của phần mềm hướng agent Qua mô tả về cách tiếp cận phần mềm hướng agent và sau khi so sánh kỹ thuật hướng agent và một số kỹ thuật phát triển phần mềm khác ta đã hiểu được tai sao phần mềm hướng agent là một cách tiếp cận tốt cho quá trình phát triển các hệ thống phức tạp. Cũng như các quy trình phát triển phần mềm nói chung, quy trình phát triển phần mềm hướng agent cũng phải trải qua các giai đoạn chung bao gồm đặc tả (định nghĩa các chức năng, rằng buộc, các yêu cầu), quá trình thiết kế và cài đặt ( thực thi việc tạo ra sản phẩm) và kiểm định chất lượng sản phẩm và quá trình bảo trì, nâng cấp phần mềm. 2.3.1 Mô hình hóa hệ thống agent Mô hình hệ thống agent cần có các ngôn ngữ, ký pháp và ngôn ngữ thích hợp để mô tả lại một cách rõ ràng về một hệ thống. Do các agent cũng có nét tương đồng với đối tượng nên hầu hết các phương pháp mô hình hóa đều dựa trên các công cụ có nguồn gốc từ hướng đối tượng. Điển hình và nổi bật nhất hiện nay là ngôn ngữ UML (Unified Modeling Language). Tuy nhiên phiên bản hiện tại của UML không cung cấp các ký pháp để mô hình hóa các tính năng đặc biệt của agent. Agent-UML (AUML) là một ngôn ngữ phát triển mở rộng của UML nhằm sử dụng để mô hình hóa các hệ thống agent. AUML mở rộng một số sơ đồ như: Mở rộng sơ đồ tuần tuần tự của UML để đặc tả các giao thức tương tác giữa các agent bằng cách cung cấp các phương thức, đường sống (life-line), các rằng buộc và được gọi là sơ đồ tương tác. Mở rộng sơ đồ lớp sang sơ đồ các agent. Trong đó mỗi agent được coi như một gói gồm nhiều lớp trong đó lớp agent làm trung tâm và các lớp hành vi của agent. Lớp agent bao gồm có một số phần tử như: • Tên của agent được sử dụng để phân biệt với các agent khác • Mô tả trạng thái • Các hành động có thể thực hiện gồm hành động mang tính phản ứng và hành động mang tính chủ động 14 • Các phương thức cài đặt các dịch vụ • Mô tả khả năng mà agent có thể làm để các agent khác có thể hiểu và tương tác với agent • Tổ chức: đặc tả vai trò của agent và những rằng buộc của agent trong một nhóm • Máy tự động (automata) điều khiển các hành vi của agent Một số mở rộng khác như dụng sơ đồ hoạt động (activity diagram) để xác định vai trò của agent, Mô hình triển khai để thể hiện tinh di động của agent … Hiện tại AUML hiện vẫn đang ở giai đoạn nghiên cứu và thử nghiệm. Tuy nhiên vơi sự phát triển của kỹ thuật hướng agent đang phát triển mạnh mẽ, AUML cũng đang dần hoàn thiện để có thể cung cấp ngôn ngữ để mô hình hóa các hệ thống phức tạp theo hướng agent 2.3.2 Phân tích thiết kế Có rất nhiều cách tiếp cận cho việc phận tích và thiết kế một hệ thống agent. Các phương pháp này có thể chia làm hai nhánh đó là phương pháp hình thức và phương pháp không hình thức. Phương pháp tiếp cận hình thức trong quá trình phân tích thiết kế là sử dụng các công thức toán học để đặc tả chính xác hệ thống; Sản phẩm của phương pháp này là một đặc tả hình thức được sử dụng cho việc cài đặt hệ thống, kiểm tra sự thỏa mãn yêu cầu người dùng hoặc ước lượng kết quả cuối cùng. Một số phương pháp điển hình như: LORA (Logic Of Rational Agents)[7] sử dụng ngôn ngữ thiết kế MABLE – ngôn ngữ này cho phép kiếm chứng tự động hệ thống agent. Nó dựa trên logic vị từ để biểu diễn miền vấn đề thay đổi liên tục. Ngôn ngữ Z do M. Luck và D’ Inverno M đề xuất[ 8] dùng để đặc tả agent. Ngôn ngữ Z dựa trên logic vị từ dự đoán các hệ số. Trong ngôn ngữ Z định nghĩa agent trong một kiến trúc bốn tầng: Các thực thể - các đối tượng có cùng thuộc tính, các đối tượng - các thực thể kèm theo các khả năng, agent - các đối tượng di cùng mục tiêu và agent tự trị - các agent có khả năng tự hoạt động Phương pháp tiếp cận không hình thức là cách tiếp cận sử dụng ngôn ngữ tự nhiên có cấu trúc và các ký pháp đồ họa là một cách tiếp cận trực quan trong việc đặc tả và thiết kế các hệ thống hướng agent. UML là một ngôn ngữ không hình thức được sử dụng phổ biến trong việc đặc tả và thiết kế các hệ thống hướng đối tượng. Phát triển từ ngôn ngữ này áp dụng cho việc đặt tả và thiết kế hệ thống hướng agent hiện nay có rất nhiều phương pháp như: AORML (Agent - Object - Relationship Modeling Language) do Wagner đề xuất mô tả các thực thể: các agent, các sự kiện, các hành động hoặc một đối tượng. AORML thể hiện quan hệ giữa agent với các sự kiện, hành động hoặc đối 15 tượng thông qua sơ đồ lớp của UML. PASSI (Process for Agent Societies Specification and Implementation) là phương pháp thiết kế và phát triển hệ thống đa agent phát triển từ khi lấy yêu cầu đến viết mã chương trình. Phương pháp này tích hợp các mô hình thiết kế và các khái niệm của cả lập trình hướng đối tượng và các cách tiếp cân trí thông minh nhân tạo. Phương pháp Prometheus hỗ trợ phát triển các agent hướng mục tiêu, cung cấp đầy đủ các pha từ đặc tả yêu cầu, thiết kế cài đặt. Trong một số phương pháp đã nêu trên PASSI là phương pháp khá hoàn chỉnh và tường minh cho việc phát triển hệ thống phức tạp hướng agent. Và đó cũng là phương pháp được áp dụng để phát triển hệ thống HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG trong phần thực nghiệm của luận văn. Chi tiết của phương pháp này sẽ được mô tả trong phần 3 2.3.3 Kiểm thử Việc kiểm thử hệ thống chủ yếu dựa trên lý thuyết hình thức nhằm xác định liệu hệ thống có thỏa mãn các đặc tả ban đầu hay không. Việc áp dụng các phương pháp kiểm thử truyền thống không kiểm soát kiểm thử hệ thống agent sẽ không đạt hiệu quả tốt vì chúng không kiểm tra hết được các đặc tính của agent. Hai cách tiếp cận chính có thể áp dụng kiểm thử hệ thống agent: Tiếp cận tiền đề cho kiểm chứng chương trình được Hoare đề xuất vào cuối những năm 1960. Việc kiểm chứng tiền đề yêu cầu phải có một chương trình cụ thể. Từ chương trình này tạo ra lý thuyết logic biểu diễn các hành vi của chương trình, được gọi là lý thuyết chương trình. Nếu lý thuyết chương trình được biểu diễn bằng ngôn ngữ đặc tả ban đầu thì vần đề kiểm chứng trở thành vần đề chứng minh rằng đặc tả là lý thuyết đã được chứng minh của lý thuyết chương trình. Việc phát triển lý thuyết chương trình được thực hiện bằng cách tiên đề hóa ngôn ngữ cài đặt hệ thống và sử dụng ngôn ngữ đơn giản. Dựa trên việc tiên đề hóa, lý thuyết chương trình có thể được suy ra từ văn bản chương trình một cách hệ thống. Trong hệ thống hướng agent, việc tiên đề hóa được thực hiện bằng cách sử dụng ngôn ngữ lập trình đơn giản như Agent0 của Shoham và CurrentMetaM của Fisher. Tuy nhiên đối với hệ thống phức tạp, việc nắm bắt ngữ nghĩa của thực thi agent không dễ dàng. Nhìn chung cách tiếp cận tiền đề gặp phải những khó khăn hạn chế trong việc chứng minh. Tiếp cận sử dụng kiểm chứng mô hình là kỹ thuật kiểm chứng dựa trên kiểm chứng mô hình được nghiên cứu cùng với logic thời gian và các máy trạng thái. Gải sử rằng Φ là đặc tả của hệ thống, và Π là một chương trình cài đặt đặc tả Φ. Sau đó để xác định liệu Π có cài đặt Φ đúng đắn hay không thì chúng ta tạo ta mô hình MΠ tương ứng cới Π, theo nghĩa này thì MΠ mã hóa tất cả các khả năng có thể xảy ra của Π. Và việc xác
- Xem thêm -