1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức

98 33 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Chương Trình Logic Với Luật Giải Thích Trong Biểu Diễn Tri Thức
Tác giả Bùi Văn Phủ
Người hướng dẫn TS. Nguyễn Ngọc Hiếu
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2018
Thành phố Nghệ An
Định dạng
Số trang 98
Dung lượng 1,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngữ nghĩa của lớp chương trình này được thực hiện theo hướng tiếp cận của lý thuyết mô hình và được xác định bởi các tập trả lời của nó.. LẬP TRÌNH TẬP TRẢ LỜI ASP VỚI CÁC LUẬT GIẢI THÍ

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học: TS NGUYỄN NGỌC HIẾU

NGHỆ AN, 2018

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn khoa học của thầy TS Nguyễn Ngọc Hiếu

Các kết quả nêu trong luận văn là trung thực, có nguồn gốc rõ ràng, được trích dẫn đầy đủ và chưa từng công bố trong bất kỳ công trình khoa học nào

Ngày tháng năm 2018

Tác giả luận văn

Bùi Văn Phủ

Trang 4

Bản luận văn này được hoàn thành với sự động viên, giúp đỡ của bạn bè lớp cao học Công nghệ thông tin K24 Tôi xin bày tỏ lòng cảm ơn chân tình tới tất cả các bạn, những người đã giúp đỡ tôi khi gặp những khó khăn vướng mắc trong quá trình thực hiện luận văn

Ngày tháng năm 2018

Học viên

Bùi Văn Phủ

Trang 5

i

MỤC LỤC

DANH MỤC CÁC THUẬT NGỮ iii

DANH MỤC CÁC KÝ HIỆU iv

DANH MỤC CÁC TỪ VIẾT TẮT v

DANH MỤC CÁC BẢNG vi

DANH MỤC CÁC HÌNH vii

MỞ ĐẦU 1

1 Sự cần thiết của vấn đề nghiên cứu 1

2 Mục tiêu và nhiệm vụ nghiên cứu 3

2.1 Mục tiêu 3

2.2 Mục tiêu cụ thể 3

3 Đối tượng và phạm vi nghiên cứu 4

3.1 Đối tượng nghiên cứu 4

3.2 Phạm vi nghiên cứu 4

4 Nội dung nghiên cứu 5

5 Cấu trúc của luận văn 5

Chương 1 TỔNG QUAN VỀ LẬP TRÌNH LOGIC 6

1.1 MỘT SỐ KHÁI NIỆM CƠ SỞ CỦA NGÔN NGỮ BẬC NHẤT 6

1.2 CHƯƠNG TRÌNH LOGIC XÁC ĐỊNH 8

1.2.1 Cú pháp 8

1.2.2 Ngữ nghĩa 9

1.3 CHƯƠNG TRÌNH LOGIC THÔNG THƯỜNG 13

1.3.1 Cú pháp 13

1.3.2 Ngữ nghĩa 15

1.3.3 Một số tính chất và nhược điểm của mô hình bền vững 17

1.4 TIỂU KẾT CHƯƠNG 1 17

Chương 2 LẬP TRÌNH TẬP TRẢ LỜI ASP VỚI CÁC LUẬT GIẢI THÍCH 18 2.1 PHỦ ĐỊNH MẶC ĐỊNH VÀ PHỦ ĐỊNH MẠNH 19

2.2 CHƯƠNG TRÌNH LOGIC MỞ RỘNG VỚI TẬP TRẢ LỜI ASP 21

2.2.1 Cú pháp ASP 21

2.2.1.1 Literal điều kiện 21

2.2.1.2 Nguyên tố bản số và Literal bản số 22

2.2.2 Ngữ nghĩa tập trả lời ASP 23

Trang 6

ii

2.3 CÁC TÍNH CHẤT CỦA TẬP TRẢ LỜI 26

2.4 LUẬT GIẢI THÍCH CR TRONG LẬP TRÌNH LOGIC 27

2.4.1 Mô hình hệ thống động 27

2.4.2 Cú pháp CR 33

2.4.3 Ngữ nghĩa CR 35

2.5 TIỂU KẾT CHƯƠNG 2 38

Chương 3 CÀI ĐẶT MÔ PHỎNG CÁC BÀI TOÁN MINH HỌA VỚI CÁC LUẬT GIẢI THÍCH 39

3.1 CÀI ĐẶT CR-MODELS VÀ CHẠY DEMO ỨNG DỤNG 39

3.1.1 Cài đặt chương trình 39

3.1.2 Cấu trúc của một chương trình 40

3.1.3 Demo ứng dụng 41

3.2 BÀI TOÁN CHẨN ĐOÁN BỆNH Ở NGƯỜI (Medical Diagnostics) 44 3.2.1 Tìm hiểu một số bệnh thường gặp hằng ngày và các triệu chứng 45 3.2.2 Xây dựng bảng vị từ, các hằng, sự kiện, luật 51

3.2.3 Xây dựng chương trình Medical Diagnostics 57

3.2.4 Kết quả chạy chương trình 61

3.3 BÀI TOÁN CHẨN ĐOÁN LỖI KHỞI ĐỘNG MÁY PC (PC Diagnostics) 63

3.3.1 Thu thập các tri thức liên quan 65

3.3.2 Xây dựng các luật và sự kiện 72

3.3.3 Xây dựng chương trình PC Diagnostics 78

3.3.4 Kết quả chạy chương trình 82

3.4 TIỂU KẾT CHƯƠNG 3 85

KẾT LUẬN 86

1 Những kết quả đạt được 86

2 Hướng phát triển của đề tài 86

TÀI LIỆU THAM KHẢO 87

Trang 7

iii

DANH MỤC CÁC THUẬT NGỮ

Chương trình logic nền Ground program

Chương trình logic phân tầng Stratified Program

Chương trình logic ràng buộc bản số Cardinality Constraint Program

Điểm bất động nhỏ nhất Least fixpoint

Ngữ nghĩa mô hình bền vững Stable model semantics

Toán tử hệ quả trực tiếp The immediate consequence operator

Trang 9

v

DANH MỤC CÁC TỪ VIẾT TẮT

ASP Lập trình tập trả lời (Answer Set Programming)

CNTT Công nghệ thông tin

CR-Model Tập trả lời của chương trình logic mở rộng với luật giải

thích CR-Prolog Lập trình Prolog mở rộng với luật giải thích

CR-Rule Luật giải thích (Consistency-Restoring)

Trang 10

Bảng 3.9 Vị từ cho bài toán chẩn đoán lỗi khởi động máy PC 73 Bảng 3.10 Tên hằng chỉ định các nhóm hỏng hóc 74 Bảng 3.11 Kết quả cho bài toán chẩn đoán lỗi khởi động máy PC 82

Trang 11

vii

DANH MỤC CÁC HÌNH

