Luận Văn: Nghiên Cứu Biểu Diễn Tri Thức trong Lập Trình Logic

Luận văn nghiên cứu chuyên sâu về các phương pháp biểu diễn tri thức trong lập trình logic. Khám phá các kỹ thuật và ứng dụng tiên tiến nhất.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sỹ khoa học

2006

75
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

MỞ ĐẦU

1. CHƯƠNG 1: CHƯƠNG TRÌNH LOGIC TỔNG QUÁT

1.1. Mở đầu

1.2. Câu trả lời

2. CHƯƠNG 2: LẬP TRÌNH LOGIC MỞ RỘNG

2.1. Biểu diễn tri thức sử dụng các chương trình logic mở rộng

2.2. Các chương trình logic phân biệt (Disjunctive Logic Programs)

2.3. Biểu diễn tri thức sử dụng chương trình logic phân biệt

2.4. Tìm câu trả lời cho truy vấn

3. CHƯƠNG 3: MÔI TRƯỜNG LẬP TRÌNH LOGIC

3.1. Giới thiệu

3.2. Ngôn ngữ của môi trường DLV

3.3. Cấu trúc một chương trình

3.4. Ví dụ

3.5. Ứng dụng DLV trong Java

3.5.1. Biểu diễn dữ liệu: Các lớp Predicate, Literal, Model và Program

3.5.2. Kiến trúc gói DLV: lớp Diane

4. CHƯƠNG 4: CÁC BÀI TOÁN MINH HOẠ

4.1. Bài toán N quân hậu

4.1.1. Phân tích bài toán

4.2. Bài toán Cây khung nhỏ nhất

4.2.1. Phân tích và cài đặt

4.2.2. Chương trình logic DLV

4.2.3. Cài đặt trên Java

KẾT LUẬN

TÀI LIỆU THAM KHẢO

PHỤ LỤC

Tóm tắt

I. Tổng Quan Lập Trình Logic Biểu Diễn Tri Thức Hiện Nay

Lập trình logic, một nhánh của trí tuệ nhân tạo (AI), nổi lên từ những năm 1970, dựa trên nền tảng logic hình thứcsuy diễn logic. Khác với lập trình thủ tục, lập trình logic mang tính khai báo (declarative programming), cho phép lập trình viên mô tả cái gì cần giải quyết thay vì giải quyết như thế nào. Ngôn ngữ Prolog là một ví dụ điển hình. Sự phát triển của lập trình logic được thúc đẩy mạnh mẽ bởi dự án Hệ thống Máy tính Thế hệ Thứ năm của Nhật Bản. Lập trình logic nhanh chóng được ứng dụng trong biểu diễn tri thức. Ưu điểm của cách tiếp cận này là tính độc lập với cách thức thực hiện cụ thể, khả năng thao tác và suy diễn dễ dàng. Tuy nhiên, việc đưa ra một cú pháp phù hợp cho các chương trình logic vẫn là một thách thức lớn. Luận văn này tập trung vào cú pháp và ngữ nghĩa của chương trình logic, bao gồm cả lập trình logic thông thường và mở rộng. Theo tài liệu gốc, "Cách tiếp cận logic cho biểu diễn tri thức dựa trên ý tưởng là chương trình máy tính được cung cấp các đặc tả logic của trí thức trong đó, do đó nó độc lập với bất kỳ cách thực hiện riêng biệt nào, với ngữ cảnh tự do, dễ dàng thao tác và suy diễn.". Các phương pháp mô hình hóa tri thức hiệu quả giúp xây dựng các hệ chuyên gia (expert system) và ứng dụng suy diễn tri thức trong nhiều lĩnh vực. Việc khai thác ưu nhược điểm của các phương pháp biểu diễn tri thức rất quan trọng để lựa chọn phương pháp phù hợp cho từng bài toán cụ thể.

1.1. Lịch Sử Phát Triển của Lập Trình Logic và Ứng Dụng AI

Lập trình logic bắt nguồn từ những nỗ lực tự động hóa suy diễn logic vào những năm 1950 và phát triển thành một lĩnh vực riêng biệt vào những năm 1970. Dự án Hệ thống Máy tính Thế hệ Thứ năm của Nhật Bản đóng vai trò quan trọng trong việc thúc đẩy sự phát triển của các ngôn ngữ lập trình logic. Prolog đã chứng minh tính thực tế và phổ biến của lập trình khai báo. Ngày nay, lập trình logic tiếp tục đóng vai trò quan trọng trong các ứng dụng trí tuệ nhân tạo, hệ chuyên gia và các hệ thống dựa trên tri thức khác. Khả năng biểu diễn tri thức một cách rõ ràng và suy diễn logic từ tri thức đó là những yếu tố then chốt trong sự thành công của lập trình logic trong lĩnh vực AI.

1.2. Vai Trò của Biểu Diễn Tri Thức trong Lập Trình Logic Hiện Đại

Biểu diễn tri thức là nền tảng của lập trình logic. Lập trình logic sử dụng các cấu trúc logic để biểu diễn các sự kiện, quy tắc và mối quan hệ trong một miền cụ thể. Cách biểu diễn này cho phép máy tính hiểu và suy luận về tri thức, từ đó giải quyết các vấn đề phức tạp. Các phương pháp biểu diễn tri thức như ontology, semantic web, và biểu diễn ngữ nghĩa được sử dụng rộng rãi trong lập trình logic để xây dựng các hệ thống thông minh có khả năng reasoning và học hỏi. Việc lựa chọn phương pháp biểu diễn tri thức phù hợp là yếu tố then chốt quyết định hiệu quả của một hệ thống lập trình logic. Trong bối cảnh trí tuệ nhân tạo ngày càng phát triển, biểu diễn tri thức đóng vai trò không thể thiếu trong việc tạo ra các hệ thống có khả năng hiểu và tương tác với thế giới một cách thông minh.

II. Thách Thức Trong Biểu Diễn Tri Thức Với Lập Trình Logic

Mặc dù lập trình logic mang lại nhiều ưu điểm trong biểu diễn tri thức, vẫn còn tồn tại nhiều thách thức. Một trong những thách thức lớn nhất là sự phức tạp trong việc biểu diễn các loại tri thức khác nhau, đặc biệt là tri thức không chắc chắn, tri thức không đầy đủ và tri thức thay đổi theo thời gian. Việc lựa chọn cú pháp phù hợp cho biểu diễn tri thức cũng là một vấn đề quan trọng. Cú pháp cần phải đủ biểu cảm để mô tả các khái niệm phức tạp, nhưng cũng phải đủ đơn giản để cho phép suy diễn logic hiệu quả. Ngoài ra, hiệu suất của các hệ thống lập trình logic có thể bị ảnh hưởng bởi kích thước lớn của cơ sở tri thức. Các kỹ thuật khai phá tri thứcknowledge modeling đóng vai trò quan trọng trong việc giải quyết các thách thức này. Cần có các phương pháp hiệu quả để quản lý, cập nhật và duy trì cơ sở tri thức một cách hiệu quả.

2.1. Khó Khăn Trong Biểu Diễn Tri Thức Không Chắc Chắn và Thay Đổi

Việc biểu diễn tri thức không chắc chắn và thay đổi theo thời gian là một thách thức lớn trong lập trình logic. Các phương pháp biểu diễn tri thức truyền thống thường gặp khó khăn trong việc xử lý các thông tin không chính xác hoặc thay đổi. Các nghiên cứu hiện nay tập trung vào việc phát triển các phương pháp mới để biểu diễn và suy luận với tri thức không chắc chắn, sử dụng các khái niệm như logic mờ (fuzzy logic), mạng Bayesian và các phương pháp suy diễn xác suất. Bên cạnh đó, việc xử lý tri thức thay đổi theo thời gian đòi hỏi các cơ chế cập nhật và duy trì tri thức một cách hiệu quả. Điều này đặc biệt quan trọng trong các ứng dụng như hệ chuyên giarobotics, nơi mà tri thức cần phải được cập nhật liên tục để phản ánh sự thay đổi của môi trường.

