Bài toán biểu diễn phụ thuộc Boole dương tổng quát dưới dạng hội suy dẫn

Một phần của tài liệu luận án tiến sĩ phát triển một số phụ thuộc logic trong cơ sở dữ liệu (Trang 72 - 79)

PHÁT TRIỂN LỚP CÁC PHỤ THUỘC BOOLE DƯƠNG VÀ ÁNH XẠ ĐÓNG TRONG CSDL

3.2.2.Bài toán biểu diễn phụ thuộc Boole dương tổng quát dưới dạng hội suy dẫn

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

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 tổng quát 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 3.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 tổng quát 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ý 3.2.1

(Bổ đề về tính đóng của phép & trong Tf)

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: X→Y. 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.

Vì Set(t) = Set(u & v) = Set(u) ∩ Set(v) nên Set(u) ⊇ X và Set(v) ⊇ X. Vì f(u)

= f(v) = 1 nên ta phải có Set(u) Y và Set(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.

Hệ quả 3.2.1

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) = U và Set(z) = ∅ ta thu được hệ quả sau.

Với mỗi HSD F trên U, Set(TF) là một giàn giao chứa tập cực đại U và tập

rỗng Ø.

Theo kết quả trên, từ giàn giao S = Set(TF) ta tìm được duy nhất tập sinh

G = Gen(Set(TF)). Áp dụng toán tử Vec cho tập sinh G ta thu được tập nhỏ

nhất (và duy nhất) các dòng D tương ứng trong TF thỏa tính chất: mọi dòng của TF đều biểu diễn qua tích & của các dòng trong D.

Vì lý do trên, ta cũng quy ước gọi TF là giàn hội và D là tập sinh của giàn

hội TF.

Ta nói giữa hai đại số hệ TF với phép & và Set(TF) với phép ∩ tồn tại một

đẳng cấu, cụ thể là giữa TF và Set(TF) tồn tại một toàn ánh (ánh xạ 1-1 lên)

Set thỏa tính chất

u,v ∈ TF: Set(u & v) = Set(u) ∩ Set(v)

Bài toán 3.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ý. (adsbygoogle = window.adsbygoogle || []).push({});

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

Algorithm DF

Input: - Bảng T Bn chứa e, z và đóng với phép

&

Output: - Hội suy dẫn F trên U thoả tính chất TF

= T. Method

F := ;

for each u in Bn\T do

X X v SetvT 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ụ 3.2.2

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

Vì 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 , và

(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. T A B C DSet(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 1A B C AC BC D BD ABD ABCD 0 8 4 2 10 6 1 5 13 15 Bn\T A B C DSet(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

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 đó

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ới dò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 đó (adsbygoogle = window.adsbygoogle || []).push({});

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 3.2.2, ta suy ra định lý 3.2.2 sau:

Định lý 3.2.2

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

&, 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 ∀t∈T: F(t)=1 và ∀t∈B \T: F(t)=0. Thật vậy, giả sử t∈T, f: X→Y∈ F và Set(t)

X X v Setv T X v Set Y ⊇ ∈ = ) ( \ ) (

Vì t∈T và Set(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: X→Y xây dựng từ t theo thuật toán DF. Ta có X = Set(t) và

X X v Setv T X v Set Y ⊇ ∈ = ) ( \ ) (

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

X = Set(t) ta suy ra f(t) = 0.

Định lý 3.2.3

Độ phức tạp của thuật toán DF là O(kmn), trong đó n là số biến trong U, m là số dòng của bảng T, k là số dòng của bảng Bn\T.

Chứng minh

Gọi m là số dòng của bảng T, k là số dòng của bảng Bn\T, ta thấy thuật toán

DF lập k công thức suy dẫn. Để lập mỗi công thức ta phải thực hiện m phép

duyệt, m-1 phép lấy giao hai tập hợp và một phép lấy hiệu hai tập hợp. Mỗi phép toán tập hợp trên n phần tử của U đều đòi hỏi độ phức tạp n. Ký hiệu t là độ phức tạp của thuật toán theo thời gian. Tổng hợp lại ta có độ phức tạp cuả thuật toán DF là t = O(kmn). Định lý được chứng minh.

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ý 3.2.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.

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 là 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 x và y 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 y khi và chỉ khi x y = x (adsbygoogle = window.adsbygoogle || []).push({});

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 tổng quát dưới dạng hội suy dẫn:

Định lý 3.2.5

Phụ thuộc Boole dương tổng quát 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,v ∈ Bn: g(u) = g(v) = 1 ⇒ g(u&v) = 1.

Một phần của tài liệu luận án tiến sĩ phát triển một số phụ thuộc logic trong cơ sở dữ liệu (Trang 72 - 79)