Hình 2.1 Sơ đồ mạch điện mô tả các hành động 29

Hình 2.2 Chương trình πd 30

Hình 3.1 Giao diện chạy chương trình test1.cr 42

Hình 3.2 Giao diện chạy chương trình test1.cr với định

Trang 12

1

MỞ ĐẦU

1 Sự cần thiết của vấn đề nghiên cứu

Biểu diễn tri thức là một vấn đề rất quan trọng và được ứng dụng rất nhiều trong lĩnh vực công nghệ thông tin Để giao tiếp được với máy tính trong môi trường xử lý thông minh chúng ta cần một ngôn ngữ rõ ràng có khả năng thể hiện chính xác, dễ hiểu

Logic tính toán được các nhà logic học đưa ra vào những năm 1950, dựa trên các kỹ thuật tự động hóa quá trình suy diễn logic và đượ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 báo (declarative programming) đối lập với lập trình cấu trúc (procedural programming) Về ý tưởng, các lập trình viên chỉ cần đưa ra khai báo của chương trình còn việc thực hiện cụ thể do máy tính tự xác lập, trong khi đó việc thực hiện các chương trình hướng thủ tục lại được xác lập cụ thể bởi lập trình 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 dịch 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 logic chính thức bắt đầu vào cuối những năm

1970 và đạt được những thành tựu nhất định vào đầu thập kỷ 80 bắt đầu với

sự xuất hiện của quyển sách đầu tiên nói về các cơ sở lập trình logic Lập trình logic được lựa chọn làm mô hình cơ sở cho dự án các hệ thống máy tính đời thứ 5 của Nhật (Japanese Fifth Generation Computer Systems Project) và việc lựa chọn này đã mở đầu cho sự phát triển của các ngôn ngữ lập trình logic khác

Lập trình logic đã được phát triển mạnh mẽ trong những thập niên gần đây, nhờ khả năng khai báo tự nhiên của lập trình logic nó đã nhanh chóng trở thành một ứng cử viên cho việc biểu diễn tri thức và được ứng dụng chủ yếu

Trang 13

Trên thực tế, có nhiều bài toán chẩn đoán đòi hỏi giải thuật phức tạp Nếu sử dụng các chương trình tập trả lời ASP có thể phải gọi rất nhiều lần bộ kiểm tra tính thỏa mãn - là các suy luận tính toán trên tập kết quả của các chương trình logic Các lời gọi như thế đòi hỏi một lượng lớn các phép toán được tính đi tính lại một cách đáng kể (bao gồm cơ sở tri thức của toàn bộ chương trình) Chúng ta không có cách nào để chỉ rõ độ ưu tiên (preferences) giữa các chẩn đoán và vì vậy có thể phải loại bỏ các chẩn đoán không chắc xảy ra Để tránh những vấn đề này chúng ta mở rộng Prolog bởi các luật giải thích CR (Consistency Restoring) cùng với quyền ưu tiên của chúng Chúng

ta gọi ngôn ngữ mới là “CR-Prolog”

Ví dụ: Để chẩn đoán bệnh của một bệnh nhân, các triệu chứng đầu vào như nóng sốt, ho, sổ mũi, nhứt đầu, chóng mặt sẽ là nguyên nhân của rất nhiều loại bệnh khác nhau như cảm cúm, viêm họng, viêm phế quản,… Chúng ta sẽ khó xác định được loại bệnh nào nếu như không chỉ rõ được độ

ưu tiên của chúng, chẳng hạn như triệu chứng nóng sốt kèm theo sổ mũi thì

Trang 14

2.2 Mục tiêu cụ thể

Chương trình logic có nền tảng là ngôn ngữ bậc nhất (FOL) Hai lớp chương trình logic được xem xét là chương trình logic xác định và chương trình logic thông thường Cụ thể trong luận văn sẽ tìm hiểu một số khái niệm

cơ bản của ngôn ngữ bậc nhất; tìm hiểu cú pháp, ngữ nghĩa cùng với mối quan hệ của chúng Đây là những kiến thức cơ bản, làm tiền đề cho việc nghiên cứu ở các chương tiếp theo

Nghiên cứu về chương trình logic mở rộng với chương trình tập trả lời (ASP) Ngữ nghĩa của lớp chương trình này được thực hiện theo hướng tiếp cận của lý thuyết mô hình và được xác định bởi các tập trả lời của nó Tham khảo kết quả của 2 công trình nghiên cứu Clingo (bao gồm Gringo và Clasp) thông qua bộ chương trình Pottassco – hệ thống tạo tập trả lời cho chương trình logic của trường đại học Potsdam (Đức) và một số ứng dụng được minh họa và biểu diễn bằng chương trình logic này

Xuất phát từ công trình nghiên cứu của Marcello Balduccini và Michael Gelfond - Viện Khoa học máy tính trường Đại học Texas Tech (Mỹ) với bài Chương trình logic với luật giải thích (logic Programs with

Trang 15

4

Consistency-Restoring Rules) đã đưa ra một số khái niệm về một luật mới -

đó là một phần mở rộng của ngôn ngữ Prolog bằng các quy tắc khôi phục nhất quán cùng với các quyền ưu tiên Từ đây tôi tập trung nghiên cứu về cú pháp,

ý nghĩa của một ngôn ngữ mới CR-Prolog và cho thấy ngôn ngữ này có thể được sử dụng để biểu diễn tri thức và lập luận một cách nhanh chóng, hiệu quả hơn thông qua các bài toán minh họa cụ thể

3 Đối tượng và phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

(a) Nghiên cứu lý thuyết

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 lập trình logic, lập trình ASP, tìm hiểu về luật giải thích CR trong việc biểu diễn tri thức

(b) Nghiên cứu thực nghiệm

Bộ dữ liệu nghiên cứu là các mệnh đề, các luật logic được xây dựng từ các vị từ Trong luận văn này có sử dụng các bộ dữ liệu minh họa: lập cây gia

hệ, tìm đường đi, săn thú, đắm thuyền…

Nghiên cứu công cụ Clingo, Gringo giúp người dùng mô tả lại bài toán bằng ngôn ngữ của logic Dựa trên đó, máy tính sẽ tiến hành suy diễn tự động dựa vào những cơ chế suy diễn có sẵn (hợp nhất, quay lui và tìm kiếm theo chiều sâu) để tìm câu trả lời cho người dùng đưa ra một hay nhiều tập trả lời

Nghiên cứu công cụ CR-Model một ứng dụng mở rộng phát triển từ tính hợp nhất, quay lui của Prolog cùng với luật giải thích CR giúp người dùng mô tả, chẩn đoán và tìm ra các luật suy diễn theo yêu cầu

3.2 Phạm vi nghiên cứu

Luận văn chỉ tập trung nghiên cứu việc biểu diễn tri thức bằng chương trình logic và mở rộng với luật giải thích mà không mở rộng với những cơ chế

