Hướng dẫn Prolog – Sử dụng ngôn ngữ Prolog trong Hệ chuyên gia

0
11561
This entry is part 2 of 2 in the series Hướng dẫn Prolog

[Hướng dẫn Prolog] Prolog là ngôn ngữ đượ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 logic dựa trên các mệnh đề Horn (Horn logíc). Bài viết này Nguyễn Văn Hiếu Blog sẽ hướng dẫn bạn cách sử dụng ngôn ngữ Prolog: Cú pháp Prolog, biến & các kiểu dữ liệu của Prolog, cách xây dựng sự kiện và luật trong Prolog đi kèm ví dụ.

1. Một số thuật ngữ về Prolog

Một chương trình Prolog là một cơ sở dữ liệu gồm các mệnh đề (clause). Mỗi mệnh đề được xây dựng từ các vị từ (predicat). Một vị từ là một phát biểu nào đó về các đối tượng có giá trị chân đúng (true) hoặc sai (fail). Một vị từ có thể có các đối là các nguyên lôgich (logic atom).

Mỗi nguyên tử (nói gọn) biểu diễn một quan hệ giữa các hạng (term). Như vậy, hạng và quan hệ giữa các hạng tạo thành mệnh đề.

Hạng được xem là những đối tượng “dữ liệu” trong một trình Prolog. Hạng có thể là hạng sơ cấp (elementary term) gồm hằng (constant), biến (variable) và các hạng phức hợp (compound term).

Các hạng phức hợp biểu diễn các đối tượng phức tạp của bài toán cần giải quyết thuộc lĩnh vực đang xét. Hạng phức hợp là một hàm tử (functor) có chứa các đối (argument), có dạng:

Tên hàm là một chuỗi chữ cái và/hoặc chũ số được bắt đầu bởi một chữ cái thường. Các đối có thể là biến, hạng sơ cấp, hoặc hạng phức hợp.

Ví dụ:

  • f(5, a, b).
  • student(robert, 1975, info, 2,
  • address(6, ‘mal juin’, ‘Caen’)).
  • [a, b, c]

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. Prolog quy ước viết sau mỗi mệnh đề một dấu chấm để kết thúc như sau :

  • Sự kiện : < … >. (tương ứng với luật < … > :- true. )
  • Luật : < … > :- < … >.
  • Câu hỏi ?- < … >. (ở chế độ tương tác có dấu nhắc lệnh)

2. Xây dựng luật

Ví dụ về luật:

Ta đã định nghĩa các quan hệ đơn (unary) woman và man vì chúng chỉ liên quan đến một đối tượng duy nhất. Còn quan hệ parent là nhị phân, vì liên quan đến một cặp đối tượng. Như vậy, các quan hệ đơn dùng để thiết lập một thuộc tính của một đối tượng. Mệnh đề :

được giải thích : Mary là nữ. Tuy nhiên, ta cũng có thể sử dụng quan hệ nhị phân để định nghĩa giới tính:

Bây giờ ta đưa vào một quan hệ mới child, đối ngược với parent như sau:

Từ đó, ta định nghĩa luật mới như sau:

Luật trên được hiểu là: Với mọi X và Y, Y là con của X nếu X là cha (hay mẹ) của Y.

Hoặc: Với mọi X và Y, nếu X là cha (hay mẹ) của Y thì Y là con của X.

3. Ví dụ chương trình tư vấn ngôn ngữ lập trình

Dưới đây là chương trình Prolog tư vẫn ngôn ngữ lập trình. Các bạn copy về và lưu thành một file có đuôi là “.pl”. Sau đó dùng Prolog để chạy theo hướng dẫn phía dưới. Các bạn có thể tham khảo chương trình sau để hiểu hơn về ngôn ngữ Prolog.

Chú ý: Nếu bạn chưa cài Prolog, hãy đọc bài viết Cách kết nối Prolog với C# trên Visual Studio. Trong bài này sẽ có hướng dẫn bạn cách cài Prolog và có chương trình Hệ chuyên gia tư vấn chọn ngôn ngữ lập trình sử dụng Winform C#.

Để chạy file Prolog này. Bạn làm theo trình tự sau:

  1. Mở Prolog lên, vào menu File -> Consult, sau đó chọn đến file Prolog này.
  2. Sau khi Consult xong. Gõ go. để chạy thử chương trình

Hướng dẫn Prolog

4. Tài liệu hướng dẫn Prolog

  1. Giáo trình lập trình Logic trong Prolog
  2. Cách kết nối Prolog với C# trên Visual Studio
Sáng lập cộng đồng Lập Trình Không Khó với mong muốn giúp đỡ các bạn trẻ trên con đường trở thành những lập trình viên tương lai. Tất cả những gì tôi viết ra đây chỉ đơn giản là sở thích ghi lại các kiến thức mà tôi tích lũy được.
Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments