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.
Trang 1TRƯỜ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 2023
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
Trang 3MỤC LỤC
Phần 1: Lý thuyết………1
I Quan hệ giữa Prolog và logich toán học 1
II Các mức nghĩa của chương trình Prolog 2
II.1 Nghĩa khai báo của chương trình Prolog 2
II.2 Khái niệm về gói mệnh đề 3
II.3 Nghĩa Logich của các mệnh đề 4
II.4 Nghĩa thủ tục của Prolog 5
II.5 Tổ hợp các yếu tố khai báo và thủ tục 10
III Sắp đặt thứ tự các mệnh đề và các đích 11
III.1 Nguy cơ lặp các vòng lặp vô hạn 11
III.2 Thay đổi thứ tự mệnh đề và đích trong 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
Trang 4Phần 1: Lý thuyết
I Quan hệ giữa Prolog và logich toán học
Trang 5II Các mức nghĩa của chương trình Prolog
II.1 Nghĩa khai báo của chương trình Prolog
Trang 6II.2 Khái niệm về gói mệnh đề
Trang 7II.3 Nghĩa Logich của các mệnh đề
Trang 8II.4 Nghĩa thủ tục của Prolog
Trang 96
Trang 13II.5 Tổ hợp các yếu tố khai báo và thủ tục
Trang 14III Sắp đặt thứ tự các mệnh đề và các đích
III.1 Nguy cơ lặp các vòng lặp vô hạn
III.2 Thay đổi thứ tự mệnh đề và đích trong chương trình
Trang 1512
Trang 19Phần 2: BÀI TẬP
Trang 2017
Trang 23Bài 2:
Trang 24Có quay lui Vì khi xét đến trường hợp thất bại, prolog sẽ quay lui về trước đó
để xét 1 hướng khác, khi không còn khả năng xét nào nữa sẽ đưa ra False.
Trang 26Bài 4:
Quá trình tìm thick(X),dark(X) sẽ dài hơn tìm dark(X),thick(X) Vì dark(X) có 2 biến phụ, nên sau khi rẽ nhanh sẽ tìm thick(X) nhanh hơn Còn nếu tìm thick(X) trước thì phải rẽ nhánh 2 lần.
Bài 5:
Kết quả trả lại sẽ là X=f(X).
Hình 4 Chạy chương trình bài 5 trên phần mềm SWI-Prolog
Một số trường hợp, khi yêu cầu Prolog đánh giá truy vấn X = f(X), nó sẽ cố gắng thống nhất X với f(X) Quá trình thống nhất liên quan đến việc so sánh các thuật ngữ ở cả hai vế của phương trình và nếu chúng tương đương nhau, thì các biến trong các thuật ngữ đó là thống nhất.
Trong trường hợp này, X không thể đồng nhất trực tiếp với f(X) vì X xuất hiện bên trong số hạng f(X) Tuy nhiên, Prolog vẫn sẽ cố gắng thống nhất X với f(X) bằng cách đánh giá đệ quy số hạng f(X) cho đến khi nó đạt đến một điểm cố định Quá
Trang 28Bài 8:
Trang 29b) Ý nghĩa logic của các vị từ a1, a2, a3, a4 như sau:
- a1(X, Y) là đúng nếu tồn tại một đường đi từ X đến Y trong đồ thị có hướng được xác định bởi vị từ p Con đường này có thể là trực tiếp (nghĩa là X có quan hệ trực tiếp với Y theo p) hoặc gián tiếp (nghĩa là có một số nút trung gian Z sao cho X có quan hệ với Z theo p và Z có quan hệ với Y theo p).
- a2(X, Y) là đúng nếu tồn tại một đường đi từ X đến Y trong đồ thị có hướng được xác định bởi vị từ p, trong đó đường đi phải là gián tiếp (nghĩa là phải có ít nhất một nút trung gian Z).
Trang 30- a3(X, Y) là đúng nếu tồn tại một đường đi từ X đến Y trong đồ thị có hướng được xác định bởi vị từ p, trong đó đường đi phải là gián tiếp và tất cả các nút trung gian trên đường đi (nếu có) phải khác biệt với X và y.
- a4(X, Y) là đúng nếu tồn tại một đường đi từ X đến Y trong đồ thị có hướng được xác định bởi vị từ p, trong đó đường đi phải là gián tiếp và các nút trung gian trên đường đi (nếu có) có thể bao gồm X nhưng phải là khác với Y
pet(X) :- cat(X) ; dog(X).
small(X) :- pet(X), poodle(X).
apartmentpet(X) :- small(X), pet(X).
cat(felix).
cat(garfield).
dog(snoopy).