Công thức suy dẫn

Một phần của tài liệu Phụ thuộc logic trong cơ sở dữ liệu (Trang 40)

Trong tin học các công thức suy dẫn được sử dụng khá rộng. Chúng đóng vai trò chủ yếu trong các motor suy dẫn của các hệ chuyên gia, trong việc thể hiện các ràng buộc dữ liệu của các cơ sở dữ liệu cũng như trong các thuật toán trích chọn luật từ các kho dữ liệu thuộc lĩnh vực khai thác tri thức.

Phần này sẽ phát biểu và chứng minh điều kiện cần và đủ để biểu diễn phụ thuộc Boole dương dưới dạng hội các công thức suy dẫn.

Ta xét các công thức suy dẫn có dạng X Y, trong đó X Y là các hội logic của hữu hạn biến, hai vế của CTSD, trái và phải đều chứa ít nhất một biến.

Cho f: X Y là một CTSD trên tập biến U, với mỗi phép gán trị v, ta có

f(v)=1khi và chỉ khi(Set(v) X)(Set(v)Y).

Ký hiệu I(U) là tập các CTSD trên tập biến U. Cho F là một tập các CTSD,

F = {f1, f2 … fm}. Quy ước coi F là một hội logic của các CTSD thành phần, cụ thể là F = f1 f2 fmvà gọi F là mộthội suy dẫn (HSD).

Với mỗi CTSD f: X Y, ta biết Y(e) = 1 và X(z) = 0, trong đó e là phép gán trị đơn vị và z là phép gán trị không. Từ đây suy ra f(e) = f(z)=1. Như vậy các CTSD là các công thức Boole dương, tức là I(U) P(U).

Nếu coi X là một hội các biến logic thì với mỗi phép gán trị v, ta có X(v)=1 khi và chỉ khi Set(v)  X.

Định nghĩa 2.9

Cho V là tập các phép gán trị trên U. Với hai phép gán trị u,v V ta xét phép toán nhân, ký hiệu là u & v, như là phép nhân logic trên các thành phần tương ứng của uv. Cụ thể là, nếu:

u = (u1,u2,...,un) và v = (v1,v2,...,vn) thì u & v = (u1v1, u2v2,...,unvn)

Thí dụ 2.6

Với u = (1,1,0,1 ) và v = (1,0,0,1) , ta có u & v = (1,0,0,1).

Quy ước tích của một tập rỗng các phần tử trong V chính là phép gán trị đơn vị

e = (1,...1).

Định nghĩa 2.10

Tập các phép gán trị V được gọi là ó g i i hé h & nếu V chứa tích của mọi cặp phần tử trong V, tức là u,v V: u & v V.

Dễ thấy, Set(u & v) = Set(u)  Set(v).

2.4.2 Bài to n biểu diễn phụ thuộc Boole dƣơng dƣới dạng hội suy dẫn

Ta đã biết, mọi công thức logic đều có thể biểu diễn dưới dạng chuẩn tuyển (hội). Nói cách khác, mỗi bảng T Bnđều ứng với một công thức logic dạng chuẩn tuyển (hội). Vấn đề biểu diễn một công thức logic qua một tập các phép toán và hằng logic cho trước chưa có lời giải tổng quát. Bài toán biểu diễn tập các phụ thuộc Boole dương dưới dạng hội các công thức suy dẫn được phát biểu như sau:

Bài toán 2.1

Xác định điều kiện cần và đủ để có thể biểu diễn một phụ thuộc Boole dương dưới dạng hội suy dẫn?

Các phần trình bày dưới đây liên quan đến bài toán 3.2.1.

Định lý 2.3

Với mỗi CTSD f I(U), Tf chứa các phép gán trị đơn vị e, không z và đóng với phép nhân & [4].

Chứng minh

Cho CTSD f: XY. Dễ thấy f(e) = f(z) = 1, do đó e, z Tf . Giả sử u,v Tf . Đặt t = u & v, ta cần chứng minh t Tf . Giả sử Set(t)  X.

