1. Trang chủ
  2. » Tất cả

(Luận văn thạc sĩ) nghiên cứu lập trình logic tập trả lời và ứng dụng

73 13 0

Đ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

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 Luan van 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ỏ Luan van 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 q 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ô cán phịng Sau Đại học thầy 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 tơi 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 để có điều kiện sở vật chất học tập hồ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ỏ Luan van 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 Luan van 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 Luan van 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 Luan van immediate consequence iv operator Vị từ Predicate Vũ trụ Herbrand Herbrand universe Giả thiết giới đóng Closed world assumption Luan van 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) Luan van 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 Luan van 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 40 tập trả lời 3.3 Câu đố Sudoku 41 3.4 Kết thực thi toán 3.1 hệ thống tích hợp SMODELS DLV mở rộng 44 3.5 Kết thực thi toán 3.2 hệ thống tích hợp SMODELS DLV mở rộng 48 3.6 Kết thực thi toá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 Luan van 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 Luan van 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) Luan van 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), Luan van 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 toán 3.3 hệ thống tích hợp Smodels DLV mở rộng Bài tố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 Luan van 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 chun 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) Luan van 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 tố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ố toán minh họa Các toá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 Ngồ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 Luan van 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 Luan van 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 Luan van 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 Luan van 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) Luan van 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 Luan van 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) Luan van 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 Luan van 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), Luan van 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 Luan van ... 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 {

Ngày đăng: 07/02/2023, 17:38

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w