Chương 1 – Tổng quan hiện các quan hệ tính toán giữa các đối tượng với nhau. Ví dụ như trong miền tri thức về Hình học phẳng, hình chiếu của một điểm lên một mặt phẳng là một Hàm, hay trong miền tri thức về Ma trận và hệ phương trình tuyến tính, phép cộng hay nhân giữa hai ma trận với nhau là một toán tử. Trên cơ sở đó, đề tài này sẽ giải quyết các phương pháp suy diễn trên các thành phần tri thức Hàm và toán tử, cụ thể là đặc tả các thành phần hàm và toán tử, tổ chức lưu trữ và quy tắc suy diễn các thành phần hàm và toán tử cùng các thuật giải suy diễn liên quan. Từ đó, đề tài sẽ góp phần hoàn thiện động cơ suy diễn trên mô hình COKB.
Ngoài ra, đề tài này còn đề nghị một số lớp bài toán mới mà trong công trình [10] tác giả chưa đề cập cùng các thuật giải liên quan. Các lớp bài toán được đề nghị là các lớp bài toán tổng quát, có thể áp dụng trên nhiều miền tri thức thuộc các lĩnh vực khác nhau. Đề tài chọn miền tri thức về Ma trận và hệ phương trình tuyến tính để làm minh hoạ cho các phương pháp và thuật giải suy diễn trên mô hình COKB trên các lớp bài toán khác nhau. Phần minh hoạ sẽ được xây dựng bằng ngôn ngữ Maple.
Khóa luận tốt nghiệp Trang 9 Chương 2 – Mô hình tri thức COKB đầy đủ CHƯƠNG 2: MÔ HÌNH TRI THỨC COKB ĐẦY ĐỦ 2. Mô hình tri thức các đối tượng tính toán Định nghĩa 2.1: Một mô hình tri thức các đối tượng tính toán (Computational Object Knowledge Base) gồm có 6 thành phần như sau (Tham khảo từ [7]): (C, H. Ops, Funcs, Rules) 2. Tập C gồm các khái niệm về đối tượng tính toán.
C là tập hợp các khái niệm trong miền tri thức và mỗi khái niệm là một Lớp đối tượng tính toán. Mỗi lớp đối tượng tính toán được phân cấp dựa theo cấu trúc hay xác định (định nghĩa) của khái niệm trong miền tri thức. Dựa vào sự phân cấp trên chúng ta có các cấp khái niệm sau: - Các khái niệm nền: đây là các khái niệm cơ bản, được công nhận trước trong hầu hết các ngôn ngữ lập trình. - Các khái niệm cấp 1: Đây là các khái niệm được xây dựng dựa trên các khái niệm đã được công nhận trước ở trên.
- Các khái niệm cấp 2: Đây là các khái niệm được xây dựng dựa trên các khái niệm cấp 1 và các khái niệm cơ bản. - Các khái niệm cấp n: Đây là các khái niệm được xây dựng dựa trên các khái niệm cấp (n-1).2: Một đối tượng tính toán (Computational Object hay C-Object), ký hiệu O, có những thành phần đặc trưng sau: (Attr, Facts, Rules) Trong đó: Attrs: Tập các thuộc tính của đối tượng. Facts: Tập các tính chất hay sự kiện vốn có của đối tượng. Rules: Tập các luật.
Khóa luận tốt nghiệp Trang 10 Chương 2 – Mô hình tri thức COKB đầy đủ Trong thành phần Rules sẽ được chia ra làm 2 thành phần con gồm: (Rf,Rr) Rf: Tập các quan hệ suy diễn tính toán. Với mỗi rfi ∈ Rf một quan hệ dạng suy diễn tính toán có dạng như sau: f: e1 = e2 | var(e1) Attr(O), var(e2) Attr(O). Rr: Tập các quan hệ dạng luật dẫn. Ghi chú: Các luật suy diễn rule ∈ Rules là các luật suy diễn nội tại trên các thuộc tính và sự kiện của đối tượng Trong miền tri thức về ma trận và Hệ phương trình tuyến tính, chúng ta có các khái niệm như sau: - Các khái niệm cơ sở: Array, int, real.
- Các khái niệm cấp 1: ma trận, ma trận vuông, ma trận khả nghịch. - Các khái niệm cấp 2: hệ phương trình tuyến tính. Khái niệm về ma trận sẽ được mô hình hoá như sau: MATRAN = ( Attr, Facts, Rules ), với: Attr = { m: int, n: int, K:array[m][n] } Trong đó: m: là số dòng của ma trận, kiểu số nguyên. n: là số cột của ma trận, kiểu số nguyên.
K: là giá trị của ma trận, kiểu array[m][n] (mảng 2 chiều). Với mỗi phần tử aij thuộc K, i <= m, j<=n, aij là kiểu số nguyên. Fact={} Rules = { } Khái niệm về Ma trận vuông: Khái niệm về Ma trận vuông được mô tả như sau: MATRANVUONG = ( Attr, Facts, Rules ), với: Khóa luận tốt nghiệp Trang 11 Chương 2 – Mô hình tri thức COKB đầy đủ Attr = { m: int, n: int, K:array[m][n] } Trong đó: m: là số dòng của ma trận, kiểu số nguyên. n: là số cột của ma trận, kiểu số nguyên.
K: là giá trị của ma trận, kiểu array[m][n] (mảng 2 chiều). Với mỗi phần tử aij thuộc K, i <= m, j<=n, aij là kiểu số nguyên. Fact = { m = n } //Một ma trận vuông sẽ có số dòng bằng số cột. Rules = { } Các hành vi trên đối tượng tính toán MATRANVUONG: Thực hiện biến đổi sơ cấp, tìm hạng của ma trận và quan trọng nhất là tìm giá trị định thức của ma trận vuông.
Khái niệm về Ma trận khả nghịch: Khái niệm về Ma trận khả nghịch được xây dựng như sau:: MATRANKHANGHICH = ( Attr, Facts, Rules ), với: Attr = { m: int, n: int, K:array[m][n] } Trong đó: m: là số dòng của ma trận, kiểu số nguyên. n: là số cột của ma trận, kiểu số nguyên. K: là giá trị của ma trận, kiểu array[m][n] (mảng 2 chiều). Với mỗi phần tử aij thuộc K, i <= m, j<=n, aij là kiểu số nguyên.
Fact={} Rules = { } Các xác định một ma trận nghịch đảo của ma trận khả nghịch: - Gọi Q = (A|I) là ma trận mở rộng của ma trận khả nghịch A với ma trận đơn vị B. - Thực hiện biến đổi sơ cấp trên dòng của Q cho tới khi được dạng: (I|A-1). Khóa luận tốt nghiệp Trang 12 Chương 2 – Mô hình tri thức COKB đầy đủ - Ma trận A-1 trên chính là ma trận nghịch đảo của ma trận A. Từ cách xác định ma trận nghịch đảo của ma trận khả nghịch A ở trên, chúng ta suy ra các hành vi trên một đối tượng MATRANKHANGHICH sẽ bao gồm: Tìm ma trận Q = (A|I), thực hiện biến đổi sơ cấp ma trận Q và từ ma trận biến đổi sơ cấp của Q xác định được ma trận nghịch đảo của ma trận khả nghịch.
Khái niệm về Hệ phương trình tuyến tính: Hệ phương trình tuyến tính là tập hợp các phương trình tuyến tính có dạng m ẩn và n hệ số có dạng: 𝑎11. 𝑥𝑛 𝑏𝑛 Trong đó: aij và bi là các hệ số cho trước, x1 … xn là các ẩn. Ta đặt A = (aij), B = (bi) và x = (xj) lần lượt là ma trận hệ số, cột các hệ số tự do và cột ẩn của hệ phương trình. Như thế, hệ phương trình tuyến tính sẽ có các dạng khác như sau: o Dạng tích ma trận: A.
o Dạng ma trận hoá: ở đây ta hiểu ngầm cột ẩn X: Q = (A|B). Q ở đây được gọi là ma trận bổ sung (hay ma trận mở rộng của hệ phương trình tuyến tính. Giải hệ phương trình tuyến tinh: Ta thực hiện phép biến đổi Gauss-Jorrdan để gỉai hệ phương trình tuyến tính. Các bước như sau: Bước 1: Viết ra dạng Ma trận hoá: (A|B) Bước 2: Thực hiện các phép biến đổi sơ cấp trên dòng.
Nếu gặp trường hợp có một dòng có dạng (0 … 0 | a) (ứng với dạng phương trình tuyến tính 0x1 + … + 0xn = a) thì ngừng biến đổi và kết luận hệ phương trình vô nghiệm. Bước 3: Kết luận: Khóa luận tốt nghiệp Trang 13 Chương 2 – Mô hình tri thức COKB đầy đủ o Hệ phương trình có nghiệm duy nhất khi thu được n dòng khác zero (hay còn gọi là Hạng của ma trận). o Hệ phương trình có vô số nghiệm khi thu được k dòng khác zero với k < n. Từ các bước trên, ta có định lý Knronecker – Capelli như sau: Đặt Q = (A|B) là ma trận mở rộng của hệ phương trình.
Từ đó ta có r(Q) là hạng của ma trận mở rộng Q và r(A) là hạng của ma trận hệ số A. Ta có các trường hợp sau xảy ra: Hệ phương trình có các trường hợp sau: Có nghiệm duy nhất: khi r(Q) = r(A) = A.n; Có vô số nghiệm khi: r(Q) = r(A) = k và k < A.n; Vô nghiệm khi: r(Q) = r(A) + 1; Dựa vào dạng Ma trận hoá của hệ phương trình, ta mô hình hoá đối tượng tính toán HEPHUONGTRINH như sau: HEPHUONGTRINH[A,B] = (Attr, R, Rules) Attr = { A: MATRAN, B:MATRAN, Q:MATRAN } Trong đó: A: là ma trận các hệ số của hệ phương trình, kiểu MATRAN B: là ma trận các hệ số tự do của hệ phương trình, kiểu MATRAN. Q: Ma trận mở rộng (bổ sung) của Hệ phương trình, kiểu MATRAN.n] => [ NGHIEM(Q) = [‘VO SO NGHIEM’] ] } Khóa luận tốt nghiệp Trang 14 Chương 2 – Mô hình tri thức COKB đầy đủ Các hành vi có thể có trên đối tượng tính toán Hệ phương trình: Tìm ma trận mở rộng từ ma trận hệ số và ma trận hệ số tự do, xác định hạng của ma trận hệ mở rộng và thực hiện biến đổi sơ cấp trên ma trận mở rộng. Tập H gồm các quan hệ phân cấp giữa các đối tượng Đây là tập hợp các quan hệ phân cấp trên các đối tượng C.
Các quan hệ phân cấp là các dạng quan hệ đặc biệt như: IS_A, HAS_A. Cấu trúc của quan hệ phân cấp: [ <Tên đối tượng cấp cao>, <tên đối tượng cấp thấp> ] Ví dụ: MATRANVUONG IS_A MATRAN (ma trận vuông là một Ma trận) được cấu trúc như sau: [ MATRAN, MATRANVUONG ]. Tập R gồm các quan hệ giữa các đối tượng tính toán Đây là tập các quan hệ dựa trên các đối tượng tính toán. Mỗi quan hệ được xác định bởi tên qua hệ và các loại đối tượng của quan hệ.
Một quan hệ tính toán R là một quan hệ 2 ngôi giữa các khái niệm trong tập C. Các quan hệ có thể có các tính chất sau: phản xạ, đối xứng, bắc cầu. Cấu trúc một quan hệ: [< Tên quan hệ>,< Loại đối tượng 1>,< Loại đối tượng 2>, ….] { tính chất 1, tính chất 2, …} 2. Tập Ops gồm các toán tử Một toán tử định nghĩa một ánh xạ 2 ngôi Ci x Ci → Ci, với Ci là một khái niệm trong tập C.
Các toán tử thể hiện các quan hệ tính toán giữa các đối tượng với nhau và được biểu diễn thông qua một biểu thức tính toán.