« Home « Kết quả tìm kiếm

Lập Trình Logic Trong ProLog - PGS.TS. PHAN HUY KHÁNH phần 1


Tóm tắt Xem thử

- Prolog là ngôn ngữ lập trình lôgich (Prolog = PROgramming in LOGic) do GS.
- Prolog còn được gọi là ngôn ngữ lập trình ký hiệ u (symbolic programming) tươ ng tự lập trình hàm (functional programming), hay lập trình phi số (non-numerical programming).
- Nguyên lý lập trình lôgich dựa trên phép suy diễn lôgích, liên quan đến những khái niệm toán học như phép hợp nhất Herbrand, hợp giải Robinson, lôgich Horn, lôgich vị từ bậc một (first order predicate logic), v.v....
- Nội dung cuốn sách tập trung trình bày cơ sở lý thuyết và những kỹ thuật lập trình cơ bản trong Prolog, rất thích hợp cho sinh viên các ngành tin học và những bạn đọc muốn tìm hiểu về kỹ thuật lập trình ứng dụng trong lĩnh vực trí tuệ nhân tạo..
- Cuốn sách này nhằm cung cấp cơ sở lý thuyết và những phương pháp lập trình cơ bản nhất của môn học «Lập trình lôgich» (Programming in Logic).
- Người đọc sẽ được làm quen với một số kỹ thuật lập trình lôgich được ứng dụng tương đối phổ biến và chủ yếu trong lĩnh vực trí tuệ nhân tạo (Artificial Intelligence) như công nghệ xử lý tri thức, máy học, hệ chuyên gia, xử lý ngôn ngữ tự nhiên, trò chơi, v.v....
- Chương 1 giới thiệu ngôn ngữ lập trình Prolog dựa trên lôgich Horn (Horn logic).
- Người đọc được làm quen với các kiểu dữ liệu của Prolog, khái niệm luật, sự kiện và viết được các chương trình Prolog đơn giản..
- Chương 2 trình bày các mức nghĩa khác nhau của một chương trình Prolog : nghĩa lôgich, nghĩa khai báo và nghĩa thủ tục, cách Prolog trả lời các câu hỏi, cách Prolog làm thoả mãn các đích..
- Chương 3 trình bày các phép toán số học, phép so sánh các đối tượng và định nghĩa các hàm sử dụng phép đệ quy trong Prolog..
- Chương 4 trình bày cấu trúc danh sách và các phép xử lý cơ bản trên danh sách của Prolog..
- Chương 5 trình bày kỹ thuật lập trình nâng cao với Prolog..
- Phần phụ lục giới thiệu ngôn ngữ lập trình SWI-Prolog, hướng dẫn cách cài đặt sử dụng phần mềm này và một số chương trình ví dụ tiêu biểu viết trong SWI Prolog đã chạy có kết quả..
- Cuốn sách này dùng làm giáo trình cho sinh viên ngành Tin học và những bạn đọc muốn tìm hiểu thêm về kỹ thuật lập trình cho lĩnh vực trí tuệ nhân tạo..
- CHƯƠNG 1 MỞ ĐẦU VỀ NGÔN NGỮ PROLOG.
- GIỚI THIỆU NGÔN NGỮ PROLOG.
- Prolog là ngôn ngữ lập trình lôgich.
- Các kiểu dữ liệu Prolog.
- Sử dụng biến trong Prolog.
- KIỂU DỮ LIỆU CẤU TRÚC CỦA PROLOG.
- CHƯƠNG 3 NGỮ NGHĨA CỦA CHƯƠNG TRÌNH PROLOG.
- QUAN HỆ GIỮA PROLOG VÀ LÔGICH TOÁN HỌC.
- CÁC MỨC NGHĨA CỦA CHƯƠNG TRÌNH PROLOG.
- Nghĩa khai báo của chương trình Prolog.
- Thay đổi thứ tự mệnh đề và đích trong chương trình.
- Định nghĩa hàm sử dụng đệ quy.
- CHƯƠNG 5 KỸ THUẬT LẬP TRÌNH PROLOG.
- Kỹ thuật sử dụng nhát cắt.
- Ví dụ sử dụng kỹ thuật nhát cắt.
- Sử dụng kỹ thuật nhát cắt và phủ định.
- SỬ DỤNG CÁC CẤU TRÚC.
- Sử dụng danh sách toạ độ theo hàng và cột.
- Sử dụng danh sách toạ độ theo cột.
- Nạp chương trình Prolog vào bộ nhớ.
- Sử dụng tệp xử lý các hạng.
- Một số vị từ xử lý cơ sở dữ liệu.
- PHỤ LỤC A MỘT SỐ CHƯƠNG TRÌNH PROLOG.
- PHỤ LỤC B HƯỚNG DẪN SỬ DỤNG SWI-PROLOG.
- Đặt câu hỏi.
- Soạn thảo chương trình.
- Mở đầu về ngôn ngữ Prolog.
- Giới thiệu ngôn ngữ Prolog.
- rolog là ngôn ngữ được sử dụng phổ biến nhất trong dòng các ngôn ngữ lập trình lôgich (Prolog có nghĩa là PROgramming in LOGic).
- Prolog còn được gọi là ngôn ngữ lập trình ký hiệu (symbolic programming) tương tự các ngôn ngữ lập trình hàm (functional programming), hay lập trình phi số (non- numerical programming).
- Prolog được sử dụng phổ biến trong lĩnh vực trí tuệ nhân tạo.
- Nguyên lý lập trình lôgich dựa trên các mệnh đề Horn (Horn logíc).
- 2 Lập trình lôgic trong Prolog 5.
- Một chương trình lôgich có thể được xem như là một cơ sở dữ liệu gồm các mệnh đề Horn, hoặc dạng luật, hoặc dạng sự kiện, chẳng hạn như tất cả các sự kiện và luật từ 1 đến 6 ở trên.
- Người sử dụng (NSD) gọi chạy một chương trình lôgich bằng cách đặt câu hỏi (query/ question) truy vấn trên cơ sở dữ liệu này, c hẳng hạn câu hỏi.
- Một hệ thống lôgich sẽ thực hiện chương trình theo cách «suy luận»-tìm kiếm dựa trên vốn «hiểu biết» đã có là chương trình - cơ sở dữ liệu, để minh chứng câu hỏi là một khẳng định, là đúng (Yes) hoặc sai (No).
- Với câu hỏi trên, hệ thống tìm kiếm trong cơ sở dữ liệu khẳng định Socrat chết và «tìm thấy» luật 5 thoả mãn (vế thì).
- Một chương trình Prolog là một cơ sở dữ liệu gồm các mệnh đề (clause).
- Mở đầu về ngôn ngữ Prolog 3 hàm tử đặc biệt.
- Kiểu dữ liệu hàm tử tương tự kiểu bản ghi (record) và danh sách (list) tương tự kiểu mảng (array) trong các ngôn ngữ lập trình mệnh lệnh (C, Pascal...)..
- Ví dụ I.2.
- Mệnh đề có thể là một sự kiện, một luật (hay quy tắc), hay một câu hỏi..
- Sự kiện : <.
- Câu hỏi.
- kiểu dữ liệu.
- 4 Lập trình lôgic trong Prolog.
- Trong một chương trình Prolog, chú thích (comment) được đặt giữa hai cặp ký hiệu.
- Ví dụ.
- Các kiểu dữ liệu sơ cấp của Prolog II.1.
- Prolog sử dụng cả số nguyên và số thực.
- Các số thực rất khi được sử dụng trong Prolog.
- Lý do chủ yếu ở chỗ Prolog là ngôn ngữ lập trình ký hiệu, phi số..
- Mở đầu về ngôn ngữ Prolog 5.
- 6 Lập trình lôgic trong Prolog.
- Ví dụ III.1 : Quan hệ gia đình.
- Để xây dựng các sự kiện trong một chương trình Prolog, ta lấy một ví dụ về..
- Hình III.1.Cây gia hệ..
- Từ cây gia hệ trên đây, có thể tiếp tục viết các vị từ khác để nhận được một chương trình Prolog gồm 6 vị từ như sau.
- Sau khi hệ thống Prolog nhận được chương trình này, thực chất là một cơ sở dữ liệu, người ta có thể đặt ra các câu hỏi liên quan đến quan hệ parent .
- Mở đầu về ngôn ngữ Prolog 7 câu hỏi Bill có phải là cha mẹ của Sue được gõ vào trong hệ thống đối thoại Prolog (dấu nhắc.
- như sau.
- Ta tiếp tục đặt câu hỏi khác.
- Bởi vì Prolog không tìm thấy sự kiện Liz là người mẹ của Sue trong chương trình.
- Vì tên ben chưa được đưa vào trong chương trình.
- Ta có thể tiếp tục đặt ra các câu hỏi thú vị khác.
- Lần này, Prolog không trả lời Yes hoặc No , mà đưa ra một giá trị của X làm thoả mãn câu hỏi trên đây.
- Với câu hỏi này, Prolog sẽ có hai câu trả lời, đầu tiên là : X = ann ->;.
- NSD có thể đặt các câu hỏi tổng quát hơn, chẳng hạn : ai là cha mẹ của ai ? Nói cách khác, cần tìm X và Y sao cho X là cha mẹ của Y.
- 8 Lập trình lôgic trong Prolog.
- Ta có thể tiếp tục đưa ra những câu hỏi phức tạp hơn khác, chẳng hạn ai là ông (bà) của Jim ? Thực tế, quan hệ ông − bà ( grandparent ) chưa được định nghĩa, cần phải phân tách câu hỏi này thành hai phần sơ cấp hơn.
- Lúc này, có thể viết trong Prolog như sau.
- Câu hỏi trên đây tương ứng với câu hỏi : tìm X và Y thoả mãn : parent(Y, jim).
- Mở đầu về ngôn ngữ Prolog 9 Nếu thay đổi thứ tự hai thành phần câu hỏi, thì nghĩa lôgich vẫn không thay đổi và Prolog trả lời cùng kết quả (có thể thay đổi về thứ tự), nghĩa là ta có thể đặt câu hỏi như sau.
- Bây giờ ta đặt câu hỏi ai là cháu của Tom.
- Một câu hỏi khác có thể như sau : Ann và Sue có cùng người ông không ? nghĩa là ta diễn đạt thành hai giai đoạn.
- X tìm thấy có cùng là cha mẹ của Sue không ? Câu hỏi và trả lời trong Prolog như sau.
- Trong Prolog, câu hỏi còn được gọi là đích (goal) cần ph ải được thoả mãn (satisfy).
- Mỗi câu hỏi đặt ra đối với cơ sở dữ liệu có thể tương ứng với một hoặc nhiều đích.
- tương ứng với câu hỏi là phép hội (conjunction) của 2 mệnh đề : X là một cha mẹ của Ann, và.
- 10 Lập trình lôgic trong Prolog.
- Từ chương trình gia hệ trên đây, ta có thể dễ dàng bổ sung các thông tin khác, chẳng hạn bổ sung các sự kiện về giới tính (nam, nữ) của những người đã nêu tên trong quan hệ parent như sau.
- Mệnh đề.
- Tuy nhiên, ta cũng có thể sử dụng quan hệ nhị phân để định nghĩa giới tính.
- Mở đầu về ngôn ngữ Prolog 11 Với mọi X và Y,.
- Câu hỏi sau đây giải thích cách Prolog sử dụng các luật : Liz có phải là con của Tom không.
- Thực tế, trong chương trình không có sự kiện nào liên quan đến con, mà ta phải tìm cách áp dụng các luật.
- Tuy nhiên, đích này thoả mãn và có giá trị Yes vì chính là sự kiện đã thiết lập trong chương trình.

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt