Thông tin tài liệu:
1. Giới thiệuPROgramming in LOGic (sử dụng cách tiếp cận logic) Alain Calmerauer & Philippe Roussel, 1972 Dùng ngôn ngữ mô tả/khai báo (declarative language) để đặc tả vấn đề Ứng dụng nhiều trong xử lý ngôn ngữ tự nhiên và TTNT. Turbo Prolog, Visual Prolog, B-Prolog, SWIProlog, …
Nội dung trích xuất từ tài liệu:
Ngôn ngữ lập trình PrologNgôn ngữ lập trình Prolog 1 This is trial version www.adultpdf.com 1. Giới thiệuPROgramming in LOGic (sử dụng cách tiếpcận logic)Alain Calmerauer & Philippe Roussel, 1972Dùng ngôn ngữ mô tả/khai báo (declarativelanguage) để đặc tả vấn đềỨng dụng nhiều trong xử lý ngôn ngữ tự nhiênvà TTNT.Turbo Prolog, Visual Prolog, B-Prolog, SWI-Prolog, … This is trial version 2 www.adultpdf.com 2. Cú phápChương trình là tập các mô tả logic vị từdưới dạng chuẩn Horn Không có cấu trúc điều khiển (rẽ nhánh, lặp) Không có phép gánVị từ được diễn giải thông qua sự kiện vàluật, kết thúc bằng ký tự ‘.’.Prolog trả lời các câu hỏi nhờ cơ chế suyluận dựa trên kiến thức được cung cấp This is trial version 3 www.adultpdf.com Ví dụowns(john,house).owns(mary,house). sự kiện Chương trìnhyoung(john).rich(X) :- owns(X,house). luậttalent(X) :- rich(X), young(X). ?- consult(‘E:\swi_prolog\test.pl’). ?- talent(john). YES Truy vấn ?- talent(X). X = john This is trial version 4 www.adultpdf.com 2.1 Sự kiệnSự kiện là những điều ta công nhận là đúngVí dụ:cat(tom).khoang_cach(‘Hà nội’,’TP Hồ Chí Minh’,2000).Tên vị từ bắt đầu bằng kí tự thườngChuỗi kí tự đặt trong ‘ ‘Biến bắt đầu bằng chữ hoa. This is trial version 5 www.adultpdf.com 2.2 LuậtSử dụng để định nghĩa một vị từ (quan hệ) mớidựa trên các vị từ (quan hệ) đã biết.Gồm 2 phần, phân cách bởi dấu :-Ví dụ:giaithua(N,Kq):- N1 is N-1, giaithua(N1,Kq1), Kq is Kq1*N.VT là vị từ cần xác định; VP là điều kiện để VTnhận giá trị đúngVP gồm các lời gọi vị từ khác, ngăn cách bởidấu “,” This is trial version 6 www.adultpdf.com 2.2 LuậtNếu nhiều luật có VT giống nhau, các luậtphải viết liên tiếp nhau.Ví dụ:me(X,Y) :- me(X,Z), anh(Z,Y).bac(X,Y) :- anh(X,Z), bo(Z,Y).bac(X,Y) :- anh(X,Z), me(Z,Y).Tham số truyền trong các vị từ không được làbiểu thức.Ví dụ:giaithua(N-1,kq). %sai This is trial version 7 www.adultpdf.com3. Cơ chế tìm lời giải của Prolognguoi(socrate).nguoi(xeda). Chương trìnhvua(xeda). ?- consult(‘E:\swi_prolog\a.pl’). ?- vua(xeda). YES Truy vấn ?- nguoi(X), vua(X). X = xeda This is trial version 8 www.adultpdf.com 3. Cơ chế tìm lời giải của Prologr1 - nguoi(socrate). ?- nguoi(X), vua(X).r2 - nguoi(xeda).r3 - vua(xeda). X=socrate, X=xeda, vua(socrate) vua(xeda) Không thành công Thành công Quay lui This is trial version 9 www.adultpdf.com 3. Cơ chế tìm lời giải của Prolog1. So khớp2. Tạo mối liên kết giữa các thông số ở phần câu hỏi và các thông số của các sự kiện và luật trong chương trình.3. Thực thi tiếp các luật.4. Nếu thực thi thành công (các biến ở phần câu hỏi đã ở tình trạng bound) có lời giải This is trial version 10 www.adultpdf.com