Trang 16

5

suy diễn khác nhằm giải quyết một số bài toán chẩn đoán trong thực tế nhất là lĩnh vực trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên

4 Nội dung nghiên cứu

Nội dung luận văn bao gồm phần mở đầu, ba chương nội dung, phần kết luận và hướng phát triển của đề tài

Chương 1: Trình bày những khái niệm cơ bản của chương trình logic,

ngữ nghĩa của chương trình logic thông thường

Chương 2: Trình bày cú pháp và ngữ nghĩa của chương trình logic

ASP theo hướng tiếp cận ngữ nghĩa tập trả lời cùng với luật giải thích CR

Chương 3: Cài đặt mô phỏng các bài toán minh họa với chương trình

CR-Model Các bài toán này được trình bày chi tiết từ việc biểu diễn bằng chương trình logic, chương trình logic mở rộng đến việc cài đặt và thực thi bằng hệ thống lập trình logic CR-Model

Phần kết luận nêu những kết quả đã đạt được và hướng phát triển của

đề tài

5 Cấu trúc của luận văn

Chương 1 TỔNG QUAN VỀ LẬP TRÌNH LOGIC

Chương 2 LẬP TRÌNH TẬP TRẢ LỜI ASP VỚI CÁC LUẬT GIẢI THÍCH Chương 3 CÀI ĐẶT MÔ PHỎNG CÁC BÀI TOÁN MINH HỌA VỚI CÁC LUẬT GIẢI THÍCH

KẾT LUẬN

TÀI LIỆU THAM KHẢO

Trang 17

6

CHƯƠNG 1 TỔNG QUAN VỀ LẬP TRÌNH LOGIC

Chương 1 trình bày các khái niệm cơ sở của chương trình logic Hai lớp chương trình logic được xem xét là chương trình logic xác định và chương trình logic thông thường Ngữ nghĩa của các lớp chương trình này cùng với mối quan hệ của chúng được trình bày chi tiết Đây là những kiến thức cơ sở,

làm tiền đề cho việc nghiên cứu ở các chương tiếp theo

1.1 MỘT SỐ KHÁI NIỆM CƠ SỞ CỦA NGÔN NGỮ BẬC NHẤT

Chương trình logic có nền tảng là ngôn ngữ bậc nhất (FOL), trong phần này chỉ nêu một số khái niệm cơ sở của FOL

Định nghĩa 1.1 (Bộ ký tự) Bộ ký tự bao gồm các lớp ký hiệu sau:

1 Hằng, thường ký hiệu là các chữ cái thường a, b, c,

2 Biến, thường ký hiệu bởi các chữ cái in hoa X, Y, Z,

3 Các ký hiệu hàm, thường ký hiệu bởi f, g, h,

4 Các ký hiệu vị từ, thường ký hiệu bởi p, q, r,

5 Các hằng vị từ: true, false

6 Các ký hiệu kết nối(phủ định), (tuyển), (hội), (suy ra)

7 Các ký hiệu lượng từ: (với mọi), (tồn tại)

8 Dấu ngoặc đơn trái (, dấu ngoặc đơn phải), dấu phẩy,

Mỗi ký hiệu hàm, ký hiệu vị từ có kèm theo một số tự nhiên xác định

để chỉ số các đối số tham gia cùng với ký hiệu hàm hoặc ký hiệu vị từ đó, gọi

là ngôi của chúng

Trang 18

7

Trên cơ sở bộ ký tự đã cho, người ta đưa ra định nghĩa về hạng thức Hạng thức là yếu tố quan trọng của công thức logic, được xây dựng từ các hằng, biến, hàm và được định nghĩa hình thức như sau:

Định nghĩa 1.2 (Hạng thức) Gọi A là bộ ký tự Hạng thức được định nghĩa đệ

qui như sau:

(i) Mỗi hằng trong A là một hạng thức,

(ii) Mỗi biến trong A là một hạng thức,

(iii) Nếu f là ký hiệu hàm n-ngôi trong A và t1, ,tn là các hạng thức thì f(t1, ,tn) là một hạng thức,

(iv) Hạng thức chỉ được sinh ra bởi các quy tắc trên

Một hằng được xem là ký hiệu hàm 0-ngôi Hằng và biến là các hạng thức nguyên tố, hạng thức nền là hạng thức không chứa biến

Định nghĩa 1.3 (Nguyên tố) Một nguyên tố có dạng p(t1,…,t n ), trong đó p là

ký hiệu vị từ n-ngôi và các đối t1, ,t n là các hạng thức Nguyên tố nền là

nguyên tố không chứa biến

Ví dụ 1.1 Để chỉ mối quan hệ cha/con ta có thể định nghĩa nguyên tố

father(X,Y), trong đó vị từ father là vị từ 2-ngôi và father(X,Y) để chỉ X là cha của Y

Định nghĩa 1.4 (Literal) Literal là một nguyên tố hoặc phủ định của một

nguyên tố Với p là một nguyên tố, lúc đó p được gọi là literal dương và p được gọi là literal âm

Trong phần tiếp theo sẽ trình bày cú pháp và ngữ nghĩa của chương trình logic xác định – đây là lớp chương trình logic đơn giản nhất

Trang 19

thân của quy tắc, dấu phẩy ký hiệu thay cho phép hội logic ()

Trong quy tắc (1), nếu n = 0 thì nó được gọi là sự kiện (fact), nghĩa là quy tắc có dạng: a , đó là quy tắc với thân rỗng, ký hiệu  có thể bỏ qua

Ví dụ 1.2 Xem chương trình logic xác định sau để định nghĩa số tự nhiên

r1: nat(0)

r2: nat(succ(X)) nat(X)

Trong chương trình logic này thì succ là ký hiệu hàm 1-ngôi và succ(X)

= X+1 với X  tập số tự nhiên , nguyên tố nat(X) để chỉ X là một nguyên tố

tự nhiên Quy tắc r1 có ý nghĩa 0 là một số tự nhiên và r2 là quy tắc với ý

nghĩa nếu X là số tự nhiên thì succ(X) cũng là số tự nhiên

Định nghĩa 1.6 (Vũ trụ/Cơ sở) Cho P là chương trình logic xác định

Vũ trụ Herbrand của P, ký hiệu U P, là tập các hạng thức nền được xây

dựng từ các hằng và các ký hiệu hàm trong P

Cơ sở Herbrand của P, ký hiệu B P, là tập các nguyên tố nền được xây

dựng từ các vị từ trong P có đối là các hạng thức nền trong vũ trụ Herbrand UP

Ví dụ 1.3 Xét chương trình logic xác định P ở ví dụ 1.2:

Trang 20

9

Vũ trụ Herbrand của P là:

U P = {0, succ(0), succ(succ(0)), succ(succ(succ(0))), }

