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

Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu

78 2 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 đề Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Tác giả Nguyễn Anh Tuấn
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 2017
Thành phố Đồng Tháp
Định dạng
Số trang 78
Dung lượng 2,15 MB

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

Nội dung

Lập trình logic đã chứng tỏ thế mạnh về khả năng biểu diễn tri thức và được ứng dụng chủ yếu 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ý n

Trang 1

NGUYỄN ANH TUẤN

NGHIÊN CỨU LẬP TRÌNH TẬP TRẢ LỜI ASP

VÀ ỨNG DỤNG TRONG XẾP THỜI KHÓA BIỂU

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

ĐỒNG THÁP, 3/2017

Trang 2

NGUYỄN ANH TUẤN

NGHIÊN CỨU LẬP TRÌNH TẬP TRẢ LỜI ASP

VÀ ỨNG DỤNG TRONG XẾP THỜI KHÓA BIỂU

Chuyên ngành: CÔNG NGHỆ THÔNG TIN

Mã số: 60.48.02.01

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

ĐỒNG THÁP, 3/2017

Trang 3

Người hướng dẫn khoa học: TS Nguyễn Ngọc Hiếu

Phản biện 1:

Phản biện 2:

Luận văn sẽ được bảo vệ tại Hội đồng chấm luận văn thạc sĩ họp tại Trường Đại học Vinh vào hồi giờ ngày tháng năm 20

Trang 4

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

Tác giả luận văn

Nguyễn Anh Tuấn

Trang 5

tốt nhất để tôi có thể hoàn thành luận văn này

Tôi xin gửi lời cảm ơn đến quý thầy cô giáo trong Khoa Công nghệ thông tin trường Đại học Vinh, quý thầy cô giáo ở các đơn vị trực thuộc, các cán bộ phòng Sau Đại học cùng những thầy cô thỉnh giảng đã trực tiếp giảng dạy, truyền đạt kiến thức và cung cấp những nguồn tư liệu quý báu cho tôi trong suốt quá trình học tập và nghiên cứu

Nhân đây tôi xin dành những tình cảm tốt đẹp và lời cảm ơn đến trường Đại học Đồng Tháp đã tạo mọi điều kiện thuận lợi để tôi có điều kiện cơ sở vật chất học tập và hoàn thành tốt luận văn

Tôi xin bày tỏ lòng biết ơn đến những người thân trong gia đình và bạn bè, đồng nghiệp đã luôn động viên, giúp đỡ, tạo điều kiện để cho tôi hoàn thành luận văn này

Đồng Tháp, tháng 3 năm 2017

Học viên Nguyễn Anh Tuấn

Trang 6

TRANG PHỤ BÌA LỜI CAM ĐOAN LỜI CẢM ƠN

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

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

CÁC CHỮ VIẾT TẮT iii

DANH MỤC CÁC HÌNH VẼ iv

MỞ ĐẦU 1

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

2 Mục tiêu nghiên cứu 2

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

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

5 Kết cấu của luận văn 3

CHƯƠNG 1 4

CHƯƠNG TRÌNH LOGIC TỔNG QUÁT 4

1.1 Một số định nghĩa 4

1.2 Các định nghĩa chương trình logic xác định 6

1.3 Phủ định trong chương trình logic 12

1.4 Các tính chất của mô hình bền vững 17

CHƯƠNG 2 19

LẬP TRÌNH TẬP TRẢ LỜI ASP 19

2.1 Ràng buộc 20

2.2 Phủ định mặc định và phủ định mạnh 20

2.3 Cú pháp và ngữ nghĩa tập trả lời của chương trình logic mở rộng 21

2.4 Các tính chất của tập trả lời 26

2.5 Biểu diễn tri thức bằng chương trình logic mở rộng ASP 27

CHƯƠNG 3 35

BÀI TOÁN XẾP THỜI KHÓA BIỂU 35

3.1 Định nghĩa bài toán 35

3.2 Các ràng buộc 37

3.3 Tiếp cận bài toán 39

3.4 Cài đặt bài toán xếp thời khóa biểu với hệ thống Clingo, Gringo 43

CHƯƠNG 4 45

CÀI ĐẶT MÔ PHỎNG CÁC BÀI TOÁN MINH HỌA 45

VÀ BÀI TOÁN XẾP THỜI KHÓA BIỂU 45

4.1 Cài đặt và chạy demo ứng dụng 45

4.2 Bài toán thời khóa biểu 46

Trang 7

4.4 Xếp thời khóa biểu theo yêu cầu khác nhau của 2 giáo viên 53

KẾT LUẬN 54

TÀI LIỆU THAM KHẢO 55

Tài liệu tiếng việt 55

Tài liệu tiếng anh 55

PHỤ LỤC 56

Chương 4 cài đặt mô phỏng các bài toán minh họa và bài toán xếp thời khóa biểu 56

Bài toán 4.1.1 56

Trang 8

Chương trình logic Logic programChương trình logic nền Ground programChương trình logic phân tầng Stratified ProgramChương trình logic ràng buộc bản số Cardinality Constraint Program

Cơ sở Herbrand Herbrand baseĐiểm bất động nhỏ nhất Least fixpointLập trình logic Logic programmingLiteral âm Negative literal

