TÌM HIỂU về lập LUẬN SUY DIỄN đối với CHƯƠNG TRÌNH LOGIC PHỎNG đoán có CHỨA RÀNG BUỘC

60 571 1
TÌM HIỂU về lập LUẬN SUY DIỄN đối với CHƯƠNG TRÌNH LOGIC PHỎNG đoán có CHỨA RÀNG BUỘC

Đ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

1 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THỊ GIA BẢO TÌM HIỂU VỀ LẬP LUẬN SUY DIỄN ĐỐI VỚI CHƯƠNG TRÌNH LOGIC PHỎNG ĐỐN CĨ CHỨA RÀNG BUỘC LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN Huế, 2016 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THỊ GIA BẢO TÌM HIỂU VỀ LẬP LUẬN SUY DIỄN ĐỐI VỚI CHƯƠNG TRÌNH LOGIC PHỎNG ĐỐN CĨ CHỨA RÀNG BUỘC 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 CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS TRƯƠNG CÔNG TUẤN Huế, 2016 LỜI CAM ĐOAN Tôi cam đoan kết nghiên cứu đưa luận văn dựa kết thu trình nghiên cứu riêng tôi, không chép kết nghiên cứu tác giả khác Nội dung luận văn có tham khảo sử dụng số thông tin, tài liệu từ nguồn sách, tạp chí liệt kê danh mục tài liệu tham khảo Học viên Nguyễn Thị Gia Bảo LỜI CẢM ƠN Lời đầu tiên, xin chân thành cảm ơn Thầy Trương Công Tuấn hướng dẫn, định hướng ln động viên để tơi hồn thành tốt luận văn Xin cảm ơn Quý Thầy, Cô giáo Khoa Công nghệ thông tin Trường Đại học Khoa học – Đại học Huế truyền đạt nhiều kiến thức sâu sắc, quý báu môn học q trình giảng dạy nội dung hồn thiện luận văn Xin cảm ơn bạn học viên lớp cao học Khoa học máy tính khóa 2014–2016 đồng nghiệp bên cạnh, động viên suốt thời gian học tập thực luận văn Cuối cùng, tơi xin bày tỏ lịng biết ơn sâu sắc tới tồn thể gia đình, bạn bè ln động viên, khích lệ tinh thần để tơi có đủ nghị lực hoàn thành luận văn Xin chân thành cảm ơn tất cả! Huế, tháng năm 2016 MỤC LỤC TRANG PHỤ BÌA LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC THUẬT NGỮ CÁC CHỮ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC THUẬT NGỮ Chương trình logic Logic program Chương trình logic Ground logic program Cơ sở Herbrand Herbrand base Lập trình logic Logic programming Câu trả lời đoán Abdcateuctive answer Câu trả lời đoán với ràng buộc Abductive answer with contrains Literal âm Negative literal Mơ hình bền vững Stable model Mơ hình nhỏ Least model Ngữ nghĩa mơ hình bền vững Stable model semantics Nguyên tố Atom Quy tắc Ruler Vị từ Predicate Vũ trụ Herbrand Herbrand universe CÁC CHỮ VIẾT TẮT ALP Abductive Logic Programming CLP Contraint Logic Programming ALPC Abductive Logic Programming with contraints DANH MỤC HÌNH VẼ PHẦN MỞ ĐẦU Trong suốt thập kỷ qua, có nhiều nghiên cứu vấn đề lập luận suy diễn chương trình logic 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ừ Tuy nhiên, lập trình logic bộc lộ hạn chế định khơng thể 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 ALP bắt nguồn từ đốn, đố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ừ đoán (abducible predicate) Trong 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 toàn vẹn ALP khuôn 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 Hiện nay, xuất phát từ nhu cầu thực tiễn, ALP nghiên cứu mở rộng phép mệnh đề chương trình logic ALP có ràng buộc (ALPC – Abductive Logic Programming with Contraints) ALPC thường ứ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,… 10 Luận văn nghiên cứu lập luận suy diễn chương trình logic đốn có chứa ràng buộc Những nội dung nghiên cứu luận văn có ý nghĩa khoa học 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 trình bày cú pháp, câu trả lời đốn chương trình logic đốn chương trình logic đốn có chứa ràng buộc Chương trình bày thủ tục chứng minh CIFF – phương pháp để trả lời câu truy vấn chương trình logic đốn có chứa ràng buộc Chương trình bày tổng quan hệ thống CIFF, tiến hành việc cài đặt số toán minh họa hệ thống CIFF thực thi phần mềm SWI-Prolog 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 q Thầy, Cơ bạn 46 { r ( X ) , s ( V , a)} ,C Trong Γ: C = Γ, E , DE với: { Y = X ,T1 = V ,V < X , X < 8} E: T2 = W DE: ∅ Ví dụ 3.5 Cho khuôn khổ Th, A, IC (giả sử cấu trúc ràng buộc R số nguyên với hàm quan hệ thông thường) p( X ) ↔ X = Z ∧ a( Z ) ∧ Z < Th: A: { a} a ( ) → false IC: Với truy vấn Q: p( Y ) Dẫn xuất CIFF D cho Q theo theo F1 = Th, A, IC { { p ( Y ) , a ( 2) → false} } { F2 = { Y = Z , a ( Z ) , Z < 5,  a ( ) → false } { R [Khởi tạo] } [Triển khai nguyên tố] F3 = { Y = Z , a ( Z ) , Z < 5, a ( 2) → false  ,[ = Z → false ] } { : } [lan truyền] F4 = { Y = Z , a ( Z ) , Z < 5,  a ( ) → false  , [ Z = → false ] } } [Viết lại đẳng thức suy diễn] {{ }} F5 = Y = Z , a ( Z ) , Z < 5, a ( ) → false  ,  Z ≠ ∨ [ Z = 2, true → false ]  [Phân tích trường hợp cho ràng buộc] 47 { F6 = { Y = Z , a ( Z ) , Z < 5, Z ≠ 2, a ( ) → false } , { { Y = Z , a ( Z ) , Z < 5, Z = 2, a ( 2) → false , ( true → false ) } } [Phân tách] F7 = { Y = Z , a ( Z ) , Z < 5, Z ≠ 2, a ( ) → false } , { Y = Z , a ( Z ) , Z < 5, Z = 2, a ( 2) → false , false} } [Đơn giản logic] Không có thêm quy tắc áp dụng cho F7 Nút không nút thất bại hay khơng nút khơng xác định Do đó, nút thành công rút câu trả lời: { a ( Z ) } , { Y = Z , Z < 5, Z ≠ 2} , ∅, ∅ 3.3 Cài đặt thực thi số toán hệ thống CIFF SWI-Prolog Hệ thống CIFF cài đặt mô đun SWI-Prolog thực thi tảng SWI-Prolog Trước hết phần giới thiệu tổng quan SWI-Prolog 3.3.1 Giới thiệu SWI-Prolog SWI-Prolog phần mềm cho phép trả lời câu truy vấn chương trình logic SWI-Prolog hoạt động theo hệ thống đơn thể,có giao diện trao đổi hai chiều linh hoạt Sau cài đặt phiên SWI-Prolog 6.6.6cho Windows, khởi động trình swipl-win.exe, cửa sổ làm việc SWI-Prolog hình 3.1 48 Hình 3.1Cửa sổ làm việc SWI-Prolog SWI-Prolog làm việc theo chếđộ tương tác Dấu nhắc lệnh SWIProlog cặp dấu chấm hỏi dấu gạch ngang (dấu trừ), liệt kê thứ tự 1, 2, 3…để theo dõi trình làm việc người sử dụng, theo sau trỏ nhấp nháy : ?Để thoát khỏi SWI-Prolog, dùng lệnh File/ Exit, dùng vị từ halt : ?- halt File nguồn SWI-Prolog có pl, chứa khai báo kiện quy tắc Khi mở file nguồn Prolog SWI-Prolog đặt thư mục làm việc thư mục chứa file nạp kiện, quy tắc file Các quy ước SWI-Prolog: − Hằng chuỗibắt đầu chữ viết thường bao gồm dấu nháy đơn, ví dụ an, binh, ‘An’, ‘Binh’ − Hằng logic: true, false − Biến: bắt đầu chữ hoa ‘_’ − Thân phần tử quy tắc ngăn cách dấu phẩy ‘,’ − Mỗi quy tắc / kiện / truy vấn kết thúc dấu chấm ‘.’ − Ký hiệu ←được viết ‘: -’ quy tắc − Các thích bắt đầu với ‘%’ (phần lại dòng bỏ qua) 49 − Một chương trình nguồn tập kiện quy tắc lưu trữ file với phần mở rộng pl Biên dịch file chương trình:Có cách để biên dịch file SWI-Prolog Cách 1: Sử dụng trỏ chuột nhấn vào File/Consult, tìm đường dẫn chứa file thực biên dịch Cách 2: Từ dấu nhắc lệnh, gõ vào: consult(tên file.pl) 3.3.2 Thực thi truy vấn SWI-Prolog Sau chương trình Prolog biên dịch tải vào nhớ, người sử dụng đặt câu truy vấn (kết thúc dấu chấm) Tùy theo câu truy vấn, Prolog trả lời Yes No kèm theo kết X = đích có chứa biến X Trong trường hợp có nhiều câu trả lời, sau kết trả lời đầu tiên, người sử dụng có thểđặt dấu chấm phẩy ; muốn tiếp tục yêu cầu Prolog đưa câu trả lời khác Tiếp tục trình này, Prolog đưa kết khác khi, Prolog trả lời No, có nghĩa khơng cịn câu trả lời nữa, Yes, người sử dụng muốn dừng lại cách gõ Enter 3.3.3 Giới thiệu hệ thống CIFF Hệ thống CIFF 3.0 chương trình logic đốn có ràng buộc thực ngơn ngữ SWI Prolog bao gồm có file chính: Ciff-main.pl: cung cấp vị từ (ciff/3, ciff/4) công cụ để đọc file ALP để cấu hình thiết bị gỡ lỗi Ciff-proc.pl: thực phương pháp định giá truy vấn Vị từ sat/7 định nghĩa quy tắc chứng minh simplify_equalities/3 thực quy tắc viết lại cho đẳng thức Ciff-constraint.pl: cung cấp trình giải ràng buộc Vị từ quan trọng post_constraint/1 để gửi ràng buộc tới nơi lưu trữ ràng buộc xử 50 lý nhanh kiểm tra tính phù hợp vị từ exhaustive_check/1 để xử lý kiểm tra tính phù hợp đầy đủ Các vị từ thêm vào is_constraint/1 cho phép cho tóm lược đầy đủ cho giải ràng buộc thực tế Ciff-aux.pl: thực vị từ phụ Để thực việc trả lời cho truy vấn chương trình logic đốn có chứa ràng buộc, trước hết cần biên dịch file ciff-main.pl, sau thực câu lệnh sau từ dấu nhắc lệnh SWI-Prolog: Ciff(‘tên file.alp’,[Truy vấn], Answer) 3.3.4 Cài đặt thực thi toán minh họa Bài tốn 1:Xét tốn tìm ngun nhân gây đèn lỗi bóng đèn bị hỏng điện mạch điện mà khơng có pin nạp điện dự phịng Giả sử có mạch điện c gắn với pin; pin b Một pin khơng nạp điện bị khơ Bài tốn hình thức hóa bởichương trình logic đốn , đó: • Chương trình P gồm mệnh đề: lamp(a) ← battery(c, b) ← faulty_lamp ← lamp(X), broken(X) faulty_lamp ← power_failure(X), ¬backup(X) backup(X) battery(X, Y), ơunloaded(Y) unloaded(X) dry_cell(X) ã Tp vị từ đoán: A = {broken, power_failure, dry_cell} • Tập ràng buộc toàn vẹn IC = ∅ • Truy vấn Q: faulty_lamp Chương trình cài đặt hệ thống CIFF sau: %% File lamp.alp %% Cac nguyen to phong doan: abducibles(dry_cell(_)) 51 abducibles(power_failure(_)) abducibles(broken(_)) %% Cac menh de: lamp(a) battery(b,c) faulty_lamp :- power_failure(X),not(backup(X)) faulty_lamp :- lamp(X),broken(X) unloaded(X) :- dry_cell(X) Kết thực thi hệ thống CIFF cho hình sau: Bài tốn 2: Giả sử có điều kiện sau trở thành cơng dân Mỹ: - Một người sinh Mỹ cơng dân Mỹ, Nếu người sinh ngồi nước Mỹ thường trú Mỹ nhập - tịch vào Mỹ người cơng dân Mỹ, Nếu X người sinh Mỹ Y mẹ X, Y công dân Mỹ X đăng ký X cơng dân Mỹ, Giả sử Mai mẹ Dung Mai công dân Mỹ, Dung không thường trú Mỹ • Chương trình logic đốn sau mơ tả tốn trên: Chương trình logic P: cong_dan_My(X)←sinh_o_My(X) 52 cong_dan_My(X)←sinh_ngoai_My (X)∧thuong_tru_My(X) ∧nhap_tich_My(X) cong_dan_My(X)← sinh_ngoai_My(X)∧la_me(Y, X) ∧cong_dan_My (Y)∧dang_ky(X) la_me (Mary,Dung)← cong_dan_My(Mary )← • Tập vị từ đốn : A = {sinh_o_My, sinh_ngoai_My, thuong_tru_My, nhap_tich_My} • Ràng buộc tồn vẹn IC: thuong_tru_My(dung)→ • Truy vấn Q: cong_dan_My(Dung) Cài đặt chương trình hệ thống CIFF ta được: %% File citizen.alp %% Cac nguyen to phong doan abducible(sinh_o_My(_)) abducible(sinh_ngoai_My(_)) abducible(thuong_tru_My(_)) abducible(nhap_tich_My(_)) %% Cac menh de cong_dan_My(X) :- sinh_o_My(X) cong_dan_My(X) :- sinh_ngoai_My(X) , thuong_tru_My(X) , nhap_tich_My(X) cong_dan_My(X) :- sinh_ngoai_My(X) , la_me(Y, X) , cong_dan_My(Y) , dang_ky(X) la_me(mai, dung) cong_dan_My(mai) %% Rang buoc toan ven [thuong_tru_My(dung)] implies [false] % Truy van Q: cong_dan_My(dung) % ciff('citizen.alp', [cong_dan_My(dung)], Answer) 53 Kết thực thi chương trình hệ thống CIFF hình sau: Bài tốn 3: Cho đồ thị vơ hướng G = 〈V, E〉, V tập đỉnh, E tập cạnh Bài toán đặt với ba màu cho vàng (yellow), xanh (blue), đỏ (red), tô màu cho đỉnh đồ thị G cho hai đỉnh liền kề không tô màu Giả sử đồ thị Gcó tập đỉnh V = {a, b, c, d} tập cạnh E = {(a,b), (b,c), (c,d), (d,a)} Để biểu diễn tốn chương trình logic, ta gọi color vị từ 1-ngôi để màu, vertex vị từ 1-ngôi để đỉnh đồ thị, edgelà vị từ 2ngôi để cạnh đồ thị, coloring vị từ 2-ngôi để màu tô đỉnh Nguyên tố color(X) có nghĩa X màu, vertex(X) có nghĩa X đỉnh, edge(X, Y) có nghĩa có cạnh từ đỉnh X đến đỉnh Y, coloring(X, Y) có nghĩa đỉnh X tơ màu Y Chương trình logic đốn mơ tả tốn sau: • Chương trình logic P gồm mệnh đề: vertex(a) , vertex(b), vertex(c), vertex(d) edge(a,b), edge(b,c), edge(c,d), edge(d,a) color(red), color(yellow), color(blue) coloring(X) ← color(C), abd_color(X,C) • Tập vị từ đốn A = {abd_color } 54 • Các ràng buộc tồn vẹn IC: vertex(X) →coloring(X) edge(X,Y), color(C), abd_color(X,C), abd_color(Y,C)→false Truy vấn Q: coloring(X) Hệ thống CIFF biểu diễn chương trình sau: %% File color.alp %%Vi tu phong doan abducible(abd_color(_,_)) %% Chương trình logic P gồm mệnh đề: vertex(a) vertex(b) vertex(c) vertex(d) edge(a,b) edge(b,c) edge(c,d) edge(d,a) color(red) color(yellow) color(blue) coloring(X) :- color(C), abd_color(X,C) %% Cac rang buoc toan ven IC [vertex(X)] implies [coloring(X)] [edge(X,Y), color(C), abd_color(X,C), abd_color(Y,C)] implies [false] % Truy van Q: coloring(dung) % ciff('color.alp', [coloring(X)], Answer) Kết thực thi chương trình hệ thống CIFF hình sau: 55 Bài tốn 4:Chương trình logic đốnsau mơ tả mơ hình đơn giản q trình chuyển hóa đường lactose vi khuẩn E Coli Chương trình logic P mơ tả kiện E coli sống đường lactose thu hai men permease vàgalactosidase.Các men tạo chúng mã hóa mộtgen (G)và gen G biểu diễn.Các men mã hoá hai gen (lac(y) lac(z)) nhóm gen (lac(X)), biểu diễn khisố lượng (amont) glucose thấp lactose cao chúng mức trung bình.Các vị từ đoán A khai báo tất thể vị từ "amount" Điều phản ánh kiện mơ hình, ta khơng thể biết số lượng chất khác thời điểmnào Đây thông tin không đầy đủ ta muốn tìm thơng tin trường hợp mà ta xem xét Ràng buộc tồn vẹn nói số lượng chất (S) Chương trình logic đốn mơ tả tốn sau: • Chương trình logic P: feed(lactose)←make(permease),make(galactosidase) make(Enzyme)←code(Gene,Enzyme),express(Gene) express(lac(X))←amount(glucose,low),amount(lactose,hi) express(lac(X)) ←amount(glucose,medium),amount(lactose,medium) code(lac(y),permease) code(lac(z),galactosidase) temperature(low)←amount(glucose,low) • Ràng buộc toàn vẹn IC: amount(S,V1), amount(S,V2), V1 ≠V2 → false • Các vị từ đoán A: amount • Truy vấn G = feed(lactose) Hệ thống CIFF biểu diễn chương trình sau: 56 %% File Ecoli.alp %% Cac nguyen to phong doan abducible(amount(_,_)) %% Cac menh de feed(lactose):-make(permease),make(galactosidase) make(Enzyme):-code(Gene,Enzyme),express(Gene) express(lac(X)):amount(glucose,low),amount(lactose,hi) express(lac(X)):amount(glucose,medium),amount(lactose,medium) code(lac(y),permease) code(lac(z),galactosidase) temperature(low):-amount(glucose,low) %% Cac rang buoc toan ven| [amount(S,V1), amount(S,V2), V1 \== V2] implies [false] %% Truy van G = feed(lactose) %% Thuc thi ciff %% ciff('Ecoli.alp', [feed(lactose)], Answer) Kết thực thi chương trình hệ thống CIFF hình sau: 57 3.4 Tiểu kết Chương Chương ba trình bày thủ tục chứng minh CIFF để trả lời truy vấn chương trình logic đốn có chứa ràng buộc (ALPC) Các quy tắc chứng minh CIFF xây dựng nên dẫn xuất CIFF nhằm xác định q trình tính tốn câu trả lời cho truy vấn Các ví dụ minh họa nhằm làm rõ khái niệm Chương minh họa việc biểu diễn số toán chương trình ALPC, cài đặt chương trình ALPC hệ thống CIFF thực thi phần mềm SWI_Prolog 58 KẾT LUẬN Luận văn tập trung tìm hiểu lập luận suy diễn chương trình logic đốn có chưa ràng buộc 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 Tìm hiểucú pháp, câu trả lời đốn chương trình logic đốn  chương trình lgic đốn có ràng buộc Tìm hiểu thủ tục chứng minh CIFF để trả lời câu truy vấn chương  trình logic đốn có ràng buộc Tìm hiểu hệ thống CIFF phần mềm lập trình logic SWI-Prolog Cài đặt số toán hệ thống CIFF thực thi SWI-Prolog TÀI LIỆU THAM KHẢO 59 Tiếng Việt [1] 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 [2] Apt K R (1990), LogicProgramming, Elsevier Science Publishers [3] 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 [4] Kakas A C., Mancarella P,(1990) Abductive logic programming In Proc Workshop Logic Programming and Non-Monotonic Logic, 1990 [5] Kakas A C., Michael A., Mourlas C (2000) Abductive constraint logic programming J Log Prog., 44:129–177 [6] Mancarella P, Terreni G (2009), The CIFF Proof Procedure for Abductive Logic Programming with Constraints, Cambridge University Press, pp 691750

Ngày đăng: 26/07/2016, 12:43

Từ khóa liên quan

Mục lục

  • LỜI CAM ĐOAN

    • Phần này tập trung trình bày về cú pháp của chương trình logic phỏng đoán [4] và câu trả lời phỏng đoán.

    • Định nghĩa 2. Một quan sát Q đối với chương trình logic phỏng đoán  là một hội của các literal trong .

    • Hệ thống CIFF được cài đặt như một mô đun của SWI-Prolog và được thực thi trên nền tảng của SWI-Prolog. Trước hết phần này sẽ giới thiệu tổng quan về SWI-Prolog.

      • Các quy ước trong SWI-Prolog:

Tài liệu cùng người dùng

Tài liệu liên quan