Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
755,57 KB
Nội dung
TRƯỜNG ĐẠI HỌ CÔNG NGHỆ TH G ỌC HÔNG TIN N ĐẠI HỌC QUỐC G TPHCM C GIA M BÀI THU HOẠCH MÔN HỌC T H H N C BIỂU DIỄN TRI THỨC VÀ Ứ U N C ỨNG D G DỤNG Đề tà Biểu diễn logi vị từ b ài: d ic ngô ngữ P ôn Prolog ảng P ỗ n Giả viên: PGS.TS Đỗ Văn Nhơn Họ viên: Đào Thị Phấn ọc n Mã số: CH11 ã 101118 TPHC Tháng 01/2013 CM, Mục lục Lời nói đầu Phần 1: Ngôn ngữ Prolog 1.1 Giới thiệu 1.2 Các thuật ngữ 1.3 Các kiểu liệu 1.4 Chú thích 1.5 Biến 1.6 Phép toán số học 1.7 Sự kiện luật 1.8 Chương trình Prolog 1.9 Phép hợp 13 1.10 Cơ chế tìm câu trả lời Prolog 14 1.11 Sự quay lui (back-tracing) 16 1.12 Nhát cắt 18 1.13 Cấu trúc danh sách 19 Phần 2: Một số chương trình minh họa Prolog 21 2.1 Bài toán Tháp Hà Nội 22 2.2 Bài tốn Tính giai thừa 24 2.3 Bài toán gia hệ 25 Tài liệu tham khảo 30 Trang Lời nói đầu Trong thời đại cơng nghệ thơng tin, ngày có nhiều ứng dụng thơng minh hỗ trợ người nhiều lĩnh vực giáo dục, kinh doanh, Các chương trình dạy học, ôn tập, tư vấn chiến lược kinh doanh ngày phổ biến Hầu hết phần mềm, trang web phải dựa tri thức định lĩnh vực chúng chọn lọc, mơ hình hóa biểu diễn lại dạng mà máy hiểu gần gũi với người Có nhiều mơ hình biểu diễn tri thức bản, phổ biến dùng logic vị từ, mạng ngữ nghĩa, hệ luật dẫn, …Đã từ lâu, sử dụng logic vị từ suy luận logic giúp giải vấn đề nhanh ngắn gọn Trong lĩnh vực lập trình, có nhiều trình biên dịch đời hỗ trợ ngơn ngữ lập trình cho lập trình logic Trong số bật Prolog Tiểu luận trình bày khái qt ngơn ngữ Prolog, đồng thời trình bày vài ví dụ minh họa cho việc biểu diễn tri thức dùng logic vị từ thông qua ngôn ngữ Prolog Em xin chân thành cảm ơn PGS.TS Đỗ Văn Nhơn – Giảng viên môn học Biểu Diễn Tri Thức Ứng Dụng truyền đạt cho em kiến thức vô quý báu Em xin chân thành cảm ơn quý Thầy Cơ thuộc phịng đào tạo Sau đại học bạn tài liệu tham khảo để em hồn thành mơn học Chân thành cảm ơn! Trang Phần 1: Ngôn ngữ Prolog 1.1 Giới thiệu Prolog ngơn ngữ lập trình Tên gọi Prolog xuất phát từ cụm từ tiếng Pháp Programmation en logique, nghĩa "lập trình theo lơ-gích" Xuất từ năm 1972 (do Alain Colmerauer Robert Kowalski thiết kế), mục tiêu Prolog giúp người dùng mô tả lại tốn ngơn ngữ logic, dựa đó, máy tính tiến hành suy diễn tự động dựa vào chế suy diễn có sẵn (hợp nhất, quay lui tìm kiếm theo chiều sâu) để tìm câu trả lời cho người dùng Prolog sử dụng nhiều ứng dụng trí tuệ nhân tạo ngơn ngữ học khoa học máy tính (đặc biệt ngành xử lý ngôn ngữ tự nhiên mục tiêu thiết kế ban đầu nó) Cú pháp ngữ nghĩa Prolog đơn giản sáng sủa, người Nhật coi tảng để xây dựng máy tính hệ thứ năm mà đó, thay phải mơ tả cách giải tốn máy tính, người cần mơ tả tốn máy tính hỗ trợ họ phần cịn lại Ngun lý lập trình theo lơ-gích dựa mệnh đề Horn Một mệnh đề Horn biểu diễn kiện khơng đúng, xảy hay khơng xảy Ví dụ 1: Lan sinh viên Nếu Lan học tốt có học bổng Nếu X cha mẹ Y Y cha mẹ Z X ơng bà Z 1.2 Các thuật ngữ Một chương trình Prolog sở liệu gồm mệnh đề (clause) Mỗi mệnh đề xây dựng từ vị từ Một vị từ có nhiều nguyên tử logic (logic atom) Mỗi logic atom biểu diễn quan hệ hạng (term) Term sơ cấp (elementary term) hằng, biến phức hợp (compound term) Trang Các term phức hợp biểu diễn đối tượng phức tạp toán xét Term phức hợp hàm tử (functor) có đối số (argument), functor có dạng: Tên_functor(Đối_1, Đối_2,…, Đối_n) Tên_functor chuỗi gồm chữ chữ số, bắt đầu chữ thường ; đối biến, term sơ cấp phức hợp Mệnh đề kiện, luật hay câu hỏi Prolog quy ước sau mệnh đề cần có dấu chấm để kết thúc 1.3 Các kiểu liệu Trong Prolog, có hai dạng kiểu liệu, “kiểu sơ cấp”, hai “kiểu có cấu trúc” Kiểu liệu sơ cấp bao gồm số kiểu liệu định nghĩa sẵn Prolog, bao gồm: char: kiểu ký tự, sử dụng đặt cặp dấu nháy đơn Ví dụ: ‘a’, ‘b’, … string: kiểu chuỗi, sử dụng đặt cặp dấu nháy đơi Ví dụ: “day la chuoi” integer: số nguyên unsigned: số nguyên không dấu (nguyên dương) real: số thực Kiểu liệu có cấu trúc người dùng tự định nghĩa dựa kiểu sơ cấp có sẵn nhắc đến phần Có số trình biên dịch ngôn ngữ Prolog không yêu cầu người dùng phải khai báo kiểu liệu dùng SWI-Prolog Tuy nhiên, với Visual Prolog điều cần thiết hàm hay vị từ Trang 1.4 Chú thích Tương tự ngơn ngữ khác, chương trình Prolog, người dùng thêm vào thích (comment) Khi muốn thích cho dịng, sử dụng dấu % sử dụng cặp dấu /* */ thích nhiều dịng Ví dụ 2: %%%%%%%%%%%%%% % dịng thích % dịng thích /* dịng thích */ /* thích thích thích */ %%%%%%%%%%%%%% 1.5 Biến Trong Prolog, người dùng sử dụng biến Tên biến quy ước chuỗi gồm chữ chữ số bắt đầu chữ hoa dấu gạch _ Ví dụ 3: Tên biến sau không hợp lệ: so_nguyen, 1n, 123, … Tên biến sau hợp lệ: X, Ten, _, _Nam, So_nguyen, … Trong Prolog, có biến đặc biệt, khơng cần định kiểu sử dụng, dấu gạch _ Dấu xem biến sử dụng cho trường hợp vị từ có đối mà với giá trị đối nhận giá trị 1.6 Phép toán số học Prolog chủ yếu hỗ trợ xử lý ký hiệu, nhiên, hỗ trợ số phép tốn hai ngơi chuẩn sau: Trang Phép tốn Ý nghĩa + Cộng hai số - Trừ hai số * Nhân hai số / Chia hai số Mod Chia lấy phần dư Div Chia lấy phần nguyên Phép so sánh hai Phép so sánh Ý nghĩa > Lớn >= Lớn < Nhỏ < Khác := Bằng Với toán tử logic, Prolog sử dụng dấu phẩy , thay cho toán tử and (và) dấu chấm phẩy ; thay cho or (hoặc) 1.7 Sự kiện luật Sự kiện vị từ diễn tả thật Để hiểu rõ kiện, xét ví dụ sau: Ví dụ 4: “2 số nguyên tố” kiện diễn tả thật “2 số nguyên tố” Và diễn đạt vị từ Prolog sau: nguyen_to(2) Ví dụ 5: Xét phả hệ sau: Trang Hình 1: Cây phả hệ gia đình ệ Trong hình trên, nút thể cho ngườ mũi t thể cho mối q T h n n ời, tên n quan hệ “cha mẹ của” Sự kiện “ma cha mẹ bil” diễn đạt m vị từ n sau: m S ar m parent t(“mar”, “b bil”) Vị từ paren có hai đối “mar” “bil” Để diễn đạt ch phả hệ cần vị V nt i v ể ho từ sau: parent(“mar “bil”) p r”, parent(“tom “bil”) p m”, parent(“tom “liz”) p m”, parent(“bil” “ann”) p ”, parent(“bil” “sue”) p ”, parent(“sue “jim”) p e”, Luật vị từ diễn tả quy luật su diễn đượ công nhậ Lu tr L t q uy ợc ận uật rình bày dạng mệnh đề Tr d m rong Prolog để định n g, nghĩa cho m luật, sử dụng cặp k tự :- ký Xét cá ví dụ sau để hiểu rõ luậ ác u õ ật Ví dụ 6: giả sử định nghĩa thêm vị từ child(X,Y) với hai đố số, mang ý nghĩa: X ụ đ ) ối g Y Ta có luật sau: Y t child( (X,Y):-parent(Y,X) Luật hiểu là: X Y Nếu Y c mẹ X t cha X Ví dụ 7: để suy diễn số nguy N số nguyên tố ta viết: d yên k ố Trang “N số nguyên tố N>0, M số nguyên tố đó, M0, nguyen_to(M), M