1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cài đặt cấu trúc lưu trữ mô hình COKB trên ngôn ngữ hướng đối tượng

36 445 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 339,95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong trường hợp a quan hệ với r thì quan hệ đó là quan hệ nhị phân và quan hệ đó có thể có cáctính chất phản xạ, đối xứng, bắt cầu v.v… Ví dụ: quan hệ “Thuộc”giữa 1 điểm và 1 đường thẳn

Trang 1

BÁO CÁO THU HOẠCH MÔN HỌC

BIỂU DIỄN TRI THỨC & ỨNG DỤNG

Đề tài: Cài đặt cấu trúc lưu trữ mô hình COKB trên ngôn ngữ hướng đối

Trang 2

Lời nói đầu

Với việc phát triển và phân bố ngày càng rộng rãi trong tất cả các lĩnhvực, dữ liệu là rất lớn và vẫn chưa khác thác để tìm thấy những tính chất, quyluật, điểm mạnh và điểm yếu Do đó, trí tuệ nhân tạo ra đời, đã giúp cho máytính có khả năng phân tích, suy luận ra các quy luật để tìm ra các tri thức mới

Biểu diễn tri thức cũng là một trong những phần quan trọng trong trí tuệnhân tạo Biểu diễn tri thức cũng đã được áp dụng vào các lĩnh vực như giáodục để giải quyết các bài toán, lý, hóa v.v…; y học để chuẩn đoán bệnh chobệnh nhân v.v…

Trong quá trình học tập môn Biểu diễn tri thức và ứng dụng, thầyPGS.TS Đỗ Văn Nhơn đã truyền đạt mô hình COKB (Knowledge Bases ofComputational Objects) và cài đặt cấu trúc lưu trữ trên dựa trên phần mềmMapple Trong bài thu hoạch này, em xin nêu ra ý tưởng về cài đặt cấu trúc lưutrữ dựa trên ngôn ngữ hướng đối tượng, cụ thể là sử dụng ngôn ngữ C# Dựatrên cấu trúc lưu trữ đó, em đã thực hiện một demo để tính toán dựa trên các trithức đã cài đặt sẵn theo mô hình COBK và mạng các đối tượng tính toán(Networks of Computaionals Objects)

Em xin chân thành cám ơn thầy PGS.TS Đỗ Văn Nhơn đã truyền đạtnhững kiến thức quý báu cho em về bộ môn “Biểu diễn tri thức và ứng dụng” để

em có thể hoàn thành bài thu hoạch này

Trang 3

Mục lục

PHẦN I : CƠ SỞ LÝ THUYẾT 3

I Mô hình COKB 3

1 Đối tượng tính toán 3

2 Thành phần của mô hình COKB 4

3 Các loại sự kiện trong mô hình COBK 6

II Mạng đối tượng tính toán 8

PHẦN II : CÀI ĐẶT CẤU TRÚC LƯU TRỮ CỦA MÔ HÌNH COKB TRÊN NGÔN NGỮ HƯỚNG ĐỐI TƯỢNG 13

I Tổng quan 13

II Thiết kế và cài đặt 13

1 Đối tượng tính toán 13

2 Mô hình COKB 23

3 Mạng các đối tượng tính toán 24

PHẦN III : CHƯƠNG TRÌNH DEMO 26

I Giới thiệu về chương trình 26

II Chương trình demo 27

PHẦN IV : KẾT LUẬN 34

PHẦN V : TÀI LIỆU THAM KHẢO 35

Trang 4

PHẦN I : CƠ SỞ LÝ THUYẾT

I Mô hình COKB

1. Đối tượng tính toán

Một đối tượng tính toán (Computational Object) viết tắt là C-object baogồm các tính chất sau:

a) Nó có các thuộc tính có giá trị Một tập hợp bao gồm tất cả các thuộctính của đối tượng O sẽ được ký hiệu bởi M(O)

b) Có những quan hệ tính toán nội tại giữa các thuộc tính bên trong mộtC-object O Những quan hệ đó được thể hiện theo những đặc trưngcủa một đối tượng:

- Cho một tập con A của M(O) Đối tượng O có thể thể hiện nhữngtính chất mà có thể được xác định từ A

- Đối tượng O có thể cho giá trị của một thuộc tính cần lấy

- Nó còn có thể thể hiện các tiến trình suy diễn nội tại trong quátrình xác định các thuộc tính

Cấu trúc của C-object bao gồm 4 phần chính: Attrs, F, Facts, Rules.Trong đó:

 Attrs là tập các thuộc tính

 F là tập các biểu thức được gọi là quan hệ tính toán

 Facts là tập các sự kiện của đối tượng

 Rules là tập của các luật suy diễn trên tập Facts

