Nó có thể di chuyển một cách tự trị từ thiết bị di động này sang thiết bị di động khác và thực hiện các xử lý thay thế cho con người để thực thi các công việc được giao.Bài toán quản lý
Tình hình nghiên cứu chuyên đề
Một số đề tài báo cáo Thạc sỹ nghiên cứu về tác tử trong thời gian gần đây:
- Ứng dụng tác tử thông minh cho đấu giá hàng hóa trong giao dịch thương mại của ThS Nguyễn Trọng Hòa Đề tài đã đề xuất một mô hình MAS nhằm hỗ trợ cho việc đấu giá ngược, đấu giá nhiều-nhiều trong giao dịch thương mại
- Xây dựng một mô hình hệ thống Multi-Agent và ứng dụng trong E-
Learning của ThS Nguyễn Trần Minh Khuê Đề tài đã đề xuất một mô hình “ Multi agent” nhằm hỗ trợ E-Learning
- Một mô hình MAS cho hệ truy vấn kiến thức của ThS Phạm Thi Vương Đề tài đã đề xuất một mô hình Multi-agent nhằm hỗ trợ truy vấn kiếnthức Hình học phẳng và Hình học giải tích 2 chiều
Đề tài của ThS Nguyễn Thị Trâm Anh đưa ra một mô hình Multi-Agent để hỗ trợ trả lời các câu hỏi về kiến thức đại số tuyến tính Mô hình này sử dụng cơ sở tri thức COKB và giúp người dùng dễ dàng truy vấn kiến thức toán học phức tạp.
Mục tiêu và nhiệm vụ nghiên cứu
Ứng dụng công nghệ tác tử di động thông minh trong xây dựng chương trình quản lý thu chi cho phép điều hành hoạt động của các tổ chức, cá nhân trong lĩnh vực quản lý tài chính của mình Đề tài tập trung vào các nhiệm vụ cụ thể sau:
- Tìm hiểu về công nghệ tác tử di động
- Lý thuyết ontology trong mô hình agent ra quyết định
- Cài đặt ứng dụng demo quản lý thu chi trên môi trường di động.
Đối tượng, phương pháp và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài :
- Các vấn đề về tác tử, agent ra quyết định trong mô hình quản lý thu chi Phạm vi nghiên cứu của đề tài: Đề tài nghiên cứu lý thuyết tập công nghệ tác tử và ontology trong tác tử ứng dụng trong lập trình di động với bài toán quản lý thu chi
- Đọc và nghiên cứu tài liệu
- Tìm hiểu xây dựng ứng dụng trên nền Android
- Xây dựng chương trình thử nghiệm
- Kiểm tra, cài đặt, đánh giá kết quả của hệ thống
Cấu trúc luận văn
Luận văn được tổ chức thành ba chương với nội dung chính như sau:
CÔNG NGHỆ MOBILE AGENT
Công nghệ Agent [1],[3],[5],[12],[15]
Sẽ thật không dễ dàng khi đi tìm một khái niệm chính xác cho agent Nó là một khái niệm cực kỳ rộng lớn, bao hàm nhiều vấn đề mà theo nhà nghiên cứu Krogh “Agent là gì? Nó là rất nhiều thứ Nếu cố gắng tìm ra một mẫu thức chung về hoạt động hay lý thuyết về agent thì bạn có thể gặp sai lầm”, và ông đã chỉ ra các điểm mâu thuẫn giữa các khái niệm agent như tính tiên đoán, tính phản ứng, tính suy diễn
An agent is a computer software that is designed to operate autonomously or semi-autonomously, exhibiting both proactive and reactive behaviors Agents are designed to communicate with other individual software agents and have the ability to form collaborative multi-agent systems.
Cũng có thể định nghĩa về agent theo các quan điểm ứng dụng:
- Agent là một đại diện cho người sử dụng thực hiện các hành động theo nhiệm vụ trong hệ thống hiện tại hay trên một hệ thống khác
- Agent là một phương tiện hoặc một công cụ có thể hành động thông minh để hoàn thành nhiệm vụ hoặc tối đa mục tiêu
Agent đôi khi là một Robot
Agent là sự kết hợp của nhiều kỹ thuật hiện đại
Trên Internet, một tác nhân (hay một tác nhân thông minh) là một chương trình có khả năng thu thập thông tin hoặc thực hiện một số dịch vụ khác mà không cần sự can thiệp của con người Những tác nhân này thường hoạt động theo lịch trình được lập sẵn, giúp tự động hóa các tác vụ và cải thiện hiệu quả.
Tuy nhiên, theo một định nghĩa thường được sử dụng, agent là hệ thống tính toán hoạt động tự chủ trong một môi trường nào đó, có khả năng cảm nhận môi trường và tác động vào môi trường
Ngoài ra, các agent có thể được định nghĩa để thao tác trong các lĩnh vực:
- Giám sát các trạng thái và thông báo cho người dùng khi có báo động hoặc tập hợp các trạng thái được phát hiện
- Thực hiện các hành động thay mặt cho người dùng
- Cung cấp an toàn trong truy cập và giao dịch
- Cải thiện hệ thống mạng và hệ thống phức tạp, quản trị mạng
- Tối ưu hoá hệ thống bằng các kỹ thuật hướng mục tiêu
Các hệ thống phân tán
AI & khoa học nhận dạng
Kỹ thuật cơ sở dữ liệu và cơ sở tri thức
Hình 1 1 Agent là sự kết hợp của nhiều công nghệ
Ví dụ về agent là chương trình Inforgate, chương trình này có chức năng thu thập thông tin người dùng quan tâm và tự động gửi thông báo đến cho người dùng khi có tin mới
1.1.1.1 Các đặc tính chính của agent
- Tính tự trị: là khả năng tự kiểm soát bản thân của agent sau khi được giao việc mà không cần sự can thiệp nào của người dùng hoặc agent khác Khả năng này của agent chủ yếu được quyết định bởi tri thức trang bị cho agent Để đánh giá tính tự trị của agent người ta thường dựa vào hai đặc tính là hướng đích và tính chủ động
Tính di động đề cập đến khả năng chuyển từ môi trường thực thi này sang môi trường thực thi khác Di động mạnh cho phép hệ thống di chuyển cả mã chương trình và trạng thái thực thi của tác nhân, trong khi di động yếu chỉ khả dụng cho việc di chuyển mã chương trình giữa các môi trường thực thi 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 thì không thể di chuyển được.
- Khả năng cộng tác: là khả năng liên lạc, phối hợp hoạt động của các agent với các agent khác cùng môi trường hay với các loại đối tượng khác trong những môi trường khác
- Tính thích nghi: là khả năng agent có thể hoạt động trên những môi trường lạ và cảm nhận được những thay đổi
1.1.1.2 Agent thông minh (Intelligent Agent)
Agent thông minh là một agent có thêm những khả sau [02]:
Đại lý thường được đặt trong một môi trường năng động và liên tục thay đổi Do đó, đại lý phải luôn theo dõi môi trường để phản ứng kịp thời, đảm bảo thích ứng tốt với các biến động liên tục.
- 14 - những thay đổi của môi trường
- Hành động chuyên nghiệp hay tính hướng đích (Proactive): Là một thuộc tính quan trọng của agent, giúp phân biệt agent với object Agent luôn kiên trì theo đuổi mục tiêu, mặc dù các nỗ lực có thể thất bại Agent có khả năng tạo ra mục tiêu tại những thời điểm khác nhau, có khả năng nắm bắt các cơ hội,
Vấn đề quan trọng trong các kiến trúc agent đó là cân bằng giữa phản ứng và hoạt động Nếu agent thiên về phản ứng lại thì nó sẽ điều chỉnh kế hoạch của nó và dẫn đến không đạt được mục tiêu, nếu agent không phản ứng lại thích đáng thì nó sẽ phí thời gian cố gắng theo đuổi các kế hoạch không còn thích đáng hoặc thích hợp nữa
- Chắc chắn (robust): Do hành động có khả năng thất bại trong môi trường luôn thay đổi, agent phải có thể khôi phục lại từ những thất bại này, nghĩa là nó phải chắc chắn
- Mềm dẻo (flexible): Là một tiếp cận tự nhiên để đạt đến sự chắc chắn Bằng cách có một loạt cách thức để đạt được mục tiêu đề ra, agent luôn có sự thay thế khi kế hoạch thất bại
- Xã hội (social): Agent hầu như luôn cần phải tương tác với các agent khác (hay con người) để đạt được mục đích Sự tương tác này thường ở mức độ cao hơn việc trao đổi thông điệp như “thông báo”, “yêu cầu”, “đồng ý”… Tương tác agent được coi giống như là các loại tương tác của con người: thương lượng, phối hợp, hợp tác và làm việc theo nhóm
- Cơ động Mobility): Agent có khả năng di chuyển trên mạng
- Trung thực (Veracity): Agent không có ý truyền đạt thông tin sai, không
- 15 - làm gì ngược lại với mục tiêu đề ra
- Rộng lượng (Benevolence): Các agent không có những mục tiêu xung đột, vì vậy mỗi agent sẽ cố gắng thực hiện công việc của nó
- Hợp lý (Rationality): Agent sẽ hành động để đạt mục tiêu của nó, và sẽ không hành động để ngăn cản mục tiêu đạt được
- Học hỏi/thích nghi (Learning/Adaption): Agent luôn cải thiện sự thực thi
Khả năng suy luận là quá trình rút ra kết luận dựa trên các hành vi lặp đi lặp lại của người dùng Bằng cách quan sát các mẫu hành vi này trong một thời gian dài, các nhà nghiên cứu và doanh nghiệp có thể hiểu được động cơ, sở thích và nhu cầu ẩn của người dùng Khả năng suy luận đóng vai trò quan trọng trong việc phát triển sản phẩm và dịch vụ phù hợp với mong muốn của người dùng, giúp cải thiện trải nghiệm người dùng và tăng cường sự gắn kết của họ.
Công nghệ Mobile Agent
Sự phát triển không ngừng của các kỹ thuật tiên tiến về máy tính, đặc biệt là các giải pháp mạng, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã làm gia tăng số người sử dụng Internet đến con số hàng trăm triệu Các đặc điểm của nguồn thông tin tổ chức mạng cũng như việc khai thác xử lý thông tin ngày càng trở nên phức tạp và đa dạng hơn, có thể kể đến các khuynh hướng chính yếu sau:
- Các thiết bị di động (Mobile devices): Việc cung cấp các phần mêm, các dịch vụ hỗ trợ hiệu quả cho lớp thiết bị di động (laptop, PDAs, đến điện thoại di động hay sổ tay điện tử) này vẫn đang phải đối mặt với nhiều khó khăn vì các thiết bị di động thường có tài nguyên hạn hẹp, và thường dựa trên các kết nối băng thông thấp, độ trễ cao của đường điện thoại hay mạng không dây
- Người dùng di động (Mobile users): Ngày nay người dùng thường có nhu cầu truy cập vào máy tính của mình, tài khoản của mình ở bất kỳ đâu, vì thế hỗ trợ kết nối ở mọi nơi mọi lúc và trên mọi thiết bị là một thách thức được đặt ra
- Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử dụng dịch vụ đã không còn thoả mãn với các cơ chế thụ động, mà người dùng thường có khuynh hướng muốn chuyên biệt hoá nhu cầu của mình một cách chủ động Internet là cơ sở để thực hiện mong muốn này, vấn đề còn lại là khả năng hỗ trợ chuyên biệt hoá của các ứng dụng mạng dành cho người dùng
Thế giới thông tin trực tuyến đang chứng kiến sự gia tăng bùng nổ dữ liệu Tuy nhiên, dữ liệu này thường đến từ nhiều nguồn khác nhau, dẫn đến sự thiếu đồng nhất trong tổ chức Điều này tạo ra thách thức cho người dùng khi truy vấn thông tin vì họ phải đối mặt với nhiều cấu trúc dữ liệu khác nhau.
- Gia tăng sử dụng mạng cục bộ: Việc cách mạng Intranet được xây dựng phổ biến là một điều kiện tốt để triển khai các kỹ thuật mới trong việc xây dựng các ứng dụng mạng, vì Intranet cho phép thiết lập an toàn hệ thống dễ dàng hơn trong một tập hợp mang tính cộng tác và tin cậy
- Môi trường không đồng nhất: Khi kết nối các máy tính, các mạng cục bộ vào Internet, các ứng dụng người dùng phải đối mặt với một môi trường không đồng nhất cả về phần cứng lẫn kiến trúc, hệ điều hành Và bài toán tương thích, dễ mang chuyển sẽ là vấn đề cần giải quyết
- Sự khập khiễng về đường truyền: Mặc dù ngành viễn thông đã đạt được những tiến bộ đáng kinh ngạc và cho ra đời các loại cáp quang với độ truyền tải nhanh đáng kể, đa số người dùng vẫn bị giới hạn với các kết nối như Modem, các đường truyền băng thông thấp với mạng không dây
Với tất cả những đặc điểm trên đây, các ứng dụng phân tán phát triển theo mô hình Client- Server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc đồng bộ, đòi hỏi đường truyền băng thông cao, độ trễ thấp và cuối cùng là các dịch vụ thiếu linh động, khó thay đổi hay bổ sung Mobile Agent là một mô hình trong đó các tiến trình- được gọi là Agent- có tính tự trị và khả năng di động từ máy chủ sang máy khách để hoàn tất các tác vụ Ý tưởng chủ đạo của Mobile Agent là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra sự tương thích mạnh trên các môi trường không đồng nhất Mobile Agent với các ưu điểm này hứa hẹn một giải pháp mới, hiệu quả và dễ dàng hơn trong việc phát triển ứng dụng phân tán
1.2.1.2 Sự tiến hoá từ các mô hình ứng dụng phân tán
Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hình client – server sẽ thực hiện giao tiếp thông qua cơ chế truyền thông điệp hoặc các lời gọi hàm từ xa (RPCs) Các mô hình giao tiếp này thường phải đồng bộ, nghĩa là phía client tạm ngưng hoạt động của mình trong thời gian gửi yêu cầu đến server và đợi đến khi nhận được kết quả trả về từ server Một kiến trúc tiến bộ hơn là Remote Evaluation (REV) do Stamos và Gifford đưa ra vào năm 1990 Trong mô hình REV, thay vì yêu cầu thực hiện các hàm từ xa thì client chỉ việc gửi mã nguồn các hàm của nó đến server và yêu cầu server thực thi rồi trả về kết quả Một số hệ thống gần đây cũng đã giới thiệu khái niệm thông điệp chủ động (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của chương trình để thực thi tại đó Mobile agent là mô hình tiến hoá tiên tiến nhất so với các mô hình trước đó
Mobile agent là danh từ ghép giữa agent và mobile Một mobile agent là một chương trình có khả năng di chuyển một cách tự trị từ nút mạng này sang nút mạng khác và thực hiện các xử lý thay thế cho con người để đạt được mục tiêu được giao
- 22 - phó Khi di chuyển, các mobile agent đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành, nhờ vậy mobile agent có thể dừng việc thi hành đang thực hiện tại máy này, di chuyển sang máy khác và khôi phục lại sự thi hành tại máy đích
Hình 1 2 Sự tiến hóa của mô hình mobile agent
Mobile Agent là những thành phần phần mềm, bao gồm mã chương trình, dữ liệu và trạng thái hoạt động, có thể tự mình di chuyển từ nơi này sang nơi khác
Mobile Agent chính là 1 dạng của mobile code (là những chương trình chuyển mã đến Client và thực thi ở đó)
Mobile Agent ngoài những tính năng cơ bản giống với mobile code còn có khả năng mang theo mình dữ liệu, trạng thái thực thi, di chuyển trong mạng dưới sự kiểm soát của chính nó Vì vậy Mobile Agent an toàn hơn mobile code khi sử dụng
1.2.1.4 Tính chất của Mobile Agent
- Có khả năng di trú từ nơi này sang nơi khác
- Liên lạc được với nhau, nhân bản, nhập lại và tổng hợp tính toán
- Một số agent có khả năng cung cấp dịch vụ hoặc giao diện cho các ứng dụng kế thừa
- Có khả năng xác định và dùng những tài nguyên trên máy tính đang chứa nó
1.2.2 Các đặc tính của Mobile Agent
Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của agent sau khi được giao việc mà không cần có sự can thiệp nào của người dùng hoặc các agent khác Hai đặc tính hướng đích (goal-orient) và tính tự chủ (pro-activeness) thường được dùng để đánh giá mức độ tự trị của agent Khả năng tự trị của agent chủ yếu được quyết định bởi tri thức trang bị cho agent
Hệ đa Agen
Một hệ đa agent là một tập hợp các agent, có mục tiêu riêng, miền tri thức riêng nhưng có thể tương tác với nhau để hoàn thành mục tiêu chung, tổng thể của hệ thống
1.3.2.Môi trường tính toán thích hợp cho hệ đa agent
Các môi trường và dạng bài toán thích hợp cho hệ đa agent bao gồm [34]:
• Hệ đa agent có thể giải quyết một bài toán vượt quá khả năng của một agent
Hình 1 5 Các bước của kỹ thuật Autonomous Code
Hệ đa agent là một phương pháp tiếp cận để giải quyết các bài toán phân tán, trong đó gồm nhiều thành phần tự chủ tương tác trong một xã hội agent Những thành phần này tuân theo các quy tắc xã hội được định nghĩa nhằm điều chỉnh hành vi và tương tác của chúng Bằng cách sử dụng hệ đa agent, các nhà nghiên cứu có thể mô hình hóa và phân tích các hệ thống phức tạp có nhiều thành viên khác nhau, mỗi thành viên sở hữu các mục tiêu và khả năng riêng.
• Hệ đa agent cung cấp các phương pháp giải quyết các bài toán mà thông tin được thu thập từ nhiều nguồn khác nhau
• Cách tiếp cận hướng agent phù hợp khi hệ thống phải hành động một cách tự chủ để thay mặt người dùng.
Ngôn ngữ truyền thống giữa các AGENT
KQML [15] được viết tắt của từ “Knowledge Query and Manipulation Language” có nghĩa là ngôn ngữ thao tác và truy vấn tri thức Nó không chỉ là ngôn ngữ mà còn xác định giao thức cho việc trao đổi thông tin và tri thức giữa các agent
KQML là một ngôn ngữ được sử dụng để truy vấn và thao tác tri thức Do đó nó có các đặc trưng sau [16]:
• KQML là giao thức và ngôn ngữ giao tiếp, hướng thông điệp, và là ngôn ngữ bậc cao (sử dụng từ vựng và ngôn ngữ gần với ngôn ngữ người dùng).
ONTOLOGY TRONG TÁC TỬ
Ontology: [5], [11], [16],[17]
Trong những năm gần đây, Ontology đã trở thành một thuật ngữ được biết đến nhiều trong lĩnh vực khoa học máy tính và có ý nghĩa khá quan trọng trong các ứng dụng thực tiễn Ontology giúp con người và máy có thể hợp tác, cùng làm việc, giúp máy có thể “hiểu” và có khả năng xử lý thông tin một cách hiệu quả Định nghĩa ontology : Ontology là một đặc tả hình thức của sựkhái niệm hóa về một lĩnh vực ứng dụng cụ thể Định nghĩa này nhấn mạnh hai điểmchính: sự khái niệm hóa (conceptualisation) là hình thức và do đó cho phép suy diễn bởi máy tính; và một ontology trên thực tế được thiết kế cho một miền ứng dụng cụ thể nào đó Các ontology bao gồm các khái niệm (các lớp - classes), các quan hệ (các thuộc tính- properties), các thể hiện (instances) và các tiên đề (axioms)
Các ontology hiện nay có nhiều cấu trúc tương tự nhau, thông thường gồm 4 thành phần chính: đối tượng, lớp, thuộc tính và quan hệ Các thành phần này giúp định nghĩa và mô tả các khái niệm trong phạm vi của ontology.
Thực thể (instance) là phần cơ bản của một ontology Các thực thể trong một ontology có thể bao gồm các thực thể rời rạc như con người, con vật, xe, nguyên tử, hành tinh, trang web, cũng như các đối tượng trừu tượng như con số và từ
Lớp (class) là những nhóm, bộ hoặc tập hợp các đối tượng Lớp có thể phân loại các thực thể, các lớp khác, hay một tổ hợp của cả hai
Một lớp có thể bao gồm nhiều lớp hoặc được bao gồm trong một lớp khác Một lớp được bao gồm trong lớp khác được gọi là lớp con hoặc kiểu con của lớp bao gồm (kiểu cha) Mối quan hệ bao gồm được sử dụng để tạo ra cấu trúc phân cấp của các lớp Điều này dẫn đến khả năng kế thừa các thuộc tính từ lớp cha sang lớp con.
Các thực thể trong một ontology có thể được mô tả bằng cách liên hệ chúng với những thứ khác, thường là các đặc điểm riêng hay bộ phận gọi là thuộc tính Một thuộc tính có thể là một lớp hay một cá thể Kiểu của đối tượng và kiểu của thuộc tính xác định kiểu của quan hệ giữa chúng Một quan hệ giữa một đối tượng và một thuộc tính biểu diễn một sự kiện đặc thù cho đối tượng mà nó có liên hệ
Các thực thể trong một miền ontology có quan hệ sẽ cho biết các thực thể liên hệ với thực thể khác như thế nào Quan hệ là của một loại (hay lớp) cụ thể này chỉ rõ trong ngữ cảnh nào thực thể được liên hệ với thực thể khác trong ontology.Phần lớn sức mạnh của ontology nằm ở khả năng diễn đạt quan hệ Tập hợp các quan hệ cùng nhau mô tả ngữ nghĩa của domain Tập các dạng quan hệ được sử dụng (lớp quan hệ) và cây phân loại thứ bậc của chúng thể hiện sức mạnh diễn đạt của ngôn ngữ dùng để biểu diễn ontology
Ontology thường phân biệt các nhóm quan hệ khác nhau Ví dụ nhóm các quan hệ về:
• Quan hệ giữa các lớp
• Quan hệ giữa các thực thể
• Quan hệ giữa một thực thể và một lớp
• Quan hệ giữa một đối tượng đơn và một tập hợp
• Quan hệ giữa các tập hợp
Với ý nghĩa và cấu trúc như trên, Ontology đã trở thành một công cụ quan trọng trong lĩnh vực khoa học máy tính, Ontology có một số lợi ích như :
• Để chia sẻ những hiểu hiểu biết chung về các khái niệm, cấu trúc thông tin giữa con người hoặc giữa các hệt hống phần mềm
• Cho phép tái sử dụng tri thức
• Cho phép tri thức độc lập với ngôn ngữ: Cho phép tri thức trở nên nhất quán và tường minh:
• Cung cấp một phương tiện cho công việc mô hình hóa
• Cung cấp một phương tiện cho việc suy luận
Bước 1: Xác định miền quan tâm và phạm vi của Ontology: Giống như mọi công đoạn đặc tả khác, đặc tả Ontology bắt đầu bằng việc trả lời những câu hỏi mang tính phân tích để nhận diện chính xác các yêu cầu Thông thường, các yêu cầu đối với một hệ thống Ontology là mô tả miền quan tâm nhằm phục vụ cơ sở tri thức trong việc giải quyết những mục đích chuyên biệt Do đó, những câu hỏi này thường là:
• Ontology cần mô tả miền nào?
• Ontology phục vụ cho mục đích chuyên biệt gì?
• Cơ sở tri thức trong Ontology sẽ trả lời những câu hỏi gì?
• Ontology nhằm vục vụ đối tượng nào?
• Ai là người sẽ xây dựng, quản trị Ontology?
Trong quá trình xây dựng Ontology, câu trả lời cho các câu hỏi dạng này có thể thay đổi liên tục do mục đích sử dụng cơ sở kiến thức có thể thay đổi hoặc có thêm tính năng mới cần bổ sung.
Bước 2: Xem xét việc kế thừa các Ontology có sẵn: đây là một công đoạn thường hay sử dụng để giảm thiểu công sức xây dựng một Ontology
Bước 3: Liệt kê các thuật ngữ quan trọng trong Ontology: Đây là bước rất ích hữu, làm tiền đềcho hai bước tiếp theo làxây dựng cấu trúc lớp phân cấp và định nghĩa các thuộc tính cholớp Công đoạn này bắt đầu bằng việc liệt kê tất cả các thuật ngữ xuất hiện trong miền quan tâm như tên khái niệm, quan hệ, thuộc tính
Bước 4: Xây dựng các lớp và cấu trúc lớp phân cấp: một trong hai bước quan trọng nhất của công việc xây dựng một Ontology
Nhìn chung, có nhiều hướng tiếp cận khác nhau cho vấn đề xây dựng cấu trúc lớp phân cấp Có thể kể ra ba hướng như sau:
• Hướng xây dựng từ trên xuống :bắt đầu bằng các lớp có mức độ tổng quát cao nhất, sau đó triển khai dần đến lớp lá
• Hướng xây dựng từ dưới lên : Ngược với hướng xây dựng cấu trúc lớp phân cấp từ trên xuống, hướng này bắt đầu bằng việc xác định các lớp được cho là cụ thể nhất, sau đó tổng quát hóa đến khi được lớp gốc
• Cách kết hợp: cách này kết hợp cả hai hướng xây dựng trên Đầu tiên chọn các lớp nổi bật nhất trong miền quan tâm, sau đó tổng quát hóa và cụ thể hóa cho đến khi được cấu trúc mong muốn
Bước 5: Định nghĩa các thuộc tính và quan hệ cho lớp:Bản thân các lớp nhận được ở bước trên chỉ mới là những thuật ngữ phân biệt với nhau bằng tên gọi Về cơ bản, chúng chưa đủ để phục vụ cho việc biểu diễn tri thức Muốn như vậy, các thuộc tính của lớp cần được định nghĩa
• Về mặt ý nghĩa, các thuộc tính có thể được chia làm hai loại:thuộc tính bên trong và thuộc tính bên ngoài
• Về mặt giá trị,các thuộc tính cũng được chia làm hai loại:thuộc tính đơn và thuộc tính phức Thuộc tính đơn là các giá trị đơn ví dụ: chuỗi, số , còn thuộc tính phức có thể chứa hoặc tham khảo đến một đối tượng khác
Bước 6: Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp: Các ràng buộc giới hạn giá trị mà một thuộc tính có thể nhận
Các phương pháp mở rộng truy vấn trong truy xuất thông tin dựa trên Ontology
2.2.1 Các bước thực hiện mở rộng truy vấn dựa trên Ontology
Các khái niệm trong bản thể học không cần phải được mô tả bằng một thuật ngữ duy nhất Thông thường, mỗi khái niệm được mô tả bởi một số từ đồng nghĩa Trong trường hợp đó, hệ thống phải khử nhập nhằng thuật ngữ đó để nó phù hợp với một khái niệm ontology duy nhất Có 2 phương pháp khử nhập nhằng đó làthực hiện bằng thủ công hoặc tự động
Khử nhập nhằng nghĩa của từ đề cập đến quá trình lựa chọn nghĩa chính xác cho một từ từ một tập các ngữ nghĩa có thể hoặc lựa chọn trong các thuật ngữ của ontology để ánh xạ đến một thuật ngữ mà chỉ có duy nhất một khái niệm chính xác
+ Lựa chọn thuật ngữ để mở rộng
Sau khi thực hiện khử nhập nhằng các thuật ngữ, phương pháp này thực hiện lựa chọn các thuật ngữ mà có liên quan tới khái niệm đã được khử nhập nhằng bằng quan hệ trực tiếp trong ontology
2.2.2 Giải pháp mở rộng truy vấn trong truy xuất thông tin dựa trên bản thể học (ontology)
Lý do lựa chọn giải pháp
Mở rộng truy vấn dựa trên Ontology là cách tiếp cận có nhiều ưu điểm do ontology cho phép thể hiện nhiều mức độ đồng nghĩa từ cú pháp cho tới ngữ nghĩa, cùng các quan hệ giữa các từ khóa Những ưu điểm nổi trội của ontology bao gồm:
- Khả năng xây dựng, phát triển tự động và bán tựđộng;
- Khả năng tổ chức lưu trữ và sẵn sàng cho việc sửdụng;
- Khả năng đáp ứng nguồn tri thức phong phú với độ tin cậycao;
- Đồng thời giảm thiểu các chi phí và công sức cho việc huấn luyện, làm giàu nội dung cho ontology
Dựa vào những ưu điểm kể trên, ontology đã được xem như một giải pháp hứa hẹn trong mở rộng truy vấn.
Java AGENT Development Framework(JADE)
- JADE là phần mềm dạng middle-ware phục vụ cho việc phát triển hệ đa tác tử Nó hỗ trợ việc xây dựng từng agent trong hệ đa agent Cung cấp các dịch vụ cho từng hoạt động của agent, các công cụ phục vụ cho việc debug và agent xây dựng dựa trên chuẩn FIFA
- JADE là một hệ thống mã nguồn mở, được xây dựng trên ngôn ngữ Java
2.3.2 Cấu trúc của JADE platform
Nền tảng JADE được thiết kế để hỗ trợ các tác nhân tương tác và trao đổi thông tin Nó bao gồm nhiều container độc lập và có thể chạy trên các máy chủ riêng biệt Hai loại container chính trong JADE là:
-JADE main-container: Mỗi platform chỉ có một main-container Container này được khở tạo và hủy cùng với platform Nó chứa một số agent quan trọng của JADE platform như: oRMA (Remote Management Agent): Hoạt động như màn hình điều khiển, phục vụ việc quản lý platform o DF (Directory Facilitator): Là một agent cung cấp dịch vụ trang vàng
+ Trang vàng (Yellow-page): Là một dịch vụ cung cấp chức năng quản lý việc giao tiếp giữa các agent, đối chiếu thông tin trao đổi o AMS (Agent Management System): Là agent theo dõi quản lý sự truy cập và sử dụng agent platform Cung cấp dịch vụ trang trắng (white-page)
+ Trang trắng (White-page) cung cấp chức năng quản lý việc đăng ký của agent, quản lý ID của các agent đã đăng ký và quản lý vòng đời của agent + JADE agent-container: Chứa các agent của người sử dụng, nó có thể nằm trên các host khác nhau
2.3.3 Một số lớp quan trọng trong thư viện JADE
- Gói jade.core: Cài đặt các thành phần cơ bản của hệ thống Nó chứa lớp Agent, các agent được tạo ra bắt buộc phải kế thừa từ lớp này
Ngoài ra nó còn chứa gói ade.core.behavior: cung cấp các hàm cài đặt nhiệm vụ cho agent
- Lớp jade.core.Agent: cung cấp các phương thức đăng ký với platform, các phương thức xác định trạng thái của agent, quản lý trạng thái và các phương thức hoạt động của agent
Cách tạo agent: public class MyAgent extends Agent {
// some attributes public void setup() {
Gói jade.core.behavior: Chứa các lớp cho phép tạo ra các hoạt động của agent từ đơn giản đến phức tạp Ta có thể tạo ra các hành động cho agent bằng việc kế thừa từ các lớp này
Cách tạo behavior: public class
{super(agent)} public void action()
- Gói jade.lang.acl: cung cấp các phương thức xử lý giao tiếp giữa cácagent theo chuẩn FIFA
- Gói jade.domain: mô tả các thực thể quản lý agent theo chuẩn FIFA Nó cung cấp một số dịch vụ như: life-cycle, yellow-page, white-page
Ngoài ra còn một số gói khác như: jade.wrapper, jade.content, jade.tools…
Điểm mới trong lập trình Android để tạo được các agent
Android là một hệ điều hành mã nguồn mở và là một hệ điều hành dựa trên
Linux cho các thiết bị mobile như Smartphone và máy tính bảng Android phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo Với Android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem vị trí của bạn bè của họ và được cảnh báo khi họ đang có trong vùng phụ cận cho họ một cơ hội để kết nối
Intent nó rất quan trọng nó là linh hồn của android, được sử dụng để tải Activity, gửi thông tin cho BroadcastReceiver, hoặc gọi 1 Service Khái niệm như
“Message” cho phép truyền thông giữa các thành phần trong ứng dụng, hay giữa các ứng dụng với nhau Sử dụng Intent để thực hiện:
+ Hiển thị trang web hoặc danh sách Contacts
• Activity - Khái niệm giao diện người dùng, trình bày một màn hình hơn trong ứng dụng Thông thường nó chứa 1 hay nhiều View
• Content Provider – Thông qua Content Provider,
Có thể trình bày dữ liệu, lưu, truy xuất dữ liệu, và ứng dụng có thể sử dụng dữ liệu từ ứng dụng khác
Service là một thành phần ứng dụng có khả năng chạy các tác vụ dài hạn ẩn dưới nền, không phụ thuộc giao diện người dùng Dịch vụ này có thể quản lý các tương tác mạng, phát nhạc, thực hiện các phép toán I/O và nhiều nhiệm vụ khác.
Hoạt động của các Agent
Một agent có lý trí là agent làm các việc theo lẽ phải Điều đó dẫn đến vấn đề chúng ta phải đánh giá sự thành công của agent như thế nào (how) và khi nào (when)
Tiêu chuẩn đánh giá sự thực hiện
Chúng ta sử dụng thuật ngữ tiêu chuẩn đánh giá sự thực hiện cho tiêu chuẩn how − tiêu chuẩn xác định xem như thế nào là một agent là thành công Hiển nhiên không có một tiêu chuẩn đánh giá cố định nào thích hợp cho tất cả các agent Chúng ta có thể hỏi agent theo quan điểm chủ quan nó hạnh phúc như thế nào với sự thực hiện của chính nó, nhưng một vài agent không thể trả lời, và một vài agent khác lừa dối chính chúng
Tiêu chuẩn when để đánh giá sự thực hiện cũng quan trọng Nếu chúng ta đánh giá xem có bao nhiêu bụi bẩn agent làm sạch trong giờ đầu tiên trong ngày, chúng ta có thể thoả mãn với các agent khởi động nhanh (thậm chí chúng làm ít hoặc không làm sau thời điểm đó), và không hài lòng với những agent làm việc hợp lý Vì vậy, chúng ta muốn đánh giá sự thực hiện trên toàn thời gian hoạt động, đó là một ca làm việc 8 giờ hoặc thời gian tồn tại của agent
Một agent thông thái biết kết quả của các hành vi của nó ngay hiện thời và có thể hành động sao cho phù hợp, nhưng thông thái không có trong thực tế
Những gì mà agent nhận biết được từ xa (theo nghĩa thời gian) Chúng ta gọi tiền sử giác quan một cách đầy đủ này là “chuỗi kết quả tri giác”
Ánh xạ lý tưởng từ chuỗi kết quả nhận thức sang hành vi phản ánh cách tác tử hành động dựa trên chuỗi kết quả này Bằng cách xây dựng danh sách hành vi của tác tử cho từng chuỗi kết quả nhận thức, chúng ta có thể mô tả tác tử đó Một danh sách như vậy được coi là ánh xạ từ chuỗi kết quả nhận thức sang hành vi Theo đó, phép ánh xạ lý tưởng mô tả hành vi của tác tử lý tưởng đối với từng chuỗi kết quả nhận thức.
THIẾT KẾ CÀI ĐẶT ỨNG DỤNG CÔNG NGHỆ TÁC TỬ DI ĐỘNG TRONG
Phân tích và thiết kế
- Quản lý các khoản thu chi theo từng hạng mục:
Với chức năng quản lý theo danh mục, người dùng có thể tự ý thêm các khoản thu hoặc chi vào ứng dụng Mỗi danh mục được phân loại tương ứng với một biểu tượng cụ thể nhằm hỗ trợ người dùng dễ dàng theo dõi và quản lý tiền bạc của mình.
- Quản lý các khoản vay nợ:
Các khoản đều được đánh dấu theo màu sắc riêng, khi có khoản nào được thêm, nội dung chi tiết khoản đó sẽ được hiển thị ở dưới cùng với số tiền thêm vào mục đó Ứng dụng quản lý chi tiêu cá nhân được viết cho các loại smart phone sử dụng hệ điều hành Android 4.2
Các bước xây dựng biểu đố usecase cho hệ thống quản lý thu chi:
- Hệ thống gồm người sử dụng phần mềm và bộ phận quản lý Trong đó, người sử dụng là tác nhân trực tiếp, còn lại có cán bộ quản lý và kế toán
+ Người dùng: quản lý các khoản thu chi cá nhân, thêm các khoản vay và xem khoản nợ đã được tính toán
+ Cán bộ quản lý: phân quyền sử dụng
+ Kế toán: tính toán khi người dùng thêm các khoản thu chi và vay nợ…
+ Người dùng thêm các khoản thu, khoản chi và kế hoạch vay, xem khoản nợ
+ Kế toán tính toán đưa ra khoản nợ nếu có
Hình 3 1 Biểu đồ các use case
Biểu đồ use case thể hiện Pha phân tích: Xác định môi trường của hệ thống trong những điều kiện của nhận thức, những hành động mà một tác tử dùng để tác động nên môi trường của nó, và dữ liệu bên ngoài
Kịch bản use case mêu tả hệ thống đang được sử dụng, bao gồm cả những tri thức được thừa nhận, những thông điệp sẽ được gửi đi, và những hành động : Thể loại,khoản thu, khoản chi, khoản vay, khoản nợ được thực hiện bởi tác tử
Quá trình thu thập dữ liệu được thực hiện để xác định miền tri thức cho các role hệ thống Trong hệ thống quản lý thu chi, miền tri thức gồm có:
- Miền tri thức của khoản chi: mã số, tên khoản chi, số tiền, ngày chi
- Miền tri thức của thu: mã số, tên khoản thu, số tiền, ngày thu
- Miền tri thức của khoản vay: mã số, tên khoản vay, số tiền khoản vay, lãi suất, ngày vay, ngày mượn, khoản vay
- Miền tri thức của khoản nợ: mã số, tên khoản nợ, số tiền khoản nợ, ngày vay, ngày mượn
Các ontology trong hệ thống bao gồm:
Mô tả các thuộc tính:
Bảng 3 1 Mô tả bảng khoản chi
Thuộc tính Tên thuộc tính Kiểu dữ liệu Phạm vi
Id Mã khoản chi String 6 tenkhoanchi Tên khoản chi String 35 sotien Số tiền Int ngaychi Ngày chi String 9
Bảng 3 2 Mô tả bảng khoản thu
Thuộc tính Tên thuộc tính Kiểu dữ liệu Phạm vi
Id Mã khoản thu String 6 tenkhoanthu Tên khoản thu String 35 sotien Số tiền Int ngaythu Ngày thu String 9
Bảng 3 3 Mô tả bảng khoản vay
Thuộc tính Tên thuộc tính Kiểu dữ liệu Phạm vi
Id Mã khoản vay String 6 tenkhoanvay Tên khoản vay String 35
Sotien Số tiền Int laixuat Lãi xuất Int ngayvay Ngày thu String 8
Bảng 3 4 Mô tả bảng khoản nợ
Thuộc tính Tên thuộc tính Kiểu dữ liệu Phạm vi
Id Mã khoản nợ String 6 tenkhoanno Tên khoản nợ String 35
Sotien Số tiền Int laixuat Lãi xuất Int
Mô tả các ràng buộc:
Mã khoản chi phải là duy nhất để phân biệt khoản chi này với khoản chi khác
Số tiền phải là kiểu sổ để có giá trị tính toán
Tên khoản chi, ngày chi có giá trị là kiểu xâu ký tự
Mã khoản thu phải là duy nhất để phân biệt khoản thu này với khoản thu khác
Mã khoản vay phải là duy nhất để phân biệt rõ khoản vay
Số tiền, lãi xuất phải là kiểu sổ để có giá trị tính toán
Tên khoản vay, ngày vay có giá trị là kiểu xâu ký tự
Mã khoản nợ phải là duy nhất để phân biệt rõ khoản nợ
3.2.4 Thiết kế và mô tả agent trong hệ thống
Bảng 3 5 Mô tả agent trong hệ thống
Kiểu agent Các tri giác Các hành vi Các mục tiêu Môi trường
Hệ thống quản lý thu chi cả nhân
- Lập kế hoạch thu chi
- Theo dõi tình hình chi tiêu hàng ngày
- Báo cáo so sánh chi tiêu thực tế
- So sánh thu nhập thực nhận với kế hoạch đề ra
- Cập nhật dữ liệu thu,chi
- Các câu hỏi, tìm kiếm
- Cách điều chỉnh chi phù hợp với thu Điều chỉnh chính xác kế hoạch chi cho phù hợp với thu của cá nhân
Bảng 3 6 Mô tả agent tạo khoản chi
Function table khoanchi agent return action
Bảng 3 7 Mô tả agent tạo bảng khoản chi
Function table khoanthu agent return action
Bảng 3 8 Mô tả agent tạo bảng khoản vay
Function table khoanvay agent return action
Bảng 3 9 Mô tả agent tạo bảng khoản nợ
Function table khoanno agent return action
Bảng 3 10 Mô phỏng agent cập nhật dữ liệu
Function Update(state,Update,agents)
For each agent in agents do
Action[agent] Program[agent] Percept[agent]
State Update-Fn(Actions, agent,state)
Bảng 3 11 Mô phỏng agent hiển thị dữ liệu
Function Select(state,select,agents)
For each agent in agents do
Action[agent] Program[agent] Percept[agent]
State select-Fn(Actions, agent,state)
Bảng 3 12 Mô phỏng môi trường mà nó theo dõi phạm vi thực hiện cho mỗi agent
Function Run Eval Evironment(state,Update,agents)
For each agent in agents do
Percept[agent] Get Percept(agent,state)
For each agent in agents do
Action[agent]Program[agent] Percept[agent]
State Update-Fn(Actions, agent,state)