1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ lập trình Prolog pptx

10 363 6

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 135,59 KB

Nội dung

1 Ngôn Ngôn ng ng ữ ữ l l ậ ậ p p tr tr ì ì nh nh Prolog Prolog This is trial version www.adultpdf.com 2 1. Giớithiệu  PROgramming 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) để đặctả vấn đề  Ứng dụng nhiều trong xử lý ngôn ngữ tự nhiên và TTNT.  Turbo Prolog, Visual Prolog, B-Prolog, SWI- Prolog, … This is trial version www.adultpdf.com 3 2. Cú pháp  Chươ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án  Vị từ đượcdiễngiả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ế suy luận dựa trên kiến thức được cung cấp This is trial version www.adultpdf.com 4 Ví dụ owns(john,house). owns(mary,house). young(john). rich(X) :- owns(X,house). talent(X) :- rich(X), young(X). sự kiện luật ?- consult(‘E:\\swi_prolog\\test.pl’). ?- talent(john). YES ?- talent(X). X = john Chương trình Truy vấn This is trial version www.adultpdf.com 5 2.1 Sự kiện  Sự kiện là những điều ta công nhận là đúng  Ví dụ: cat(tom). khoang_cach(‘Hà nội’,’TP Hồ Chí Minh’,2000).  Tên vị từ bắt đầubằng kí tự thường  Chuỗikítựđặt trong ‘ ‘  Biếnbắt đầubằng chữ hoa. This is trial version www.adultpdf.com 6 2.2 Luật  Sử dụng để định nghĩa một vị từ (quan hệ) mới dựa trên các vị từ (quan hệ) đã biết.  Gồm2 phần, phân cách bởidấu:-  Ví dụ: giaithua(N,Kq):- N1 is N-1, giaithua(N1,Kq1), Kq is Kq1*N.  VT là vị từ cầnxácđịnh; VP là điềukiện để VT nhận giá trịđúng  VP gồmcáclờigọivị từ khác, ngăncáchbởi dấu“,” This is trial version www.adultpdf.com 7 2.2 Luật  Nếu nhiềuluậtcóVT giống nhau, các luật phảiviếtliêntiế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 đượclà biểuthức.  Ví dụ: giaithua(N-1,kq). %sai This is trial version www.adultpdf.com 8 3. Cơ chế tìm lờigiảicủaProlog nguoi(socrate). nguoi(xeda). vua(xeda). ?- consult(‘E:\\swi_prolog\\a.pl’). ?- vua(xeda). YES ?- nguoi(X), vua(X). X = xeda Chương trình Truy vấn This is trial version www.adultpdf.com 9 3. Cơ chế tìm lờigiảicủaProlog ?- nguoi(X), vua(X). X=socrate, vua(socrate) r1 - nguoi(socrate). r2 - nguoi(xeda). r3 - vua(xeda). Không thành công Quay lui X=xeda, vua(xeda) Thành công This is trial version www.adultpdf.com 10 3. Cơ chế tìm lờigiảicủaProlog 1. So khớp 2. Tạomốiliênkếtgiữa các thông sốởphần câu hỏi và các thông số củacácsự kiệnvà luậttrongchương trình. 3. Thựcthitiếpcácluật. 4. Nếuthực thi thành công (các biến ở phần câu hỏi đã ở tình trạng bound) Æ có lờigiải This is trial version www.adultpdf.com . 1972  Dùng ngôn ngữ mô tả/khai báo (declarative language) để đặctả vấn đề  Ứng dụng nhiều trong xử lý ngôn ngữ tự nhiên và TTNT.  Turbo Prolog, Visual Prolog, B -Prolog, SWI- Prolog, … This. 1 Ngôn Ngôn ng ng ữ ữ l l ậ ậ p p tr tr ì ì nh nh Prolog Prolog This is trial version www.adultpdf.com 2 1. Giớithiệu  PROgramming. version www.adultpdf.com 8 3. Cơ chế tìm lờigiảicủaProlog nguoi(socrate). nguoi(xeda). vua(xeda). ?- consult(‘E:\swi _prolog a.pl’). ?- vua(xeda). YES ?- nguoi(X), vua(X). X = xeda Chương trình Truy vấn This is trial

Ngày đăng: 13/08/2014, 19:22

TỪ KHÓA LIÊN QUAN

w