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

Bài giảng Trí tuệ nhân tạo: Bài 11+12+13 - Phạm Thị Anh Lê

24 24 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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!

Trang 1

Lec 11-13 Lập trình logic

Prolog

Trang 2

Lec 11-13 p.2

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

Trang 3

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

Trang 5

Các kiểu dữ liệu trong Prolog

Kiểu dữ liệu

Số

Biến Hằng

Kiểu phức hợp Kiểu sơ cấp

Nguyên tử Chuỗi ký tự

Các kiểu dữ liệu trong Prolog

Trang 6

– 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

Trang 7

Xây dựng sự kiện

Ví dụ: cây gia hệ biểu diễn mối quan hệ trong gia đình

Trang 8

Lec 11-13 p.8

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

Trang 9

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

Trang 10

Lec 11-13 p.10

Xây dựng luật

Từ 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)

Trang 11

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ề

Trang 12

Lec 11-13 p.12

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)

Trang 13

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

Trang 14

Lec 11-13 p.14

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 nhau

– Ví dụ: + date(D, M, 1890) và date(D1, May, Y1) là

hợp nhất được

+ date(D, M, 1980) và date(D1, May, 2000) hay date(X, Y, Z) và point (X, Y, Z) không hợp nhất được

Trang 15

Kiểu dữ liệu có cấu trúc

◼ Thuật toán hợp nhất Herbrand so khớp hai hạng thức S và T:

– nếu S và T là các hằng, S và T chỉ khớp được nếu và chỉ nếu chúng có cùng giá trị (chỉ là một đối tượng)

– Nếu S là biến, T là đối tượng, S và T khớp được nếu S được thay thế bởi T

– Nếu S và T là các cấu trúc thì S và T khớp được nếu

và chỉ nếu:

• S và T có cùng một hàm tử chính

• tất cả các thành phần khớp nhau từng đôi một

Trang 16

Lec 11-13 p.16

Ngữ nghĩa của chương trình Prolog

◼ Prolog diễn giải chương trình:

-– các sự kiện và luật xem như các tiên đề, câu hỏi của NSD xem như các định lý cần chứng minh

– chứng minh định lý bằng cách chỉ ra định lý có thể

được suy luận một cách logic từ các tiên đề.

◼ Về mặt thủ tục: Prolog sử dụng phương pháp suy diễn quay lui để hợp giải bài toán (chiến lược hợp giải)

Trang 17

Ngữ nghĩa của chương trình Prolog

1 Ngữ nghĩa khai báo:

– Thể hiện (instance) của mệnh đề C là mệnh đề C mà mỗi biến của nó được thay thế bởi một hạng

– Biến thể (variant) của mệnh đề C là mệnh đề C mà

mỗi biến của nó được thay thế bởi một biến khác.

Ví dụ: Mệnh đề hasachild(X) :- parent(X, Y) có biến thể

hasachild(X1) :- parent(X1, Y1) và thể hiện

hasachild(john) :- parent(john, Z)

Trang 18

Lec 11-13 p.18

Ngữ nghĩa của chương trình Prolog

Cho một chương trình và đích G, ngữ nghĩa khai báo nói rằng:

Một đích G là đúng (thỏa được, hay suy ra được từ chương trình một cách logic) nếu và chỉ nếu:

tồn tại một mệnh đề C của chương trình sao cho tồn tại một thể hiện I của C sao cho: phần đầu

của I giống hệt G và mọi đích của phần thân của I

là đúng

Trang 19

Ngữ nghĩa của chương trình Prolog

- Gói mệnh đề (packages of clauses): tập hợp các mệnh đề có

cùng tên hạng tử chính (cùng tên, cùng số lượng tham đối)

Ví dụ: P :- Q; R tương đương với

P :- Q.

P :- R.

Thứ tự ưu tiên: phép hội, phép tuyển

Trang 21

Ví dụ

Giả sử chúng ta biết những thông tin sau:

- An thích tất cả các môn Tin học mà cậu học

- Cơ sở dữ liệu là môn Tin học

- Trí tuệ nhân tạo là môn Tin học

- An học Cơ sở dữ liệu

- Nam thích học mọi môn học mà An thích học

Trang 23

Ví dụ

Khi câu hỏi được đưa vào, hệ Prolog sẽ thực hiện quá trình suy diễn logic để trả lời câu hỏi

x= CSDL, tức là An thích môn CSDL

- Thủ tục tìm câu trả lời của Prolog là cài đặt

phương pháp suy diễn lùi, sử dụng kỹ thuật tìm kiếm theo chiều sâu

- Các câu trong Prolog được xét từ trên xuống

dưới, các đích con được xem xét làm thỏa mãn theo thứ từ từ trái sang phải

Trang 24

Lec 11-13 p.24

Ví dụ

Cho đồ thị G với các đỉnh: A, B, C, D, E, F, H và các cung: (A, B), (A, C), (B, C), (B, D), (B, E), (E, F), (D, F), (F, H).

Đường đi từ đỉnh X đến đỉnh Y được định nghĩa như sau:

- hoặc có cung (X, Y)

- hoặc có cung (X, Z) và đường đi (Z, Y)

Yêu cầu:

- Biểu diễn các thông tin trên trong logic vị từ cấp một

- Tìm các đường đi trên đồ thị

Ngày đăng: 25/12/2021, 09:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm