Phân loại agent theo độ thông minh
Một agent cần có độ thông minh nhất định, điều này thể hiện qua khả năng tự giải quyết công việc theo mục tiêu cụ thể một cách độc lập Sự thông minh của agent được đánh giá qua khả năng tự điều khiển hành vi, giao tiếp với các agent khác và khả năng học hỏi Một agent càng thông minh thì càng có thể thực hiện công việc với ít sự can thiệp từ người dùng.
Hình 1: Agent thông minh theo phân loại của Nwana
Một agent mua hàng có khả năng tự động tìm kiếm thông tin về sản phẩm, giao tiếp với các agent bán để thương lượng giá cả, và đưa ra quyết định mua sản phẩm với mức giá thấp nhất.
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]
Khả năng học Khả giao tiếp
Khả tự trị Các agent thông minh
Di động mạnh đề cập đến khả năng của hệ thống trong việc di chuyển cả mã chương trình lẫn 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) đề cập đến khả năng của hệ thống trong việc di chuyển mã chương trình giữa các môi trường thực thi khác nhau Mặc dù mã nguồn có thể đi kèm với một số dữ liệu khởi tạo, nhưng trạng thái thực thi của mã không thể được chuyển giao.
Agent di động đại diện cho sự tiến hóa trong mô hình ứng dụng phân tán, khác biệt so với các mô hình truyền thống như gọi hàm từ xa (RPC) và Đánh giá từ xa (REV) Trong mô hình RPC, máy trạm gửi yêu cầu đến máy chủ để nhận kết quả, trong khi REV cho phép máy trạm gửi mã đến máy chủ và nhận kết quả trả về.
Hình 2: Sự tiến hóa của mô hình agent di động
Hệ thống agent di động mang lại nhiều lợi ích, bao gồm giảm tải mạng bằng cách xử lý dữ liệu ngay tại nơi lưu trữ thay vì chuyển dữ liệu về trung tâm xử lý Điều này giúp khắc phục tình trạng trễ mạng, cho phép thực thi không đồng bộ và tự trị Hệ thống cũng có khả năng thích ứng nhanh với các thay đổi và xử lý tình trạng không đồng nhất, đồng thời nổi bật với khả năng kiểm soát lỗi cao.
Phân loại theo khả năng giao tiếp và cộng tác
Một agent cần có khả năng giao tiếp hiệu quả với môi trường để thực hiện công việc của mình Agent sử dụng ngôn ngữ truyền thông chuẩn hóa để liên lạc với môi trường và các agent khác, đảm bảo mọi agent đều có thể hiểu nhau Các agent cung cấp mô tả về khả năng truy vấn và giao tiếp, giúp các agent khác có thể hiểu và tương tác một cách hiệu quả.
Máy trạm Tham số(Dữ liệu) Máy chủ
Hàm(Mã chương trình, tham số dữ liệu) Kết quả(Dữ liệu)
Máy chủ 1 Di chuyển Máy chủ 2
Agent(Mã nguồn, Dữ liệu, Trạng thái)
Giao tiếp RPC của các agent trong hệ thống càng trở nên quan trọng khi số lượng agent nhỏ tăng lên Việc định nghĩa sẵn các giao tiếp cho mỗi agent không chỉ giúp quá trình phát triển phần mềm trong giai đoạn bảo trì và nâng cấp trở nên dễ dàng hơn, mà còn tăng khả năng tái sử dụng Chẳng hạn, khi xây dựng một agent mua hàng, cần tìm các agent bán hàng với các giao thức đã được mô tả, cho phép agent mua hàng giao tiếp mà không cần biết chi tiết về cách thức hoạt động của agent bán hàng Khả năng bảo trì và nâng cấp được thể hiện qua việc agent bán hàng có thể được cải tiến mà không ảnh hưởng đến hệ thống, đồng thời cho phép tồn tại nhiều loại agent bán hàng cho các lĩnh vực khác nhau.
Phân loại hệ thống agent
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 bao gồm các agent hoạt động độc lập mà không tương tác với nhau, chỉ kết nối với người dùng và tài nguyên Ngược lại, hệ thống đa agent có nhiều agent có khả năng giao tiếp và hợp tác để thực hiện nhiệm vụ chung.
Phân loại hệ thống theo số lượng nơi cư trú (môi trường)
Hệ thống agent có khả năng triển khai trên một hoặc nhiều phần cứng máy tính khác nhau, tạo ra tiêu chí phân loại thành hệ thống đa điểm (multi-node) và đơn điểm (single-node).
Hệ thống đơn điểm hoạt động trên một máy tính duy nhất, trong khi hệ thống đa điểm triển khai trên nhiều máy tính có khả năng giao tiếp qua mạng LAN, WAN hoặc Internet Hệ thống đa điểm không chỉ đảm bảo khả năng truyền thông giữa các máy mà còn thực hiện phân tải hiệu quả, tạo ra môi trường lý tưởng cho các agent di động nhằm tối ưu hóa hiệu suất hệ thống.
NGHỆ PHẦN MỀM HƯỚNG AGENT
Cách tiếp cận hướng agent trong công nghệ phần mềm
Hệ thống phức tạp bao gồm nhiều thành phần con liên quan, mỗi thành phần lại là một hệ thống phân cấp Các hệ thống con tương tác lẫn nhau, và các thành phần bên trong cũng có mối liên kết chặt chẽ Cách tổ chức các mối quan hệ trong hệ thống này không cố định và có thể thay đổi theo thời gian Hình 3 minh họa rõ ràng về cấu trúc của một hệ thống phức tạp với nhiều thành phần và sự tương tác giữa các hệ thống con diễn ra không thường xuyên Để quản lý và giải quyết những thách thức của hệ thống phức tạp này, cần có công cụ và phương pháp mạnh mẽ.
Phân tách (decomposition) là giải pháp cơ bản nhất để xử lý các vấn đề phức tạp bằng cách chia chúng thành những thành phần nhỏ hơn và dễ quản lý hơn Mỗi thành phần có thể được xử lý độc lập, giúp người thiết kế tập trung vào từng vấn đề một cách lần lượt, thay vì phải đối mặt với tất cả các vấn đề cùng lúc Phân tách không chỉ làm giảm độ phức tạp mà còn nâng cao hiệu quả trong quá trình giải quyết vấn đề.
Trừu tượng hóa là quá trình tạo ra một mô hình đơn giản hóa cho hệ thống, nhấn mạnh vào những chi tiết và thuộc tính quan trọng Kỹ thuật này cho phép người dùng tập trung vào vấn đề tổng quát, tránh đi vào những chi tiết cụ thể, từ đó tiết kiệm thời gian và nâng cao hiệu quả giải quyết vấn đề.
Tổ chức là quá trình xác định và quản lý các mối quan hệ giữa các thành phần khác nhau Việc quản lý các mối quan hệ này hỗ trợ người thiết kế trong việc giải quyết những vấn đề phức tạp một cách hiệu quả.
• 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ình 3: Mô hình về hệ thống phức tạp
Tương tác không thường xuyên
Hệ thống conThành phần hệ thống conQuan hệ bao gồmTương tác thường xuyên
Kỹ thuật hướng agent là phương pháp hiệu quả để phát triển các hệ thống phần mềm phức tạp, bao gồm ba phần chính: Phân chia hướng agent giúp tối ưu hóa không gian vấn đề của hệ thống; Trừu tượng hóa hướng agent cung cấp mô hình hóa cho hệ thống phức tạp; và Xác định cùng tổ chức quản lý các quan hệ hướng agent cho phép phân chia hiệu quả các phụ thuộc và tương tác trong hệ thống.
Các hệ thống phức tạp bao gồm nhiều hệ thống con có mối quan hệ phân cấp, và để đạt được mục tiêu tổng thể, các hệ thống con phải hoạt động đồng bộ Mỗi thành phần trong hệ thống cần được module hóa để hoàn thành các mục tiêu cụ thể, với xu hướng tăng cường tính cục bộ và bao gói, giúp các thành phần độc lập hơn và giảm sự phụ thuộc lẫn nhau Điều này cho phép các thành phần tự quyết định hành động cần thực hiện để đạt được mục tiêu, đồng thời tương tác với các thành phần khác Tuy nhiên, do tính phức tạp của hệ thống, việc dự đoán tất cả các mối quan hệ có thể xảy ra là không khả thi Vì vậy, cần thiết phải cung cấp cho các thành phần khả năng tự quyết định về phạm vi tương tác, giúp đơn giản hóa quá trình phân tích hệ thống phức tạp Các thành phần giao tiếp thông qua ngôn ngữ truyền thông agent, với thông điệp mang tính tri thức, cho phép chúng tương tác mà không cần thiết lập giao thức phức tạp, trong khi quyết định hành động vẫn do nội tại của từng agent quyết định để đạt được mục tiêu tại thời điểm đó.
Phân chia hướng agent trong hệ thống phức tạp thành các thành phần tự trị và tương tác giúp đơn giản hóa quá trình phát triển Mỗi thành phần này được thiết kế với một hoặc nhiều mục tiêu cụ thể, tạo điều kiện thuận lợi cho việc quản lý và tối ưu hóa hệ thống.
2.1.2 Trừu tượng hóa hướng agent
Một phần quan trọng trong thiết kế là tìm kiếm mô hình chuẩn để biểu diễn vấn đề Có nhiều cách và tác vụ khác nhau để lựa chọn phương pháp phù hợp Quá trình tối ưu hóa cho một trường hợp cụ thể trong thiết kế phần mềm yêu cầu các trừu tượng tốt nhất, nhằm giảm thiểu sự khác biệt về ngữ nghĩa giữa các đơn vị vấn đề 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 đề được mô tả bao gồm các hệ thống con, thành phần hệ thống con, các tương tác và mối quan hệ có tổ chức Sau đó, tiến hành thực hiện lặp lại quá trình này.
• Coi các thành phần của hệ thống con như là một agent
Sự tương tác giữa các hệ thống và các thành phần kết hợp diễn ra một cách tự nhiên, thể hiện qua những tương tác xã hội có mức độ cao.
Tại mọi cấp độ trừu tượng, tồn tại một tập hợp các đối tượng có khả năng hợp tác để đạt được mục tiêu cao hơn Quan điểm này phù hợp với phương pháp tiếp cận hướng agent, trong đó 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 đó, các khái niệm hướng agent rất thích hợp để nắm bắt các loại tương tác diễn ra trong hệ thống phức tạp.
Các hệ thống phức tạp yêu cầu xem xét các thành phần như một đơn vị khái niệm khi nhìn từ các cấp độ trừu tượng khác nhau Quan điểm này phù hợp với khái niệm hướng agent, tạo điều kiện thuận lợi để biểu diễn 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ằm định hình các nhóm, dẫn đến việc xây dựng các cấu trúc cho các mô hình Cuối cùng, điều này thể hiện rõ ràng các quan hệ để biểu diễn các hệ thống con, trong đó các thành phần cùng nhau thực hiện một mục tiêu chung.
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 nhiều quan hệ có tổ chức, đóng vai trò quan trọng trong việc nhóm các thành phần và mô tả các liên kết giữa các thực thể Việc hiểu rõ ảnh hưởng của các quan hệ này là cần thiết để quản lý chúng một cách linh hoạt Hơn nữa, do tính chất thay đổi thường xuyên của các quan hệ, khả năng thích ứng với tình huống là yếu tố then chốt trong việc duy trì hiệu quả của hệ thống.
Các tổ chức là thực thể chính trong hệ thống agent, với cấu trúc rõ ràng và cơ chế linh hoạt là trung tâm của mô hình này Những yếu tố này, kết hợp với các kỹ thuật tính toán, giúp hệ thống hướng agent giải quyết hai vấn đề cốt lõi của hệ thống phức tạp Đầu tiên, định nghĩa về thành phần cơ sở có thể thay đổi theo nhu cầu của người quan sát, cho phép toàn bộ hệ thống con được xem như một thực thể đơn lẻ Thứ hai, các cấu trúc này cung cấp nhiều dạng trung gian mở rộng, cần thiết cho việc phát triển nhanh chóng các hệ thống phức tạp, cho phép các agent độc lập hoặc nhóm tổ chức phát triển một cách tương đối độc lập và sau đó được tích hợp vào hệ thống.
So sánh hướng agent với hướng đối tượng và phần mềm đóng gói
Công nghệ phần mềm hướng agent và hướng đối tượng có nhiều điểm tương đồng, bao gồm việc sử dụng các đối tượng và agent với thuộc tính và phương thức tương tự, cũng như khả năng trao đổi thông qua yêu cầu phương thức hoặc gửi thông điệp Tuy nhiên, agent sở hữu nhiều thuộc tính độc đáo, như trạng thái tinh thần (tin tưởng, mong muốn, ý định) và khái niệm như kế hoạch và mục tiêu, khiến phương pháp hướng đối tượng gặp hạn chế trong môi trường hướng agent Agent hoạt động như một hệ thống con, mang tính chủ động trong việc đạt được mục tiêu và tự cảm nhận sự thay đổi trong môi trường, khác với đối tượng chỉ được kích hoạt khi có yêu cầu Trong khi các đối tượng giao tiếp qua việc gửi thông điệp, agent sử dụng giao thức hội thoại phức tạp và mang tính ngữ nghĩa để tương tác.
So với phần mềm đóng gói, phần mềm hướng agent là một công nghệ tiên tiến hơn, cho phép các thành phần độc lập có khả năng tái sử dụng cao Trong khi phần mềm đóng gói chỉ đơn thuần là ghép nối các thành phần có sẵn, phần mềm hướng agent không chỉ kế thừa thuộc tính của đối tượng mà còn có khả năng chia sẻ và tương tác giữa các agent Điều này mang lại tính tự trị, chủ động và hành vi xã hội cho các đối tượng, cho thấy kỹ thuật hướng agent là một bước phát triển mở rộng quan trọng so với các mô hình phần mềm trước đây.
Vòng đời phát triển của phần mềm hướng agent
Phần mềm hướng agent là một phương pháp hiệu quả trong phát triển hệ thống phức tạp, nhờ vào khả năng tự động hóa và tương tác giữa các tác nhân So với các kỹ thuật phát triển phần mềm khác, phương pháp này mang lại nhiều lợi ích nổi bật, giúp tối ưu hóa quy trình phát triển và cải thiện khả năng quản lý các yếu tố phức tạp trong hệ thống.
Quy trình phát triển phần mềm hướng agent bao gồm các giai đoạn chính như đặc tả chức năng và yêu cầu, thiết kế và cài đặt sản phẩm, kiểm định chất lượng và 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 sử dụng các ngôn ngữ và ký pháp phù hợp để mô tả rõ ràng về hệ thống Các agent có nhiều điểm tương đồng với đối tượng, vì vậy các phương pháp mô hình hóa thường dựa vào công cụ từ hướng đối tượng, trong đó ngôn ngữ UML (Unified Modeling Language) là nổi bật nhất Tuy nhiên, phiên bản hiện tại của UML không cung cấp ký pháp cho các tính năng đặc biệt của agent Để khắc phục điều này, Agent-UML (AUML) đã được phát triển như một ngôn ngữ mở rộng của UML, nhằm mô hình hóa các hệ thống agent và mở rộng một số sơ đồ cần thiết.
Mở rộng sơ đồ tuần tự UML nhằm mô 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) và các ràng buộc, được gọi là sơ đồ tương tác.
Mở rộng sơ đồ lớp thành sơ đồ các agent, trong đó mỗi agent được xem như một gói chứa nhiều lớp, với lớp agent là trung tâm và các lớp hành vi bao quanh Lớp agent bao gồm một số thành phần quan trọng.
• Tên của agent được sử dụng để phân biệt với các agent khác
• 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
• 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 quan trọng bao gồm việc sử dụng sơ đồ hoạt động để xác định vai trò của agent, cùng với mô hình triển khai nhằm thể hiện tính di động của agent.
Hiện tại, AUML vẫn đang trong giai đoạn nghiên cứu và thử nghiệm Tuy nhiên, với sự phát triển mạnh mẽ của kỹ thuật hướng agent, AUML đang dần hoàn thiện để cung cấp ngôn ngữ mô hình hóa các hệ thống phức tạp theo hướng agent.
Có nhiều phương pháp để phân tích và thiết kế hệ thống agent, được chia thành hai nhánh chính: 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 phân tích thiết kế 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à đặc tả hình thức, phục vụ 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 và ước lượng kết quả cuối cùng Một số phương pháp điển hình trong lĩnh vực này bao gồm
LORA (Logic Of Rational Agents) sử dụng ngôn ngữ thiết kế MABLE, cho phép kiểm chứng tự động hệ thống agent thông qua logic vị từ Ngôn ngữ Z, do M Luck và D’ Inverno đề xuất, được dùng để đặc tả agent và cũng dựa trên logic vị từ để dự đoán các hệ số Trong ngôn ngữ Z, agent được định nghĩa trong một kiến trúc bốn tầng bao gồm: các thực thể (đối tượng có cùng thuộc tính), các đối tượng (thực thể kèm theo khả năng), agent (đối tượng di chuyển 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 sử dụng ngôn ngữ tự nhiên và ký pháp đồ họa để thiết kế các hệ thống hướng agent một cách trực quan UML là ngôn ngữ phổ biến trong việc đặc tả hệ thống hướng đối tượng Hiện nay, có nhiều phương pháp phát triển từ UML cho hệ thống hướng agent, như AORML (Agent - Object - Relationship Modeling Language) do Wagner đề xuất, mô tả các thực thể như agent, sự kiện và hành động, thể hiện mối quan hệ giữa chúng qua sơ đồ lớp 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, tích hợp các mô hình thiết kế từ yêu cầu đến mã chương trình, kết hợp lập trình hướng đối tượng và trí thông minh nhân tạo Cuối cùng, phương pháp Prometheus hỗ trợ phát triển agent hướng mục tiêu, bao gồm đầy đủ các giai đoạn từ đặc tả yêu cầu đến thiết kế và cài đặt.
Phương pháp PASSI là một trong những phương pháp 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 Nó đã được áp dụ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 trong phần thực nghiệm của luận văn Chi tiết về phương pháp này sẽ được trình bày trong phần 3.
Kiểm thử hệ thống chủ yếu dựa trên lý thuyết hình thức để xác định sự phù hợp với các đặc tả ban đầu Các phương pháp kiểm thử truyền thống không thể kiểm soát hiệu quả việc kiểm thử hệ thống agent do không đánh giá đầy đủ các đặc tính của agent Hai cách tiếp cận chính có thể áp dụng cho kiểm thử hệ thống agent là cần thiết để đảm bảo hiệu quả kiểm tra.
Tiếp cận kiểm chứng chương trình theo đề xuất của Hoare vào cuối những năm 1960 yêu cầu một chương trình cụ thể để kiểm chứng tiền đề Từ chương trình này, lý thuyết logic được phát triển để mô tả 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, vấn đề kiểm chứng trở thành việc chứng minh rằng đặc tả chính là lý thuyết đã được chứng minh của lý thuyết chương trình.
Lý thuyết chương trình được phát triển thông qua việc tiên đề hóa ngôn ngữ cài đặt hệ thống và sử dụng ngôn ngữ đơn giản Nhờ vào quá trình tiên đề hóa này, lý thuyết chương trình có thể được suy ra một cách hệ thống từ văn bản chương trình.
PHÁP THIẾT KẾ & PHÁT TRIỂN HỆ THỐNG ĐA AGENT PASSI
Giới thiệu về PASSI
PASSI (Quy trình chỉ định và triển khai các xã hội agent) là phương pháp thiết kế và phát triển hệ thống đa agent, bao gồm các bước từ thu thập yêu cầu đến lập trình Phương pháp này kết hợp các mô hình thiết kế và khái niệm của lập trình hướng đối tượng với các phương pháp trí tuệ nhân tạo.
Hình 4: Mô hình phương pháp PASSI Quá trình thiết kế được phân tách làm 5 mô hình (Hình 4):
Bước 1 - Mô hình hóa yêu cầu (System Requirements Model) là quá trình tạo ra mô hình cho các yêu cầu hệ thống, bao gồm việc mô tả chi tiết các yêu cầu, xác định các agent, cũng như xác định vai trò và các tác vụ liên quan.
Mô hình xã hội agent (Agent Society Model) là một khung lý thuyết mô tả các agent với các giới hạn về mục tiêu, vai trò, tương tác xã hội và sự phụ thuộc lẫn nhau của chúng.
Mô tả Ontology, mô tả các vai trò, mô tả các giao thức.
Bước 3 - Mô hình thực thi của các agent trong các lớp và phương thức khác nhau, bao gồm cả đa và đơn agent, mô tả hành vi và cấu trúc giao tiếp giữa các agent Nếu có yêu cầu mới, hãy lặp lại từ bước 1.
Bước 4 - Mô hình mã chương trình (Code Model) là mô hình của giải pháp tại giai đoạn viết mã chương trình.
Bước 5 - Mô hình triển khai (Deployment Model) là cách phân tán các thành phần của hệ thống trên các đơn vị xử lý phần cứng, cho phép các agent di chuyển linh hoạt giữa các nền tảng khác nhau.
Mô tả yêu cầu
Sử dụng các sơ đồ use case
Xác định các agent
Hình 5: Mô hình Use case xác định các agent
Từ sơ đồ Use Case, các gói (package) được sử dụng để tổ chức các chức năng liên quan, với tên của agent được thể hiện qua tên của gói.
Các khuôn mẫu quan hệ giữa các usecase trong các gói khác nhau được chuyển thành stereotype "truyền đạt" (communicate), cho phép các agent khác nhau tương tác với nhau thông qua đó.
Xác định vai trò
Hình 6: Mô hình tuần tự để thể hiện kịch bản tương tác giữa các agent
Sử dụng sơ đồ tuần tự để thể hiện kịch bản tương tác giữa các agent
Các kịch bản mô tả sự ảnh hưởng của các agent khác nhau và vai trò của chúng Mỗi class được định danh theo mẫu: : (: ).
Xác định các tác vụ
Hình 7: Sơ đồ hoạt động thể hiện các tác vụ cho agent
Sơ đồ hoạt động cho mỗi agent mô tả cách thức mà agent sử dụng các thao tác của mình để thực hiện các công việc và tác vụ.
Mỗi sơ đồ bao gồm hai cột, thể hiện các hoạt động của agent Cột bên phải chứa các thao tác và tác vụ của các agent, trong khi cột bên trái ghi nhận các agent tương tác với chúng.
Các giao dịch được trình bày trong cùng một cột thể hiện luồng điều khiển từ các tác vụ khác nhau, trong khi các giao dịch giữa hai cột mô tả sự truyền đạt giữa các agent Các thành phần thay đổi của hệ thống bên cột trái không được chi tiết, vì sơ đồ chủ yếu tập trung vào cột bên phải Mục đích của cột bên trái là minh họa rõ ràng các thông tin truyền đạt từ agent này đến agent khác.
Mô tả Ontology - Ontology Description
3.6.1 Mô t Ontology lĩnh v c Domain Ontology Description (DOD) ả ự
ImData data1D : byte[ ] name : String colors : int x : int y : int dim : int comment : String
Hình 8: Sơ lớp mô tả Ontology lĩnh vực
Ontology được mô tả thông qua sơ đồ lớp, bao gồm các khái niệm (màu vàng), thuộc tính (màu xanh) và hành động (màu trắng) Các phần tử trong Ontology có thể liên kết với nhau thông qua các quan hệ chuẩn của UML như khái quát hóa (Generalization), liên kết (Association) và tập hợp (Aggregation).
Ontology của robot được thể hiện qua hình vẽ, trong đó MonoImage là một trường hợp của ImData với thuộc tính thời gian chụp Việc kết hợp hai hình ảnh mono tạo ra hình ảnh StereoImage Hành động GiveImage cho phép robot chụp hình ảnh, và hình ảnh này được cung cấp bởi Actor trước khi gửi đến ResultReceiver.
3.6.2 Mô t Ontology truy n thông Communication Ontology Description (COD) ả ề
Sơn đồ COD bản chất là sơ đồ lớp mà thành thành phần chính bao gồm hai phần tử: Các agent và các truyền đạt/truyền thông
GiveStImageRequest Ontology : GiveStImage Language : RDF Protocol : FIPARequest
GimmeStereoImageRequest Ontology : GiveStImage Language : RDF Protocol : FIPARequest
SelfPositionBuildingRequest Ontology : AutoLocalize Language : RDF Protocol : FIPARequest
VisionLocalizazion Ontology : LocalizeMe Language : RDF Protocol : FIPARequest
VisionManager robot : GenericElement[] cameras : Camera[] markers : Marker[]
SelfLocalizator calibration : CalibrationData stereoImage : StereoImage
Hình 9: Sơ lớp mô tả Ontology truyền thông
Mỗi agent (được đánh dấu màu vàng) trong sơ đồ trên được mô tả theo phạm vi tri thức của chúng, thể hiện các thành phần trong mô hình ontology Mỗi quan hệ giữa hai agent tương ứng với một quá trình truyền đạt, trong đó các vai trò được thể hiện gián tiếp thông qua quá trình giao tiếp.
Mỗi sự truyền thông, được thể hiện bằng màu trắng, phản ánh mối quan hệ giữa hai agent và được mô tả chi tiết trong lớp thuộc tính quan hệ Lớp này có một tên duy nhất và được định nghĩa bởi các trường ontology, bao gồm ngôn ngữ giao tiếp và giao thức truyền thông.
Trường ontology xác định một đối tượng trong DOD (Mô tả Ontology lĩnh vực), trong khi trường ngôn ngữ chỉ ra ngôn ngữ nội dung của truyền thông Giao thức được chỉ định cho tương tác là giao thức FIPA.
Trong sơ đồ trên, chúng ta có thể thấy rõ agent quản lý phần cứng thực hiện hỏi về hình ảnh lập thể đến agent StereoCameraGrabber với truyền thông
Sự truyền đạt này liên quan đến hành động GiveStImage được định nghĩa trong sơ đồ DOD, sử dụng ngôn ngữ là RDF và giao thức “FIPA Request”
Mô tả các vai trò
Hình 10: Sơ lớp mô tả vai trò của các agent
Biển diễn sơ đồ vai trò của các agent sử dụng sơ đồ lớp, trong đó các vai trò được tổ chức thành các lớp và nhóm lại trong các gói Mỗi gói này đại diện cho một agent cụ thể, giúp thể hiện rõ ràng chức năng và mối quan hệ giữa các agent trong hệ thống.
Các vai trò có thể thay đổi tùy thuộc vào mối quan hệ với dịch vụ hoặc nguồn tài nguyên, cùng với các hình thức truyền thông Mỗi vai trò bao gồm nhiều tác vụ, và những tác vụ này liên quan đến hoạt động của từng lớp.
Các lớp biểu diễn các vai trò của agent Chúng được nhóm thành một gói ứng với agent đó
Vai trò liên quan đến các quan hệ có thể phân làm 3 loại chính:
Truyền thông được biểu diễn qua đường thẳng nối giữa đối tượng khởi tạo và đối tượng liên quan Tên của các hình thức truyền thông được xác định thông qua sơ đồ mô tả Ontology truyền thông (COD).
Phục thuộc trong hệ thống dịch vụ và tài nguyên thể hiện mối quan hệ giữa các agent nhằm hoàn thành mục tiêu Phục thuộc dịch vụ được mô tả bằng đường nét ngắt quãng với stereotype là dịch vụ, trong khi phục thuộc tài nguyên tương ứng với thực thể có sẵn, được biểu thị bằng nét ngắt quãng với stereotype là tài nguyên Ngoài ra, còn có phục thuộc dịch vụ mềm và tài nguyên mềm, trong đó yêu cầu về dịch vụ hoặc tài nguyên chỉ mang tính trợ giúp, không phải yếu tố thiết yếu để đạt được mục tiêu.
Sự thay đổi vai trò của agent trong quá trình thực hiện được thể hiện qua một liên kết ngắt quãng với stereotype "thay đổi vai trò" (ROLE CHANGE) Liên kết này cho thấy vai trò thứ hai phụ thuộc vào vai trò thứ nhất, với các quan hệ phục thuộc nhằm thể hiện sự phụ thuộc này Đôi khi, các điều kiện kích hoạt từ vai trò thứ nhất không rõ ràng nhưng vẫn ảnh hưởng đến quyết định trong kịch bản.
Mô tả các giao thức
Phương pháp sử dụng sơ đồ tuần tự để mô tả giao thức tương tác giữa các agent
Khung(Frame) trong UML 2 0 được sử dụng để nhóm các phần tử trong cùng một giao thức tương tác
Hình 11: Khung trong UML để nhóm các phan tử trong giao thức tương tác
Một đường sống bao gồm hai phần: phần ô chứa thông tin ở trên và đường nét chấm thẳng đứng ở dưới Cách thể hiện của agent được thể hiện qua tên của agent, theo sau là tên của vai trò, cụ thể là : .
Hình 12: Đường sống trong sơ đồ tuần tự cho một agent
Trong hệ thống đa agent, các agent giao tiếp với nhau thông qua việc gửi thông điệp, cho phép truyền tải thông tin giữa các agent Một ví dụ điển hình là thông điệp ACL (Agent Communication Language) được mô tả bởi FIPA, giúp định nghĩa cách thức tương tác giữa các agent.
: sender (agent - identifier: name agent1) : receiver (set (agent - identifier: name agent2)) : content “((price good 100))”
: language fipa - sl : ontology auction )
Hình 13: Thông điệp truyền giữa các agent
Rằng buộc trong giao thức tương tác xác định cách mà các thông điệp và đường dẫn được sử dụng, bao gồm hai loại chính: rằng buộc chặn và rằng buộc không chặn Rằng buộc chặn sẽ ngăn cản tương tác cho đến khi các điều kiện cần thiết được thỏa mãn, điều này hữu ích trong các trường hợp cụ thể khi dữ liệu hoặc hoàn cảnh chưa sẵn sàng Ngược lại, rằng buộc không chặn được áp dụng trong các tình huống khác, cho phép tương tác diễn ra mà không cần phải thỏa mãn các điều kiện trước đó.
Các rằng buộc chặn được thể hiện bằng stereotype là “”
• Rằng buộc thời gian(Timing Constraints)
Ràng buộc thời gian là yếu tố quan trọng trong việc xử lý thông điệp, ví dụ như khi một agent không nhận được phản hồi sau 5 giây, giao dịch sẽ bị hủy Ràng buộc này có thể được xác định dựa trên một mốc thời gian cụ thể, chẳng hạn như thời điểm gửi thông điệp trước đó, hoặc có thể là giá trị thời gian tuyệt đối.
• Các luồng phân chia, kết hợp (Splitting/Merging Paths)
Một phương thức phức tạp yêu cầu lựa chọn nhiều khả năng trong quá trình tương tác, dựa trên trạng thái tinh thần và mục đích của cả hai bên Phần này sẽ mô tả một số luồng tương tác và cách kết hợp chúng một cách hiệu quả.
Định nghĩa cấu trúc đa agent
Planner def inedC ourses : C ourses argum entsList : Argum ents
R eceiv eC ourseD ef inition() : v oid
D eleteC ourse() : v oid Serv eArgum entSearch() : v oid
Editor atom icInf orm ationsList : Atom icInf orm ations
C reateMetad ataF ile() : v oid Sen dAsset() : v oid
R eceiv eExportedAr gum ent() : v oid
C om pose C ourse() : v oid Serv eAsse tSearch() : v oid
Author Gui m y D ev elopingArgum ents : Argum ents m y R elatedC ourses : C ourses
R eceiv eW orkingArgum ents() : v oid Expor tAssets() : v oid
U ploadArg um ents() : v oid Search Assets() : v oid
Access Manager registeredMem bers : Mem bers
AccessApplication() : v oid Giv eVC ard() : v oid
Ecs Gui dev elopingC ourses : C ourses
R eceiv eArgum entsN egotiation() : v oid
R equestD ef ineC ourse() : v oid
R equestD eleteC ourse() : v oid SearchArgum entBehav iour() : v oid
R equestC om poseC ourse() : v oid
N ewMem ber() : v oid ShowEcsW indows() : v oid
C om m on Gui m y C ontractingArgum ents : Argum ents m y R elatedC ourses : C ourses
ShowC om m onW indows() : v oid AccountManager() : v oid LookW hoIsAround() : v oid SendEMail() : v oid TakeMessage() : v oid GetVC ard() : v oid SendMessage() : v oid Mem bersManager() : v oid
Hình 14: Sơ đồ lớp thể hiện các agent trong hệ thống đa agent
Sơ đồ lớp bao gồm các lớp và tác nhân, trong đó mỗi lớp đại diện cho một agent trong hệ thống Các thuộc tính thể hiện tri thức của agent, trong khi các thao tác được xem như các tác vụ của agent Các mối quan hệ chỉ ra cách thức truyền thông giữa các agent.
Định nghĩa cấu trúc của từng agent
Sơ đồ lớp cho từng agent thể hiện cấu trúc và các tác vụ tương ứng của nó Mỗi agent được mô tả bằng một sơ đồ lớp riêng, trong đó bao gồm lớp agent cơ sở cùng với các tác vụ liên quan Các lớp agent và tác vụ này được xây dựng dựa trên các lớp cơ sở của nền tảng triển khai.
Mô tả các hành vi trong hệ thống đa agent
Hình 16: Biểu đồ hoạt động thể hiện các hành vi của agent
Biểu đồ hoạt động (activity diagram) được sử dụng để minh họa luồng sự kiện giữa các lớp agent và các lớp nội hàm bên trong lớp Biểu đồ được chia thành các cột tương ứng với từng lớp agent và các tác vụ của chúng, với các hoạt động trong mỗi cột thể hiện phương thức của lớp tương ứng.
Mô hình mã chương trình - Code Model
Thực hiện viết mã chương trình
Mô hình triển khai Deployment Model
co mmu n icate
Hình 17: Mô tả triển khai các agent
Sơ đồ triển khai mô tả sự phân bố của các agent qua các nền tảng khác nhau và môi trường di chuyển, trong đó các nền tảng được biểu diễn dưới dạng các nút và các agent là các thành phần Các mối liên kết thể hiện quá trình di chuyển của các agent từ nút này sang nút khác, được gán nhãn là “di chuyển” (move_to).
DỰNG HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG
Mô tả bài toán
Hiện nay, với sự phát triển mạnh mẽ của các kênh thông tin trên Internet, người dùng phải đối mặt với lượng tin tức phong phú hàng ngày Việc tìm kiếm thông tin hữu ích trong số lượng lớn này thường tốn nhiều thời gian, vì thông tin cần thiết chỉ chiếm một phần nhỏ Do đó, cần thiết phải có hệ thống tự động thu thập và sắp xếp tin tức, loại bỏ thông tin trùng lặp, giúp người dùng dễ dàng tiếp cận những thông tin mà họ quan tâm Hệ thống này sẽ mang lại hiệu quả cao trong việc quản lý và cung cấp thông tin.
Hệ thống thu thập thông tin từ các nguồn báo chí điện tử định kỳ kiểm tra và lấy về các bài viết mới nhất Nó tách bóc nội dung bài viết, bao gồm tiêu đề, tóm tắt, ảnh minh họa, thời gian và nội dung Bài viết được phân loại theo chuyên mục, loại bỏ trùng lặp và nhóm các bài viết liên quan lại với nhau Người dùng có thể truy cập qua trình duyệt để xem tin mới nhất theo chuyên mục và sắp xếp thông tin theo sở thích cá nhân Hệ thống theo dõi lịch sử sử dụng để xác định sở thích người dùng và cho phép tìm kiếm thông tin theo từ khóa Ngoài ra, hệ thống có khả năng triển khai trên mạng với nhiều máy chủ để phân tải hiệu quả.
Giải pháp cho bài toán này là áp dụng phương pháp phát triển phần mềm hướng agent, cụ thể là phương pháp PASSI, như đã được mô tả trong phần 3 của luận văn Việc thực hiện giải pháp này được tiến hành trên nền tảng JADE (Java Agent Development Framework) nhằm đảm bảo hiệu quả trong việc xác định và phân tích yêu cầu.
4.1.1 Các Use Case hệ thống
Sơ đồ Use Case tổng thể:
Hình 18: Sơ đồ Use case hệ thống
Use case Bộ thu thập tin tức (Crawler)
Mỗi Crawler đảm nhiệm việc thu thập dữ liệu cho một chuyên mục cụ thể của báo Định kỳ, bộ Crawler sẽ tải trang chuyên mục và phân tích các liên kết bài viết, sau đó lần lượt tải các liên kết này và chuyển giao cho bộ phân tích để bóc tách tin tức.
Preconditions Tồn tại uri bắt đầu
2 Trả về nội dung trang
3 Phân tích cấu trúc DOM
Tách link có anchor text Nếu không đã hết link, chuyển đến bước 10
Kiểm tra sự tồn tại link mới Nếu link cũ chuyển đến bước 4
7 Trả về nội dung trang X
8 Gửi nội dung trang X cho bộ bóc tách tin
Use case Bóc tách tin
Brief Description Trich thông tin từ trang HTML dựa trên cấu trúc XPATH của các node trong cây DOM
1 Kiểm tra nội dung tồn tại anchor text
2 Nếu không tồn tại thì kết thúc
3 Nếu đã tồn tại cấu trúc thực hiện bước 6
4 Thêm vào danh sách để lưu trữ
5 Nếu danh sách có lớn hơn 2 tài liệu, thực hiện luồng phụ 1: Phân tích cấu trúc trang
6 Nếu tách thành công thì đặt biến đếm lỗi về 0 xóa danh sách lưu trữ và kết thúc
7 Nếu không tách được tăng giá trị biến lỗi và thêm trang đó vào danh sách lưu trữ để xử lý sau
8 Nếu số lỗi lớn hơn ngưỡng N thực xõa bỏ cấu trúc cũ
Phân tích cấu trúc trang: Sử dụng 3 tài liệu để phân tích cấu trúc trang
1 Phân tích cấu trúc DOM của các trang
2 Xác định các node chứa anchor text tại các trang
3 Xác định ngày thàng gần anchor text sử dụng mẫu
4 Xác định node chứa chữ lớn hơn N ký tự đứng sau node chứa anchor text
5 Xác định node cha chung nhỏ nhất của 3 node trên ứng với mỗi trang
6 Xác định đường dẫn (XPATH) chung cho các node cha vừa tìm thấy trên 3 trang lưu các XPATH của các node (cấu trúc để bóc tách thông tin)
7 Lấy các tài liệu trong được lưu trữ trong danh sách ra thực hiện phân tích
Use case Nhóm các tin trùng nhau Description Nhóm các tin giống nhau
Preconditions Có quá 10 tin trở lên
1 Lấy nội dung các tin trong khoảng thời gian 3 ngày trở lại
2 So sánh từng cặp nếu chúng giống nhau thực hiện cho vào cùng một nhóm
Use case Xem tin tức
Brief Description Người đọc tin tương tác với hệ thống Preconditions
2 Hệ thống lấy các tin mới
3 Sắp xếp các tin theo sở thích của người đọc
4 Người dùng đọc nội dung tin
5 Hệ thống cập nhật sở thích của người dùng
Hình 19: Sơ đồ xác định các agent dựa trên các use case
Thực hiện nhóm các Use Case thành các gói, mỗi gói tương ứng với một agent Các agent xác định:
• Agent Crawler: Download các trang tin
• Agent Extractor: Thực hiện bóc tách nội dung tin tức trong các trang
• Agent DuplicateGrouper: Thực hiện nhóm các tin trùng nhau
• Agent UserProfier: Quản lý thông tin sở thích người dùng, thực hiện sắp xếp tin theo sở thích của người dùng
• Agent WebUI: Agent quản lý giao diện giao tiếp với người dùng
4.1.3 Xác định vai trò của các agent
Các agent thực hiện thu thập và phân tích bóc tách thông tin
Các agent tương tác với người dùng
Hình 20: Sơ đồ xác định vai trò của các agent
4.1.4 Xác định các tác vụ của các agent Các tác vụ của agent Crawler
Hình 21: Các tác vụ của agent Crawler
Các tác vụ của agent ArticleExtractor
Hình 22: Các tác vụ của agent ArticleExtractor
Các tác vụ của agent DuplicateGrouper
Hình 23: Các tác vụ của agent DuplicateGrouper
Các tác vụ của agent UserProfile và WebUI
Hình 24: Các tác vụ của agent UserProfiler & WebUI
Mô hình xã hội các agent
4.2.1 Mô tả Ontology lĩnh vực
Mô tả Ontology lĩnh vực của hành động phân tích và tách nội dung bài viết từ trang HTML
Hình 25: Mô tả Ontology lĩnh vực của hành động phân tích và tách nội dung bài viết từ trang HTML
Mô tả Ontology lĩnh vực của hành động nhóm các tin giống nhau
Hình 26: Mô tả Ontology lĩnh vực của hành động nhóm các tin giống nhau
Mô tả Ontology lĩnh vực của hành động sắp xếp các tin theo sở thích người dùng
Hình 27: Mô tả Ontology lĩnh vực của hành động sắp xếp các tin theo sở thích người dùng
Mô tả Ontology lĩnh vực của hành động cập nhật thói quen/ sở thích người dùng
Hình 28: Mô tả Ontology lĩnh vực của hành động cập nhật thói quen/ sở thích người dùng
4.2.2 Mô tả Ontology truyền thông
Mô tả Ontology truyền thông giữa các agent thu thập và phân tích/trích trọn thông tin
Hình 29: Mô tả Ontology truyền thông giữa các agent thu thập và phân tích/trích trọn thông tin
Mô tả Ontology truyền thông giữa các agent tương tác với người dùng
Hình 30: Mô tả Ontology truyền thông giữa các agent tương tác với người dùng
4.3 Mô hình thực thi các agent
4.3.1 Các trúc các agent (đa agent)
Hình 31: Cấu trúc các agent trong hệ thống
Agent Crawler downloads news pages and communicates with Agent ArticleExtractor to extract information Subsequently, it interacts with Agent DuplicateGrouper to group related news items Meanwhile, Agent WebUI engages with users and requests Agent UserProfiler to organize and update user preferences.
4.3.2 Định nghĩa cấu trúc từng agent Agent Crawler
Hình 32: Cấu trúc của agent Crawler
Hình 33: Cấu trúc của agent ArticleExtractor
Hình 34: Cấu trúc của agent UserProfiler
Hình 35: Cấu trúc của agent WebUI
4.4 Cài đặt và triển khai
Hệ thống được triển khai trên máy chủ Linux với Java 1.6, bao gồm 3 máy chủ và 500 agent thu thập tin tức từ khoảng 50 nguồn báo, mỗi nguồn có 10 chuyên mục Ngoài ra, có 10 agent đảm nhận việc nhóm các tin giống nhau và phân tích hành vi người dùng Hệ thống đã được áp dụng thực tế cho việc thu thập và tổng hợp tin tức trên website http://xalo.vn.
Hình 36: Mô hình triển khai
Thứ tự các chuyên mục khởi tạo Thứ tự chuyên mục sau một thời gian sử dụng Giao diện trang tổng hợp tin http://xalo.vn/news.html
Giao diện trang tổng hợp tin cho điện thoại di động
4.6 Thử nghiệm và đánh giá
Hệ thống đã được thử nghiệm và đánh giá khả năng sắp xếp lại các chuyên mục dựa trên sở thích và thói quen của người dùng Trong vòng 2 tháng, 50 nhân viên của công ty Tinh Vân Media đã tham gia thử nghiệm Kết quả thu thập từ đánh giá của người dùng cho thấy hệ thống đã đạt được hiệu quả cao.
62% người dùng cảm thấy tiện lợi hơn, tiếp cận với mục mình yêu thích hơn.
24% người dùng không nhận thấy sự thay đổi 14% cảm thấy khó chịu vì sự sắp xếp bị thay đổi
Hình 37: Khảo sát đánh giá người dùng
Tiện lợi hơnKhông thay đổiKhó chịu
Luận văn này trình bày nghiên cứu của chúng tôi về "Hệ thống lọc và sắp xếp tin tức theo ngữ cảnh người dùng" dựa trên kiến trúc agent phần mềm Chúng tôi đã phát triển một phương pháp hiệu quả để phân loại và lọc tin tức, giúp người dùng nhận được thông tin phù hợp nhất với nhu cầu và sở thích cá nhân Hệ thống này không chỉ cải thiện trải nghiệm người dùng mà còn tối ưu hóa quá trình tiếp cận thông tin trong thời đại số.
Chúng tôi đã đạt được những kết quả quan trọng trong việc tìm hiểu kiến thức về agent và mô hình phát triển phần mềm hướng agent PASSI Mô hình này đã được áp dụng vào quá trình phân tích, thiết kế và 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”.
Hệ thống đã trải qua giai đoạn thử nghiệm và cho thấy rõ ưu điểm của công nghệ phần mềm hướng agent, với quy trình phát triển phần mềm hiệu quả, nhanh chóng và tiết kiệm chi phí.
Luận văn còn tồn tại một số hạn chế, trong đó hệ thống xây dựng hiện tại chỉ mang tính chất minh họa cho quy trình phát triển phần mềm Các giải pháp xử lý thông tin vẫn cần được cải thiện để nâng cao hiệu quả và tính ứng dụng trong thực tế.
Nhóm các tin giống nhau và việc sắp xếp thông tin theo sở thích người dùng hiện đang ở mức phát triển đơn giản Công nghệ xử lý ngôn ngữ tự nhiên vẫn chưa được áp dụng hiệu quả trong quá trình phân tích và trích chọn thông tin.
Hướng phát triển tiếp theo của chúng tôi tập trung vào việc cải tiến các agent "nhóm các tin giống nhau" thông qua việc áp dụng các kỹ thuật xử lý ngôn ngữ tự nhiên, như xác định vector tài liệu, nhằm nâng cao khả năng xác định sự tương đồng giữa hai tài liệu Chúng tôi cũng sẽ bổ sung các agent có khả năng trích xuất thông tin thực thể, bao gồm việc bóc tách tên người dùng, các câu nói trong bài viết của nhân vật, và thông tin về công ty, tổ chức, giúp người dùng dễ dàng khai thác thông tin Bên cạnh đó, chúng tôi sẽ dựa trên nhiều thông tin hơn để mô tả sở thích của người dùng một cách chính xác.
[1] Modeling Notation Source – PASSI © 2003 Foundation for Intelligent Physical Agents author: Massimo Cossentino, Luca Sabatucci
[2] FIPA Modeling: Agent Class Diagrams
[3] M Wooldridge and N R Jennings (1995) “Intelligent agents: theory and practice” The Knowledge Engineering Review 10 (2) 115 – 152.
[4] A Fuggetta, G Vigna, Understanding Code Mobility, IEEE Transactions on
[5] J W Stamos, D K Gifford, Remote Evaluation, ACM Transactions on
Programming Languages and Systems, October 1990.
[6] G Booch (1994) “Object - oriented analysis and design with applications”
[7] Woodridge,(2000) Reasoning about Agents MIT Press, Cambridge, MA
[8] Luck M and D’ Inverno M (2001) A Conceptual Framework for Agent Definition and Devlopment The Computer Journal
[8] Software agent website: www.wikipedia.org
[9] JADE website: jade.tilab.com
[10] PASSI documentation website: www.csai.unipa.it/passi
[11] M Cossentino - "Different perspectives in designing multi - agent systems" - AGES '02 workshop at NODe02 - 8 - 9 October 2002 - Erfurt, Germany (www csai unipa it/cossentino/paper/AGES02 Pdf)
[12] M Cossentino, P Burrafato, S Lombardo, L Sabatucci - "Introducing Pattern Reuse in the Design of Multi - Agent Systems" - AITA'02 workshop at NODe02 - 8 - 9 October 2002 - Erfurt, Germany (www csai unipa it/cossentino/paper/AITA02 pdf)
In their 2002 paper presented at the International Conference on Software Engineering Research and Practice (SERP'02) in Las Vegas, M Cossentino and C Potts introduce a CASE tool-supported methodology specifically designed for the development of multi-agent systems This innovative approach aims to enhance the design process, providing a structured framework that integrates various aspects of software engineering to improve efficiency and effectiveness in multi-agent system development For further details, the full paper is available at www.csai.unipa.it/cossentino/paper/SERP02.pdf.
In their paper presented at the Fourth International Bi-Conference Workshop on Agent-Oriented Information Systems (AOIS 2002), Burrafato and Cossentino explore the design of a multi-agent solution specifically tailored for bookstores, utilizing the PASSI methodology This innovative approach aims to enhance the efficiency and functionality of bookstore operations, demonstrating the potential of agent-oriented systems in retail environments The full paper can be accessed at www.csai.unipa.it/cossentino/paper/AOIS02.pdf.
[15] Resource Description Framework (RDF) Model and Syntax Specification W3C Recommendation 22 - 02 - 1999 http: //www w3 org/TR/1999/REC - rdf - syntax – 19990222/
[16] FIPA RDF Content Language Specification Foundation for Intelligent Physical Agents, Document FIPA XC00011B (2001/08/10) http: //www fipa org/specs/ fipa00011/XC00011B html
[17] AgentFactory website: http: //mozart csai unipa it/af
[18] Agent - Oriented Software Engineering, Nicholas R Jennings and Michael Wooldridge, Department of Electronic Engineering, Queen Mary & Westfield College, University of London, London E1 4NS, United Kingdom
[19] G Booch (1994) “Object - oriented analysis and design with applications”
[20] F P Brooks (1995) “The mythical man - month” Addison Wesley B Chaib - draa (1995) “Industrial applications of distributed AI” Comms of ACM
[21] B Chellas (1980) “Modal Logic: An Introduction” Cambridge University Press
[22] E M Clarke and E A Emerson (1981) “Design and synthesis of synchronization skeletons using branching time temporal logic” In D Kozen, editor, Logics of Programs (LNCS Volume 131), 52 - 71, Springer - Verlag
[23] P R Cohen and H J Levesque (1990) “Intention is choice with commitment” Artificial Intelligence
[24] D C Dennett (1987) “The Intentional Stance” The MIT Press
[25] R Fagin, J Y Halpern, Y Moses, and M Y Vardi (1995) “Reasoning About Knowledge” The MIT Press
[26] M Fisher (1997) “An alternative approach to concurrent theorem proving” In J Geller, H Kitano, and C B Suttner, editors, Parallel Processing in Artificial
[27] M Fisher and M Wooldridge (1997) “On the formal specification and verification of multiagent systems” Int Journal of Cooperative Information Systems 6
[28] E Gamma, R Helm, R Johnson and J Vlissides (1995) “Design patterns: elements of reusable object - oriented software” Addison Wesley
[29] C Guilfoyle and E Warner (1994) “Intelligent agents: the new revolution in software” Ovum
[30] J Y Halpern and M Y Vardi (1991) “Model checking versus theorem proving:
A manifesto” In V Lifschitz, editor, AI and Mathematical Theory of Computation Papers in Honor of John McCarthy, Academic Press
[31] C A R Hoare (1969) “An axiomatic basis for computer programming” Comms of the ACM, 12
[32] P C Janca (1995) “Pragmatic application of information agents” BIS Strategic Report
[33] N R Jennings and J R Campos (1997) “Towards a Social Level Characterisation of Socially Responsible Agents” IEE Proc on Software Engineering
[34] N R Jennings, K Sycara and M Wooldridge (1998) “A Roadmap of Agent Research and Development” Int Journal of Autonomous Agents and Multi - Agent Systems
[35] N R Jennings and M Wooldridge (eds ) (1998) “Agent technology: foundations, applications and markets” Springer Verlag
[36] D Kinny and M Georgeff (1997) “Modelling and design of multi - agent systems” In J P Mueller, M Wooldridge, and N R Jennings, editors, Intelligent Agents III Springer - Verlag
[37] Z Manna and A Pnueli (1995) “Temporal Verification of Reactive Systems— Safety” Springer - Verlag
[38] B Meyer (1988) “Object - oriented software construction” Prentice Hall
[39] R Milner (1993) “Elements of interaction” Comms of ACM 36
[40] A Newell, (1993) “Reflections on the Knowledge Level” Artificial Intelligence
[41] G M P O’Hare and N R Jennings (editors) (1996) “Foundations of distributed artificial intelligence” John Wiley & Sons
[42] H V D Parunak (1999) “Industrial and practical applications of DAI” In G Weiss, editor, Multi - Agent Systems, MIT Press
[43] A Pnueli (1986) “Specification and development of reactive systems” In Information Processing, Elsevier Science Publishers
[44] A Pnueli and R Rosner (1989) “On the synthesis of a reactive module” In Proceedings of the 16th ACM Sym on the Principles of Programming Languages
[45] A S Rao and M Georgeff (1995) “BDI Agents: from theory to practice” Proc of the 1st Int Conf on Multi - Agent Systems, 312 - 319, San Francisco, CA
[46] A S Rao and M P Georgeff (1993) “A model - theoretic approach to the verification of situated reasoning systems” Proc of the 13th Int Joint Conf on Artificial Intelligence, Chambery, France
[47] C A Szyperski (1997) “Component software: beyond object - oriented programming” Addison Wesley
[48] G Weiss (1999) “Multi - agent systems” MIT Press
[49] M Wooldridge (1992) “The Logical Modelling of Computational Multi - Agent Systems” Ph D thesis, Department of Computation, UMIST, Manchester, UK
[50] M Wooldridge (1997) “Agent - based software engineering” IEE Proc on Software Engineering,