Ví dụ: tri thức về tam giác bao gồm các góc, cạnh v.v… được thể hiệnqua C-object như sau:

Attrs = {A, B, C, a, b, c, R, S, p, }

F = {A+B+C=π; a/sin(A)=2R; b/sin(B)=2R; c/sin(C)=2R;

a/sin(A)=b/sin(B); },

Trang 5

Facts = {a+b>c; a+c>b; b+c>a ; …},

Rules = { {a>b}<=>{A>B}; {b>c}<=>{B>C}; {c>a}<=>{C>A};

{a=b}<=>{A=B}; {a^2= b^2+c^2}=>{A=pi/2};{A=pi/2}=>{a^2 = b^2+c^2, bc}; }

Một đối tượng còn có những hành vi cơ bản cho việc giải quyết các bàitoán dựa trên những thuộc tính của đối tượng đó Một đối tượng được trang bịkhả năng giải quyết các bài toán như:

a) Xác định bao đóng của một tập các thuộc tính

b) Thực thi suy diễn và đưa ra đáp án cho những câu hỏi về những bàitoán có dạng: xác định một số thuộc tính từ một số thuộc tính kháccho trước

c) Thực thi tính toánd) Đề xuất hoàn tất giả thiết nếu cần thiết

Ví dụ: Cho một đối tượng tam giác với giả thiết cho trước là {a, B, C},câu hỏi là tính diện tích S Đối tượng tam giác đó sẽ cho lời giải gồm ba bướcsau:

 Bước 1: xác định A, theo quan hệ F: A = π–B–C;B–B–C;C;

 Bước 2: xác định b, theo quan hệ F: b= a.sin(B)/sin(A);

 Bước 3: xác định S, theo quan hệ F: S = a.b.sin(C)/2;

2. Thành phần của mô hình COKB

Mô hình cơ sở tri thức của các C-objects (mô hình COBK) bao gồm 6thành phần sau:

(C, H, R, Ops, Funcs, Rules)

Trong đó:

C: là tập các khái niệm về C-objects Mỗi khái niệm trong C là một

lớp của C-objects

Trang 6

H: là tập hợp các quan hệ phân cấp giữa các khái niệm Quan hệ này

là một quan hệ theo thứ tự trên tập C Hình dưới đây thể hiện nhữngquan hệ đặc biệt đó trong các lớp của tam giác:

R: là tập hợp các quan hệ khác trên C-object Trong trường hợp a quan

hệ với r thì quan hệ đó là quan hệ nhị phân và quan hệ đó có thể có cáctính chất phản xạ, đối xứng, bắt cầu v.v… Ví dụ: quan hệ “Thuộc”giữa 1 điểm và 1 đường thẳng, quan hệ “Trung điểm” giữa một điểm

và một đoạn thẳng, v.v…

Ops: là tập hợp các toán tử trên tập C Thành phần này thể hiện một

phần tri thức về toán tử trên các đối tượng Hầu hết các miền tri thứcđều có một thành phần bao gồm các toán tử Trong hình học giải tích,vector có một số toán tử như là tích vô hướng giữa các vector, khoảngcách giữa 2 điểm trong một vector v.v…

Funcs: là tập hợp các hàm giữa các C-objects Tri thức về hàm còn là

một loại phổ biến của tri thức trong hầu hết các miền tri thức trongthực tế, đặc biệt là các lãnh vực về khoa học tự nhiên như toán, lý ,hóa Ví dụ: trong hình học giải tích, chúng ta có các hàm như sau:khoảng cách giữa 2 điểm, khoảng cách từ một điểm tới một đườngthẳng, phép chiếu một điểm hoặc một đường thẳng trên một mặtphẳng

Trang 7

Rules: là tập hợp các luật suy diễn Các luật suy diễn thể hiện cho các

phát biểu, định lý, nguyên lý, công thức v.v… Hầu hết các luật nàyđều được viết dưới dạng “if <facts> then <facts>” trong đó facts là tậpcác sự kiện

Theo mô hình COKB, cơ sở tri thức có thể tổ chức như sau:

a) Một từ điển gồm các khái niệm, trong đó bao gồm các loại đối tượng,thuộc tính, toán tử, hàm, quan hệ và các khái niệm liên quan

b) Bảng về sự mô tả các cấu trúc và chức năng của các đối tượng Ví dụ:chúng ta có thể yêu cầu một tam giác tính toán và trả về các thuộctính của nó