Mô hình bền vững Stable model

Mô hình cực tiểu Minimal model

Mô hình nhỏ nhất Least modelNgữ nghĩa mô hình bền vững Stable model semantics

Trang 10

CCP Chương trình logic ràng buộc bản sốSCCP Chương trình logic ràng buộc bản số đơn giảnSCC Đồ thị thành phần liên thông mạnh

ASP Chương trình tập trả lời

MM Mô hình cực tiểuELP Extended Logic ProgramEDLP Extended Disjunctive Logic Program

Trang 11

DANH MỤC CÁC HÌNH VẼ

2.1 Giải thuật tính toán xung đột 32 3.3.1 Giải thuật lập lịch tương tác 40 3.3.2 Giải thuật toán tìm kiếm lặp lại về phía trước 41 4.1.1 Sơ đồ gia phả 4 đời 44

4.1.2 Kết quả thực thi bài toán 4.2 bằng hệ thống

4.2.3.1 Dữ liệu vào bài toán thời khóa biểu 61 4.2.3.2 Xử lý dữ liệu bài toán thời khóa biểu 62, 63 4.2.3.3 Kết quả xếp thời khóa biểu theo môn 64

4.3 Kết quả xếp thời khóa biểu theo yêu cầu 1 giáo

Trang 12

MỞ ĐẦU

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

Lập trình logic là một trong những phương pháp biểu diễn tri thức cung cấp khả năng để khai báo tri thức và các vấn đề trong ngữ cảnh Một chương trình logic thường được thể hiện bằng công thức "Algorithm = Logic + Control"

Lĩnh vực nghiên cứu về lập trình logic đã phát triển mạnh mẽ trong những thập niên vừa qua Lập trình logic đã chứng tỏ thế mạnh về khả năng biểu diễn tri thức và được ứng dụng chủ yếu 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,… Hiện nay, một hướng mở rộng của lập trình logic được gọi là lập trình tập trả lời (ASP) đã và đang được nhiều nhà khoa học quan tâm ASP có thể dùng để biểu diễn các dạng tri thức khác nhau của thế giới thực ASP được xem như một ngôn ngữ có ngữ nghĩa dạng khai báo và cũng dựa trên ngữ nghĩa mô hình bền vững của chương trình logic thông thường, đã được chứng minh là rất phù hợp cho nhiều lĩnh vực ứng dụng Lập trình tập trả lời (ASP) là một cách tiếp cận của lập trình khai báo ASP đã được áp dụng trong một số lĩnh vực quan trọng, chẳng hạn như việc chẩn đoán và lập kế hoạch cho tàu không gian con thoi, đa tác nhân lý luận, ngôn ngữ tự nhiên, …

Nhiều công trình nghiên cứu có giá trị về lập trình tập trả lời đã được công bố Hệ thống CLINGO, GRINGO thường được sử dụng cho việc cài đặt

và thực thi đối với lớp chương trình logic với ngữ nghĩa tập trả lời

Với mục đích ứng dụng công nghệ thông tin trong việc dạy và học trong trường phổ thông, đồng thời hỗ trợ nhà trường rút ngắn thời gian trong việc sắp xếp thời khóa biểu, vì thế em áp dụng lập trình logic và hướng mở rộng

của lập trình logic là lập trình tập trả lời ASP (Answer Set Program) ASP có

Trang 13

thể dùng để biểu diễn các dạng tri thức khác nhau của thế giới thực, nó được xem như một ngôn ngữ có ngữ nghĩa dạng khai báo và dựa trên ngữ nghĩa mô

hình bền vững của chương trình logic thông thường.

Luận văn nghiên cứu về lập trình tập trả lời ASP và ứng dụng để xếp thời khóa biểu, tiến hành cài đặt một số chương trình minh họa bằng phần mềm Clingo, Gringo Những nội dung nghiên cứu của luận văn này là có ý nghĩa về mặt lý thuyết cũng như ứng dụng trong thực tiễn

Cấu trúc nội dung luận văn gồm phần mở đầu, ba chương nội dung, mô

tả cài đặt, chạy chương trình, phần kết luận, hướng phát triển của đề tài và phần phần phụ lục, tài liệu tham khảo

2 Mục tiêu nghiên cứu

Nghiên cứu về lập trình logic tập trả lời ASP (Answer Set Program) chạy trên phần mềm Clingo, Gringo và ứng dụng trong xếp thời khóa biểu

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

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

- Nghiên cứu lập trình logic;

- Nghiên cứu lập trình ASP;

4 Nội dung nghiên cứu

- Các khái niệm trong lập trình logic;

- Lập trình tập trả lời: các khái niệm và ngữ nghĩa;

Trang 14

- Ứng dụng lập trình tập trả lời cho bài toán sắp xếp thời khóa biểu.

5 Kết cấu của luận văn

 Chương 1 Chương trình logic tổng quát

 Chương 2 Lập trình tập trả lời ASP

 Chương 3 Bài toán xếp thời khóa biểu

 Chương 4 Cài đặt mô phỏng các bài toán minh họa và bài toán xếp thời khóa biểu

 Kết luận

 Tài liệu tham khảo

Trang 15

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

