Tìm kiếm dữ liệu theo lân cận ngữ nghĩa

Một phần của tài liệu cơ sở dữ liệu hướng đối tượng với thông tin ngôn ngữ mờ (Trang 91)

Xét câu truy vấn “Cho biết tất cả những sinh viên có tuổi khả năng trẻ”. Các bước thực hiện để trả lời câu truy vấn này như sau:

+ Bước 1: Xây dựng các khoảng tương tự mức k, k 4 thường thì chỉ có tối đa 4 gia tử tác động liên tiếp lên phần tử nguyên thủy c−c+.

+ Bước 2: Xác định lân cận mức k của điều kiện mờ, chẳng hạn với câu truy vấn trên điều kiện mờ là khả năng trẻ nên lân cận mức 2 của khả năng trẻ

F N2(khả năng trẻ), và xác định lân cận mức k của giá trị thuộc tính mờ là

F N A2(attr). Sau đó dựa vào định nghĩa 2.1 để thực hiện đối sánh hai lân cận mức k của F N A2(attr) và F N2(khả năng trẻ).

Không mất tính tổng quát, chúng ta xét trường hợp đa điều kiện mờ với các ký hiệu:

- ϑ là phép toán and hay or.

- f zvaluei là các giá trị mờ ứng với thuộc tính thứ i ở mức lân cận thứ k.

Trên cơ sở đó, thuật toánSASN(SearchAttribute in theSemanticNeighborhood) được xây dựng như sau.

1. Thuật toán SASN: Tìm kiếm dữ liệu trong trường hợp đa điều kiện cho thuộc tính với phép toán ϑ.

Vào: Một lớp C = ({A1, A2, . . . , Ap}, M); C = {o1, o2, . . . , on}.

Trong đóAi, i =1. . . p là các thuộc tính, M là tập các phương thức.

Ra: Tập các đối tượng o C thỏa điều kiện ϑp

i=1

(o.Ai =f zvaluei).

Phương pháp

//Khởi tạo các giá trị. (1) For i = 1 top do

(2) Begin

(3) GAi = {0,c−,W,c+, 1}; HAi= HA+i ∪HA−i. Trong đó HA+i= {h1, h2}, HA−i

= {h3, h4}, với h1 < h2 và h3 > h4. Chọn độ đo tính mờ cho các phần tử sinh và gia tử.

(4) DAi = [minAi,maxAi] // giá trị nhỏ nhất và lớn nhất miền giá trị Ai. (5) F DAi = HAi(c+A

i) HAi(c−A

i). (6) End

(7) Xác định khoảng tương tự mức k theo điều kiện mờ: kQ

//Dựa vào mục 1.4.2.3 để xây dựng các lớp tương tự mức k theo điều kiện mờ, //trong đó SAki(xj) là lớp tương tự mức k của thuộc tính o.Ai cho phần tử xj. (8) For i = 1 to p do

(9) For j = 1 to 25(kQ-1) do

(10) Xây dựng các khoảng tương tự mức k: SAk

i(xj); //Xác định lân cận mức k của o.Ai.

(11) For each o C do (12) For i = 1to p do (13) Begin (14) j = 0; (15) Repeat (16) j = j+1; (17) Until o.Ai SAk i(xj) or j > 25(kQ - 1); (18) F N Aki(attri) =F N Aki(attri)∪SAki(xj);

(19) End

//Xác định lân cận mức k của f zvaluei. (20) For i = 1 to p do (21) Begin (22) j = 0; (23) Repeat (24) j = j+1; (25) Until o.Ai SAk i(xj) or j > 25(kQ - 1); (26) F Nik(f zvaluei) =F Nik(f zvaluei)∪SAki(xj); (27) End (28) result = ; (29) For each o C do (30) if ϑp i=1 (F N Ak i(attri) =F Nk

i (f zvaluei)) then result=result {o}; (31) Return result;

Tương tự đối với phương thức, thuật toán SMSN (Search Method in the

Semantic Neighborhood) được xây dựng như sau:

2. Thuật toán SMSN: Tìm kiếm dữ liệu trong trường hợp đơn điều kiện cho một phương thức bất kỳ.

Vào: Một lớp C = ({A1, A2, . . . , Ap},{M1, M2, . . . , Mm}); C = {o1, o2, . . . , on}. - Trong đóAi, i =1. . . plà các thuộc tính,Mj, j =1. . . mlà tập các phương thức.

- Giá trị h (h∈ {1, . . . , m}) là phương thức thứ h cần tìm ở kết quả đầu ra.

Ra: Tập các đối tượng o C thỏa điều kiện (o.Mh = f zpvalue).

Phương pháp

//Khởi tạo các giá trị. (1) For i = 1 top do (2) Begin (3) GAi = {0,c−,W,c+, 1}; HAi= HA+ i ∪HA− i. Trong đó HA+ i= {h1, h2}, HA− i

và gia tử.

(4) DAi = [minAi,maxAi] // giá trị nhỏ nhất và lớn nhất miền giá trị Ai. (5) F DAi = HAi(c+A

i) HAi(c−A

i). (6) End

(7) Xác định khoảng tương tự mức k theo điều kiện mờ: kQ

//Dựa vào mục 1.4.2.3 để xây dựng các lớp tương tự mức k theo điều kiện mờ, //trong đó SAki(xj) là lớp tương tự mức k của thuộc tính o.Ai cho phần tử xj. (8) For i = 1 to p do

(9) For j = 1 to 25(kQ-1) do

(10) Xây dựng các khoảng tương tự mức k: SAki(xj); // Xác định lân cận mức k của thuộc tính o.Ai.

(11) For each o C do (12) For i = 1to p do (13) Begin (14) j = 0; (15) Repeat (16) j = j+1; (17) Until o.Ai SAki(xj) or j > 25(kQ - 1); (18) F N Aki(attri) =F N Aki(attri)∪SAki(xj); (19) End

//Xác định lân cận mức k của f zpvalue. (20) i = 1; f = 0; (21) While (i p) and (f = 0) do (22) Begin (23) j = 0; (24) While (j 25(kQ−1)) and (f = 0) do (25) Begin (26) j = j+1; (27) if fzpvalue Sk Ai(xj) then f = 1; (28) End;

(29) i = i + 1; (30) End

(31) F N Pk(f zpvalue) =SAk

i(xj) ;

// tích hợp ĐSGT với phép toán ϑ là phép toán and (32) For each o C do (33) For i =1to m do (34) Hàm tích hợp ĐSGT: F N P Aki(xi) = ϑp j=1(F N Akj(attri)) ; (35) result =; (36) For each o C do (37) For i = 1to m do

(38) if F N P Aki(xi)=F N Pk(f zpvalue) then result = result {o}; (39) Return result;

Chúng ta dễ dàng mở rộng thuật toán cho trường hợp đa điều kiện cho các phương thức khác với phép toán and hay or.

Một phần của tài liệu cơ sở dữ liệu hướng đối tượng với thông tin ngôn ngữ mờ (Trang 91)