2.2. Vấn Đề Hiệu Suất Trong Lập Trình Logic Với Cơ Sở Tri Thức Lớn

Hiệu suất là một vấn đề quan trọng trong lập trình logic, đặc biệt khi làm việc với cơ sở tri thức lớn. Việc suy diễn logic trên một cơ sở tri thức lớn có thể tốn kém về mặt tính toán. Để giải quyết vấn đề này, các nhà nghiên cứu đã phát triển nhiều kỹ thuật tối ưu hóa, bao gồm indexing, caching và các thuật toán suy diễn hiệu quả hơn. Ngoài ra, việc sử dụng lập trình song songlập trình phân tán có thể giúp tăng tốc quá trình suy diễn logic. Tuy nhiên, việc lựa chọn kỹ thuật tối ưu hóa phù hợp phụ thuộc vào đặc điểm của cơ sở tri thức và yêu cầu của ứng dụng.

III. Cách Biểu Diễn Tri Thức Bằng Ngôn Ngữ Prolog Hiệu Quả Nhất

Prolog là một ngôn ngữ lập trình logic mạnh mẽ, được sử dụng rộng rãi trong trí tuệ nhân tạobiểu diễn tri thức. Nó dựa trên logic vị từ và cho phép lập trình viên mô tả các sự kiện, quy tắc và mối quan hệ một cách rõ ràng. Các chương trình Prolog bao gồm một tập hợp các mệnh đề (facts) và quy tắc (rules). Suy diễn logic trong Prolog được thực hiện bằng cách sử dụng thuật toán resolution. Để biểu diễn tri thức hiệu quả trong Prolog, cần xác định rõ các khái niệm và mối quan hệ trong miền ứng dụng. Sử dụng các vị từ (predicates) để biểu diễn các thuộc tính và mối quan hệ giữa các đối tượng. Xây dựng các quy tắc để mô tả các quy luật và ràng buộc trong miền ứng dụng. Việc sử dụng Prolog trong biểu diễn tri thức cho phép xây dựng các hệ thống hệ chuyên gia có khả năng suy luận và giải quyết vấn đề một cách hiệu quả.

3.1. Biểu Diễn Facts và Rules Trong Prolog Hướng Dẫn Chi Tiết

Trong Prolog, facts được sử dụng để biểu diễn các thông tin cơ bản, trong khi rules được sử dụng để biểu diễn các quy tắc và mối quan hệ. Facts được viết dưới dạng predicate(argument1, argument2, ...)., ví dụ: father(john, mary). Rules được viết dưới dạng head :- body1, body2, ..., ví dụ: grandfather(X, Z) :- father(X, Y), father(Y, Z). Để biểu diễn tri thức hiệu quả, cần lựa chọn predicates và arguments phù hợp để mô tả các khái niệm quan trọng trong miền ứng dụng. Rules nên được xây dựng một cách rõ ràng và ngắn gọn để dễ dàng hiểu và bảo trì. Việc sử dụng comments để giải thích ý nghĩa của facts và rules cũng rất quan trọng để tăng tính dễ đọc của chương trình Prolog.

3.2. Sử Dụng Thuật Toán Resolution Để Suy Diễn Logic Trong Prolog

Thuật toán resolution là cơ chế suy diễn logic chính trong Prolog. Nó được sử dụng để chứng minh các truy vấn (queries) bằng cách tìm kiếm các facts và rules phù hợp trong chương trình. Khi Prolog nhận được một truy vấn, nó sẽ cố gắng tìm một fact hoặc rule có head khớp với truy vấn. Nếu tìm thấy một rule, Prolog sẽ cố gắng chứng minh các body của rule. Quá trình này tiếp tục cho đến khi truy vấn được chứng minh hoặc không thể chứng minh. Để tăng hiệu quả của quá trình suy diễn, cần xây dựng các chương trình Prolog một cách cẩn thận, tránh các vòng lặp vô hạn và sử dụng các kỹ thuật tối ưu hóa.

IV. ASP Answer Set Programming Giải Pháp Biểu Diễn Tri Thức Tiên Tiến

Answer Set Programming (ASP) là một phương pháp lập trình khai báo, được sử dụng rộng rãi trong biểu diễn tri thức và giải quyết các bài toán tìm kiếm và tối ưu hóa. ASP cho phép biểu diễn các vấn đề một cách tự nhiên và trực quan bằng cách sử dụng các quy tắc và ràng buộc. Các giải pháp (answer sets) của chương trình ASP tương ứng với các mô hình khả thi của vấn đề. ASP được sử dụng trong nhiều lĩnh vực, bao gồm hệ chuyên gia, lập kế hoạch, chẩn đoánkhai phá tri thức. Các công cụ ASP như DLV (Datalog with Vel) và Clingo cung cấp các engine suy diễn hiệu quả để tìm kiếm các answer sets của chương trình.

4.1. Ưu Điểm của ASP Trong Biểu Diễn Tri Thức So Với Các Phương Pháp Khác

ASP có nhiều ưu điểm so với các phương pháp biểu diễn tri thức khác. Nó cho phép biểu diễn các vấn đề một cách tự nhiên và trực quan bằng cách sử dụng các quy tắc và ràng buộc. ASP hỗ trợ các khái niệm như phủ định (negation), lựa chọn (choice)tập hợp (aggregation), cho phép biểu diễn các vấn đề phức tạp một cách dễ dàng. Các công cụ ASP cung cấp các engine suy diễn hiệu quả để tìm kiếm các answer sets của chương trình. So với các phương pháp suy diễn logic truyền thống, ASP có khả năng xử lý các vấn đề có độ phức tạp cao hơn.

4.2. Ứng Dụng Thực Tế của ASP trong Hệ Chuyên Gia và Lập Kế Hoạch

ASP được sử dụng rộng rãi trong nhiều ứng dụng thực tế. Trong hệ chuyên gia, ASP được sử dụng để biểu diễn các tri thức và quy tắc của các chuyên gia. Trong lập kế hoạch, ASP được sử dụng để tìm kiếm các kế hoạch tối ưu để đạt được các mục tiêu cụ thể. ASP cũng được sử dụng trong các ứng dụng như chẩn đoán, khai phá tri thứcrobotics. Khả năng biểu diễn tri thức một cách rõ ràng và suy diễn logic hiệu quả làm cho ASP trở thành một công cụ mạnh mẽ để giải quyết các vấn đề phức tạp trong nhiều lĩnh vực.

V. DLV Datalog with Vel Môi Trường Lập Trình Logic Mạnh Mẽ

DLV (Datalog with Vel) là một hệ thống suy diễn logic mạnh mẽ, được sử dụng rộng rãi trong biểu diễn tri thức, khai phá tri thứchệ quản trị cơ sở dữ liệu. DLV hỗ trợ một ngôn ngữ lập trình khai báo, dựa trên Datalog, cho phép biểu diễn các vấn đề một cách tự nhiên và trực quan. DLV cung cấp các engine suy diễn hiệu quả để tìm kiếm các giải pháp của chương trình. DLV được sử dụng trong nhiều lĩnh vực, bao gồm hệ chuyên gia, lập kế hoạch, chẩn đoánquản lý dữ liệu.

5.1. Cấu Trúc và Ngôn Ngữ Lập Trình Của Môi Trường DLV

