intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Trần Ngọc Mai | Ngày: | Loại File: PDF | Số trang:10

503
lượt xem
113
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

1. Giới thiệ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) để đặ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, …

Chủ đề:
Lưu

Nội dung Text: Ngôn ngữ lập trình Prolog

  1. Ngôn ngữ lập trình Prolog 1 This is trial version www.adultpdf.com
  2. 1. Giới thiệ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) để đặ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, SWI- Prolog, … This is trial version 2 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ừ đượ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ế suy luận dựa trên kiến thức được cung cấp This is trial version 3 www.adultpdf.com
  4. Ví dụ owns(john,house). owns(mary,house). sự kiện Chương trình young(john). rich(X) :- owns(X,house). luật talent(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
  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 đầu bằng kí tự thường Chuỗi kí tự đặt trong ‘ ‘ Biến bắt đầu bằng chữ hoa. This is trial version 5 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ồ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 để VT nhận giá trị đúng VP gồm các lời gọi vị từ khác, ngăn cách bởi dấu “,” This is trial version 6 www.adultpdf.com
  7. 2.2 Luật Nếu nhiều luật có VT giống nhau, các luật phả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.com
  8. 3. Cơ chế tìm lời giải của Prolog nguoi(socrate). nguoi(xeda). Chương trình vua(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
  9. 3. Cơ chế tìm lời giải của Prolog r1 - 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
  10. 3. Cơ chế tìm lời giải của Prolog 1. So khớp 2. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2