Networks Business Online Việt Nam & International VH2

Logic Programming – Làm quen với một vài ví dụ – Trí tuệ nhân tạo

Đăng ngày 07 November, 2022 bởi admin
Logic Programming là gì ? Nếu bạn đã từng lập trình trước đây, chắc rằng bạn đã quen thuộc với những ngôn từ như là Python, Java, hay C + +. Các ngôn từ này được cho phép tất cả chúng ta tạo ra một list những hướng dẫn để máy tính triển khai theo. Trong bài viết này, hãy cùng tìm hiểu và khám phá một nhánh ngôn từ lập trình khác mang tên Logic Programming – lập trình dựa trên những quan hệ và suy luận logic với ngôn từ tiêu biểu vượt trội là Prolog .

Các quan hệ

Một trong những khái niệm cơ bản nhất trong logic programming là mối quan hệ. Để hoàn toàn có thể tưởng tượng dễ hơn, hãy nhìn vào một dòng code prolog với ví dụ tầm cỡ .

mortal(X) :- man(X).

Quan hệ được viết bởi “A :- B” được hiểu là “nếu B thì A”. Ví dụ trên nghĩa là “nếu X là người, X sẽ không bất tử” hoặc đơn giản “con người không bất tử”. Dấu chấm đánh dấu kết thúc câu lệnh trong Prolog. Giờ chúng ta bổ sung tiếp dòng code.

man(socrates).

Câu lệnh này có ý nghĩa là “socrates là con người”. Tiếp theo, bạn sẽ thấy được ý nghĩa của các mối quan hệ. Sau khi định nghĩa quan hệ, ta có thể thực hiện được truy vấn, ví dụ như:

?- mortal(socrates).
true.

Kết quả của truy vấn trên là “socrates không bất tử”. Đáp án lấy được từ cơ sở tri thức của chúng ta với hai quan hệ “socrates là con người” và “con người không bất tử”. Ngoài ra, chúng ta có thể liệt kê tất cả những thực thể không bất tử (trong cơ sở tri thức):

?- mortal(X).
X = socrates.

Trong prolog, chữ in hoa để lưu lại tên biến .

Đồ thị có hướng

Chúng ta có một đồ thị như hình dưới đây. Chúng ta sẽ quy mô hóa và triển khai suy luận trên đồ thị này .
Đầu tiên, tất cả chúng ta miêu tả đồ thị này. Để làm được như vậy, ta khai báo những quan hệ giữa những đỉnh của đồ thị .

arrow(1,2).
arrow(1,3).
arrow(3,2).
arrow(3,4).
arrow(4,3).

Đây là cách mô tả khá trực quan. Ví dụ, arrow(1,2) nghĩa là có một mũi tên đi từ đình 1 sang đỉnh 2 của đồ thị.

Giả sử như tất cả chúng ta muốn biết từ đỉnh A bất kỳ có đường đi đến đỉnh B nào đó hay không. Sẽ có hai năng lực để A đi được đến B, hoặc A và B là hai đỉnh kề nhau hoặc A là đỉnh kề của một đỉnh C nào đó hoàn toàn có thể đi được tới B. Ta diễn đạt trường hợp tiên phong khá đơn thuần :

is_path(A,B) :- arrow(A, B). 

Trường hợp thứ 2 được giải quyết và xử lý như sau :

is_path(A,B) :-
     arrow(A, C),
     is_path(C, B). 

Dấu phẩy thể hiện quan hệ “and” trong prolog. Ví dụ, có đường đi từ 1 đến 4 nếu có một mũi tên từ 1 đến 3 có đường đi từ 3 đến 4. Sau khi định nghĩa các quan hệ, chúng ta hoàn toàn có thể thực hiện truy vấn như mong muốn.

Lời kết

Qua bài hướng dẫn này, tất cả chúng ta đã làm quen với logic programming với hai ví dụ cơ bản. Đây là công cụ giúp ta giải những yếu tố tương quan đến logic. Mặc dù vậy, trong thực tiễn số lượng những mối quan hệ trong một yếu tố thường là rất lớn nên logic programming thường chỉ vận dụng cho bài toán có khoanh vùng phạm vi nhỏ. Nhưng tất cả chúng ta cũng không loại trừ năng lực cách tiếp cận này một ngày nào đó lại trở thành xu thế sau nhiều năm không được chăm sóc như những gì đã xả ra với mạng nơ ron tự tạo .

—–
” Logic Programming – Làm quen với một vài ví dụ, ” Trí tuệ tự tạo, Ngày xuất bản : 25/07/2020, URL : https://vh2.com.vn/lap-trinh/logic-programming-lam-quen-voi-mot-vai-vi-du/, Ngày truy vấn : 07/11/2022 .
Bạn muốn trích dẫn bài này : —–

  • Details: *

Source: https://vh2.com.vn
Category : Tin Học