Ngôn ngữ của môi trường DLV dựa trên Datalog, một ngôn ngữ truy vấn cơ sở dữ liệu logic. Một chương trình DLV bao gồm một tập hợp các quy tắc (rules) và facts. Rules được viết dưới dạng head :- body1, body2, ..., trong đó head là một nguyên tử (atom) và body là một tập hợp các nguyên tử hoặc phủ định của các nguyên tử. Facts được viết dưới dạng atom.. DLV hỗ trợ các khái niệm như phủ định (negation), lựa chọn (choice)tập hợp (aggregation), cho phép biểu diễn các vấn đề phức tạp một cách dễ dàng.

5.2. Tích Hợp DLV Với Java Hướng Dẫn Sử Dụng và Ví Dụ Minh Họa

DLV có thể được tích hợp với Java để xây dựng các ứng dụng phức tạp hơn. Thư viện DLV cung cấp các API Java cho phép gọi engine suy diễn DLV từ chương trình Java. Việc tích hợp DLV với Java cho phép tận dụng sức mạnh của cả hai ngôn ngữ. DLV được sử dụng để biểu diễn tri thức và thực hiện suy diễn logic, trong khi Java được sử dụng để xây dựng giao diện người dùng và xử lý các tác vụ khác. Các ví dụ minh họa về việc tích hợp DLV với Java có thể tìm thấy trong tài liệu hướng dẫn sử dụng DLV.

VI. Ứng Dụng Biểu Diễn Tri Thức Giải Bài Toán N Quân Hậu Và Cây Khung Nhỏ Nhất

Biểu diễn tri thứclập trình logic có thể được sử dụng để giải quyết nhiều bài toán thực tế. Trong luận văn này, hai bài toán được trình bày: bài toán N-quân hậu và bài toán cây khung nhỏ nhất. Bài toán N-quân hậu là một bài toán kinh điển trong trí tuệ nhân tạo, yêu cầu đặt N quân hậu trên bàn cờ N x N sao cho không có hai quân hậu nào tấn công lẫn nhau. Bài toán cây khung nhỏ nhất là một bài toán trong lý thuyết đồ thị, yêu cầu tìm một cây khung của một đồ thị có trọng số sao cho tổng trọng số của các cạnh trong cây khung là nhỏ nhất. Cả hai bài toán này đều có thể được giải quyết hiệu quả bằng cách sử dụng biểu diễn tri thứclập trình logic.

6.1. Phân Tích và Cài Đặt Bài Toán N Quân Hậu Bằng DLV Java

Bài toán N-quân hậu có thể được giải quyết bằng cách sử dụng ASP và DLV. Bài toán được biểu diễn bằng cách sử dụng các quy tắc và ràng buộc để mô tả các vị trí hợp lệ của các quân hậu. Các answer sets của chương trình ASP tương ứng với các giải pháp của bài toán. DLV được sử dụng để tìm kiếm các answer sets của chương trình. Chương trình Java được sử dụng để giao tiếp với DLV và hiển thị các giải pháp cho người dùng.

6.2. Giải Bài Toán Cây Khung Nhỏ Nhất Sử Dụng Lập Trình Logic với DLV

Bài toán cây khung nhỏ nhất có thể được giải quyết bằng cách sử dụng lập trình logic và DLV. Bài toán được biểu diễn bằng cách sử dụng các quy tắc và ràng buộc để mô tả các cạnh trong đồ thị và các thuộc tính của cây khung. DLV được sử dụng để tìm kiếm cây khung có tổng trọng số nhỏ nhất. Chương trình Java được sử dụng để giao tiếp với DLV và hiển thị cây khung cho người dùng.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

11/09/2025
Luận văn nghiên cứu các phương pháp biểu diễn tri thức trong lập trình logic

Trích đoạn nội dung tài liệu

Chương I CHUONG TRINH LOGIC TONG QUAT 1.1 Mỡ đầu Ngôn ngữ A của một chương trình logic tổng quát Tï được xây dựng trên bảng chữ cải Á dược dịnh nghĩa như sau: Định nghia 1.1 Bang chit cai A bao gêm các loại ký hiệu sau: -_ Các biển -_ Cáo hằng số đối tượng (có thể gọi là hằng số) - Cac ky higu ham (function symbol) + Cae ky higu vi tit (predicate symbol) -_ Các liên kết logie: "nợf”, ”«< 7 - _ Cáo ký hiệu phân cách “( và ° a Trong do, not la lên kết logic được gọi là phủ dink ngdm (negation as /ailire), biển là xâu bật kỳ bao gồm các ký tự của bằng chữ cái và các chữ số, được bắt dầu bằng chữ cái viết hoa; hằng sở, ký hiệu hảm và kỷ hiệu vị từ là các xâu bắt đầu bởi chữ cái viết thường. Thông thường, sử dụng các chữ cái p, ạ,. cho các ký hiệu vị từ, 3, Ÿ, Z„. cho các ký hiệu ham va a, ð, e„.

cho các hằng số.2 Một toán hạng dược dịnh nghĩa như sau: HB(TT) được 1 Gu điển dưới dạng vị từ p và với một tập các vị từ .4, alemns(4) là một tập cơn các phân tử của /ƒB(TT) được biểu điển dưới dạng các vị từ thuộc 4 Ví dụ 1.1 Xét hương trình logie thông thường TÍ sau (a) P(e) Bie) z#(@))‹ p3) Ngôn ngữ của chương trình TT dựa trên bảng chữ cái bao gém vi tir p, ham f và các hằng số a, Avie. } " Một chương trình logic dược coi là một đặc tả cho phép xây dụng các lý thuyết có thể cho một thể giới quan còn các luật trong chương trình là những, ràng buộc mà các lý thuyết này cần phải thỏa mãn Ngĩt nghĩa của chương tình logic được phân biệt tùy theo cách định nghĩa tỉnh thỏa mãn các luật Trong luật văn này sẽ sử dụng ngữ ng]ấa về mỏ lành ôn định và các dạng mỡ rộng của nó. Với ngữ nghĩa nảy, các lý thuyết được xác định nhờ các tập nguyên tổ nên, gọi là các mỏ hình ên định cúa một chương trình. Ngữ nghĩa được định nghĩa như sau: Định nghĩa 1.6 Mô hìnhén định của một chương trình xác định TT là một tập con nhỏ nhật Ÿ của HB sao cho với mọi luật 4$ «©—44,.4„ của TT, nếu Á,.Ả,€8 thì 4 cổ MỞ ĐẦU T.ogic tỉnh toán được các rủ logic học đưa ra vào những nău 1950, dựa trên các kỹ thuật tự động hóa quá trình suy diễn logic.

Logie tỉnh toán dược phát triển thành lập trình logic vào những năm 1970. Từ đỏ hình thành một khái niệm quan trọng là lập trình khai bao (declarative programming) déi lập voi lập trình cầu tric (procedural progyamming). Về ý tưởng, các lặp trình viên chỉ cần đưa ra khøi báo cửa chương bình côn việc thực hiển cụ thể do máy tỉnh tự xác lập, trong khi dó việc thực hiện các chương trình hướng thủ tục lại dược xác lập cụ thể bởi lập trinh viên. Ngôn ngữ Prolog là một công cụ thực hiện rõ ý tưởng nảy.

Chương trình dich Prolog đầu tiền ra đời đã chứng tó đỏ là mệt ngôn ngữ thực hành và được phỏ biển trên toàn thể giới. Sự phát triển của lập trình logie chính thức bắt đầu vào cuối những năng 1970. Những phát triển xa hơn đạt được vào đâu thập kỷ 8Ó, bắt đần với sự xuất hiện của quyền sách đầu tiên nói về các co sở lập trình logic. Việc lựa chọn lập trình logic làm mô hình cơ sở cho dự án Các hệ thống máy tính đời thir § cia, Nhat.

