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

Bài giảng Trí tuệ nhân tạo: Chương 5 - PGS.TS. Lê Thanh Hương

Chia sẻ: Dien_vi08 Dien_vi08 | Ngày: | Loại File: PDF | Số trang:5

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

Bài giảng "Trí tuệ nhân tạo - Chương 5: Ngôn ngữ lập trình Prolog" cung cấp cho người học các kiến thức: Giới thiệu, cú pháp, cơ chế tìm lời giải của Prolog, danh sách (list). Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Trí tuệ nhân tạo: Chương 5 - PGS.TS. Lê Thanh Hương

5.1. Giới thiệu<br /> Chương 5.<br /> 5<br /> Ngôn ngữ lập trình Prolog<br /> <br /> Š PROgramming in LOGic (sử dụng cách tiếp<br /> ế<br /> cận logic)<br /> Š Alain Calmerauer & Philippe Roussel, 1972<br /> Š Dùng ngôn ngữ mô tả/khai báo (declarative<br /> language) để đặc tả vấn đề<br /> Š Ứng dụng nhiều trong xử lý ngôn ngữ tự nhiên<br /> và TTNT.<br /> Š Turbo Prolog, Visual Prolog, B-Prolog, SWIProlog, …<br /> <br /> Lê Thanh Hương<br /> g<br /> Khoa CNTT<br /> Đại học Bách khoa Hà Nội<br /> <br /> Lê Thanh Hương – Khoa CNTT - ĐHBKHN<br /> <br /> 2<br /> <br /> 5.2. Cú pháp<br /> <br /> Ví dụ<br /> owns(john,house).<br /> owns(mary,house). sự kiện<br /> young(john).<br /> rich(X) :- owns(X,house).<br /> luật<br /> talent(X) :- rich(X), young(X).<br /> <br /> Chương trình là tập các mô tả logic vị từ<br /> dưới dạng chuẩn Horn<br /> <br /> Š<br /> „<br /> <br /> Không có cấu trúc điều khiển (rẽ nhánh, lặp)<br /> <br /> „<br /> <br /> Không có phép gán<br /> <br /> Š<br /> <br /> Vị từ được diễn giải thông qua sự kiện và<br /> luật, kết thúc bằng ký tự ‘.’.<br /> <br /> Š<br /> <br /> Prolog trả lời các câu hỏi nhờ cơ chế suy<br /> luận dựa trên kiến thức được cung cấp<br /> <br /> Truy vấn<br /> <br /> Lê Thanh Hương – Khoa CNTT - ĐHBKHN<br /> <br /> 3<br /> <br /> Chương trình<br /> <br /> ?- consult(‘E:\\swi_prolog\\test.pl’).<br /> ?- talent(john).<br /> YES<br /> ?- talent(X).<br /> X = john<br /> 4<br /> <br /> 1<br /> <br /> 5.2.1 Sự kiện<br /> <br /> 5.2.2 Luật<br /> Š Sử dụng<br /> d<br /> để định<br /> đị h nghĩa<br /> hĩ một<br /> ột vịị từ ((quan hệ) mới<br /> ới d<br /> dựa ttrên<br /> ê<br /> các vị từ (quan hệ) đã biết.<br /> Š Gồm 2 phần, phân cách bởi dấu :Š Ví dụ:<br /> <br /> Š Sự kiện là những điều ta công nhận là đúng<br /> Š Ví dụ:<br /> cat(tom).<br /> khoang_cach(‘Hà nội’,’TP Hồ Chí Minh’,2000).<br /> <br /> giaithua(N,Kq):- N1 is N-1, giaithua(N1,Kq1), Kq is Kq1*N.<br /> <br /> Š VT là vị từ cần xác định; VP là điều kiện để VT nhận giá<br /> trị đúng<br /> Š VP gồm các lời gọi vị từ khác, ngăn cách bởi dấu “,”<br /> Š Tham số truyền trong các vị từ không được là biểu thức.<br /> Š Ví dụ:<br /> <br /> Š Tên vị từ bắt đầu bằng kí tự thường<br /> Š Chuỗi kí tự đặt trong ‘ ‘<br /> Š Biến bắt đầu bằng chữ hoa.<br /> <br /> giaithua(N-1,kq). %sai<br /> Lê Thanh Hương – Khoa CNTT - ĐHBKHN<br /> <br /> Lê Thanh Hương – Khoa CNTT - ĐHBKHN<br /> <br /> 5<br /> <br /> 5.3. Cơ chế tìm lời giải của Prolog<br /> nguoi(socrate).<br /> nguoi(xeda).<br /> vua(xeda).<br /> <br /> Truy vấn<br /> <br /> 5.3. Cơ chế tìm lời giải của Prolog<br /> r1 - nguoi(socrate).<br /> r2 - nguoi(xeda).<br /> r3 - vua(xeda).<br /> <br /> Chương trình<br /> <br /> ?- nguoi(X), vua(X).<br /> <br /> X=socrate,<br /> vua(socrate)<br /> <br /> ? consult(<br /> ?consult(‘E:\\swi<br /> E:\\swi_prolog\\a.pl<br /> prolog\\a.pl’).<br /> ).<br /> ?- vua(xeda).<br /> YES<br /> ?- nguoi(X), vua(X).<br /> X = xeda<br /> Lê Thanh Hương – Khoa CNTT - ĐHBKHN<br /> <br /> 6<br /> <br /> Không thành công<br /> Quay lui<br /> <br /> 7<br /> <br /> Lê Thanh Hương – Khoa CNTT - ĐHBKHN<br /> <br /> X=xeda,<br /> vua(xeda)<br /> <br /> Thành công<br /> <br /> 8<br /> <br /> 2<br /> <br /> 5.3. Cơ chế tìm lời giải của Prolog<br /> <br /> Điều khiển quá trình quay<br /> lui (backtracking)<br /> Š Prolog tự động quay lui khi cần<br /> ầ thiết<br /> ế<br /> <br /> 1. So khớp<br /> 2. Tạo mối liên kết giữa các thông số ở phần<br /> câu hỏi và các thông số của các sự kiện và<br /> luật trong chương trình.<br /> 3 Thực thi tiếp các luật<br /> 3.<br /> luật.<br /> 4. Nếu thực thi thành công (các biến ở phần<br /> câu hỏi đã ở tình trạng bound) Æ có lời giải<br /> <br /> Š Có thể điều khiển quá trình thực thi của chương trình<br /> bằng cách sắp lại thứ tự các mệnh đề<br /> Š Nhát cắt là một toán tử dùng để ngăn cản quá trình<br /> backtracking của Prolog.<br /> nhát cắt<br /> Š Ví dụ:<br /> f(X,0):- X
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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