Bài giảng Trí tuệ nhân tạo: Bài 11+12+13 - Phạm Thị Anh Lê
Số trang: 24
Loại file: pdf
Dung lượng: 239.59 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Trí tuệ nhân tạo: Bài 11+12+13 - Phạm Thị Anh Lê cung cấp cho học viên những kiến thức về Lập trình logic Prolog, giới thiệu ngôn ngữ Prolog, các kiểu dữ liệu sơ cấp, sự kiện và luật trong Prolog, kiểu dữ liệu cấu trúc của Prolog, một số chương trình Prolog,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Trí tuệ nhân tạo: Bài 11+12+13 - Phạm Thị Anh Lê Lec 11-13Lập trình logic Prolog Lec 11-13. p.1 Nội dung◼ Giới thiệu ngôn ngữ Prolog◼ Các kiểu dữ liệu sơ cấp◼ Sự kiện và luật trong Prolog◼ Kiểu dữ liệu cấu trúc của Prolog◼ Một số chương trình Prolog Lec 11-13. p.2 Giới thiệu ngôn ngữ Prolog◼ Prolog là ngôn ngữ lập trình khai báo (declarative language), thích hợp để giải quyết các bài toán liên quan đến đối tượng và quan hệ giữa chúng◼ Prolog được sử dụng phổ biến trong lĩnh vực TTNT◼ Một chương trình Prolog là sự đặc tả một vấn đề, có thể được xem như một CSDL gồm các mệnh đề Horn (sự kiện - fact hoặc luật - rule).◼ Nguyên lý lập trình của Prolog dựa trên mệnh đề Horn. Lec 11-13. p.3 Cú pháp ngôn ngữ Prolog◼ Chương trình Prolog là một CSDL gồm các mệnh đề (clause), mỗi mệnh đề được xây dựng từ các vị từ (predicat)◼ Một mệnh đề có thể là một sự kiện, luật hay câu hỏi◼ Qui ước: – Sự kiện: (tương ứng với luật :- true) – Luật: :- – Câu hỏi: ?-◼ Chú thích được đặt giữa hai dấu /* và */ hoặc sau ký hiệu % Lec 11-13. p.4 Các kiểu dữ liệu trong Prolog Kiểu dữ liệu Kiểu sơ cấp Kiểu phức hợp Hằng BiếnSố Chuỗi ký tự Nguyên tử Các kiểu dữ liệu trong Prolog Lec 11-13. p.5 Các kiểu dữ liệu sơ cấp◼ Hằng – Hằng số: số nguyên được dùng để đếm, số thực ít được dùng do Prolog là ngôn ngữ lập trình ký hiệu, phi số – Hằng logic: True, false – Hằng xâu ký tự: hằng xâu ký tự được đặt giữa 2 dấu nháy kép, hằng rỗng “” – Hằng nguyên tử◼ Biến Lec 11-13. p.6 Xây dựng sự kiệnVí dụ: cây gia hệ biểu diễn mối quan hệ trong gia đình Lec 11-13. p.7 Xây dựng sự kiện (tiếp)◼ Trên cả hình (a) và (b) xây dựng vị từ: parent(tom, bob)◼ Trên hình a) xây dựng được các vị từ sau: parent(pam, bob) parent(bob, ann) parent(bob, pat) parent(pat, jim) parent(tom, liz) parent(tom, bob)Các câu hỏi: ?-parent(bob, pat) Yes ?-parent(liz, pat) No ?-parent(X, liz) X=tom Lec 11-13. p.8 Xây dựng sự kiện (tiếp)Các câu hỏi: ?-parent(X, Y) X=tom Y=liz … ?-parent(Y, jim),parent(X, Y) X=pat Y=bob Yes ?-parent(X, ann),parent(X, pat) Yes Lec 11-13. p.9 Xây dựng luậtTừ các quan hệ ở trên có thể xây dựng các luật: child(Y, X):-parent(X, Y) mother(X, Y):-parent(X, Y),woman(X) grandparent(X, Y):-parent(X, Z), parent(Z, Y) sister(X, Y):-parent(Z, X),parent(Z, Y),woman(X), different(X, Y) Lec 11-13. p.10 Xây dựng luật (tiếp)- Định nghĩa luật đệ quy: ancestor(X, Y):-parent(X, Z), ancestor(Z, Y)- Sử dụng biến: - haveachild(X) :- parent(X, Y) - Khi một biến chỉ xuất hiện một lần trong 1 mệnh đề thì không cần đặt tên, gọi là biến nặc danh have_a_child(X) :- parent(X, _) (mỗi vị trí xuất hiện dấu _ trong một mệnh đề tương ứng với một biến nặc danh mới) - someone_has_a_child :- parent(_, _) tương đương với someone_has_a_child :- parent(X, Y) Nếu biến nặc danh xuất hiện trong câu hỏi thì Prolog không hiển thị gía trị của biến này trong kết quả trả về Lec 11-13. p.11 Xây dựng luật (tiếp)- Ví dụ: Nếu muốn tìm kiếm những người có con mà không quan tâm đến tên con là gì: ?- parent(X, _)- hoặc tìm kiếm những người con mà không quan tâm đến tên cha mẹ là gì: ?- parent(_, X) Lec 11-13. p.12 Kiểu dữ liệu có cấu trúc◼ Kiểu dữ liệu có cấu trúc tương tự cấu trúc bản ghi: đối tượng có nhiều thành phần, mỗi thành phần có thể là một cấu trúc Prolog xem mỗi thành phần như một đối tượng, để tổ hợp các thành phần thành một đối tượng duy nhất sử dụng hàm tử – Ví dụ: date(2, september, 2002); book(title(Name), author(Author), Year)◼ So sánh và hợp nhất các hạng thức: – Phép so khớp trên các hạng thức và các vị từ : phép hợp nhất Lec 11-13. p.13 Kiểu dữ liệu có cấu trúc◼ Hai hạng thức là hợp nhất được nếu: – chúng giống hệt nhau – các biến xuất hiện trong 2 hạng có thể được ràng buộc sao cho các hạng của mỗi đối tượng trở nên giống hệt ...
Nội dung trích xuất từ tài liệu:
Bài giảng Trí tuệ nhân tạo: Bài 11+12+13 - Phạm Thị Anh Lê Lec 11-13Lập trình logic Prolog Lec 11-13. p.1 Nội dung◼ Giới thiệu ngôn ngữ Prolog◼ Các kiểu dữ liệu sơ cấp◼ Sự kiện và luật trong Prolog◼ Kiểu dữ liệu cấu trúc của Prolog◼ Một số chương trình Prolog Lec 11-13. p.2 Giới thiệu ngôn ngữ Prolog◼ Prolog là ngôn ngữ lập trình khai báo (declarative language), thích hợp để giải quyết các bài toán liên quan đến đối tượng và quan hệ giữa chúng◼ Prolog được sử dụng phổ biến trong lĩnh vực TTNT◼ Một chương trình Prolog là sự đặc tả một vấn đề, có thể được xem như một CSDL gồm các mệnh đề Horn (sự kiện - fact hoặc luật - rule).◼ Nguyên lý lập trình của Prolog dựa trên mệnh đề Horn. Lec 11-13. p.3 Cú pháp ngôn ngữ Prolog◼ Chương trình Prolog là một CSDL gồm các mệnh đề (clause), mỗi mệnh đề được xây dựng từ các vị từ (predicat)◼ Một mệnh đề có thể là một sự kiện, luật hay câu hỏi◼ Qui ước: – Sự kiện: (tương ứng với luật :- true) – Luật: :- – Câu hỏi: ?-◼ Chú thích được đặt giữa hai dấu /* và */ hoặc sau ký hiệu % Lec 11-13. p.4 Các kiểu dữ liệu trong Prolog Kiểu dữ liệu Kiểu sơ cấp Kiểu phức hợp Hằng BiếnSố Chuỗi ký tự Nguyên tử Các kiểu dữ liệu trong Prolog Lec 11-13. p.5 Các kiểu dữ liệu sơ cấp◼ Hằng – Hằng số: số nguyên được dùng để đếm, số thực ít được dùng do Prolog là ngôn ngữ lập trình ký hiệu, phi số – Hằng logic: True, false – Hằng xâu ký tự: hằng xâu ký tự được đặt giữa 2 dấu nháy kép, hằng rỗng “” – Hằng nguyên tử◼ Biến Lec 11-13. p.6 Xây dựng sự kiệnVí dụ: cây gia hệ biểu diễn mối quan hệ trong gia đình Lec 11-13. p.7 Xây dựng sự kiện (tiếp)◼ Trên cả hình (a) và (b) xây dựng vị từ: parent(tom, bob)◼ Trên hình a) xây dựng được các vị từ sau: parent(pam, bob) parent(bob, ann) parent(bob, pat) parent(pat, jim) parent(tom, liz) parent(tom, bob)Các câu hỏi: ?-parent(bob, pat) Yes ?-parent(liz, pat) No ?-parent(X, liz) X=tom Lec 11-13. p.8 Xây dựng sự kiện (tiếp)Các câu hỏi: ?-parent(X, Y) X=tom Y=liz … ?-parent(Y, jim),parent(X, Y) X=pat Y=bob Yes ?-parent(X, ann),parent(X, pat) Yes Lec 11-13. p.9 Xây dựng luậtTừ các quan hệ ở trên có thể xây dựng các luật: child(Y, X):-parent(X, Y) mother(X, Y):-parent(X, Y),woman(X) grandparent(X, Y):-parent(X, Z), parent(Z, Y) sister(X, Y):-parent(Z, X),parent(Z, Y),woman(X), different(X, Y) Lec 11-13. p.10 Xây dựng luật (tiếp)- Định nghĩa luật đệ quy: ancestor(X, Y):-parent(X, Z), ancestor(Z, Y)- Sử dụng biến: - haveachild(X) :- parent(X, Y) - Khi một biến chỉ xuất hiện một lần trong 1 mệnh đề thì không cần đặt tên, gọi là biến nặc danh have_a_child(X) :- parent(X, _) (mỗi vị trí xuất hiện dấu _ trong một mệnh đề tương ứng với một biến nặc danh mới) - someone_has_a_child :- parent(_, _) tương đương với someone_has_a_child :- parent(X, Y) Nếu biến nặc danh xuất hiện trong câu hỏi thì Prolog không hiển thị gía trị của biến này trong kết quả trả về Lec 11-13. p.11 Xây dựng luật (tiếp)- Ví dụ: Nếu muốn tìm kiếm những người có con mà không quan tâm đến tên con là gì: ?- parent(X, _)- hoặc tìm kiếm những người con mà không quan tâm đến tên cha mẹ là gì: ?- parent(_, X) Lec 11-13. p.12 Kiểu dữ liệu có cấu trúc◼ Kiểu dữ liệu có cấu trúc tương tự cấu trúc bản ghi: đối tượng có nhiều thành phần, mỗi thành phần có thể là một cấu trúc Prolog xem mỗi thành phần như một đối tượng, để tổ hợp các thành phần thành một đối tượng duy nhất sử dụng hàm tử – Ví dụ: date(2, september, 2002); book(title(Name), author(Author), Year)◼ So sánh và hợp nhất các hạng thức: – Phép so khớp trên các hạng thức và các vị từ : phép hợp nhất Lec 11-13. p.13 Kiểu dữ liệu có cấu trúc◼ Hai hạng thức là hợp nhất được nếu: – chúng giống hệt nhau – các biến xuất hiện trong 2 hạng có thể được ràng buộc sao cho các hạng của mỗi đối tượng trở nên giống hệt ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Trí tuệ nhân tạo Trí tuệ nhân tạo Lập trình logic Prolog Ngôn ngữ Prolog Kiểu dữ liệu cấu trúc của Prolog Chương trình PrologGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Trí tuệ nhân tạo
12 trang 417 0 0 -
7 trang 210 0 0
-
Kết quả bước đầu của ứng dụng trí tuệ nhân tạo trong phát hiện polyp đại tràng tại Việt Nam
10 trang 167 0 0 -
Xu hướng và tác động của cách mạng công nghiệp lần thứ tư đến môi trường thông tin số
9 trang 162 0 0 -
6 trang 152 0 0
-
9 trang 150 0 0
-
Tìm hiểu về Luật An ninh mạng (hiện hành): Phần 1
93 trang 146 0 0 -
Luận văn tốt nghiệp: Ứng dụng trí tuệ nhân tạo trong xây dựng GAME
0 trang 129 0 0 -
Tác động của ứng dụng công nghệ tài chính đến hiệu quả hoạt động của ngân hàng thương mại Việt Nam
10 trang 115 0 0 -
Xác lập tư cách pháp lý cho trí tuệ nhân tạo
6 trang 115 0 0