Cơ sở Herbrand của P là:

B P = {nat(0), nat(succ(0)), nat(succ(succ(0))), }

Một số thể hiện Herbrand của P là:

I1 ={nat(0)}

I2 = {nat(0), nat(succ(0))}

I3 = {nat(succ n (0)) | n  {0, 1, 2,…}}

I4 = BP

Định nghĩa 1.7 (Quy tắc nền) Một quy tắc nền của quy tắc C là một quy tắc

C’ nhận được từ C bằng cách thay thế các biến trong C bởi các hạng thức nền trong vũ trụ Herbrand U P Ký hiệu ground(C) là tập tất cả quy tắc nền của C

và đặt:

ground(P) =

1.2.2 Ngữ nghĩa

Định nghĩa 1.8 (Thể hiện/Mô hình) Cho P là chương trình logic xác định

Một thể hiện Herbrand (hoặc đơn giản là thể hiện) của P là một tập con tùy ý của cơ sở Herbrand BP của P

Một thể hiện I của P là mô hình của P nếu mọi quy tắc của P là đúng theo thể hiện I

Ví dụ 1.4 Xét các thể hiện I1, I2, I3, I4 của chương trình logic xác định P trong

ví dụ 1.2, rõ ràng I1 không phải là mô hình của P vì mặc dầu I1 là mô hình của

quy tắc nat(0) nhưng I1 không phải là mô hình của quy tắc r2 vì tồn tại quy tắc

Trang 21

10

nền nat(succ(0)) nat(0) của r2 mà I1 không phải là mô hình của quy tắc nền

này Cũng vậy, I2 cũng không phải là mô hình của P vì quy tắc tồn tại quy tắc

nền:

nat(succ(succ(0))) nat(succ(0)) của r2 mà I2 không phải là mô hình của nó.Tuy nhiên, I3 là mô hình của P Ta

có I3 là mô hình của r1 I3 cũng là mô hình của r2 Thật vậy, xét quy tắc:

nat(succ(t)) nat(t)

là một quy tắc nền nào đó của quy tắc r2, trong đó tU P Rõ ràng quy tắc nat(succ(t)) nat(t) đúng vì nat(t) và nat(succ(t)) đều thuộc I3 Vậy I3 là mô

hình của P Ta cũng có ngay I4 là mô hình của P

Định nghĩa 1.9 (Mô hình nhỏ nhất) Cho P là chương trình logic xác định, M

là mô hình nhỏ nhất của P nếu M N, với mọi mô hình N của P

Định lý 1.1[2] Mọi chương trình logic xác định đều có mô hình nhỏ nhất, ký

hiệu M P là mô hình nhỏ nhất của P

Định nghĩa 1.10 (Ngữ nghĩa chương trình logic xác định) Cho P là chương

trình logic xác định, ngữ nghĩa của P là mô hình nhỏ nhất M P của P

Ví dụ 1.5 Xem chương trình logic P :

r1 : co_the_nha_toan_hoc(X) nha_vat_ly(X)

r2 : nha_vat_ly(einstein)

Quy tắc r1 có ý nghĩa là một nhà vật lý có thể là nhà toán học Quy tắc r2 nói

rằng einstein là nhà vật lý Mô hình nhỏ nhất của P là :

M P = {nha_vat_ly(einstein),co_the_nha_toan_hoc(einstein)}

Trang 22

11

Mô hình nhỏ nhất M P có thể tính được bằng cách sử dụng toán tử hệ quả trực tiếp Ta có định nghĩa sau:

Định nghĩa 1.11[2] (Toán tử hệ quả trực tiếp) Cho P là chương trình logic

2 là tập các tập con của cơ sở Herbrand B P TP được gọi là toán tử

hệ quả trực tiếp trên B P

2

Định lý 1.2[2] Cho P là chương trình logic xác định Lúc đó:

1 Toán tử TP đơn điệu và có điểm bất động nhỏ nhất, ký hiệu là lfp(TP),

Trang 23

duong_di(X,Z) canh(X,Y) , duong_di(Y,Z)

trong đó nguyên tố canh(X,Y) để chỉ có một cạnh từ X đến Y và duong_di(X,Y)là nguyên tố để chỉ có một đường đi từ X đến Y Quy tắc thứ nhất nói rằng nếu có một cạnh từ X đến Y thì có một đường đường đi từ X đến

Y Ý nghĩa quy tắc thứ hai là nếu có một cạnh từ X đến Y và một đường đi từ

Y đến Z thì có một đường đi từ X đến Z Giả sử có các quy tắc đơn vị:

canh(1,2) , canh(2,3) , canh(3,4) , canh(4,5)

Trang 24

13

1.3 CHƯƠNG TRÌNH LOGIC THÔNG THƯỜNG

Các chương trình logic xác định biểu diễn cho tri thức xác định và cho

phép mô hình hóa khá nhiều bài toán khác nhau, các quy tắc trong chương trình mô tả các đối tượng xác định và mối quan hệ giữa chúng Các quan hệ này được thể hiện rõ trong mô hình nhỏ nhất - chứa các nguyên tố nền là hệ quả logic của chương trình Tuy nhiên, có nhiều trường hợp đòi hỏi một cấu trúc để mô hình hóa khái niệm phủ định Phủ định là một khái niệm ngôn ngữ

tự nhiên và thường gặp trong nhiều tình huống thực tế

1.3.1 Cú pháp

Định nghĩa 1.12 (Chương trình logic thông thường) Chương trình logic

thông thường là một tập hữu hạn khác rỗng các quy tắc có dạng:

a b1, …, b m, not c1, …, not cn trong đó n, m 0, a và b i , c j là các nguyên tố

Chú ý rằng thân quy tắc chứa các lietral phủ định not c1,…, notcn Literal

not a sẽ được xem là sai nếu giá trị chân lý của a không được chứng minh

một cách hữu hạn thông qua phép hợp giải SLD[2] Vì vậy phủ định not còn

được gọi là phủ định do thất bại (negation as fairlure) hoặc phủ định mặc định

(default negation) Để ý rằng phép phủ định trong logic cổ điển, còn gọi là phủ định mạnh (strong negation), ký hiệu là 

Đối với chương trình logic thông thường, khi các quy tắc có chứa phủ định not ở thân thì ngữ nghĩa của nó trở nên phức tạp hơn nhiều Lúc này chương trình có thể có nhiều mô hình cực tiểu và không có mô hình nhỏ nhất Chẳng hạn, xem ví dụ sau:

Ví dụ 1.8 Xem chương trình logic thông thường P gồm các quy tắc sau:

dan_ong(Dung)

Trang 25

Để giải quyết vấn đề ngữ nghĩa của chương trình logic thông thường,

đã có nhiều tiếp cận khác nhau, trong đó hướng tiếp cận mô hình bền vững[5]

