1. Trang chủ
  2. » Công Nghệ Thông Tin

DE CUONG ON TAP DATALOG

9 89 0

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

THÔNG TIN TÀI LIỆU

Nội dung

Nội dung: Tập trung: - Tính quan hệ vế phải (thân qui tắc) thuật tốn - Tính biểu thức quan hệ  Giải phương trình đại số quan hệ + Datalog đệ quy + Datalog không đệ quy Chương I Ngôn ngữ logic bậc nhất: a/ Herbrand Giả sử P chương trình Datalog Lúc đó: • Vũ trụ Herbrand P, ký hiệu UP, tập tất hạng thức P (xây dựng từ hằng) • Cơ sở Herbrand P, ký hiệu BP, tập tất nguyên tố P (xây dựng từ kí hiệu vị từ) • Thể Herbrand đơn giản ta gọi thể hiện, tập I sở Herbrand BP P - Nếu A ∈ I, ta nói kiện A I viết I A - Nếu A ∈ BP A ∉ I, ta nói A sai I viết I A • Tìm mơ hình nhỏ (điểm bất động nhỏ nhất) Ví dụ: Cho ngơn ngữ bậc L có a: hằng, hàm S, vị từ p, q Chương trình logic P: r1: p(a)  r2: p(S(X)  p(X) r3: a(X,a,X)  p(X) r4: q(X, S(Y),S(Z))  q(X,Y,Z) Tìm tập vũ trụ Herbrand sở Herbrand Giải - Vũ trụ Herbrand u = {a, S(a), S(S(a)), …} - Cơ sở Herbrand BL = {p(a), p(S(a)), …, q(a,a,a), q(a,a,S(a)), q(a, a, S(S(a))), …, q(a,S(a),a), q(a, S(S(a)),a), …, q(S(a),a,a), q(S(S(a)),a,a),…} Ví dụ 1.9 Cho ngơn ngữ L - có a, b - f, g ký hiệu hàm biến - p ký hiệu vị từ biến Tìm tập vũ trụ Herbrand sở Herbrand Giải - Vũ trụ Herbrand: U = {a,b,f(a),f(b),f(f(a)), } - Cơ sở Herbrand: HB = { p(a), p(b), p(f(a)), } Ví dụ 1.10 Cho ngơn ngữ bậc L bao gồm : - Hằng a - Ký hiệu hàm s - Vị từ p, q - Chương trình logic P : r1 : p(a) ← r2 : p(s(X)) ← p(X) r3 : q(X,a,X) ← p(X) r4 : q(X,s(Y),s(Z)) ← q(X,Y,Z) Giải U= {a, s(a), s(s(a)), } HB={p(a), p(s(a)), , q(a,a,a), q(a,a,s(a)), q(a,a,s(s(a)), , q(a,s(a),a), q((a,s(s(a)),a), } Ta định nghĩa phép thể Hebrand ngôn ngữ L sau : Hằng a gán Ký hiệu hàm s gán ánh xạ : sI : X → s(X), ∀X∈U Ký hiệu vị từ p gán ánh xạ : pI : x → true ∀x∈U Ký hiệu vị từ q gán ánh xạ : qI : (x,y,z) → true : n(x) + n(y) = n(z) n(t) số ký hiệu s có mặt hạng thức t Nhận xét: Đối với phép thể Herbrand phép gán hằng, ký hiệu hàm không thay đổi, khác phép gán ký hiệu vị từ Như phép thể Herbrand khác giá trị chân lý nguyên tố Gọi I tập tất nguyên tố có giá trị chân lý true sở Herbrand Tập hợp I gọi phép thể Herbrand Ví dụ 1.11 Cho ngơn ngữ bậc L bao gồm : - Hằng a,b,c - Ký hiệu vị từ p,q,r - Vị từ p, q - Chương trình logic P: r(a,b) ← r(b,c) ← p(X,Y) ← r(X,Y) q(X,Y) ← r(X,Z)∧p(Z,Y) Giải U={a,b,c} HB={r(a,b),r(b,c),r(a,c),r(b,a),r(c,b),r(c,a),r(a,a),r(b,b),r(c,c), p(a,b),p(b,c),p(a,c),p(b,a),p(c,b),p(c,a),p(a,a),p(b,b),p(c,c), q(a,b),q(b,c),q(a,c),q(b,a),q(c,b),q(c,a),q(a,a),q(b,b),q(c,c)} Tập I = {r(a,b), p(a,b), q(b,c)} phép thể Herbrand: rI : (a,b) → true (x,y) → false ∀(x,y) ≠ (a,b) pI : (a,b) → true (x,y) → false ∀(x,y) ≠ (a,b) qI : (a,b) → true (x,y) → false ∀(x,y) ≠ (b,c) (Xem lại kết quả) Ví dụ 1.13 Xét chương trình Datalog P gồm quy tắc sau: q(a,b) ← q(b,c) ← p(X,Y) ← q(X,Y) p(X,Y) ← p(X,Z) ∧p(Z,Y) Vũ trụ Herbrand P UP = { a, b, c } sở Herbrand P là: BP = { p(a,a), p(a,b), p(a,c), p(b,a), p(b,b), p(b,c), p(c,a), p(c,b), p(c,c), q(a,a), q(a,b), q(a,c), q(b,a), q(b,b), q(b,c), q(c,a), q(c,b), q(c,c) } Xem thêm Ví dụ 1.10 1.11 trang 19 Sách giáo trình Ví dụ 1.15 Xét chương trình Datalog sau đây: r1: p(X) ← q(X,Y) r2: q(X,Y) ← r(X) ∧s(X,Y) p, q vị từ IDB, r s vị từ EDB Giả sử CSDL EDB {r(1), s(1,2)} Xét thể M1 = {r(1), s(1,2), q(1,2), p(1)} Khi thay X = 1, Y = vào quy tắc r1 r2 làm cho r1 r2 nên M1 mơ hình Cũng vậy, với thể M2 = {r(1), s(1,2), q(1,2), p(1), p(2)} M2 mơ hình Tuy nhiên, với thể M3 = {r(1), s(1,2), q(1,2)} M3 khơng phải mơ hình Lý thay X = 1, Y = vào r1 ta giả thiết kết luận sai Trong ví dụ này, thấy có số lượng vơ hạn mơ hình phù hợp với CSDL {r(1), s(1,2)} Thể M1 mơ hình đặc biệt, mơ hình cực tiểu, theo nghĩa làm cho kiện mơ hình trở thành thành sai mà nhận mơ hình Để ý mơ hình M2 khơng có đặc tính này, chẳng hạn loại bỏ kiện p(2), nghĩa xem p(2) sai, kết nhận mơ hình Hơn nữa, mơ hình cực tiểu M1 phù hợp với CSDL {r(1), s(1,2)} VD: Cho r1(a, b) r1(a, d) fact r2(a, c) r2(b, c) rule p1(X, Y) ← r1(X, Y) p1(X, Y) ← r1(x, Z) ^ p1(Z, Y) p2(X, Y) ← r2(X, Y) p2(X, Y) ← r2(X, Z) ^ p2(Z, Y) p3(X, Y) ← p1(X, Z) ^ p2(Z, Y) u = {a, b, c, d} I1 = {r1(a, b), r2(a, c), p1(a, a), p2(a, b), p2(b, b), p3(a, a)} I2 = {r1(a, b), r1(a, d), r2(a, c), r2(b,c), p1(a, b), p1(a, d), p2(a, c), p2(b, c), p3(a,c)} I1, I2 có phải mơ hình? Giải Xét luật I1, ta có r(a, d) ← false nên I1 khơng phải mơ hình Xét luật I2: - phần fact thỏa mãn - phần rule: p1(X, Y) = true; p2(X, Y) = true; p3(X, Y) = ?, cần chứng minh p3 = true Ta có: p1(a, b) = true p1(X, Z) = true nên p2(b, c) = true p2(Z, Y) = true  p3(X, Y) = true  I2 mơ hình Ví dụ 1.12 Cho chương trình logic P : r(a) ← p(X) ← q(X) q(X) ← p(X) Cơ sở HB = { r(a), p(a), q(a)} I1, I2 có phải mơ hình? HB ⊇ I1 = { r(a), p(a) } r(a) = true p(a) = true q(a) = false (do q(a) khơng có I1) HB ⊇ I2 = { r(a), q(a) } r(a) = true p(a) = false (do q(a) khơng có I1) q(a) = true  Xét luật I1, I2 khơng phải mơ hình Cho chương trình logic P : r(a) ← p(X) ← ¬ q(X) q(X) ← ¬ p(X) Cơ sở HB = { r(a), p(a), q(a)} I1 = { r(a), p(a) } I2 = { r(a), q(a) } mơ hình cực tiểu P khơng có mơ hình nhỏ Bài tập: BT1: r(a) ← s(b) ← p(X) ← r(X) q(X) ← r(X) Trong tập liệu sau, tìm tập mà thay vào rule cho giá trị true? I0 = {r(a), s(b), p(a), q(a)} (đúng) I1 = {r(a), s(b), p(a), q(a), p(b)} (sai p(b) sai) I2 = {r(a), s(b), p(a), q(a), q(b)} (sai q(b) sai) I3 = I1 ∪ {q(b)} (sai I2) Giải: Tập thỏa mãn tập: I1 Chương 2: Chương trình Datalog 1/ Khái niệm: Chương trình Datalog = chương trình logic dương khơng chứa kí hiệu hàm => TP đơn điệu tăng => ∃ LFP(TP) – mơ hình nhỏ chương trình Datalog 2/ Tìm mơ hình nhỏ chương trình Datalog (Dựa vào Mệnh đề 2.1 Sách giáo trình trang 45) Cho P chương trình Datalog: Mơ hình nhỏ P giới hạn dãy TP↑n, n∈N, TP↑0 = ∅; TP↑(i+1)= TP(TP↑i) Từ mệnh đề ta có thuật tốn: Thuật tốn 2.1 Vào: Chương trình Datalog P DB CSDL EDB cho Ra: Mơ hình nhỏ P Phương pháp: Thuật tốn viết theo ngơn ngữ tựa Pascal sau: I := ∅; J :=Tp(DB); while J < > I begin I := J; J := Tp(DB ∪ I); end; output I; Ví dụ 2.7 Xét chương trình Datalog P gồm quy tắc: r1 : path(X,Y) ← arc(X,Y) r2 : path(X,Z) ← arc(X,Y) ∧path(Y,Z) Giả sử thể Herbrand I chương trình cho bởi: I = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)} Các bước lặp để tính mơ hình nhỏ P: Tìm mơ hình nhỏ Giải I0 = TP↑0 = ∅ I1 = TP↑1 = TP(I0) = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)} I2 = TP↑2 = TP(I1) = I1∪{path(1,2), path(2,3), path(3,4), path(4,5)} I3 = TP↑3 = TP(I2) = I2∪{path(1,3), path(2,4), path(3,5)} I4 = TP↑4 = TP(I3) = I3∪{path(1,4), path(2,5)} I5 = TP↑5 = TP(I4) = I4∪{path(1,5)} I6 = TP↑6 = TP(I5) = I5 Như điểm bất động nhỏ TP TP(I5), mơ hình nhỏ P Chú ý: Trong thuật toán 2.1, câu lệnh J := Tp(DB ∪ I) thực cách sử dụng phép toán đại số quan hệ Ullman đưa thuật toán chuyển đổi quy tắc chương trình Datalog P thành phương trình đại số quan hệ từ phương trình đại số quan hệ xác định mơ hình nhỏ P Phần trình bày chi tiết vấn đề (Xem thêm sách trang 28, 29) Thuật tốn 2.5 Vào: Chương trình Datalog P, DB CSDL EDB cho Ra: Mô hình nhỏ P Phương pháp: Thực theo bước sau: Xây dựng thành phần liên thơng mạnh chương trình Datalog P xếp chúng theo thứ tự tuyến tính Gọi S1, , Sk đỉnh đồ thị phụ thuộc thu gọn P, thực việc đánh số hiệu mức cho đỉnh Si, i = 1, , k Gọi Pi tập quy tắc P định nghĩa vị từ thuộc mức i Quá trình tính tốn thực theo mức Dữ liệu vào mức lời giải chương trình mức trước Gọi EVAL Pi (DB ) lời giải việc định giá chương trình Pi theo thuật toán bán sơ đẳng với CSDL EDB DB cho Bước viết theo ngôn ngữ tựa Pascal sau: I := ∅; for i := to h /* h số mức chương trình */ I := EVAL Pi ( DB ∪ I ) ; output I; I := ∅; J := TP(DB); While J I Begin I := J; J := TP(DB∪I); End; output I; Chú ý: - Vị từ xuất đầu thân qui tắc gọi IDB - Vị từ xuất thân qui tắc không xuất đầu qui tắc gọi EDB ĐN 1.9 (tài liệu) Chú ý: Các vị từ EDB xuất thân quy tắc vị từ IDB xuất thân đầu quy tắc Vị từ cài sẵn xuất thân quy tắc 3/ Quan hệ vế phải qui tắc (quan hệ thân qui tắc) VD: 1) p(x,y)  r(x,y) 2) p(x,y)  p(x,z) ∧p(z,y) ứng với qui tắc (1) quan hệ vế phải R(x,y) (2) quan hệ vế phải Π xy = ( p ( x, z ) >< p ( z , y ) Quan hệ tương ứng với vị từ p: R ( x, y) ∪ Π xy 4/ Vị từ xây dựng Trong chương trình Datalog, người ta thêm vị từ so sánh số học vế phải qui tắc đgl vị từ xây dựng - t1θ t2 =, ≠ , = - Tp đơn điệu tăng  tồn điểm bất động nhỏ 5/ Đánh giá chương trình Datalog a/ Khơng đệ qui (sách trang 52) thuật tốn 3.1 VD 3.6 Sách (trang 54) – (Ví dụ 2.7 tài liệu trang 30) Cho quy tắc r : p(X,Y) ← q(a,X) ∧r(X,Z,X) ∧s(Y,Z) Tìm quan hệ thân qui tắc r? Giả sử Q, R S quan hệ tương ứng với đích q, r, s Bởi đích đòi hỏi Q có thành phần a nên ta cần xây dựng quan hệ với thuộc tính X chứa thành phần thứ hai này, ta định nghĩa quan hệ : T(X) = π (σ $1= a (Q)) T(X) = π (σ $1= a (Q)) xây dựng từ bước thuật tốn từ đích q(a,X) quy tắc cho, T(X) Q1 thuật tốn Quan hệ R có thành phần thứ thành phần thứ ba biến giống nên ta định nghĩa quan hệ đích : U(X,Z) = π 1, (σ $1=$3 ( R)) U(X,Z) = π 1, (σ $1=$3 ( R)) Q2 xây dựng từ đích thứ hai r(X,Z,X) Q3 xây dựng từ đích thứ ba S(Y,Z) S(Y,Z) Do quy tắc khơng có đích xây dựng nên bước bước bỏ qua Vậy : EVAL-RULE(r,Q,R,S) = T(X) U(X,Z) S(Y,Z) biểu thức cuối thân quy tắc Quan hệ bao gồm (x,y,z) thỏa mãn : (a,x) thuộc Q (x,z,y) thuộc R y=x (y,z) thuộc S Ví dụ 3.7 Xét quy tắc: cousin(X,Y) ← parent(X,Xp) ∧parent(Y,Yp) ∧sibling(Xp,Yp) Giả sử quan hệ P,S tính vị từ parent sibling tương ứng Quan hệ thân quy tắc là: R(X,Xp,Y,Yp) = P(X,Xp) P(Y,Yp) S(Xp,Xp) (1) Quan hệ R(X,Xp,Y,Yp) bao gồm (a,b,c,d) thỏa mãn : (a,b) thuộc P (c,d) thuộc P (b,d) thuộc S Ví dụ 3.8 Xét quy tắc: sibling(X,Y) ← parent(X,Z) ∧parent(Y,Z) ∧X≠ Y Quan hệ thân quy tắc : Q(X,Y,Z) = σ X ≠Y ( P ( X , Z ) P(Y , Z )) (2) Quan hệ Q(X,Y,Z) bao gồm (x,y,z) thỏa mãn : (x,z) thuộc P (y,z) thuộc P x≠ y VD: cuối buổi sáng 31/3/2012 Cho p ( X , Y ) ¬ r ( X , Y , a ) >< p1 ) U Π XY ( R2 >< p3 ) * Chương trình Datalog an tồn Các qui tắc an toàn: Sách trang 49 - Biến bị chặn VD: p(x,y)  q(x,z); p(x,y)  q(x)∧Y=X x, z bị chặn * Viết chương trình Datalog đệ qui Đồ thị G(p) có chu trình  khơng thực xếp tơpơ vị từ chương trình  Trong trường hợp này, hệ phương trình đại số quan hệ giải phương pháp lặp (dựa nguyên lý điểm bất động) VD: p1(X, Y) ← r1(X, Y) p2(X, Y) ← r2(X, Y) p1(X, Y) ← r1(X, Z) ^ p1(Z, Y) p2(X, Y) ← r2(X, Z) ^ p2(Z, Y) p3(X, Y) ← p1(X, Z) ^ p2(Z, Y) R1 = {(a, b), (a, c), (b, d), (d, e)} R2 = {(b, a), (a, d), (d, f)} Giải p1 = R1 U Π XY ( R1 >< p1 ) p2 = R2 U Π XY ( R2 >< p2 ) p3 = Π XY ( p1 >< p2 ) R1 ab ac bd de ab ac bd de ab ac bd de R2 ba ad df ba ad df ba ad df p1 ∅ ab ac bd de ab ac bd de ad be ab ac bd de ba ad df ab ac bd de ad be ae ab ac bd de ba ad df ab ac bd de ad be ae Bước khơng có phát sinh so với bước4 nên dừng p2 ∅ ba ad df ba ad df bd af ba ad df bd af bf ba ad df bd af bf p3 ∅ ∅ aa bf aa bf ad af aa bf ad af ... ) R1 ab ac bd de ab ac bd de ab ac bd de R2 ba ad df ba ad df ba ad df p1 ∅ ab ac bd de ab ac bd de ad be ab ac bd de ba ad df ab ac bd de ad be ae ab ac bd de ba ad df ab ac bd de ad be ae Bước... Chương 2: Chương trình Datalog 1/ Khái niệm: Chương trình Datalog = chương trình logic dương khơng chứa kí hiệu hàm => TP đơn điệu tăng => ∃ LFP(TP) – mô hình nhỏ chương trình Datalog 2/ Tìm mơ hình... mơ hình nhỏ P Chú ý: Trong thuật toán 2.1, câu lệnh J := Tp(DB ∪ I) thực cách sử dụng phép toán đại số quan hệ Ullman đưa thuật toán chuyển đổi quy tắc chương trình Datalog P thành phương trình

Ngày đăng: 29/10/2019, 13:33

TỪ KHÓA LIÊN QUAN

w