Set(t) = Set(u & v) = Set(u)  Set(v) nên Set(u)  X Set(v)  X. Vì f(u)

= f(v) = 1 nên ta phải có Set(u)  YSet(v)  Y và do đó Set(t) = Set(u)  Set(v)  Y. Vậy f(t) = 1, và do đó t Tf .

Với mỗi HSD F trong I(U), vì bảng chân lý TF của F là giao của các bảng chân lý của các công thức thành viên nên ta có các hệ quả 3.2.1 sau đây. (adsbygoogle = window.adsbygoogle || []).push({});

Hệ quả 2.2

Với mỗi HSD F trong I(U), TF chứa các phép gán trị đơn vị e, không z và đóng với phép nhân &.

Mặt khác, vì Set(e) = USet(z) =  ta thu được hệ quả sau.

Bài toán 2.2

Cho bảng 0/1 T trên tập biến U, T chứa các phép gán trị đơn vị e, không z và đóng với phép &. Hãy xây dựng HSD F trên U nhận T làm bảng chân lý.

Thuật toán DF dưới đây giải bài toán 2.5.2 nêu trên.

Algorithm DF Input: - B g Bn hứ e z ó g i hé & Output: - Hội F ê U h h hấ F = T. Method F := ; for each u in Bn\T do X := Set(u); X v Set T v X v Set Y    ) ( \ ) ( : F := F {XY};

endfor; return F; end DF.

Thuật toán trên được minh họa qua thí dụ sau.

Thí dụ 2.7

Thiết lập HSD cho bảng T trên tập 4 biến Boole U = ABCD sau đây:

T là bảng chân lý cho HSD cần tìm F nên F phải thoả hai điều kiện sau đây:

(i) t T: F(t) = 1 ,

(ii) t Bn\ T: F(t) = 0

Để tiện theo dõi ta bổ sung cho các bảng thêm hai cột: cột Set(v) chứa giá trị của hàm Set ứng với mỗi dòng v và cột N(v) chứa giá trị của số tự nhiên tương ứng với biểu diễn nhị phân của mỗi dòng v. Ý nghĩa của cột N(v) sẽ được giải thích sau.

Với dòng thứ nhất, u = (1,1,0,0) trong Bn\T ta có X = Set(u) = AB, do đó

Y = (ABD ABCD)\AB = D. Ta thu được F={AB D}.

Với dòng thứ hai, u = (1,1,1,0) trong Bn\T ta có X = Set(u) = ABC, do đó

Y = ABCD\ABC =D. Ta thu được F = {AB D, ABC D}.

Với dòng thứ ba, u = (1,0,0,1) trong Bn\T ta có X = Set(u) = AD, do đó

T A B C D Set(v) N(v) 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 A B C AC BC D BD ABD ABCD 0 8 4 2 10 6 1 5 13 15 Bn\T A B C D Set(v) N(v) 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 AB ABC AD CD ACD BCD 12 14 9 3 11 7

Y = (ABD ABCD)\AD = B. Ta thu được F = {AB D, ABC D, AD B}. Với dòng thứ tư, u = (0,0,1,1) trong Bn\T ta có X = Set(u) = CD, do đó

Y = ABCD\CD = AB. Ta thu được F = {AB D, ABC D, AD B, CD AB}. Vớidòng thứ năm, u = (1,0,1,1) trong Bn

\T ta có X = Set(u) = ACD, do đó

Y= ABCD\ACD =B. Ta thu được F = {AB D, ABC D, AD B, CD AB, ACD B}.

Với dòng thứ sáu, u = (0,1,1,1) trong Bn\T ta có X = Set(u) = BCD, do đó

Y = ABCD\BCD = A. Ta thu được đầu ra của thuật toán:

F={AB D, ABC D, AD B, CD AB, ACD B, BCD A}. Từ kết quả của bài toán 2.2, ta suy ra định lý 2.4 sau:

Định lý 2.4

Với bảng T trên U chứa các phép gán trị đơn vị e, không z và đóng với phép (adsbygoogle = window.adsbygoogle || []).push({});

&, thuật toán DF tính đúng tập công thức suy dẫn F nhận T làm bảng chân lý.

Chứng minh

Gọi F là tập công thức suy dẫn thu được qua thuật toán DF. Ta chứng minh tT: F(t)=1và tB\T: F(t)=0. Thật vậy, giả sử tT, f: XY F Set(t) X.

Ta có, theo thuật toán DF phải tồn tại u B\T để X = Set(u) và

X v Set T v X v Set Y    ) ( \ ) (

tTSet(t) X nên Set(t)  Y, do đó f(t) = 1.

Giả sử t Bn\T. Ta chỉ ra rằng trong F tồn tại một công thức f để f(t) = 0. Xét công thức f: XY xây dựng từ t theo thuật toán DF. Ta có X = Set(t) và

X v Set T v X v Set Y    ) ( \ ) (

Từ biểu thức tính Y ta thấy XY không giao nhau. Kết hợp với điều kiện

Nhận xét

Ta biết bảng chân lý của mọi HSD đều chứa hai phép gán trị là phép gán trị đơn vị e và phép gán trị không z. Kết hợp thuật toán DF với định lý 2.5.2 về tính đúng của thuật toán DF ta thấy không phải bảng trị nào của Bn cũng là bảng chân lý của một HSD. Kết quả dưới đây thiết lập điều kiện cần và đủ để một bảng T trên U

là một bảng chân lý của một hội suy dẫn.

Định lý 2.5

Bảng T trên U là bảng chân lý của một HSD khi và chỉ khi T chứa các phép gán trị đơn vị e, không z và đóng với phép &.

Nhận xét

Tồn tại nhiều HSD cho cùng một bảng chân lý. Các HSD này đều tương đương với nhau vì chúng có cùng bảng chân lý.

Nếu biểu diễn mỗi phần tử của bảng T như một số tự nhiên dạng nhị phân và sử dụng kỹ thuật đánh dấu ta dễ dàng tìm được các phần tử thuộc phần bù của T

Bn\T. Khi đó các phép toán tập hợp sẽ được tổ chức thông qua các phép thao tác bit trên các số tự nhiên đã được cài đặt sẵn trong các bộ xử lý của máy tính.

Thí dụ, với hai số tự nhiên xy biểu diễn cho hai tập hợp thì ta có

x y = x y x y = x y x \ y = x (y)

x hi hỉ hi y = x

Với thí dụ đã cho, n = 4 ta sử dụng các số tự nhiên 4 bit để biểu diễn các dòng trong Bn. Khi đó ta có:

T = {0, 8, 4, 2, 10, 6, 1, 5, 13, 15}

Bn\T = {0,1,...,2n-1}\T = {12, 14, 9, 3, 11, 7}

Như vậy thông qua tổ chức dữ liệu ta có thể giảm độ phức tạp tính toán. Tập hợp các kết quả đã trình bày ở phần trên ta có định lý sau về điều kiện cần và đủ để biểu diễn một phụ thuộc Boole dương dưới dạng hội suy dẫn:

Định lý 2.6

Phụ thuộc Boole dương g trên U có thể biểu diễn dưới dạng hội suy dẫn khi và chỉ khi bảng chân lý của g chứa các phép gán trị đơn vị e, phép gán trị không z và đóng với phép &, cụ thể là khi và chỉ khi g thỏa hai tính chất (i)-(ii) sau đây.

(i) g(e) = g(z) = 1,

(ii) u,vBn: g(u) = g(v) = 1 g(u&v) = 1.

2 . 4 . 3 T ậ p TR c ủa p h ụ t h u ộc Bo ol e d ƣ ơ ng Định nghĩa 2.11 (adsbygoogle = window.adsbygoogle || []).push({});

Cho quan hệ R trên tập thuộc tính U. Với quan hệ đối sánh giữa các bộ của

R thỏa điều kiện ánh xạ i: didiB được xác định trên mỗi miền trị di của các thuộc tính Aitrong tập U= {A1,A2,...,An}, 1in thì bảng chân lý TRcủa quan hệ R

được tính như sau:

TR = {(u,v) | u,vR} Trong đó (u,v) được xác định như sau:

(u,v) = (1(u.A1,v.A1), 2(u.A2,v.A2),...,n(u.An,v.An))

Cho U = ABC với dom(A): là tập các số nguyên dương, dom(B): là tập các số thực và giá trị không xác định , và dom(C) là tập các từ hữu hạn trên bảng chữ cái không rỗng cho trước.

Các quan hệ A, B và C được xác định như sau:

A(x,y) = 1 khi và chỉ khi hai số x y cùng tính chẵn lẻ.

B(x,y) = 1 khi và chỉ khi xy đồng thời là hai số thực hoặc hai giá trị không xác định #.

C(x,y) = 1 khi và chỉ khi hai từ không rỗng x và y có chung ít nhất hai ký tự.

Thí dụ 2.8

Với các thuộc tính A, BC và các ánh xạ A, B và C tương ứng được xác định như trên. Xét quan hệ R dưới đây, ta có bảng chân lý của quan hệ RTR

như sau: R TR A B C A B C t1 5 2.5 abc (t1,t1) 1 1 1 t2 10 # ade (t1,t2) 0 0 0 t3 9 # bde (t1,t3) 1 0 0 t4 13 2.0 ad (t1,t4) 1 1 0 (t2,t3) 0 1 1 (t2,t4) 0 1 1

Tích của dòng 4 và dòng 5trong TR không thuộc TR Thật vậy, ta có: (1, 1, 0) & (0, 1, 1) = (0 ,1, 0) TR

Nếu bảng T trên Bn không đóng với phép &, ta có thể thêm cho T tối thiểu một số phần tử để được bảng T* thỏa hai tính chất (i)-(ii) sau:

(i) T* chứa phần tử đơn vị e và phần tử không z,

(ii) T* đóng với phép &.

Ta gọi quá trình trên là làm đóng bảng T theo phép nhân &. Thuật toán Closed&_GPBD dưới đây làm đóng bảng trị T Bn.

Algorithm Closed&_GPBD

Input: - Bảng T trên Bn , T = {t1,t2,...,tm} Output: - Bảng T* thỏa các tính chất

(i) T*chứa phần tử đơn vị e và phần tử không z, (ii) T* đóng với phép &.

T* = T; i:=0; while i < m do i:=i+1; for j:= 1to i-1do t := ti & tj; if t not_in T* then m := m+1; add t to T*as element tm; endif; endfor; endwhile; T* := T*  {e,z}; returrn T*; End Closed&_GPBD. (tiếp thí dụ 2.2)

Sau khi thêm phần tử (0,1,0) cho TR ta thu được bảng TR* dưới đây, trong đó dòng cuối cùng của bảng chứa phần tử bổ sung.

TR A B C 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0

2 . 4 . 4 X â y d ự n g t ậ p P T B D t ừ q u a n h ệ R c h o t r ƣ ớ c

Bài toán xây dựng tập PTBDTQ từ quan hệ R cho trước được phát biểu như sau:

Bài toán 2.3

Cho quan hệ R trên tập thuộc tính U. Xây dựng tập PTBD thỏa mãn R.

Để giải quyết bài toán trên, ta có thể sử dụng một thuật toán đơn giản là liệt kê toàn bộ các PTBD có trong P(U), rồi kiểm tra PTBD nào thỏa trong quan hệ R

thì đưa vào kết quả. Vì U là tập hữu hạn nên thuật toán sẽ kết thúc sau hữu hạn bước. (adsbygoogle = window.adsbygoogle || []).push({});

Theo định nghĩa 2.8 ta biết BD(R)  F+. Vận dụng một số kết quả về phủ, bao đóng, kết quả của bài toán thành viên cho phụ thuộc Boole dương và thuật toán

DF [11] được trình bày ở trên, ta có thể xây dựng thuật toán BD(R) tìm tập PTBDTQ F thỏa mãn quan hệ R cho trước như dưới đây.

Algorithm BD Input: - Q hệ R ê U Output: - BD Q BD(R) Method 1 X g g R; 2 L ó g R h g :=Closed&_GPBD(TR); 3. G := DF(T); 4. F := Nonredundant_GPBD(G); return F; End BD.

Từ kết quả của bài toán BD(R) ta suy ra hệ quả 2.4.4.1 dưới đây.

Hệ quả 2.3

Với mỗi quan hệ RU luôn tìm được tập PTBD F trên U thỏa mãn quan hệ R.

Các kết quả về lớp phụ thuộc Boole dương được nghiên cứu ở trên có thể được ứng dụng để biểu diễn luật, tập luật và trích chọn luật trong cơ sở tri thức.

2 . 5 K ế t c h ƣ ơ n g

Chương này đã trình bày một số khái niệm cơ bản liên quan đến các lớp phụ thuộc Boole dương, đồng thời cũng trình bày thuật toán giải bài toán thành viên cho lớp PTBD.

Chƣơng 3

ỨNG DỤNG LỚP PHỤ THUỘC BOOL DƢƠNG GIẢI MỘT SỐ LỚP BÀI TOÁN

Để thực hiện giải một số bài toán trong chương này, ta sẽ sử dụng một số ký hiệu như sau trong bảng:

hội (nhân) &   tuyển (cộng) +  phủ định ~ ’ cộng loại trừ xor  suy dẫn  =>  tương đương =  Hình 3.1 C c kí hiệu phép to n

Ngoài ra, gọi f, g là các công thức Boole dương, nếu f không suy dẫn ra g ta ký hiệu như sau: f =/> g.

3.1 Bài toán thành viên

Để giải bài toán suy dẫn ta có thể vận dụng kết quả của thuật toán hợp giải. Thuật toán hợp giải được mô tả lần đầu sau đó được phát triển và cài đặt trong môi trường Prolog.

Theo định nghĩa 1.5.2 về định lý tương đương của PTBD trong chương 1, bài toán thành viên được giải thông qua mệnh đề sau:

f F+ khi và chỉ khi Ff

Trước khi giải bài toán trên ta có một số nhận xét sau:

Nhận xét

Để chứng minh công thức dương E (là hằng đúng với mọi phép gán trị) ta tiến hành theo các bước sau:

1. Biểu diễn E dưới dạng chuẩn hội tức là dạng tích của các tổng C = C1C2

 …Ck với mỗi nhân tử Ci là tổng của các biến và hằng 0/1.

2. Thực hiện các bước hợp giải đến khi không thể biến đổi C được nữa:

 Tìm hai nhân tử Ci Cj có dạng Ci = (px) và Cj = (qx); Nếu tìm được thì thay CiCj trong C bằng nhân tử (pq).

3. Kết luận: Nếu C =  thì công thức E hứ g i h; ngược lại E không h i g hứ hằ g g.

Thuật toán giải bài toán trên được thể hiện dưới dạng các thành phần theo kiến trúc sau:

Gọi công thức chuẩn hội C là khả hợp nếu sau khi thực hiện bước 2 của sơ đồ thuật toán trên ta thu được công thức rỗng; ngược lại, kết luận C là không khả hợp.

Thuật toán Resolution dưới đây chứng minh công thức dương E là hằng đúng

Thuật toán 3.1 (adsbygoogle = window.adsbygoogle || []).push({});

Algorithm Resolution

Function: Chứng minh công thức E

Input: Công thức dương E

Output: True nếu E là công thức hằng đúng; ngược lại: False Method

1. E về dạng chuẩn hội: C:= cnf(E); 2. H pgi i: return(Unification(C) = ); End Resolution.

Thuật toán Unification dưới đây thực hiện chức năng hợp nhất các nhân tử trong công thức dương dạng chuẩn hội C đến mức tối đa.

Thuật to n 3.2

Algorithm Unification

Function: H p nhất các nhân tử trong công thứ g ạng chuẩn hội C n mức t i

C = C1C2 … Ck;

Output: công thức sau khi hợp nhất.

Một phần của tài liệu Phụ thuộc logic trong cơ sở dữ liệu (Trang 40)