đã và đang được thừa nhận rộng rãi Trong phần tiếp theo sẽ trình bày chi tiết hướng tiếp cận này Trước hết ta có một số khái niệm sau:

Định nghĩa 1.13[6] (Phép biến đổi Gelfond - Lifschitz) Cho P là chương

trình logic thông thường và I là một thể hiện của P Phép biến đổi Gelfond - Lifschitz của P theo I sẽ biến đổi P thành chương trình ký hiệu là P I bằng cách thực hiện:

1 Loại bỏ khỏi P tất cả các quy tắc chứa literal not A, với A I

2 Loại bỏ các literal not A trong thân của các quy tắc còn lại

Để ý rằng nếu A I thì thân quy tắc có chứa literal not A không thể trở thành đúng, vì vậy có thể loại bỏ quy tắc này Mặt khác, nếu A I thì not A

có thể giả sử là đúng và được loại bỏ khỏi thân quy tắc chứa nó

Rõ ràng P I là chương trình không có phủ định, nó là chương trình logic

xác định, vì vậy P I

có mô hình nhỏ nhất, ký hiệu a(P I )

Ví dụ 1.9 Cho P là chương trình logic gồm các quy tắc:

a not b

Trang 26

15

b not a

c a, not b Xét thể hiện M1 = {a, c} Lúc đó M1

Định nghĩa 1.14[6] (Mô hình bền vững) Thể hiện I của chương trình logic

