3.2 Một số bài toỏn NP-C trong mụ hỡnh quan hệ [12].
Trong cỏc hệ cơ sở dữ liệu đó cú nhiều thuật toỏn được đề xuất và cài đặt, như cỏc thuật toỏn xỏc định khoỏ của lược đồ, cỏc thuật toỏn chuẩn hoỏ, cỏc thuật toỏn tối ưu hoỏ cõu hỏi, ... Phần lớn cỏc thuật toỏn đú thuộc lớp P, tức là cỏc thuật toỏn đú làm việc trong thời gian đa thức. Hiện nay việc đỏnh giỏ độ phức tạp của cỏc thuật toỏn trong cỏc hệ cơ sở dữ liệu ớt được đề cập đến, vấn đề này thường chỉ được giới thiệu trong cỏc bài bỏo. Về khớa cạch lý thuyết, ta phải nghiờn cứu và chứng minh xem cú thuật toỏn nào trong cỏc cơ sở dữ liệu thuộc cỏc lớp NP, NP- Hard, NP-C hay khụng ? Điều này sẽ giỳp cho những người cài đặt và ứng dụng cỏc thuật toỏn đó được chứng minh là thuộc lớp NP-Hard hoặc NP-C khụng phải mất thời gian vụ ớch để tỡm ra cỏc thuật toỏn mới cú khả năng làm việc trong thời gian đa thức. Tuy nhiờn, với sự phỏt triển của tư duy con người, khi thuật toỏn đó cú lời giải rồi ta vẫn luụn phải tỡm kiếm thuật toỏn cú lời giải tốt hơn. Sau đõy chỳng ta sẽ xem xột một số bài toỏn NP-C trong mụ hỡnh CSDL quan hệ.
3.2.1 Bài toỏn siờu khoỏ cú lực lượng khụng quỏ m.
- Phỏt biểu bài toỏn: Cho S = <, F> là một lược đồ quan hệ, tập cỏc thuộc tớnh = {A1, ..., An}, tập cỏc phụ thuộc hàm F trờn và một số nguyờn dương m
NP-Hard
NP
(m < | | = n). Quyết định xem với lược đồ quan hệ S, cú hay khụng một siờu khoỏ cú lực lượng nhỏ hơn hoặc bằng m.
Input: Lược đồ quan hệ < , F > và một số nguyờn m (m < || = n).
Output: Cú nếu tồn tại một siờu khoỏ của S cú số phần tử m.
Khụng nếu khụng tồn tại một siờu khoỏ của S cú số phần tử m.
- Chứng minh bài toỏn siờu khoỏ cú lực lượng khụng quỏ m là NP-C:
Để chứng minh bài toỏn này ta dựa vào định lý sau:
Định lý 3.1:
Bài toỏn siờu khoỏ cú lực lượng khụng quỏ m là NP - đầy đủ (NP-C).
Chứng minh:
Gọi P1 là bài toỏn siờu khoỏ cú lực lượng khụng quỏ m. Để chứng minh bài toỏn P1 là NP-C ta chứng minh theo định nghĩa lớp bài toỏn NP-C.
Trước hết ta chứng minh P1 NP (1)
Muốn chứng minh một bài toỏn thuộc lớp NP ta phải chỉ ra được một thuật toỏn khụng đơn định thời gian đa thức để giải bài toỏn đú.
Thuật toỏn khụng đơn định thời gian đa thức (theo n = || và p = |F|) giải P1 được xõy dựng như sau:
K := ; For j := 1 to m do Begin B := choice(); K := K {B}; End-for If K+ = then success else failure;
Ta đó biết thuật toỏn tớnh bao đúng K+ của K là thuật toỏn thời gian đa thức, nờn thuật toỏn trờn là thuật toỏn khụng đơn định thời gian đa thức. Vậy bài toỏn P1 thuộc lớp NP.
Để chứng minh bài toỏn P1 là NP-Hard ta dựa vào bài toỏn B nào đú sao cho B P1 (trong đú bài toỏn B đó được xỏc định là bài toỏn NP-C). Muốn vậy chỉ cần chỉ ra cú một bài toỏn đó biết thuộc NP-C (ở đõy ta dựng bài toỏn phủ đỉnh) dẫn đa thức về bài toỏn siờu khoỏ cú lực lượng khụng quỏ m.
Nhắc lại bài toỏn phủ đỉnh.
Cho G = (V, E) là một đồ thị vụ hướng, trong đú V là tập đỉnh, E là tập cạnh. Tập con S của V (S V) được gọi là một phủ đỉnh của đồ thị G, nếu (u,v) E thỡ hoặc u S, hoặc v S hoặc cả hai đầu mỳt u,v S. Núi cỏch khỏc mọi cạnh e=(u,v) E đều liờn thuộc với ớt nhất một đỉnh thuộc S.
Phỏt biểu bài toỏn quyết định phủ đỉnh.
Cho đồ thị vụ hướng G = (V,E) và một số nguyờn dương m, (m < |V| = n). Quyết định xem cú tồn tại hay khụng một phủ đỉnh của G cú lực lượng <=m.
Bài toỏn quyết định phủ đỉnh đó được chứng minh là NP - đầy đủ [Garey
Johnson].
Để biến đổi bài toỏn phủ đỉnh về P1 (bài toỏn siờu khoỏ cú lực lượng khụng quỏ m), ta định nghĩa là tập V và F = {Lv {v} | v V}, trong đú Lv ký hiệu tập đỉnh thuộc V mà liờn thuộc với v. Lưu ý là <, F> được xỏc định trong thời gian đa thức theo |V| và |E|, và || = |V| = |E|.
Tiếp theo ta phải chứng minh bài toỏn phủ đỉnh dẫn đa thức (tức biến đổi được trong thời gian đa thức) về bài toỏn siờu khoỏ cú lực lượng khụng quỏ m (bài toỏn P1). Bổ đề sau sẽ cho thấy bài toỏn phủ đỉnh dẫn đa thức về bài toỏn P1
Bổ đề 3.1:
Tập con K của là một siờu khoỏ của <, F> khi và chỉ khi nú là một phủ đỉnh của E trong G.
Chứng minh:
Giả thiết quy nạp rằng: khẳng định đỳng với mỗi tập con K’ của sao cho K’ K.
Như đó biết K là siờu khoỏ khi và chỉ khi K+ = . Tương đương khi và chỉ khi v V\K sao cho Lv K. Theo giả thiết quy nạp K {v} là một phủ đỉnh của E trong G. Cú nghĩa, một tập con thực sự K của là một siờu khoỏ của lược đồ <,F> khi và chỉ khi nú là một phủ đỉnh của G, như đó được khẳng định.
Vậy bổ đề được chứng minh.
Do đú bài toỏn phủ đỉnh dẫn đa thức về bài toỏn P1.
Từ (1) và (2) theo định nghĩa về lớp bài toỏn NP-C ta kết luận bài toỏn P1 là NP-C.
3.2.2 Bài toỏn quyết định thuộc tớnh khoỏ hay khụng khoỏ.
- Phỏt biểu bài toỏn: Cho S = <, F> là một lược đồ quan hệ, tập cỏc thuộc tớnh = {A1, ..., An}, tập cỏc phụ thuộc hàm F trờn và thuộc tớnh bất kỳ b . Quyết định xem b cú là thuộc tớnh khoỏ hay khụng.
Input: Lược đồ quan hệ < , F > và b .
Output: Thuộc tớnh b là thuộc tớnh khoỏ hay thuộc tớnh khụng khoỏ của S.
- Chứng minh bài toỏn quyết định thuộc tớnh khoỏ là NP-C:
Để chứng minh bài toỏn này ta dựa vào định lý sau:
Định lý 3.2:
Bài toỏn quyết định thuộc tớnh khoỏ là NP - đầy đủ (NP-C).
Chứng minh:
Gọi P2 là bài toỏn quyết định thuộc tớnh khoỏ. Để chứng minh bài toỏn P2 là NP-C ta chứng minh theo hai bước.
Trước hết ta chứng minh P2 NP (1)
Thực vậy, hóy tạo sinh một cỏch khụng đơn định một tập con của và sau đú kiểm tra xem nú cú phải là một khoỏ (theo nghĩa tối tiểu) cú chứa b hay khụng? ta sẽ cú thuật toỏn khụng đơn định thời gian đa thức. Vậy bài toỏn P2 thuộc lớp NP.
Tiếp theo ta chứng minh : P2 NP-Hard (2)
Để chứng minh bài toỏn P2 là NP-Hard ta dựa vào bài toỏn B nào đú sao cho B P2 (trong đú bài toỏn B đó được xỏc định là bài toỏn NP-C). Muốn vậy chỉ cần
chỉ ra cú một bài toỏn đó biết thuộc NP-C (ở đõy ta dựng bài toỏn siờu khoỏ cú lực lượng khụng quỏ m) dẫn đa thức được về bài toỏn quyết định thuộc tớnh khoỏ (cú nghĩa chứng minh: P1 P2 )
Để làm điều này, ta giả sử đầu vào của bài toỏn P1 là 1, F1 và số nguyờn dương m.
Định nghĩa cỏc tập , F và b cho bài toỏn tương ứng P2 như sau:
= 1 [2 x 1] {b}
trong đú 2 là tập cú lực lượng bằng min(|1|, m), cũn b là thuộc tớnh mới khụng thuộc 1 [2 x 1].
Tập F được định nghĩa như sau:
(i) Với mỗi cặp X, Y cỏc tập con của 1, nếu (X Y) F1+ thỡ: ({b} X Y) F
(ii) {b} 1 2 x 1
(iii) Với mỗi phần tử i 2 và mỗi phần tử e 1, {b} {(i, e)} {e} (iv) Với mỗi phần tử i 2 và mỗi cặp e, f cỏc phần tử phõn biệt của 1,
{(i, e), (i, f)} {b}
(v) Với mỗi phần tử e 1, {e} {b}
(vi) Khụng cú những cặp cú thứ tự nào khỏc với những cặp được cho bởi (i) - (v) là thuộc F
Chỳ ý: |2| |1|, || |1|2 + |1| + 1 và |F| |F1| + 1 + |1|3 + |1|2 + |1|
Bổ đề sau đõy chứng tỏ rằng bài toỏn siờu khoỏ lực lượng khụng quỏ m (bài toỏn P1) dẫn đa thức được đưa về bài toỏn thuộc tớnh khoỏ (bài toỏn P2).
Bổ đề 3.2:
Thuộc tớnh b là thuộc tớnh khoỏ đối với <, F> khi và chỉ khi <1, F1> cú một siờu khoỏ cú lực lượng khụng lớn hơn m (tức m)
Chứng minh:
i[1], ..., i[n] là cỏc phần tử phõn biệt của 2, và
c[1], ..., c[n] là cỏc phần tử phõn biệt của 1, và n 0.
- Ta sẽ chứng tỏ rằng K’ = {c[1], ..., c[n]} là một siờu khoỏ của <1, F1>. Thực vậy, gọi L’ là tập con tối đại của 1 sao cho (K’ L’) F1+. Nếu L’ = 1 thỡ K’ đỳng là một siờu khoỏ của <1, F1>.
Giả sử L’ 1 (L’ là một tập con thực sự của 1). Theo cỏch chọn của L’ và theo cỏc tớnh chất quen biết liờn quan tới cỏc phụ thuộc hàm, L’ là một tập con thực sự của 1 chứa K’ nhưng khụng là siờu khoỏ của <1, F1>.
Như vậy K L’ là một tập con thực sự của , chứa K nhưng khụng là siờu khoỏ của <, F>. Suy ra K khụng là siờu khoỏ của <, F>, mõu thuẫn! Và như đó khẳng định, K’ là một siờu khoỏ của <1, F1> và |K’| n |2| m.
Vậy nếu b là thuộc tớnh khoỏ đối với <, F> thỡ <1, F1> cú một siờu khoỏ với lực lượng khụng lớn hơn m.
- Để chứng minh điều ngược lại, giả sử rằng <1, F1> cú một siờu khoỏ K’ với |K’| = n m.
Ký hiệu cỏc phần tử của K’ là c[1], ..., c[n]. Vỡ n |1| và |2|= min(|1|, m), |2| chứa n phần tử phõn biệt, ký hiệu là i[1], ..., i[n]. Ta sẽ chứng minh rằng {b}
{(i[1], c[1]), ..., (i[n], c[n])} = K là một khoỏ của <, F>.
Theo (iii), (K {b} K’) F+. Vỡ K’ 1 F1+, nờn theo (i): ({b} K’
{b} 1) F+.
Theo (ii) ta cú {b} 1 2 x 1 F.
Như vậy, theo tiờn đề bắc cầu và quy tắc hợp ta cú K {b} 1 2 x
1, điều này chứng tỏ K là siờu khoỏ của <, F>.
Tiếp theo ta thấy, K - {b} là một tập con thực sự của mà khụng là siờu khoỏ. Do đú b là cốt yếu đối với K. Vậy K phải chứa một khoỏ của <, F> mà khoỏ này chứa b. Điều này chứng tỏ b là thuộc tớnh khoỏ đối với <, F>.
Vậy bài toỏn P2 là NP-Hard.
Từ (1) và (2) theo định nghĩa về lớp bài toỏn NP-C ta kết luận bài toỏn P2 là NP-C.
KẾT LUẬN
Qua quỏ trỡnh nghiờn cứu về một số khớa cạnh lý thuyết trong mụ hỡnh CSDL quan hệ, luận văn đó trỡnh bày một cỏch cú hệ thống và đầy đủ một số vấn đề sau:
Lý thuyết thiết kế CSDL quan hệ.
Nghiờn cứu sõu sắc về lý thuyết kết nối và một số kết quả của lý thuyết kết nối, đặc biệt là định lý 2.1 (Định lý cho điều kiện cần và đủ về kết nối khụng mất thụng tin)
Nghiờn cứu phộp nửa kết nối, tớnh chất và ý nghĩa của phộp nửa kết nối, ứng dụng trong tối ưu hoỏ cõu hỏi.
Khỏi quỏt về CSDL phõn tỏn, một số nguyờn lý chung về tối ưu hoỏ cõu hỏi bao gồm: cỏc chiến lược tối ưu tổng quỏt, cỏc kỹ thuật tối ưu hoỏ cõy truy vấn, phõn ró cõu truy vấn và định vị dữ liệu.
Cỏc kỹ thuật và thuật toỏn tối ưu hoỏ cõu hỏi trong mụi trường tập trung và mụi trường phõn tỏn được sử dụng trong cỏc hệ quản trị CSDL hiện hành.
Giới thiệu một số bài toỏn NP-C trong lý thuyết cỏc hệ CSDL. Một số hướng phỏt triển của luận văn:
Nghiờn cứu và phõn tớch sõu sắc hơn nữa cỏc chiến lược kết hợp giữa kết nối và nửa kết nối, sử dụng nửa kết nối băm, cỏc thuật toỏn heuristic nhằm ỏp dụng một cỏch cú hiệu quả trong từng trường hợp, cú thể đưa cỏc nghiờn cứu về mặt lý thuyết vào ứng dụng trong thực tiễn.
Nghiờn cứu và phõn tớch một số kỹ thuật tiếp cận mới ứng dụng trong tối ưu hoỏ cõu hỏi như: sử dụng thụng tin phụ thuộc vị trớ để thực hiện nối, xử lý truy vấn chuỗi, sử dụng mụ hỡnh lớ thuyết đồ thị, ...
Nghiờn cứu và phõn tớch đầy đủ lớp cỏc bài toỏn trong cỏc hệ CSDL là NP-C, nghiờn cứu cỏc thuật toỏn xấp xỉ để giải cỏc bài toỏn NP-Hard.
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Nguyễn Kim Anh (2006), Nguyờn lý của cỏc hệ cơ sở dữ liệu, NXB Đại học Quốc gia Hà nội.
[2] Hồ Thuần (1998), Cơ sở dữ liệu nõng cao, Đề cương chi tiết cho cỏc lớp Cao học, ĐHBK Hà nội.
[3] Hồ Thuần, Hồ Cẩm Hà (2004, 2005), Cỏc hệ cơ sở dữ liệu lý thuyết và thực hành, Tập I và II, NXB Giỏo dục, Hà nội.
[4] Trịnh Nhật Tiến (2006), Thiết kế và đỏnh giỏ thuật toỏn, Tập bài giảng cho cỏc lớp Cao học, Đại học Cụng nghệ, Đại học Quốc gia Hà nội.
[5] Đỗ Trung Tuấn (1998), Cơ sở dữ liệu, NXB Giỏo dục, Hà nội.
[6] Nguyễn Tuệ (2006), Cơ sở dữ liệu nõng cao, Tập bài giảng cho cỏc lớp Cao học, Đại học Cụng nghệ, Đại học Quốc gia Hà nội.
[7] Jeffrey D. Ullman, Biờn dịch Trần Đức Quang (2002), Nguyờn lý cỏc hệ cơ sở dữ liệu và cơ sở tri thức, Tập I và II, NXB Thống kờ.
[8] Kenneth H. Rosen, Người dịch: Phạm Văn Thiều, Đặng Hữu Thịnh (1998),
Toỏn rời rạc ứng dụng trong tin học, NXB Khoa học và kỹ thuật.
[9] M. Tamer Ozsu, Patrick Valduriez, Biờn dịch Trần Đức Quang (1999), Nguyờn lý cỏc hệ cơ sở dữ liệu phõn tỏn, Tập I, NXB Thống kờ.
[10] Lờ Tiến Vương (2000), Nhập mụn Cơ sở dữ liệu quan hệ, NXB Thống kờ, TPHCM.
Tiếng Anh
[11] Aho A.V., Beeri C., Ullman J. D. (1979), “The Theory of Joins in Relational Databases”
[12] Lucchesi C. L., Osborn S. L. (1978), “Candidate Keys for Relations”, J. of Computer and System Sciences, 17, pp. 270-279.
[13] Ogunbadejo O. (1998), Experiment with Hash-Semijoins in Distributed Query Processing, pp. 10-32, Thesis of Master of Science, University of Windsor, Ontario, Canada.
PDF Merger
Merger! To remove this page, please register your program!
Go to Purchase Now>>
Merge multiple PDF files into one
Select page range of PDF to merge
Select specific page(s) to merge