Lời giải bài tập prolog chương 2 Ngữ nghĩa của chương trình prolog môn lập trình logic và ràng buộc.

31 2 0
Lời giải bài tập prolog chương 2 Ngữ nghĩa của chương trình prolog    môn lập trình logic và 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

3 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HCM oOo BÁO CÁO CUỐI KỲ MÔN HỌC LẬP TRÌNH LOGIC VÀ RÀNG BUỘC Nội dung Ngữ nghĩa của chương trình Prolog TP HCM NĂM 2.

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM - oOo BÁO CÁO CUỐI KỲ MƠN HỌC: LẬP TRÌNH LOGIC VÀ RÀNG BUỘC Nội dung: Ngữ nghĩa chương trình Prolog TP.HCM.3 NĂM 2023 NHẬN XÉT CỦA GIẢNG VIÊN I MỤC LỤC Phần 1: Lý thuyết……………………………………………………………………1 I Quan hệ Prolog logich toán học II Các mức nghĩa chương trình Prolog II.1 Nghĩa khai báo chương trình Prolog II.2 Khái niệm gói mệnh đề II.3 Nghĩa Logich mệnh đề II.4 Nghĩa thủ tục Prolog II.5 Tổ hợp yếu tố khai báo thủ tục 10 III Sắp đặt thứ tự mệnh đề đích 11 III.1 Nguy lặp vòng lặp vô hạn 11 III.2 Thay đổi thứ tự mệnh đề đích chương trình 11 Phần 2: Bài tập 20 Bài 1: 19 Bài 2: 20 Bài 3: 22 Bài 4: 23 Bài 5: 23 Bài 6: 24 Bài 7: 24 Bài 8: 25 Bài 9: 27 Bài 10: 27 II Phần 1: Lý thuyết I Quan hệ Prolog logich toán học II Các mức nghĩa chương trình Prolog II.1 Nghĩa khai báo chương trình Prolog II.2 Khái niệm gói mệnh đề II.3 Nghĩa Logich mệnh đề II.4 Nghĩa thủ tục Prolog 14 15 Phần 2: BÀI TẬP 16 17 18 BÀI LÀM Bài 1: Kết nhận thực truy vấn "?-flies(X)" chương trình Prolog là: X = percy ; X = tweety ; X = peter ; X = concorde ; X = jumbo ; X = fred ; Hình Chạy chương trình phần mềm SWI-Prolog 19 Bài 2: 20 Có quay lui Vì xét đến trường hợp thất bại, prolog quay lui trước để xét hướng khác, khơng cịn khả xét đưa False 21 Hình Chạy chương trình phần mềm SWI-Prolog Bài 3: translate(Number,Word):-(Number=1,Word=one) translate(Number,Word):-(Number=2,Word=two) translate(Number,Word):-(Number=3,Word=three) Hình Chạy chương trình phần mềm SWI-Prolog 22 Bài 4: Quá trình tìm thick(X),dark(X) dài tìm dark(X),thick(X) Vì dark(X) có biến phụ, nên sau rẽ nhanh tìm thick(X) nhanh Cịn tìm thick(X) trước phải rẽ nhánh lần Bài 5: Kết trả lại X=f(X) Hình Chạy chương trình phần mềm SWI-Prolog Một số trường hợp, yêu cầu Prolog đánh giá truy vấn X = f(X), cố gắng thống X với f(X) Quá trình thống liên quan đến việc so sánh thuật ngữ hai vế phương trình chúng tương đương nhau, biến thuật ngữ thống Trong trường hợp này, X khơng thể đồng trực tiếp với f(X) X xuất bên số hạng f(X) Tuy nhiên, Prolog cố gắng thống X với f(X) cách đánh giá đệ quy số hạng f(X) đạt đến điểm cố định Q 23 trình tạo thuật ngữ lồng vô hạn f áp dụng cho X nhiều lần: X = f(X) = f(f(X)) = f(f(f(X))) = f(f(f(f(X)))) = … Bài 6: a(1, 2) = a(X, X) Thay hợp lệ: X = Kết quả: a(1, 1) a(X, 3) = a(4, Y) Thay hợp lệ: X = 4, Y = Kết quả: a(4, 3) a(a(3, X)) = a(Y) Kết khớp khơng hợp lệ số lượng đối số hai vế phương trình khơng giống 1+2 = Kết khớp sai 1+2 khơng tương đương với X = 1+2 Thay hợp lệ: X = 1+2 Kết quả: X = 1+2 a(X, Y) = a(1, X) Thay hợp lệ: X = 1, Y = X Kết quả: a(1, 1) a(X, 2) = a(1, X) Không hợp lệ khơng tương đương Bài 7: f(1, one) f(s(1), two) f(s(s(1)), three) f(s(s(s(X))), N) :- f(X, N+3) Hình Chạy chương trình phần mềm SWI-Prolog 24 Bài 8: 25 b) Ý nghĩa logic vị từ a1, a2, a3, a4 sau: - a1(X, Y) tồn đường từ X đến Y đồ thị có hướng xác định vị từ p Con đường trực tiếp (nghĩa X có quan hệ trực tiếp với Y theo p) gián tiếp (nghĩa có số nút trung gian Z cho X có quan hệ với Z theo p Z có quan hệ với Y theo p) - a2(X, Y) tồn đường từ X đến Y đồ thị có hướng xác định vị từ p, đường phải gián tiếp (nghĩa phải có nút trung gian Z) 26 - a3(X, Y) tồn đường từ X đến Y đồ thị có hướng xác định vị từ p, đường phải gián tiếp tất nút trung gian đường (nếu có) phải khác biệt với X y - a4(X, Y) tồn đường từ X đến Y đồ thị có hướng xác định vị từ p, đường phải gián tiếp nút trung gian đường (nếu có) bao gồm X phải khác với Y Bài 9: greathan(X, N, X) :- X > N greathan(X, N, N) :- X =< N sum_diff(X, Y, Z) :- X > Y, Z is X + Y sum_diff(X, Y, Z) :- Y >= X, Z is X - Y Hình Chạy chương trình phần mềm SWI-Prolog Bài 10: pet(X) :- cat(X) ; dog(X) small(X) :- pet(X), poodle(X) apartmentpet(X) :- small(X), pet(X) cat(felix) cat(garfield) dog(snoopy) 27 dog(clifford) poodle(fluffy) Hình Chạy chương trình 10 phần mềm SWI-Prolog 28

Ngày đăng: 01/05/2023, 16:27

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

Tài liệu liên quan