Japanese Fifth Generation Computer Systems Projee) đã mũ đâu cho sự phát triển của gác ngôn ngĩữ lập tinh logie khac Nhớ khả năng khai bảo tự nhiên cúa lập trình logic, Prolog nhanh chóng trở thành một ứng cử viên cho việc biểu diễn trí thức. Tỉnh đẩy đủ của nó trở nên rõ ràng hơn khi môi liên hệ giữa cáo chương trình logie với cơ sở đữ liệu suy diễn được đưa ra vào giữa thập kỹ 80 Việc sử dụng lập trình logie và cơ sở đữ liệu suy diễn dễ biểu điền tri thức được gợi là “cách tiếp cận logic cho việc biểu diễn trì thức”. Cách tiếp cận này dựa trên ý tưởng là chương trinh máy tình được cung cắp các đặc thủ MỞ ĐẦU T.ogic tỉnh toán được các rủ logic học đưa ra vào những nău 1950, dựa trên các kỹ thuật tự động hóa quá trình suy diễn logic. Logie tỉnh toán dược phát triển thành lập trình logic vào những năm 1970.

Từ đỏ hình thành một khái niệm quan trọng là lập trình khai bao (declarative programming) déi lập voi lập trình cầu tric (procedural progyamming). Về ý tưởng, các lặp trình viên chỉ cần đưa ra khøi báo cửa chương bình côn việc thực hiển cụ thể do máy tỉnh tự xác lập, trong khi dó việc thực hiện các chương trình hướng thủ tục lại dược xác lập cụ thể bởi lập trinh viên. Ngôn ngữ Prolog là một công cụ thực hiện rõ ý tưởng nảy. Chương trình dich Prolog đầu tiền ra đời đã chứng tó đỏ là mệt ngôn ngữ thực hành và được phỏ biển trên toàn thể giới.

Sự phát triển của lập trình logie chính thức bắt đầu vào cuối những năng 1970. Những phát triển xa hơn đạt được vào đâu thập kỷ 8Ó, bắt đần với sự xuất hiện của quyền sách đầu tiên nói về các co sở lập trình logic. Việc lựa chọn lập trình logic làm mô hình cơ sở cho dự án Các hệ thống máy tính đời thir § cia, Nhat. Japanese Fifth Generation Computer Systems Projee) đã mũ đâu cho sự phát triển của gác ngôn ngĩữ lập tinh logie khac Nhớ khả năng khai bảo tự nhiên cúa lập trình logic, Prolog nhanh chóng trở thành một ứng cử viên cho việc biểu diễn trí thức.

