Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,88 MB
Nội dung
Tỡm hiu mt s bi toỏn quytrongDatalogTrờngđạihọc vinh Khoa công nghệ thông tin -------------- N TT NGHIP I HC Ngành: kỹ s công nghệ thông tin TèM HIU MT S BI TON QUYTRONGDATALOG gvhd: ths. Cao thanh sơn svth : lê anh tuấn chu văn trà lớp : 47k - cntt Nghệ An - 05/2011 LI CM N 1 TìmhiểumộtsốbàitoánđệquytrongDatalog Chúng em xin chân thành cảm ơn khoa Công Nghệ Thông Tin, trường ĐạiHọc Vinh đã tạo điều kiện tốt cho chúng em hoàn thành đồ án tốtnghiệp của mình. Chúng em xin được cảm ơn thầy giáo ThS. Cao Thanh Sơn đã tận tình hướng dẫ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ảng dạ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ừa qua. 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ăm só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ên chú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 cho phé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 2 TìmhiểumộtsốbàitoánđệquytrongDatalog 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 to lớ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 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ántì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đề quan trọ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ệu quả. 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 ra cá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, SQL Server,… Tuy nhiên, mô hình dữ liệu quan hệ không có khả năng suy dẫn ra sự kiện mớ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ững năm 70 của thế kỷ trước và được thể hiện trong quyển sách Logic and Databases của nhó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 xu hướng chính: Một là, mong muốn tích hợp giữa CSDL và trí tuệ nhân tạo, mở rộng hệ thống CSDL và cung cấp một chức năng như hệ chuyên gia, gọi là hệ cơ sở tri thức. Hai là, mong muốn tích hợp giữa Lập trình logic và CSDL để tăng khả năng tương tác giữa hệ cơ sở dữ liệu và khai thác được ưu điểm của ngôn ngữ lập trình. Hướng tiếp cận trên có tính khả thi cao vì có sự tương đồng 3 TìmhiểumộtsốbàitoánđệquytrongDatalog giữa lập trình logic và phép toán quan hệ đó là chúng có chung mô hình toánhọc cơ bản: logic vị từ bậc nhất (first-order-logic). Song song với sự phát triển của các hệ QTCSDL, các hệ chuyên gia đã được phát triể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ểm chí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 ra quyế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ộtsố 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 đạisố quan hệ, đặc biệt cho phép chỉ định rõ các xử lý đệ quy. Mặt khác, một CSDL suy 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ạn như 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 4 TìmhiểumộtsốbàitoánđệquytrongDatalog 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. Vấnđề đặt ra: Phép toán quan hệ và Đạisố quan hệ đã được xem như là ngôn ngữ 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ột tính chất quan trọng: Đệquy (recursive). Mộtsốbàitoán không thể giải quyết được khi dùng các Phép toán quan hệ. Trước nhu cầu giải quyết những bàitoánđệ quy, những vấnđề mà các phép toánđạisố quan hệ trước đây còn chưa làm được. Datalog hướng chúng ta tìm ra một hướng mớ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à đánh giá 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 suy diễ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àitoánđệ quy. Cấu trúc của đồ án “Tìm hiểumộtsốbàitoánđệquytrong Datalog” được chia làm ba chương. Chương 1: Mộtsố khái niệm cơ bản Chương 2: Mộtsố phương pháp đánh giá và xác định ngữ nghĩa chương trình Datalog Chương 3: Ứng dụng Datalogđể giải quyết mộtsốbàitoánđệquy CHƯƠNG 1: MỘTSỐ KHÁI NIỆM CƠ BẢN 1.1. Logic vị từ bậc nhất Logic mệnh đề cho phép chúng ta biểu diễn thế giới các sự kiện. Hạn chế của logic mệnh đề là không biểu diễn mối quan hệ giữa các đối tượng. 5 TìmhiểumộtsốbàitoánđệquytrongDatalog Logic vị từ bậc nhất là một ngôn ngữ hình thức diễn tả các quan hệ giữa các đối tượng và để suy diễn ra các quan hệ mới từ những quan hệ được xem là đúng. Ngoài 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 trongmộ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ác nhau (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ền khá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ị đối vớ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): D n D Đối với ký hiệu vị từ (có n tham số) P: I(P): D n {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 = Φ • Nếu I = Φ thì chúng ta nói rằng I là một mô hình (model) của Φ . Nói cách khác, I thỏa Φ . 6 TìmhiểumộtsốbàitoánđệquytrongDatalog • 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 đều thỏ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ộtsố giá trị nào đó của biến lượ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 literal khẳng định (positive literal). Trong đó: literal là một công thức nguyên tử (atomic formula) hoặc phủ định của nó (its negation). Mỗi mệnh đề Horn thuộc mộttrong 4 trườ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 QPPP k ∨¬∨∨¬∨¬ . 21 , luật này tương đương logic với luật [ k PPP ∧∧∧ . 21 ] 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 Ví dụ: “mother(mary, tom)” b. Một phủ định đích (A negated goal): 0 literal khằng định và ít nhất 1 literal phủ định. c. Mệnh đề rỗng (The null clause): 0 literal khẳng định và 0 literal phủ định: chỉ xuất hiện vào cuối cùng của phép chứng minh resolution (resolution proof). [4] 1.3. Phép thể hiện Herbrand 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ập các hạng thức nền của L. H B là tập các nguyên tố nền trong L. U gọi là tập phổ dụng Herbrand (Herbrand Universe) H B gọi là cơ sở Herbrand (Herbrand Base) Ví dụ: Cho ngôn ngữ L - có a, b là các hằng 7 TìmhiểumộtsốbàitoánđệquytrongDatalog - f, g là các ký hiệu hàm một biến - p là ký hiệu vị từ một biến U = {a,b,f(a),f(b),f(f(a)), .} H B = { p(a), p(b), p(f(a)), .} Định nghĩa 1.2.1 Một phép thể hiện Herbrand I của ngôn ngữ bậc nhất L bao gồm: Một miền D là tập phổ dụng U 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ạ f I :U n → U như sau: ∀t 1 , .,t n ∈U, f I (t 1 , .,t n ) → f(t 1 , .,t n ) Mỗi ký hiệu vị từ p n biến được gán bởi ánh xạ p I từ U n → {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 - Vị từ p, q - Chương trình logic P : r 1 : p(a) ← r 2 : p(s(X)) ← p(X) r 3 : q(X,a,X) ← p(X) 8 TìmhiểumộtsốbàitoánđệquytrongDatalog r 4 : q(X,s(Y),s(Z)) ← q(X,Y,Z) U= {a,s(a),s(s(a)), .} H B ={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 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ạ : s I : X → s(X), ∀X∈U Ký hiệu vị từ p được gán bởi ánh xạ : p I : x → true ∀x∈U Ký hiệu vị từ q được gán bởi ánh xạ : q I : (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ép thể hiện Herbrand chỉ khác nhau bởi giá trị chân lý của các nguyên tố nền. 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ập hợ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 : - Hằng a,b,c - Ký hiệu vị từ p,q,r - Vị từ p, q 9 TìmhiểumộtsốbàitoánđệquytrongDatalog - 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) U={a,b,c} H B ={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) } là phép thể hiện Herbrand: r I : (a,b) → true (x,y) → false ∀(x,y) ≠ (a,b) p I : (a,b) → true (x,y) → false ∀(x,y) ≠ (a,b) q I : (a,b) → true (x,y) → false ∀(x,y) ≠ (b,c) Định nghĩa 1.2.2 10 . độ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 . relation) là quan hệ xuất hiện trong phần đầu (head) của một số luật trong P 16 Tìm hiểu một số bài toán đệ quy trong Datalog CSDL ngoại diên (Extensional