Chương 1 trình bày những khái niệm cơ bản của logic bậc nhất, chương trình logic xác định và chương trình logic thông thường Đối với chương trình logic xác định, ngữ nghĩa của nó là mô hình Herbrand nhỏ nhất, trong khi ngữ nghĩa mô hình bền vững được thiết lập cho chương trình logic thông thường

Cả hai dạng ngữ nghĩa này đều có những hạn chế nhất định Các tính chất ngữ nghĩa từ các mô hình bền vững được trình bày chi tiết cùng với các ví dụ minh họa Đây là những kiến thức làm tiền đề cho các nghiên cứu về ngữ nghĩa của chương trình logic với tập trả lời trong các chương tiếp theo

1.1 Một số định nghĩa

Đị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

Đị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:

Trang 16

(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, ,t n là các hạng thức

thì f(t1, ,tn) là một hạng thức, (i) 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,…,tn), trong đó p là

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

Ta sẽ dùng A để ký hiệu một nguyên tố tùy ý khi ta không quan tâm đến

các đối của nó Ta cũng định nghĩa một nguyên tố đặc biệt, ký hiệu với ý nghĩa luôn luôn có giá trị đúng, và để ký hiệu nguyên tố luôn luôn có giá trị sai

Ví dụ 1.1 Xét nguyên tố me(Lan,Hue), trong đó vị từ me có 2 ngôi chỉ mối

quan hệ mẹ con, hạng thức Lan, Hue là các hằng Nguyên tố có ý nghĩa là Lan là mẹ của Hue.

Định nghĩa 1.4 (Literal) Literal là một nguyên tố (gọi là literal dương) hoặc

phủ định của nguyên tố (literal âm) Với p là một nguyên tố, literal âm của p được ký hiệu p .

Định nghĩa 1.5 (Công thức) Công thức được định nghĩa đệ qui như sau:

(i) Mỗi nguyên tố là một công thức,

(ii) Các hằng vị từ true và false là các công thức, (iii) Nếu E và F là các công thức thì:

EF, ( ),EEF , EF , EFlà các công thức,

(iv) Nếu E là công thức và X là một biến thì X E( ), X E( )là các công thức,

Trang 17

(iv) Công thức chỉ được sinh ra bởi một số hữu hạn các quy tắc trên.

Định nghĩa 1.6 (Ngôn ngữ bậc nhất) Một ngôn ngữ bậc nhất bao gồm một bộ

ký tự và những công thức được xây dựng trên bộ ký tự đó

1.2 Các định nghĩa chương trình logic xác định

Định nghĩa 1.7 (Mệnh đề xác định) Mệnh đề xác định là công thức có dạng:

h  l1, , l n (1.1)

trong đó n 0, h, li là các nguyên tố, h được gọi là đầu và l1, , ln được gọi là

thân của mệnh đề, dấu phẩy ký hiệu thay cho phép hội ()

Ngữ nghĩa của mệnh đề (1.1) là: Nếu tất cả các literal l i là đúng, thì h

cũng đúng

Trong mệnh đề (1.1), nếu n = 0 thì nó được gọi là mệnh đề đơn vị, nghĩa

là mệnh đề có dạng: h  , đó là mệnh đề với thân rỗng Ngữ nghĩa của mệnh

đề đơn vị là với mọi phép thay thế các biến của h bởi các hằng thì h luôn luôn

đúng

Ví dụ 1.2 Trong mệnh đề này:

anhchiemruot(X, Y)  chame(Z, X), chame(Z, Y), X Y Nguyên tố chame(X, Y) có nghĩa là X là cha/mẹ của Y Nguyên tố anhchiemruot(X, Y) có nghĩa là X là anh/chị/em ruột của Y Mệnh đề này nói rằng nếu X và Y có cùng cha/mẹ là Z và X, Y khác nhau, khi đó X và Y là

Trang 18

Trong chương trình này thì s là một hàm 1-ngôi, được xác định bởi s(X) = X +1 với X  , nguyên tố sochan(X) để chỉ X là một số chẵn Mệnh đề

đơn vị r1 có ý nghĩa là 0 một số chẵn và r2 là mệnh đề với ý nghĩa là nếu X là

số chẵn thì s(s(X)) cũng là số chẵn.

Ví dụ 1.4 Xét chương trình logic xác định P mô tả mối quan hệ “gia đình”:

r 1 : nguoi(X)  nam(X)

r 2 : nguoi(X)  nu(X)

r 3: contrai(X, Y) chame(Y, X), nam(X)

r 4 : congai(X, Y)  chame(Y, X), nu(X)

r 5 : me(X, Y) chame(X, Y), nu(X)

r 6 : cha(X, Y) chame(X, Y), nam(X)

r 7 : anhchiemruot(X, Y) chame(Z, X), chame(Z, Y), X  Y

r 8 : bac(X, Y)  chame(Z, Y), anhchiemruot(Z, X), nam(X)

r 9 : totien(X, Y)  chame(X,Y)

r 10 : totien (X, Y) totien(X, Z), chame(Z, Y), nguoi(X) nam(nhan) , nam(le) , nam(nghia) , nam(tinh) , nu(an)  , nu(nhien) , nu(lanh) , chame(tinh, nhan) , chame(lanh, nhan),