c) Bảng mô tả quan hệ phân cấp giữa các đối tượng

d) Bảng mô tả các quan hệ khác giữa các khái niệm

e) Bảng mô tả các biểu diễn tri thức về toán tử

f) Bảng mô tả các biểu diễn tri thức về hàm

g) Bảng mô tả các loại sự kiện Ví dụ: Một quan hệ sự kiện bao gồmloại quan hệ và danh sách của các đối tượng trong quan hệ

h) Bảng mô tả các luật Ví dụ: Một luật suy diễn bao gồm phần lý thuyết

và phần kết luận Cả hai đều là các danh sách của các sự kiện

i) Một danh sách hay một tập hợp các luật

j) Một danh sách hay một tập hợp các mẫu bài toán

3. Các loại sự kiện trong mô hình COBK

Mô hình COBK gồm có 11 loại sự kiện được chấp nhận Các sự kiện nàyđược đề xuất từ quá trình nghiên cứu các yêu cầu thực tế và các vấn đề trongcác miền tri thức khác nhau

Sự kiện loại 1: Thông tin về loại đối tượng.

Ví dụ:

 ABC là một tam giác vuông

 ABCD là hình bình hành

Trang 8

 Ma trận A là một ma trận vuông.

Sự kiện loại 2: Tính xác định của một đối tượng hay của một thuộc tính

của đối tượng

Sự kiện loại 3: Tính xác định của một đối tượng hay của một thuộc tính

của đối tượng thông qua một giá trị hay một biểu thức hằng

Ví dụ:

 Trong tam giác ABC, giả sử chiều dài cạnh BC = 5

 Trong mặt phẳng (P) có phương trình 2x + 3y –B–C;z + 6 = 0 và điểm M

có tọa độ (1, 2, 3)

Sự kiện loại 4: Sự bằng nhau của một đối tượng hay một thuộc tính của

đối tượng với một đối tượng hay một thuộc tính khác Sự kiện loại 4 rất haygặp, và có rất nhiều các vấn đề liên quan tới nó trên cơ sở tri thức

C-Sự kiện loại 5: C-Sự phụ thuộc giữa các đối tượng và các thuộc tính của

các đối tượng thông qua một công thức tính toán hay một đẳng thức theo cácđối tượng hay các thuộc tính khác

Ví dụ

Trang 9

Trong hình học giải tích: w = 2.u + 3.v; trong đó u,v,w là các vector.

Sự kiện loại 6: Một quan hệ trên các đối tượng hay trên các thuộc tính

của các đối tượng

Ví dụ:

Hai đường thẳng song song

Đường thẳng vuông góc với mặt phẳng

Một điểm thuộc về một đoạn thẳng

Sự kiện loại 7: Tính xác định của một hàm.

Sự kiện loại 8: Tính xác định của một hàm thông qua một giá trị hay

một biểu thức hằng

Sự kiện loại 9: Sự bằng nhau giữa một đối tượng với một hàm.

Sự kiện loại 10: Sự bằng nhau giữa một hàm với một hàm khác

Sự kiện loại 11: Sự phụ thuộc của một hàm theo các hàm hay các đối

tượng khác thông qua một công thức tính toán

Năm sự kiện cuối cùng có liên quan đến tri thức về hàm và thành phầnFuncs trong mô hình COKB

II Mạng đối tượng tính toán

Một quan hệ tính toán F giữa các thuộc tính của các đối tượng hoặc giữacác đối tượng được gọi mà một quan hệ giữa các đối tượng Một mạng các đốitương tính toán bao gồm một tập các C-objects O = {O1, O2, O3, O4, … , On}

và một tập các quan hệ tính toán F = {f1, f2, f3, f4, … , fm} Mạng các đốitượng tính toán được ký hiệu (O, F)

Các ký hiệu trong mạng tính toán:

M(fi) = tập các thuộc tính của các đối tượng tính toán trong quan hệ fi.

Trang 10

M = tập các thuộc tính của các C-objects.

Mi = M ∩ M(Oi), i = 1, 2, 3, …, m Mi là tập các thuộc tính trong đốitượng Oi

Trong một mạng C-Objects (O, F), chúng ta phải giải quyết vấn đề đểxác định (hoặc tính toán) các thuộc tính trong tập G từ các thuộc tính cho trướctrong tập H Vấn đề đó kí hiệu là H  G

Ví dụ 1: Trong hình dưới đây, giả sử AB = AC, cho trước góc A và cạnh

BC ABDE và ACFG là hình vuông Tính cạnh EG

