MỞ ĐẦU Trong suốt những thập kỷ qua, lĩnh vực nghiên cứu về lập trình logic đã được nhiều nhà khoa học quan tâm và không ngừng phát triển. Lập trình logic chủ yếu dựa trên ý tưởng lập trình khai báo, ở đó các chương trình logic không được tạo ra từ các câu lệnh cũng như từ các hàm mà được tạo ra chủ yếu dựa trên tập các vị từ. Vì vậy, một chương trình logic được xem như là một lý thuyết logic, có dạng là một tập các quy tắc liên quan đến giá trị đúng của một literal (phần đầu của mệnh đề) đối với một tập các literal khác (phần thân của mệnh đề). Lập trình logic chủ yếu là lý luận suy diễn bằng các quy tắc. Tuy nhiên, hiện nay lập trình logic đã bộc lộ những hạn chế nhất định và không thể giải quyết đối với các bài toán phức tạp trong thực tế. Đã có nhiều công trình nghiên cứu nhằm mở rộng lập trình logic, trong số đó – Lập trình logic phỏng đoán (ALP - Abductive Logic Programming) là một hướng nghiên cứu được nhiều nhà khoa học quan tâm [3], [5], [7], [8]. ALP được bắt nguồn từ sự phỏng đoán, phỏng đoán là một hình thức suy luận để giải thích cho các quan sát, xuất phát từ một cơ sở tri thức T và một quan sát Q để tìm các giải thích có thể cho Q dựa theo một tập vị từ đặc biệt được gọi là các vị từ phỏng đoán. ALP là sự kết hợp của lập trình logic và phỏng đoán, trong ALP hình thành nên một cú pháp mới của chương trình logic, được định nghĩa bởi một bộ ba , trong đó P là một chương trình logic thông thường, A là một tập hợp các vị từ và được gọi là các vị từ phỏng đoán, IC là một tập các ràng buộc toàn vẹn. ALP là một khuôn khổ biểu diễn tri thức cấp cao, cho phép giải quyết các bài toán dựa trên lập luận phỏng đoán. ALP thường được dùng để giải quyết các bài toán trong Chuẩn đoán, Lập kế hoạch, Xử lý ngôn ngữ tự nhiên và Học máy,… Luận văn nghiên cứu về lập luận suy diễn đối với chương trình logic phỏng đoán. Những nội dung nghiên cứu của luận văn có ý nghĩa về mặt lý thuyết cũng như ứng dụng trong thực tiễn. Cấu trúc luận văn gồm phần mở đầu, ba chương nội dung, phần kết luận và tài liệu tham khảo. Chương 1 trình bày về ngôn ngữ logic bậc nhất, cú pháp và ngữ nghĩa của chương trình logic. Trên cơ sở đó trình bày lập luận suy diễn trong lập trình logic. Chương 2 trình bày các phương pháp tính toán phỏng đoán trong lập trình logic, bao gồm thủ tục SLD đối với chương trình logic xác định, thủ tục SLDNF đối với chương trình logic có chứa ký hiệu phủ định. Cũng trong chương 2, cú pháp và ngữ nghĩa của chương trình logic phỏng đoán được trình bày chi tiết. Chương 3 trình bày phương pháp để tính toán phỏng đoán đối với các chương trình logic phỏng đoán và đồng thời trình bày việc cài đặt, thực thi một số ví dụ minh họa về các chương trình logic phỏng đoán bằng phần mềm SMODELS. Phần kết luận nêu những kết quả đã đạt được và hướng phát triển của luận văn. Do thời gian có hạn và bản thân chỉ mới bước đầu nghiên cứu về lĩnh vực này nên không thể tránh khỏi những thiếu sót, kính mong sự giúp đỡ và góp ý thêm của quý Thầy, Cô và các bạn.
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN ĐÀO BÍCH GIANG T×m hiĨu vỊ lËp ln suy diƠn lËp tr×nh logic pháng ®o¸n CHUN 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 MÁY TÍNH Huế, 2015 MỤC LỤC Trang phụ bìa Lời cam đoan Lời cảm ơn Danh mục thuật ngữ Danh mục ký hiệu Các chữ viết tắt Danh mục hình vẽ MỞ ĐẦU Chương TỔNG QUAN VỀ CHƯƠNG TRÌNH LOGIC 1.1 Ngôn ngữ bậc 1.2 Chương trình logic 1.2.1 Chương trình logic xác định 1.2.2 Chương trình logic thơng thường 11 1.3 Tiểu kết chương 15 Chương CHƯƠNG TRÌNH LOGIC PHỎNG ĐỐN 16 2.1 Giới thiệu lập trình logic đốn 16 2.2 Tính tốn đốn lập trình logic 17 2.2.1 Thủ tục hợp giải SLD chương trình logic xác định 17 2.2.2 Thủ tục hợp giải SLDNF chương trình logic thông thường 24 2.3 Cú pháp ngữ nghĩa chương trình logic đốn 27 2.3.1 Cú pháp chương trình logic đốn 27 2.3.2 Ngữ nghĩa chương trình logic đoán 30 2.4 Tiểu kết chương 32 Chương PHƯƠNG PHÁP TÍNH TỐN PHỎNG ĐỐN 33 3.1 Thủ tục chứng minh đoán 33 3.1.1 Thủ tục chứng minh đoán EK 33 3.1.2 Thủ tục chứng minh đoán KM 39 3.2 Cài đặt thực thi số chương trình logic đốn SMODELS 42 3.2.1 Giới thiệu hệ thống SMODELS 42 3.2.2 Cài đặt thực thi 43 3.3 Tiểu kết chương 52 PHẦN KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 54 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 logic đốn Abductive logic program Chương trình logic thơng thường Normal logic program Chương trình logic xác định Definite logic program Cơ sở Herbrand Herbrand base Giả thiết giới đóng Closed world assumption Hạng thức Term Lập trình logic Logic programming Literal âm Negative literal Literal dương Positive 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 Ngun tố Atom Phép Substitution Phỏng đoán Abductive Quy tắc Rule Thể Interpretation Toán tử hệ trực tiếp The immediate consequence operator Vị từ Predicate Vị từ đoán Abducible predicate Vũ trụ Herbrand Herbrand universe DANH MỤC CÁC KÝ HIỆU BP Cơ sở Herbrand chương trình P UP Vũ trụ Herbrand chương trình P BP Tập tất tập sở Herbrand BP MP Mơ hình nhỏ P TP Toán tử hệ trực tiếp BP CÁC CHỮ VIẾT TẮT ALP Abductive logic programming CWA Closed World Assumption EK Eshghi Kowalski FF Finite Failure KM Kakas Mancarella NG Negative Goal PG Positive Goal SLD Linear Selection resolution for Definite clauses SLDNF SLD - resolution with Negation as finite Failure DANH MỤC CÁC HÌNH VẼ Số hiệu hình vẽ Tên hình vẽ Trang 3.1 Tính câu trả lời cho ví dụ 3.1 35 3.2 Tính câu trả lời cho ví dụ 3.2 37 3.3 Tính câu trả lời cho ví dụ 3.3 38 3.4 Tính câu trả lời cho ví dụ 3.4 39 3.5 Tính câu trả lời cho ví dụ 3.5 41 3.6 Kiến trúc hệ thống SMODELS 43 3.7 Kết thực thi ví dụ 1.13 hệ thống SMODELS 43 3.8 Kết thực thi ví dụ 1.14 hệ thống SMODELS 44 3.9 Kết thực thi ví dụ 1.15 hệ thống SMODELS 45 3.10 Kết thực thi ví dụ 1.16 hệ thống SMODELS 45 3.11 Kết thực thi ∆1 = {b} hệ thống SMODELS 46 3.12 3.13 3.14 Kết thực thi ∆2 = { nhỏ_con(Sang)} hệ thống SMODELS Kết thực thi ∆3 = { cơ_bắp(Sang)} hệ thống SMODELS Kết thực thi ∆1 = {chim_cánh_cụt(Kin)} hệ thống SMODELS 48 48 50 Kết thực thi ∆2 = 3.15 {chim_cánh_cụt_bất_thường(Kin)} hệ thống 51 SMODELS 3.16 Kết thực thi ∆3 = {đà_điểu_lạ(Kin)} hệ thống SMODELS 51 Kết thực thi ∆8 = 3.17 {chim_cánh_cụt_bất_thường(Kin), đà_điểu_lạ(Kin)} hệ thống SMODELS 52 MỞ ĐẦU Trong suốt thập kỷ qua, lĩnh vực nghiên cứu lập trình logic nhiều nhà khoa học quan tâm không ngừng phát triển Lập trình logic chủ yếu dựa ý tưởng lập trình khai báo, chương trình logic khơng tạo từ câu lệnh từ hàm mà tạo chủ yếu dựa tập vị từ Vì vậy, chương trình logic xem lý thuyết logic, có dạng tập quy tắc liên quan đến giá trị literal (phần đầu mệnh đề) tập literal khác (phần thân mệnh đề) Lập trình logic chủ yếu lý luận suy diễn quy tắc Tuy nhiên, lập trình logic bộc lộ hạn chế định giải tốn phức tạp thực tế Đã có nhiều cơng trình nghiên cứu nhằm mở rộng lập trình logic, số – Lập trình logic đốn (ALP - Abductive Logic Programming) hướng nghiên cứu nhiều nhà khoa học quan tâm [3], [5], [7], [8] ALP bắt nguồn từ đoán, đoán hình thức suy luận để giải thích cho quan sát, xuất phát từ sở tri thức T quan sát Q để tìm giải thích cho Q dựa theo tập vị từ đặc biệt gọi vị từ đốn ALP kết hợp lập trình logic đốn, ALP hình thành nên cú pháp chương trình logic, định nghĩa ba , P chương trình logic thơng thường, A tập hợp vị từ gọi vị từ đoán, IC tập ràng buộc tồn vẹn ALP khn khổ biểu diễn tri thức cấp cao, cho phép giải toán dựa lập luận đoán ALP thường dùng để giải toán Chuẩn đoán, Lập kế hoạch, Xử lý ngôn ngữ tự nhiên Học máy,… Luận văn nghiên cứu lập luận suy diễn chương trình logic đốn Những nội dung nghiên cứu luận văn có ý nghĩa mặt lý thuyết ứng dụng thực tiễn Cấu trúc luận văn gồm phần mở đầu, ba chương nội dung, phần kết luận tài liệu tham khảo Chương trình bày ngơn ngữ logic bậc nhất, cú pháp ngữ nghĩa chương trình logic Trên sở trình bày lập luận suy diễn lập trình logic Chương trình bày phương pháp tính tốn đốn lập trình logic, bao gồm thủ tục SLD chương trình logic xác định, thủ tục SLDNF chương trình logic có chứa ký hiệu phủ định Cũng chương 2, cú pháp ngữ nghĩa chương trình logic đốn trình bày chi tiết Chương trình bày phương pháp để tính tốn đốn chương trình logic đốn đồng thời trình bày việc cài đặt, thực thi số ví dụ minh họa chương trình logic đốn phần mềm SMODELS Phần kết luận nêu kết đạt hướng phát triển luận văn Do thời gian có hạn thân bước đầu nghiên cứu lĩnh vực nên tránh khỏi thiếu sót, kính mong giúp đỡ góp ý thêm quý Thầy, Cô bạn Chương TỔNG QUAN VỀ CHƯƠNG TRÌNH LOGIC Chương trình bày ngơn ngữ logic bậc nhất, cú pháp ngữ nghĩa chương trình logic Trên sở trình bày lập luận suy diễn lập trình logic 1.1 Ngơn ngữ bậc Định nghĩa 1.1 (Bộ ký tự) Bộ ký tự bao gồm lớp ký hiệu sau: Hằng, thường ký hiệu chữ thường a, b, c, Biến, thường ký hiệu chữ in hoa X, Y, Z, Các ký hiệu hàm, thường ký hiệu f, g, h, Các ký hiệu vị từ, thường ký hiệu p, q, r, Các vị từ: true, false Các ký hiệu kết nối: (phủ định), (tuyển), (hội), (suy ra), (tương đương) Các ký hiệu lượng từ: (với mọi), (tồn tại) Dấu ngoặc đơn trái (, dấu ngoặc đơn phải ), dấu phẩy , Mỗi ký hiệu hàm, ký hiệu vị từ có kèm theo số tự nhiên để số đối số tham gia với ký hiệu hàm ký hiệu vị từ đó, gọi ngơi chúng Định nghĩa 1.2 (Hạng thức) Gọi A ký tự Hạng thức định nghĩa đệ qui sau: (i) Mỗi c A hạng thức, (ii) Mỗi biến V A hạng thức, (iii) Nếu f ký hiệu hàm n A t1, ,tn hạng thức f(t1, ,tn) hạng thức, (iv) Hạng thức sinh mệnh đề 40 Thủ tục KM sau đốn a, kiểm tra tất ràng buộc có chứa a: kiểm tra thất bại hữu hạn a* sau tiếp tục kiểm tra p mà cần đoán b việc chứng minh thất bại hữu hạn Ví dụ 3.5 Xem xét khn khổ đốn sau: Chương trình logic P: dùng_bữa (X) dưa_cà (X), cơm_gà (X) cơm_gà (X) dưa_cà (X), phục_vụ (X) phục_vụ (Thiên_Hương) Vị từ đoán A: {dưa_cà, nhà_hàng_nhỏ} Ràng buộc IC: dưa_cà (X), nhà_hàng_nhỏ (X) Ta chuyển chương trình logic P thành chương trình logic đoán , đó: P*: dùng_bữa (X) dưa_cà (X), cơm_gà (X) cơm_gà (X) dưa_cà (X), phục_vụ (X) phục_vụ (Thiên_Hương) IC: dưa_cà (X), nhà_hàng_nhỏ (X) IC*: dùng_bữa, dùng_bữa* ; dùng_bữa dùng_bữa* dưa_cà, dưa_cà* ; dưa_cà dưa_cà* cơm_gà, cơm_gà* ; cơm_gà cơm_gà* phục_vụ, phục_vụ* ; phục_vụ phục_vụ* nhà_hàng_nhỏ, nhà_hàng_nhỏ* ; nhà_hàng_nhỏ nhà_hàng_nhỏ * A = {dưa_cà, nhà_hàng_nhỏ} A* = {dùng_bữa*, dưa_cà*, cơm_gà*, phục_vụ*, nhà_hàng_nhỏ*} 41 Hình vẽ sau biểu diễn q trình tính tốn thủ tục KM với đích G = {dùng_bữa(Thiên_Hương)} dùng_bữa(Th) dưa_cà(Th), cơm_gà(Th) cơm_gà*(Th) dưa_cà(Th), phục_vụ(Th) { dưa_cà(Th)} nhà_hàng_nhỏ*(Th) nhà_hàng_nhỏ(Th) { dưa_cà(Th), nhà_hàng_nhỏ(Th)} nhà_hàng_nhỏ*(Th) phục_vụ(Th) Hình 3.5 Tính câu trả lời cho ví dụ 3.5 Thủ tục KM sau đốn dưa_cà(Th), kiểm tra tất ràng buộc có chứa dưa_cà(Th): kiểm tra thất bại hữu hạn dưa_cà*(Th) sau tiếp tục kiểm tra nhà_hàng_nhỏ(Th) mà cần đoán nhà_hàng_nhỏ*(Th) việc chứng minh thất bại hữu hạn Thủ tục KM, thủ tục EK, tính tốn mơ hình bền vững chương trình logic thơng thường Do khả biểu diễn đốn dùng định nghĩa ràng buộc toàn vẹn miền phụ thuộc vào khn khổ đốn, 42 ngữ nghĩa khai báo đề xuất cho thủ tục KM ngữ nghĩa mơ hình bền vững tổng qt 3.2 Cài đặt thực thi số chương trình logic đoán SMODELS 3.2.1 Giới thiệu hệ thống SMODELS SMODELS hệ thống lập trình tính tập câu trả lời cài đặt dựa ngữ nghĩa mơ hình bền vững chương trình logic thơng thường Ý tưởng ASP mã hóa ràng buộc tốn dạng chương trình logic tập trả lời (các mơ hình bền vững) cho chương trình tương ứng với kết tốn Vì vậy, ta giải tốn cách cho chương trình logic để tìm tập câu trả lời chương trình Hệ thống SMODELS cung cấp cơng cụ để tính tập câu trả lời Nó mở rộng lớp chương trình logic với số trọng số với hàm xây dựng Hệ thống SMODELS bao gồm hai thành phần riêng biệt SMODELS Lparse, hai cài đặt C++ SMODELS dùng tìm mơ hình bền vững cho chương trình logic Lparse front-end chuyển đổi chương trình người dùng sang hình thức mà SMODELS hiểu SMODELS phát triển phịng thí nghiệm thuyết khoa học máy tính Đại học kỹ thuật Helsinki - Phần Lan Patrik Simons Lparse viết Tommi Syrjänen [9] Phiên smodels, lparse tài liệu liên quan tham khảo theo địa http://www.tcs.hut.fi/Software/smodels/ Đây phần mềm miễn phí, cài đặt hệ điều hành Unix/Linux Windows Trong luận văn, hệ thống SMODELS cài đặt hệ điều hành Windows Cú pháp để gọi SMODELS lparse file | smodels 43 với file tập tin văn chứa chương trình logic Ngồi ta có tùy chọn cho lparse smodels lparse -help lparse | smodels –help Chương trình lparse logic Biểu diễn smodels logic Mơ hình bền vững Hình 3.6 Kiến trúc hệ thống SMODELS 3.2.2 Cài đặt thực thi 3.2.2.1 Cài đặt ví dụ chương 1: Mã hóa ví dụ 1.13 chương trình logic thông thường chương hệ thống SMODELS p(X) :- r(X), not q(X) q(X) :- r(X), not p(X) r(1) Hình 3.7 Kết thực thi ví dụ 1.13 hệ thống SMODELS Mã hóa ví dụ 1.14 chương trình logic thơng thường chương hệ thống SMODELS 44 a :- not b b :- not a c :- a , not b Hình 3.8 Kết thực thi ví dụ 1.14 hệ thống SMODELS Mã hóa ví dụ 1.15 chương trình logic thơng thường chương hệ thống SMODELS fly(X) :- bird(X) , not ab(X) bird(tweety) 45 Hình 3.9 Kết thực thi ví dụ 1.15 hệ thống SMODELS Mã hóa ví dụ 1.16 chương trình logic thơng thường chương hệ thống SMODELS p(a) r(X) :- p(X), not q(X) Hình 3.10 Kết thực thi ví dụ 1.16 hệ thống SMODELS 46 3.2.2.2 Cài đặt ví dụ khác: Mã hóa ví dụ 2.17 chương trình logic thông thường chương hệ thống SMODELS p :- r , b , not q q :- a r Tập vị từ đoán A = {a, b} Ràng buộc toàn vẹn IC: p Với ∆1 = {b} Hình 3.11 Kết thực thi ∆1 = {b}bằng hệ thống SMODELS Với ∆1 = {b} M() = {p, b, r} mơ hình bền vững P Do = {b} giải thích quan sát Q = {p} Bài tốn 3.1 Cài đặt tốn ví dụ 2.13 “sức khỏe” người Chương trình logic đốn mơ tả tốn ví dụ 2.13 Chương trình cài đặt hệ thống SMODELS (được lưu với tập tin có tên 2.13.txt) sau: 47 Vào: Chương trình logic đốn sức khỏe Các giả thuyết đoán ban đầu, cơ_bắp(Sang) Tập ∆ tập tập vị từ đoán A Ra: Câu trả lời cho quan sát X khỏe mạnh Mã hóa ví dụ 2.13 chương trình logic đốn chương hệ thống SMODELS khoe_manh(X) :- to_con(X), not yeu(X) yeu(X) :- nho_con(X), not khoe_manh (X) , not nho_con_bat_thuong(X) nho_con_bat_thuong (X) :- nho_con(X) , co_bap(X) , not yeu(X) khoe_manh(X) :- nho_con(X) , co_bap(X) , not yeu(X) co_bap(sang) Tập vị từ đốn A: { to_con, nhỏ_con, cơ_bắp} Các ràng buộc tồn vẹn (IC): to_con(Sang) 48 Với ∆2 = {nhỏ_con(Sang)}, Hình 3.12 Kết thực thi ∆2 = {nhỏ_con(Sang)} hệ thống SMODELS Với ∆3 = {cơ_bắp(Sang)}, Hình 3.13 Kết thực thi ∆3 = {cơ_bắp(Sang)} hệ thống SMODELS 49 Ta có ∆2 = {nhỏ_con(Sang)} giải thích đốn quan sát Q M(∆2) = {nhỏ_con(Sang), cơ_bắp(Sang), khỏe_mạnh(Sang), nhỏ_con_bất_thường(Sang)} mơ hình bền vững tổng qt Bài toán 3.2 Cài đặt toán “khả bay” lồi chim Xét chương trình logic đốn , P gồm quy tắc: có_thể_bay(X) chim(X), chim_bất_thường(X) chim(X) đà_điểu(X) chim_bất_thường(X) đà_điểu(X), đà_điểu_bất_thường(X) chim(X) chim_cánh_cụt(X) chim_bất_thường(X) chim_cánh_cụt(X), chim_cánh_cụt_bất_thường(X) đà_điểu(X) đà_điểu_lạ(X) đà_điểu_bất_thường(X) đà_điểu_lạ(X), đà_điểu_lạ_bất_thường(X) chim_cánh_cụt(Kin) Tập vị từ đoán A: {chim_cánh_cụt, chim_cánh_cụt_bất_thường, đà_điểu_lạ, đà_điểu_lạ_bất_thường} Các ràng buộc toàn vẹn (IC): đà_điểu_lạ_bất_thường(Kin) Chương trình cài đặt hệ thống SMODELS (được lưu với tập tin có tên 2.15.txt) sau: Vào: Chương trình logic đốn khả bay lồi chim Các giả thuyết đốn ban đầu, chim_cánh_cụt(Kin) Tập ∆ tập tập vị từ đoán A 50 Ra: Câu trả lời cho quan sát X bay Mã hóa chương trình logic đốn hệ thống SMODELS co_the_bay(X) :- chim(X), not chim_bat_thuong(X) chim(X) :- da_dieu(X) chim_bat_thuong(X) :- da_dieu(X), not da_dieu_bat_thuong(X) chim(X) :- chim_canh_cut(X) chim_bat_thuong(X) :- chim_canh_cut(X), not chim_canh_cut_bat_thuong(X) da_dieu(X) :- da_dieu_la(X) da_dieu_bat_thuong(X) :- da_dieu_la(X), not da_dieu_la_bat_thuong(X) chim_canh_cut(kin) Với ∆1 = {chim_cánh_cụt(Kin)}, Hình 3.14 Kết thực thi ∆1 = {chim_cánh_cụt(Kin)} hệ thống SMODELS 51 Tương tự, với ∆2 = {chim_cánh_cụt_bất_thường(Kin)} Hình 3.15 Kết thực thi ∆2 = {chim_cánh_cụt_bất_thường(Kin)} hệ thống SMODELS Tương tự, với ∆3 = {đà_điểu_lạ(Kin)} Hình 3.16 Kết thực thi ∆3= {đà_điểu_lạ(Kin)} hệ thống SMODELS Với ∆8 = {chim_cánh_cụt_bất_thường(Kin), đà_điểu_lạ(Kin)} 52 Hình 3.17 Kết thực thi ∆8 = {chim_cánh_cụt_bất_thường(Kin), đà_điểu_lạ(Kin)} hệ thống SMODELS Ta có ∆2 = {chim_cánh_cụt_bất_thường(Kin)} ∆3 = {đà_điểu_lạ(Kin)} ∆8 = {chim_cánh_cụt_bất_thường(Kin), đà_điểu_lạ(Kin)} giải thích đốn Q M(∆2) = {chim_cánh_cụt_bất_thường(Kin), chim_cánh_cụt(Kin), chim(Kin), {đà_điểu_lạ(Kin), chim_cánh_cụt(Kin), có_thể_bay(Kin)} M(∆3) = đà_điểu_bất_thường(Kin), đà_điểu(Kin), chim_bất_thường(Kin), {đà_điểu_lạ(Kin), chim_cánh_cụt_bất_thường(Kin), chim(Kin)} M(∆8) = chim_cánh_cụt(Kin), đà_điểu_bất_thường(Kin), chim(Kin), đà_điểu(Kin), có_thể_bay(Kin)} mơ hình bền vững tổng quát 3.3 Tiểu kết chương Chương trình bày thủ tục để tính tốn đốn chương trình logic đốn với ví dụ minh họa chi tiết cho phương pháp Chương trình bày tổng quan phần mềm lập trình logic SMODELS cài đặt, thực thi số chương trình logic đốn SMODELS, từ để trả lời câu truy vấn chương trình logic đốn 53 PHẦN KẾT LUẬN Luận văn tập trung tìm hiểu lập luận suy diễn lập trình logic đốn Các kết mà luận văn đạt là: Tìm hiểu cú pháp ngữ nghĩa chương trình logic xác định chương trình logic thơng thường Tìm hiểu việc tính tốn đốn lập trình logic thơng qua thủ tục hợp giải SLD SLDNF Nghiên cứu cú pháp ngữ nghĩa chương trình logic đốn theo hướng tiếp cận ngữ nghĩa mơ hình bền vững Nghiên cứu phương pháp tính tốn đốn chương trình logic đốn Tìm hiểu phần mềm SMODELS, cài đặt thực thi số ví dụ minh họa chương trình logic đốn SMODELS Hướng phát triển đề tài là: Nghiên cứu số cách tiếp cận khác ngữ nghĩa chương trình logic đốn Nghiên cứu phương pháp khác để tính tốn đốn chương trình logic đốn 54 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ế Tiếng Anh Apt K R (1990), Logic Programming, Elsevier Science Publishers Chesani F., L Alberti L , M Gavanelli, E Lamma, P Mello, and P “Verifiable agent interaction in abductive logic Torroni (2007), programming: the SCIFF framework” ACM Transactions on Computational Logic (ToCL) Gelfond M., Lifschitz V (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 Kakas A and M Denecker (2002), “Abduction in logic programming”, In Computational Logic: Logic Programming and Beyond Part I, pp 402436 Springer Verlag, 2002 K Eshghi and R A Kowalski (1989), “Abduction compared with negation by failure” In Proc Of the 6th International Conference on Logic Programming, pp 234-254 Kakas A., B V Nuffelen, and M Denecker (2001), “A - System: Problem solving through abduction” In Proc of the 17th International Joint Conference on Artificial Intelligence, pp 591–596 Kakas A and P Mancarella (1990), “Abductive logic programming”, In Proc of the 1st Logic Programming and Non-Monotonic Reasoning (LPNMR), pp 49-61 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 ... trình logic thơng thường (có chứa phép phủ định) Việc lập luận suy diễn lớp chương trình trình bày chi tiết với ví dụ minh họa Trong chương tiếp tục tìm hiểu vấn đề lập luận suy diễn chương trình. .. Chương TỔNG QUAN VỀ CHƯƠNG TRÌNH LOGIC Chương trình bày ngơn ngữ logic bậc nhất, cú pháp ngữ nghĩa chương trình logic Trên sở trình bày lập luận suy diễn lập trình logic 1.1 Ngôn ngữ bậc Định... lập luận đoán ALP thường dùng để giải toán Chuẩn đoán, Lập kế hoạch, Xử lý ngôn ngữ tự nhiên Học máy,… Luận văn nghiên cứu lập luận suy diễn chương trình logic đốn Những nội dung nghiên cứu luận