chame(tinh, nghia)  , chame(lanh, nghia), chame(nhan, nhien)

, chame(an, nhien) , chame(an, le)

trong ví dụ này thì nguoi(X) có nghĩa là X là một người, nam(X) có nghĩa X có giới tính nam, nu(X) có nghĩa X có giới tính nữ chame(Y, X) có nghĩa là Y là cha/mẹ của X, contrai(X, Y) có nghĩa là X là con trai của Y, congai(X, Y) có nghĩa là X là con gái của Y, anhchiemruot(X, Y) có nghĩa là X là anh/chị/em ruột của Y, bac(X, Y) có nghĩa là X là chú/bác/cậu của Y, totien (X, Y) có nghĩa

Trang 19

là X là tổ tiên của Y.

Mệnh đề r1, r2 nói rằng nếu X có giới tính là nam/nữ thì X là người Mệnh đề r3, r4 nói rằng nếu Y là cha/mẹ của X và X có giới tính nam thì X là con trai của Y và nếu X có giới tính nữ thì X là con gái của Y Mệnh đề r5, r6nói rằng nếu X là cha/mẹ của Y và X có giới tính nam thì X là cha của Y và nếu

X có giới tính nữ thì X là mẹ của Y Mệnh đề r7 nói rằng nếu Z là cha/mẹ của

X và Z là cha/mẹ của Y , X và Y khác nhau thì X và Y là hai anh/chị/em ruột của nhau Mệnh đề r8 nói rằng nếu Z là cha/mẹ của Y, X và Z là hai anh/chị/em ruột của nhau, X có giới tính là nam thì X sẽ là bác/cậu/chú của Y Mệnh đề r9 nói rằng, X là tổ tiên của Y nếu X là cha/mẹ của Y Mệnh đề r10 nói

rằng, X là tổ tiên của Y nếu X là người mà X là tổ tiên của Z và Z là cha/mẹ của Y Và các mệnh đề đơn vị nói rằng Nhan, Le, Nghia, Tinh có giới tính

nam và An, Nhien, Lanh có giới tính nữ, Tinh, Lanh là cha/mẹ của Nhan, Nghia và Nhan, An là cha/mẹ của Nhien

Định nghĩa 1.9 (Vũ trụ/Cơ sở/Thể hiện Herbrand) Cho P là chương trình

Một thể hiện Herbrand của P là một tập con tùy ý của cơ sở Herbrand

Trang 20

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

B P = {sochan(0), sochan(s(0)), sochan(s(s(0))), }

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

I1 = {sochan(0)}

I2 = {sochan(0), sochan(s(0))}

I3 = {sochan(s n (0)) | n  {0, 2, 4,…}}

I4 = B P

Định nghĩa 1.10 (Hiện hành nền) Một hiện hành nền của mệnh đề C có dạng

(1) là một mệnh đề 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ả hiện hành nền của C và đặt ground(P) =∪ CP ground(C) Định nghĩa 1.11 (Mô hình) Cho I là một thể hiện Herbrand của chương trình

logic xác định P Lúc đó I là mô hình của

- mệnh đề nền (không chứa biến) C = a b1,…,bm ký hiệu I C nếu {b1,…,bm} I hoặc a I;

- mệnh đề C, ký hiệu I C nếu I C’ với mọi C’ ground(C);

- chương trình P, ký hiệu I P nếu I C với mọi mệnh đề C của P

Ví dụ 1.6 Xét các thể hiện I1,I2, I3, I4 của chương trình logic P trong ví dụ 1.4, 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 mệnh

đề sochan(0) nhưng I1 không phải là mô hình của mệnh đề r2 vì tồn tại mệnh

đề nền sochan(s(s(0))) sochan(0) của r2 mà I1 không phải là mô hình của

mệnh đề nền này Cũng vậy, I2 cũng không phải là mô hình của P vì mệnh đề

tồn tại mệnh đề nền:

sochan(s(s(s(0))))  sochan(s(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 mệnh đề:

Trang 21

sochan(s(s(t))))  sochan(t)

là một hiện hành nền nào đó của mệnh đề r2, trong đó t U P Rõ ràng

mệnh đề sochan(s(s(t))) sochan(t) đúng vì sochan(t) và sochan(s(s(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.12 (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 chương trình logic xác định P là mô hình Herbrand nhỏ nhất MP của P.

Mô hình Herbrand nhỏ nhất M P có thể xây dựng bằng cách dùng khái

niệm toán tử hệ quả trực tiếp Ta có định nghĩa sau:

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

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

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

Định lý 1.1 Cho P là chương trình logic xác định Mô hình nhỏ nhất của P là

giới hạn của dãy T P n, n , trong đó:

Trang 22

là nguyên tố để chỉ có một đường đi từ X đến Y Mệnh đề 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 mệnh đề thứ hai, 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ử thể hiện Herbrand I của chương trình được cho bởi

I = {canh(1, 2), canh(2, 3), canh(3, 4), canh(4, 5)}

Các bước lặp để tính mô hình nhỏ nhất của P:

I0 = T P  0 = 

I1 = T P 1 = T P (I0) = {canh(1, 2), canh(2, 3), canh(3, 4), canh(4, 5)}

I2 = T P 2 = T P (I1) = I1  {duongdi(1, 2), duongdi(2, 3), duongdi(3, 4),duongdi(4, 5)}

I3 = T P 3 = T P (I2) = I2  {duongdi(1, 3), duongdi(2, 4), duongdi(3, 5)}

I4 = T P 4 = T P (I3) = I3  {duongdi(1, 4), duongdi(2, 5)}

I5 = TP  5 = TP (I4) = I4 {duongdi(1, 5)}

I6 = T P 6 = T P (I5) = I5 Như vậy điểm bất động nhỏ nhất của T P chính là TP(I5), đó cũng chính là

mô hình nhỏ nhất của P.

Trang 23

1.3 Phủ định trong chương trình logic

1.3.1 Chương trình logic thông thường

Định nghĩa 1.14 (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 mệnh đề có dạng:

a  b1,…,b m , not c1,…,not cntrong đó n, m 0, a và bi, cj là các nguyên tố

Chú ý rằng thân quy tắc chứa các lietral phủ định not c1,…,not cn Giá trị chân lý của literal phủ định là ngược với giá trị chân lý của litaral dương của

nó Literal not a sẽ được xem là sai nếu giá trị chân lý của literal dương 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 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à khác

với phép phủ định not trong lập trình logic

Ví dụ 1.9 Xem chương trình logic thông thường sau đây:

man(Dung) single(X)  man(X), not husband(X) husband(X)  fail

Câu truy vấn ?- single(X)

Ta nhận được câu trả lời là X = Dung

Về mặt trực giác, câu trả lời X = Dung là nhận được vì sự kiện husband(Dung) không thể chứng minh từ P Để chứng minh single(Dung) ta

có thể sử dụng quy tắc đầu tiên của chương trình, bởi vì man(Dung) là đúng

và không có cách nào chứng minh sự kiện husband(Dung) là đúng trong P

Tuy nhiên với chương trình logic trong ví dụ sau:

man(dung) single(X)  man(X), not husband(X)

Trang 24

husband(X)  man(X), not single(X) thì ta sẽ gặp thất bại khi tìm câu trả lời cho truy vấn ?single(X) bởi vì single(Dung) và husband(Dung) là phụ thuộc lẫn nhau qua phép phủ định

Phép hợp giải SLD sẽ lặp vô hạn khi trả lời câu truy vấn này

Đối với chương trình logic thông thường, khi các mệnh đề có chứa phủ định ở 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, chương trình logic trên có hai mô hình cực tiểu:

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

logic Gọi ground(P) là hiện hành của P Đối với mọi thể hiện M của P, ký hiệu P M là chương trình nhận được từ ground(P) bằng cách loại bỏ:

1 Các quy tắc có literal phủ định not A trong thân của nó, với A M.

2 Tất cả literal not A trong thân của các quy tắc còn lại.

Điều kiện 1 và 2 ở trên ấn định giá trị chân lý cho các literal phủ định

Nếu A M thì thân quy tắc có chứa literal not A không thể trở thành đúng

Mặt khác, nếu A  M thì not A có thể giả sử là đúng và được loại bỏ khỏi

thân quy tắc chứa nó

Trang 25

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

Định nghĩa 1.16 (Mô hình bền vững) Tập M các nguyên tố được gọi là mô

hình bền vững của chương trình logic P nếu M là mô hình nhỏ nhất của P M

Định lý 1.2 Cho P là chương trình logic Mọi mô hình bền vững của P đều là

mô hình cực tiểu của P.

Định nghĩa 1.17 (Ngữ nghĩa mô hình bền vững) Nếu chương trình logic P có

chính xác một mô hình bền vững thì mô hình này được xem là ngữ nghĩa mô hình bền vững của chương trình logic P

Ví dụ 1.11 Xem chương trình logic P sau đây:

p(1, 2)  q(X)  p(X, Y) q(Y)

Chương trình ground(P) thu được từ P sau khi thay thế tất cả các đối của

các vị từ bởi các hằng 1 và 2 là:

Trang 26

p(1, 2)  q(1)  p(1, 2) q(2)

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

P là {p(1, 2)}, nó khác với M1 Vì vậy M1

không phải là mô hình bền vững

Bây giờ, nếu ta đặt M2 = {p(1, 2), q(1)} Lúc đó M2

P là:

p(1, 2)  q(1)  p(1, 2) q(2)  p(2, 2)

Mô hình cực tiểu của chương trình này là {p(1, 2), q(1)}, chính là M 2

Vậy {p(1, 2), q(1)} là mô hình bền vững của P Có thể kiểm tra rằng mô hình bền vững này là duy nhất và nó chính là ngữ nghĩa mô hình bền vững của P.

Ví dụ 1.12 Xét chương trình logic P chỉ gồm một mệnh đề:

p pChương trình logic này không có mô hình bền vững, bởi vì ta luôn có

P{Ø} = {p} và P {p} = .

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

p(1, 2)  p(2, 1)  q(X)  p(X, Y) q(Y)

Trang 27

Chương trình P này có hai mô hình bền vững:

{p(1, 2), p(2, 1), q(1)} và {p(1, 2), p(2, 1), q(2)}.

Ví dụ 1.14 Xét chương trình P:

a  b

b  a Đặt M1={a} Khi đó, M1

P chỉ gồm quy tắc: a

Mô hình nhỏ nhất của nó là {a} = M1 Vì vậy M1 là mô hình bền vững

của P Tương tự, {b} cũng là mô hình bền vững của P.

Mặt khác, nếu chúng ta đặt M2 = {a, b}, khi đó mô hình nhỏ nhất là tập rỗng

vì thế M2 không bền vững

Ví dụ 1.15 Cho đồ thị vô hướng G =V, E, trong đó V là tập các đỉnh, E là

tập các cạnh Xét bài toán tô màu cho các đỉnh của một đồ thị vô hướng sao cho hai đỉnh liền kề không được tô cùng một màu

Giả sử có ba màu cần tô là đỏ, xanh và vàng và đồ thị có 4 đỉnh là a, b, c,

d Nguyên tố mausac(X) có nghĩa là có màu X, nguyên tố dinh(X) có nghĩa là

đồ thị có đỉnh X, nguyên tố canh(X, Y) có nghĩa là có 1 cạnh từ X đến Y, nguyên tố tomau(X, Y) có nghĩa là đỉnh X được tô màu Y Chương trình logic

mô tả bài toán này như sau:

r1: tomau(X, do) dinh(X), tomau(X, xanh), tomau(X, vang)

r2: tomau(X, xanh) dinh(X), tomau(X, do),tomau(X, vang)

r3: tomau(X, vang) dinh(X), tomau(X, do),tomau(X, xanh)

r4:  canh(X, Y), mausac(C), tomau(X, C), tomau(Y, C) canh(a, b)  , canh(b, c) , canh(c, d) , canh(d, a)

mausac(do)  , mausac(xanh) , mausac(vang)

dinh(a)  , dinh(b) , dinh(c) , dinh(d)

Trang 28

Quy tắc r1 nói rằng nếu ta có đỉnh X mà đỉnh X không tô màu xanh và cũng không được tô màu vàng thì đỉnh X sẽ được tô màu đỏ Quy tắc r2 nói

rằng nếu ta có đỉnh X mà đỉnh X không tô màu đỏ và cũng không được tô màu vàng thì đỉnh X sẽ được tô màu xanh Quy tắc r3 nói rằng nếu ta có đỉnh X mà đỉnh X không tô màu xanh và cũng không được tô màu đỏ thì đỉnh X sẽ được

tô màu vàng Quy tắc r4 nói rằng không có cạnh từ X đến Y mà đỉnh X được tô màu C và đỉnh Y cũng được tô màu C.

- mệnh đề nền (không chứa biến) C = a b1,…,bm,not c1,…,not cn, ký

hiệu I ⊨ C nếu {b1,…,bm} ⊈ I hoặc {a, c1,…,cn}  I ;

- mệnh đề C, ký hiệu I ⊨ C nếu I ⊨ C’ với mọi C’ ground(C);

- chương trình P, ký hiệu I ⊨ P nếu I ⊨ C với mọi mệnh đề C của P

Định lý 1.3 Cho P là chương trình logic Lúc đó:

1 Mọi mô hình bền vững của P đều là mô hình của P

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

Hệ quả 1.1 Các mô hình bền vững là không thể so sánh nhau được, nghĩa là

nếu M1 và M2 là các mô hình bền vững của chương trình logic P thì M1 ⊈ M2

Trang 29

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)} Ta

có M1 là mô hình bền vững của P còn M2 thì không phải

Để ý điều làm cho M2 khác với M1 là ở chỗ không có quy tắc cũng như

sự kiện nào trong P đảm bảo sự xuất hiện của q(a) trong mô hình.

Định lý 1.5 Cho P là chương trình logic và I là một thể hiện của P Đặt

T P (I) = { a | tồn tại a b1,…, b n , not c1, ,not cn thuộc ground(P) Sao cho{b1,…, bn}  I, {c1, ,cn}  I = }

Nếu I là mô hình của P thì TP(I) = I.

Tồn tại mô hình là điểm bất động cực tiểu của toán tử TP nhưng không

phải là mô hình bền vững Ta xem ví dụ sau:

Trang 30

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

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

mở rộng (ASP) 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ó Các ví

dụ được minh họa và biểu diễn tri thức bằng chương trình logic mở rộng Những ví dụ này được giải thích chi tiết nhằm thể hiện bước đầu về tính ứng dụng của lớp chương trình này Trong chương 3 sẽ tập trung tìm hiểu về ứng dụng của lớp chương trình logic mở rộng trong việc biểu diễn tri thức bài toán xếp thời khóa biểu ở trường phổ thông, đồng thời minh họa việc cài đặt và thực thi một số bài toán bằng chương trình logic mở rộng bằng hệ thống lập trình logic Clingo, Gringo.Trình bày về cú pháp và ngữ nghĩa của các chương trình logic thông thường và đị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 Ngữ nghĩa đối với lớp chương trình này được thực hiện theo kiểu tiếp cận của lý thuyết mô hình và

là sự mở rộng của ngữ nghĩa mô hình bền vững đã đề cập trong chương 1 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)

Trang 31

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

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

Ví dụ 2.1 Ràng buộc male(X), female(X) để chỉ X chỉ giới tính của X chỉ có thể là nam (male) hoặc nữ (female).

2.2 Phủ định mặc định và phủ định mạnh

Trong chương 1 đã định nghĩa các chương trình logic thông thường, nghĩa là các chương trình logic cho phép phủ định mặc định (not) xuất hiện trong các thân quy tắ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 quy tắc 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 Ta xem ví dụ sau để phân biệt giữa phủ định mạnh và phủ định mặc định:

Ví dụ 2.2 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 quy tắc sau:

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

Trang 32

Nếu sử dụng quy tắc (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ù A không biết chắc là 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 quy tắc (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 quy tắc (2) Tuy nhiên quy tắc (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

2.3.1.1 Literal điều kiện

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

L: A (2.1)

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.

Đố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}.

Trang 33

2.3.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:

Card (b,S) (2.2)

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:

L {S1,…, S n } U (2.2’)

trong đó S1, , S n 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

và  thay cho U.

Tương tự, ý nghĩa của (2.2’) là nguyên tố bản số C đúng nếu S1, ., Sn

đúng trong khoảng [L; U].

Tập literal điều kiện dương trong S được ký hiệu là pos(C) và tập literal điều kiện âm trong S ký hiệu là neg(C)

Ví dụ 2.5 Nguyên tố bản số 1{Màn hình15”, Màn hình17”, Màn hình19”}1 chỉ rằng có chính xác một màn hình thuộc một trong ba kiểu 15”, 17”, 19”

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).

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.

Trang 34

Đị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.3.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, ,l m , not l m+1 , ,not l n (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:

là ngược của literal l.

Tập{not li, ,not li+k} được ký hiệu not {li, ,li+k} Nếu r là quy tắc có

dạng (2.3) thì:

head(r) = {l0},

pos(r) = {l1, ,lm},

neg(r) = {lm+1, ,ln},

body(r) = pos(r), not neg(r)

Với P là chương trình logic mở rộng thì:

head(P) =∪ rP head(r),

Trang 35

pos(P) =∪ rP pos(r),

neg(P) =∪ rP neg(r).

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 litral

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

Đị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 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 trả lời của chương trình thu gọn P X

Trang 36

Đị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:

q(X)  not q(X) thì đối với chương trình mới này sẽ có tập trả lời là S = {q(a), q(b),

p(b)}, như vậy câu trả lời đối với truy vấn q(b) là trở thành no.

Một chương trình có thể có nhiều hơn một tập trả lời hoặc không có tập trả lời nào cả

Ví dụ 2.9 Các chương trình sau không có tập trả lời:

P1 = { p  not p}, P2 = {p, p}

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

p(a)  not  p(a)

p(a) not p(a) Chương trình này có hai tập trả lời là {p(a)} và {p(a)} Như vậy P

không thể suy dẫn literal p(a).

Trong phần tiếp theo trình bày một số tính chất của tập trả lời

Trang 37

2.4 Các tính chất của tập trả lời

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

{l1, ,ln}  S, và {lm+1, ,ln}  S = thì l0 S (ii) Nếu l0  S thì tồn tại một hiện hành nền của quy tắc có dạng (1) của P sao cho {l1, ,ln}  S và {lm+1, ,ln}  S =

Mệnh đề 2.2 Với mọi chương trình logic mở rộng P, nếu S0 và S1 là các tập

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 l m+1 , ,not ln

bởi quy tắc:  , ,

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

Đố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+

Trang 38

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.5 Biểu diễn tri thức bằng chương trình logic mở rộng ASP

2.5.1 Cơ sở dữ liệu suy diễn dạng tuyển tổng quát

Định nghĩa 2.9 Một chương trình logic dạng tuyển mở rộng (ký hiệu EDLP)

là một tập hữu hạn các quy tắc có dạng:

l0 … lk ← lk+1,…,lm, not lm+1,…,not ln (k 0, n m  0) (2.4)

trong đó mỗi li là các literal Ký hiệu H(r) là tập các nguyên tố trong phần đầu

của quy tắc r trên, nghĩa là H(r) là {l0…lk} và B(r) là tập { lk+1,…,lm, not

lm+1,…,not ln} các literal trong thân của quy tắc Tập các literal dương, âm xuất

hiện trong B(r) tương ứng được ký hiệu là B+(r) và B-(r)

Quy tắc (2.4) được gọi là quy tắc dạng tuyển nếu phần đầu của (2.4) chứa nhiều hơn một nguyên tố

Chương trình logic dạng tuyển mở rộng không chứa ký hiệu phủ định

được gọi là chương trình logic dạng tuyển dương.

Một quy tắc tuyển H(r) = l0 … lk là đúng khi ít nhất một trong các

phần tử l0 … lk là đúng; sai khi tất cả những phần tử này là sai và không xác định khi ít nhất một trong những phần tử này là không xác định và những

thành phần còn lại hoặc là không xác định hoặc là sai Ngữ nghĩa của EDLP được cho bởi ngữ nghĩa tập các tập trả lời

Định nghĩa 2.10 Gọi LP là tập các literal nền của EDLP và LP Lúc đó:

(i) Tập các literal nền S được gọi là thỏa mãn quy tắc nền có dạng (3.1)

Trang 39

Định nghĩa 2.11 Cho P là một EDLP không chứa not (tức là m = n) và S

L P , trong đó L P là tập tất cả các literal nền của P Lúc đó S là một tập trả lời của P nếu S là một tập cực tiểu thỏa mãn hai điều kiện sau:

(i) S thỏa mãn với mọi quy tắc trong P, nghĩa là đối với mỗi quy tắc nền:

l0 …lk ← lk+1,…,lm (k ≥ 0) nhận được từ P, {lk+1,…,lm}  S kéo theo li S với i nào đó (0 ≤ i ≤ k) Đặc biệt đối với mỗi ràng buộc toàn vẹn nền ←l0…l m từ P, {l0…l m}  S là thỏa

mãn;

(ii) Nếu S chứa một cặp literal l và ¬ l thì S = L P

Định nghĩa 2.12 Cho P là một EDLP, S là một tập các literal và S L P (L P

tập các literal nền của P) Lúc đó ký hiệu PS là chương trình logic dạng tuyển

không chứa phủ định nhận được từ P bởi S như sau:

l0 …lk ← lk+1,…,lm thuộc PS nếu và chỉ nếu tồn tại mệnh đề nền từ P:

l0 …lk ← lk+1,…,lm, not lm+1,…,not ln

sao cho: {l0 …lk}  S và {lm+1,…,ln}  S =

Định nghĩa 2.13 (Tập trả lời của EDLP) Cho P là một EDLP bất kỳ và S

L P , S là tập trả lời của P nếu và chỉ nếu S là tập trả lời của PS

Ví dụ 2.11 Xét chương trình logic dạng tuyển mở rộng P gồm các quy tắc:

Ngày đăng: 21/08/2023, 00:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Krzysztof R. Apt. The logic programming paradigm and prolog. CoRR, cs.PL/0107013, 2001 Sách, tạp chí
Tiêu đề: CoRR
[3] Chitta Baral. Knowledge Representation, Reasoning, and Declarative Problem Solving. Cambridge University Press, New York, NY, USA, 2003 Sách, tạp chí
Tiêu đề: Knowledge Representation, Reasoning, and Declarative Problem Solving
[4] Chitta Baral, Gregory Gelfond, Enrico Pontelli, and Tran Cao Son. Logic pro- gramming for finding models in the logics of knowledge and its applications: A case study. TPLP, 10(4-6):675–690, 2010 Sách, tạp chí
Tiêu đề: TPLP
[6] Tommi Syrjọnen, Ilkka Niemelọ (2001),“The smodels system”, In Proceedings of the 6th International Conference on Logic Programming and Nonmonotonic Reasoning, Vienna, Austria, Springer-Verlag, pp. 434-438 Sách, tạp chí
Tiêu đề: The smodels system”, "In Proceedings of the 6th International Conference on Logic Programming and Nonmonotonic Reasoning
Tác giả: Tommi Syrjọnen, Ilkka Niemelọ
Năm: 2001
[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ế.Tài liệu tiếng anh Khác
[1] Krzysztof R. Apt. Introduction to logic programming. pages 495–574, 1990 Khác

HÌNH ẢNH LIÊN QUAN

4.1.1  Sơ đồ gia phả 4 đời  44 - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
4.1.1 Sơ đồ gia phả 4 đời 44 (Trang 11)
Hình 3.3.1 Ràng buộc mềm: đây là các yếu tố mong muốn nhƣng  bản chất của nó không là thiết yếu nhất - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Hình 3.3.1 Ràng buộc mềm: đây là các yếu tố mong muốn nhƣng bản chất của nó không là thiết yếu nhất (Trang 52)
Hình 4.1.1 Ví dụ gia phả 4 đời - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Hình 4.1.1 Ví dụ gia phả 4 đời (Trang 56)
Bảng kết quả Thời khóa biểu theo yêu cầu 1 giáo viên: - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Bảng k ết quả Thời khóa biểu theo yêu cầu 1 giáo viên: (Trang 63)
Bảng thời khóa biểu theo yêu cầu 2 giáo viên: - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Bảng th ời khóa biểu theo yêu cầu 2 giáo viên: (Trang 64)
Hình 4.1.2: Kết quả thực thi bài toán 4.2 bằng hệ thống Clingo - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Hình 4.1.2 Kết quả thực thi bài toán 4.2 bằng hệ thống Clingo (Trang 70)
Hình 4.2.3.3 Kết quả xếp thời khóa biểu theo môn - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Hình 4.2.3.3 Kết quả xếp thời khóa biểu theo môn (Trang 75)
Hình 4.3 Kết quả thời khóa biểu theo yêu cầu 1 giáo viên - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
Hình 4.3 Kết quả thời khóa biểu theo yêu cầu 1 giáo viên (Trang 76)
Hình ảnh thời khóa biểu chƣa xếp theo yêu cầu: - Nghiên cứu lập trình tập trả lời asp và ứng dụng trong xếp thời khóa biểu
nh ảnh thời khóa biểu chƣa xếp theo yêu cầu: (Trang 77)

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