1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 6 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 136,5 KB

Nội dung

Bài báo tập trung thảo luận một số vấn đề liên quan đến phép biến đổi ma tập và đề xuất một số cải tiến nhằm nâng cao hiệu quả của nó trong việc tối ưu câu truy vấn trên chương trình Datalog. Mời các bạn cùng tham khảo nội dung chi tiết.

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, ngồi 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 Các cạnh có dạng N S  {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 MP ad, 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  ) 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 q trình định giá câu truy vấn 3.1 Hạn chế tính tố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 tố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, khơng có 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 tố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 tốn sau: Thuật tố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 tố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 tốn phép tốn nối thân quy tắc q trình ước lượng chương trình Mệnh đề 3.2.1 Thuật tố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 q 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 q 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: 18/05/2021, 20:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w