Lập trình logic

Một phần của tài liệu BÀI GIẢNG môn học PHƯƠNG PHÁP LUẬN lập TRÌNH (Trang 56)

Lập trình logic được ứng dụng chủ yếu và phổ biến trong lĩnh vực trí tuệ nhân tạo 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,

- ....

Nguyên lý của lập trình logic là dựa chủ yếu vào mệnh đề Horn. Mỗi mệnh đề Horn dùng để biểu diễn một sự kiện, một sự vật nào đó là đúng, không đúng, xảy ra hay không xảy ra ...trong thế giới thực.

1. Nếu một người là già và khôn ngoan thì người đó là hạnh phúc 2. Jonh là người hạnh phúc

3. Nếu X là cha/mẹ của Y, và Y là cha/mẹ của Z thì X là ông/bà của Z 4. Tom là ông của FAT

5. Tất cả mọi người đều chết (hoặc, nếu ai là người thì ai đó phải chết) 6. Socrat là người

Trong các mệnh đề Horn ở trên, các mệnh đề 1,3,5 được gọi là các luật/Rulẹ Còn các mệnh đề 2,4,6 gọi là các sự kiện.

Một chương trình logic có thể xem là một CSDL gồm các mệnh đề Horn hoặc dạng luật, hoặc dạng sự kiện, ....Người sử dụng gọi để chạy một chương trình logic bằng cách đặt ra các câu hỏi/truy vấn (Question/Query) truy vấn các CSDL nàỵ

Ví dụ: Socrat có chết không? Tương đương với câu hỏi Socrat chết là đúng hay sai Một hệ thống logic sẽ chạy chương trình theo cách suy luận – tìm kiếm trả lời dựa trên vồn hiểu biết đã có là chương trình, để minh chứng câu hỏi là khẳng định đúng hay saị. Ngôn ngữ lập trình đại diện cho phương pháp lập trình này là Prolog. Prolog rất thích hợp để giải các bài toán liên quan đến các đối tượng và mối quan hệ giữa chúng. Một chương trình Prolog = 1 CSDL = {các mệnh đề}.

Mỗi mệnh đề có thể là luật, sự kiện, câu hỏi, nó được xây dựng từ các vị từ (predicate). Mỗi vị từ là một phát biểu nào đó về các đối tượng có giá trị chân lý là đúng hoặc saị Một vị từ có thể có các đối số là các nguyên logic (logic atom)/nguyên tử. Nguyên logic

biểu diễn một quan hệ giữa các hạng (term). Hạng được xem là những đối tượng dữ liệu trong môt chương trình logic. Một hạng có thể là sơ cấp hoặc hạng phức. Hạng sơ cấp gồm các hằng, biến, ...Hạng phức biểu diễn các đối tượng phức tạp của bài toán cần giải thuộc lĩnh vực đang xét. Hạng phức có thể là một hàm tử (function) chứa các đối số có dạng:

<Tên_hàm_tử> (đối soos1, đối số 2, ....).

Mỗi đối số có thể là biến, hạng sơ cấp, hạng phức hợp, ....

Một số kiểu hàm tử như kiểu bản ghi, kiểu danh sách, kiểu mảng,... Ví dụ: hàm tử “.” Biểu diễn cấu trúc List. Xét các danh sách sau (*) 57

f(5, a,b).

Student (Lan, 1998, infor, 2, dc).

[a,b,c].

=> ta có:

f(5,a,b): là hạng phức

f(5,a,b).: là nguyên tử

f(5.a,b). có 3 phần tử là danh sách ít: là một vị từ

Nếu đơn vị x có các đơn vị là các danh sách là * thì a là một tổ chức nhỏ: là một mệnh đề

Hạng + mối quan hệ giữa các hạng tạo thành một mệnh đề

Một phần của tài liệu BÀI GIẢNG môn học PHƯƠNG PHÁP LUẬN lập TRÌNH (Trang 56)