P được gọi là mô hình bền vững của P nếu I là mô hình nhỏ nhất của P , I nghĩa là I = a( I

Xét M2 = {s} Khi đó, M2

P gồm các quy tắc: s và f s

Trang 27

16

Mô hình nhỏ nhất của M2

P là {s, f} M2 Vì vậy M2 không là mô hình

bền vững của P

Định lý 1.3[6] Cho P là chương trình logic thông thường Lúc đó mọi mô

hình bền vững của P đều là mô hình cực tiểu của P

Để ý là mô hình cực tiểu của chương trình logic chưa hẳn là mô hình bền vững Xem ví dụ sau:

Ví dụ 1.11 Xét chương trình logic thông thường P gồm các quy tắc:

p(a)

r(X) p(X), not q(X)

Lúc đó P có 2 mô hình cực tiểu là M1 = {p(a), r(a)} và M2 = {p(a), q(a)} Trong đó chỉ có M1 là mô hình bền vững của P còn M2 thì không phải

Định nghĩa 1.15 (Ngữ nghĩa mô hình bền vững) Ngữ nghĩa mô hình bền vững

của chương trình logic P được xác định bởi tập các mô hình bền vững của P

Một nguyên tố nền A của P là đúng dưới ngữ nghĩa mô hình bền vững nếu A thuộc vào tất cả mô hình bền vững của P

Ví dụ 1.12 Xét chương trình logic P gồm các quy tắc:

Trang 28

1.3.3 Một số tính chất và nhược điểm của mô hình bền vững

Mặc dù có mô hình bền vững có những thuận lợi so với các tiếp cận ngữ nghĩa trước đây, ngữ nghĩa mô hình bền vững vẫn có một số nhược điểm quan trọng:

- Trước hết, có một số chương trình không có mô hình bền vững

Chẳng hạn, xét chương trình P = {a ← not a} Chương trình này không có

Trang 29

18

CHƯƠNG 2 LẬP TRÌNH TẬP TRẢ LỜI ASP

VỚI CÁC LUẬT GIẢI THÍCH

Trong chương 1 đã trình bày về lớp chương trình logic xác định với ngữ nghĩa mô hình nhỏ nhất và lớp chương trình logic thông thường có chứa phủ

định mặc định (not) với ngữ nghĩa mô hình bền vững Trong chương 2 tiếp

tục trình bày việc mở rộng các chương trình logic thông thường – bằng cách cho phép có thêm một loại phủ định khác - phủ định mạnh, còn gọi là phủ định rõ (ký hiệu là ) và lớp chương trình như vậy được gọi là chương trình logic mở rộng (ELP) Ngữ nghĩa của lớp chương trình này được thực hiện theo tiếp cận của lý thuyết mô hình và được xác định bởi các tập trả lời của

nó Định nghĩa ngữ nghĩa tập trả lời (answer set semantics) của lớp chương trình logic mở rộng này

Có ba mở rộng của các chương trình logic thông thường để dẫn đến khái niệm lập trình tập trả lời:

(i) Ràng buộc, là các quy tắc có phần đầu rỗng, chẳng hạn:

canh(X,Y), vang(X), vang(Y)

để buộc các nút liền kề trong một đồ thị không được phép có màu vàng; (ii) Phủ định mạnh (hoặc phủ định cổ điển) ở các nguyên tố, chẳng hạn

docthan(Mai) với ý nghĩa là Mai được biết chắc chắn là độc thân;

(iii) Các quy tắc tuyển, nghĩa là cho phép tuyển () được xuất hiện trong đầu quy tắc, chẳng hạn:

nam(X) nu(X) nguoi(X)

với ý nghĩa người chỉ có thể là nam hoặc nữ

Trang 30

19

Các chương trình cho phép chứa cả phủ định mạnh và phủ định mặc định được gọi là chương trình logic mở rộng (ELP – Extended Logic Program) và nếu các ELP cho phép có các quy tắc tuyển

2.1 PHỦ ĐỊNH MẶC ĐỊNH VÀ PHỦ ĐỊNH MẠNH

Trong các chương trình logic thông thường các thông tin phủ định là tiềm ẩn, nghĩa là nó không thể hiện một cách rõ ràng là sai và một nguyên tố nền sẽ được giả định sai nếu không có lý do gì để tin rằng nó là đúng Điều này là được mong muốn trong một số trường hợp Chẳng hạn, trong một cơ sở

dữ liệu chứa thông tin về kết nối các chuyến bay, người ta muốn ngầm định rằng sự vắng mặt của một kết nối trong cơ sở dữ liệu có nghĩa là không có kết nối như vậy tồn tại Tuy nhiên đây là một hạn chế nghiêm trọng trong các

trường hợp khác Ngữ nghĩa tự nhiên của not a là “nếu a không thể được

chứng minh là đúng (được dẫn xuất) bằng cách dùng các mệnh đề của chương

trình thì mặc định not a được xem là đúng” Nhưng điều này là khác với “biết chắc rằng a sai” và được biểu diễn bởi a Ký hiệu để chỉ phủ định mạnh hoặc phủ định rõ Ta xem ví dụ sau để phân biệt giữa phủ định mạnh và phủ

định mặc định:

Ví dụ 2.1 Giả sử ta đã có quy định: “Ở tại vị trí đường sắt giao nhau, có thể đi

bộ băng qua đường sắt nếu không có chuyến tàu nào đến” và có đối tượng A đang đứng ở vị trí đường sắt giao nhau L nào đó, A muốn đi bộ băng qua

đường sắt Có thể mã hóa điều này bằng hai mệnh đề sau:

dibo vitri(A,L), duongsat(L), not tauhoa(L) (1)

dibo vitri(A,L), duongsat(L), tauhoa(L) (2)

Nếu sử dụng mệnh đề (1) thì A không nghĩ rằng tauhoa(L) là đúng, lúc

đó A sẽ quyết định đi bộ băng qua đường sắt mặc dầu A không biết chắc là

Trang 31

20

không có chuyến tàu nào đến Tri thức của A có thể cập nhật lại, nếu ta thêm vào sự kiện tauhoa(L) đúng thì A sẽ từ chối đi bộ qua đường sắt

Còn nếu dùng mệnh đề (2) thì A chỉ có thể đi bộ băng qua đường sắt nếu

A biết chắc chắn là không có chuyến tàu nào đến Rõ ràng việc quyết định của

A sẽ “an toàn” khi dùng mệnh đề (2) Tuy nhiên mệnh đề (1) lại phản ánh rõ ràng về tri thức của A là không thể biểu diễn trạng thái của thế giới một cách

đầy đủ

Có một cách để biểu diễn thông tin âm bằng cách dùng nguyên tố phủ định mạnh, trong đó chỉ rõ các sự kiện trong cơ sở tri thức, chẳng hạn, sự kiện

broken(battery) để chỉ battery là không bị hỏng Nếu tri thức này được dùng

để kết luận broken(battery) trong một mệnh đề khác thì có thể dẫn đến sự

không nhất quán và dẫn đến việc loại bỏ tất các mô hình dựa trên cơ sở tri thức đó

Một áp dụng có ích đối với phủ định mạnh là kết hợp với phủ định mặc

định để biểu diễn các mệnh đề mặc định, chẳng hạn ta có thể biểu diễn mệnh

đề mặc định

flies(X) bird(X), not flies(X)

với ý nghĩa “theo ngầm định, mọi con chim đều bay được”

Hoặc với phát biểu: "Nếu người lái xe không chắc chắn tàu hỏa không đến gần thì ông ấy nên đợi” sẽ được biểu diễn một cách tự nhiên:

wait  not  train

Một lý do khác để giới thiệu dạng phủ định mạnh trong các chương trình logic liên quan đến sự đối xứng giữa các thông tin khẳng định và phủ định Điều này đặc biệt quan trọng khi những thông tin phủ định dễ dàng biểu diễn hơn thông tin khẳng định Trước tiên, người ta biểu diễn thông tin phủ định và

Trang 32

21

sau đó thông tin khẳng định là tương ứng với phần bù của nó Để thực hiện điều này rõ ràng hơn, xem ví dụ:

Ví dụ 2.2 Xem việc mô tả một đồ thị có hướng dựa vào nguyên tố arc(X, Y)

để biểu diễn có một cung trong đồ thị từ đỉnh X đến đỉnh Y Bây giờ giả sử

rằng ta muốn xác định các đỉnh kết thúc Rõ ràng, đây trường hợp mà các thông tin phần bù dễ dàng biểu diễn hơn, nghĩa là nó dễ dàng hơn nhiều để xác định đỉnh không phải là đỉnh kết thúc Bằng cách sử dụng dạng phủ định mạnh kết hợp với dạng phủ định mặc định, có thể dễ dàng nói rằng các đỉnh kết thúc là những đỉnh không phải không kết thúc và điều này được biểu diễn bởi các mệnh đề:

terminal(X) arc(X, Y) terminal(X) not terminal(X)

2.2 CHƯƠNG TRÌNH LOGIC MỞ RỘNG VỚI TẬP TRẢ LỜI ASP 2.2.1 Cú pháp ASP

Cú pháp của chương trình logic mở rộng với ràng buộc bản số vẫn dựa trên nền tảng của ngôn ngữ logic bậc nhất và có bổ sung thêm một số khái niệm cần thiết Ta có các định nghĩa sau đây:

2.2.1.1 Literal điều kiện

Một literal điều kiện có dạng:

trong đó L là literal, gọi là literal chính và A là nguyên tố, gọi là điều kiện

Ý nghĩa của literal điều kiện là nếu A đúng thì L nhận được và nếu ngược lại thì L được bỏ qua Một literal điều kiện nền về cơ bản tương đương với một hội L∧ A

Trang 33

22

Đối với literal điều kiện = L : A, ta ký hiệu lit() = L, cond() = A lần

lượt để chỉ literal và điều kiện tương ứng

Ví dụ 2.3 Literal điều kiện chutrinhHamilton(X,Y) : canh(X,Y) biểu diễn tập

các nguyên tố {chutrinhHamilton(a,b) | canh(a,b) là đúng}

2.2.1.2 Nguyên tố bản số và Literal bản số

Một nguyên tố bản số C có dạng:

trong đó b là hạng thức và S là tập literal điều kiện

Ý nghĩa của nguyên tố bản số C trong (2.2) là nguyên tố bản số C đúng nếu

có ít nhất b literal điều kiện trong S là đúng

Ví dụ 2.4 Nguyên tố bản số Card(1, dinhcomau(X, C): mausac(C)) đúng nếu

có đúng 1 đỉnh X được tô màu C

Một nguyên tố bản số C cũng có thể có dạng:

trong đó S1, , Sn là các tập literal điều kiện, L và U lần lượt là các chặn dưới

và chặn trên L, U có thể không viết, trong trường hợp này giá trị 0 thay cho L

Một literal bản số hoặc là một nguyên tố bản số C hoặc phủ định của

nó, ký hiệu not(C)

Một nguyên tố bản số được gọi là nguyên tố bản số đơn giản nếu b là một số nguyên Lưu ý có thể viết b S thay cho Card (b, S)

Trang 34

23

Ví dụ 2.6 Nguyên tố bản số 1{chon(X) : dinh(X)}1 là đúng khi có chính xác

một nguyên tố chon(v) là đúng nếu dinh(v) đúng

Card(2, {a(X) : d(X)}) hay 2{a(X) : d(X)}2 là nguyên tố bản số đơn giản nhưng Card(t + 1, {a(X) : d(X)}) thì không phải

Định nghĩa 2.2 (Biểu thức) Một biểu thức là một công thức hoặc một hạng

thức

Ký hiệu Var(E) để chỉ tập hợp các biến xuất hiện trong một biểu thức E Một biểu thức E là nền nếu và chỉ nếu Var (E) =

Ví dụ 2.7 Cho nguyên tố A=a(X, Y, X+Z), ta có Var(A)={X, Y}

2.2.2 Ngữ nghĩa tập trả lời ASP

Định nghĩa 2.3 Một chương trình logic mở rộng (ELP) là một tập hữu hạn

các quy tắc có dạng:

l0 l1, ,lm, not lm+1, ,not ln (2.3)

trong đó n  1, l0 là literal hoặc false và tất cả các li là các literal, not là ký

hiệu của phủ định mặc định Literal mở rộng là một biểu diễn có dạng l hoặc not l Trong quy tắc (2.3) nếu l0 là false thì nó được gọi là một ràng buộc và false có thể bỏ qua

Trừ khi có quy định khác, ta giả sử các literal trong quy tắc (2.3) đều là literal nền

Trong chương 2 sử dụng một số ký hiệu sau đây:

Trang 35

lit(P) là tập tất cả các literal nền được xây dựng từ các vị từ trong P

Định nghĩa 2.4 Cho P là chương trình logic mở rộng, X là một tập các literal

nền Lúc đó l lit(P) là đúng trong X nếu l X; l là sai trong X nếu ;

ngược lại l là chưa biết False là sai trong X

Ngữ nghĩa tập trả lời của chương trình logic mở rộng P là một tập các tập trả lời, đó là một tập nhất quán các literal nền của P Định nghĩa chính xác

các tập trả lời sẽ được thực hiện trước hết đối với chương trình logic mở rộng

không chứa phủ định mặc định not Ta nói rằng một tập các literal nền X của

P là đóng trong P nếu với mọi quy tắc head body của P thì head đúng trong X khi body đúng trong X

Định nghĩa 2.5 (Tập trả lời – phần 1) Cho P là chương trình logic mở rộng,

không chứa ký hiệu phủ định not và X là một tập các litral nền của P X được gọi là tập trả lời của P nếu X là tập cực tiểu trong tập các tập đóng của P

Rõ ràng mọi chương trình logic mở rộng mà không chứa phủ định mặc định sẽ có nhiều nhất một tập trả lời Các định nghĩa sau để mở rộng định nghĩa trên đối với chương trình logic tùy ý

Định nghĩa 2.6 Cho P là chương trình logic mở rộng bất kỳ, X là tập các

literal nền của P Thu gọn của P theo X, ký hiệu P X là tập các quy tắc:

l0 l1, ,lm

đối với mọi quy tắc có dạng (1) của P sao cho lm+1, ,ln X

Như vậy P X là chương trình không chứa phủ định mặc định

Trang 36

25

Định nghĩa 2.7 (Tập trả lời – phần 2) Cho P là chương trình logic mở rộng

và X là một tập các literal nền của P X được gọi là tập trả lời của P nếu X là tập trả lời của chương trình thu gọn P X

Định nghĩa 2.8 Chương trình logic P suy dẫn literal nền l, ký hiệu P ⊨ l, nếu

l thuộc mọi tập trả lời của P Câu trả lời của P đối với truy vấn l là Yes nếu P

⊨ l , no nếu P , ngoài ra là unknown

Định nghĩa này còn được xem là giả thiết thế giới đóng (CWA) đối với chương trình logic mở rộng

Ví dụ 2.8 Xem chương trình logic P như sau:

p(a) not q(a)

p(b) not q(b)

q(a)

Dùng định nghĩa của tập trả lời, dễ thấy P chỉ có một tập trả lời là S = {q(a), p(b)} Như vậy đối với truy vấn q(a) thì câu trả lời là yes và truy vấn q(b) là unknown

Nếu ta thêm vào chương trình P quy tắc sau:

Ví dụ 2.10 Xem chương trình sau:

p(a)  not  p(a)

p(a) not p(a)

Trang 37

Mệnh đề 2.1 Với mọi tập trả lời S của chương trình logic P:

(i) Với mọi hiện hành nền của quy tắc có dạng (1) của P, nếu

Mệnh đề tiếp theo cho ta cách thức để thu hẹp một chương trình logic

mở rộng về chương trình logic thông thường, nghĩa là chương trình không chứa phủ định  Ta cần đến ký hiệu sau đây:

Đối với vị từ p xuất hiện trong P, gọi p’ là vị từ mới cùng ngôi với p Nguyên tố p’( ) được gọi là dạng dương của literal âm p( ) Như vậy mọi literal dương là dạng dương của chính nó Dạng dương của literal l được ký hiệu là l+, ký hiệu P+ là chương trình logic nhận được từ P bằng cách thay thế mỗi quy tắc có dạng: l0 l1, ,lm, not lm+1, ,not ln

bởi quy tắc:

Và thêm quy tắc:  p( ), p’( )

Trang 38

27

Đối với mọi nguyên tố p( ) của P Đối với mọi tập S các literal, ký hiệu

S+ là tập các dạng dương của các phần tử của S

Mệnh đề 2.3 Một tập nhất quán S các literal nền của chương trình logic mở

rộng P là tập trả lời của P nếu và chỉ nếu S+ là tập trả lời của P+

Mệnh đề 2.2 đưa ra cách thức đơn giản để định giá các câu truy vấn đối

với chương trình logic mở rộng Để nhận được câu trả lời đối với truy vấn p,

ta sẽ thực hiện truy vấn p và p’ trên chương trình P+ Nếu câu trả lời của

P+đối với p là yes thì câu trả lời của P đối với p là yes Nếu câu trả lời của

P+đối với p’ là yes thì câu đối với p là no Ngoài ra, câu trả lời đối với p là unknown

2.4 LUẬT GIẢI THÍCH CR TRONG LẬP TRÌNH LOGIC

Trong phần này, tôi trình bày về một vấn đề mở rộng của ngôn ngữ Prolog bằng các luật giải thích cùng với các quyền ưu tiên của chúng, đưa ra ý nghĩa của ngôn ngữ mới - CR-Prolog và cho thấy ngôn ngữ này có thể được

sử dụng để giải thích một số bài toán một cách nhanh chóng, hiệu quả

2.4.1 Mô hình hệ thống động

Đối với ngôn ngữ Prolog, có thể tóm tắt các ý tưởng cơ bản của nó dựa trên mô hình một hệ thống động Giả sử rằng hệ thống động bao gồm một tác nhân và môi trường của chúng, đáp ứng các điều kiện đơn giản sau đây:

1 Môi trường của tác nhân có thể được xem như là một lược đồ chuyển tiếp các trạng thái (các thuộc tính có liên quan đến những giá trị phụ thuộc vào thời gian) và các kiến trúc của chúng được gắn bởi các hành động

2 Tác nhân có khả năng thực hiện những quan sát chính xác, thực hiện hành động, và ghi nhớ lại trên miền giá trị của hệ thống

Trang 39

- Một bản ghi nhớ, mà nội dung của nó chứa đựng những gì đã làm được của các tác nhân Nó là tập hợp các đường đi trong sơ đồ, được vẽ từ điểm đứng của tác nhân theo những hoạt động đã diễn ra của hệ thống Nếu như một tác nhân được xác định (về trạng thái ban đầu và hoạt động của tác nhân) thì vẽ 1 đường biểu diễn

- Một tập hợp của nhiều tác nhân

Tóm lại, tất cả các kiến thức được sử dụng và cập nhật lại bởi tác nhân được lặp đi lặp lại nhiều lần các hành động sau đây:

1 Quan sát hiện tượng;

2 Giải thích hiện tượng;

3 Chọn một mục tiêu;

4 Lập kế hoạch;

5 Thực hiện từng phần trong kế hoạch

Ví dụ 1: Xét một hệ thống S bao gồm một mạch điện như hình II.1

Giả sử rằng công tắc chuyển mạch là cơ khí và không bị hư hỏng

Trang 40

29

Hình 2.1: Sơ đồ mạch điện mô tả các hành động

Rơle r là một cuộn dây có lõi từ, cuộn dây này sẽ được kích hoạt (s2 đóng) khi s1 đóng, đèn b sẽ sáng nếu s2 được đóng Ở đây chúng ta chỉ xem xét với một tác nhân chỉ có thể thực hiện một hành động, nghĩa là chỉ xem xét đến việc đóng s1 mà không quan tâm đến hành động đóng s2 (vì s2 được tự động đóng khi s1 đóng) Môi trường tác động có thể gây ra 2 hành động ngoài

ý muốn: brks bóng đèn b bị đứt và srg rơle r bị hỏng

Mô hình hệ thống như sau:

closed(SW) – Đóng công tắt s1;

ab(C) – Thành phần C bị lỗi;

prot(b) – Bóng đèn b được bảo vệ khi nguồn thay đổi;

active(r) – Rơle r hoạt động (đóng);

on(b) – Bóng đèn b sáng

Việc mô tả các hành động trên được thể hiện bởi chương trình πd dưới đây:

Ngày đăng: 01/08/2021, 11:43

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lê Mạnh Thạnh, Trương Công Tuấn (2011), Giáo trình chương trình Datalog, Nxb Đại học Huế, Thừa Thiên Huế Sách, tạp chí
Tiêu đề: Giáo trình chương trình Datalog
Tác giả: Lê Mạnh Thạnh, Trương Công Tuấn
Nhà XB: Nxb Đại học Huế
Năm: 2011
[2] Phan Huy Khánh (2004), Lập trình Lôgích trong Prolog, Nxb Đại học quốc gia Hà Nội.Tài liệu Tiếng Anh Sách, tạp chí
Tiêu đề: Lập trình Lôgích trong Prolog
Tác giả: Phan Huy Khánh
Nhà XB: Nxb Đại học quốc gia Hà Nội. Tài liệu Tiếng Anh
Năm: 2004
[3] Marcello Balduccini (2007), CR-Models: An Inference Engine for CR- Prolog, Computer Science Department, Texas Tech University Sách, tạp chí
Tiêu đề: CR-Models: An Inference Engine for CR-Prolog
Tác giả: Marcello Balduccini
Năm: 2007
[4] Martin Gebser (2012), Roland Kaminski, Benjamin Kaufmann, and Torsten Schaub, Answer Set Solving in Practice, University of Potsdam Sách, tạp chí
Tiêu đề: Answer Set Solving in Practice
Tác giả: Martin Gebser
Năm: 2012
[5] Michael Gelfond, V. Lifschitz (1988), The stable model semantics for logic programming, In Proceedings of the 5 th International Conference on logic Programming, Seattle, USA, The MIT Press, pp. 1070-1080 Sách, tạp chí
Tiêu đề: The stable model semantics for logic programming
Tác giả: Michael Gelfond, V. Lifschitz
Năm: 1988
[6] Tran Cao Son (2005), Answer set programming, Department of Computer Science, New Mexico State University, Las Cruces, NM 88011, USA Sách, tạp chí
Tiêu đề: Answer set programming
Tác giả: Tran Cao Son
Năm: 2005

HÌNH ẢNH LIÊN QUAN

DANH MỤC CÁC BẢNG - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
DANH MỤC CÁC BẢNG (Trang 10)
Hình 2.1: Sơ đồ mạch điện mô tả các hành động - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Hình 2.1 Sơ đồ mạch điện mô tả các hành động (Trang 40)
Hình 2.2: Chương trình πd - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Hình 2.2 Chương trình πd (Trang 41)
Hình 3.1: Giao diện chạy chương trình test1.cr - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Hình 3.1 Giao diện chạy chương trình test1.cr (Trang 53)
Bảng 3.1: Chƣơng trình demo ứng dụng Test1.cr - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Bảng 3.1 Chƣơng trình demo ứng dụng Test1.cr (Trang 53)
Hình 3.2: Giao diện chạy chương trình test1.cr với định dạng xuất dữ liệu - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Hình 3.2 Giao diện chạy chương trình test1.cr với định dạng xuất dữ liệu (Trang 54)
Hình 3.3: Giao diện chạy chương trình test1.cr xuất ra tập tin - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Hình 3.3 Giao diện chạy chương trình test1.cr xuất ra tập tin (Trang 54)
Bảng 3.2: Chƣơng trình demo ứng dụng Test2.cr - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Bảng 3.2 Chƣơng trình demo ứng dụng Test2.cr (Trang 55)
Hình 3.4: Sơ đồ các nhóm bệnh thường gặp - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Hình 3.4 Sơ đồ các nhóm bệnh thường gặp (Trang 62)
Bảng 3.5: Vị từ cho bài toán chẩn đoán bện hở ngƣời - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Bảng 3.5 Vị từ cho bài toán chẩn đoán bện hở ngƣời (Trang 65)
Bảng 3.7: Kết quả cho bài toán chẩn đoán bện hở ngƣời - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Bảng 3.7 Kết quả cho bài toán chẩn đoán bện hở ngƣời (Trang 72)
Hình 3.5: Phân nhóm các thiết bị phần cứng máy tính - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Hình 3.5 Phân nhóm các thiết bị phần cứng máy tính (Trang 76)
3.3.2.1. Bảng tên các hằng, luật, và sự kiện - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
3.3.2.1. Bảng tên các hằng, luật, và sự kiện (Trang 83)
23 Card màn hình Card điều chế tín hiệu video 24  Khe cắm card màn hình Khe cắm card video  - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
23 Card màn hình Card điều chế tín hiệu video 24 Khe cắm card màn hình Khe cắm card video (Trang 84)
Bảng 3.9: Vị từ cho bài toán chẩn đoán lỗi khởi động máy PC - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Bảng 3.9 Vị từ cho bài toán chẩn đoán lỗi khởi động máy PC (Trang 84)
Bảng 3.10: Tên hằng chỉ định các nhóm hỏng hóc - Tìm hiểu chương trình logic với luật giải thích trong biểu diễn tri thức
Bảng 3.10 Tên hằng chỉ định các nhóm hỏng hóc (Trang 85)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w