Bài toán được mô tả theo mạng C-Objects như sau:

O = { O1: tam giác ABC với AB = AC, O2: tam giác AEG, O3: hìnhvuông ABDE, O4: hình vuông ACFG }

F = { f1, f2, f3, f4, f5 } với:

 f1: O1.c = O3.c{ Cạnh c trong tam giác ABC = cạnh hình vuông ABDE }

Trang 11

 f2: O1.b = O4.a{ Cạnh b của tam giác ABC = cạnh của hình vuông ACFG }

 f3: O2.b = O4.a{ Cạnh b của tam giác AEG = cạnh của hình vuông ACFG }

 f4: O2.c = O3.a{ Cạnh c của tam giác AEG = cạnh của hình vuông ABDE }

Solution_found  true;

goto step 5;

endelse

Trang 12

Bước 4:

if not Solution_found thenbegin

Select Oi O such that Oi(H) <> H;

if (the selection is successful) thenbegin

H  Oi(H);

Add Oi to Solution;

if (G H) thenbegin

Trang 13

if not Solution_found then

There is no solution found;

else

Solution is a solution of the problem;

Ví dụ 2: Cho một mạng C-objects (O, F) ở ví dụ 1 trên, cho giả thiết H ={ O1.a, O1.A }, tìm { O2.a }

Ta có:

M(f1) = { O1.c , O3.a },M(f2) = { O1.b , O4.a },M(f3) = { O2.b , O4.a },M(f4) = { O2.c , O3.a },M(f5) = { O1.α , O2.α },

M = { O1.a, O1.b, O1.c, O1.A, O2.b, O2.c, O2.A , O2.a, O3.a, O4.a }

Theo thuật toán trên, tiến trình tìm ra lời giải sẽ là:

A0 f 5 → A1 O 1 → A2 f 1 → A3 f 2 → A4 f 3 → A5 f 4 → A6 O 2 → A7

Trong đó:

A0 = A = { O1.a, O1.A },A1 = { O1.a, O1.A, O2.A },A2 = { O1.a, O1.A, O2.A, O1.b, O1.c },A3 = { O1.a, O1.A, O2.A, O1.b, O1.c, O3.a},A4 = { O1.a, O1.A, O2.A, O1.b, O1.c, O3.a, O4.a},A5 = { O1.a, O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b},A6 = { O1.a, O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b, O2.c},A7 = { O1.a, O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b, O2.c, O2.a}

Trang 14

PHẦN II : CÀI ĐẶT CẤU TRÚC LƯU TRỮ CỦA MÔ HÌNH

COKB TRÊN NGÔN NGỮ HƯỚNG ĐỐI TƯỢNG

sử dụng cách tiếp cận hướng đối tượng để biểu diễn tri thức

III Thiết kế và cài đặt

1. Đối tượng tính toán

C-objects được cài đặt thông qua các class Trong class đó sẽ bao gồm tất

cả các thuộc tính của đối tượng, các hành vi, biểu thức và các luật suy diễn.Theo mô hình COKB thì các đối tượng tính toán được chia thành các đối tượng

cơ bản, đối tượng cấp một, đối tượng cấp hai v.v… Và trong một đối tượng tínhtoán phải có một động cơ suy diễn nội tại của nó

Đối với các đối tượng tính toán cơ bản như điểm, góc trong 1 tam giác,

ta có thể cài đặt như sau:

public class Diem {

private string _tenDiem;

Trang 15

public string TenDiem {

get { return _tenDiem; } }

public Diem(string temDiem) {

_tenDiem = temDiem;

} }

Thuộc tính tên điểm là A hoặc B hoặc C v.v Có thể khai bao thêmnhiều thuộc tính nếu có nhu cầu cần thiết

Với đối tượng cấp 1 như đoạn thẳng, cạnh, chúng ta có thể mô tả nhưsau:

public class Canh {

private Diem _diemDau;

private Diem _diemCuoi;

private float? _chieuDai;

public float? ChieuDai {

get { return _chieuDai; } set { _chieuDai = value; } }

public Canh(string canh) {

Trang 16

string[] dsDiem = canh.Split(',');

_diemDau = new Diem(dsDiem[0]);

_diemCuoi = new Diem(dsDiem[1]);

}

public string TenCanh {

get { return _diemDau.TenDiem + _diemCuoi.TenDiem;

} } }

Trong đó, điểm đầu và điểm cuối tương ứng với hai điểm của đoạnthẳng, thuộc tính "Chiều dài" dùng để lưu lại chiều dài của đoạn thẳng Trongđối tượng cấp 1 này có sử dụng đối tượng cơ bản lả "Diem"

Với đối tượng cấp 2 trở lên có thể sử dụng các đối tượng cơ bản và đốitượng cấp 1 Ví dụ: trong class tam giác thì có các đối tượng cơ bản là Diem,Canh, Goc v.v

public class TamGiac {

private Diem _diem1;

private Diem _diem2;

private Diem _diem3;

private Canh _canh1;

private Canh _canh2;

private Canh _canh3;

Trang 17

private Goc _goc1;

private Goc _goc2;

private Goc _goc3;

}

Để khai báo tập các thuộc tính Attrs cho đối tượng tam giác trên, ta sửdụng một mảng để lưu trữ các thuộc tính với các phần tử trong mảng là cácchuỗi

Ví dụ: ThuocTinh = new string[] { "diem1", "diem2", "diem3", "canh1",

"canh2", "canh3", "goc1", "goc2", "goc3", "ChuVi", "DienTich" };

Để gán các tên cụ thể trong mảng (ví dụ như "canh1" được gán bằng

"AB") và gán các tên cụ thể cho các thuộc tính trong class Tam giác, ta xâydựng một hàm KhoiTaoGiaTri(string chuoiThongTin) với chuỗi thông tin chính

là giả thiết từ đề bài toán đã cho Chuỗi từ đề bài này phải là một chuỗi đã đượcquy ước định dạng Định dạng hiện tại được lưu theo dạng:

"TamGiac|ABC:Canh|AB=4;Canh|AC=3;ChuVi=10"

Phần TamGiac|ABC chính là phần khai báo tên đối tượng và kiểu củađối tượng Nếu có một class hình vuông thì khai báo chính là HinhVuong|DEFG Khi thực thi chương trình, chương trình sẽ tự động tìm tên class trùngvới phần khai báo (TamGiac, HinhVuong v.v…) và khởi tạo đối tượng

Hàm KhoiTaoGiaTri(string chuoiThongTin) sẽ tự động thay thế cácchuỗi trong mảng ThuocTinh như "diem1" với giá trị "A", canh1 với giá trị

"AB", "goc1" với giá trị "BAC", tương tự như thế với các giá trị khác Đồngthời trong hàm cũng phải gán các giá trị cho các thuộc tính trong class TamGiac, ví dụ với thuộc tính “_canh1” thì có _canh1.TenCanh = AB và_canh1.ChieuDai = 4 Như vậy, sau hàm KhoiTaoGiaTri(string chuoiThongTin)thì các giá trị tương ứng trong mảng ThuocTinh sẽ là

Trang 18

ThuocTinh = { "A", "B", "C", "AB", "BC", "AC", "BAC", "ABC",

"ACB", "ChuVi", "DienTich" }

và các thuộc tính trong class TamGiac đều được khởi tạo giá trị Mụcđích của việc tách riêng thành 2 phần: một phần là một mảng chứa các thuộctính và một phần là các thuộc tính trong class với mục đích sử dụng mảng choviệc suy diễn, sau đó các giá trị sẽ được lưu lại trong các thuộc tính của classcho các mục đích so sánh, tính toán sau này

Để khai báo cho tập các biểu thức tính toán, ta cũng sử dụng tương tựmột mảng để lưu trữ các biểu thức với các phần tử trong mảng là một chuỗi.Mảng này được lưu trữ với định dạng “Tên hàm trong class:Diễn giải biểuthức:tập các thuộc tính liên quan đến công thức” Ví dụ, ta có mảng:

BieuThucF = new string[] { "TinhChuVi: canh1 + canh2 + canh3 =ChuVi: canh1, canh2, canh3, ChuVi }

Trong mảng trên, được chia thành 3 thành phần:

 TinhChuVi: Khi chương trình đang thực thi suy diễn, nếu biểu thứctrên có thể tạo ra sự kiện mới thì chương trình sẽ tự động gọi phươngthức TinhChuVi() trong class TamGiac, sau đó phương thứcTinhChuVi() sẽ trả về những giá trị cần tính

 canh1 + canh2 + canh3 = ChuVi: là diễn giải cho biểu thức

 canh1, canh2, canh3, ChuVi: là tập các thuộc tính có liên quan trongbiểu thức Nếu như giả thiết có canh2, canh3, ChuVi thì hàmTinhChuVi có thể tính được giá trị còn lại là canh1 Đây là tập được

sử dụng cho việc suy diễn

Hàm TinhChuVi() được cài đặt như sau:

Ngày đăng: 10/04/2015, 11:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w