Báo khoa học một số cải tiến đối với phép biến đổi ma tập để tối ưu hóa câu truy vấn trên chương trình datalog

8 230 1
Báo khoa học  một số cải tiến đối với phép biến đổi ma tập để tối ưu hóa câu truy vấn trên chương trình datalog

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

Thông tin tài liệu

TẠP CHÍ KHOA HỌC, Đại học Huế, Số 14, 2002 MỘT SỐ CẢI TIẾN ĐỐI VỚI PHÉP BIẾN ĐỔI MA TẬP ĐỂ TỐI ƯU HÓA CÂU TRUY VẤN TRÊN CHƯƠNG TRÌNH DATALOG Lê Mạnh Thạnh, Trương Công Tuấn Trường Đại học Khoa học, Đại học Huế MỞ ĐẦU Phép biến đổi ma tập đánh giá kỹ thuật tối ưu câu truy vấn có hiệu sở liệu suy diễn Lý quan trọng thành công kỹ thuật kết hợp ưu điểm kỹ thuật ước lượng xuống (top-down) lên (bottom-up), từ giảm thiểu số kiện cần tính tìm kiếm sở liệu Tính lôi kỹ thuật ma tập thể tính hiệu ([3, 4, 5]) Tuy nhiên, phép biến đổi ma tập chưa chiến lược định giá câu truy vấn tốt Bài báo tập trung thảo luận số vấn đề liên quan đến phép biến đổi ma tập đề xuất số cải tiến nhằm nâng cao hiệu việc tối ưu câu truy vấn chương trình Datalog MỘT SỐ KHÁI NIỆM CƠ SỞ Trong khuôn khổ báo, trình bày tóm tắt số khái niệm sở phép biến đổi ma tập Để có chi tiết đầy đủ số khái niệm khác sở liệu suy diễn xem [1, 5] 2.1 Tô điểm (Adornment): Tô điểm cách thích vị từ để cung cấp thông tin vị từ sử dụng trình định giá câu truy vấn Ta có số định nghĩa: (i) Một đối đích quy tắc r gọi buộc suốt trình định giá câu truy vấn, đích tạo từ đích có giá trị vị trí đối Ngược lại, đối gọi tự (ii) Một tô điểm vị từ p(t 1,t2, ,tk) dãy ký tự b f có chiều dài k Nếu ký hiệu thứ i tô điểm b đối thứ i p buộc, ký hiệu thứ i tô điểm f đối thứ i p tự Chỉ có vị từ IDB tô điểm (iii) Cho quy tắc p ← q1∧q2∧ ∧qn w tô điểm vị từ p, tô điểm αi đích qi (t i ,1 , , ti ,ni ) xác định sau: Nếu ti,j biến xuất đích qk trước (k < i) vị trí buộc p αi[j] =b, αi[j] =f (với αi[j] ký hiệu vị trí thứ j tô điểm) (iv) Cho chương trình P, chương trình tô điểm P, ký hiệu P ad, gồm quy tắc tô điểm quy tắc P (v) Tô điểm α câu truy vấn p(t1, ,tn) xác định bởi: α[i] = b ti α[i] = f ngược lại 2.2 Truyền thông tin sang ngang (Sideway Information Passing): Phép biến đổi ma tập thực theo chiến lược truyền thông tin sang ngang chọn trước, chiến lược cách thức để trị buộc đầu quy tắc truyền đến thân, thứ tự mà đích thân tính cách thức để trị buộc truyền sang ngang đích thân quy tắc Định nghĩa 2.2.1 Một chiến lược truyền thông tin sang ngang quy tắc r tô điểm α đầu quy tắc r, ký hiệu Sips(r,α), đồ thị có hướng gán nhãn S Các cạnh có dạng N  {q} với N tập vị từ chương trình, S tập → biến q vị từ Các cạnh nhãn định cách thức thông tin truyền đích Các cạnh đồ thị thứ tự để đích ước lượng, nhãn định thông tin truyền sang ngang từ đích đến đích khác Ví dụ 2.1 Xem quy tắc sau: (r): p(X,Y) ← q(X,Z) ∧ s(Z,Y) Giả sử đối X vị từ p bị buộc 1, lúc Sips(r,α) biểu diễn sau: X=1 p X=1,Z q s Quy tắc r tô điểm thành quy tắc: pbf(X,Y) ← qbf(X,Z) ∧ sbf(Z,Y) 2.3 Phép biến đổi ma tập ([4]): Phép biến đổi ma tập thực qua hai giai đoạn: Giai đoạn 1: Thực việc tô điểm chương trình: Biến đổi chương trình Datalog P ban đầu thành chương trình có tô điểm P ad theo chiến lược truyền thông tin sang chọn trước Giai đoạn 2: Biến đổi chương trình Pad thành chương trình mới, ký hiệu MPad, thực sau: _ Đối với vị từ p với đối t chương trình Pad ,tạo vị từ − − mag_p( t b ) với t b đối bị buộc vị từ p _ _ _ Đối với quy tắc r Pad: p( t ) ← q1( t1 ) ∧ ∧ qn( t n ) ta sửa đổi thành − _ _ _ quy tắc MPad : p( t ) ← mag_p( t b ) ∧ q1( t1 ) ∧ ∧ qn( t n ) _ _ _ Đối với quy tắc r P ad : p( t ) ← q1( t1 ) ∧ ∧ qn( t n ) với vị từ IDB qi, 1≤i≤ n ta thêm vào MPad quy tắc magic: _ − _ _ mag_qi( t b ) ← mag_p( t b ) ∧ q1( t1 ) ∧ ∧ qi-1( t i −1 ) i _ _ Câu truy vấn q( c ) chuyển thành kiện “hạt nhân” mag_q( c ), _ c tập tương ứng với đối bị buộc câu truy vấn Định lý 2.3.1 ([4]) Cho chương trình Datalog P câu truy vấn q Dùng phép biến đổi ma tập để biến đổi chương trình P câu truy vấn q thành chương trình MP ad Chương trình tương đương với P theo nghĩa ước lượng MP ad cho kết câu truy vấn q MỘT SỐ VẤN ĐỀ LIÊN QUAN ĐẾN PHÉP BIẾN ĐỔI MA TẬP Trong phần tập trung thảo luận số vấn đề liên quan đến kỹ thuật ma tập đề xuất giải pháp nhằm nâng cao tính hiệu trình định giá câu truy vấn 3.1 Hạn chế tính toán dư thừa chương trình viết lại phép biến đổi ma tập Khi kết thúc giai đoạn hai phép biến đổi ma tập, ta nhận chương trình việc tìm kiếm lời giải chương trình viết lại thường thực thuật toán ước lượng lên, chẳng hạn thuật toán nửa ngây thơ (semi-naive) ([5]), thuật toán cho phép ngăn chặn việc tính toán lại kiện tính bước trước Tuy nhiên, không ngăn chặn việc dẫn xuất vị từ magic dư thừa Giữa vị từ magic tô điểm, quan hệ cú pháp mặt ngữ nghĩa, vị từ magic tô điểm chứa vị từ magic tô điểm khác Vấn đề sử dụng thông tin tô điểm để xác định xem vị từ magic có chứa vị từ magic khác hay không Việc kiểm tra quan hệ vị từ magic thu hẹp thành việc kiểm tra vị từ tương ứng chúng Điều thực qua thuật toán sau đây: Thuật toán kiểm tra quan hệ vị từ magic tô điểm: Vào: Giả sử mag_ p 1α (c ) mag_ p 2β (d ) hai vị từ magic có tô điểm α β Ra: Cho kết vị từ mag_ p 1α (c) có chứa vị từ mag_ p 2β (d ) hay không Phương pháp: Bước 1: Biến đổi vị từ mag_ p 1α (c) thành hạng thức p1( x ), x bao gồm c tương ứng với ký tự 'b' biến phân biệt tương ứng với ký tự 'f' Tương tự, biến đổi vị từ mag_ p 2β (d) thành hạng thức p2( y ) Bước 2: Nếu tồn hợp tử tổng quát (mgu - most general unifier) θ p1( x ) p2( y ) cho p1θ p2 kết luận vị từ mag_ p 1α (c) chứa vị từ mag_ p 2β (d ) , ngược lại mag_ p 1α (c) không chứa vị từ mag_ p 2β (d) Mệnh đề 3.1.1 Thuật toán đắn Chứng minh: Rõ ràng tồn mgu θ p1( x ) p2( y ) cho p1( x )θ =p2( y ) p1( x ) chứa p2( y ), điều có nghĩa mag_ p 1α (c) chứa mag_ p 2β (d ) Để ý phép hợp trở nên đơn giản nhiều hai vị từ cần hợp nguyên tố Trong trường hợp phép hợp thu hẹp thành phép đối sánh hạng thức Ví dụ 3.1.1 Xét hai vị từ mag_pbff(a) mag_pbbf(a,b) Ta có mag_pbff(a) tương ứng với đích ?p(a,X,Y) mag_pbbf(a,b) tương ứng với đích ?p(a,b,Z), mặc khác hợp tử tổng quát θ p(a,X,Y) p(a,b,Z) {X/b,Y/Z} p(a,X,Y)θ = p(a,b,Z) Vì mag_pbff(a) chứa mag_pbbf(a,b) Ví dụ 3.1.2 Xét chương trình Datalog P bao gồm quy tắc: r1 : anc(X,Y) ← par(X,Y) r2 : anc(X,Y) ← par(X,Z) ∧ anc(Z,Y) Trong đó: par vị từ EDB, anc vị từ IDB Giả sử quan hệ vị từ EDB par gồm (a,b), (b,c), (c,d) Câu truy vấn ?-anc(X,d) Sử dụng chiến lược truyền thông tin từ trái sang phải, sau giai đoạn phép biến đổi ma tập ta nhận chương trình tô điểm Pad sau đây: ar1 : ancfb(X,Y) ← par(X,Y) ar2 : ancfb(X,Y) ← ancfb(Z,Y) ∧ par(X,Z) ar3 : ancbb(Z,Y) ← par(X,Y) ar4 : ancbb(X,Y) ← ancbb(Z,Y) ∧ par(X,Z) Đích truy vấn có tô điểm: ?- ancfb(X,d) Sau giai đoạn phép biến đổi ma tập, ta nhận chương trình MPad: mar1 : ancfb(X,Y) ← mag_ancfb(Y) ∧ par(X,Y) mar2 : ancfb(X,Y) ← mag_ancfb(Y) ∧ par(X,Z) ∧ ancbb(Z,Y) mar3 : mag_ancbb(Z,Y) ← mag_ancfb(Y) ∧ par(X,Z) (a,b), (b,c), (c,d) mar4 : ancbb(X,Y) ← mag_ancbb(X,Y) ∧ par(X,Y) mar5 : ancbb(X,Y) ← mag_ancbb(X,Y) ∧ par(X,Z) ∧ ancbb(Z,Y) mar6 : mag_ancbb(Z,Y) ← mag_ancbb(X,Y) ∧ par(X,Z) mar7 : mag_ancfb(d) Áp dụng thuật toán nửa ngây thơ cho chương trình MPad này, ta nhận được: Bước 1: mag_ancfb(d) tạo Bước 2: ancfb(c,d), mag_ancbb(b,d), mag_ancbb(c,d), mag_ancbb(d,d) thêm vào Bước 3: ancbb(c,d) thêm vào Bước 4: ancbb(b,d), ancfb(b,d) thêm vào Bước 5: ancfb(a,d) thêm vào Bước 6: Kết thúc, ta nhận lời giải câu truy vấn (c,d), (b,d), (a,d) Rõ ràng vị từ mag_ancbb(b,d), mag_ancbb(c,d), mag_ancbb(d,d) tạo bước chứa vị từ magic biểu diễn câu truy vấn ban đầu mag_anc fb(d), chúng dư thừa không cần phải tính Tóm lại, tính toán dư thừa thuật toán định giá câu truy vấn chương trình viết lại phép biến đổi ma tập tránh cách kết hợp thêm thuật toán kiểm tra vị từ magic tạo bước có chứa vị từ magic tạo bước trước hay không, có ta loại bỏ Ta có vài nhận xét liên quan đến phép biến đổi ma tập: • Trong phép biến đổi ma tập, chiến lược truyền thông tin dùng xuyên suốt trình ước lượng câu truy vấn • Việc ước lượng chương trình viết lại phép biến đổi ma tập không xem xét số kiện phát sinh trình định giá truy vấn, tức số kiện tạo bước lặp Trong phần sau đây, xem xét vấn đề 3.2 Định giá câu truy vấn cách kết hợp chiến lược truyền thông tin sang ngang Trên tập quy tắc chương trình cho tồn nhiều chiến lược truyền thông tin khác Vì câu hỏi tự nhiên liệu kết hợp hiệu chiến lược để thực việc tối ưu câu truy vấn hay không? Ta xem ví dụ sau đây: Ví dụ 3.2.1 Xét chương trình Datalog P cho ví dụ 3.1.2 câu truy vấn ? anc(a,b) Đối với ví dụ này, hai chiến lược truyền thông tin chọn để thực việc tô điểm chương trình từ trái sang phải từ phải sang trái Việc kết hợp hai chiến lược dẫn đến hai trình định giá câu truy vấn ?anc(a,Z) ?anc(Z,b) tất lời giải tìm thấy ?anc(a,Z) ?anc(Z,b) Việc chọn chiến lược truyền thông tin "tốt" bước lặp giảm bớt kiện dư thừa phát sinh đạt hiệu tối ưu, điều thường nhận phép biến đổi ma tập dựa sở chiến lược truyền thông tin chọn trước Các quy tắc ban đầu nên xem xét lại sau số lớn kiện phát sinh Trong trường hợp rõ ràng chiến lược truyền thông tin chọn dựa vào kích thước nhỏ quan hệ tạo thời điểm Ta có thuật toán sau: Thuật toán ma tập có kết hợp chiến lược truyền thông tin sang ngang: Bước 1: Áp dụng phép biến đổi ma tập để biến đổi chương trình P theo tất chiến lược truyền thông tin chấp nhận được, kết nhận tập chương trình tô điểm theo chiến lược Bước 2: Áp dụng thuật toán lặp kiểu lên Naive, Semi-naive ([5]) chương trình tô điểm tạo bước 1, bước lặp, chiến lược truyền thông tin chọn dựa vào kích thước nhỏ quan hệ tạo thời điểm đó, Tính hiệu thuật toán thể việc kết hợp chiến lược truyền thông tin khác bước lặp, từ giảm chi phí tính toán phép toán nối thân quy tắc trình ước lượng chương trình Mệnh đề 3.2.1 Thuật toán hội tụ hiệu so với thuật toán lặp lên Naive, Semi-Naive đề xuất [5] Chứng minh: Các chương trình tô điểm tạo bước thuật toán tương đương với chương trình ban đầu (định lý 2.3.1) theo nghĩa chúng cho kết câu truy vấn, mặt khác thuật toán lên Naive, Semi-Naive hội tụ ([5]), từ suy tính hội tụ thuật toán Thuật toán đề xuất chắn hiệu thuật toán lên Naive, Semi-Naive [5], bước lặp có xem xét số quan hệ tạo thời điểm chiến lược truyền thông tin bước chọn dựa vào kích thước nhỏ quan hệ Ví dụ 3.2.2 Xét trở lại chương trình Datalog (P) ví dụ 3.1.1 với câu truy vấn ?anc(a,Y) Hai chiến lược truyền thông tin chọn để ước lượng đích thân quy tắc anc từ trái sang phải từ phải sang trái Dùng chiến lược trái sang phải ta nhận tập quy tắc sau: ancbf(X,Y) ← mag_ancbf(X) ∧ par(X,Y) 10 ancbf(X,Y) ← mag_ancbf(X) ∧ par(X,Z) ∧ anc(Z,Y) mag_ancbf(Z) ← mag_ancbf(X) ∧ par(X,Z) Dùng chiến lược phải sang trái ta nhận tập quy tắc sau: ancbf(X,Y) ← mag_ancbf(X) ∧ par(X,Y) ancbf(X,Y) ← mag_ancbf(X) ∧ anc(Z,Y) ∧ par(X,Z) mag_ancff ← mag_ancbf(X) ancff(X,Y) ← mag_ancff ∧ par(X,Y) ancff(X,Y) ← mag_ancff ∧ anc(Z,Y) ∧ par(X,Z) Hai chiến lược dẫn đến tập truy vấn Q = {mag_ancbf} Q2 = {mag_ancbf , mag_ancff} Trong Q2 truy vấn mag_ancff chứa truy vấn mag_ancbf Như việc chọn chiến lược Sip từ phải sang trái để ước lượng đích dẫn đến trình câu truy vấn ?anc(X,Y) kiểm tra a có thuộc X không? Tuy nhiên, để ý mag_ancff chứa mag_ancbf, chiến lược từ trái sang phải tốt chiến lược từ phải sang trái KẾT LUẬN Bài báo tập trung thảo luận số vấn đề liên quan đến việc tối ưu hoá câu truy vấn chương trình Datalog phép biến đổi ma tập Chúng đề xuất cách thức nhận kiện dư thừa trình ước lượng việc kết hợp chiến lược truyền thông tin bước lặp Các giải pháp đưa nhằm mục đích làm tăng tính hiệu phép biến đổi ma tập, đồng thời điều thể tốt tính hiệu tương đối phương pháp TÀI LIỆU THAM KHẢO S Ceri, G Gottlob, L.Tanca Logic Programming and Databases, Springer-Verlag Berlin Heidelberg (1990) Lê Mạnh Thạnh, Trương Công Tuấn Một số phương pháp ước lượng câu truy vấn sở liệu suy diễn, Tạp chí Khoa học Đại học Huế, số 7(2001) 49-59 Lê Mạnh Thạnh, Trương Công Tuấn Phân tích số phương pháp xử lý vòng lặp vô hạn trình ước lượng câu truy vấn chương trình Datalog, Tạp chí Tin học Điều khiển học, tập 17, số 4(2001) 87-96 R Ramakrishnan Magic Templates: A Spellbinding Approach to Logic Programs, Journal of Logic Progamming 11 (1991) 189-216 J.D Ullman Principles of Database and Knowledge - Base Systems, Volume I and II, Computer Science Press (1989) 11 TÓM TẮT Trong phương pháp định giá câu truy vấn sở liệu suy diễn, phép biến đổi ma tập (magic sets transformation) xem kỹ thuật tối ưu câu truy vấn tốt nhờ vào tính hiệu nó, nhiên kỹ thuật ma tập chưa hẵn chiến lược tối ưu truy vấn tốt Bài báo tập trung thảo luận số vấn đề liên quan đến phép biến đổi ma tập đề xuất số cải tiến nhằm nâng cao hiệu SOME IMPROVEMENTS OF MAGIC-SETS TRANSFORMATION IN OPTIMIZING QUERIES FOR DATALOG PROGRAMS Le Manh Thanh, Truong Cong Tuan College of Sciences, Hue University SUMMARY One of the major tasks of deductive databases is query answering, many query evaluation methods have been proposed Among these, the magic-sets transformation was a general query optimization technique in deductive databases However, magic-sets technique may not be the best query optimization strategy In this paper, we discuss some problems of magic sets and propose some improvements of magic-sets technique that allow efficient bottom-up computation of answers 12 ... tập để biến đổi chương trình P câu truy vấn q thành chương trình MP ad Chương trình tương đương với P theo nghĩa ước lượng MP ad cho kết câu truy vấn q MỘT SỐ VẤN ĐỀ LIÊN QUAN ĐẾN PHÉP BIẾN ĐỔI... quan đến phép biến đổi ma tập: • Trong phép biến đổi ma tập, chiến lược truy n thông tin dùng xuyên suốt trình ước lượng câu truy vấn • Việc ước lượng chương trình viết lại phép biến đổi ma tập không... _ Câu truy vấn q( c ) chuyển thành kiện “hạt nhân” mag_q( c ), _ c tập tương ứng với đối bị buộc câu truy vấn Định lý 2.3.1 ([4]) Cho chương trình Datalog P câu truy vấn q Dùng phép biến đổi ma

Ngày đăng: 19/12/2015, 21:44

Từ khóa liên quan

Mục lục

  • TẠP CHÍ KHOA HỌC, Đại học Huế, Số 14, 2002

  • MỘT SỐ CẢI TIẾN ĐỐI VỚI PHÉP BIẾN ĐỔI MA TẬP

    • Lê Mạnh Thạnh, Trương Công Tuấn

    • Trường Đại học Khoa học, Đại học Huế

    • 2. MỘT SỐ KHÁI NIỆM CƠ SỞ

    • 4. KẾT LUẬN

    • TÓM TẮT

      • College of Sciences, Hue University

      • SUMMARY

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

  • Đang cập nhật ...

Tài liệu liên quan