Tiểu luận môn datalog bản hoàn chỉnh

10 488 1
Tiểu luận môn datalog bản hoàn chỉnh

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

Thông tin tài liệu

ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA CÔNG NGHỆ THÔNG TIN  Tiểu luận môn: Chương trình DATALOG Đề tài: TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP TỐI ƯU CÂU TRUY VẤN ĐỐI VỚI CHƯƠNG TRÌNH DATALOG Giảng viên hướng dẫn: PGS.TS. LÊ MẠNH THẠNH Học viên thực hiện: Nguyễn Văn Tường Lớp: Cao học KHMT-2011 Huế, 2- 2013 MỤC LỤC MỞ ĐẦU 3 I. Định giá câu truy vấn theo kiểu trên xuống (top-down) 3 II. Định giá truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ 4 2.1 Định giá SLD (Selective Linear resolution for Definite clauses) 4 2.2 Định giá bảng (tabled evaluation) 4 III. Định giá câu truy vấn theo kiểu dưới lên (bottom-up) 6 3.1 Thuật toán định giá câu truy vấn theo phương pháp dưới lên 6 3.2 Thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh 7 IV. Định giá câu truy vấn theo cách kết hợp trên xuống và dưới lên 8 V. Một số nhận xét so sánh về các phương pháp định giá bảng và ma tập 9 Tài liệu tham khảo 10 MỞ ĐẦU Tối ưu hóa truy vấn là một trong những lĩnh vực quan trọng của cơ sở dữ liệu suy diễn. Về vấn đề này, đã có nhiều công trình nghiên cứu với nhiều cách thức sử dụng khác nhau. Trong đó, nhìn chung có ba hướng tiếp cận khác nhau để định giá câu truy vấn trong CSDL suy diễn: tiếp cận trên xuống, tiếp cận dưới lên và tiếp cận có sự kết hợp của hai phương pháp trên xuống và dưới lên. Trong tiểu luận này, em tìm hiểu tổng quan về mỗi hướng tiếp cận, đồng thời thảo luận chi tiết các kiểu tiếp cận, phân tích làm rõ đặc trưng, ý nghĩa của mỗi cách tiếp cận trên. I. Định giá câu truy vấn theo kiểu trên xuống (top-down) Cách tiếp cận trên xuống (top-down) còn gọi là suy luận từ đích hoặc kết xâu lùi (backward-chaining). Xuất phát từ đích truy vấn, ta sẽ xem xét tất cả các cách thức có thể dkn tới đích. Các bước chính thực hiện việc đính giá phương pháp trên xuống như sau: 1. Khởi đầu từ đích truy vấn Q và chương trình Datalog P. 2. Chọn một đích A i từ đích truy vấn A 1 ∧ A 2 ∧ … ∧ A i ∧ … ∧ A n . Việc chọn đích A i thường thực hiện từ phải sang trái. Tìm một quy tắc A ← B 1 ∧ B 2 ∧ … ∧ B m trong chương trình P sao cho Aθ = A i θ với θ là hợp nhất tử tổng quát nhất của A và A i . Kết thúc là thất bại nếu không có quy tắc nào như vậy. 3. Cập nhật lại đích truy vấn bởi phép thế θ (A 1 ∧ A 2 ∧ … ∧ A i ∧ B 1 ∧ B 2 ∧ … ∧ B m ∧ A i+1 ∧… ∧ A n ) θ 4. Nếu kết quả nhận được ở bước 3 là khác rỗng thì trở lại bước 2. Ngược lại, kết thúc là thành công, ta nhận được một câu trả lời đối với truy vấn. Prolog là ví dụ điển hình cho cách tiếp cận này, thứ tự xử lý đích và các đích con được xác định dựa vào thứ tự các quy tắc được liệt kê trong chương trình. Việc sử dụng kiểu tiếp cận trên xuống có ưu điểm là cho phép khám phá chỉ các câu trả lời câu truy vấn, không tính các sự kiện không thích hợp với câu truy vấn. Tuy nhiên nó có những nhược điểm: - Hỗ trợ không đầy đủ đối với bộ nhớ ngoài. Việc tính toán không T hể thực hiện trên một tập khá lớn các sự kiện, và nếu bộ nhớ chính quá nhỏ thì sẽ không đem lại hiệu quả. - Do việc tính toán được thực hiện “mỗi lần một bộ” nên có thể dkn đến tình trạng “thắt cổ chai” trong trường hợp có một số lượng thông tin lớn làm cản trở việc tính toán. - Phương pháp trên xuống có sử dụng thủ tục quay lui để thử các quy tắc khác khi một quy tắc thất bại, vì vậy đễ đi vào một vòng lặp vô hạn. - Thủ tục quay lui không nhận ra các đích đã được gọi thực hiện trước đó nên có thể lặp lại tính toán một cách không cần thiết. II. Định giá truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ Để khắc phục những nhược điểm của phương pháp trên xuống, kỹ thuật ghi nhớ thường được sử dụng. Ước lượng bảng (table evaluation) là phương pháp định giá truy vấn theo kiểu trên xuống đối với chương trình logic tổng quát, phương pháp này có sử dụng kỹ thuật ghi nhớ. Phương pháp ước lượng bảng sẽ ngăn chặn các vòng lặp vô hạn và đảm bảo việc định giá truy vấn sẽ kết thúc đối với chương trình Datalog, chi tiết hơn có thể xem trong [3]. Phần này tập trung phân tích và so sánh hai phương pháp nhằm ngăn chặn các vòng lặp vô hạn trong quá trình định giá câu truy vấn đối với các chương trình Datalog. 2.1 Định giá SLD (Selective Linear resolution for Definite clauses) SLD là một chiến lược xử lý câu truy vấn theo kiểu trên xuống. Quá trình định giá bắt đầu từ đích truy vấn và lặp lại các phép thay thế đối với thân của quy tắc. Quá trình định giá câu truy vấn sẽ thành công nếu tất cả literal trong đích là được tìm ra, có nghĩa khi đích là nút kết thúc. SLD đã tạo ra một sự phân chia chính xác trong không gian tìm kiếm: cần tính toán gì và thứ tự tính toán là như thế nào. Một điều đáng tiếc đối với phương pháp này là nó không hiệu quả, việc tính toán trên cây SLD có thể kéo dài vô hạn. 2.2 Định giá bảng (tabled evaluation) Kỹ thuật định giá bảng mở rộng khả năng của các ngôn ngữ lập trình logic vì nó có thể được dùng để định giá các câu truy vấn đệ qui như trong Prolog nhưng với các tính chất kết thúc tốt hơn nhiều. Phương pháp này sẽ ngăn chặn các vòng lặp vô hạn như đã xảy ra trong phương pháp định giá SLD và đảm bảo việc định giá sẽ kết thúc đối với chương trình Datalog. Ý tưởng chính của phương pháp định giá bảng như sau: trong suốt quá trình định giá câu truy vấn, các đích con và các câu trả lời được lưu giữ vào một bảng. Một bảng bao gồm một tập các đích con, mỗi đích con gắn liền với một tập các câu trả lời, hai đích con hoặc các câu trả lời được xem là đồng nhất với nhau trong bảng nếu chúng là các biến thể của nhau. Mỗi lời gọi đến đích con phải được kiểm tra xem đích con này (hoặc một biến thể của nó) có được gọi trước đó hay không. Nếu không có thì đích con này được chèn vào bảng và các quy tắc được hợp giải dựa vào đích con này y như trong phương pháp định giá SLD. Kết quả của việc định giá sẽ được đưa vào bảng. Nếu có một biến thể của đích con đã được gọi trước đó, đích con sẽ được hợp giải dựa vào các câu trả lời đã có trong bảng. Các câu trả lời mới nhận được, đến lượt nó sẽ được thêm vào bảng và gắn liền với một đích con trong suốt quá trình định giá. Việc định giá sẽ kết thúc khi tất cả các quy tắc và các câu trả lời được hợp giải nhờ vào việc áp dụng tất cả các đích con. Định nghĩa 2.1 (Hệ thống SLG) Một hệ thống SLG là một rừng cây SLG được xây dựng như sau: • Nút gốc của cây SLG có dạng: q ← q, trong đó q là một đích con. Nút gốc được gọi là đầy đủ khi cây tương ứng với nó là được ước lượng đầy đủ (xem Định nghĩa 2.6) • Các nút không phải là nút gốc có một trong hai dạng: - Nút thất bại (ký hiệu fail) được thêm vào như một nút lá của các nhánh thất bại, hoặc: -Nút có dạng: Answer_Template ← Goal_List, trong đó Answer_Template là một nguyên tố biểu diễn các sự kiện của các đích con được xếp vào bảng trong quá trình định giá, Goal_List chứa danh sách các nguyên tố vkn còn phải hợp giải. Giả thiết quá trình tính toán trên các qui tắc được thực hiện từ trái sang phải, các nguyên tố được chọn của một nút là nguyên tố bên trái nhất trong Goal_List. • Một nút lá trong cây SLG được gọi là một nút trả lời nếu Goal_List của nó là rỗng. • Trong hệ thống SLG không có hai cây cùng nút gốc, nghĩa là các đích con tương ứng của chúng không thể là các biến thể đổi tên lkn nhau. Định nghĩa 2.2 (Định giá SLG) Giả sử P là chương trình Datalog, định giá SLG đối với đích truy vấn root là một dãy các rừng cây F 0 , F 1 , , F n , sao cho: - F 0 là rừng chứa một cây đơn root ← root - Với mỗi i ≥ 0 hữu hạn, F i+1 nhận được từ F i bằng cách áp dụng một trong các phép toán SLG (định nghĩa 2.5). Nếu không có phép toán nào được áp dụng vào F n thì F n được gọi là hệ thống cuối cùng của định giá SLG. Định nghĩa 2.3 (Các phép toán SLG) (i) Đích con mới: Giả sử N là nút không phải nút gốc: Answer_Template ← S ∧ Goal_List trong đó đích con S được xếp vào bảng. Nếu S là đích con mới đối với việc định giá thì thêm một cây mới với gốc là S ← S. (ii) Hợp giải quy tắc: - Với N là một nút gốc S ← S và R là quy tắc Head ← Body, trong đó Head hợp nhất với đích con S với mgu là θ. Thêm (S ← Body)θ là một nút con của nút N nếu nó là nút mới . - Với nút N : Answer_Template ← S ∧ Goal_List không phải là nút gốc, đích con S không xếp vào bảng, R là quy tắc Head ← Body, trong đó Head hợp nhất với đích con S với mgu là θ. Thêm (Answer_Template ← Body ∧ goal_list)θ là nút con của nút N. (iii) Hợp giải câu trả lời: Giả sử N không phải nút gốc mà đích con S được chọn của nó là được xếp vào bảng và Ans là một nút trả lời. Gọi N' là hợp nhất của N và Ans trên S. Lúc đó nếu N' không phải là con của N thì thêm N' như là nút con của N. (iv) Kết thúc: Cho trước một tập S các đích con được ước lượng đầy đủ (xem định nghĩa 2.4), các nút gốc của các cây ứng với các đích con trong S gọi là nút đầy đủ. Định nghĩa 2.4 (Định giá đầy đủ) Cho F là hệ thống SLG, một tập S các đích con của F gọi là được định giá đầy đủ nếu mọi đích con q ∈ S, có ít nhất một trong các điều kiện sau đây được thỏa mãn: (i) q có một nút trả lời là một biến thể của q, hoặc (ii) Đối với mỗi nút N trong cây có gốc là q, - Đích con được chọn SL của N là đầy đủ, hoặc - SL ∈ S và không còn áp dụng được các phép toán SLG đối với SL. Định lý 2.1 [15] Giả sử Q là câu truy vấn đối với chương trình Datalog P. Lúc đó phép định giá SLG sẽ đạt đến một hệ thống cuối cùng F n mà trong đó một nguyên tố nền A thuộc vào I(F n ) nếu và chỉ nếu nó thuộc vào MP P/S , trong đó MP P/S là mô hình cực tiểu của P được giới hạn đối với tập các đích con S trong F. III. Định giá câu truy vấn theo kiểu dưới lên (bottom-up) Cách tiếp cận dưới lên (bottom-up) còn được gọi là kết xâu tiến (forward-chaining). Phép suy luận được thực hiện trên các quy tắc theo hướng từ thân đến đầu và được xem là suy luận theo hướng tới. Việc tính toán được khởi đầu chỉ với các sự kiện EDB và áp dụng lặp đi lặp lại các quy tắc từ phải sang trái, nghĩa là từ thân đến đầu. Kết thúc quá trình tính toán ta nhận được mô hình nhỏ nhất của chương trình Datalog. Quá trình định giá các quy tắc theo kiểu dưới lên thường sử dụng một phép toán gọi là phép đối sánh, phép toán này đơn giản hơn nhiều so với phép hợp nhất trong phương pháp trên xuống. Khi ta đối sánh một nguyên tố tuỳ ý với một nguyên tố cơ sở, ta thay thế mỗi biến của nguyên tố đầu để làm nó đồng nhất với nguyên tố thứ hai. Thuật toán sau đây kiểm tra xem tồn tại một phép thay thế như vậy hay không và tìm nó nếu tồn tại. Thuật toán đối sánh hạng thức (Term match) Vào: Một công thức nguyên tố F với các biến X 1 , …, X n (n≥1) và một nguyên tố cơ sở G. Ra: Phép đối sánh thành công và cho kết quả là true nếu tồn tại phép thay thế duy nhất τ trên các biến X 1 , …, X n sao cho với mọi i, khi thay X i trong F bởi τ(X i ) sẽ nhận được nguyên tố cơ sở G. Phép đối sánh thất bại và cho kết quả là false nếu không tồn tại phép thay thế τ như vậy. Phương pháp: Khởi đầu, với mỗi i, τ(X i ) chưa được xác định. Lúc đó ta áp dụng thủ tục đệ qui match sau đây đối với F và G. Nếu lời gọi thủ tục match(F, G) thành công thì τ(X i ) sẽ được xác định với mọi i và thay thế này là phép đối sánh hạng thức được đưa ra như một kết xuất của thuật toán. Nếu ngược lại thì không tồn tại phép đối sánh. 3.1 Thuật toán định giá câu truy vấn theo phương pháp dưới lên Từ định lý 1.2 và phép toán đối sánh, ta có thuật toán sau đây: Giả sử q(t 1 , t 2 , …, t k ) là các câu truy vấn và P là chương trình Datalog. 1. Khởi đầu từ tập M các sự kiện EDB đã cho trong chương trình, thêm vào chương trình P quy tắc sau đây : ans(t 1 , t 2 , …, t k ) ← q(t 1 , t 2 , …, t k ) 2. Đối với mỗi quy tắc A ← A 1 ∧ A 2 ∧ … ∧ A n trong P, sử dụng phép đối sánh hạng thức, tìm một phép thế θ sao cho A i θ, …, A n θ ∈ M. Đối với mỗi phép thế θ như vậy, thêm Aθ vào M. 3. Nếu tập các sự kiện M tăng lên thì quay trở lại bước 2. Ngược lại sang bước 4. 4. Câu trả lời đối với truy vấn là tập các sự kiện của vị từ answer trong M. Phương pháp dưới lên có ưu điểm là quá trình định gía câu truy vấn đảm bảo kết thúc. Phương pháp dưới lên có nhược điểm là không hướng đích, nhiều sự kiện không thích hợp với câu truy vấn cũng được tính, vì vậy sẽ dkn xuất nhiều sự kiện dư thừa. Số các sự kiện dư thừa có thể rất lớn và trong trường hợp đó thì tính toán dưới lên là không hiệu quả. Để ý trong thuật toán trên ở mỗi bước lặp sẽ lặp lại tính toán những sự kiện đã được tạo ra trong những bước trước. Chúng ta có thể làm giảm đi các tính toán dư thừa bằng cách chia quá trình định giá các quy tắc thành các tính toán nhỏ hơn trên mỗi tập con cực đại các vị từ đệ quy lkn nhau của chương trình. Các tập này được xác định bằng cách xác định thành phần liên thông mạnh của đồ thị phụ thuộc 3.2 Thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh Các thuật toán ngây thơ hoặc nửa ngây thơ thường được sử dụng để xác định mô hình nhỏ nhất của chương trình Datalog. Việc tính toán theo cách này có nhược điểm là phải xem xét đến tất cả các quy tắc trong chương trình ở mỗi bước lặp. Chúng ta có thể cải tiến bằng cách phân rã quá trình tính toán thành một dãy các tính toán nhỏ hơn, trong đó việc tính toán được thực hiện theo từng mức của chương trình. Việc phân nhỏ tính toán theo các mức có những thuận lợi sau đây: • Có ít quy tắc được tính toán ở mỗi bước lặp. • Không phải tất cả các nguyên tố trong thân quy tắc đều phải tính trên mỗi bước lặp. • Các chương trình Datalog con trong mỗi mức có thể có những tính chất đặc biệt nào đó, chẳng hạn chương trình tuyến tính. Trong trường hợp đó việc định giá chương trình sẽ đơn giản hơn nhiều. Định nghĩa 3.1 Gọi DG(P) = (V, E) là đồ thị phụ thuộc của chương trình Datalog P. (i) Thành phần liên thông mạnh (SCC - Strongly Connected Component ) của đồ thị phụ thuộc DG(P) = (V, E) là tập lớn nhất C ⊆ V sao cho với mỗi cặp đỉnh u, v ∈ C có một đường đi từ u tới v và ngược lại. Có hai kiểu SCC: - SCC tầm thường là SCC mà tập các cạnh của nó là rỗng. SCC tầm thường chỉ có một nút. Các SCC tầm thường tương ứng với các vị từ không đệ qui trong chương trình. - SCC không tầm thường là SCC mà tập các cạnh của nó khác rỗng. (ii) Đồ thị phụ thuộc thu gọn của chương trình Datalog P là một đồ thị có hướng G’= (V’, E’), trong đó tập đỉnh V’ chính là tập các thành phần liên thông mạnh {S 1 , S 2 , …, S k } của G. Tập cạnh E’={(S i , S j )| i ≠ j và ∃p∈ S i , ∃q ∈ Sj : (p, q) ∈ E}. Rõ ràng đồ thị phụ thuộc thu gọn G' là một đồ thị có hướng phi chu trình. Định nghĩa 3.2 Một sắp xếp tuyến tính trên đồ thị phụ thuộc thu gọn G’ là một sự chỉ định thứ tự các đỉnh của G’ sao cho nếu có một cạnh từ đỉnh i đến đỉnh j của G’ thi i<j. Định nghĩa 3.3 (Đánh số hiệu của mức cho các đỉnh của đồ thị phụ thuộc thu gọn) Mỗi đỉnh của đồ thị phụ thuộc thu gọn G' = (V', E') được gán một số hiệu của mức, các vị từ EDB thuộc mức 0, một đỉnh S i được gọi là có mức thấp hơn đỉnh S j nếu có một đường đi từ S i đến S j trong G', các vị từ trong cùng một đỉnh được gán bởi số hiệu mức của đỉnh đó. Thuật toán 3.1 Vào: Chương trình Datalog P, DB là CSDL EDB đã cho. Ra: Mô hình nhỏ nhất của P Phương pháp: Thực hiện theo các bước sau: 1. Xây dựng các thành phần liên thông mạnh của chương trình Datalog P và sắp chúng theo một thứ tự tuyến tính. 2. Gọi S 1 , , S k là các đỉnh của đồ thị phụ thuộc thu gọn của P, thực hiện việc đánh số hiệu mức cho các đỉnh S i , i = 1, , k. 3. Gọi P i là tập các quy tắc trong P định nghĩa các vị từ thuộc mức i. Quá trình tính toán được thực hiện theo mỗi mức. Dữ liệu vào của mỗi mức là lời giải của chương trình ở mức trước đó. Gọi EVAL (DB ) là lời giải việc định giá chương trình P i theo thuật toán nửa ngây thơ với CSDL EDB là DB đã cho. Bước 3 được viết theo ngôn ngữ tựa Pascal như sau: I := Φ; for i := 1 to h do /* h là số mức của chương trình */ I := EVAL Pi (DB∪I); output I; Định lý 3.2 Thuật toán trên là đúng đắn và có độ phức tạp tính toán với thời gian đa thức. IV. Định giá câu truy vấn theo cách kết hợp trên xuống và dưới lên Trong thời gian gần đây, một số phương pháp mở rộng để trả lời câu truy vấn được đề xuất nhằm mục đích tạo ra một chiến lược tìm kiếm hướng đích, đồng thời có tính hiệu quả là đảm bảo kết thúc quá trình tính toán câu trả lời truy vấn. Điển hình là phép biến đổi ma tập (magic set transformation). Phương pháp này được đánh giá là một trong những kỹ thuật tối ưu câu truy vấn có hiệu quả trong CSDL suy diễn. Lý do quan trọng đối với sự thành công của các phương pháp này là sự kết hợp được các ưu điểm của kỹ thuật định giá theo kiểu trên xuống và dưới lên, từ đó giảm thiểu được số các sự kiện cần tính và tìm kiếm CSDL. Trong [9] tác giả đã áp dụng hai phương pháp này để xử lý vòng lặp vô hạn trong quá trình định giá câu truy vấn trên chương trình Datalog. Phương pháp ma tập biến đổi chương trình Datalog P thành một chương trình được gọi là chương trình magic. Chương trình magic tương đương với chương trình P(theo nghĩa cho cùng kết quả câu truy vấn) nhưng việc định giá trên chương trình magic này sẽ hiệu quả hơn so với việc định giá câu truy vấn trên chương trình ban đầu. Quá trình biến đổi chương trình P theo phương pháp ma tập bao gồm hai giai đoạn: Giai đoạn 1: Thực hiện việc tô điểm chương trình ban đầu thành một chương trình (ký hiệu P ad ) theo một chiến lược truyền thông tin sang ngang được chọn trước. Chiến lược này chỉ ra cách thức để các trị buộc trong đầu của quy tắc được truyền đến thân, thứ tự mà các đích con trong thân sẽ được tính và cách thức để các trị buộc này truyền sang ngang giữa các đích con trong thân quy tắc. Giai đoạn 2: Một chương trình được tạo ra từ chương trình P ad , được gọi là chương trình magic. Giai đoạn hai bao gồm các công việc sau: 1. Khởi tạo sự kiện magic, sự kiện này chứa các hằng trong truy vấn. 2. Xây dựng vị từ magic, đối với mỗi vị từ IDB p, vị từ mag_p chính là vị từ nhận được từ p bằng cách chiếu lên các đối buộc của nó. Các vị từ magic giới hạn giá trị của các đối trong các vị từ để hạn chế việc tính các sự kiện không liên quan đến câu truy vấn. 3. Xây dựng các quy tắc định nghĩa vị từ magic. 4.Xây dựng các quy tắc sửa đổi từ các quy tắc trong P ad bằng cách chèn vị từ magic vào trước thân các quy tắc của chương trình P ad . V. Một số nhận xét so sánh về các phương pháp định giá bảng và ma tập • Các lời gọi trong phương pháp định giá SLD được biểu diễn bởi các vị từ magic trong phương pháp ma tập. Mặt khác, ở bước 3 của phép biến đổi ma tập, đầu quy tắc magic có cùng tô điểm như các vị từ magic được thêm vào quy tắc. Vì vậy các tô điểm trong vị từ magic biểu diễn các đối buộc và các đối tự do của một lời gọi. • Cả hai phương pháp định giá bảng và ma tập thực chất thực hiện cùng một sự tính toán và đều là các thuật toán hướng đích. Sự khác nhau cơ bản trong việc thực hiện của cả hai cách tiếp cận này là về mặt cấu trúc dữ liệu. Phương pháp định giá bảng duy trì một cây stack của phép tính sao cho các câu trả lời được trả về trực tiếp đối với các phép tính toán. Với phương pháp định giá ma tập, các câu trả lời được đưa ra bằng cách thực hiện phép toán nối. Mặc dù chiến lược định giá bảng được xem là thuộc cách tiếp cận trên xuống và phép biến đổi ma tập được xem là dưới lên, nhưng điều đáng ghi nhận là định giá bảng trình bày một thành phần dưới lên trong khi phép biến đổi ma tập trình bày một thành phần trên xuống trong các chiến lược chung của chúng. Một điểm bất lợi của hai phương pháp định giá bảng và ma tập là quá trình tìm câu trả lời truy vấn không tách rời được không gian tìm kiếm ra khỏi chiến lược tìm kiếm. • Phương pháp ma tập loại bỏ một nét đặc trưng của phương pháp định giá bảng, đó là chia s‘ câu trả lời giữa các lời gọi giống nhau. Tài liệu tham khảo [1] Lê Mạnh Thạnh – Trương Công Tuấn, Giáo trình Chương trình Datalog, Nhà xuất bản đại học Huế, 2011 [2] Vũ Hồng Sơn, Datalog và cơ sở dữ liệu suy diễn, Tóm lược luận văn thạc sỹ khoa học, 2010 [3] Lê Mạnh Thạnh – Trương Công Tuấn, Thuật toán ma tập cải tiến để ước lượng câu truy vấn đối với lớp con của chương trình Datalog, Chuyên san Đại học Huế số 811

Ngày đăng: 28/10/2014, 12:20

Mục lục

    I. Định giá câu truy vấn theo kiểu trên xuống (top-down)

    II. Định giá truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ

    2.1 Định giá SLD (Selective Linear resolution for Definite clauses)

    2.2 Định giá bảng (tabled evaluation)

    III. Định giá câu truy vấn theo kiểu dưới lên (bottom-up)

    3.1 Thuật toán định giá câu truy vấn theo phương pháp dưới lên

    3.2 Thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh

    IV. Định giá câu truy vấn theo cách kết hợp trên xuống và dưới lên

    V. Một số nhận xét so sánh về các phương pháp định giá bảng và ma tập

    Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan