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

Tìm hiểu một số bài toán đệ quy trong datalog luận văn tốt nghiệp đại học

61 1,2K 2
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu một số bài toán đệ quy trong Datalog
Tác giả Lê Anh Tuấn, Chù Văn Trà
Người hướng dẫn Ths. Cao Thanh Sơn
Trường học Trường Đại học Vinh
Chuyên ngành Khoa học máy tính / Công nghệ thông tin
Thể loại Đồ án tốt nghiệp đại học
Năm xuất bản 2011
Thành phố Nghệ An
Định dạng
Số trang 61
Dung lượng 1,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tóm lại, sự thành công của mô hình dữ liệu quan hệ là vô cùng to lớn, một minh chứng cụ thể là mô hình này đã được sử trong các hệ quản trị thương mại, như Access, SQLServer,… Tuy nhiên,

Trang 1

Trờng đại học vinh Khoa công nghệ thông tin

- -ĐỐ ÁN TỐT NGHIỆP ĐẠI HỌC

Ngành: kỹ s công nghệ thông tin

TèM HIỂU MỘT SỐ BÀI TOÁN ĐỆ QUY TRONG

DATALOG

gvhd: t hs Cao thanh sơn svth : lê anh tuấn

chu văn trà lớp : 47k - cntt

Nghệ An - 05/2011

LỜI CẢM ƠN

Chỳng em xin chõn thành cảm ơn khoa Cụng Nghệ Thụng Tin, trường Đại HọcVinh đó tạo điều kiện tốt cho chỳng em hoàn thành đồ ỏn tốt nghiệp của mỡnh

Trang 2

Chúng em xin được cảm ơn thầy giáo ThS Cao Thanh Sơn đã tận tình hướngdẫn, chỉ bảo chúng em trong suốt thời gian làm đồ án.

Chúng em xin được chân thành cảm ơn quý thầy cô trong khoa đã tận tình giảngdạy, trang bị cho chúng em những kiến thức quý báu trong suốt những năm học vừaqua

Chúng con xin nói lên lòng biết ơn sâu sắc đối với Ông Bà, Cha Mẹ, đã chămsóc, nuôi dạy chúng con thành người

Xin chân thành cảm ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viênchúng em trong thời gian học tập và nghiên cứu

Mặc dù đã hết sức cố gắng hoàn thành đồ án trong phạm vi và khả năng chophép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Chúng em kính mong nhậnđược sự cảm thông và đóng góp ý kiến tận tình của quý thầy cô và các bạn

Nghệ An … Tháng 5 năm 2011

Sinh viên

LỜI NÓI ĐẦU

Các hệ quản trị cơ sở dữ liệu (QTCSDL) quan hệ, được xây dựng theo mô hình

dữ liệu quan hệ do E.F Codd đề xuất vào năm 1970, đã thu được những thành tựu tolớn về cả phương diện lý thuyết và ứng dụng Ưu điểm của các hệ này là cách tổ chức

Trang 3

dữ liệu, truy cập và cập nhật những khối lượng lớn dữ liệu một cách thuận lợi, an toàn

và hiệu quả Chúng có các thuật toán tìm kiếm, sắp xếp và đảm bảo toàn vẹn dữ liệu,quản lý truy cập đồng thời với nhiều người dùng khác nhau Hơn nữa, vấn đề quantrọng nhất của một hệ QTCSDL phải có là khả năng trả lời các câu truy vấn có hiệuquả Bên cạnh đó CSDL quan hệ đã cung cấp rất nhiều kỹ thuật tiên tiến để đánh giácác biểu thức quan hệ phức tạp

Theo Codd: Một ngôn ngữ truy vấn CSDL là đầy đủ (complete) nếu nó sinh racác phép toán quan hệ

Tóm lại, sự thành công của mô hình dữ liệu quan hệ là vô cùng to lớn, một minh chứng

cụ thể là mô hình này đã được sử trong các hệ quản trị thương mại, như Access, SQLServer,… Tuy nhiên, mô hình dữ liệu quan hệ không có khả năng suy dẫn ra sự kiệnmới Ngoài ra, chúng chưa khai thác hết được quan hệ ngữ nghĩa giữa các thuộc tính

Hiện nay, đã có nhiều cách tiếp cận để giải quyết vấn đề trên như: Data mining,Deductive database,… Các nghiên cứu về Deductive Database được bắt đầu từ nhữngnăm 70 của thế kỷ trước và được thể hiện trong quyển sách Logic and Databases củanhóm tác giả Gallaire và Minker Từ khi ra đời, các nghiên cứu trong lĩnh vực này có 2

Trang 4

Song song với sự phát triển của các hệ QTCSDL, các hệ chuyên gia đã được pháttriển để trợ giúp quá trình ra quyết định trong các lĩnh vực chuyên ngành hẹp Đặc điểmchính của các hệ chuyên gia là cung cấp các khả năng suy luận nhằm hỗ trợ việc raquyết định, nhưng chúng không có khả năng quản lý các khối lượng lớn thông tin.

Như vậy, các CSDL suy diễn có thể được xem như các chương trình logic với sựkhái quát hoá khái niệm về CSDL quan hệ Một CSDL suy diễn là một CSDL có khảnăng suy diễn ra một số dữ kiện mới từ những sự kiện được lưu trữ trong CSDL Cụ thểhơn, nó cung cấp, ở mức ngôn ngữ thao tác dữ liệu, một cơ chế suy diễn mạnh hơn củađại số quan hệ, đặc biệt cho phép chỉ định rõ các xử lý đệ quy Mặt khác, một CSDLsuy diễn phải có tất cả những chức năng của một hệ QT CSDL truyền thống, chẳng hạnnhư cho phép nhiều người dùng truy cập đồng thời tới dữ liệu, cho phép dữ liệu phân

bố trên nhiều trạm (phân tán), đảm bảo tính tin cậy, nhất quán và sự an toàn của dữliệu

Trang 5

Vấn đề đặt ra: Phép toán quan hệ và Đại số quan hệ đã được xem như là ngônngữ cơ sở dữ liệu trong suốt thời gian dài, tuy nhiên, các phép toán quan hệ thiếu mộttính chất quan trọng: Đệ quy (recursive) Một số bài toán không thể giải quyết được khidùng các Phép toán quan hệ.

Trước nhu cầu giải quyết những bài toán đệ quy, những vấn đề mà các phép toánđại số quan hệ trước đây còn chưa làm được Datalog hướng chúng ta tìm ra một hướngmới cho việc giải quyết những vấn đề trên Bằng những phương pháp xác định và đánhgiá ngữ nghĩa của chương trình, đồng thời đưa ra một cơ sở luật cho cơ sở dữ liệu suydiễn Bằng các phương pháp tiếp cận theo những quan điểm lý thuyết kinh điển nhưquan điểm lý thuyết mô hình, quan điểm lý thuyết chứng minh, quan điểm bất động.Datalog đã góp phần không nhỏ vào công việc giải quyết các vấn đề của bài toán đệquy

Cấu trúc của đồ án “Tìm hiểu một số bài toán đệ quy trong Datalog” được chialàm ba chương

Chương 1: Một số khái niệm cơ bản

Chương 2: Một số phương pháp đánh giá và xác định ngữ nghĩa chương trình DatalogChương 3: Ứng dụng Datalog để giải quyết một số bài toán đệ quy

CHƯƠNG 1 : MỘT SỐ KHÁI NIỆM CƠ BẢN

Trang 6

các kết nối như trong logic mệnh đề, logic vị từ bậc nhất đưa vào khái niệm vị từ

(pridicate) và sử dụng các lượng từ (quantifier): tồn tại (), với mọi ( )

a Logic vị từ bậc nhất có 4 kiểu ký hiệu (symbols):

 Hằng (Constants): Tên của các đối tượng trong một lĩnh vực cụ thể (ví dụ:tuan, tra)

 Biến (Variables): Các ký hiệu mà giá trị thay đổi đối với các đối tượng khácnhau (ví dụ: x)

 Ký hiệu hàm (Function symbols): Các ký hiệu biểu diễn ánh xạ (quan hệhàm) từ các đối tượng của miền (domain) này sang các đối tượng của miềnkhác (ví dụ: plus)

 Các vị từ (Predicates): Các quan hệ mà giá trị logic là đúng hoặc sai (ví dụ:friend)

b Ngữ nghĩa:

 Một biểu diễn (interpretation) của một biểu thức là cặp <D, I>, trong đó

o Miền giá trị (Domain) D là một tập khác rỗng

o Hàm biểu diễn (Interpretation function) I là một phép gán giá trị đốivới mỗi hằng, ký hiệu hàm, và ký hiệu vị từ sao cho:

 Đối với hằng c I(c) d

 Đối với ký hiệu hàm (có n tham số) f: I(f): Dn D

 Đối với ký hiệu vị từ (có n tham số) P: I(P): Dn {true,false}

 Một biểu thức  là thỏa mãn nếu và chỉ nếu tồn tại một phép biểu diễn

<D,I> sao cho I(), ký hiệu là I

Trang 7

 Nếu I  thì chúng ta nói rằng I là một mô hình (model) của  Nóicách khác, I thỏa .

 Một biểu thức là hợp lệ (valid) nếu và chỉ nếu mọi phép biểu diễn I đềuthỏa , ký hiệu là I

c Các lượng từ

 Với mọi (): dùng để chỉ một câu là đúng với mọi giá trị của biến lượng giá

 Tồn tại (): dùng để chỉ một câu là đúng với một số giá trị nào đó của biếnlượng giá

1.2 Mệnh đề Horn (Horn clause)

Trong logic toán học, mệnh đề Horn là mệnh đề mà chứa nhiều nhất một literalkhẳng định (positive literal) Trong đó: literal là một công thức nguyên tử (atomicformula) hoặc phủ định của nó (its negation) Mỗi mệnh đề Horn thuộc một trong 4trường hợp sau:

Luật (rule): một literal khẳng định và ít nhất một literal phủ định Một luật có dạng

Q P P

P      k

 1 2 , luật này tương đương logic với luật [P1 P2   P k]  Q;

Ví dụ: parent (X,Y)  ancestor (Y,Z)  ancestor (X,Z)

a Sự kiện (fact): 1literal khẳng định và 0 literal phủ định

1.3 Phép thể hiện Herbrand

Trang 8

Cho ngôn ngữ bậc nhất L, giả sử tập các hằng trong L là khác rỗng Đặt U là tậpcác hạng thức nền của L HB là tập các nguyên tố nền trong L.

U gọi là tập phổ dụng Herbrand (Herbrand Universe)

HB gọi là cơ sở Herbrand (Herbrand Base)

 Mỗi hằng được gán bởi chính nó

 Mỗi một ký hiệu hàm f n biến được gán bởi một ánh xạ fI :Un  U như sau:

t1, ,tn U, fI(t1, ,tn)  f(t1, ,tn)

 Mỗi ký hiệu vị từ p n biến được gán bởi ánh xạ pI từ Un  {true, false}

Ví dụ: Cho ngôn ngữ bậc nhất L bao gồm :

- Hằng a

- Ký hiệu hàm s

Trang 9

Ta định nghĩa một phép thể hiện Hebrand của ngôn ngữ L nhaư sau :

Hằng a được gán bởi chính nó

Ký hiệu hàm s được gán bởi ánh xạ : sI : X  s(X), XU

Ký hiệu vị từ p được gán bởi ánh xạ : pI : x  true xU

Ký hiệu vị từ q được gán bởi ánh xạ : qI : (x,y,z)  true nếu :

n(x) + n(y) = n(z)trong đó n(t) là số ký hiệu s có mặt trong hạng thức t

Nhận xét: Đối với mọi phép thể hiện Herbrand thì phép gán các hằng, các kýhiệu hàm là không thay đổi, chỉ khác là phép gán các ký hiệu vị từ Như vậy các phépthể hiện Herbrand chỉ khác nhau bởi giá trị chân lý của các nguyên tố nền

Trang 10

Gọi I là tập tất cả các nguyên tố nền có giá trị chân lý là true trong cơ sở Herbrand Tậphợp I được gọi là phép thể hiện Herbrand.

Ví dụ: Cho ngôn ngữ bậc nhất L bao gồm :

q(X,Y)  r(X,Z)p(Z,Y)U={a,b,c}

Trang 11

(x,y)  false (x,y)  (a,b)

Ví dụ: Cho chương trình logic P :

p(X)   q(X)q(X)   p(X)

Cơ sở HB = { r(a), p(a), q(a)}

I1 = { r(a), p(a) } và I2 = { r(a), q(a) } là các mô hình cực tiểu

P không có mô hình nhỏ nhất

1.4 Cơ sở dữ liệu suy diễn (Deductive database)

1.4.1 Mô hình CSDL suy diễn

Mô hình dữ liệu gồm:

 Kí pháp toán học để mô tả hình thức dữ liệu và các quan hệ

 Kỹ thuật để xử lý dữ liệu như trả lời các câu hỏi, kiểm tra điều kiện toàn vẹn

Trang 12

Ngôn ngữ bậc một được dùng như kí pháp toán học để mô tả dữ liệu trong môhình CSDL suy diễn và dữ liệu được xử lý trong các mô hình như vậy nhờ việc đánhgiá công thức logic Tiếp cận của logic bậc một như nền tảng lý thuyết của các hệthống CSDL suy diễn.

Tuy nhiên để dễ biểu diễn hình thức các khái niệm về CSDL suy diễn, người tathường dùng phép toán vị từ, tức logic vị từ bậc nhất Logic vị từ bậc nhất là ngôn ngữhình thức dùng để thể hiện các quan hệ giữa các đối tượng và để suy diễn ra quan hệmới

Định nghĩa 1: Mỗi một hằng số, một biến số hay một hàm số áp lên các term làmột hạng thức (term)

Hàm n ngôi f(x1,x2, ,xn); xi | i = 1,2, ,n là một hạng thức thì f(x1,x2,…,xn) làmột term

Định nghĩa 2: Công thức nguyên tố(công thức nhỏ nhất) là kết quả của việc ứngdụng một vị từ trên các tham số của term dưới dạng P(t1, t2,…, tn)

Nếu P là vị từ có n ngôi và ti | i=1,2, , n là một hạng thức(term)

Định nghĩa 3: (Literal) Dãy các công thức nguyên tố hay phủ định của công thứcnguyên tố đã được phân tách qua các liên kết logic (, , , , , , ) thì công thức

đó được thiết lập đúng đắn

 Một công thức nguyên tố là công thức thiết lập đúng đắn

 F, G là Công thức thiết lập đúng đắn => F  G, F  G, F  G, F  G, F,G cũng là các công thức thiết lập đúng đắn

 Nếu F là Công thức thiết lập đúng đắn, mà x là một biến tự do trong F

=> (x)F và (x)F cũng là các công thức thiết lập đúng đắn ( x, xtrong F )

Trang 13

Ví dụ 1: Cho quan hệ R(A1, A2,…, An) với n bậc ( tức n thuộc tính) => là một

vị từ n ngôi Nếu rR (r bộ của R) => (r.A1, r.A2,…, r.An ) => R(A1, A2, , An) nhậngiá trị đúng

Nếu rR (r bộ của R) => gán (r.A1, r.A2,…, r.An ) => R(A1, A2, , An) nhận giátrị sai

Định nghĩa 4: Mệnh đề (Clause)

Công thức có dạng P1P2….Pn  Q1Q2….Qn

Trong đó: Pi và Qj (i,j=1,2,…,n) là các Literal dương

Trong hệ thống logic, Literal dương có dạng nguyên tố, nhỏ nhất, trái với Literal

âm là phủ định của nguyên tố

Định nghĩa 5: Mệnh đề Horn (Horn clause)

là câu có dạng P1P2….Pn  Q1

Định nghĩa 6: CSDL suy diễn tổng quát (General deductive database)

CSDL suy diễn tổng quát, hay CSDL tổng quát, hay CSDL suy diễn được xácđịnh như cặp (D,L), trong đó D là tập hữu hạn của các câu CSDL và L là ngôn ngữ bậcmột

Giả sử L có ít nhất hai ký hiệu, một là ký hiệu hằng số và một ký kiệu vị từ + Một CSDL xác định (hay CSDL chuẩn) là CSDL suy diễn(D,L) mà D chỉchứa các câu xác định(câu chuẩn)

+ Một CSDL quan hệ là CSDL suy diễn (D,L) mà D chỉ chứa các sự kiện xácđịnh

Trang 14

Vậy CSDL quan hệ là một dạng đặc biệt của CSDL tổng quát, hay chuẩn, hayxác định Còn một CSDL xác định là dạng đặc biệt của CSDL chuẩn hay tổng quát.[1]

1.4.2 Nhìn nhận CSDL suy diễn

Ở đây chỉ nhìn nhận lý thuyết chứng minh áp dụng cho CSDL suy diễn Ngônngữ L của CSDL (D, L) được xây dựng chỉ bằng các kí hiệu xuất hiện trong D, vàngười ta có thể dùng bất kì ngữ nghĩa thủ tục nào trong ngữ cảnh của chương trìnhlogic như công cụ để tìm các câu trả lời bằng cách suy diễn từ lý thuyết chứng minh T,

lý thuyết T đảm bảo ngữ nghĩa của D nhất trí với ngữ nghĩa của T

Liên quan đến CSDL suy diễn, người ta đưa ra Comp(D) như là lý thuyết chứngminh của CSDL (D, L) và dùng cách giải SLDNF để tìm câu trả lời cho câu hỏi

Giả sử (D, L) là CSDL chuẩn Như trong trường hợp của CSDL quan hệ, quanđiểm lý thuyết chứng minh của D đạt được bằng cách xây dựng một lý thuyết T trongngôn ngữ L

Các tiên đề lý thuyết của T như sau:

1) Các tiên đề về đầy đủ: Tiên đề có được do hoàn thiện mỗi kí hiệu vị từ của

L, tương ứng với các câu trong D

2) Tiên đề về duy nhất của tên và về tính tương đương: các tiên đề về lýthuyết tương đương là tuỳ theo các kí hiệu hằng số, hàm số và vị từ của L

3) Tiên đề về bao đóng của miền: Nếu a1, a2,…, ap là tất cả những phần tửcủa L và f1, f2, ,fq là các kí hiệu hàm số của L, thì tiên đề về bao đóng của miền, theoLloyd năm 1987, Mancarella năm 1988 như sau:

x((x=a1)  (x=ap)  (x1, x2, , xm(x = f1(x1, x2, , xm)))  …  (y1, y2,….,

yn( x = fq(y1, Y2,…, yn))))

Trang 15

1.4.3 Các giao tác trên CSDL suy diễn

Định nghĩa 1: Giao tác (Transaction)

Một giao tác trong CSDL suy diễn là một một xâu hữu hạn của các phép toán, haycác hành động bổ sung, loại bỏ hay cập nhật các câu

Vì một CSDL suy diễn được xem như tập các câu, tức là theo quan điểm lý thuyết

mô hình, không một phép loại bỏ hay cập nhật nào được phép thực hiện trên sự kiện.Các sự kiện là ngầm có trong CSDL

1.4.4 Cấu trúc cơ bản

Một cơ sở dữ liệu suy diễn bao gồm CSDL ngoại diên EDB (ExtensionalDatabase), CSDL nội hàm IDB (Intensional Database) và một tập ràng buộc toàn vẹnIcs (Integrity constraints), trong đó:

 EDB là một tập các sự kiện nền (ground fact) được lưu trữ trong CSDL quanhệ

 IDB là một tập các vị từ (predicates) được định nghĩa bởi các mệnh đề Horn(Horn clauses) được gọi là các luật suy diễn

 ICs là một tập các ràng buộc toàn vẹn, tương ứng với các điều kiện mà mỗitrạng thái của CSDL phải thoả mãn

1.5 Datalog - Ngôn ngữ luật cho Cơ sở dữ liệu suy diễn

Trang 16

1.5.1 Cú pháp của Datalog

 Datalog là ngôn ngữ luật của CSDL suy diễn

 Các sự kiện và các luật được biểu diễn như một mệnh đề Horn

 Biến được bắt đầu bằng ký tự hoa, hằng được bắt đầu bằng ký tự thường

 Một chương trình Datalog (P) phải thỏa mãn những điều kiện an toàn sau(safety conditions)

 Mỗi sự kiện phải là nền (không chứa biến)

 Mỗi biến xuất hiện trong phần head thì cũng phải xuất hiện trongbody của luật đó

Những điều kiện trên đảm bảo rằng tập tất cả các sự kiện có thể nhận được từchương trình Datalog là hữu hạn

Định nghĩa 1: Một luật trong Datalog là một biểu diễn bằng mệnh đề Horn

R1(u1)  R2(u2), …, Rn(un)

Trong đó:

 Các vị từ R1, …, Rn là các nguyên tố, n>=1

 Mỗi biến xuất hiện trong u1 phải xuất hiện ít nhất trong u2, …, un

 R1(u1) được gọi là head

 R2(u2), …, Rn(un) được gọi là body

Một chương trình Datalog là một tập hữu hạn các luật Datalog Tập các hằngxuất hiện trong một chương trình Datalog P được ký hiệu adom (P) (active domain),với một thể hiện I chúng ta ký hiệu adom (P, I), được hiểu là adom (P) adom (I)

Định nghĩa 2: Giả sử P là một chương trình Datalog

Trang 17

 Quan hệ ngoại diên (Extensional relation) là quan hệ chỉ xuất hiện trong phầnthân (body) của các luật

 Quan hệ nội hàm (Intensional relation) là quan hệ xuất hiện trong phần đầu(head) của một số luật trong P

 CSDL ngoại diên (Extensional Database schema), ký hiệu edb (P), chứa tất cảcác quan hệ ngoại diên

 CSDL nội hàm (Intensional Database schema), ký hiệu idb (P), chứa tất cảcác quan hệ nội hàm

 Schema of P, ký hiệu sch (P)

sch (P) = edb (P)  idb (P)

Ví dụ: Cho quan hệ links (line, station, next station) như sau:

Trang 18

Hình 1: Một thể hiện I của CSDL MetroChương trình Datalog để trả lời các câu hỏi đã đưa ra:

idb (P) = {reach, answer}

sch (P) = {links, reach, answer}

adom (P, I) = {4, 1, 9, Germain, Odeon, Michel

Chatelet, Louvres, Plais – Royal,Tuileries, Concorde, Pont – Serves

Billancourt, Michel – Ange, Inea, Roosevelt}

1.5.2 So sánh DATALOG với đại số quan hệ

Về mặt cơ bản ngôn ngữ Datalog với các câu hỏi không đệ quy được xem nhưtương đương với đại số quan hệ về khả năng thể hiện

Với các câu hỏi đệ quy cho phép người ta một công cụ mạnh hơn các ngôn ngữquan quan hệ Điều này ngôn ngữ Datalog cho phép hỏi các câu hỏi không được phéptrong đại số quan hệ

(1) Phép hợp : là tập các luật có cùng đầu luật

Trang 19

Ví dụ 2:Tìm tên của các khách hàng tại chi nhánh “Hà Nội”, làm như sau:

Hỏi(Y)  Vay(“Hà Nội”, X, Y, Z)

Hỏi(B)  Gưi tiền(“Hà Nội”, A, B, C)

Chú ý: hai luật thể hiện phép hợp là tách biệt

(2) Phép chọn : ứng với một luật mà thân luật có một vị từ so sánh -> biểuthức chọn

Phép chọn chọn các n_bộ trong quan hệ r được viết dưới dạng câu hỏi: r(x1, x2,…, xn)?

Trong đó: xi (i=1, 2, ,n) là tên biến hay một hằng số

Ví dụ 1: Chamẹ(x,y)  Chamẹ(x,y) , y= Dũng

điều này  y = ‘Dũng’(Chamẹ(x,y)) ( phép chọn với điều kiện là y= ‘Dũng’)

Ví dụ 2: Chọn (tìm kiếm) tên của những khách hàng vay quá 1000?

Hỏi(Y)  Vay(“Hà Nội”, X, Y, Z), Z >1000

(3) Phép chiếu : là phép toán ứng với một số luật mà có một số biến ở thânluật mà không xuất hiện trong đầu luật

Trang 20

Hỏi(X1, X2,…,Xn, Y1, Y2, , Ym)  r1(X1, X2,…,Xn), r2(Y1, Y2, , Ym)Trong đó: Xi, Yj | i=1,2, ,n và j=1,2, ,m là các tên biến phân biệt nhau.

Ví dụ 1: (r3) Ôngbà(x,y)  Chamẹ(x,z) , Chamẹ(z,y)

(5) Khả năng đệ quy:

Ví dụ 1: như (r7)

(r4) Bố(x,y)  (r7) : TổTiên(x,y)  Chamẹ(x,z) , TổTiên(z,y)

Ví dụ 2: Giả sử có lược đồ quan hệ:

Quản lý(Tên nhân công, tên người quản lý)

Lược đồ thể hiện mối quan hệ người quản lý và nhân công

Giả sử “Quản lý” là một quan hệ theo mô hình trên

Tên nhân công Tên người quản lý

MỗHoaMaiLanChénTích

MễMỗMỗMỗHoaHoa

Yêu cầu:1) Tìm tên của những người làm việc trực tiếp dưới quyền của ông

Mỗ, tức phụ thuộc mức 1, viết như sau:

Hỏi(X)  Quản lý(X, “Mỗ”)

2) Để tìm tên của những người làm việc trực tiếp dưới quyền của người do ông Mỗ quản lý, tức phục thuộc mức 2 vào ông Mỗ, Viết như sau:

Trang 21

Hỏi(X)  Quản lý(X, Y), Quản lý(Y, “Mỗ”)

Như vậy, người ta không thể thể hiện yêu cầu tìm người phụ thuộc bậc n vàoông Mỗ trong đại số quan hệ được Dĩ nhiên câu hỏi tìm tên của nhân công làm việcdưới quyền của ông Mỗ, trực tiếp hay gián tiếp, không thể tạo được bằng đại số quan

hệ hay bằng Datalog với các câu hỏi không đệ quy Nguyên nhân là do người ta khôngbiết ông Mỗ quản lý đến mức nào Tuy nhiên người có thể tạo câu hỏi này trongDatalog dưới dạng câu hỏi đệ quy như sau:

về tập hợp, như tính bằng nhau, bao nhau hay rỗng Trong câu Until các quan hệ suydiễn được coi như các tập Do vậy câu hỏi đệ quy trên có thể được viết lại như sau:

Trang 22

- Tại mỗi lần lặp, mức tiếp theo của nhân công được tìm và được bổ sung vàotập e.

- Thủ tục này kết thúc khi tập e = e’ (Khi không còn nhân công mới có thể được

bổ sung vào e.) Mặt khác, do tập những người quản lý là hữu hạn

Cách thực hiện: Theo dõi chu trình với các dữ liệu trong bảng khi chạy

e’ = {Hoa, Lan, Mai}

e = {Hoa, Lan, Mai}

e’ = {Hoa, Lan, Mai, Chén, Tích}

e = {Hoa, Lan, Mai, Chén, Tích}

Cách 2: Ngoài cách làm như trên người ta có thể có cách làm khác mà vẫn đạtđược kết quả như trên:

b) Khác với câu hỏi không đệ quy, người ta có nhiều chiến lược đánh giá câuhỏi đệ quy như chiến lược đánh giá từ dưới – lên

Để đánh giá câu hỏi đệ quy e được gọi là đánh giá thô Tuy nó đơn giản nhữngkhông mấy hiệu qủa trong số các chiến lược dưới – lên Sự không hiệu quả là do khingười ta sử dụng luật đệ quy, tập e trước đó đã được sử dụng trong tính toán Để hiệu

Trang 23

quả hơn, người ta dùng đánh giá nửa thô Dưới đây chỉ các nhân công vừa được bổsung trong lần lặp trước mới được luật xét đến.

1.5.3 Các hệ CSDL chuyên gia

Trang 24

Qua phần trên, người ta thấy rằng các luật dựa trên logic có thể tích hợp đượcvào CSDL quan hệ Các luật như vậy bắt đầu từ các sự kiện trong các n_bộ của cácbảng quan hệ Các hệ chuyên gia dùng ý này để thực hiện hơn nữa các hoạt động cóđiều khiển.

Định nghĩa: Hệ thống CSDL chuyên gia(Expert Database System)

Một hệ thống CSDL chuyên gia bao gồm các luật có dạng “nếu có tập các n_bộ nào đótrong CSDL, thì một thủ tục đặc biệt được khai thác”

Thủ tục này có thể cập nhật CSDL; và câu lệnh IF của các luật khác có thể đúng

và thủ tục khác được thực hiện… Như vậy CSDL loại này gọi là CSDL năng động

Cấu trúc của hệ thống CSDL chuyên gia tương tự như cấu trúc của hệ chuyên giatrong trí tuệ nhân tạo Khác nhau chính giữa hai loại hình này là việc sử dụng CSDLhoặc sử dụng bộ nhớ trong, hay bộ nhớ ảo

Theo dạng chuẩn, một hệ thống CSDL chuyên gia gồm CSDL chuẩn và hệchuyên gia chuẩn Hệ chuyên gia hỏi bằng ngôn ngữ của CSDL, chẳng hạn như ngônngữ SQL và đợi trả lời từ phía CSDL

CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP ĐÁNH GIÁ VÀ XÁC ĐỊNH NGỮ

NGHĨA CHƯƠNG TRÌNH DATALOG

Có 3 tính chất quan trọng mà tất cả các phương pháp phải thỏa mãn:

 Tính đúng đắn: Giả sử tồn tại một kết quả suy diễn từ EDB và IDB thì kết quả

Trang 25

2.1 Phương pháp ước lượng dưới lên (Bottom - up evaluation)

Phương pháp ước lượng dưới lên là đơn giản (còn được gọi là phương pháp ướclượng thô: Naive evaluation) Ý tưởng của phương pháp này là xuất phát từ những sựkiện cơ sở và lặp lại việc áp dụng các luật suy diễn cho tới khi không rút ra được sựkiện mới nào Khi đó, dựa vào các kết quả suy diễn chúng ta có các câu trả lời

Giải thuật này có ưu điểm tránh được trường hợp lặp vô hạn, nhưng phải tính toánrất nhiều kết quả trung gian không liên quan đến câu hỏi (không hướng đích: not goal-oriented)

Để giải quyết những hạn chế của phương pháp trên, người ta đưa ra phương phápước lượng nửa thô (Semi-naive evaluation method) Về ý tưởng thì giống phương phápước lượng thô nhưng khác ở chỗ phương pháp này loại trừ một số bước trung gian dưthừa tại mỗi vòng lặp Phương pháp này chỉ ước lượng những bộ được sinh ra tại mỗivòng lặp và được kết thúc khi không có bộ mới nào được sinh ra

Ví dụ: Chương trình "Reverse-Same-Generation" (rsg)

Chương trình Datalog với phương pháp ước lượng thô:

Trang 26

level 2: {level 1} ∪ {(a, b), (h, f), (i, f), (j, f), (f, k)}

level 3: {level 2} ∪ {(a, c), (a, d)}

level 4: {level 3}

Chương trình Datalog với phương pháp ước lượng Nửa thô:

Δ1

rsg (X, Y) ← flat(X, Y)

Δi+1rsg (X, Y) ← up(X, X1), Δ1rsg (Y1, X1), down(Y1, Y)

2.2 Phương pháp ước lượng trên xuống (Top – down evaluation)

Để tránh việc phải tính toán nhiều kết quả trung gian không liên quan đến câuhỏi như ở phương pháp ước lượng bottom-up, phương pháp top-down sử dụng các kỹthuật heuristic, xuất phát từ câu hỏi và thử tìm các sánh hợp cho các biến để dẫn tới các

sự kiện đúng trong CSDL (nói cách khác đi từ đích mong muốn để xác định các sự kiệnthoả đích)

Trang 27

Ưu điểm của giải thuật là hướng đích (goal-oriented), bỏ qua được nhiều tínhtoán không liên quan, nhưng các phép tính toán ở đây thực hiện một bộ tại 1 thời điểm(a-tuple-at-a-time), phép rút gọn từ goal sang subgoal chỉ chứa số lượng dữ liệu nhỏ vàthường không hiệu quả Phương pháp ước lượng Top-down cũng có thể lặp vô hạn

Cách tiếp cận chung nhất đối với hướng tiếp cận này là phương pháp Subquery (QSQ) Đây là phương pháp ước lượng trên-xuống (top-down) dựa vào suydiễn lùi (backward chaining) Ưu điểm của phương pháp này là xem các câu truy vấntại trạng thái đầu và cố gắng truy cập số lượng sự kiện nhỏ nhất để xác định câu trả lời

Query-Tại mỗi bước, phương pháp cần phải xây dựng 2 tập:

 Tập Q, gồm các tập con đang xét

 Tập quan hệ R, gồm các câu trả lời cho mục đích chính và trả lời nhữngsubqueries trung gian

Phương pháp này thực hiện 2 bước sau:

 Sinh ra các câu trả lời mới trong tập R

 Sinh ra subqueries mà có thể trả lời được câu hỏi trong tập Q

Hiện nay, có 2 hướng tiếp cận đối với giải thuật này:

 Interative Query-Subquery (QSQI): Ưu tiên tạo ra các câu trả lời cho mụcđích chính Tức là khi một truy vấn mới xuất hiện nó sẽ bị tạm dừng chođến khi kết thúc các câu trả lời mà các câu trả lời này không yêu cầu sửdụng subquery mới

 Recursive Query-Subquery(QSQR): Bất cứ nơi nào khi một truy vấn(query) mới được tìm thấy, nó là đệ quy mở rộng và trả lời cho cácsubqueries hiện tại thì truy vấn cũ được hoãn lại cho đến khi giải quyếthoàn toàn các subqueries mới

 Phương pháp đánh giá SLD (SLD resolution )

( Selection rule – driven Linear resolution for Definite clauses)

Trang 28

SLD là phương pháp định giá câu truy vấn theo kiểu trên xuống Phương phápnày thoả mãn tính chất đầy đủ, nghĩa là tất cả các câu trả lời đúng được biểu diễn trongcây SLD Cây 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 Quá trình định giá bắt đầu từ đíchtruy vấn và lặp lại các phép thay thế đối với thân quy tắc Quá trình định giá câu truyvấn sẽ thành công nếu tất cả các literal trong đích là được tìm ra, có nghĩa khi đích lànút kết thúc Một điều đáng tiếc đối với phương pháp này là nó không hiệu quả, việctính toán trên cây SLD có thể kéo dài vô hạn

Ví dụ: Xét chương trình Datalog P sau đây:

Trang 29

Cây SLD đối với câu truy vấn p(1, Y)

2.3 Phương pháp ma tập (Magic set method)

Phương pháp ma tập (Magic sets) là phương pháp viết lại hay phương pháp tối ưu(logical rewriting method or optimization method) Cơ sở của phương pháp ma tập làviết lại các luật của CSDL suy diễn ban đầu thành một CSDL suy diễn tương đương cótính tới cả câu hỏi Q

Thuật toán này kết hợp ưu điểm của hai phương pháp ước lượng bottom-up vàtop-down, từ đó giảm thiểu được số các bộ cần tính toán và tìm kiếm trên CSDL

Trang 30

Cùng với phương pháp định giá bảng, phương pháp ma tập (magic set) cũng làphương pháp hiệu quả để định giá câu truy vấn trên chương trình Datalog Sau đây làmột số khái niệm chính của phương pháp ma tập.

2.3.1 Tô điểm

Tô điểm (adornment) là cách chú thích trên các vị từ để cung cấp thông tin về các

vị từ sẽ được sử dụng như thế nào trong quá trình định giá câu truy vấn

Định nghĩa :

Một đối của một đích con trong quy tắc r được gọi là buộc nếu trong suốt

quá trình định giá câu truy vấn, mọi đích được tạo ra từ đích con này có một

tập các hằng ở vị trí của đối này Ngược lại, đối được gọi là tự do.

Một tô điểm  đối với vị từ p(t1,t2, ,tk) là một ánh xạ :{1,2, ,k}  {b, f}.

Ta thường ký hiệu tô điểm là (1)(2) (k) Nếu ký hiệu thứ i của tô điểm

là b thì đối thứ i của p là buộc, nếu ký hiệu thứ i của tô điểm là f thì đối thứ

i của p là tự do Chỉ có các vị từ IDB là được tô điểm.

Cho quy tắc p  q1  q2   qn và  là tô điểm của vị từ p, tô điểm  i của cácđích con q i (t i,1, ,t i,n i ) được xác định như sau: Nếu t i,j là hằng hoặc biến đã

xuất hiện trong đích con q k trước đó (k < i) hoặc trong một vị trí buộc của p

thì i [j] = b, ngoài ra thì  i [j] = f (với  i [j] là ký hiệu ở vị trí thứ j của tô

điểm)

Cho chương trình P, chương trình tô điểm của P, ký hiệu là P ad, gồm các

quy tắc trong P đã được tô điểm

Tô điểm  của câu truy vấn p(t1, ,t n ) được xác định bởi: [i] = b nếu t i

hằng và [i] = f nếu ngược lại

2.3.2 Truyền thông tin sang ngang

Một chiến lược truyền thông tin sang ngang (Sips-Sideway infomation passing

strategy) là một quyết định về cách thức để lan truyền thông tin ngang trong thân quy

Ngày đăng: 22/12/2013, 13:01

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w