Tỉnh đẩy đủ của nó trở nên rõ ràng hơn khi môi liên hệ giữa cáo chương trình logie với cơ sở đữ liệu suy diễn được đưa ra vào giữa thập kỹ 80 Việc sử dụng lập trình logie và cơ sở đữ liệu suy diễn dễ biểu điền tri thức được gợi là “cách tiếp cận logic cho việc biểu diễn trì thức”. Cách tiếp cận này dựa trên ý tưởng là chương trinh máy tình được cung cắp các đặc thủ Œ}— biến ltoán hạng, (ii) hằng số là toán hạng, (iÐ Mếu ƒlà một ký hiệu hàm bậc n và ñ.⁄,„ là các toán hang thi F (4-04) ofing là một toán hạng, u Định nghĩa 1.3 Mét toan hang được gọi là có tính chit nén (ground) nêu không có biển nào xuất hiền trong nó.4 Mét nguyên tố biểu diễn trên báng chit cai A Ja mét biéu thito c6 dang p(t,.,t,), trong do p là một ký hiệu vị từ trong A và #, là các toán hạng. Xiểu mọi z là toán hạng nên thì nguyễn tố này cũng được gợi là có tính. ta chat nên.

Một luật của chương trình dược biểu diễn dưới dạng ALS Ayo Ags MOE Aggy 01 A, ay trong đỏ, 4; là các nguyên lỔ. Về trải của luật được gọi phần đầu hay là kết luận, về phải của luật là phần thản hay là giả thiết, Một tập các luật tạo thành. một chương trình logic tổng quát (cởn được gọi là chương trình logic thông thường). Chương trình logic tổng quát không chứa nơi thì được gọi là chương trinh xác định Các biểu thức và luật không chứa biến thị được gọi là có tính.5 Không gian xác định terbrand biểu diễn trên ngôn ngĩt Á của chương trình TT, ký hiệu là AU (TT), là tập tái cỗ các loàn hạng riểu được biểu điển với các hàm và hằng số trong À.

Tập tất cả các nguyên tổ nên trang. ngôn ngữ của một chương trình II được dịnh nghĩa là #Z(IT) (cơ sở Herbrand của 1T). Với một vị từ p, alons(p) dược dịnh nghĩa là tập con của Mô hình ên dịnh của chương trình xác định [1 được ký hiệu lá a1) " Goi 11 là một chương trình logic tổng quát bất kỳ. Với mọi tập phần tử 3, dặt XI” là một chương trình thu được từ I[ bằng cách xỏa: ( — các luật có chứa not đvới Ác (ii) tat cd cdc norA trong các luật còn lại Ré ring, TT khéng chita not va Lon tại một mô hình ổn định đã định nghữa ở trên.

Nếu mô hinh én định nảy tring voi #, thì ta nói rằng Š là một mô hình ôn. T1 suy diễn ra một biểu thức ƒ (ký hiệu bởi T1 — ƒ ) nẻu ƒ là đúng trong mọi mỏ hình ôn định của HT. Ta cũng nói rắng câu trả lời cho một truy vẫn nên g là có nêu ø là đứng trong mọi mô hình ổn định của I1 (tức lả TIỊ- g), là không nếu —g là đứng trong mọi mô hình ốn định của I1 (tức là T= 4) và không xác định trong trường hợp còn lại.2 Xót ngôn ngữ chứa hại đối Lượng a và ð và một chương trình TT p(X)‹< mot g(X} g(a) Ta sẽ chỉ ra rằng tập S—{g(4). p(b)} là một mô hình ẩn định của II.

Xây dựng chương trình TI theo cách trên, ta có TT - {p(b)<—, g(2)<©} có một mỏ hình én dink trùng với 6. Do đó & chính là mmô hình ôn định của II Œ}— biến ltoán hạng, (ii) hằng số là toán hạng, (iÐ Mếu ƒlà một ký hiệu hàm bậc n và ñ.⁄,„ là các toán hang thi F (4-04) ofing là một toán hạng, u Định nghĩa 1.3 Mét toan hang được gọi là có tính chit nén (ground) nêu không có biển nào xuất hiền trong nó.4 Mét nguyên tố biểu diễn trên báng chit cai A Ja mét biéu thito c6 dang p(t,.,t,), trong do p là một ký hiệu vị từ trong A và #, là các toán hạng. Xiểu mọi z là toán hạng nên thì nguyễn tố này cũng được gợi là có tính. ta chat nên.

Một luật của chương trình dược biểu diễn dưới dạng ALS Ayo Ags MOE Aggy 01 A, ay trong đỏ, 4; là các nguyên lỔ. Về trải của luật được gọi phần đầu hay là kết luận, về phải của luật là phần thản hay là giả thiết, Một tập các luật tạo thành. một chương trình logic tổng quát (cởn được gọi là chương trình logic thông thường). Chương trình logic tổng quát không chứa nơi thì được gọi là chương trinh xác định Các biểu thức và luật không chứa biến thị được gọi là có tính.5 Không gian xác định terbrand biểu diễn trên ngôn ngĩt Á của chương trình TT, ký hiệu là AU (TT), là tập tái cỗ các loàn hạng riểu được biểu điển với các hàm và hằng số trong À.

Tập tất cả các nguyên tổ nên trang. ngôn ngữ của một chương trình II được dịnh nghĩa là #Z(IT) (cơ sở Herbrand của 1T).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