Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
1,68 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUẾ TRƢỜNG ĐẠI HỌC KHOA HỌC VÕ THỊ NHỎ NGHIÊN CỨU LẬP TRÌNH LOGIC TẬP TRẢ LỜI VÀ ỨNG DỤNG CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH MÃ SỐ: 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC PGS.TS TRƢƠNG CÔNG TUẤN Huế, 2014 LỜI CAM ĐOAN Tôi cam đoan công trình nghiên cứu riêng tơi dƣới hƣớng dẫn khoa học thầy giáo PGS.TS Trƣơng Công Tuấn Các kết nêu luận văn trung thực, có nguồn gốc rõ ràng, đƣợc trích dẫn đầy đủ chƣa cơng bố cơng trình khoa học Tác giả luận văn Võ Thị Nhỏ LỜI CẢM ƠN Luận văn đƣợc hoàn thành dƣới hƣớng dẫn khoa học thầy PGS.TS Trƣơng Công Tuấn, trƣờng Đại học Khoa học Huế Tơi xin bày tỏ lịng biết ơn chân thành, sâu sắc đến thầy hƣớng dẫn khoa học, tận tình, chi tiết ln tạo điều kiện tốt để tơi hồn thành luận văn Tơi xin kính gửi lời cảm ơn đến quý thầy cô giáo Khoa Công nghệ thông tin trƣờng Đại học Khoa học Huế, quý thầy cô giáo đơn vị trực thuộc Đại học Huế, thầy cán phịng Sau Đại học thầy cô thỉnh giảng trực tiếp giảng dạy, truyền đạt kiến thức cung cấp nguồn tƣ liệu quý báu cho suốt q trình học tập nghiên cứu Bên cạnh đó, tơi xin đƣợc dành tình cảm tốt đẹp lời cảm ơn đến trƣờng Đại học Tiền Giang - Khoa Cơng nghệ thơng tin, Phịng, Ban, Trung tâm Trƣờng Đại học Tiền Giang tạo điều kiện thuận lợi để tơi có điều kiện sở vật chất học tập hoàn thành tốt luận văn Tơi xin bày tỏ lịng biết ơn đến ngƣời thân gia đình bạn bè, đồng nghiệp động viên, giúp đỡ, tạo điều kiện tơi hồn thành luận văn Tơi chân thành tri ân Huế, tháng 09 năm 2014 Học viên Võ Thị Nhỏ i MỤC LỤC Trang TRANG PHỤ BÌA LỜI CAM DOAN LỜI CẢM ƠN DANH MỤC CÁC THUẬT NGỮ iii DANH MỤC CÁC KÝ HIỆU v CÁC CHỮ VIẾT TẮT vi DANH MỤC CÁC HÌNH VẼ vii MỞ ĐẦU Chƣơng TỔNG QUAN VỀ CHƢƠNG TRÌNH LOGIC 1.1 Một số định nghĩa 1.2 Chƣơng trình logic dƣơng 1.3 Phủ định chƣơng trình logic 1.4 Các tính chất mơ hình bền vững 13 1.5 Lập luận từ mơ hình bền vững 15 1.6 Tiểu kết chƣơng 16 Chƣơng NGỮ NGHĨA TẬP TRẢ LỜI CỦA CHƢƠNG TRÌNH LOGIC 17 2.1 Ràng buộc 17 2.2 Phủ định mặc định phủ định mạnh 18 2.3 Cú pháp ngữ nghĩa tập trả lời chƣơng trình logic mở rộng 19 2.4 Các tính chất tập trả lời 22 ii 2.5 Ví dụ biểu diễn tri thức chƣơng trình logic mở rộng 23 2.6 Tiểu kết chƣơng 31 Chƣơng NGỮ NGHĨA TẬP TRẢ LỜI CỦA CHƢƠNG TRÌNH LOGIC DẠNG TUYỂN MỞ RỘNG VÀ ỨNG DỤNG BIỂU DIỄN TRI THỨC 32 3.1 Cú pháp ngữ nghĩa chƣơng trình logic dạng tuyển mở rộng 33 Trong phần trình bày khái niệm liên quan đến chƣơng trình logic dạng tuyển mở rộng ngữ nghĩa lớp chƣơng [10] 33 3.2 Ví dụ biểu diễn tri thức sử dụng chƣơng trình logic EDLP 36 3.3 Cài đặt số toán với hệ thống SMODELS DLV mở rộng 37 3.3.1 Giới thiệu hệ thống SMODELS DLV mở rộng 38 3.3.2 Cài đặt chạy demo ứng dụng 39 3.4 Tiểu kết chƣơng 54 KẾT LUẬN 55 TÀI LIỆU THAM KHẢO 56 PHỤ LỤC 58 iii DANH MỤC CÁC THUẬT NGỮ Chƣơng trình logic Logic program Chƣơng trình logic Ground program Chƣơng trình tập trả lời Answer Set Program Chƣơng trình logic mở rộng Extended Logic Program Chƣơng trình logic dạng tuyển mở rộng Extended Disjunctive Logic Program Cơ sở Herbrand Herbrand base Điểm bất động nhỏ Least fixpoint Lập trình logic Logic programming Lập trình logic tập trả lời Answer Set Logic programming Literal âm Negative literal Mơ hình bền vững Stable model Mơ hình cực tiểu Minimal model Mơ hình nhỏ Least model Ngữ nghĩa mơ hình bền vững Stable model semantics Nguyên tố Atom Phủ định mạnh Strong negation Phủ định mặc định Default negation Quy tắc Rule Hiện hành Ground instance Toán tử hệ trực tiếp The immediate consequence iv operator Vị từ Predicate Vũ trụ Herbrand Herbrand universe Giả thiết giới đóng Closed world assumption v DANH MỤC CÁC KÝ HIỆU ∩ Giao ∨ Hoặc (phép toán logic) ∪ Hợp ¬ Phủ định ∧ Và (phép hội logic) vi CÁC CHỮ VIẾT TẮT ASP Answer Set Program CWA Closed world assumption MM Minimal model ELP Extended Logic Program EDLP Extended Disjunctive Logic Program vii DANH MỤC CÁC HÌNH VẼ Số hiệu hình vẽ 3.1 Tên hình vẽ Hệ thống trình biên dịch tích hợp Trang 39 Giao diện hệ thống trình biên dịch Lập trình logic 3.2 tập trả lời 40 3.3 Câu đố Sudoku 41 3.4 Kết thực thi tốn 3.1 hệ thống tích hợp SMODELS DLV mở rộng 44 3.5 Kết thực thi tốn 3.2 hệ thống tích hợp SMODELS DLV mở rộng 48 3.6 Kết thực thi tốn 3.3 hệ thống tích hợp SMODELS DLV mở rộng 52 3.7 Kết thực thi toán 3.4 hệ thống tích hợp SMODELS DLV mở rộng 54 49 Chƣơng trình logic mở rộng mơ tả tốn nhƣ ví dụ 2.9 Chƣơng trình logic đƣợc cài đặt hệ thống tích hợp Smodels DLV mở rộng (đƣợc lƣu với tập tin có tên chedohotro.lp) nhƣ sau: Vào - Có trẻ mồ cơi trẻ khơng mồ cơi Vị từ tremocoi(X), có nghĩa X trẻ mồ cơi - Chƣơng trình hỗ trợ cho trẻ mồ cơi Vị từ chuongtrinh(N), có nghĩa N chƣơng trình hỗ trợ cho trẻ Ra - Xác định trẻ mồ cơi hƣởng hỗ trợ theo chƣơng trình nào, trẻ khơng mồ cơi đƣợc chƣơng trình hỗ trợ Chƣơng trình chuongtrinh(0) chuongtrinh(1) %% Mặc định d1: Một đứa trẻ mồ cơi hưởng theo chương trình hotro(X,1) :- ghi(X), tremocoi(X), not ab(d1(X)), not -hotro(X,1) %% Mặc định d2: Một đứa trẻ hưởng chương trình hotro(X,0) :- ghi(X), treem(X), not ab(d2(X)), not -hotro(X,0) %% Một trẻ khơng hưởng nhiều chương trình -hotro(X,N2) :- chuongtrinh(N1), chuongtrinh(N2), ghi(X), hotro(X,N1), N1!= N2 50 %% Một đứa trẻ mồ cơi khơng hưởng chương trình 0: -hotro(X,0) :- ghi(X), tremocoi(X) %% Mặc định d2 áp dụng đứa trẻ trẻ mồ côi: ab(d2(X)) :- ghi(X), not -tremocoi(X) %% X không hưởng chương trình X khơng xác định -hotro(X,N) :- ghi(X), khongxacdinh(X), chuongtrinh(N) %% X không hỗ trợ chương trình X khơng đứa trẻ -hotro(X,N) :- ghi(X), -treem(X), chuongtrinh(N) %% Nếu bạn biết X trẻ mồ côi, %% Kiểm tra trạng thái kiemtra(X) :- ghi(X), not -tremocoi(X), not tremocoi(X) %% Dữ liệu: ghi(Hoa) cha(Phuc,Hoa) me(Lanh,Hoa) treem(Hoa) ghi(Phuc) cha(Thien,Phuc) me(Thanh,Phuc) khongxacdinh(Phuc) cho(Lanh) 51 khongxacdinh(Lanh) ghi(Dung) treem(Dung) me(Lanh,Dung) %% Mở rộng sở tri thức %% Dung có người cha Hạnh %% cha(Hanh,Dung) %% ghi(Hanh) %% Chúng tơi có đầy đủ thông tin người, khongxacdinh (CWA) -khongxacdinh(P) :- dhi(P), not khongxacdinh(P) %% Chúng tơi có đầy đủ thơng tin đứa trẻ,treem (CWA): -treem(X) :- ghi(X), not treem(X) %% P coi đứa trẻ mồ côi cha mẹ đứa trẻ không xác định tremocoi(P) :- treem(P), chakhongxacdinh(P) %% Chúng ta biết P đứa trẻ mồ côi cha mẹ chúng không xác định -tremocoi(P) :- ghi(P), not cothetremocoi(P) cothetremocoi(P) :- ghi(P), treem(P), not -chamekhongxacdinh(P) chame(X,P) :- cha(X,P) chame(X,P) :- me(X,P) chamekhongxacdinh(P) :- cha(X,P), khongxacdinh(X), me(Y,P), 52 khongxacdinh(Y) -chamekhongxacdinh(P) :- chame(X,P), -khongxacdinh(X) Tiến hành thực thi chƣơng trình hệ thống tích hợp Smodels DLV mở rộng ta nhận đƣợc tập trả lời đƣợc cho hình sau: Hình 3.6 Kết thực thi tốn 3.3 hệ thống tích hợp Smodels DLV mở rộng Bài toán 3.4: Cài đặt tốn ví dụ 2.8 xác định “sinhviennhutnhat” Chƣơng trình logic mở rộng mơ tả tốn nhƣ ví dụ 2.8 Chƣơng trình logic đƣợc cài đặt hệ thống tích hợp Smodels DLV mở rộng (đƣợc lƣu với tập tin có tên sinhviennhutnhat.lp) nhƣ sau: Vào - Có sinh viên, vị từ sinhvien(S) có nghĩa S sinh viên - Có mơn học, vị từ monhoc(D) có nghĩa D mơn học Ra 53 - Xác định sinh viên sinh viên sợ học mơn Tốn Chƣơng trình %% Thơng thường sinh viên sợ học mơn tốn %% Mai khơng sợ điều %% Sinh viên chun tốn khơng sợ %% Sinh viên chuyên tin sợ không sợ sinhvien(duy) sinhvien(mai) sinhvien(duyen) sinhvien(dung) monhoc(ngoaingu) monhoc(tin) monhoc(toan) thuoc(duy,ngoaingu) thuoc(mai,tin) thuoc(Duy,tin) thuoc(dung,toan) -thuoc(S,D1) :- monhoc(D1), thuoc(S,D2), D1!= D2 so(S,toan) :- sinhvien(S), not ab(d(S)), not -so(S,toan) -so(mai,toan) ab(d(mai)) -so(S,toan) :- thuoc(S,toan) ab(d(S)) :- sinhvien(S), not -thuoc(S,toan) ab(d(S)) :- sinhvien(S), not -thuoc(S,tin) 54 tiến hành thực thi chƣơng trình hệ thống Smodels DLV mở rộng ta nhận đƣợc tập trả lời đƣợc cho hình sau: Hình 3.7 Kết thực thi toán 2.8 hệ thống tích hợp Smodels DLV mở rộng 3.4 Tiểu kết chƣơng Chƣơng trình bày cú pháp ngữ nghĩa chƣơng trình logic dạng tuyển mở rộng theo tiếp cận ngữ nghĩa tập trả lời ứng dụng lớp chƣơng trình việc biểu diễn tri thức thơng qua số tốn minh họa Các tốn đƣợc trình bày chi tiết từ việc biểu diễn tốn chƣơng trình logic dạng tuyển mở rộng đến việc cài đặt thực thi hệ thống lập trình logic tích hợp Smodels DLV mở rộng Ngoài phần phụ lục, số ví dụ minh họa chƣơng đƣợc cài đặt thực thi hệ thống tích hợp Smodel DLV mở rộng 55 KẾT LUẬN Luận văn tập trung nghiên cứu lập trình logic tập trả lời ứng dụng việc biểu diễn tri thức Các kết mà luận văn đạt đƣợc là: Tìm hiểu khái niệm sở chƣơng trình logic ngữ nghĩa lớp chƣơng trình Nghiên cứu cú pháp ngữ nghĩa tập trả lời chƣơng trình logic mở rộng (ELP) Cách tiếp cận ngữ nghĩa lớp chƣơng trình mở rộng ngữ nghĩa mơ hình bền vững chƣơng trình logic thơng thƣờng Nghiên cứu cú pháp ngữ nghĩa tập trả lời lớp chƣơng trình logic dạng tuyển mở rộng (EDLP) Ứng dụng chƣơng trình ELP EDLP để biểu diễn tri thức thơng qua số tốn Tìm hiểu hệ thống lập trình logic SMODELS DLV mở rộng , ngôn ngữ Lparse Tiến hành mã hóa, thực thi số ví dụ tốn hệ thống tích hợp SMODELS DLV mở rộng Hƣớng phát triển luận văn: Nghiên cứu tiếp cận ngữ nghĩa khác chƣơng trình logic mở rộng Nghiên cứu phƣơng pháp định giá truy vấn chƣơng trình logic mở rộng 56 TÀI LIỆU THAM KHẢO Tiếng Việt Lê Mạnh Thạnh, Trƣơng Cơng Tuấn (2011), Giáo trình chương trình Datalog, Nxb Đại học Huế, Thừa Thiên Huế Tiếng Anh Apt K R (1990), Logic Programming, Elsevier Science Publishers Chitta Baral (2001), “Knowledge representation, reasoning and declarative prolem solving with Answer set”, Department of Computer Scienceand Engineering, Arizona, StateUniversity, Tempe AZ 85287 Ilkka Niemelä, Patrik Simons (1997), “Smodels - An implementation of the stable model and well-founded semantics for normal logic programs”, In Proceedings of the 4th International Conference on Logic Programming and Non-Monotonic Reasoning, Dagstuhl, Germany, Springer-Verlag, pp 420-429 Jos´e J´ulio Alferes, Lu´ıs Moniz Pereira (2006), Reasoning with Logic Programming, Springer-Verlag, Berlin Heidelberg NewYork, London Paris Tokyo, Hong Kong Barcelona, Budapest Michael Gelfond and Vladimir Lifschitz (2013), “Classical Negation in Logic Programs and Disjunctive Database”, University of Texas at EI Paso, Texas 7998, University of Texas at Austin, Texas 78712, , pp 25-49 Michael Gelfond and Nicola Leone (2001), “Logic Programming and Knowledge Representation the - A Prolog perspective”, Department of Computer Science Texas Tech University Lubbock, Texas 79409-3104, Department of Mathematics University Calabria, 87030 Rende (CS), Italy Michael Gelfond (2000), “Representing Knowledge in A-Prolog” Department of Computer Science, Texas Tech University Lubbock, TX 79409, USA, pp 39-49 57 M Gelfond, V Lifschitz (1988), “The stable model semantics for logic programming”, In Proceedings of the 5th International Conference on Logic Programming, Seattle, USA, The MIT Press, pp 1070-1080 10 Tho Thomas Eiter, Giovambattista Ianni and Thomas Krennwallner, (2013), “Answer Set Programming: A Primer”, Institut fur Informationssysteme, Technische Universit at Wien Favoritenstraße 9-11, A-1040 Vienna, Austria, Dipartimento di Matematica, Universit´ a della Calabria, I-87036 Rende (CS), Italy 11 Tommi Syrjänen, Ilkka Niemelä (2001),“The smodels system”, In Proceedings of the 6th International Conference on Logic Programming and Nonmonotonic Reasoning, Vienna, Austria, Springer-Verlag, pp 434438 12 Francesco Ricca (2004), “Java Wrapper for DLV”, Department of Mathematics, University of Calabria, Italy 58 PHỤ LỤC A - Mã hóa ví dụ 1.9 chƣơng trình logic thông thƣờng chƣơng hệ thống SMODELS man(dung) single(X) :- man(X) , not husband(X) husband(X) :- man(X), not single(X) Hình Kết thực thi ví dụ 1.9 hệ thống SMODELS B - Mã hóa ví dụ 1.10 chƣơng trình logic có nhiều mơ hình cực tiểu nhƣng khơng có mơ hình nhỏ chƣơng hệ thống SMODELS khơng có mơ hình nhỏ chƣơng hệ p(X) :- r(X), not q(X) q(X) :- r(X), not p(X) r(1) 59 Hình Kết thực thi ví dụ 1.10 hệ thống SMODELS C - Mã hóa ví dụ 1.11 chƣơng trình logic có mơ hình nhỏ chƣơng hệ thống SMODELS a :- not b b :- not a c :- a, not b Hình Kết thực thi ví dụ 1.11 hệ thống SMODELS 60 D - Mã hóa ví dụ 1.12 để kiểm tra mơ hình bền vững chƣơng hệ thống SMODELS s :- not q q :- not s p :- q, not s f :- s, not p Hình Kết thực thi ví dụ 1.12 hệ thống SMODELS E - Mã hóa ví dụ 1.13 tìm mơ hình bền vững chƣơng hệ thống SMODELS man(Dung) single(X) :- man(X), not husband(X) husband(X) :- man(X), not single(X) 61 Hình Kết thực thi ví dụ 1.13 hệ thống SMODELS F - Mã hóa ví dụ 2.3 tìm tập trả lời P chƣơng hệ thống SMODELS p(a) :- not q(a) p(b) :- not q(b) q(a) Hình Kết thực thi ví dụ 2.3 hệ thống SMODELS 62 G - Mã hóa ví dụ 2.6 tìm tập trả lời chƣơng trình xác định trẻ mồ cơi chƣơng hệ thống SMODELS nguoi(dung) nguoi(hoa) nguoi(hanh) nguoi(phuc) nguoi(an) nguoi(lanh) trem(Dung) treem(hoa) cha(hanh,dung) cha(phuc,hoa) me(an,dung) me(lanh,hoa) khongxacdinh(phuc) hongxacdinh(lanh) -treem(X) :- nguoi(X), not treem(X) -cha(F,C) :- nguoi(F), treem(C), not cha(F,C) -me(M,C) :- nguoi(M), treem(C), not me(M,C) -khongxacdinh(X) :- nguoi(X), not khongxacdinh(X) chamekhongxacdinh(P) :- cha(F,P), me(M,P), khongxacdinh(F), khongxacdinh(M) tremocoi(P) :- treem(P), 63 chamekhongxacdinh(P) -tremocoi(X) :- nguoi(X), not tremocoi(X) Hình Kết thực thi ví dụ 2.6 hệ thống tích hợp Smodels DLV mở rộng ... có tập trả lời S = {q(a), q(b), p(b)}, nhƣ câu trả lời truy vấn q(b) trở thành no Một chƣơng trình có nhiều tập trả lời khơng có tập trả lời Ví dụ 2.4 Các chƣơng trình sau khơng có tập trả lời: ... chƣơng trình logic thơng thƣờng định nghĩa ngữ nghĩa tập trả lời lớp chƣơng trình logic mở rộng Từ dẫn đến khái niệm lập trình tập trả lời Trong chƣơng tiếp tục trình bày ngữ nghĩa tập trả lời chƣơng... Vậy {